Skip to content

Commit

Permalink
Add contextual help panel in Preserved users
Browse files Browse the repository at this point in the history
The Contextual help links panel should be implemented
in the Preserved users page to provide documentation
links related to the page that is currently being shown.

Signed-off-by: Carla Martinez <[email protected]>
  • Loading branch information
carma12 committed Jan 13, 2025
1 parent 9ef3983 commit 29d473a
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 68 deletions.
10 changes: 10 additions & 0 deletions src/assets/documentation/documentation-links.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,15 @@
"name": "Managing user accounts",
"url": "https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_idm_users_groups_hosts_and_access_control_rules/managing-user-accounts-using-the-idm-web-ui_managing-users-groups-hosts"
}
],
"preserved-users": [
{
"name": "Deleting users",
"url": "https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_idm_users_groups_hosts_and_access_control_rules/managing-user-accounts-using-the-idm-web-ui_managing-users-groups-hosts#deleting-users-in-the-idm-web-ui_managing-user-accounts-using-the-idm-web-ui"
},
{
"name": "Restoring users",
"url": "https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_idm_users_groups_hosts_and_access_control_rules/managing-user-accounts-using-the-idm-web-ui_managing-users-groups-hosts#restoring-users-in-the-idm-web-ui_managing-user-accounts-using-the-idm-web-ui"
}
]
}
160 changes: 92 additions & 68 deletions src/pages/PreservedUsers/PreservedUsers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import UsersTable from "../../components/tables/UsersTable";
// Components
import PaginationLayout from "src/components/layouts/PaginationLayout";
import BulkSelectorPrep from "src/components/BulkSelectorPrep";
import ContextualHelpPanel from "src/components/ContextualHelpPanel/ContextualHelpPanel";
// Modals
import DeleteUsers from "src/components/modals/UserModals/DeleteUsers";
import StagePreservedUsers from "src/components/modals/UserModals/StagePreservedUsers";
Expand Down Expand Up @@ -415,6 +416,18 @@ const PreservedUsers = () => {
submitSearchValue,
};

// Contextual links panel
const [isContextualPanelExpanded, setIsContextualPanelExpanded] =
React.useState(false);

const onOpenContextualPanel = () => {
setIsContextualPanelExpanded(!isContextualPanelExpanded);
};

const onCloseContextualPanel = () => {
setIsContextualPanelExpanded(false);
};

