@rh-support/manage 2.5.32 → 2.5.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/components/Groups/GroupSelect/GroupSelect.d.ts.map +1 -1
- package/lib/esm/components/Groups/GroupSelect/GroupSelect.js +2 -3
- package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.d.ts.map +1 -1
- package/lib/esm/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.js +12 -9
- package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.d.ts.map +1 -1
- package/lib/esm/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.js +3 -3
- package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.d.ts.map +1 -1
- package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js +8 -10
- package/lib/esm/components/ManageExpiredContents/ExpiredContentCategory.js +1 -1
- package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.d.ts.map +1 -1
- package/lib/esm/components/ManageExpiredContents/ExpiredContentManager.js +11 -10
- package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItem.js +1 -1
- package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.d.ts.map +1 -1
- package/lib/esm/components/ManageExpiredContents/ExpiredContentSingleItemView.js +36 -35
- package/lib/esm/components/ManagePreferences/sections/PreferencesACL.js +2 -2
- package/lib/esm/components/ManagePreferences/sections/PreferencesCaseView.js +1 -1
- package/lib/esm/components/ManageTable/ManageTable.d.ts.map +1 -1
- package/lib/esm/components/ManageTable/ManageTable.js +2 -1
- package/lib/esm/components/ManageTags/TagsManager.d.ts.map +1 -1
- package/lib/esm/components/ManageTags/TagsManager.js +40 -32
- package/lib/esm/components/NotificationEmails/NotificationEmailsModal.d.ts.map +1 -1
- package/lib/esm/components/NotificationEmails/NotificationEmailsModal.js +28 -21
- package/lib/esm/components/TopContentManagement/NoTopContentFound.d.ts.map +1 -1
- package/lib/esm/components/TopContentManagement/NoTopContentFound.js +1 -1
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.d.ts.map +1 -1
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.js +3 -5
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.d.ts.map +1 -1
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.js +51 -49
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.d.ts.map +1 -1
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.js +4 -5
- package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.d.ts.map +1 -1
- package/lib/esm/components/TopContentManagement/TopContentProductVersionSelector.js +4 -4
- package/lib/esm/scss/_main.scss +85 -4
- package/lib/esm/scss/_pf-overrides.scss +0 -4
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/Groups/GroupSelect/GroupSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAuC3E,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAKD,eAAO,MAAM,WAAW,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"GroupSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/Groups/GroupSelect/GroupSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAuC3E,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAKD,eAAO,MAAM,WAAW,UAAW,MAAM,sBAshBxC,CAAC"}
|
|
@@ -271,8 +271,7 @@ export const GroupSelect = (props) => {
|
|
|
271
271
|
React.createElement(MenuItem, { className: "create-group-action", isDisabled: !selectedGroup || !ability.can(resourceActions.DELETE, resources.CASE_GROUPS), key: "delete", onClick: onActionFocus(actions.delete), "data-tracking-id": "manage-group-delete" }, t('Delete')),
|
|
272
272
|
React.createElement(MenuItem, { className: "create-group-action", isDisabled: !selectedGroup || !ability.can(resourceActions.CREATE, resources.CASE_GROUPS), key: "duplicate", onClick: onActionFocus(actions.duplicate), "data-tracking-id": "manage-group-duplicate" }, t('Duplicate')),
|
|
273
273
|
];
|
|
274
|
-
const dropdownToggle = (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, isDisabled: props.isDisabled || disableOnFetch, onClick: toggleIsDropdownOpen, isExpanded: isDropdownOpen, "data-tracking-id": "manage-group-toggle-options", "aria-label": "Group actions dropdown toggle",
|
|
275
|
-
React.createElement(CogIcon, null)));
|
|
274
|
+
const dropdownToggle = (toggleRef) => (React.createElement(MenuToggle, { isFullHeight: true, className: "pf-v6-u-ml-sm manage-group-actions-toggle-options", ref: toggleRef, isDisabled: props.isDisabled || disableOnFetch, onClick: toggleIsDropdownOpen, isExpanded: isDropdownOpen, "data-tracking-id": "manage-group-toggle-options", "aria-label": "Group actions dropdown toggle", icon: React.createElement(CogIcon, null) }));
|
|
276
275
|
const submitActionBtn = useRef();
|
|
277
276
|
useEffect(() => {
|
|
278
277
|
if (isEmpty(manageActionsRef.current))
|
|
@@ -354,7 +353,7 @@ export const GroupSelect = (props) => {
|
|
|
354
353
|
React.createElement(Trans, null, "Group")),
|
|
355
354
|
React.createElement(Select, { id: "group-selector", isOpen: isOpen, onSelect: (e, selection) => handleSelect(selection), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, selected: selectedGroup, shouldFocusFirstItemOnOpen: false, "aria-label": "Select a group to view accounts", "aria-labelledby": selectAGroupText, "data-tracking-id": "group-list-selector" },
|
|
356
355
|
React.createElement(SelectList, { id: "group-selector-listbox" }, filteredGroups.length > 0 ? (filteredGroups.map((group, index) => (React.createElement(SelectOption, { id: `group-option-${group.name}`, key: index, value: group, isFocused: focusedItemIndex === index, className: "pf-v6-c-select__menu-wrapper", isSelected: group.name === selectedGroup }, group.name)))) : (React.createElement(SelectOption, { key: "no-results", value: '' }, t('No results found'))))))),
|
|
357
|
-
!showErrorMessage && showDropdown && (React.createElement(Dropdown, { className: "group-actions-dropdown group-action", toggle: dropdownToggle, isOpen: isDropdownOpen, onOpenChange: (isOpen) => setIsDropdownOpen(isOpen), "aria-label": t('Group actions dropdown'), shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: true
|
|
356
|
+
!showErrorMessage && showDropdown && (React.createElement(Dropdown, { className: "group-actions-dropdown group-action", toggle: dropdownToggle, isOpen: isDropdownOpen, onOpenChange: (isOpen) => setIsDropdownOpen(isOpen), "aria-label": t('Group actions dropdown'), shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: true },
|
|
358
357
|
React.createElement(MenuContent, null,
|
|
359
358
|
React.createElement(MenuList, null, dropdownItems)))),
|
|
360
359
|
!showErrorMessage && showInput && (React.createElement("div", { className: "group-name-select" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddEditBookmarkModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddEditBookmarkModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/AddEditBookmarkModal.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,oBAAoB,UAAW,MAAM,sBA8IjD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button, ButtonVariant, Modal, ModalFooter, ModalVariant } from '@patternfly/react-core';
|
|
1
|
+
import { Button, ButtonVariant, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
|
|
2
2
|
import isEmpty from 'lodash/isEmpty';
|
|
3
3
|
import isEqual from 'lodash/isEqual';
|
|
4
4
|
import React, { useEffect, useState } from 'react';
|
|
@@ -70,15 +70,18 @@ export const AddEditBookmarkModal = (props) => {
|
|
|
70
70
|
isEqual(props.selectedAccounts.map((a) => a.accountNumber).sort(), localSelectedBookmarks.map((a) => a.accountNumber).sort()) &&
|
|
71
71
|
selectedGroup === ((_a = props.selectedAccounts[0]) === null || _a === void 0 ? void 0 : _a.bookmarkGroupName));
|
|
72
72
|
};
|
|
73
|
-
return (React.createElement(Modal, { id: "Add-edit-bookmark-modal", className: "pf-modal-overflow-visible",
|
|
74
|
-
React.createElement(
|
|
75
|
-
React.createElement("
|
|
76
|
-
|
|
73
|
+
return (React.createElement(Modal, { id: "Add-edit-bookmark-modal", className: "pf-modal-overflow-visible", "aria-describedby": "Add-edit-bookmark-modal", isOpen: props.isOpen, onClose: close, onEscapePress: props.onClose, variant: ModalVariant.medium },
|
|
74
|
+
React.createElement(ModalHeader, null,
|
|
75
|
+
React.createElement("h2", null, props.title)),
|
|
76
|
+
React.createElement(ModalBody, null,
|
|
77
77
|
React.createElement("div", null,
|
|
78
|
-
React.createElement("
|
|
79
|
-
React.createElement(
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
React.createElement("div", { className: "pf-v6-u-mb-lg" },
|
|
79
|
+
React.createElement(BookmarkGroupSelector, { selectedGroup: selectedGroup, groups: props.groups, onGroupInputBoxChanged: onGroupInputBoxChanged, isInValid: isInValid && (isPresentInGroups || isEmpty(selectedGroup === null || selectedGroup === void 0 ? void 0 : selectedGroup.trim())), setIsInValid: setIsInValid, isPresentInGroups: isPresentInGroups })),
|
|
80
|
+
React.createElement("div", null,
|
|
81
|
+
React.createElement("label", { id: "add-bookmark-account-on-add-modal" },
|
|
82
|
+
React.createElement(Trans, null, "Account(s)"),
|
|
83
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
84
|
+
React.createElement(BookmarkAccountSelector, { defaultSelected: props.selectedAccounts, labelId: "add-bookmark-account-on-add-modal", bookmarkedGroupAccounts: props.bookmarkedGroupAccounts, onBookMarkAccountSelected: onBookMarkAccountSelected, addMode: props.addMode, isInValid: isInValid && isEmpty(localSelectedBookmarks) })))),
|
|
82
85
|
React.createElement(ModalFooter, null,
|
|
83
86
|
React.createElement(Button, { key: "save", variant: ButtonVariant.primary, onClick: save, isDisabled: isInValid || isNothingIsChangedOnEditMode() },
|
|
84
87
|
React.createElement(Trans, null, "Save")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkAccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAmBhF,OAAO,EAAE,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAO3E,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,UAAU,MAAM;IACZ,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"BookmarkAccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/BookmarkAccountSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAmBhF,OAAO,EAAE,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAO3E,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,UAAU,MAAM;IACZ,uBAAuB,EAAE,SAAS,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBAyUpD;yBAzUe,uBAAuB"}
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { accounts } from '@cee-eng/hydrajs';
|
|
11
11
|
import { Button, Label, LabelGroup, MenuToggle, Select, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, Tooltip, } from '@patternfly/react-core';
|
|
12
12
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
13
|
-
import
|
|
13
|
+
import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
|
|
14
14
|
import { useSelectKeyboardNavigator } from '@rh-support/components';
|
|
15
15
|
import { sortAccountsByQuery } from '@rh-support/react-context';
|
|
16
16
|
import assign from 'lodash/assign';
|
|
@@ -142,7 +142,7 @@ export function BookmarkAccountSelector(props) {
|
|
|
142
142
|
account.accountNumber,
|
|
143
143
|
")"))))),
|
|
144
144
|
selected.length > 0 && (React.createElement(TextInputGroupUtilities, null,
|
|
145
|
-
React.createElement(Button, { variant: "plain", onClick: clearSelection, "aria-label": "Clear input value", icon: React.createElement(
|
|
145
|
+
React.createElement(Button, { variant: "plain", onClick: clearSelection, "aria-label": "Clear input value", icon: React.createElement(TimesCircleIcon, { "aria-hidden": true }) }))))));
|
|
146
146
|
const duplicateAccounts = (props.selectedGroup &&
|
|
147
147
|
props.addMode &&
|
|
148
148
|
props.bookmarkedGroupAccounts
|
|
@@ -192,7 +192,7 @@ export function BookmarkAccountSelector(props) {
|
|
|
192
192
|
}, [focusedItemIndex, options]);
|
|
193
193
|
props.clearRef.current = clearSelection;
|
|
194
194
|
return (React.createElement(React.Fragment, null,
|
|
195
|
-
React.createElement(Select, { id: "bookmark-account-select",
|
|
195
|
+
React.createElement(Select, { id: "bookmark-account-select", isOpen: isOpen, selected: selected, onSelect: (_, value) => onSelect(value), toggle: toggle, onOpenChange: (nextOpen) => {
|
|
196
196
|
setIsOpen(nextOpen);
|
|
197
197
|
if (!nextOpen) {
|
|
198
198
|
setInputValue('');
|
package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManageGroupedBookmarkedAccountsTab.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAOhD,UAAU,MAAM;IACZ,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAED,wBAAgB,kCAAkC,CAAC,EAAE,yBAAyB,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ManageGroupedBookmarkedAccountsTab.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAOhD,UAAU,MAAM;IACZ,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAED,wBAAgB,kCAAkC,CAAC,EAAE,yBAAyB,EAAE,EAAE,MAAM,qBAoZvF"}
|
package/lib/esm/components/ManageBookmarkedAccountsTab/ManageGroupedBookmarkedAccountsTab.js
CHANGED
|
@@ -151,11 +151,10 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
|
|
|
151
151
|
yield confirmation({
|
|
152
152
|
catchOnCancel: true,
|
|
153
153
|
confirmText: t('Yes, I am sure'),
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
React.createElement(
|
|
158
|
-
React.createElement(Trans, null, "You are choosing to remove this account from the selected bookmark.")))),
|
|
154
|
+
confirmButtonVariant: ButtonVariant.danger,
|
|
155
|
+
title: t('Are you sure?'),
|
|
156
|
+
description: (React.createElement("p", null,
|
|
157
|
+
React.createElement(Trans, null, "You are choosing to remove this account from the selected bookmark."))),
|
|
159
158
|
});
|
|
160
159
|
yield apiCalls.removeAccountApiCalls(account);
|
|
161
160
|
removeGroupedBookmarks(dispatchGlobalContext, bookmarkedGroupAccounts.data, [account.bookmarkId]);
|
|
@@ -178,11 +177,10 @@ export function ManageGroupedBookmarkedAccountsTab({ canManageBookmarkAccounts }
|
|
|
178
177
|
yield confirmation({
|
|
179
178
|
catchOnCancel: true,
|
|
180
179
|
confirmText: t('Yes, I am sure'),
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
React.createElement(
|
|
185
|
-
React.createElement(Trans, null, "Removing this bookmark will permanently delete it from your records.")))),
|
|
180
|
+
confirmButtonVariant: ButtonVariant.danger,
|
|
181
|
+
title: t('Are you sure?'),
|
|
182
|
+
description: (React.createElement("p", null,
|
|
183
|
+
React.createElement(Trans, null, "Removing this bookmark will permanently delete it from your records."))),
|
|
186
184
|
});
|
|
187
185
|
const rootBookmarIds = uniq(allGroups[group].map((account) => account.rootBookmarkId));
|
|
188
186
|
const promiseArry = rootBookmarIds.map((id) => __awaiter(this, void 0, void 0, function* () { return yield apiCalls.removeGroupAccount(id); }));
|
|
@@ -27,5 +27,5 @@ export default function ExpiredContentCategory({ category, isCategoryExpanded =
|
|
|
27
27
|
React.createElement(AccordionToggle, { id: category.categoryName, onClick: toggleExpanded },
|
|
28
28
|
React.createElement("h3", null, category.categoryName)),
|
|
29
29
|
React.createElement(AccordionContent, null,
|
|
30
|
-
React.createElement("ul", { className: "list-flat
|
|
30
|
+
React.createElement("ul", { className: "list-flat" }, sortedExpiredContents.map((content, i) => (React.createElement(ExpiredContentSingleItem, { key: content.topContentId, content: content, category: category }))))))) : (React.createElement(React.Fragment, null));
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpiredContentManager.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentManager.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,MAAM,CAAC,OAAO,UAAU,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ExpiredContentManager.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentManager.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAUhF,MAAM,CAAC,OAAO,UAAU,qBAAqB,sBAqH5C"}
|
|
@@ -52,16 +52,17 @@ export default function ExipredContentManager() {
|
|
|
52
52
|
return (React.createElement(React.Fragment, null,
|
|
53
53
|
React.createElement(ExpiredContentHeader, null),
|
|
54
54
|
React.createElement("div", { className: "toolbar" },
|
|
55
|
-
React.createElement(
|
|
56
|
-
|
|
57
|
-
React.createElement("
|
|
58
|
-
|
|
59
|
-
React.createElement(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
React.createElement("div", { className: "toolbar-content" },
|
|
56
|
+
React.createElement(TopContentSearch, { className: "pf-v6-u-display-flex pf-v6-u-flex-direction-row pf-v6-u-flex-fill pf-v6-u-align-items-center", dataTrackingId: "expired-content-filter-manage", topContentData: expiredContentEditState, onSearch: onSearch, topContentResultsWrapperRef: expiredContentResultsRef, isDisabled: expiredContentResponse.isFetching, searchQuery: searchQuery, setSearchQuery: setSearchQuery }),
|
|
57
|
+
React.createElement(Switch, { id: "content-approaching-expiry", className: "pf-v6-u-mt-sm", label: t('Show approaching expiry'), isChecked: showApprochingExpiry, onChange: handleChange })),
|
|
58
|
+
React.createElement("div", { className: "toolbar-content" },
|
|
59
|
+
React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-flex-direction-row pf-v6-u-align-items-center pf-v6-u-justify-content-flex-end" },
|
|
60
|
+
React.createElement("label", { htmlFor: 'tag-selector' },
|
|
61
|
+
React.createElement(Trans, null, "All tags")),
|
|
62
|
+
React.createElement(TagsSelector, { tagOptions: availableTags, onChange: onTagFilterChange, selectedTags: filteredTags, disabled: expiredContentResponse.isFetching })))),
|
|
63
|
+
React.createElement("div", { className: "expired-content-manage-wrapper pf-v6-u-p-md", ref: expiredContentResultsRef }, expiredContentResponse.isFetching ? (React.createElement(Bullseye, null,
|
|
63
64
|
React.createElement(EmptyState, { variant: EmptyStateVariant.full },
|
|
64
|
-
React.createElement(Spinner, { size: "lg" })))) : isEmpty(filteredEC) ? (React.createElement(EmptyState, { icon: SearchIcon, titleText: React.createElement(Trans, null, "No contents found"), variant: EmptyStateVariant.
|
|
65
|
+
React.createElement(Spinner, { size: "lg" })))) : isEmpty(filteredEC) ? (React.createElement(EmptyState, { icon: SearchIcon, titleText: React.createElement(Trans, null, "No contents found"), variant: EmptyStateVariant.full },
|
|
65
66
|
React.createElement(EmptyStateBody, null,
|
|
66
|
-
React.createElement(Trans, null, "There are no contents to display")))) : (React.createElement(Accordion,
|
|
67
|
+
React.createElement(Trans, null, "There are no contents to display")))) : (React.createElement(Accordion, { togglePosition: "start" }, filteredEC.map((category, i) => (React.createElement(ExpiredContentCategory, { key: category.id, category: category, isCategoryExpanded: !isEmpty(searchQuery) || !isEmpty(filteredTags) }))))))));
|
|
67
68
|
}
|
|
@@ -63,7 +63,7 @@ export default function ExpiredContentSingleItem({ content, category }) {
|
|
|
63
63
|
expired: formatDate(content.expiryDate),
|
|
64
64
|
});
|
|
65
65
|
return (React.createElement(React.Fragment, null, isPreview ? (React.createElement("li", { className: `push-bottom-narrow` },
|
|
66
|
-
React.createElement("a", { className:
|
|
66
|
+
React.createElement("a", { className: "pcm-manage-top-content pf-v6-u-mr-sm", "data-tracking-id": "pcm-manage-top-content", href: content.contentUrl, target: "_blank", rel: "noopener noreferrer" }, content.contentTitle),
|
|
67
67
|
React.createElement(Button, { variant: "link", isInline: true, icon: React.createElement(EditAltIcon, null), onClick: editToggle, title: 'Edit', "data-tracking-id": "edit-expired-top-content" }),
|
|
68
68
|
React.createElement("div", null,
|
|
69
69
|
lastModifiedBy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpiredContentSingleItemView.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentSingleItemView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExpiredContentSingleItemView.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageExpiredContents/ExpiredContentSingleItemView.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAIrE,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAIjG,UAAU,MAAM;IACZ,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,GACb,EAAE,MAAM,qBA8NR"}
|
|
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { Button, DatePicker, Flex, FlexItem, FormGroup, TextInput, ValidatedOptions } from '@patternfly/react-core';
|
|
10
|
+
import { Button, Card, CardBody, DatePicker, Flex, FlexItem, FormGroup, TextInput, ValidatedOptions, } from '@patternfly/react-core';
|
|
11
11
|
import { TagsSelector, ToastNotification } from '@rh-support/components';
|
|
12
12
|
import { getDrupalResIdIfTypeFromUrl, getText, isValidDate, isValidUrl } from '@rh-support/utils';
|
|
13
13
|
import { isEqual } from 'lodash';
|
|
@@ -110,38 +110,39 @@ export default function ExpiredContentSingleItemView({ category, content, onCanc
|
|
|
110
110
|
localContentTitle === content.contentTitle &&
|
|
111
111
|
isEqual(localTagsIds, oldTagsIds) &&
|
|
112
112
|
isEqual(localExpiryDate.split('T')[0], ((_b = content.expiryDate) === null || _b === void 0 ? void 0 : _b.split('T')[0]) || ''));
|
|
113
|
-
return (React.createElement(
|
|
114
|
-
React.createElement(
|
|
115
|
-
React.createElement("
|
|
116
|
-
"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
React.createElement(
|
|
133
|
-
React.createElement(
|
|
134
|
-
React.createElement(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
113
|
+
return (React.createElement(Card, { variant: "secondary", className: "pf-v6-u-mb-md" },
|
|
114
|
+
React.createElement(CardBody, null,
|
|
115
|
+
React.createElement("form", { noValidate: true, onSubmit: onSubmit, className: "push-bottom", ref: ref },
|
|
116
|
+
React.createElement("div", { className: "form-group" },
|
|
117
|
+
React.createElement("label", { htmlFor: localContentTitle },
|
|
118
|
+
"Heading",
|
|
119
|
+
' ',
|
|
120
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
121
|
+
React.createElement(TextInput, { isRequired: true, type: "text", maxLength: 254, required: true, value: localContentTitle, isDisabled: isFetchingSolrSearch, "aria-label": t('Copy and paste the heading for consistency'), placeholder: t('Copy and paste the heading for consistency'), onChange: (e, v) => {
|
|
122
|
+
onContentTitleChange(v, e);
|
|
123
|
+
}, validated: contentTitleIsValid ? ValidatedOptions.default : ValidatedOptions.error })),
|
|
124
|
+
React.createElement("div", { className: "form-group" },
|
|
125
|
+
React.createElement("label", { htmlFor: localContentUrl },
|
|
126
|
+
"Link to content",
|
|
127
|
+
' ',
|
|
128
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
129
|
+
React.createElement(TextInput, { type: "url", maxLength: 254, isRequired: true, pattern: "^(http(s)?:\\/\\/)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", value: getTopContentUrl(localContentUrl), "aria-label": t('Entering a solution or article link first will automatically generate the heading for you'), placeholder: t('Entering a solution or article link first will automatically generate the heading for you'), onChange: (evt, val) => {
|
|
130
|
+
onContentUrlChange(val, evt);
|
|
131
|
+
}, validated: contentUrlIsValid ? ValidatedOptions.default : ValidatedOptions.error })),
|
|
132
|
+
React.createElement(Flex, { className: "pf-v6-u-my-lg" },
|
|
133
|
+
React.createElement(FlexItem, { flex: { default: 'flex_1' } },
|
|
134
|
+
React.createElement(FormGroup, { label: t('Tags') },
|
|
135
|
+
React.createElement(TagsSelector, { tagOptions: tagOptions, onChange: handleLocalTagChange, selectedTags: localSelectedTags, placeholder: t('Select tags to improve discoverability'), id: "expired-content-tag" }))),
|
|
136
|
+
React.createElement(FlexItem, null,
|
|
137
|
+
React.createElement(FormGroup, { label: t('Expiry date') },
|
|
138
|
+
React.createElement(DatePicker, { onBlur: onExpiryDateChange, onChange: onExpiryDateChange, value: !isEmpty(localExpiryDate) ? localExpiryDate.split('T')[0] : '', validators: [expiryDateValidator], id: "content-expiry-date", invalidFormatText: t('Invalid date format') })))),
|
|
139
|
+
React.createElement("span", { className: "top-content-single-item-footer" },
|
|
140
|
+
React.createElement("span", null,
|
|
141
|
+
React.createElement(Button, { variant: "primary", onClick: onContentSave, isDisabled: isSaveButtonDisabled || isSaving, isLoading: isSaving },
|
|
142
|
+
React.createElement(Trans, null, "Save")),
|
|
143
|
+
' ',
|
|
144
|
+
React.createElement(Button, { variant: "tertiary", onClick: onCancel, "data-tracking-id": "cancel-button-top-content" },
|
|
145
|
+
React.createElement(Trans, null, "Cancel"))),
|
|
146
|
+
React.createElement("span", { className: "content-actions" },
|
|
147
|
+
React.createElement(Button, { variant: "danger", "aria-label": t('Delete content'), onClick: onDelete, isDisabled: isDeleting }, "Delete")))))));
|
|
147
148
|
}
|
|
@@ -44,11 +44,11 @@ export function PreferencesACL() {
|
|
|
44
44
|
React.createElement("div", { className: "form-group" },
|
|
45
45
|
React.createElement("label", null,
|
|
46
46
|
React.createElement(Trans, null, "Enable Case Group ACL for my account")),
|
|
47
|
-
React.createElement("div", { className: "preference-page-switch-container" },
|
|
47
|
+
React.createElement("div", { className: "preference-page-switch-container pf-v6-u-mt-sm" },
|
|
48
48
|
React.createElement(PreferenceSwitch, { id: "ACL-switch", label: isAclActivated ? t('ACL Enabled') : t('ACL Disabled'), isChecked: isAclActivated, onSwitchChange: onAclSwitch }),
|
|
49
49
|
React.createElement("div", { className: "prefhostnameTooltip" },
|
|
50
50
|
React.createElement(Tooltip, { content: t('This determines if the account is utilizing case group access controls'), position: "right" },
|
|
51
|
-
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm" })),
|
|
51
|
+
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm cursor-pointer" })),
|
|
52
52
|
isAclLoading && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" })))),
|
|
53
53
|
React.createElement("div", { className: "pf-v6-u-mt-lg" },
|
|
54
54
|
React.createElement("label", null,
|
|
@@ -216,6 +216,6 @@ export function PreferencesCaseView(props) {
|
|
|
216
216
|
React.createElement(PreferenceSwitch, { id: "share-hostnames-switch", label: 'Share hostnames', isChecked: isSharingHostNames, onSwitchChange: onShareHostNamesSwitch }),
|
|
217
217
|
React.createElement("div", { className: "prefhostnameTooltip" },
|
|
218
218
|
React.createElement(Tooltip, { content: prefHostnameCopy, position: "right" },
|
|
219
|
-
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm" })),
|
|
219
|
+
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm cursor-pointer" })),
|
|
220
220
|
isHostnamesLoading && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))))))))));
|
|
221
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManageTable.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageTable/ManageTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,EAMf,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ManageTable.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageTable/ManageTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,EAMf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,SAAS,EAA4C,MAAM,wBAAwB,CAAC;AACtG,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,MAAM;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,cAAc,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IAEjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,GAAG,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,qBAoDxC"}
|
|
@@ -10,6 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import { Alert, AlertActionCloseButton, Bullseye, EmptyState, EmptyStateBody, EmptyStateVariant, PaginationVariant, } from '@patternfly/react-core';
|
|
13
|
+
import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
|
|
13
14
|
// Removed direct imports from @patternfly/react-table to avoid version conflicts
|
|
14
15
|
import { PFTable, TableComponent, TablePagination } from '@rh-support/components';
|
|
15
16
|
import React from 'react';
|
|
@@ -18,7 +19,7 @@ const noResultFoundRow = (noResultString = '') => ({
|
|
|
18
19
|
heightAuto: true,
|
|
19
20
|
colSpan: 10,
|
|
20
21
|
content: (React.createElement(Bullseye, null,
|
|
21
|
-
React.createElement(EmptyState, { headingLevel: "h3", titleText: React.createElement(React.Fragment, null,
|
|
22
|
+
React.createElement(EmptyState, { headingLevel: "h3", icon: SearchIcon, titleText: React.createElement(React.Fragment, null,
|
|
22
23
|
React.createElement(Trans, null, "No results found")), variant: EmptyStateVariant.xs },
|
|
23
24
|
React.createElement(EmptyStateBody, null, noResultString ? noResultString : React.createElement(Trans, null, "There are no results to display."))))),
|
|
24
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagsManager.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageTags/TagsManager.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TagsManager.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageTags/TagsManager.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAOxE,MAAM,CAAC,OAAO,UAAU,WAAW,sBA4YlC"}
|
|
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { ActionList, ActionListItem, Bullseye, Button, ButtonVariant, EmptyState, EmptyStateVariant,
|
|
10
|
+
import { ActionList, ActionListItem, Bullseye, Button, ButtonVariant, EmptyState, EmptyStateVariant, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, Spinner, TextInput, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
|
|
11
11
|
import PencilAltIcon from '@patternfly/react-icons/dist/js/icons/pencil-alt-icon';
|
|
12
12
|
import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
|
|
13
13
|
import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
|
|
@@ -196,34 +196,43 @@ export default function TagsManager() {
|
|
|
196
196
|
React.createElement(Button, { icon: React.createElement(TrashIcon, null), "aria-label": `delete tag ${tagsByIds[id].tagName}`, variant: "plain", "data-tracking-id": "delete-tag", onClick: () => onDeleteTagClick(tagsByIds[id]) })))),
|
|
197
197
|
},
|
|
198
198
|
];
|
|
199
|
-
const CreateTagModel = (React.createElement(Modal, {
|
|
200
|
-
React.createElement(
|
|
201
|
-
React.createElement(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
199
|
+
const CreateTagModel = (React.createElement(Modal, { onClose: onCancelCreateNewTag, isOpen: createTagModalOpen },
|
|
200
|
+
React.createElement(ModalHeader, null,
|
|
201
|
+
React.createElement("h2", null, t('Create a tag'))),
|
|
202
|
+
React.createElement(ModalBody, null,
|
|
203
|
+
React.createElement(FormGroup, { label: "Tag name", isRequired: true },
|
|
204
|
+
React.createElement(TextInput, { isRequired: true, type: "text", id: "create-new-tag-text-input", value: newTagName, onChange: (e, v) => {
|
|
205
|
+
setNewTagName(v);
|
|
206
|
+
setCreateTagError('');
|
|
207
|
+
}, placeholder: t('Enter a unique name to create a tag'), validated: isEmpty(createTagError) ? 'default' : 'error' }),
|
|
208
|
+
!isEmpty(createTagError) && (React.createElement(FormHelperText, null,
|
|
209
|
+
React.createElement(HelperText, null,
|
|
210
|
+
React.createElement(HelperTextItem, { variant: "error" }, createTagError)))))),
|
|
208
211
|
React.createElement(ModalFooter, null,
|
|
209
|
-
React.createElement(Button, { key: "create-tag", variant: ButtonVariant.primary, onClick: onCreateNewTag, isLoading: isCreatingNewTag, isDisabled: !isEmpty(createTagError) || isCreatingNewTag },
|
|
212
|
+
React.createElement(Button, { key: "create-tag", variant: ButtonVariant.primary, onClick: onCreateNewTag, isLoading: isCreatingNewTag, isDisabled: isEmpty(newTagName) || !isEmpty(createTagError) || isCreatingNewTag },
|
|
210
213
|
React.createElement(Trans, null, "Create")),
|
|
211
214
|
React.createElement(Button, { key: "cancel-create-tag", variant: ButtonVariant.link, onClick: onCancelCreateNewTag }, "Cancel"))));
|
|
212
|
-
const EditTagModal = (React.createElement(Modal, {
|
|
213
|
-
React.createElement(
|
|
214
|
-
React.createElement(
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
215
|
+
const EditTagModal = (React.createElement(Modal, { isOpen: editTagModalOpen, onClose: onEditCancel },
|
|
216
|
+
React.createElement(ModalHeader, null,
|
|
217
|
+
React.createElement("h2", null, t('Edit Tag'))),
|
|
218
|
+
React.createElement(ModalBody, null,
|
|
219
|
+
React.createElement(FormGroup, { label: "Tag name", isRequired: true },
|
|
220
|
+
React.createElement(TextInput, { isRequired: true, type: "text", id: "edit-tag-text-input", value: editTagName, onChange: (e, v) => {
|
|
221
|
+
setEditTagName(v);
|
|
222
|
+
setEditTagError('');
|
|
223
|
+
}, placeholder: t('Enter a unique name for this tag') }),
|
|
224
|
+
!isEmpty(editTagError) && (React.createElement(FormHelperText, null,
|
|
225
|
+
React.createElement(HelperText, null,
|
|
226
|
+
React.createElement(HelperTextItem, { variant: "error" }, editTagError)))))),
|
|
221
227
|
React.createElement(ModalFooter, null,
|
|
222
228
|
React.createElement(Button, { key: "edit-tag", variant: ButtonVariant.primary, onClick: onEditTagConfirm, isLoading: isEditingTagName, isDisabled: !isEmpty(editTagError) || isEditingTagName },
|
|
223
229
|
React.createElement(Trans, null, "Save")),
|
|
224
230
|
React.createElement(Button, { key: "cancel-edit-tag", variant: ButtonVariant.link, onClick: onEditCancel }, "Cancel"))));
|
|
225
|
-
const DeleteTagModel = () => (React.createElement(Modal, {
|
|
226
|
-
React.createElement(
|
|
231
|
+
const DeleteTagModel = () => (React.createElement(Modal, { isOpen: deleteTagModalOpen, onClose: () => setDeleteTagModalOpen(false) },
|
|
232
|
+
React.createElement(ModalHeader, null,
|
|
233
|
+
React.createElement("h2", null, t('Are you sure?'))),
|
|
234
|
+
React.createElement(ModalBody, null,
|
|
235
|
+
React.createElement(Trans, null, "Deleting this tag will permanently untag all content associated with it. Are you sure you want to proceed?")),
|
|
227
236
|
React.createElement(ModalFooter, null,
|
|
228
237
|
React.createElement(Button, { key: "delete-tag", variant: ButtonVariant.danger, onClick: onDeleteTagConfirm, isLoading: isDeletingTag, isDisabled: isDeletingTag },
|
|
229
238
|
React.createElement(Trans, null, "Yes, I am sure")),
|
|
@@ -236,21 +245,20 @@ export default function TagsManager() {
|
|
|
236
245
|
React.createElement("h2", null, "Tags"),
|
|
237
246
|
React.createElement("p", { className: "pf-v6-u-my-sm" },
|
|
238
247
|
React.createElement(Trans, null, "Add, edit or remove tags and manage tagged top content."))),
|
|
239
|
-
React.createElement("div", { className: "toolbar" },
|
|
240
|
-
React.createElement(
|
|
248
|
+
React.createElement("div", { className: "toolbar pf-v6-u-display-flex pf-v6-u-flex-direction-row pf-v6-u-align-items-center pf-v6-u-justify-content-space-between" },
|
|
249
|
+
React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-flex-direction-row pf-v6-u-align-items-center" },
|
|
241
250
|
React.createElement("label", { htmlFor: "tag-search-input" },
|
|
242
251
|
React.createElement(Trans, null, "Search Tag")),
|
|
243
|
-
React.createElement("div",
|
|
252
|
+
React.createElement("div", null,
|
|
244
253
|
React.createElement(TextInputGroup, null,
|
|
245
254
|
React.createElement(TextInputGroupMain, { type: "text", id: "tag-search-input", placeholder: t('Search for a tag'), icon: React.createElement(SearchIcon, null), value: tagSearchTerm, onChange: (e, v) => setTagSearchTerm(v) }),
|
|
246
255
|
!isEmpty(tagSearchTerm) && (React.createElement(TextInputGroupUtilities, null,
|
|
247
|
-
React.createElement(Button, { icon: React.createElement(TimesIcon, null), variant: "plain", onClick: onSearchClear, "aria-label": "Clear button and input" }))))),
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
React.createElement(Trans, null, "Create tag"))))),
|
|
256
|
+
React.createElement(Button, { icon: React.createElement(TimesIcon, null), variant: "plain", onClick: onSearchClear, "aria-label": "Clear button and input" })))))),
|
|
257
|
+
React.createElement(Button, { variant: ButtonVariant.primary, isInline: true, onClick: () => {
|
|
258
|
+
setCreateTagModalOpen(true);
|
|
259
|
+
setNewTagName(tagSearchTerm);
|
|
260
|
+
}, "data-tracking-id": "tag-create-button" },
|
|
261
|
+
React.createElement(Trans, null, "Create tag"))),
|
|
254
262
|
React.createElement("div", { className: "tags-manager-wrapper" },
|
|
255
263
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading tags list') } }, tagResponse.isFetching ? (React.createElement(Bullseye, null,
|
|
256
264
|
React.createElement(EmptyState, { variant: EmptyStateVariant.full },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,yBAAyB,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,UAAW,MAAM,sBAiOpD,CAAC"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { customEmail } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Button, ButtonVariant, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalFooter, ModalVariant, TextInput, ValidatedOptions, } from '@patternfly/react-core';
|
|
11
|
+
import { Button, ButtonVariant, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, TextInput, ValidatedOptions, } from '@patternfly/react-core';
|
|
12
12
|
import { ToastNotification, useFetch } from '@rh-support/components';
|
|
13
13
|
import { isEmailValid } from '@rh-support/utils';
|
|
14
14
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -105,26 +105,33 @@ export const NotificationEmailsModal = (props) => {
|
|
|
105
105
|
const specialCharRegex = /[^a-zA-Z0-9\s]/;
|
|
106
106
|
return specialCharRegex.test(s);
|
|
107
107
|
};
|
|
108
|
-
return (React.createElement(Modal, { id: "Add-edit-notification-email-modal", className: "pf-modal-overflow-visible",
|
|
109
|
-
React.createElement(
|
|
110
|
-
React.createElement(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
108
|
+
return (React.createElement(Modal, { id: "Add-edit-notification-email-modal", className: "pf-modal-overflow-visible", "aria-describedby": "Add-edit-notification-email-modal", isOpen: props.isOpen, onClose: props.onClose, onEscapePress: props.onClose, variant: ModalVariant.medium },
|
|
109
|
+
React.createElement(ModalHeader, null,
|
|
110
|
+
React.createElement("h2", null, t('Edit notification email'))),
|
|
111
|
+
React.createElement(ModalBody, null,
|
|
112
|
+
React.createElement(Form, null,
|
|
113
|
+
React.createElement(FormGroup, { label: t('Email address'), isRequired: true, fieldId: "email-notification-first-emailaddress" },
|
|
114
|
+
React.createElement(TextInput, { value: email, isRequired: true, type: "text", onChange: (_event, localemail) => onEmailChange(localemail), "aria-label": t('Email address'), placeholder: t('Email address'), maxLength: 254, validated: isValidEmail && !isEmailDuplicate ? ValidatedOptions.default : ValidatedOptions.error, isDisabled: !props.isAddingNotificationEmail }),
|
|
115
|
+
!(isValidEmail && !isEmailDuplicate) && (React.createElement(FormHelperText, null,
|
|
116
|
+
React.createElement(HelperText, null,
|
|
117
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, !isValidEmail
|
|
118
|
+
? t('Invalid email')
|
|
119
|
+
: isEmailDuplicate
|
|
120
|
+
? t('Duplicate Email')
|
|
121
|
+
: ''))))),
|
|
122
|
+
React.createElement(FormGroup, { label: t('First name'), isRequired: true, fieldId: "email-notification-first-name" },
|
|
123
|
+
React.createElement(TextInput, { value: firstName, isRequired: true, validated: isValidFirstName ? ValidatedOptions.default : ValidatedOptions.error, type: "text", onChange: (_event, firstName) => onFirstNameChange(firstName), "aria-label": t('First name'), placeholder: t('First name'), maxLength: 254 }),
|
|
124
|
+
!isValidFirstName && (React.createElement(FormHelperText, null,
|
|
125
|
+
React.createElement(HelperText, null,
|
|
126
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, isSpecialCharFirstName
|
|
127
|
+
? t('First name cannot contain special characters')
|
|
128
|
+
: t('First name cannot be empty')))))),
|
|
129
|
+
React.createElement(FormGroup, { label: t('Last name'), fieldId: "email-notification-last-name" },
|
|
130
|
+
React.createElement(TextInput, { value: lastName, type: "text", validated: isValidLastName ? ValidatedOptions.default : ValidatedOptions.error, onChange: (_event, lastName) => onLastNameChange(lastName), "aria-label": t('Last name'), placeholder: t('Last name'), maxLength: 254 }),
|
|
131
|
+
!isValidLastName && (React.createElement(FormHelperText, null,
|
|
132
|
+
React.createElement(HelperText, null,
|
|
133
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error },
|
|
134
|
+
React.createElement(Trans, null, "Last name cannot contain special characters")))))))),
|
|
128
135
|
React.createElement(ModalFooter, null,
|
|
129
136
|
React.createElement(Button, { key: "save", variant: ButtonVariant.primary, onClick: save, isDisabled: !isFormDirty() ||
|
|
130
137
|
isUpdating ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoTopContentFound.d.ts","sourceRoot":"","sources":["../../../../src/components/TopContentManagement/NoTopContentFound.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,MAAM;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,mCAAmC,CAAC,EAAE,OAAO,KAC5C,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,4BAA4B,EAAE,OAAO,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,4BAA4B,GAC/B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"NoTopContentFound.d.ts","sourceRoot":"","sources":["../../../../src/components/TopContentManagement/NoTopContentFound.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,MAAM;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,mCAAmC,CAAC,EAAE,OAAO,KAC5C,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,4BAA4B,EAAE,OAAO,CAAC;CACzC;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,4BAA4B,GAC/B,EAAE,MAAM,qBA2FR"}
|
|
@@ -18,7 +18,7 @@ export function NoTopContentFound({ version, product, dataLength, onAddCategory,
|
|
|
18
18
|
xVersion,
|
|
19
19
|
" when minor version content is unavailable."))),
|
|
20
20
|
React.createElement("p", { className: "pf-v6-u-mb-md" },
|
|
21
|
-
React.createElement(Button, { variant:
|
|
21
|
+
React.createElement(Button, { variant: ButtonVariant.primary, isInline: true, onClick: () => onAddCategory(false, true, version) },
|
|
22
22
|
React.createElement(Trans, null,
|
|
23
23
|
' ',
|
|
24
24
|
"Create ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopContentComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAGH,oBAAoB,EAGvB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,yBAAyB;IACtC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"TopContentComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAGH,oBAAoB,EAGvB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,yBAAyB;IACtC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,CA+GlF,CAAC"}
|
|
@@ -42,20 +42,18 @@ export const TopContentComponent = (props) => {
|
|
|
42
42
|
};
|
|
43
43
|
const buttons = (React.createElement("div", { className: "pf-v6-c-accordion__expanded-content-footer" },
|
|
44
44
|
!isArrangingContent && props.categoryMode !== CategoryMode.NEW_SECTION && (React.createElement("span", null,
|
|
45
|
-
React.createElement(Button, { variant: "secondary", onClick: addContent, "data-tracking-id": "add-content-top-content" },
|
|
45
|
+
React.createElement(Button, { className: "pf-v6-u-mr-md", variant: "secondary", onClick: addContent, "data-tracking-id": "add-content-top-content" },
|
|
46
46
|
React.createElement(Trans, null, "Add content")),
|
|
47
|
-
' ',
|
|
48
47
|
React.createElement(Button, { variant: "secondary", onClick: arrangeSection, isDisabled: props.category.content.length < 2 },
|
|
49
48
|
React.createElement(Trans, null, "Arrange section")))),
|
|
50
49
|
isArrangingContent && (React.createElement("span", null,
|
|
51
|
-
React.createElement(Button, { variant: "primary", onClick: saveArrangement },
|
|
50
|
+
React.createElement(Button, { className: "pf-v6-u-mr-md", variant: "primary", onClick: saveArrangement },
|
|
52
51
|
React.createElement(Trans, null, "Save")),
|
|
53
|
-
' ',
|
|
54
52
|
React.createElement(Button, { variant: "link", onClick: cancelArrangement },
|
|
55
53
|
React.createElement(Trans, null, "Cancel"))))));
|
|
56
54
|
return (React.createElement("div", null,
|
|
57
55
|
React.createElement(Droppable, { droppableId: `${props.category.id}`, type: `drop-inner-${props.category.id}`, isDropDisabled: !isArrangingContent, key: `drop-inner-${props.category.id}` }, (provided) => (React.createElement("div", { ref: provided.innerRef },
|
|
58
|
-
React.createElement("ul", { id: "content-list", "aria-label": t('Content list'), className: "list-flat
|
|
56
|
+
React.createElement("ul", { id: "content-list", "aria-label": t('Content list'), className: "list-flat" },
|
|
59
57
|
props.category.content.map((content, i) => (React.createElement(Draggable, { key: `drag-inner-${i}${props.category.id}`, draggableId: `drag-inner-${i}${props.category.id}`, index: i, isDragDisabled: !isArrangingContent }, (provided, snapshot) => (React.createElement("div", Object.assign({ key: `${i}-c`, "aria-label": t('Content'), ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps),
|
|
60
58
|
React.createElement(TopContentSingleItem, { isArrangingContent: isArrangingContent, category: props.category, snapshot: snapshot, i: i, key: content.topContentId })))))),
|
|
61
59
|
provided.placeholder),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopContentSingleItem.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAiB,aAAa,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"TopContentSingleItem.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TopContentManagement/TopContentEditor/TopContentCategoryContent/TopContentSingleItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAiB,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAgCtG,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,OAAO,EAIH,oBAAoB,EAOvB,MAAM,wCAAwC,CAAC;AAIhD,UAAU,MAAM;IACZ,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,sBAAsB,CAAC,GAAG,KAAA,OASzC;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,6CA2B/C;AAED,eAAO,MAAM,oBAAoB,kDAAmD,MAAM,sBAugBzF,CAAC"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { search } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Button, DatePicker, Flex, FlexItem, FormGroup, Icon, Label, TextInput, ValidatedOptions, } from '@patternfly/react-core';
|
|
11
|
+
import { Button, Card, CardBody, DatePicker, Flex, FlexItem, FormGroup, Icon, Label, TextInput, ValidatedOptions, } from '@patternfly/react-core';
|
|
12
12
|
import EditAltIcon from '@patternfly/react-icons/dist/js/icons/edit-alt-icon';
|
|
13
13
|
import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
14
14
|
import GripVerticalIcon from '@patternfly/react-icons/dist/js/icons/grip-vertical-icon';
|
|
@@ -319,56 +319,58 @@ export const TopContentSingleItem = ({ isArrangingContent, category, snapshot, i
|
|
|
319
319
|
React.createElement(GripVerticalIcon, { style: { cursor: 'move' }, title: t('Drag'), color: "#06c", className: "pf-v6-u-mr-sm" }))),
|
|
320
320
|
!isArrangingContent ? (React.createElement(React.Fragment, null,
|
|
321
321
|
React.createElement(TopContentSingleItemLink, { url: getTopContentUrl(content.contentUrl), title: content.contentTitle, contentId: content.topContentId, needsAttention: content.isAttentionNeeded, lastModifiedBy: lastModifiedBy, selectedVersion: selectedVersion }),
|
|
322
|
-
'
|
|
323
|
-
|
|
324
|
-
React.createElement("div", null, lastModifiedBy),
|
|
322
|
+
React.createElement(Button, { className: "pf-v6-u-ml-sm", variant: "link", isInline: true, icon: React.createElement(EditAltIcon, null), onClick: editToggle, title: 'Edit' }))) : (content.contentTitle),
|
|
323
|
+
React.createElement("div", { className: "pf-v6-u-mt-sm" }, lastModifiedBy),
|
|
325
324
|
React.createElement("div", null,
|
|
326
325
|
(content.tags || []).map((tag) => (React.createElement(Label, { isCompact: true, className: "pf-v6-u-mr-xs pf-v6-u-mt-sm", key: tag.id, color: filteredTags.some((t) => t.id === tag.id) ? 'yellow' : 'grey' }, tag.tagName))),
|
|
327
326
|
!isEmpty((_c = content.expiryDate) !== null && _c !== void 0 ? _c : '') && !isFutureDate(content.expiryDate) && (React.createElement(Label, { isCompact: true, className: "pf-v6-u-mr-xs pf-v6-u-mt-sm", color: "red" },
|
|
328
327
|
React.createElement(Trans, null, "Outdated Content")))))),
|
|
329
|
-
(!isPreview || content.mode === ContentMode.ADD || content.mode === ContentMode.NEW_SECTION_CONTENT) && (React.createElement(
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
"
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
"
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
328
|
+
(!isPreview || content.mode === ContentMode.ADD || content.mode === ContentMode.NEW_SECTION_CONTENT) && (React.createElement(Card, { variant: "secondary" },
|
|
329
|
+
React.createElement(CardBody, null,
|
|
330
|
+
React.createElement("form", { noValidate: true, onSubmit: onSubmit, ref: ref },
|
|
331
|
+
content.mode === ContentMode.NEW_SECTION_CONTENT && (React.createElement(AddNewCategoryDropDown, { onCategoryChange: onAddedNewCategoryChange })),
|
|
332
|
+
React.createElement("div", { className: "form-group" },
|
|
333
|
+
React.createElement("label", { htmlFor: localContentTitle },
|
|
334
|
+
"Heading",
|
|
335
|
+
' ',
|
|
336
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
337
|
+
React.createElement(TextInput, { isRequired: true, type: "text", maxLength: 254, required: true, value: localContentTitle, isDisabled: isFetchingSolrSearch, "aria-label": t('Copy and paste the heading for consistency'), placeholder: t('Copy and paste the heading for consistency'), onChange: (e, v) => {
|
|
338
|
+
onContentTitleChange(v, e);
|
|
339
|
+
}, validated: contentTitleIsValid && !isDuplicateTitle
|
|
340
|
+
? ValidatedOptions.default
|
|
341
|
+
: ValidatedOptions.error }),
|
|
342
|
+
isDuplicateTitle && (React.createElement("p", { className: "form-instructions form-invalid " },
|
|
343
|
+
React.createElement(ExclamationCircleIcon, { color: "#c9190b", className: "pf-u-mr-sm" }),
|
|
344
|
+
' ',
|
|
345
|
+
React.createElement(Trans, null, "Duplicate heading. Content with this heading is already present.")))),
|
|
346
|
+
React.createElement("div", { className: "form-group" },
|
|
347
|
+
React.createElement("label", { htmlFor: localContentUrl },
|
|
348
|
+
"Link to content",
|
|
349
|
+
' ',
|
|
350
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
351
|
+
React.createElement(TextInput, { type: "url", maxLength: 254, isRequired: true, pattern: "^(http(s)?:\\/\\/)+[\\w\\-\\._~:\\/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", value: getTopContentUrl(localContentUrl), "aria-label": t('Entering a solution or article link first will automatically generate the heading for you'), placeholder: t('Entering a solution or article link first will automatically generate the heading for you'), onChange: (evt, val) => {
|
|
352
|
+
onContentUrlChange(val, evt);
|
|
353
|
+
}, validated: contentUrlIsValid ? ValidatedOptions.default : ValidatedOptions.error }),
|
|
354
|
+
showDuplicateError && (React.createElement("p", { className: "form-instructions form-invalid" },
|
|
355
|
+
React.createElement(ExclamationCircleIcon, { color: "#c9190b", className: "pf-v6-u-mr-sm" }),
|
|
356
|
+
" Duplicate url. This url is already added in",
|
|
357
|
+
' ',
|
|
358
|
+
formatDuplicateWarning(duplicatUrlErrorArray),
|
|
359
|
+
"."))),
|
|
360
|
+
React.createElement(Flex, { className: "pf-v6-u-my-lg" },
|
|
361
|
+
React.createElement(FlexItem, { flex: { default: 'flex_1' } },
|
|
362
|
+
React.createElement(FormGroup, { label: t('Tags') },
|
|
363
|
+
React.createElement("div", { className: `${isEmpty(tagOptions) ? 'menu-is-disabld' : ''}` },
|
|
364
|
+
React.createElement(TagsSelector, { tagOptions: tagOptions, onChange: handleLocalTagChange, selectedTags: localSelectedTags, placeholder: t('Select tags to improve discoverability'), id: "top-content-tag" })))),
|
|
365
|
+
React.createElement(FlexItem, null,
|
|
366
|
+
React.createElement(FormGroup, { label: t('Expiry date') },
|
|
367
|
+
React.createElement(DatePicker, { onBlur: onExpiryDateChange, onChange: onExpiryDateChange, value: !isEmpty(localExpiryDate) ? localExpiryDate.split('T')[0] : '', validators: [expiryDateValidator], id: "content-expiry-date", invalidFormatText: t('Invalid date format') })))),
|
|
368
|
+
React.createElement("span", { className: "top-content-single-item-footer" },
|
|
369
|
+
React.createElement("span", null,
|
|
370
|
+
React.createElement(Button, { className: "pf-v6-u-mr-sm", variant: "primary", onClick: onSave, isDisabled: isSaveButtonDisabled || isSaving, isLoading: isSaving },
|
|
371
|
+
React.createElement(Trans, null, "Save")),
|
|
372
|
+
React.createElement(Button, { variant: "tertiary", onClick: onCancel, "data-tracking-id": "cancel-button-top-content" },
|
|
373
|
+
React.createElement(Trans, null, "Cancel"))),
|
|
374
|
+
React.createElement("span", { className: "content-actions" }, content.mode !== ContentMode.ADD &&
|
|
375
|
+
content.mode !== ContentMode.NEW_SECTION_CONTENT && (React.createElement(Button, { variant: "danger", "aria-label": t('Delete content'), onClick: onDelete }, "Delete"))))))))));
|
|
374
376
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopContentEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/TopContentEditor/TopContentEditor.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAiChF,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"TopContentEditor.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/TopContentEditor/TopContentEditor.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAiChF,wBAAgB,gBAAgB,sBAsX/B"}
|
|
@@ -155,7 +155,7 @@ export function TopContentEditor() {
|
|
|
155
155
|
React.createElement("label", { htmlFor: 'tag-selector' },
|
|
156
156
|
React.createElement(Trans, null, "All tags")),
|
|
157
157
|
React.createElement(TagsSelector, { tagOptions: tags, onChange: onTagFilterChange, selectedTags: filteredTags, disabled: isEmpty(flagContentEditState) })))),
|
|
158
|
-
React.createElement("div", { className: "top-content-manage-wrapper pf-v6-u-
|
|
158
|
+
React.createElement("div", { className: "top-content-manage-wrapper pf-v6-u-p-md" },
|
|
159
159
|
!topContentResponse.isFetching && React.createElement(TopContentSuggestion, { searchQuery: searchQuery }),
|
|
160
160
|
topContentResponse.isFetching ? (React.createElement(Bullseye, null,
|
|
161
161
|
React.createElement(EmptyState, { variant: EmptyStateVariant.full },
|
|
@@ -166,7 +166,7 @@ export function TopContentEditor() {
|
|
|
166
166
|
provided.innerRef(el);
|
|
167
167
|
topContentResultsRef.current = el;
|
|
168
168
|
} }),
|
|
169
|
-
React.createElement(Accordion, { asDefinitionList: true },
|
|
169
|
+
React.createElement(Accordion, { asDefinitionList: true, togglePosition: "start" },
|
|
170
170
|
!topContentResponse.isFetching &&
|
|
171
171
|
filteredTC.map((category, i) => (React.createElement("div", { key: `div-${i}-${category.id}` },
|
|
172
172
|
category.catMode === CategoryMode.EXISTING_SECTION && (React.createElement(Draggable, { draggableId: `c${category.id}`, index: i, isDragDisabled: !isArrangingCats, key: `c-${i}-${category.id}` }, (provided, snapshot) => category.helperText ? (React.createElement(Tooltip, { content: React.createElement("div", null, category.helperText) },
|
|
@@ -184,10 +184,9 @@ export function TopContentEditor() {
|
|
|
184
184
|
isCategoryLimitReached && React.createElement(CategoryLimit, null),
|
|
185
185
|
React.createElement(Button, { variant: "primary", onClick: () => onAddCategory(isContentOnlyForMajorVersion, false, selectedVersion), isDisabled: isCategoryLimitReached, id: "add-new-section-topcontent", "data-tracking-id": "add-new-section-topcontent" },
|
|
186
186
|
React.createElement(Trans, null, "Add a new section")),
|
|
187
|
-
|
|
188
|
-
React.createElement(Button, { variant: "secondary", onClick: arrangeSection, isDisabled: flagContentEditState.length < 2 },
|
|
187
|
+
React.createElement(Button, { variant: "secondary", className: "pf-v6-u-ml-sm", onClick: arrangeSection, isDisabled: flagContentEditState.length < 2 },
|
|
189
188
|
React.createElement(Trans, null, "Arrange section")),
|
|
190
|
-
isMajorOrNamedVersion(selectedVersion) && (React.createElement(Button, { variant: "link", className: "pf-v6-u-float-right", isInline: true, onClick: onOpenModal },
|
|
189
|
+
isMajorOrNamedVersion(selectedVersion) && (React.createElement(Button, { variant: "link", className: "pf-v6-u-float-right pf-v6-u-ml-sm", isInline: true, onClick: onOpenModal },
|
|
191
190
|
React.createElement(Trans, null, "View performance"))))),
|
|
192
191
|
isArrangingCats && (React.createElement(React.Fragment, null,
|
|
193
192
|
React.createElement(Button, { variant: "primary", onClick: onSaveArrangement },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopContentProductVersionSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/TopContentManagement/TopContentProductVersionSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"TopContentProductVersionSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/TopContentManagement/TopContentProductVersionSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAYnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAsC,MAAM,OAAO,CAAC;AAM3D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;CACrB;AAQD,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,2BAG1E;AAqBD,iBAAS,gCAAgC,CAAC,KAAK,EAAE,MAAM,qBA6MtD;kBA7MQ,gCAAgC;;;AAgNzC,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { products as productsApi } from '@cee-eng/hydrajs';
|
|
2
|
-
import { MenuToggle, Select, SelectOption, TextInputGroup, TextInputGroupMain, } from '@patternfly/react-core';
|
|
2
|
+
import { Button, MenuToggle, Select, SelectOption, TextInputGroup, TextInputGroupMain, } from '@patternfly/react-core';
|
|
3
3
|
import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
|
|
4
4
|
import { SingleSelectDropdown, useFetch } from '@rh-support/components';
|
|
5
5
|
import { getUniqueSortedVersions, getVersion } from '@rh-support/utils';
|
|
@@ -135,15 +135,15 @@ function TopContentProductVersionSelector(props) {
|
|
|
135
135
|
} },
|
|
136
136
|
React.createElement(TextInputGroup, { isPlain: true },
|
|
137
137
|
React.createElement(TextInputGroupMain, { value: input, onClick: onToggleClick, onChange: onChange, autoComplete: "off", innerRef: textInputRef, placeholder: t('Select a product'), role: "combobox", isExpanded: isProductOpen })),
|
|
138
|
-
!isEmpty(selected) && (React.createElement(TimesCircleIcon, { "aria-hidden": true, onClick: (e) => {
|
|
138
|
+
!isEmpty(selected) && (React.createElement(Button, { variant: "plain", icon: React.createElement(TimesCircleIcon, { "aria-hidden": true }), onClick: (e) => {
|
|
139
139
|
e.stopPropagation();
|
|
140
140
|
onProductClear();
|
|
141
|
-
}
|
|
141
|
+
} }))));
|
|
142
142
|
return (React.createElement("div", { className: "toolbar" },
|
|
143
143
|
React.createElement("div", { className: "toolbar-left" },
|
|
144
144
|
React.createElement("label", { htmlFor: 'tc-product-selector-dropdown-toggle' },
|
|
145
145
|
React.createElement(Trans, null, "Product")),
|
|
146
|
-
React.createElement(Select, Object.assign({ toggle: toggle, selected: selected, isOpen: isProductOpen, onSelect: onProductSelect }, (isLoadingProducts && { loadingVariant: 'spinner' }), { id: productLabelId, "data-tracking-id": productLabelId, "aria-label": t(productLabelId) }), getProductOptions(productOptions, input))),
|
|
146
|
+
React.createElement(Select, Object.assign({ isScrollable: true, toggle: toggle, selected: selected, isOpen: isProductOpen, maxMenuHeight: "20rem", onSelect: onProductSelect }, (isLoadingProducts && { loadingVariant: 'spinner' }), { id: productLabelId, "data-tracking-id": productLabelId, "aria-label": t(productLabelId) }), getProductOptions(productOptions, input))),
|
|
147
147
|
React.createElement("div", { className: "toolbar-right" },
|
|
148
148
|
React.createElement("label", { htmlFor: "version-selector-dropdown-toggle" },
|
|
149
149
|
React.createElement(Trans, null, "Version")),
|
package/lib/esm/scss/_main.scss
CHANGED
|
@@ -66,6 +66,15 @@
|
|
|
66
66
|
margin-bottom: 1rem;
|
|
67
67
|
display: inherit;
|
|
68
68
|
|
|
69
|
+
.manage-group-actions-toggle-options {
|
|
70
|
+
padding-top: 10px;
|
|
71
|
+
padding-bottom: 10px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.manage-group-actions-toggle-options .pf-v6-c-menu-toggle__controls {
|
|
75
|
+
display: none;
|
|
76
|
+
}
|
|
77
|
+
|
|
69
78
|
& > *:nth-child(2):not(.group-action) {
|
|
70
79
|
width: 100%;
|
|
71
80
|
// max-width: 440px;
|
|
@@ -107,14 +116,13 @@
|
|
|
107
116
|
align-items: flex-start;
|
|
108
117
|
|
|
109
118
|
.toolbar-left {
|
|
110
|
-
flex: 0 1
|
|
111
|
-
width: 70%;
|
|
119
|
+
flex: 0 1 50%;
|
|
112
120
|
margin-bottom: 0;
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
.toolbar-right {
|
|
116
|
-
flex: 1 1
|
|
117
|
-
max-width:
|
|
124
|
+
flex: 1 1 35%;
|
|
125
|
+
max-width: 35%;
|
|
118
126
|
margin-left: auto;
|
|
119
127
|
}
|
|
120
128
|
}
|
|
@@ -123,6 +131,7 @@
|
|
|
123
131
|
background-color: #d2d2d2;
|
|
124
132
|
border: 1px solid #d2d2d2;
|
|
125
133
|
color: #6a6e73;
|
|
134
|
+
border-radius: var(--pf-t--global--border--radius--small);
|
|
126
135
|
}
|
|
127
136
|
|
|
128
137
|
.group-actions-dropdown [disabled] {
|
|
@@ -204,6 +213,10 @@
|
|
|
204
213
|
.pf-v6-c-tab-content {
|
|
205
214
|
flex: 1;
|
|
206
215
|
}
|
|
216
|
+
|
|
217
|
+
#comment-signature-textarea {
|
|
218
|
+
resize: none !important;
|
|
219
|
+
}
|
|
207
220
|
}
|
|
208
221
|
|
|
209
222
|
#manage-top-content {
|
|
@@ -222,6 +235,10 @@
|
|
|
222
235
|
.top-content-manage-wrapper {
|
|
223
236
|
border: 1px solid #ccc;
|
|
224
237
|
border-top: none;
|
|
238
|
+
|
|
239
|
+
#no-content {
|
|
240
|
+
min-height: 30rem;
|
|
241
|
+
}
|
|
225
242
|
}
|
|
226
243
|
.top-content-needs-attention {
|
|
227
244
|
color: var(--pf-v5-global--danger-color--100);
|
|
@@ -240,6 +257,10 @@
|
|
|
240
257
|
dt {
|
|
241
258
|
margin: 0;
|
|
242
259
|
}
|
|
260
|
+
|
|
261
|
+
.pf-v6-c-empty-state {
|
|
262
|
+
min-height: 25rem;
|
|
263
|
+
}
|
|
243
264
|
}
|
|
244
265
|
}
|
|
245
266
|
|
|
@@ -315,6 +336,11 @@
|
|
|
315
336
|
|
|
316
337
|
.preference-card {
|
|
317
338
|
background-color: #f0f0f0;
|
|
339
|
+
min-height: 25rem;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.preference-card .pf-v6-c-card__header-main h3 {
|
|
343
|
+
font-weight: var(--pf-t--global--font--weight--heading--bold);
|
|
318
344
|
}
|
|
319
345
|
|
|
320
346
|
.preference-dropdown {
|
|
@@ -355,3 +381,58 @@ svg.hostnameSpinner {
|
|
|
355
381
|
flex-direction: row;
|
|
356
382
|
justify-content: space-between;
|
|
357
383
|
}
|
|
384
|
+
|
|
385
|
+
#manage-bookmarked-accounts {
|
|
386
|
+
.bookmark-account {
|
|
387
|
+
min-width: 22rem;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.pf-v6-c-empty-state__icon {
|
|
391
|
+
color: var(--pf-t--color--gray--30);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.pf-v6-c-empty-state__icon {
|
|
396
|
+
color: var(--pf-t--color--gray--30);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.pf-v6-c-menu-toggle.pf-m-typeahead .pf-v6-c-button:not(.pf-v6-c-menu-toggle__button) .pf-v6-svg,
|
|
400
|
+
.pf-v6-c-menu-toggle__text .pf-v6-c-button .pf-v6-svg {
|
|
401
|
+
color: var(--pf-t--color--gray--50);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.pf-v6-c-accordion__item.pf-m-expanded {
|
|
405
|
+
display: flex;
|
|
406
|
+
flex-direction: column;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.pf-v6-c-accordion__expandable-content-body {
|
|
410
|
+
padding: var(--pf-t--global--spacer--md);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
#manage-expired-content .toolbar {
|
|
414
|
+
display: flex;
|
|
415
|
+
flex-direction: row;
|
|
416
|
+
justify-content: space-between;
|
|
417
|
+
align-items: initial;
|
|
418
|
+
|
|
419
|
+
& > .toolbar-content button,
|
|
420
|
+
& > .toolbar-content input {
|
|
421
|
+
min-width: 25rem;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
& > .toolbar-content:last-child {
|
|
425
|
+
justify-content: flex-end;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
& > .toolbar-content:first-child {
|
|
429
|
+
display: flex;
|
|
430
|
+
flex-direction: column;
|
|
431
|
+
justify-content: space-between;
|
|
432
|
+
align-items: start;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
#tag-search-input input {
|
|
437
|
+
min-width: 30rem;
|
|
438
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/manage",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.34",
|
|
4
4
|
"description": "Customer Support Manage App",
|
|
5
5
|
"author": "Jordan Eudy <jeudy100@gmail.com>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -79,12 +79,12 @@
|
|
|
79
79
|
"@patternfly/patternfly": "6.2.1",
|
|
80
80
|
"@patternfly/react-core": "6.2.1",
|
|
81
81
|
"@patternfly/react-table": "6.2.1",
|
|
82
|
-
"@rh-support/components": "2.5.
|
|
82
|
+
"@rh-support/components": "2.5.28",
|
|
83
83
|
"@rh-support/configs": "2.0.21",
|
|
84
|
-
"@rh-support/react-context": "2.5.
|
|
84
|
+
"@rh-support/react-context": "2.5.30",
|
|
85
85
|
"@rh-support/types": "2.0.5",
|
|
86
|
-
"@rh-support/user-permissions": "2.5.
|
|
87
|
-
"@rh-support/utils": "2.5.
|
|
86
|
+
"@rh-support/user-permissions": "2.5.19",
|
|
87
|
+
"@rh-support/utils": "2.5.18",
|
|
88
88
|
"@types/react-beautiful-dnd": "^13.0.0",
|
|
89
89
|
"i18next": "^23.15.0",
|
|
90
90
|
"lodash": ">=4.17.15",
|
|
@@ -103,5 +103,5 @@
|
|
|
103
103
|
"defaults and supports es6-module",
|
|
104
104
|
"maintained node versions"
|
|
105
105
|
],
|
|
106
|
-
"gitHead": "
|
|
106
|
+
"gitHead": "dc194981196fd9b18c9d82ed3f39b7c66d65f5f3"
|
|
107
107
|
}
|