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;