// List of Toolbar items
const toolbarItems: ToolbarItem[] = [
{
Expand Down Expand Up @@ -497,7 +510,12 @@ const PreservedUsers = () => {
},
{
key: 8,
element: <HelpTextWithIconLayout textContent="Help" />,
element: (
<HelpTextWithIconLayout
textContent="Help"
onClick={onOpenContextualPanel}
/>
),
},
{
key: 9,
Expand All @@ -515,76 +533,82 @@ const PreservedUsers = () => {

// Render 'Preserved users'
return (
<Page>
<alerts.ManagedAlerts />
<PageSection variant={PageSectionVariants.light}>
<TitleLayout
id="preserved users title"
headingLevel="h1"
text="Preserved users"
<ContextualHelpPanel
fromPage="preserved-users"
isExpanded={isContextualPanelExpanded}
onClose={onCloseContextualPanel}
>
<Page>
<alerts.ManagedAlerts />
<PageSection variant={PageSectionVariants.light}>
<TitleLayout
id="preserved users title"
headingLevel="h1"
text="Preserved users"
/>
</PageSection>
<PageSection
variant={PageSectionVariants.light}
isFilled={false}
className="pf-v5-u-m-lg pf-v5-u-pb-md pf-v5-u-pl-0 pf-v5-u-pr-0"
>
<ToolbarLayout
className="pf-v5-u-pt-0 pf-v5-u-pl-lg pf-v5-u-pr-md"
contentClassName="pf-v5-u-p-0"
toolbarItems={toolbarItems}
/>
<div style={{ height: `calc(100vh - 352.2px)` }}>
<OuterScrollContainer>
<InnerScrollContainer>
{batchError !== undefined && batchError ? (
<GlobalErrors errors={globalErrors.getAll()} />
) : (
<UsersTable
shownElementsList={preservedUsersList}
from="preserved-users"
showTableRows={showTableRows}
usersData={usersTableData}
buttonsData={usersTableButtonsData}
paginationData={selectedPerPageData}
searchValue={searchValue}
/>
)}
</InnerScrollContainer>
</OuterScrollContainer>
</div>
<PaginationLayout
list={preservedUsersList}
paginationData={paginationData}
variant={PaginationVariant.bottom}
widgetId="pagination-options-menu-bottom"
className="pf-v5-u-pb-0 pf-v5-u-pr-md"
/>
</PageSection>
<ModalErrors errors={modalErrors.getAll()} />
<DeleteUsers
show={showDeleteModal}
from="preserved-users"
handleModalToggle={onDeleteModalToggle}
selectedUsersData={selectedUsersData}
buttonsData={deleteUsersButtonsData}
onRefresh={refreshUsersData}
/>
</PageSection>
<PageSection
variant={PageSectionVariants.light}
isFilled={false}
className="pf-v5-u-m-lg pf-v5-u-pb-md pf-v5-u-pl-0 pf-v5-u-pr-0"
>
<ToolbarLayout
className="pf-v5-u-pt-0 pf-v5-u-pl-lg pf-v5-u-pr-md"
contentClassName="pf-v5-u-p-0"
toolbarItems={toolbarItems}
<RestorePreservedUsers
show={showRestoreModal}
handleModalToggle={onRestoreModalToggle}
selectedUsers={selectedUsers}
clearSelectedUsers={clearSelectedUsers}
onSuccess={refreshUsersData}
/>
<div style={{ height: `calc(100vh - 352.2px)` }}>
<OuterScrollContainer>
<InnerScrollContainer>
{batchError !== undefined && batchError ? (
<GlobalErrors errors={globalErrors.getAll()} />
) : (
<UsersTable
shownElementsList={preservedUsersList}
from="preserved-users"
showTableRows={showTableRows}
usersData={usersTableData}
buttonsData={usersTableButtonsData}
paginationData={selectedPerPageData}
searchValue={searchValue}
/>
)}
</InnerScrollContainer>
</OuterScrollContainer>
</div>
<PaginationLayout
list={preservedUsersList}
paginationData={paginationData}
variant={PaginationVariant.bottom}
widgetId="pagination-options-menu-bottom"
className="pf-v5-u-pb-0 pf-v5-u-pr-md"
<StagePreservedUsers
show={showStageModal}
handleModalToggle={onStageModalToggle}
selectedUsers={selectedUsers}
clearSelectedUsers={clearSelectedUsers}
onSuccess={refreshUsersData}
/>
</PageSection>
<ModalErrors errors={modalErrors.getAll()} />
<DeleteUsers
show={showDeleteModal}
from="preserved-users"
handleModalToggle={onDeleteModalToggle}
selectedUsersData={selectedUsersData}
buttonsData={deleteUsersButtonsData}
onRefresh={refreshUsersData}
/>
<RestorePreservedUsers
show={showRestoreModal}
handleModalToggle={onRestoreModalToggle}
selectedUsers={selectedUsers}
clearSelectedUsers={clearSelectedUsers}
onSuccess={refreshUsersData}
/>
<StagePreservedUsers
show={showStageModal}
handleModalToggle={onStageModalToggle}
selectedUsers={selectedUsers}
clearSelectedUsers={clearSelectedUsers}
onSuccess={refreshUsersData}
/>
</Page>
</Page>
</ContextualHelpPanel>
);
};

Expand Down
12 changes: 12 additions & 0 deletions tests/features/contextual_help_panel.feature
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,17 @@ Feature: Contextual help links panel
When I click on close button in the panel
Then I should not see contextual help panel

# Preserved users page
Scenario: Open the contextual help links panel on 'preserved-users' main page
Given I am on "preserved-users" page
When I click on "Help" button
Then I should see contextual help panel
And I should see a title "Links" in the panel
* I should see a list of links

Scenario: Close the contextual help links panel on 'Preserved users' main page
Given I am on "preserved-users" page
Given I should see contextual help panel
When I click on close button in the panel
Then I should not see contextual help panel

0 comments on commit 29d473a

Please sign in to comment.