diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py b/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py
index e3491cfb5..b2ac9fa29 100644
--- a/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py
+++ b/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py
@@ -435,7 +435,7 @@ def _interstitial_stream(process_instance: ProcessInstanceModel) -> Generator[st
processor.save() # Fixme - maybe find a way not to do this on every loop?
except WorkflowTaskException as wfe:
api_error = ApiError.from_workflow_exception(
- "engine_steps_error", "Failed complete an automated task.", exp=wfe
+ "engine_steps_error", "Failed to complete an automated task.", exp=wfe
)
yield render_data("error", api_error)
return
diff --git a/spiffworkflow-frontend/src/components/ActiveUsers.tsx b/spiffworkflow-frontend/src/components/ActiveUsers.tsx
index 012f9f675..7bd282b04 100644
--- a/spiffworkflow-frontend/src/components/ActiveUsers.tsx
+++ b/spiffworkflow-frontend/src/components/ActiveUsers.tsx
@@ -42,7 +42,7 @@ export default function ActiveUsers() {
return (
{activeUser.username.charAt(0).toUpperCase()}
diff --git a/spiffworkflow-frontend/src/components/NavigationBar.tsx b/spiffworkflow-frontend/src/components/NavigationBar.tsx
index b1ed09a4c..5ac960342 100644
--- a/spiffworkflow-frontend/src/components/NavigationBar.tsx
+++ b/spiffworkflow-frontend/src/components/NavigationBar.tsx
@@ -1,4 +1,8 @@
import {
+ Toggletip,
+ ToggletipButton,
+ ToggletipContent,
+ Button,
Header,
HeaderContainer,
HeaderMenuButton,
@@ -77,25 +81,46 @@ export default function NavigationBar() {
return activeKey === menuItemPath;
};
+ const profileToggletip = (
+
+
+
+
+ {UserService.getPreferredUsername()[0].toUpperCase()}
+
+
+
+
+ {UserService.getPreferredUsername()}
+
+ {UserService.getUserEmail()}
+
+
+
+
+
+ );
+
const loginAndLogoutAction = () => {
if (UserService.isLoggedIn()) {
return (
<>
{SPIFF_ENVIRONMENT ? (
-
+
{SPIFF_ENVIRONMENT}
) : null}
-
- {UserService.getPreferredUsername()}
-
-
-
-
+ {profileToggletip}
>
);
}
diff --git a/spiffworkflow-frontend/src/index.css b/spiffworkflow-frontend/src/index.css
index 9595fa7d1..00bd2d8c1 100644
--- a/spiffworkflow-frontend/src/index.css
+++ b/spiffworkflow-frontend/src/index.css
@@ -114,6 +114,12 @@ h2 {
padding-left: 0;
}
+.cds--header__global .cds--btn--primary.button-link {
+ color: #f4f4f4;
+ background-color: #393939;
+ padding-left: 0;
+}
+
.cds--header__global .cds--btn--primary {
background-color: #161616
}
@@ -200,6 +206,44 @@ h1.with-icons {
margin-bottom: 1em;
}
+.user-profile-toggletip-content {
+ background-color: #393939;
+ color: #f4f4f4;
+ margin-right: 8px;
+ margin-top: -20px;
+}
+
+#user-profile-toggletip {
+ margin-top: 8px;
+ margin-right: 12px;
+}
+#user-profile-toggletip .cds--popover-content::before {
+ content: none;
+}
+
+#user-profile-toggletip .cds--popover--bottom-right .cds--popover-content {
+ bottom: 11px;
+ right: -2px;
+ border-radius: 5px;
+ border: 3px solid black;
+}
+
+#user-profile-toggletip .cds--popover-caret {
+ display: none;
+}
+
+.user-profile-toggletip-button:hover {
+ background-color: #161616;
+}
+
+#user-profile-toggletip .cds--popover--tab-tip__button::after {
+ content: none;
+}
+
+#user-profile-toggletip .cds--popover--tab-tip.cds--popover--open .cds--popover--tab-tip__button{
+ background-color: #161616;
+}
+
.with-top-margin {
margin-top: 1em;
}
@@ -471,49 +515,12 @@ svg.notification-icon {
border-radius: 50%;
color: #fff;
font-weight: bold;
+}
+
+.user-circle-for-list {
margin-right: 10px;
}
-.user-circle.color-1 {
- background-color: #8e8e8e;
-}
-
-.user-circle.color-2 {
- background-color: #a57c63;
-}
-
-.user-circle.color-3 {
- background-color: #8f7c7c;
-}
-
-.user-circle.color-4 {
- background-color: #9a927f;
-}
-
-.user-circle.color-5 {
- background-color: #5e5d5d;
-}
-
-.user-circle.color-6 {
- background-color: #676767;
-}
-
-.user-circle.color-7 {
- background-color: #6d7d6d;
-}
-
-.user-circle.color-8 {
- background-color: #7a7171;
-}
-
-.user-circle.color-9 {
- background-color: #837d63;
-}
-
-.user-circle.color-10 {
- background-color: #686a70;
-}
-
/* Randomize color assignment */
.user-circle:nth-child(1) {
background-color: #8e8e8e;