From b310a723b1d00ea95564080f648024a9c5cac7d8 Mon Sep 17 00:00:00 2001 From: Luong Minh Luat <157108501+lmluat-axonivy@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:37:17 +0700 Subject: [PATCH] Feature/ivyportal 18032 UI facelift conflict (#1311) * feature/IVYPORTAL-18032-UI-facelift-conflict - Add border in Actions menu of Task widget * feature/IVYPORTAL-18032-UI-facelift-conflict - Add border in actions menu for case widget * feature/IVYPORTAL-18032-UI-facelift-conflict - Update Edit external link UI * feature/IVYPORTAL-18032-UI-facelift-conflict - Add error message when uploading file fail * feature/IVYPORTAL-18032-UI-facelift-conflict - Update link and button following guidelines * feature/IVYPORTAL-18032-UI-facelift-conflict - Update UI of delete button * feature/IVYPORTAL-18032-UI-facelift-conflict - Update UI of remove/delete button * feature/IVYPORTAL-18032-UI-facelift-conflict - Change icon of action menu * feature/IVYPORTAL-18032-UI-facelift-conflict - Update jenkinsfile * feature/IVYPORTAL-18032-UI-facelift-conflict - Update jenkins file * feature/IVYPORTAL-18032-UI-facelift-conflict - Update UI of destroy button in CaseItemDetails and TaskItemDetails * feature/IVYPORTAL-18032-UI-facelift-conflict - Update height of upload image in external link * feature/IVYPORTAL-18032-UI-facelift-conflict - Update GUI tests * feature/IVYPORTAL-18032-UI-facelift-conflict - Update screenshot tests * feature/IVYPORTAL-18032-UI-facelift-conflict - Update UI delete document button * feature/IVYPORTAL-18032-UI-facelift-conflict - Upload document-screenshot.js file * feature/IVYPORTAL-18032-UI-facelift-conflict - Update screenshot test * feature/IVYPORTAL-18032-UI-facelift-conflict - Update reset filter in task widget filter * feature/IVYPORTAL-18032-UI-facelift-conflict - Update document * feature/IVYPORTAL-18032-UI-facelift-conflict - Update screenshot tests * Revert "feature/IVYPORTAL-18032-UI-facelift-conflict" This reverts commit 0f4b1540fad46145c7d632d1ed45054e4d95ef6b. * Revert "feature/IVYPORTAL-18032-UI-facelift-conflict" This reverts commit 3c38c3192f676a4df03300135ec60c2572ca2ec7. * feature/IVYPORTAL-18032-UI-facelift-conflict - Update UI of process image * feature/IVYPORTAL-18032-UI-facelift-conflict - Handle feedback --- .../resources/js/document-screenshot.js | 2 +- .../screenshot/PortalCasesScreenshotTest.java | 2 +- .../PortalProcessesScreenshotTest.java | 3 +- .../portal/selenium/page/CaseDetailsPage.java | 5 ++ .../page/CaseWidgetNewDashBoardPage.java | 4 +- .../selenium/page/NewDashboardPage.java | 4 +- .../page/TaskWidgetNewDashBoardPage.java | 6 +- AxonIvyPortal/portal/cms/cms_de.yaml | 1 + AxonIvyPortal/portal/cms/cms_en.yaml | 1 + AxonIvyPortal/portal/cms/cms_es.yaml | 1 + AxonIvyPortal/portal/cms/cms_fr.yaml | 1 + .../generic/CaseDocuments/CaseDocuments.xhtml | 8 +-- .../generic/TaskDocuments/TaskDocuments.xhtml | 8 +-- .../PortalDashboardDetailModification.xhtml | 24 ++++--- .../DashboardModification.xhtml | 2 +- .../WelcomeDashboardWidget.xhtml | 2 +- .../AbsenceManagement/AbsenceManagement.xhtml | 26 +++---- .../admin/AdminSettings/AdminSettings.xhtml | 12 ++-- .../component/ActionStep/ActionStep.xhtml | 2 +- .../CaseItemDetails/CaseItemDetails.xhtml | 14 ++-- .../CaseItemDocument/CaseItemDocument.xhtml | 8 +-- .../IconSelection/IconSelection.xhtml | 4 +- .../ProcessWidget/ProcessWidgetDialogs.xhtml | 72 +++++++++---------- .../component/SideStep/SideStep.xhtml | 11 +-- .../TaskItemDetails/TaskItemDetails.xhtml | 12 ++-- .../TaskItemDocuments/TaskItemDocuments.xhtml | 6 +- .../WarningBeforeLeavingTask.xhtml | 6 +- .../ProcessItemAction/ProcessItemAction.xhtml | 2 +- .../restricted/DashboardTemplate.xhtml | 24 ++++--- .../restricted/decorator/TableWidget.xhtml | 29 ++++---- .../webContent/resources/css/module.css | 4 +- .../resources/css/portal-variables-dark.css | 3 +- .../resources/css/portal-variables-light.css | 1 + .../webContent/resources/css/portal.css | 25 ++++++- .../webContent/resources/css/utility.css | 4 ++ .../webContent/resources/js/process-widget.js | 7 ++ .../full-process-list/index.rst | 3 +- 37 files changed, 204 insertions(+), 145 deletions(-) diff --git a/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js b/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js index 72d33cbad1f..d6de1e6f34c 100644 --- a/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js +++ b/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js @@ -124,7 +124,7 @@ function highlightProcessItems() { } function highlightEditProcessIcon() { - appendStepAnnotation($("[id$='process-widget:edit-process-form:edit-process-icon:awesome-icon-selection']"), "4", -10, 100); + appendStepAnnotation($("[id$='process-widget:edit-process-form:edit-process-icon:awesome-icon-selection']"), "4", -40, 110); } function highlightEditProcessDialog() { diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java index ffd8a3412be..8a6f125fe7f 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java @@ -84,7 +84,7 @@ public void screenshotCaseDetails() throws IOException { ScreenshotUtils.captureElementWithMarginOptionScreenshot(detailsPage.openAddAttachmentDialog(), ScreenshotUtils.CASE_DETAIL_FOLDER + "how-to-attach-document-to-case", new ScreenshotMargin(10)); detailsPage.closeAddAttachmentDialog(); - detailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile("test-no-files-no-js.pdf")); + detailsPage.uploadDocument(FileHelper.getAbsolutePathToTestFile("test-no-files-no-js.pdf")); refreshPage(); detailsPage.waitForCaseDetailsDisplay(); diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalProcessesScreenshotTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalProcessesScreenshotTest.java index d7421a40e6a..84856693bec 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalProcessesScreenshotTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalProcessesScreenshotTest.java @@ -79,10 +79,11 @@ public void screenshotPortalFullProcessesList() throws IOException { ScreenshotUtils.captureElementWithMarginOptionScreenshot(processWidget.getProcessEditMenu(0), ScreenshotUtils.PROCESSES_WIDGET_FOLDER + "edit-process-menu-item", new ScreenshotMargin(150, 200)); processWidget.clickOnProcessEditMenu(0); + ScreenshotUtils.maximizeBrowser(); ScreenshotUtils.executeDecorateJs("highlightEditProcessDialog()"); ScreenshotUtils.executeDecorateJs("highlightEditProcessIcon()"); ScreenshotUtils.captureElementWithMarginOptionScreenshot(processWidget.getEditProcessDialog(), - ScreenshotUtils.PROCESSES_WIDGET_FOLDER + "edit-process-dialog", new ScreenshotMargin(10)); + ScreenshotUtils.PROCESSES_WIDGET_FOLDER + "edit-process-dialog", new ScreenshotMargin(5)); ScreenshotUtils.resizeBrowser(new Dimension(1366, 800)); refreshPage(); processWidget.waitUtilProcessWidgetDisplayed(); diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseDetailsPage.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseDetailsPage.java index cec20f12a4e..e069a25ee19 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseDetailsPage.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseDetailsPage.java @@ -850,6 +850,11 @@ public void uploadDocumentWithoutError(String pathToFile) { $("button[id$='document:document-upload-close-command']").shouldBe(getClickableCondition(), DEFAULT_TIMEOUT) .click(); } + + public void uploadDocument(String pathToFile) { + $("input[id$='document-upload-panel_input']").shouldBe(exist, DEFAULT_TIMEOUT) + .shouldBe(Condition.hidden, DEFAULT_TIMEOUT).sendKeys(pathToFile); + } public void openAddDocumentDialogAndUploadDocument(String pathToFile) { getAddAttachmentDialog(); diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseWidgetNewDashBoardPage.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseWidgetNewDashBoardPage.java index 4b2914eac2b..59a7e13f672 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseWidgetNewDashBoardPage.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/CaseWidgetNewDashBoardPage.java @@ -162,7 +162,7 @@ public void nextPageTable() { } public void resetFilter() { - $("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("button[id$='reset-button']") + $("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("a[id$='reset-button']") .filter(text("Reset")).first().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click(); $("div.filter-overlay-panel__footer").shouldBe(disappear, DEFAULT_TIMEOUT); waitForElementClickable($$("div.table-widget-panel") @@ -269,7 +269,7 @@ public void removeAllFilterItems() { } public void openManageFiltersDialog() { - $("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button").shouldBe(getClickableCondition()).click(); + $("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a").shouldBe(getClickableCondition()).click(); } public void closeManageFilterDialog() { diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/NewDashboardPage.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/NewDashboardPage.java index aa73b4029ce..d06faa3f5f6 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/NewDashboardPage.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/NewDashboardPage.java @@ -545,7 +545,7 @@ public SelenideElement getCompactModeProcessFilterPanelSaveButton() { } public SelenideElement getCompactModeProcessFilterPanelResetButton() { - return getCompactModeProcessFilterPanel().$("button[id$=':reset-button']"); + return getCompactModeProcessFilterPanel().$("a[id$=':reset-button']"); } public void resetCompactModeProcessFilterPanel() { @@ -1033,7 +1033,7 @@ public NotificationCompactPage openNotificationPanel() { } public void clickOnManageFilterLink() { - $("div[class*='filter-overlay-panel__footer']").shouldBe(appear, DEFAULT_TIMEOUT).$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button[class*='saved-filter__manage-filter']").shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click(); + $("div[class*='filter-overlay-panel__footer']").shouldBe(appear, DEFAULT_TIMEOUT).$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a[class*='saved-filter__manage-filter']").shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click(); $("[id$='manage-filter-dialog']").shouldBe(appear, DEFAULT_TIMEOUT); } diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/TaskWidgetNewDashBoardPage.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/TaskWidgetNewDashBoardPage.java index b2c269d7f42..c94ce3ae09f 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/TaskWidgetNewDashBoardPage.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/TaskWidgetNewDashBoardPage.java @@ -132,7 +132,7 @@ public void applyFilter() { } public void resetFilter() { - $("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("button[id$='reset-button']") + $("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("a[id$='reset-button']") .filter(text("Reset")).first().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click(); } @@ -183,7 +183,7 @@ public boolean hasSavedFilterItem(String filterName) { } public void clickOnManageFilterLink() { - $("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button").shouldBe(getClickableCondition()).click(); + $("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a").shouldBe(getClickableCondition()).click(); $("[id$='manage-filter-dialog']").shouldBe(appear, DEFAULT_TIMEOUT); } @@ -530,7 +530,7 @@ public void saveFilter(String widgetFilterName) { } public void openManageFiltersDialog() { - $("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button").shouldBe(getClickableCondition()).click(); + $("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a").shouldBe(getClickableCondition()).click(); } public void removeAllFilterItems() { diff --git a/AxonIvyPortal/portal/cms/cms_de.yaml b/AxonIvyPortal/portal/cms/cms_de.yaml index dd66e122eea..f7223acbf51 100644 --- a/AxonIvyPortal/portal/cms/cms_de.yaml +++ b/AxonIvyPortal/portal/cms/cms_de.yaml @@ -410,6 +410,7 @@ ch.ivy.addon.portalkit.ui.jsf: active: Aktiviert add: Hinzufügen addDocument: Dokument hinzufügen + addLink: Link hinzufügen addNote: Notiz hinzufügen allCategories: Alle Kategorien allTypes: Alle Typen diff --git a/AxonIvyPortal/portal/cms/cms_en.yaml b/AxonIvyPortal/portal/cms/cms_en.yaml index aee201428bf..73c02a2e09d 100644 --- a/AxonIvyPortal/portal/cms/cms_en.yaml +++ b/AxonIvyPortal/portal/cms/cms_en.yaml @@ -409,6 +409,7 @@ ch.ivy.addon.portalkit.ui.jsf: active: Active add: Add addDocument: Add document + addLink: Add Link addNote: Add note allCategories: All Categories allTypes: All types diff --git a/AxonIvyPortal/portal/cms/cms_es.yaml b/AxonIvyPortal/portal/cms/cms_es.yaml index f74b3738de8..cc0eeedb7d0 100644 --- a/AxonIvyPortal/portal/cms/cms_es.yaml +++ b/AxonIvyPortal/portal/cms/cms_es.yaml @@ -411,6 +411,7 @@ ch.ivy.addon.portalkit.ui.jsf: active: Activado add: Añadir addDocument: Agregar documento + addLink: Añadir enlace addNote: Agregar nota allCategories: Todas las categorias allTypes: Todos los tipos diff --git a/AxonIvyPortal/portal/cms/cms_fr.yaml b/AxonIvyPortal/portal/cms/cms_fr.yaml index 53419436396..c343a2a9a7b 100644 --- a/AxonIvyPortal/portal/cms/cms_fr.yaml +++ b/AxonIvyPortal/portal/cms/cms_fr.yaml @@ -408,6 +408,7 @@ ch.ivy.addon.portalkit.ui.jsf: active: Activé add: Ajouter addDocument: Ajouter un document + addLink: Ajouter un lien addNote: Ajouter une note allCategories: Toutes les catégories allTypes: Tous les types diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/CaseDocuments/CaseDocuments.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/CaseDocuments/CaseDocuments.xhtml index 5b3ad1a5c31..74e7f501aee 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/CaseDocuments/CaseDocuments.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/CaseDocuments/CaseDocuments.xhtml @@ -99,13 +99,13 @@ - + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/TaskDocuments/TaskDocuments.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/TaskDocuments/TaskDocuments.xhtml index 2e40333a337..b4c4e1da392 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/TaskDocuments/TaskDocuments.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/TaskDocuments/TaskDocuments.xhtml @@ -99,13 +99,13 @@ - + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardDetailModification.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardDetailModification.xhtml index 4d83a6a8f0a..e00fe4deb0b 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardDetailModification.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardDetailModification.xhtml @@ -24,11 +24,12 @@ - + update="grid-stack @this" process="@this"> + + #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/common/back')} + @@ -102,13 +103,14 @@ - - + + + + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml index a90abd57fac..d3e6db1fefd 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml @@ -130,7 +130,7 @@ value="#{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/dashboardManagement/deleteDashboardMessage',[dashboardModificationBean.selectedDashboard.title])}" />
- - @@ -253,17 +253,17 @@ - - - + + + + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/admin/AdminSettings/AdminSettings.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/admin/AdminSettings/AdminSettings.xhtml index 1accd261b13..f390f58154e 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/admin/AdminSettings/AdminSettings.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/admin/AdminSettings/AdminSettings.xhtml @@ -81,7 +81,7 @@ process="@this" />
- +
@@ -363,12 +363,14 @@ - + + + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml index f91f3032968..7e008bc2554 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml @@ -74,7 +74,7 @@ - + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml index a035bbc8d98..b18ad939d28 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml @@ -181,12 +181,14 @@ - - + + + + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocument.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocument.xhtml index 4c966982edf..3d073e96869 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocument.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocument.xhtml @@ -167,13 +167,13 @@ - +