From 81145832db48ad7d352b1c5ccdad515a9c0e076f Mon Sep 17 00:00:00 2001 From: Luong Minh Luat <157108501+lmluat-axonivy@users.noreply.github.com> Date: Thu, 5 Sep 2024 10:28:19 +0700 Subject: [PATCH 01/13] =?UTF-8?q?feature/IVYPORTAL-17458-Quick-Search-func?= =?UTF-8?q?tion-keeps-working-although-=E2=80=A6=20(#979)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature/IVYPORTAL-17458-Quick-Search-function-keeps-working-although-it-is-deactivated-LE - fix bug related to quick search function in Task, Case, Process widget * feature/IVYPORTAL-17458-Quick-Search-function-keeps-working-although-it-is-deactivated-LE - Disable the input of quick search in edit mode --- .../portalkit/dto/dashboard/CaseDashboardWidget.java | 8 +++++++- .../dto/dashboard/CompactProcessDashboardWidget.java | 9 +++++++++ .../portalkit/dto/dashboard/TaskDashboardWidget.java | 9 +++++++-- .../layouts/restricted/decorator/TableWidget.xhtml | 2 +- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CaseDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CaseDashboardWidget.java index 10a1919b3bb..e140b7980e3 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CaseDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CaseDashboardWidget.java @@ -9,6 +9,7 @@ import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.primefaces.PrimeFaces; import org.primefaces.model.SortMeta; @@ -248,6 +249,11 @@ public void loadUserFilter() { @Override public void setQuickSearchKeyword() { - this.dataModel.getCriteria().setQuickSearchKeyword(this.getQuickSearchKeyword()); + if (BooleanUtils.isTrue(enableQuickSearch)) { + this.dataModel.getCriteria().setQuickSearchKeyword(this.getQuickSearchKeyword()); + } + else { + this.setQuickSearchKeyword(StringUtils.EMPTY); + } } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CompactProcessDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CompactProcessDashboardWidget.java index c75d4515fb9..babb320597e 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CompactProcessDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CompactProcessDashboardWidget.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Map; +import org.apache.commons.lang.BooleanUtils; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; @@ -176,4 +178,11 @@ public boolean isEnableQuickSearch() { public void setEnableQuickSearch(boolean enableQuickSearch) { this.enableQuickSearch = enableQuickSearch; } + + @Override + public void setQuickSearchKeyword(String quickSearchKeyword) { + if (BooleanUtils.isTrue(this.enableQuickSearch)) { + super.setQuickSearchKeyword(quickSearchKeyword); + } + } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/TaskDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/TaskDashboardWidget.java index f31bbc40e42..1ffa9bfd5c1 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/TaskDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/TaskDashboardWidget.java @@ -9,6 +9,7 @@ import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.primefaces.PrimeFaces; import org.primefaces.model.SortMeta; @@ -209,8 +210,12 @@ public void setRowsPerPage(int rowsPerPage) { @Override public void setQuickSearchKeyword() { - this.dataModel.getCriteria().setQuickSearchKeyword(this.getQuickSearchKeyword()); - } + if (BooleanUtils.isTrue(this.enableQuickSearch)) { + this.dataModel.getCriteria().setQuickSearchKeyword(this.getQuickSearchKeyword()); + } + else { + this.setQuickSearchKeyword(StringUtils.EMPTY); + }} public List getFilters() { return this.dataModel.getCriteria().getFilters(); diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/TableWidget.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/TableWidget.xhtml index 2e8468f1f35..21dc94c141c 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/TableWidget.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/TableWidget.xhtml @@ -45,7 +45,7 @@ + onkeydown="handleKeyDown(event)" disabled="#{!isReadOnlyMode}"> Date: Thu, 5 Sep 2024 11:15:26 +0700 Subject: [PATCH 02/13] IVYPORTAL-17428 Check and remove deprecated features from portal - Code + Docs (#991) * Removed deprecated code * Renamed data class property iCase to caze to avoid warning * Removed warning releated to applicationHomeRef(), data class attribute start with Capital * Removed warning related to no explicit encoding in Designer * Replace xml namespace java.sun.com to xmlns.jcp.org --- .../org.eclipse.core.resources.prefs | 2 + AxonIvyPortal/PortalKitTestHelper/pom.xml | 1 + .../webContent/layouts/basic.xhtml | 2 +- .../layouts/includes/LeftMenu.xhtml | 2 +- .../webContent/layouts/includes/header.xhtml | 2 +- .../layouts/includes/progress-loader.xhtml | 5 +- .../webContent/layouts/processChain.xhtml | 2 +- .../org.eclipse.core.resources.prefs | 2 + AxonIvyPortal/portal-components/pom.xml | 1 + .../PortalComponentErrorHandler.p.json | 3 +- .../PortalGlobalGrowInIFrameAPI.java | 30 ----- .../publicapi/PortalNavigatorInFrameAPI.java | 12 +- .../service/CaseDocumentService.java | 10 -- .../portal/components/util/ErrorHandler.java | 7 +- .../ProcessHistory/ProcessHistoryData.d.json | 2 +- .../ProcessHistoryProcess.p.json | 6 +- .../layouts/includes/progress-loader.xhtml | 5 +- .../portal-selenium-test/customized_pom.xml | 1 + .../document_screenshot_pom.xml | 1 + .../org.eclipse.core.resources.prefs | 2 + AxonIvyPortal/portal/pom.xml | 1 + .../Start Processes/PortalStart.p.json | 2 +- .../portal/generic/bean/UserMenuBean.java | 5 - .../addon/portalkit/bean/UserFormatBean.java | 46 ------- .../ivy/addon/portalkit/bo/Announcement.java | 64 --------- .../portalkit/configuration/Application.java | 56 +------- .../portalkit/constant/CustomFields.java | 28 ---- .../ProcessViewerDashboardWidget.java | 16 --- .../dto/widget/CustomWidgetData.java | 17 --- .../dto/widget/DashboardCustomWidgetData.java | 16 --- .../portalkit/ivydata/bo/IvyLanguage.java | 22 --- .../CaseCategorySearchCriteria.java | 23 ---- .../searchcriteria/CaseSearchCriteria.java | 23 ---- .../searchcriteria/TaskSearchCriteria.java | 36 ----- .../converter/BusinessEntityConverter.java | 3 +- .../service/CaseDocumentService.java | 10 -- .../portalkit/service/DashboardService.java | 2 - .../service/GlobalSettingService.java | 10 -- .../ch/ivy/addon/portalkit/util/UrlUtils.java | 2 +- .../axonivy/portal/bo/ClientStatistic.java | 1 - .../portal/service/GlobalSearchService.java | 1 - .../CaseInformationInIFrame.xhtml | 2 +- .../PortalTaskItemDetailsInIFrame.xhtml | 2 +- .../PortalTaskListInFrame.xhtml | 2 +- .../AdditionalCaseDetails.xhtml | 2 +- .../ApplicationSelectionMenu.xhtml | 2 +- .../GlobalSearch/GlobalSearchData.d.json | 2 +- .../GlobalSearch/GlobalSearchProcess.p.json | 6 +- .../PortalBreadcrumb/PortalBreadcrumb.xhtml | 2 +- .../PortalFinishTaskHandleData.d.json | 2 +- .../PortalFinishTaskHandleProcess.p.json | 8 +- .../PortalDashBoard/PortalDashBoard.xhtml | 2 +- .../PortalDashboard/PortalDashboard.xhtml | 2 +- .../PortalDashboardAddNewWidgets.xhtml | 2 +- .../PortalDashboardDetailModification.xhtml | 2 +- .../component/CaseWidget/CaseWidget.xhtml | 2 +- .../CaseWidgetConfiguration.xhtml | 2 +- .../CustomWidgetConfiguration.xhtml | 2 +- .../MultiLanguageConfiguration.xhtml | 2 +- .../ProcessCaseWidget/ProcessCaseWidget.xhtml | 2 +- .../ProcessTaskWidget/ProcessTaskWidget.xhtml | 2 +- .../ProcessWidget/CombinedModeProcess.xhtml | 2 +- .../ProcessWidget/ProcessWidget.xhtml | 2 +- .../ProcessWidgetConfiguration.xhtml | 2 +- .../StatisticChartWidgetConfiguration.xhtml | 2 +- .../component/TaskWidget/TaskWidget.xhtml | 2 +- .../TaskWidgetConfiguration.xhtml | 2 +- .../WelcomeWidgetConfiguration.xhtml | 2 +- .../AbsenceManagement/SelectDeputy.xhtml | 7 +- .../ActionStep/ActionStepData.d.json | 2 +- .../ActionStep/ActionStepProcess.p.json | 10 +- .../component/CaseItem/CaseItemData.d.json | 2 +- .../component/CaseItem/CaseItemProcess.p.json | 10 +- .../CaseItemDescriptionData.d.json | 7 +- .../CaseItemDocumentData.d.json | 2 +- .../CaseItemDocumentProcess.p.json | 16 +-- .../CaseItemRelatedCasesData.d.json | 2 +- .../CaseItemRelatedCasesProcess.p.json | 6 +- .../IconSelection/IconSelection.xhtml | 2 +- .../component/PageHeader/PageHeader.xhtml | 2 +- .../ProcessWidget/ProcessWidget.xhtml | 2 +- .../TaskAnalysisWidget/StatisticResult.xhtml | 7 +- .../TaskItemDescription.xhtml | 2 +- .../UserFullnameDisplayText.rddescriptor | 24 ---- .../UserFullnameDisplayText.xhtml | 23 ---- .../UserFullnameDisplayTextData.d.json | 6 - .../UserFullnameDisplayTextProcess.p.json | 30 ----- .../WarningBeforeLeavingTaskData.d.json | 2 +- .../WarningBeforeLeavingTaskProcess.p.json | 10 +- .../WarningBeforeLostSession.xhtml | 2 +- .../ChartCreationWidget.xhtml | 2 +- .../ChartInformationDialog.xhtml | 2 +- .../StatisticCarousel.xhtml | 2 +- .../StatisticDashboardWidget.xhtml | 2 +- .../LogoutSetting/LogoutSetting.xhtml | 2 +- .../PasswordSetting/PasswordSetting.xhtml | 2 +- .../ForgotPassword/ForgotPassword.xhtml | 2 +- .../singleapp/general/Login/Login.xhtml | 2 +- .../general/PasswordReset/PasswordReset.xhtml | 2 +- .../webContent/layouts/TaskTemplate-8.xhtml | 2 +- .../webContent/layouts/includes/chat.xhtml | 2 +- .../layouts/includes/notification.xhtml | 2 +- .../restricted/AbstractTaskTemplate.xhtml | 2 +- .../restricted/DashboardTemplate.xhtml | 2 +- .../restricted/IFrameTaskTemplate.xhtml | 2 +- .../org.eclipse.core.resources.prefs | 2 + Showcase/InternalSupport/pom.xml | 1 + .../ui/approveLeave/approveLeave.xhtml | 10 +- .../ui/approveLeave/approveLeaveData.d.json | 10 +- .../approveLeave/approveLeaveProcess.p.json | 24 ++-- .../org.eclipse.core.resources.prefs | 2 + Showcase/portal-components-examples/pom.xml | 1 + .../layouts/includes/progress-loader.xhtml | 5 +- .../org.eclipse.core.resources.prefs | 2 + Showcase/portal-developer-examples/pom.xml | 1 + .../CustomLogoutPage.p.json | 2 +- .../developerexamples/util/UrlUtils.java | 2 +- .../ResetTaskIFrameProcess.p.json | 2 +- .../layouts/includes/progress-loader.xhtml | 5 +- .../org.eclipse.core.resources.prefs | 2 + Showcase/portal-user-examples/pom.xml | 1 + .../layouts/includes/progress-loader.xhtml | 5 +- build/document-screenshot/Jenkinsfile | 126 ------------------ build/gui-test/Jenkinsfile | 73 ---------- 124 files changed, 180 insertions(+), 848 deletions(-) create mode 100644 AxonIvyPortal/PortalKitTestHelper/.settings/org.eclipse.core.resources.prefs create mode 100644 AxonIvyPortal/portal-components/.settings/org.eclipse.core.resources.prefs delete mode 100644 AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalGlobalGrowInIFrameAPI.java create mode 100644 AxonIvyPortal/portal/.settings/org.eclipse.core.resources.prefs delete mode 100644 AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/UserFormatBean.java delete mode 100644 AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/Announcement.java delete mode 100644 AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.rddescriptor delete mode 100644 AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.xhtml delete mode 100644 AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextData.d.json delete mode 100644 AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextProcess.p.json create mode 100644 Showcase/InternalSupport/.settings/org.eclipse.core.resources.prefs create mode 100644 Showcase/portal-components-examples/.settings/org.eclipse.core.resources.prefs create mode 100644 Showcase/portal-developer-examples/.settings/org.eclipse.core.resources.prefs create mode 100644 Showcase/portal-user-examples/.settings/org.eclipse.core.resources.prefs delete mode 100644 build/document-screenshot/Jenkinsfile delete mode 100644 build/gui-test/Jenkinsfile diff --git a/AxonIvyPortal/PortalKitTestHelper/.settings/org.eclipse.core.resources.prefs b/AxonIvyPortal/PortalKitTestHelper/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/AxonIvyPortal/PortalKitTestHelper/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/AxonIvyPortal/PortalKitTestHelper/pom.xml b/AxonIvyPortal/PortalKitTestHelper/pom.xml index 191eba5157d..bad2f399bd7 100644 --- a/AxonIvyPortal/PortalKitTestHelper/pom.xml +++ b/AxonIvyPortal/PortalKitTestHelper/pom.xml @@ -9,6 +9,7 @@ 11.4.0 11.4.0-SNAPSHOT + UTF-8 diff --git a/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/basic.xhtml b/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/basic.xhtml index 2fae8194868..cf13511b499 100644 --- a/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/basic.xhtml +++ b/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/basic.xhtml @@ -2,7 +2,7 @@ + diff --git a/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/processChain.xhtml b/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/processChain.xhtml index 38b6236feb9..6a50504fa06 100644 --- a/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/processChain.xhtml +++ b/AxonIvyPortal/PortalKitTestHelper/webContent/layouts/processChain.xhtml @@ -2,7 +2,7 @@ =UTF-8 diff --git a/AxonIvyPortal/portal-components/pom.xml b/AxonIvyPortal/portal-components/pom.xml index 953536786e9..49a05191a15 100644 --- a/AxonIvyPortal/portal-components/pom.xml +++ b/AxonIvyPortal/portal-components/pom.xml @@ -18,6 +18,7 @@ 11.4.0 11.4.0-SNAPSHOT + UTF-8 diff --git a/AxonIvyPortal/portal-components/processes/Functional Processes/PortalComponentErrorHandler.p.json b/AxonIvyPortal/portal-components/processes/Functional Processes/PortalComponentErrorHandler.p.json index ac5bf5a3754..4977d3a0ec9 100644 --- a/AxonIvyPortal/portal-components/processes/Functional Processes/PortalComponentErrorHandler.p.json +++ b/AxonIvyPortal/portal-components/processes/Functional Processes/PortalComponentErrorHandler.p.json @@ -43,11 +43,12 @@ "config" : { "output" : { "code" : [ + "import org.apache.log4j.Level;", "import com.axonivy.portal.components.ivydata.exception.PortalIvyDataException;", "import com.axonivy.portal.components.util.ErrorHandler;", "", "for (PortalIvyDataException exception : in.exceptions) {", - " ErrorHandler.addError(org.apache.log4j.Priority.ERROR, exception);", + " ErrorHandler.addError(exception);", "}" ] } diff --git a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalGlobalGrowInIFrameAPI.java b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalGlobalGrowInIFrameAPI.java deleted file mode 100644 index f4488d4844e..00000000000 --- a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalGlobalGrowInIFrameAPI.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.axonivy.portal.components.publicapi; - -import org.primefaces.PrimeFaces; - -import com.axonivy.portal.components.util.HtmlUtils; - -import ch.ivyteam.ivy.environment.Ivy; - -/** - * @deprecated Customizing growl message feature is deprecated and will not be supported in the future - */ -@Deprecated(forRemoval = true, since = "10.0.24") -public class PortalGlobalGrowInIFrameAPI { - - public PortalGlobalGrowInIFrameAPI() {} - - /** - * Displays Portal Growl customized message. - * - * @param message - * @deprecated Customizing growl message feature is deprecated and will not be supported in the future - */ - @Deprecated(forRemoval = true, since = "10.0.24") - public void displayCustomizedMessage(String message) { - String statement = "parent.displayPortalGrowlMessageCommand([{name: 'taskId', value: " + Ivy.wfTask().getId() - + "},{name: 'overridePortalGrowl', value: true},{name: 'portalGrowlMessage', value: '" - + HtmlUtils.sanitize(message) + "'}]);"; - PrimeFaces.current().executeScript(statement); - } -} diff --git a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalNavigatorInFrameAPI.java b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalNavigatorInFrameAPI.java index 23e0d5442c4..6f91114d289 100644 --- a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalNavigatorInFrameAPI.java +++ b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/publicapi/PortalNavigatorInFrameAPI.java @@ -28,12 +28,12 @@ public static void navigateToUrl(String url) { PrimeFaces.current().executeScript(statement); } - /** - * Navigate to portal home - */ - public static void navigateToPortalHome() { - navigateToUrl(Ivy.html().applicationHomeRef()); - } + /** + * Navigate to portal home + */ + public static void navigateToPortalHome() { + navigateToUrl(Ivy.html().applicationHomeLink().getAbsoluteEncoded()); + } /** * Navigate to PortalEndPage without finishing a task, e.g. clicking on Cancel diff --git a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/service/CaseDocumentService.java b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/service/CaseDocumentService.java index d9d13d831c1..2878713fb26 100644 --- a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/service/CaseDocumentService.java +++ b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/service/CaseDocumentService.java @@ -62,16 +62,6 @@ public List getAll() { return new ArrayList<>(documents); } - /** - * We make it as deprecated from 8.0 Please refer to sub-function process DeleteDocument - * - * @param document - */ - @Deprecated - public void delete(IDocument document) { - documentsOf(iCase).delete(document); - } - /** * @param document * @return streamed content diff --git a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/util/ErrorHandler.java b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/util/ErrorHandler.java index 89e15d2fae2..3e84f11e39f 100644 --- a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/util/ErrorHandler.java +++ b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/util/ErrorHandler.java @@ -1,16 +1,15 @@ package com.axonivy.portal.components.util; -import org.apache.log4j.Priority; - import com.axonivy.portal.components.ivydata.exception.PortalIvyDataException; + import ch.ivyteam.ivy.environment.Ivy; public class ErrorHandler { private ErrorHandler() {} - public static void addError(Priority priority, PortalIvyDataException error) { - Ivy.log().log(priority, error.toString()); + public static void addError(PortalIvyDataException error) { + Ivy.log().error(error.toString()); } } diff --git a/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryData.d.json b/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryData.d.json index 669bf659e19..245ba276212 100644 --- a/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryData.d.json +++ b/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryData.d.json @@ -8,7 +8,7 @@ "type" : "String", "modifiers" : [ "PERSISTENT" ] }, { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] }, { diff --git a/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryProcess.p.json b/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryProcess.p.json index a67b1a6c766..ee0c460300e 100644 --- a/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryProcess.p.json +++ b/AxonIvyPortal/portal-components/src_hd/com/axonivy/portal/components/ProcessHistory/ProcessHistoryProcess.p.json @@ -33,7 +33,7 @@ "processCall" : "Functional Processes/OpenCaseDetailsHook:call(ch.ivyteam.ivy.workflow.ICase,Boolean,Boolean)", "call" : { "map" : { - "param.caseView" : "in.iCase", + "param.caseView" : "in.caze", "param.isShowBackButton" : "true", "param.isOpenInFrame" : "in.isOpenInFrame" } @@ -59,11 +59,11 @@ "signature" : "openDetails", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" }, + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" }, { "name" : "isOpenInFrame", "type" : "Boolean", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase", + "out.caze" : "param.caze", "out.isOpenInFrame" : "param.isOpenInFrame" } }, diff --git a/AxonIvyPortal/portal-migration/webContent/layouts/includes/progress-loader.xhtml b/AxonIvyPortal/portal-migration/webContent/layouts/includes/progress-loader.xhtml index dea8cdd73c6..efaa09a062f 100644 --- a/AxonIvyPortal/portal-migration/webContent/layouts/includes/progress-loader.xhtml +++ b/AxonIvyPortal/portal-migration/webContent/layouts/includes/progress-loader.xhtml @@ -1,5 +1,6 @@ - + diff --git a/AxonIvyPortal/portal-selenium-test/customized_pom.xml b/AxonIvyPortal/portal-selenium-test/customized_pom.xml index 0369410074e..defa13401d0 100644 --- a/AxonIvyPortal/portal-selenium-test/customized_pom.xml +++ b/AxonIvyPortal/portal-selenium-test/customized_pom.xml @@ -9,6 +9,7 @@ 2.0.2 11.4.0-SNAPSHOT 11.4.0 + UTF-8 diff --git a/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml b/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml index 74f717567a6..a872aceba13 100644 --- a/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml +++ b/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml @@ -9,6 +9,7 @@ 2.0.2 11.4.0-SNAPSHOT 11.4.0 + UTF-8 diff --git a/AxonIvyPortal/portal/.settings/org.eclipse.core.resources.prefs b/AxonIvyPortal/portal/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/AxonIvyPortal/portal/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/AxonIvyPortal/portal/pom.xml b/AxonIvyPortal/portal/pom.xml index 039709b5b67..7da9b521735 100644 --- a/AxonIvyPortal/portal/pom.xml +++ b/AxonIvyPortal/portal/pom.xml @@ -19,6 +19,7 @@ 11.4.0 11.4.0-SNAPSHOT + UTF-8 diff --git a/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json b/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json index 8c3a97520d1..cb92d8cb9bf 100644 --- a/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json +++ b/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json @@ -3029,7 +3029,7 @@ "call" : { "map" : { "param.isTaskFinished" : "in.isTaskFinished", - "param.iCase" : "in.caseSelected" + "param.caze" : "in.caseSelected" } } }, diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/UserMenuBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/UserMenuBean.java index f56d76d340f..e600c320266 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/UserMenuBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/UserMenuBean.java @@ -239,11 +239,6 @@ public boolean isMobileDevice() { return RequestUtils.isMobileDevice(); } - /** - * We moved this method to PortalExceptionBean#getErrorDetailToEndUser - * @return system configuration of ErrorDetailToEndUser - */ - @Deprecated public boolean getErrorDetailToEndUser() { try { PortalExceptionBean portalExceptionBean = (PortalExceptionBean) ManagedBeans.find("portalExceptionBean").get(); diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/UserFormatBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/UserFormatBean.java deleted file mode 100644 index 20899c437dc..00000000000 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/UserFormatBean.java +++ /dev/null @@ -1,46 +0,0 @@ -package ch.ivy.addon.portalkit.bean; - -import java.io.Serializable; - -import javax.faces.bean.ApplicationScoped; -import javax.faces.bean.ManagedBean; - -import org.apache.commons.lang.StringUtils; - -import ch.ivyteam.ivy.environment.Ivy; - - -/** - * @deprecated Use {@link SecurityMemberDisplayNameFormatBean} instead - * - */ - -@ManagedBean -@ApplicationScoped -@Deprecated(forRemoval = true, since = "9.1") -public class UserFormatBean implements Serializable { - private static final long serialVersionUID = 1L; - - public String format(String fullName, String username) { - if (StringUtils.isBlank(username)) { - return Ivy.cms().co("/ch.ivy.addon.portalkit.ui.jsf/common/notAvailable"); - } - - if (StringUtils.isBlank(fullName)) { - return username.startsWith("#") ? username.substring(1) : username; - } - return fullName; - } - - public String formatWithTip(String fullName, String username) { - if (StringUtils.isBlank(username)) { - return StringUtils.EMPTY; - } - - String formattedUsername = username.startsWith("#") ? username.substring(1) : username; - if (StringUtils.isBlank(fullName)) { - return String.format("<%s> (%s)", Ivy.cms().co("/ch.ivy.addon.portalkit.ui.jsf/common/noName"), formattedUsername); - } - return String.format("%s (%s)", fullName, formattedUsername); - } -} diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/Announcement.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/Announcement.java deleted file mode 100644 index a07ab886fa9..00000000000 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/Announcement.java +++ /dev/null @@ -1,64 +0,0 @@ -package ch.ivy.addon.portalkit.bo; - -import java.util.Locale; - -import org.apache.commons.lang3.StringUtils; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import ch.ivyteam.ivy.environment.Ivy; - - -/** - * Use the new model {@link ch.ivy.addon.portalkit.configuration.Announcement} - * - */ -@Deprecated -public class Announcement { - - private String id; - private String language; - private String value; - @JsonIgnore - private String languageDisplayName; - - public Announcement() {} - - public Announcement(String language, String value) { - this.language = language; - this.value = value; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getLanguageDisplayName() { - if (StringUtils.isEmpty(languageDisplayName)) { - Locale displayedLocale = Locale.forLanguageTag(language); - languageDisplayName = displayedLocale.getDisplayName(Ivy.session().getContentLocale()); - } - return languageDisplayName; - } - -} diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/configuration/Application.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/configuration/Application.java index 94635767c43..4989fa09d1e 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/configuration/Application.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/configuration/Application.java @@ -1,6 +1,5 @@ package ch.ivy.addon.portalkit.configuration; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; @JsonInclude(JsonInclude.Include.NON_EMPTY) @@ -15,19 +14,6 @@ public class Application extends AbstractConfiguration { public Application() { setIsPublic(true); } - /** - * @deprecated not used anymore - */ - @Deprecated(since = "9.2", forRemoval = true) - @JsonIgnore - private Long serverId; - - /** - * @deprecated not used anymore - */ - @Deprecated(since = "9.2", forRemoval = true) - @JsonIgnore - private boolean embedInFrame = true; public String getDisplayName() { return displayName; @@ -69,46 +55,10 @@ public void setLink(String link) { this.link = link; } - /** - * Not used anymore - * @return serverId - */ - @Deprecated(since = "9.2", forRemoval = true) - public Long getServerId() { - return serverId; - } - - /** - * Not used anymore - * @param serverId - */ - @Deprecated(since = "9.2", forRemoval = true) - public void setServerId(Long serverId) { - this.serverId = serverId; - } - - /** - * Not used anymore - * @return embedInFrame - */ - @Deprecated(since = "9.2", forRemoval = true) - public boolean isEmbedInFrame() { - return embedInFrame; - } - - - /** - * Not used anymore - * @param embedInFrame - */ - @Deprecated(since = "9.2", forRemoval = true) - public void setEmbedInFrame(boolean embedInFrame) { - this.embedInFrame = embedInFrame; - } - @Override public String toString() { - return String.format("Application {displayName=%s, menuIcon=%s, menuOrdinal=%s, name=%s, link=%s, serverId=%s, id=%s, embedInFrame=%s}", - displayName, menuIcon, menuOrdinal, name, link, serverId, getId(), embedInFrame); + return String.format( + "Application {displayName=%s, menuIcon=%s, menuOrdinal=%s, name=%s, link=%s, id=%s}", displayName, menuIcon, + menuOrdinal, name, link, getId()); } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/CustomFields.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/CustomFields.java index 1676624008c..6d64821d27d 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/CustomFields.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/CustomFields.java @@ -2,34 +2,6 @@ public class CustomFields { - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_VARCHAR_FIELD1 = "CustomVarCharField1"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_VARCHAR_FIELD2 = "CustomVarCharField2"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_VARCHAR_FIELD3 = "CustomVarCharField3"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_VARCHAR_FIELD4 = "CustomVarCharField4"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_VARCHAR_FIELD5 = "CustomVarCharField5"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_DECIMAL_FIELD1 = "CustomDecimalField1"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_DECIMAL_FIELD2 = "CustomDecimalField2"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_DECIMAL_FIELD3 = "CustomDecimalField3"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_DECIMAL_FIELD4 = "CustomDecimalField4"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_DECIMAL_FIELD5 = "CustomDecimalField5"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_TIMESTAMP_FIELD1 = "CustomTimestampField1"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_TIMESTAMP_FIELD2 = "CustomTimestampField2"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_TIMESTAMP_FIELD3 = "CustomTimestampField3"; - @Deprecated(forRemoval = true, since = "9.4") - public static final String CUSTOM_TIMESTAMP_FIELD4 = "CustomTimestampField4"; @Deprecated(forRemoval = true, since = "9.4") public static final String CUSTOM_TIMESTAMP_FIELD5 = "CustomTimestampField5"; diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java index b238f867473..4e4016d95ea 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java @@ -2,11 +2,8 @@ import java.util.List; -import org.apache.commons.lang3.StringUtils; - import com.axonivy.portal.components.service.impl.ProcessService; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; import ch.ivy.addon.portalkit.dto.WidgetLayout; import ch.ivy.addon.portalkit.dto.dashboard.process.DashboardProcess; @@ -56,19 +53,6 @@ public void setProcessPath(String processPath) { this.processPath = processPath; } - /** - * @param processStart - * @deprecated use {@link #setProcessPath(String)} instead - * The processStart is replaced by processPath - */ - @Deprecated(forRemoval = true, since = "10.0.3") - @JsonProperty("processStart") - public void setProcessStart(String processStart) { - if (StringUtils.isBlank(processPath)) { - this.processPath = processStart; - } - } - public DashboardProcess getProcess() { return process; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/CustomWidgetData.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/CustomWidgetData.java index 72bd4f4ae7e..e5e0b330591 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/CustomWidgetData.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/CustomWidgetData.java @@ -3,10 +3,6 @@ import java.io.Serializable; import java.util.Map; -import org.apache.commons.lang3.StringUtils; - -import com.fasterxml.jackson.annotation.JsonProperty; - public class CustomWidgetData implements Serializable { private static final long serialVersionUID = 8763058243562205725L; @@ -41,19 +37,6 @@ public void setProcessPath(String processPath) { this.processPath = processPath; } - /** - * @param processStart - * @deprecated use {@link #setProcessPath(String)} instead - * The processStart is replaced by processPath - */ - @Deprecated(forRemoval = true, since = "10.0.3") - @JsonProperty("processStart") - public void setProcessStart(String processStart) { - if (StringUtils.isBlank(processPath)) { - processPath = processStart; - } - } - public String getType() { return type; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/DashboardCustomWidgetData.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/DashboardCustomWidgetData.java index 84f5fd7994f..71a5b97e668 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/DashboardCustomWidgetData.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/widget/DashboardCustomWidgetData.java @@ -5,11 +5,8 @@ import java.util.List; import java.util.Optional; -import org.apache.commons.lang3.StringUtils; - import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; import ch.ivy.addon.portalkit.dto.dashboard.CustomDashboardWidgetParam; import ch.ivy.addon.portalkit.enums.DashboardCustomWidgetType; @@ -49,19 +46,6 @@ public void setProcessPath(String processPath) { this.processPath = processPath; } - /** - * @param processStart - * @deprecated use {@link #setProcessPath(String)} instead - * The processStart is replaced by processPath - */ - @Deprecated(forRemoval = true, since = "10.0.3") - @JsonProperty("processStart") - public void setProcessStart(String processStart) { - if (StringUtils.isBlank(processPath)) { - this.processPath = processStart; - } - } - public String getStartRequestPath() { return startRequestPath; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvyLanguage.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvyLanguage.java index c9201c89bb1..20d228aa9f1 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvyLanguage.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvyLanguage.java @@ -18,8 +18,6 @@ public class IvyLanguage { - @Deprecated(forRemoval = true, since = "9.4") - private String appName; private String userLanguage; private List supportedLanguages; private List items = new ArrayList<>(); @@ -69,26 +67,6 @@ private String toDisplayName(String languageTag, Function includedStates; @@ -59,24 +54,6 @@ public void addIncludedStates(List includedStates) { this.includedStates.addAll(includedStates); } - /** - * @return String - * @deprecated not used anymore, will get current login user for query - */ - @Deprecated(since = "9.2", forRemoval = true) - public String getInvolvedUsername() { - return involvedUsername; - } - - /** - * @param involvedUsername - * @deprecated not used anymore, will get current login user for query - */ - @Deprecated(since = "9.2", forRemoval = true) - public void setInvolvedUsername(String involvedUsername) { - this.involvedUsername = involvedUsername; - } - public CaseQuery getCustomCaseQuery() { return customCaseQuery; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/CaseSearchCriteria.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/CaseSearchCriteria.java index dc9c4630c75..c70aea8629c 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/CaseSearchCriteria.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/CaseSearchCriteria.java @@ -30,11 +30,6 @@ public class CaseSearchCriteria { public final static List STANDARD_BUSINESS_STATES = Arrays.asList(CaseBusinessState.OPEN); public final static List ADVANCE_BUSINESS_STATES = Arrays.asList(CaseBusinessState.DONE, CaseBusinessState.DESTROYED); - /** - * @deprecated not used anymore, will get current login user for query - */ - @Deprecated(since = "9.2", forRemoval = true) - private String involvedUsername; private List includedStates; private String keyword; private Long caseId; @@ -319,24 +314,6 @@ public void setCategory(String category) { this.category = category; } - /** - * @return String - * @deprecated not used anymore, will get current login user for query - */ - @Deprecated(since = "9.2", forRemoval = true) - public String getInvolvedUsername() { - return involvedUsername; - } - - /** - * @param involvedUsername - * @deprecated not used anymore, will get current login user for query - */ - @Deprecated(since = "9.2", forRemoval = true) - public void setInvolvedUsername(String involvedUsername) { - this.involvedUsername = involvedUsername; - } - public boolean isBusinessCase() { return isBusinessCase; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/TaskSearchCriteria.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/TaskSearchCriteria.java index b50609a197d..2e9f3f5aef4 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/TaskSearchCriteria.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/TaskSearchCriteria.java @@ -40,11 +40,6 @@ public class TaskSearchCriteria { TaskBusinessState.IN_PROGRESS, TaskBusinessState.DONE, TaskBusinessState.DESTROYED, TaskBusinessState.DELAYED, TaskBusinessState.ERROR); - /** - * No need since 9.2, this value is always session username - */ - @Deprecated(forRemoval = true, since = "9.2") - private String involvedUsername; private List includedStates; private boolean isAdminQuery; private String keyword; @@ -65,7 +60,6 @@ public class TaskSearchCriteria { private List searchScopeTaskFields; private boolean isGlobalSearch; - private boolean isQuickGlobalSearch; private boolean isGlobalSearchScope; public TaskQuery createQueryToFindLatestTasks(TaskQuery taskQuery, Date timeStamp) { @@ -383,24 +377,6 @@ public void setSortDescending(boolean sortDescending) { this.sortDescending = sortDescending; } - /** - * No need since 9.2, always use session username - * @return empty String - */ - @Deprecated(forRemoval = true, since = "9.2") - public String getInvolvedUsername() { - return ""; - } - - /** - * No need since 9.2, always use session username - * @param involvedUsername - */ - @Deprecated(forRemoval = true, since = "9.2") - public void setInvolvedUsername(String involvedUsername) { - this.involvedUsername = involvedUsername; - } - public boolean isAdminQuery() { return isAdminQuery; } @@ -468,15 +444,6 @@ public boolean hasCaseId() { public boolean hasCategory() { return StringUtils.isNotBlank(category); } - - /** - * No need since 9.2, always true - * @return username - */ - @Deprecated(forRemoval = true, since = "9.2") - public boolean hasInvolvedUsername() { - return StringUtils.isNotBlank(involvedUsername); - } public boolean isSorted() { return isSorted; @@ -517,9 +484,6 @@ public boolean isQuickGlobalSearch() { return isGlobalSearch; } - public void setQuickGlobalSearch(boolean isQuickGlobalSearch) { - this.isQuickGlobalSearch = isQuickGlobalSearch; - } public List getSearchScopeTaskFields() { return searchScopeTaskFields; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/persistence/converter/BusinessEntityConverter.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/persistence/converter/BusinessEntityConverter.java index 17eee3ea058..2c1917cb585 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/persistence/converter/BusinessEntityConverter.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/persistence/converter/BusinessEntityConverter.java @@ -56,8 +56,7 @@ public static T jsonValueToEntity(String jsonValue, Class classType) { } public static T inputStreamToEntity(InputStream inputStream, Class classType) { - try { - new InputStreamReader(inputStream, StandardCharsets.UTF_8); + try (InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8)) { return getObjectMapper().readValue(inputStream, classType); } catch (IOException e) { throw new PortalException(e); diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/CaseDocumentService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/CaseDocumentService.java index c9a9149485c..1aefe9d00ed 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/CaseDocumentService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/CaseDocumentService.java @@ -57,16 +57,6 @@ public List getAll() { return new ArrayList<>(documents); } - /** - * We make it as deprecated from 8.0 - * Please refer to sub-function process DeleteDocument - * @param document - */ - @Deprecated - public void delete(IDocument document) { - documentsOf(iCase).delete(document); - } - /** * @param document * @return streamed content diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DashboardService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DashboardService.java index 5e5f7346f48..90ab5cb9406 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DashboardService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DashboardService.java @@ -1,6 +1,4 @@ package ch.ivy.addon.portalkit.service; -import java.util.List; - import ch.ivy.addon.portalkit.dto.dashboard.Dashboard; import ch.ivy.addon.portalkit.enums.PortalVariable; diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/GlobalSettingService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/GlobalSettingService.java index ea698b21557..2a366676ace 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/GlobalSettingService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/GlobalSettingService.java @@ -43,16 +43,6 @@ public boolean findBooleanGlobalSettingValue(GlobalVariable variable) { return Optional.ofNullable(Ivy.var().get(variable.getKey())).map(Boolean::parseBoolean).orElse(false); } - /** - * @param name - * @return global setting value - * @deprecated use {@link #findGlobalSettingValue(GlobalVariable)} instead - */ - @Deprecated(forRemoval = true, since = "9.3") - public String findGlobalSettingValue(String name) { - return findGlobalSettingValue(GlobalVariable.valueOf(name)); - } - public GlobalSetting findGlobalSettingByGlobalVariable(GlobalVariable variable) { return new GlobalSetting(variable.getKey(), findGlobalSettingValue(variable)); } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/UrlUtils.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/UrlUtils.java index 6f29639fbe3..09c1833af22 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/UrlUtils.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/UrlUtils.java @@ -19,7 +19,7 @@ public class UrlUtils { public static String getServerUrl() { URL url; try { - url = new URL(Ivy.html().applicationHomeRef()); + url = Ivy.html().applicationHomeLink().toAbsoluteUri().toURL(); } catch (MalformedURLException e) { throw new PortalException(e); } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/bo/ClientStatistic.java b/AxonIvyPortal/portal/src/com/axonivy/portal/bo/ClientStatistic.java index ca660a1c8f9..72fe50d5b50 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/bo/ClientStatistic.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/bo/ClientStatistic.java @@ -9,7 +9,6 @@ import ch.ivy.addon.portalkit.configuration.AbstractConfiguration; import ch.ivy.addon.portalkit.dto.DisplayName; -import ch.ivy.addon.portalkit.service.DateTimeGlobalSettingService; import ch.ivyteam.ivy.environment.Ivy; public class ClientStatistic extends AbstractConfiguration { diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/service/GlobalSearchService.java b/AxonIvyPortal/portal/src/com/axonivy/portal/service/GlobalSearchService.java index 4431b2e0385..eaec124516f 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/service/GlobalSearchService.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/service/GlobalSearchService.java @@ -62,7 +62,6 @@ private TaskSearchCriteria buildTaskCriteria(SearchPayload payload) { criteria.setKeyword(payload.getQuery()); criteria.setSortField(TaskSortField.EXPIRY_TIME.toString()); criteria.setSortDescending(true); - criteria.setQuickGlobalSearch(true); criteria.setTaskAssigneeType(TaskAssigneeType.ALL); criteria.setIncludedStates(new ArrayList<>(TaskSearchCriteria.STANDARD_STATES)); boolean isAdminQuery = PermissionUtils.checkReadAllTasksPermission(); diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/CaseInformationInIFrame/CaseInformationInIFrame.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/CaseInformationInIFrame/CaseInformationInIFrame.xhtml index b37216713a4..64dc01753c4 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/CaseInformationInIFrame/CaseInformationInIFrame.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/CaseInformationInIFrame/CaseInformationInIFrame.xhtml @@ -3,7 +3,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:pe="http://primefaces.org/ui/extensions"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskItemDetailsInIFrame/PortalTaskItemDetailsInIFrame.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskItemDetailsInIFrame/PortalTaskItemDetailsInIFrame.xhtml index 2d0404a6b43..9f83c184aa3 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskItemDetailsInIFrame/PortalTaskItemDetailsInIFrame.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskItemDetailsInIFrame/PortalTaskItemDetailsInIFrame.xhtml @@ -3,7 +3,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:pe="http://primefaces.org/ui/extensions"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskListInFrame/PortalTaskListInFrame.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskListInFrame/PortalTaskListInFrame.xhtml index 8c7fd40dbe0..a01358f7236 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskListInFrame/PortalTaskListInFrame.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/component/iframe/PortalTaskListInFrame/PortalTaskListInFrame.xhtml @@ -3,7 +3,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:pe="http://primefaces.org/ui/extensions"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/AdditionalCaseDetails/AdditionalCaseDetails.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/AdditionalCaseDetails/AdditionalCaseDetails.xhtml index 7e9e3ae428c..28163d68f05 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/AdditionalCaseDetails/AdditionalCaseDetails.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/AdditionalCaseDetails/AdditionalCaseDetails.xhtml @@ -1,7 +1,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ApplicationSelectionMenu/ApplicationSelectionMenu.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ApplicationSelectionMenu/ApplicationSelectionMenu.xhtml index a3811db8e3d..c66ffa8e8dc 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ApplicationSelectionMenu/ApplicationSelectionMenu.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ApplicationSelectionMenu/ApplicationSelectionMenu.xhtml @@ -4,7 +4,7 @@ xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" - xmlns:pe="http://primefaces.org/ui/extensions" xmlns:fn="http://java.sun.com/jsp/jstl/functions" + xmlns:pe="http://primefaces.org/ui/extensions" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pm="http://primefaces.org/freya-ivy"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchData.d.json index f72942556ee..f33a41ada69 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchData.d.json @@ -16,7 +16,7 @@ "type" : "Boolean", "modifiers" : [ "PERSISTENT" ] }, { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] }, { diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchProcess.p.json index 34c2851ed4f..dc2f4afca89 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/GlobalSearch/GlobalSearchProcess.p.json @@ -44,7 +44,7 @@ "import ch.ivy.addon.portalkit.util.GrowlMessageUtils;", "", "if(in.isWorkingOnTask) {", - " GrowlMessageUtils.addFeedbackMessage(in.isTaskFinished, in.iCase);", + " GrowlMessageUtils.addFeedbackMessage(in.isTaskFinished, in.caze);", "}" ] } @@ -65,10 +65,10 @@ "input" : { "params" : [ { "name" : "isWorkingOnTask", "type" : "Boolean", "desc" : "" }, - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase", + "out.caze" : "param.caze", "out.isWorkingOnTask" : "param.isWorkingOnTask" } }, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalBreadcrumb/PortalBreadcrumb.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalBreadcrumb/PortalBreadcrumb.xhtml index 3f0e97f38d3..07c7ac69324 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalBreadcrumb/PortalBreadcrumb.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalBreadcrumb/PortalBreadcrumb.xhtml @@ -4,7 +4,7 @@ xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" - xmlns:pe="http://primefaces.org/ui/extensions" xmlns:fn="http://java.sun.com/jsp/jstl/functions" + xmlns:pe="http://primefaces.org/ui/extensions" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:ps="http://primefaces.org/serenity"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleData.d.json index 95e54da8f76..4003a0f7cb1 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleData.d.json @@ -8,7 +8,7 @@ "type" : "Boolean", "modifiers" : [ "PERSISTENT" ] }, { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] } ] diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleProcess.p.json index a6e328d21ee..be791092ed2 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/PortalFinishTaskHandle/PortalFinishTaskHandleProcess.p.json @@ -8,16 +8,16 @@ "elements" : [ { "id" : "f0", "type" : "HtmlDialogStart", - "name" : "start(isTaskFinished, iCase)", + "name" : "start(isTaskFinished, caze)", "config" : { "signature" : "start", "input" : { "params" : [ { "name" : "isTaskFinished", "type" : "Boolean", "desc" : "" }, - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase", + "out.caze" : "param.caze", "out.isTaskFinished" : "param.isTaskFinished" } }, @@ -48,7 +48,7 @@ "code" : [ "import ch.ivy.addon.portalkit.util.GrowlMessageUtils;", "", - "GrowlMessageUtils.addFeedbackMessage(in.isTaskFinished, in.iCase);" + "GrowlMessageUtils.addFeedbackMessage(in.isTaskFinished, in.caze);" ] } }, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/admin/PortalDashBoard/PortalDashBoard.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/admin/PortalDashBoard/PortalDashBoard.xhtml index a408a765086..b3f00019c0c 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/admin/PortalDashBoard/PortalDashBoard.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/admin/PortalDashBoard/PortalDashBoard.xhtml @@ -3,7 +3,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboard/PortalDashboard.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboard/PortalDashboard.xhtml index 24a02bcdf9d..5791cce4263 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboard/PortalDashboard.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboard/PortalDashboard.xhtml @@ -1,7 +1,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml index 09880ab359e..c4999821f03 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml @@ -1,6 +1,6 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/CaseWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/CaseWidget.xhtml index 6e7cc057d68..62eb76d3097 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/CaseWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/CaseWidget.xhtml @@ -1,7 +1,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidgetConfiguration/CaseWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidgetConfiguration/CaseWidgetConfiguration.xhtml index c48067ae9c0..ab7aa7097f9 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidgetConfiguration/CaseWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidgetConfiguration/CaseWidgetConfiguration.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml index 3ce6e1a1707..7b329c55829 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/MultiLanguageConfiguration/MultiLanguageConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/MultiLanguageConfiguration/MultiLanguageConfiguration.xhtml index 830107daafe..1169f3e4dc0 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/MultiLanguageConfiguration/MultiLanguageConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/MultiLanguageConfiguration/MultiLanguageConfiguration.xhtml @@ -8,7 +8,7 @@ xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" - xmlns:fn="http://java.sun.com/jsp/jstl/functions" + xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessCaseWidget/ProcessCaseWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessCaseWidget/ProcessCaseWidget.xhtml index 55ebb741956..f80c51ea42d 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessCaseWidget/ProcessCaseWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessCaseWidget/ProcessCaseWidget.xhtml @@ -1,7 +1,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessTaskWidget/ProcessTaskWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessTaskWidget/ProcessTaskWidget.xhtml index ea6da8955d0..29a5b58b988 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessTaskWidget/ProcessTaskWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessTaskWidget/ProcessTaskWidget.xhtml @@ -3,7 +3,7 @@ xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:jsf="http://xmlns.jcp.org/jsf" - xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml index 3c1a297661b..403b10fda54 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/ProcessWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/ProcessWidget.xhtml index 1754031f1bc..dba05d75149 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/ProcessWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/ProcessWidget.xhtml @@ -1,6 +1,6 @@ + xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidgetConfiguration/ProcessWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidgetConfiguration/ProcessWidgetConfiguration.xhtml index 527de814a9c..2471ad556b1 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidgetConfiguration/ProcessWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidgetConfiguration/ProcessWidgetConfiguration.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml index cfa1d1f4149..1994b1faa93 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml @@ -3,7 +3,7 @@ xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" - xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> + xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/TaskWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/TaskWidget.xhtml index d83698c7f26..4396cd5f68a 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/TaskWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/TaskWidget.xhtml @@ -3,7 +3,7 @@ xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:jsf="http://xmlns.jcp.org/jsf" - xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidgetConfiguration/TaskWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidgetConfiguration/TaskWidgetConfiguration.xhtml index 952962a93a8..4562b71708c 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidgetConfiguration/TaskWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidgetConfiguration/TaskWidgetConfiguration.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/WelcomeWidgetConfiguration/WelcomeWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/WelcomeWidgetConfiguration/WelcomeWidgetConfiguration.xhtml index 32b63f37a48..c1393210399 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/WelcomeWidgetConfiguration/WelcomeWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/WelcomeWidgetConfiguration/WelcomeWidgetConfiguration.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/setting/AbsenceManagement/SelectDeputy.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/setting/AbsenceManagement/SelectDeputy.xhtml index aeea6b5948a..ef86dc4c03e 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/setting/AbsenceManagement/SelectDeputy.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/setting/AbsenceManagement/SelectDeputy.xhtml @@ -1,6 +1,7 @@ - diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepData.d.json index 21f9eb942db..6573e6f7010 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepData.d.json @@ -4,7 +4,7 @@ "namespace" : "ch.ivy.addon.portalkit.component.ActionStep", "isBusinessCaseData" : false, "fields" : [ { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] }, { diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepProcess.p.json index d9e1189cce4..d3baf233dd6 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStepProcess.p.json @@ -53,12 +53,12 @@ "signature" : "openDetails", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" }, + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" }, { "name" : "inFrame", "type" : "Boolean", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase", - "out.inFrame" : "param.inFrame" + "out.inFrame" : "param.inFrame", + "out.caze" : "param.caze" } }, "guid" : "1700AAD6E969D73E" @@ -78,7 +78,7 @@ "processCall" : "Functional Processes/OpenPortalCaseDetailsHook:callForIFrame(ch.ivyteam.ivy.workflow.ICase,Boolean)", "call" : { "map" : { - "param.caseData" : "in.iCase", + "param.caseData" : "in.caze", "param.isShowBackButton" : "true" } } @@ -115,7 +115,7 @@ "processCall" : "Functional Processes/OpenPortalCaseDetailsHook:call(ch.ivyteam.ivy.workflow.ICase,Boolean)", "call" : { "map" : { - "param.caseData" : "in.iCase", + "param.caseData" : "in.caze", "param.isShowBackButton" : "true" } } diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemData.d.json index 8a582e458e0..b1b05358769 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemData.d.json @@ -4,7 +4,7 @@ "namespace" : "ch.ivy.addon.portalkit.component.CaseItem", "isBusinessCaseData" : false, "fields" : [ { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] }, { diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemProcess.p.json index 9df6599cce4..4d17351a5e2 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItemProcess.p.json @@ -28,16 +28,16 @@ }, { "id" : "f3", "type" : "HtmlDialogMethodStart", - "name" : "openDetails(iCase)", + "name" : "openDetails(caze)", "config" : { "signature" : "openDetails", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" }, + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" }, { "name" : "inFrame", "type" : "Boolean", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase", + "out.caze" : "param.caze", "out.inFrame" : "param.inFrame" } }, @@ -58,7 +58,7 @@ "processCall" : "Functional Processes/OpenPortalCaseDetailsHook:call(ch.ivyteam.ivy.workflow.ICase,Boolean)", "call" : { "map" : { - "param.caseData" : "in.iCase", + "param.caseData" : "in.caze", "param.isShowBackButton" : "true" } } @@ -90,7 +90,7 @@ "processCall" : "Functional Processes/OpenPortalCaseDetailsHook:callForIFrame(ch.ivyteam.ivy.workflow.ICase,Boolean)", "call" : { "map" : { - "param.caseData" : "in.iCase", + "param.caseData" : "in.caze", "param.isShowBackButton" : "true" } } diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDescription/CaseItemDescriptionData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDescription/CaseItemDescriptionData.d.json index a89322af09d..ff320d1a36a 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDescription/CaseItemDescriptionData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDescription/CaseItemDescriptionData.d.json @@ -2,10 +2,5 @@ "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", "simpleName" : "CaseItemDescriptionData", "namespace" : "ch.ivy.addon.portalkit.component.CaseItemDescription", - "isBusinessCaseData" : false, - "fields" : [ { - "name" : "iCase", - "type" : "ch.ivyteam.ivy.workflow.ICase", - "modifiers" : [ "PERSISTENT" ] - } ] + "isBusinessCaseData" : false } \ No newline at end of file diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentData.d.json index d70b640498f..4d8f5e816f3 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentData.d.json @@ -16,7 +16,7 @@ "type" : "org.primefaces.event.FileUploadEvent", "modifiers" : [ "PERSISTENT" ] }, { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] }, { diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentProcess.p.json index f4e693b18fc..fb03f39523c 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDocument/CaseItemDocumentProcess.p.json @@ -33,10 +33,10 @@ "signature" : "initData", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase" + "out.caze" : "param.caze" } }, "guid" : "167E9DF0DE4FEF32" @@ -293,7 +293,7 @@ "processCall" : "Functional Processes/GetDocumentList:getDocumentList(ch.ivyteam.ivy.workflow.ICase)", "call" : { "map" : { - "param.businessCase" : "in.iCase" + "param.businessCase" : "in.caze" } }, "output" : { @@ -317,7 +317,7 @@ "processCall" : "Functional Processes/GetDocumentList:getDocumentList(ch.ivyteam.ivy.workflow.ICase)", "call" : { "map" : { - "param.businessCase" : "in.iCase" + "param.businessCase" : "in.caze" } }, "output" : { @@ -341,7 +341,7 @@ "processCall" : "Functional Processes/GetDocumentList:getDocumentList(ch.ivyteam.ivy.workflow.ICase)", "call" : { "map" : { - "param.businessCase" : "in.iCase" + "param.businessCase" : "in.caze" } }, "output" : { @@ -365,7 +365,7 @@ "processCall" : "Functional Processes/UploadDocument:uploadDocument(ch.ivyteam.ivy.workflow.ICase,org.primefaces.model.file.UploadedFile,Boolean,Boolean,String)", "call" : { "map" : { - "param.businessCase" : "in.iCase", + "param.businessCase" : "in.caze", "param.uploadedFile" : "in.documentUploadEvent.getFile()" } }, @@ -391,7 +391,7 @@ "processCall" : "Functional Processes/DownloadDocument:downloadDocument(ch.ivyteam.ivy.workflow.ICase,com.axonivy.portal.components.ivydata.bo.IvyDocument)", "call" : { "map" : { - "param.bussinessCase" : "in.iCase", + "param.bussinessCase" : "in.caze", "param.document" : "in.document" } }, @@ -417,7 +417,7 @@ "processCall" : "Functional Processes/DeleteDocument:deleteDocument(ch.ivyteam.ivy.workflow.ICase,com.axonivy.portal.components.ivydata.bo.IvyDocument)", "call" : { "map" : { - "param.businessCase" : "in.iCase", + "param.businessCase" : "in.caze", "param.document" : "in.document" } }, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesData.d.json index f55d16581b3..78b04895e38 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesData.d.json @@ -4,7 +4,7 @@ "namespace" : "ch.ivy.addon.portalkit.component.CaseItemRelatedCases", "isBusinessCaseData" : false, "fields" : [ { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] }, { diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesProcess.p.json index 4bc1bbc90de..9d5815b47a6 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCasesProcess.p.json @@ -162,7 +162,7 @@ "code" : [ "import ch.ivy.addon.portalkit.datamodel.internal.RelatedCaseLazyDataModel;", "", - "in.caseLazyDataModel = new RelatedCaseLazyDataModel(in.iCase.getId());" + "in.caseLazyDataModel = new RelatedCaseLazyDataModel(in.caze.getId());" ] } }, @@ -187,10 +187,10 @@ "signature" : "initData", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase" + "out.caze" : "param.caze" } }, "guid" : "177F659A0ABC7738" diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/IconSelection/IconSelection.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/IconSelection/IconSelection.xhtml index 54512a21c1a..3526156f934 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/IconSelection/IconSelection.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/IconSelection/IconSelection.xhtml @@ -2,7 +2,7 @@ xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:cc="http://xmlns.jcp.org/jsf/composite" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/PageHeader/PageHeader.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/PageHeader/PageHeader.xhtml index 1b6df643571..7c2f857a3d3 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/PageHeader/PageHeader.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/PageHeader/PageHeader.xhtml @@ -4,7 +4,7 @@ xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ProcessWidget/ProcessWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ProcessWidget/ProcessWidget.xhtml index 0371188e9a3..92cd60913f1 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ProcessWidget/ProcessWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ProcessWidget/ProcessWidget.xhtml @@ -3,7 +3,7 @@ xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" - xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> + xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskAnalysisWidget/StatisticResult.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskAnalysisWidget/StatisticResult.xhtml index 9e0cf4f88da..38ef98efa05 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskAnalysisWidget/StatisticResult.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskAnalysisWidget/StatisticResult.xhtml @@ -1,7 +1,8 @@ - diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemDescription/TaskItemDescription.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemDescription/TaskItemDescription.xhtml index 7e40409ce46..81771e47d0c 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemDescription/TaskItemDescription.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemDescription/TaskItemDescription.xhtml @@ -1,6 +1,6 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.rddescriptor b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.rddescriptor deleted file mode 100644 index d2c56b0a928..00000000000 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.rddescriptor +++ /dev/null @@ -1,24 +0,0 @@ - - - true - - guid - 1555DB6ED1223FCA - true - - - version - 1 - true - - - binary - false - true - - - viewTechnology - JSF - true - - diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.xhtml deleted file mode 100644 index e6465882576..00000000000 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayText.xhtml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextData.d.json deleted file mode 100644 index 5517ec05c0d..00000000000 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextData.d.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", - "simpleName" : "UserFullnameDisplayTextData", - "namespace" : "ch.ivy.addon.portalkit.component.UserFullnameDisplayText", - "isBusinessCaseData" : false -} \ No newline at end of file diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextProcess.p.json deleted file mode 100644 index 5e54795a057..00000000000 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/UserFullnameDisplayText/UserFullnameDisplayTextProcess.p.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/process/11.3.0/process.json", - "id" : "1555DB6ED126E070", - "kind" : "HTML_DIALOG", - "config" : { - "data" : "ch.ivy.addon.portalkit.component.UserFullnameDisplayText.UserFullnameDisplayTextData" - }, - "elements" : [ { - "id" : "f0", - "type" : "HtmlDialogStart", - "name" : "start()", - "config" : { - "signature" : "start", - "guid" : "15493AB38F1A359C" - }, - "visual" : { - "at" : { "x" : 64, "y" : 96 }, - "labelOffset" : { "x" : 38, "y" : 20 } - }, - "connect" : [ - { "id" : "f2", "to" : "f1" } - ] - }, { - "id" : "f1", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 64, "y" : 224 } - } - } ] -} \ No newline at end of file diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskData.d.json index 856ffa84101..96ef441d6da 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskData.d.json @@ -8,7 +8,7 @@ "type" : "Boolean", "modifiers" : [ "PERSISTENT" ] }, { - "name" : "iCase", + "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "modifiers" : [ "PERSISTENT" ] } ] diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskProcess.p.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskProcess.p.json index 6740e4965bf..33beaba4c97 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskProcess.p.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLeavingTask/WarningBeforeLeavingTaskProcess.p.json @@ -33,10 +33,10 @@ "signature" : "leave", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase" + "out.caze" : "param.caze" } }, "guid" : "16FA866C14936E0D" @@ -56,10 +56,10 @@ "signature" : "reserve", "input" : { "params" : [ - { "name" : "iCase", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } + { "name" : "caze", "type" : "ch.ivyteam.ivy.workflow.ICase", "desc" : "" } ], "map" : { - "out.iCase" : "param.iCase" + "out.caze" : "param.caze" } }, "guid" : "16FA866CC3BA9742" @@ -83,7 +83,7 @@ "code" : [ "import ch.ivy.addon.portalkit.util.GrowlMessageUtils;", "", - "GrowlMessageUtils.addFeedbackMessage(in.isTaskFinished, in.iCase);" + "GrowlMessageUtils.addFeedbackMessage(in.isTaskFinished, in.caze);" ] } }, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLostSession/WarningBeforeLostSession.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLostSession/WarningBeforeLostSession.xhtml index 6ac1ebc86b0..6b78cd3a9ca 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLostSession/WarningBeforeLostSession.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/WarningBeforeLostSession/WarningBeforeLostSession.xhtml @@ -2,7 +2,7 @@ xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartCreationWidget/ChartCreationWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartCreationWidget/ChartCreationWidget.xhtml index fd9e8bb63de..f2121c3cf30 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartCreationWidget/ChartCreationWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartCreationWidget/ChartCreationWidget.xhtml @@ -1,6 +1,6 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartInformationDialog/ChartInformationDialog.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartInformationDialog/ChartInformationDialog.xhtml index ad2f6ad4a96..bed51c33fe0 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartInformationDialog/ChartInformationDialog.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/ChartInformationDialog/ChartInformationDialog.xhtml @@ -3,7 +3,7 @@ xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:jsf="http://xmlns.jcp.org/jsf" - xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions"> + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/StatisticDashboardWidget/StatisticCarousel.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/StatisticDashboardWidget/StatisticCarousel.xhtml index 0be836130c3..357e8fdc9d3 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/StatisticDashboardWidget/StatisticCarousel.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/statistic/StatisticDashboardWidget/StatisticCarousel.xhtml @@ -1,7 +1,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/LogoutSetting/LogoutSetting.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/LogoutSetting/LogoutSetting.xhtml index a1f1a2ef6d7..39d346c0697 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/LogoutSetting/LogoutSetting.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/LogoutSetting/LogoutSetting.xhtml @@ -6,7 +6,7 @@ xmlns:ic="http://ivyteam.ch/jsf/component" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/PasswordSetting/PasswordSetting.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/PasswordSetting/PasswordSetting.xhtml index 48e246852a6..6c49fa7a3c1 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/PasswordSetting/PasswordSetting.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/multiapp/settings/PasswordSetting/PasswordSetting.xhtml @@ -1,7 +1,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/ForgotPassword/ForgotPassword.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/ForgotPassword/ForgotPassword.xhtml index 322cbae1e9c..e626bb649cc 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/ForgotPassword/ForgotPassword.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/ForgotPassword/ForgotPassword.xhtml @@ -3,7 +3,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/Login/Login.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/Login/Login.xhtml index e0c476392e8..dc86dcfe790 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/Login/Login.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/Login/Login.xhtml @@ -3,7 +3,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/PasswordReset/PasswordReset.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/PasswordReset/PasswordReset.xhtml index 91aed79c3ed..87f1000184c 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/PasswordReset/PasswordReset.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/singleapp/general/PasswordReset/PasswordReset.xhtml @@ -3,7 +3,7 @@ diff --git a/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml b/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml index b29a2f40905..80fc802ccfe 100644 --- a/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml @@ -3,7 +3,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:pe="http://primefaces.org/ui/extensions"> diff --git a/AxonIvyPortal/portal/webContent/layouts/includes/chat.xhtml b/AxonIvyPortal/portal/webContent/layouts/includes/chat.xhtml index dbeade300b8..6c09e599cc3 100644 --- a/AxonIvyPortal/portal/webContent/layouts/includes/chat.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/includes/chat.xhtml @@ -1,7 +1,7 @@ diff --git a/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml b/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml index 4c002e1ce63..923caf320d0 100644 --- a/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml @@ -1,6 +1,6 @@ + xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:ic="http://ivyteam.ch/jsf/component"> diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml index b53742241da..82b2d9e8f72 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml @@ -2,7 +2,7 @@ diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml index 4e4215fde71..8dc9f6adce0 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml @@ -1,6 +1,6 @@ diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/IFrameTaskTemplate.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/IFrameTaskTemplate.xhtml index 9b8e5500efd..597817e442c 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/IFrameTaskTemplate.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/IFrameTaskTemplate.xhtml @@ -3,7 +3,7 @@ + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:pe="http://primefaces.org/ui/extensions"> diff --git a/Showcase/InternalSupport/.settings/org.eclipse.core.resources.prefs b/Showcase/InternalSupport/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/Showcase/InternalSupport/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Showcase/InternalSupport/pom.xml b/Showcase/InternalSupport/pom.xml index 7ff9d603022..2bf08050b66 100644 --- a/Showcase/InternalSupport/pom.xml +++ b/Showcase/InternalSupport/pom.xml @@ -8,6 +8,7 @@ 11.4.0-SNAPSHOT 11.4.0 + UTF-8 diff --git a/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeave.xhtml b/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeave.xhtml index a50532538de..622edceab04 100644 --- a/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeave.xhtml +++ b/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeave.xhtml @@ -23,14 +23,14 @@ - + - - @@ -38,11 +38,11 @@ - + - +
diff --git a/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveData.d.json b/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveData.d.json index 89b63e5bc7e..7a1e340ab7f 100644 --- a/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveData.d.json +++ b/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveData.d.json @@ -4,13 +4,13 @@ "namespace" : "internaltest.ui.approveLeave", "isBusinessCaseData" : false, "fields" : [ { - "name" : "Mitarbeiter", + "name" : "mitarbeiter", "type" : "String" }, { - "name" : "Von", + "name" : "von", "type" : "java.util.Date" }, { - "name" : "Bis", + "name" : "bis", "type" : "java.util.Date" }, { "name" : "beantragt", @@ -19,10 +19,10 @@ "name" : "genehmigt", "type" : "Boolean" }, { - "name" : "Ablehnungsgrund", + "name" : "ablehnungsgrund", "type" : "String" }, { - "name" : "Vertretung", + "name" : "vertretung", "type" : "String" }, { "name" : "actualStepIndex", diff --git a/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveProcess.p.json b/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveProcess.p.json index 6fe374203e8..0a2601d4f49 100644 --- a/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveProcess.p.json +++ b/Showcase/InternalSupport/src_hd/internaltest/ui/approveLeave/approveLeaveProcess.p.json @@ -13,34 +13,34 @@ "signature" : "start", "input" : { "params" : [ - { "name" : "Mitarbeiter", "type" : "String", "desc" : "" }, - { "name" : "Von", "type" : "Date", "desc" : "" }, - { "name" : "Bis", "type" : "Date", "desc" : "" }, + { "name" : "mitarbeiter", "type" : "String", "desc" : "" }, + { "name" : "von", "type" : "Date", "desc" : "" }, + { "name" : "bis", "type" : "Date", "desc" : "" }, { "name" : "beantragt", "type" : "Boolean", "desc" : "" }, - { "name" : "Vertretung", "type" : "String", "desc" : "" }, + { "name" : "vertretung", "type" : "String", "desc" : "" }, { "name" : "processStatus", "type" : "internalPortal.ProcessStatus", "desc" : "" } ], "map" : { "out.actualStepIndex" : "param.processStatus.actualStepIndex", "out.beantragt" : "param.beantragt", - "out.Bis" : "param.Bis", - "out.Mitarbeiter" : "param.Mitarbeiter", + "out.bis" : "param.bis", + "out.mitarbeiter" : "param.mitarbeiter", "out.steps" : "param.processStatus.steps", - "out.Vertretung" : "param.Vertretung", - "out.Von" : "param.Von" + "out.vertretung" : "param.vertretung", + "out.von" : "param.von" } }, "result" : { "params" : [ - { "name" : "Mitarbeiter", "type" : "String", "desc" : "" }, + { "name" : "mitarbeiter", "type" : "String", "desc" : "" }, { "name" : "genehmigt", "type" : "Boolean", "desc" : "" }, - { "name" : "Ablehnungsgrund", "type" : "String", "desc" : "" }, + { "name" : "ablehnungsgrund", "type" : "String", "desc" : "" }, { "name" : "processStatus", "type" : "internalPortal.ProcessStatus", "desc" : "" } ], "map" : { - "result.Mitarbeiter" : "in.Mitarbeiter", + "result.mitarbeiter" : "in.mitarbeiter", "result.genehmigt" : "in.genehmigt", - "result.Ablehnungsgrund" : "in.Ablehnungsgrund", + "result.ablehnungsgrund" : "in.ablehnungsgrund", "result.processStatus.actualStepIndex" : "in.actualStepIndex", "result.processStatus.steps" : "in.steps" } diff --git a/Showcase/portal-components-examples/.settings/org.eclipse.core.resources.prefs b/Showcase/portal-components-examples/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/Showcase/portal-components-examples/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Showcase/portal-components-examples/pom.xml b/Showcase/portal-components-examples/pom.xml index ab0026b4e3d..32dff151e91 100644 --- a/Showcase/portal-components-examples/pom.xml +++ b/Showcase/portal-components-examples/pom.xml @@ -19,6 +19,7 @@ 11.4.0 11.4.0-SNAPSHOT + UTF-8 diff --git a/Showcase/portal-components-examples/webContent/layouts/includes/progress-loader.xhtml b/Showcase/portal-components-examples/webContent/layouts/includes/progress-loader.xhtml index 0d68a75d67c..99f9e2b1792 100644 --- a/Showcase/portal-components-examples/webContent/layouts/includes/progress-loader.xhtml +++ b/Showcase/portal-components-examples/webContent/layouts/includes/progress-loader.xhtml @@ -1,5 +1,6 @@ - + diff --git a/Showcase/portal-developer-examples/.settings/org.eclipse.core.resources.prefs b/Showcase/portal-developer-examples/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/Showcase/portal-developer-examples/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Showcase/portal-developer-examples/pom.xml b/Showcase/portal-developer-examples/pom.xml index 074441e274c..4c104ab214f 100644 --- a/Showcase/portal-developer-examples/pom.xml +++ b/Showcase/portal-developer-examples/pom.xml @@ -19,6 +19,7 @@ 11.4.0 11.4.0-SNAPSHOT + UTF-8 diff --git a/Showcase/portal-developer-examples/processes/Functional Processes/CustomLogoutPage.p.json b/Showcase/portal-developer-examples/processes/Functional Processes/CustomLogoutPage.p.json index 3f210761020..12413ecb5fe 100644 --- a/Showcase/portal-developer-examples/processes/Functional Processes/CustomLogoutPage.p.json +++ b/Showcase/portal-developer-examples/processes/Functional Processes/CustomLogoutPage.p.json @@ -49,7 +49,7 @@ "name" : "Set logout page", "config" : { "output" : { - "code" : "in.logoutPage = ivy.html.applicationHomeRef();" + "code" : "in.logoutPage = ivy.html.applicationHomeLink().getAbsoluteEncoded();" } }, "visual" : { diff --git a/Showcase/portal-developer-examples/src/com/axonivy/portal/developerexamples/util/UrlUtils.java b/Showcase/portal-developer-examples/src/com/axonivy/portal/developerexamples/util/UrlUtils.java index 8b4b1068f72..5e3c74a697e 100644 --- a/Showcase/portal-developer-examples/src/com/axonivy/portal/developerexamples/util/UrlUtils.java +++ b/Showcase/portal-developer-examples/src/com/axonivy/portal/developerexamples/util/UrlUtils.java @@ -12,7 +12,7 @@ public class UrlUtils { public static String getServerUrl() { URL url; try { - url = new URL(Ivy.html().applicationHomeRef()); + url = Ivy.html().applicationHomeLink().toAbsoluteUri().toURL(); } catch (MalformedURLException e) { throw new PortalException(e); } diff --git a/Showcase/portal-developer-examples/src_hd/com/axonivy/portal/developerexamples/ResetTaskIFrame/ResetTaskIFrameProcess.p.json b/Showcase/portal-developer-examples/src_hd/com/axonivy/portal/developerexamples/ResetTaskIFrame/ResetTaskIFrameProcess.p.json index b9c63fa56d9..54205a1d7d8 100644 --- a/Showcase/portal-developer-examples/src_hd/com/axonivy/portal/developerexamples/ResetTaskIFrame/ResetTaskIFrameProcess.p.json +++ b/Showcase/portal-developer-examples/src_hd/com/axonivy/portal/developerexamples/ResetTaskIFrame/ResetTaskIFrameProcess.p.json @@ -71,7 +71,7 @@ "code" : [ "import com.axonivy.portal.components.publicapi.PortalNavigatorInFrameAPI;", "ivy.task.reset();", - "PortalNavigatorInFrameAPI.navigateToUrl(ivy.html.applicationHomeRef());" + "PortalNavigatorInFrameAPI.navigateToUrl(ivy.html.applicationHomeLink().getAbsoluteEncoded());" ] }, "sudo" : true diff --git a/Showcase/portal-developer-examples/webContent/layouts/includes/progress-loader.xhtml b/Showcase/portal-developer-examples/webContent/layouts/includes/progress-loader.xhtml index dea8cdd73c6..efaa09a062f 100644 --- a/Showcase/portal-developer-examples/webContent/layouts/includes/progress-loader.xhtml +++ b/Showcase/portal-developer-examples/webContent/layouts/includes/progress-loader.xhtml @@ -1,5 +1,6 @@ - + diff --git a/Showcase/portal-user-examples/.settings/org.eclipse.core.resources.prefs b/Showcase/portal-user-examples/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/Showcase/portal-user-examples/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Showcase/portal-user-examples/pom.xml b/Showcase/portal-user-examples/pom.xml index f1419300100..2608c3bc557 100644 --- a/Showcase/portal-user-examples/pom.xml +++ b/Showcase/portal-user-examples/pom.xml @@ -19,6 +19,7 @@ 11.4.0 11.4.0-SNAPSHOT + UTF-8 diff --git a/Showcase/portal-user-examples/webContent/layouts/includes/progress-loader.xhtml b/Showcase/portal-user-examples/webContent/layouts/includes/progress-loader.xhtml index dea8cdd73c6..efaa09a062f 100644 --- a/Showcase/portal-user-examples/webContent/layouts/includes/progress-loader.xhtml +++ b/Showcase/portal-user-examples/webContent/layouts/includes/progress-loader.xhtml @@ -1,5 +1,6 @@ - + diff --git a/build/document-screenshot/Jenkinsfile b/build/document-screenshot/Jenkinsfile deleted file mode 100644 index a88eaf15960..00000000000 --- a/build/document-screenshot/Jenkinsfile +++ /dev/null @@ -1,126 +0,0 @@ -pipeline { - agent {label 'portal-slave'} - - options { - buildDiscarder(logRotator(numToKeepStr: '60', artifactNumToKeepStr: '5')) - } - - - tools { - maven '3.9' - jdk '21' - } - - parameters { - string(name: 'testPatternToRun', defaultValue: 'portal.guitest.document.screenshot.*Test', description: 'Screenshot test pattern') - string(name: 'engineDownloadURL', defaultValue: '-Divy.engine.download.url=https://developer.axonivy.com/permalink/nightly/axonivy-engine-windows.zip', description: '''Where to download engine? e.g. - -Divy.engine.download.url=https://developer.axonivy.com/permalink/nightly/axonivy-engine-windows.zip for nightly master - -Divy.engine.download.url=https://developer.axonivy.com/permalink/dev/axonivy-engine-windows.zip for dev master - -Divy.engine.download.url=file:///C:/wawa/engine/AxonIvyEngineX.X.X.X_Windows_x64.zip for downloaded engine - -Divy.engine.list.url=https://jenkins.ivyteam.io/job/core_product/job/release%252F9.4/lastSuccessfulBuild/artifact/workspace/ch.ivyteam.ivy.server.product/target/products/ -Divy.engine.os.arch=Windows_x64 for last successful build 9.4 - ''') - booleanParam(name: 'useForDocumentation', defaultValue: false, description: 'Make screenshots available to use in upcomming documentation builds. CAUTION: Only enable this option when you run with default test pattern.') - booleanParam(name: 'checkoutCodeFromLatestReleaseTag', defaultValue: false, description: 'Turn on when you want to release new Portal screenshots, it will checkout the code from latest release tag') - } - - environment { - releaseDir = 'archive' - engineDir = "$env.WORKSPACE/AxonIvyPortal/PortalTest/engine" - shareDir = 'C:/tools/shared/document-screenshots' - } - - stages { - stage('build') { - steps { - script { - currentBuild.description = "On ${env.NODE_NAME}" - def utils = load 'build/common/utils.groovy' - utils.init() - utils.stopAllEngines() - - utils.downloadExpress() - def expressFile = findFiles(glob: 'archive/**/axonivy-express*.iar')[0].path - - if (params.checkoutCodeFromLatestReleaseTag) { - downloadPortalRelease() - - echo '====================Check out tag of Portal latest successful release====================' - powershell ''' - $artifactPattern = $env:releaseDir + '/AxonIvyPortal/portal/target/*.iar' - $artifactName = dir $artifactPattern | select -expand BaseName - $versionLastestReleasedPortal = $artifactName.substring(7) - git fetch --tags - git checkout tags/$versionLastestReleasedPortal - git reset --hard HEAD - git clean -fd - ''' - - echo '====================Copy patch to workspace if any. Note: this is in a tag and we cannot change code in git repo====================' - powershell ''' - if (Test-Path ../patch/master) { - copy -path ../patch/master -recurse -force -destination . - } - ''' - } - - utils.extractEngine(env.engineDir, params.engineDownloadURL) - - echo '====================Run script to copy decorate js and css to Portal====================' - bat 'AxonIvyPortal/PortalTest/resources/copy-decorate-js-css.bat' - - echo '====================Build Portal modules====================' - def modules = ['AxonIvyPortal/portal-components', 'AxonIvyPortal/portal', 'AxonIvyPortal/PortalKitTestHelper', 'Showcase/portal-user-examples', 'Showcase/portal-developer-examples', 'Showcase/InternalSupport', 'Showcase/portal-components-examples', 'AxonIvyPortal/PortalApp', 'Showcase/portal-demo-app'] - for (module in modules) { - bat "mvn clean install -f ${module}/pom.xml -Divy.engine.directory=%engineDir%" - } - - echo '====================Deploy Portal modules====================' - powershell """ - \$DEPLOYMENT= \$env:engineDir + "/system/demo-applications/demo-portal" - rmdir \$DEPLOYMENT/* -recurse - Copy-Item Showcase/portal-demo-app/target/*zip -Destination \$DEPLOYMENT - Copy-Item Showcase/portal-developer-examples/target/*iar -Destination \$DEPLOYMENT - Copy-Item Showcase/portal-components-examples/target/*iar -Destination \$DEPLOYMENT - Copy-Item ${expressFile} -Destination \$DEPLOYMENT - """ - - utils.killUnnecessaryProcessesToRunTest() - - echo '====================Execute maven for testing====================' - bat "mvn clean install -f AxonIvyPortal/PortalTest/document_screenshot_pom.xml %engineDownloadURL% -Dtest=${params.testPatternToRun} -DbrowserType=FIREFOX -DtrimStackTrace=false -Divy.engine.directory=%engineDir% -Divy.deploy.timeout.seconds=60 -Divy.engine.start.timeout.seconds=120" - utils.cleanDisk() - - echo '====================Copy ElasticSearch log====================' - powershell ''' - $LOG= $env:engineDir + "/elasticsearch/logs/ivy-elasticsearch-*.log" - Copy-Item $LOG -Destination AxonIvyPortal/PortalTest/target - ''' - - if (params.useForDocumentation) { - echo '====================Copy screenshots to shared directory====================' - powershell """ - Copy-Item AxonIvyPortal/PortalTest/target/*.zip -Destination ${shareDir} - """ - } - } - } - } - } - - post { - always { - archiveArtifacts artifacts: 'AxonIvyPortal/PortalTest/target/*.zip', allowEmptyArchive: true - archiveArtifacts artifacts: 'AxonIvyPortal/PortalTest/target/test/*/*.jpg, AxonIvyPortal/PortalTest/target/testEngineOut.log, , AxonIvyPortal/PortalTest/target/ivy-elasticsearch-*.log', allowEmptyArchive: true - junit allowEmptyResults: true, testResults: '**/surefire-reports/TEST-*.xml' - } - } -} - -def downloadPortalRelease() { - echo '====================Download Portal latest successful release====================' - def branchName = env.BRANCH_NAME.replaceAll('/', '%%2F') - withCredentials([usernameColonPassword(credentialsId: 'wawa-jenkins', variable: 'credentials')]) { - bat "curl --user ${credentials} --output archive.zip ${env.JENKINS_URL}job/portal-release/job/${branchName}/lastSuccessfulBuild/artifact/*zip*/archive.zip" - } - unzip zipFile: 'archive.zip', quiet: true -} diff --git a/build/gui-test/Jenkinsfile b/build/gui-test/Jenkinsfile deleted file mode 100644 index 4973710507c..00000000000 --- a/build/gui-test/Jenkinsfile +++ /dev/null @@ -1,73 +0,0 @@ -pipeline { - agent {label 'portal-slave'} - - options { - buildDiscarder(logRotator(numToKeepStr: '60', artifactNumToKeepStr: '60')) - } - - - tools { - maven '3.9' - jdk '21' - } - - parameters { - string(name: 'testPatternToRun', defaultValue: 'portal.guitest.userexample.test.*Test,portal.guitest.test.*Test', description: 'Test pattern to run') - string(name: 'engineDownloadURL', defaultValue: '-Divy.engine.download.url=https://developer.axonivy.com/permalink/nightly/axonivy-engine-windows.zip', description: '''Where to download engine? e.g. - -Divy.engine.download.url=https://developer.axonivy.com/permalink/nightly/axonivy-engine-windows.zip for nightly master - -Divy.engine.download.url=https://developer.axonivy.com/permalink/dev/axonivy-engine-windows.zip for dev master - -Divy.engine.download.url=file:///C:/wawa/engine/AxonIvyEngineX.X.X.X_Windows_x64.zip for downloaded engine - -Divy.engine.list.url=https://jenkins.ivyteam.io/job/core_product/job/release%252F9.4/lastSuccessfulBuild/artifact/workspace/ch.ivyteam.ivy.server.product/target/products/ -Divy.engine.os.arch=Windows_x64 for last successful build 9.4 - ''') - } - - environment { - engineDir = "$env.WORKSPACE/AxonIvyPortal/PortalTest/engine" - } - - stages { - stage('build') { - steps { - script { - currentBuild.description = "On ${env.NODE_NAME}" - def utils = load 'build/common/utils.groovy' - utils.init() - utils.stopAllEngines() - utils.extractEngine(env.engineDir, params.engineDownloadURL) - - utils.downloadExpress() - def expressFile = findFiles(glob: 'archive/**/axonivy-express*.iar')[0].path - - echo '====================Build Portal modules====================' - def modules = ['AxonIvyPortal/portal-components', 'AxonIvyPortal/portal', 'AxonIvyPortal/PortalKitTestHelper', 'Showcase/portal-user-examples', 'Showcase/portal-developer-examples', 'Showcase/InternalSupport', 'Showcase/portal-components-examples', 'AxonIvyPortal/PortalApp', 'Showcase/portal-demo-app'] - for (module in modules) { - bat "mvn clean install -f ${module}/pom.xml -Divy.engine.directory=%engineDir%" - } - - echo '====================Deploy Portal modules====================' - powershell """ - \$DEPLOYMENT= \$env:engineDir + "/system/demo-applications/demo-portal" - rmdir \$DEPLOYMENT/* -recurse - Copy-Item Showcase/portal-demo-app/target/*zip -Destination \$DEPLOYMENT - Copy-Item Showcase/portal-developer-examples/target/*iar -Destination \$DEPLOYMENT - Copy-Item Showcase/portal-components-examples/target/*iar -Destination \$DEPLOYMENT - Copy-Item ${expressFile} -Destination \$DEPLOYMENT - """ - - utils.killUnnecessaryProcessesToRunTest() - - echo '====================Execute maven for testing====================' - bat "mvn clean test -f AxonIvyPortal/PortalTest/customized_pom.xml %engineDownloadURL% -Dtest=${params.testPatternToRun} -DbrowserType=${props.browserType} -DtrimStackTrace=false -Divy.engine.directory=%engineDir% -Divy.deploy.timeout.seconds=60 -Divy.compiler.engine.start.timeout=120" - utils.cleanDisk() - } - } - } - } - - post { - always { - archiveArtifacts artifacts: 'AxonIvyPortal/PortalTest/target/*/*/*.jpg, AxonIvyPortal/PortalTest/target/testEngineOut.log', allowEmptyArchive: true - junit allowEmptyResults: true, testResults: '**/surefire-reports/TEST-*.xml' - } - } -} From 247facb9b7b66d0db2878649aca38a00964e8205 Mon Sep 17 00:00:00 2001 From: Luong Minh Luat <157108501+lmluat-axonivy@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:33:28 +0700 Subject: [PATCH 03/13] bug/IVYPORTAL-17514-Fix-GUI-tests-LE (#1011) - Fix QuickSearchTest --- .../portal/selenium/test/QuickSearchTest.java | 49 ++++--------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/QuickSearchTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/QuickSearchTest.java index 6a109b185b3..136a2aee82c 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/QuickSearchTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/QuickSearchTest.java @@ -3,6 +3,7 @@ import static com.codeborne.selenide.CollectionCondition.size; import static com.codeborne.selenide.CollectionCondition.sizeGreaterThanOrEqual; +import java.io.IOException; import java.util.List; import org.junit.jupiter.api.BeforeEach; @@ -12,6 +13,7 @@ import com.axonivy.portal.selenium.common.BaseTest; import com.axonivy.portal.selenium.common.ScreenshotUtils; import com.axonivy.portal.selenium.common.TestAccount; +import com.axonivy.portal.selenium.common.Variable; import com.axonivy.portal.selenium.page.CaseEditWidgetNewDashBoardPage; import com.axonivy.portal.selenium.page.CaseWidgetNewDashBoardPage; import com.axonivy.portal.selenium.page.DashboardModificationPage; @@ -20,6 +22,7 @@ import com.axonivy.portal.selenium.page.ProcessWidgetNewDashBoardPage; import com.axonivy.portal.selenium.page.TaskEditWidgetNewDashBoardPage; import com.axonivy.portal.selenium.page.TaskWidgetNewDashBoardPage; +import com.axonivy.portal.selenium.util.ConfigurationJsonUtils; @IvyWebTest public class QuickSearchTest extends BaseTest { @@ -49,10 +52,6 @@ public void testVisibilityOfQuickSearchOnTaskWidget() { modificationPage.navigateToEditDashboardDetailsByName("Dashboard"); assertTrue(taskWidget.isQuickSearchInputShow()); - taskWidget.setInputForQuickSearch("Task number 10"); - taskWidget.countAllTasks().shouldHave(sizeGreaterThanOrEqual(1), DEFAULT_TIMEOUT); - taskWidget.clearQuickSearchInput(); - TaskEditWidgetNewDashBoardPage taskEditWidget = taskWidget.openEditTaskWidget(); taskEditWidget.clickOnQuickSearchCheckBox(); taskEditWidget.save(); @@ -85,11 +84,7 @@ public void testTaskQuickSearchStandardFields() { taskEditWidget.save(); taskWidget.waitPageLoaded(); - - taskWidget.setInputForQuickSearch("engine"); - assertTrue(taskWidget.isEmptyMessageAppear()); redirectToNewDashBoard(); - taskWidget.clearQuickSearchInput(); taskWidget.setInputForQuickSearch("TestCase1"); taskWidget.countAllTasks().shouldHave(size(3), DEFAULT_TIMEOUT); taskWidget.clickOnButtonExpandTaskWidget(); @@ -103,22 +98,13 @@ public void testTaskQuickSearchKeywordSessionCache() { redirectToRelativeLink(create12CasesWithCategoryUrl); login(TestAccount.ADMIN_USER); TaskWidgetNewDashBoardPage taskWidget = newDashboardPage.selectTaskWidget(YOUR_TASKS_WIDGET); - + taskWidget.setInputForQuickSearch("Task number 10"); + taskWidget.countAllTasks().shouldHave(size(1), DEFAULT_TIMEOUT); + var configurationPage = newDashboardPage.openDashboardConfigurationPage(); DashboardModificationPage modificationPage = configurationPage.openEditPublicDashboardsPage(); modificationPage.navigateToEditDashboardDetailsByName("Dashboard"); ScreenshotUtils.maximizeBrowser(); - - taskWidget.waitPageLoaded(); - taskWidget.setInputForQuickSearch("Task number 10"); - taskWidget.countAllTasks().shouldHave(size(1), DEFAULT_TIMEOUT); - - redirectToNewDashBoard(); - newDashboardPage = new NewDashboardPage(); - newDashboardPage.waitForCaseWidgetLoaded(); - - taskWidget = new TaskWidgetNewDashBoardPage(); - taskWidget.setInputForQuickSearch("Task number 10"); taskWidget.countAllTasks().shouldHave(size(1), DEFAULT_TIMEOUT); } @@ -223,14 +209,6 @@ public void testVisibilityOfQuickSearchOnCaseWidget() { modificationPage.navigateToEditDashboardDetailsByName("Dashboard"); CaseEditWidgetNewDashBoardPage caseEditWidget = caseWidget.openEditWidget(); - caseEditWidget.clickOnQuickSearchCheckBox(); - caseEditWidget.save(); - - caseWidget.setInputForQuickSearch("case"); - caseWidget.countAllCases().shouldHave(sizeGreaterThanOrEqual(1), DEFAULT_TIMEOUT); - caseWidget.clearQuickSearchInput(); - - caseWidget.openEditWidget(); caseEditWidget.clickOnQuickSearchCheckBox(); caseEditWidget.save(); assertFalse(caseWidget.isQuickSearchInputShow("0")); @@ -274,26 +252,17 @@ public void testCaseQuickSearchStandardFields() { } @Test - public void testCaseQuickSearchKeywordSessionCache() { + public void testCaseQuickSearchKeywordSessionCache() throws IOException { + ConfigurationJsonUtils.updateJSONSetting("dashboard-case-widget-has-quicksearch.json", Variable.DASHBOARD); redirectToRelativeLink(create12CasesWithCategoryUrl); - login(TestAccount.ADMIN_USER); CaseWidgetNewDashBoardPage caseWidget = newDashboardPage.selectCaseWidget(YOUR_CASES_WIDGET); + caseWidget.setInputForQuickSearch("TestCase"); var configurationPage = newDashboardPage.openDashboardConfigurationPage(); DashboardModificationPage modificationPage = configurationPage.openEditPublicDashboardsPage(); modificationPage.navigateToEditDashboardDetailsByName("Dashboard"); ScreenshotUtils.maximizeBrowser(); - - caseWidget.waitPageLoaded(); - CaseEditWidgetNewDashBoardPage caseEditWidget = caseWidget.openEditWidget(); - caseEditWidget.clickOnQuickSearchCheckBox(); - caseEditWidget.save(); - caseWidget.setInputForQuickSearch("TestCase"); - caseWidget.countAllCases().shouldHave(size(12), DEFAULT_TIMEOUT); - - redirectToNewDashBoard(); assertEquals("TestCase", caseWidget.getQuickSearchInput()); - caseWidget.countAllCases().shouldHave(size(12), DEFAULT_TIMEOUT); } @Test From 4786b004b26741de5f3f4baa0b1d54812fd288fe Mon Sep 17 00:00:00 2001 From: Thai Phan <117443490+pvthai-axonivy@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:05:59 +0700 Subject: [PATCH 04/13] IVYPORTAL-17522: fix performance due to hide systemtask (#1003) --- .../ivy/addon/portalkit/ivydata/service/impl/TaskService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/TaskService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/TaskService.java index 265572b1884..4f628f95901 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/TaskService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/TaskService.java @@ -39,7 +39,7 @@ import ch.ivyteam.ivy.scripting.objects.Record; import ch.ivyteam.ivy.scripting.objects.Recordset; import ch.ivyteam.ivy.security.IRole; -import ch.ivyteam.ivy.security.ISecurityConstants; +import ch.ivyteam.ivy.security.ISecurityContext; import ch.ivyteam.ivy.security.IUser; import ch.ivyteam.ivy.security.exec.Sudo; import ch.ivyteam.ivy.workflow.ITask; @@ -96,7 +96,7 @@ protected long countTasks(TaskQuery query) { } protected TaskQuery queryExcludeSystemTasks() { - return TaskQuery.create().where().workerUserName().isNotEqual(ISecurityConstants.SYSTEM_USER_NAME); + return TaskQuery.create().where().workerId().isNotEqual(ISecurityContext.current().users().system().getSecurityMemberId()); } protected TaskQuery queryExcludeHiddenTasks() { From f86e3d65be634d36be5a3ed6de8f49c50f39d517 Mon Sep 17 00:00:00 2001 From: Tung Le <76459536+lttung-axonivy@users.noreply.github.com> Date: Mon, 9 Sep 2024 08:54:39 +0700 Subject: [PATCH 05/13] IVYPORTAL-17183 Adapt process deprecate on LE (#1008) Remove GetGroupId process --- .../constant/PortalComponentConstants.java | 1 - .../ivy/add/portalkit/GetGroupIdData.d.json | 10 --- .../Functional Processes/GetGroupId.p.json | 66 ------------------- .../portalkit/bean/ProjectVersionBean.java | 5 +- .../portalkit/constant/PortalConstants.java | 2 +- .../addon/portalkit/enums/PortalLibrary.java | 36 ---------- .../ivydata/service/impl/LibraryService.java | 5 +- .../DeleteFinishedHiddenCasesService.java | 5 +- 8 files changed, 9 insertions(+), 121 deletions(-) delete mode 100644 AxonIvyPortal/portal/dataclasses/ch/ivy/add/portalkit/GetGroupIdData.d.json delete mode 100644 AxonIvyPortal/portal/processes/Functional Processes/GetGroupId.p.json delete mode 100644 AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/PortalLibrary.java diff --git a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/constant/PortalComponentConstants.java b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/constant/PortalComponentConstants.java index ae6b6e3728a..4460dadfc9e 100644 --- a/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/constant/PortalComponentConstants.java +++ b/AxonIvyPortal/portal-components/src/com/axonivy/portal/components/constant/PortalComponentConstants.java @@ -4,7 +4,6 @@ public final class PortalComponentConstants { public static final String PORTAL_APPLICATION_NAME = "Portal"; public static final String SECURITY_SERVICE_CALLABLE = "Ivy Data Processes/PortalComponentSecurityService"; - public static final String GET_GROUP_ID_CALLABLE = "Functional Processes/GetGroupId"; private PortalComponentConstants() {} } diff --git a/AxonIvyPortal/portal/dataclasses/ch/ivy/add/portalkit/GetGroupIdData.d.json b/AxonIvyPortal/portal/dataclasses/ch/ivy/add/portalkit/GetGroupIdData.d.json deleted file mode 100644 index d046f6e2077..00000000000 --- a/AxonIvyPortal/portal/dataclasses/ch/ivy/add/portalkit/GetGroupIdData.d.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", - "simpleName" : "GetGroupIdData", - "namespace" : "ch.ivy.add.portalkit", - "isBusinessCaseData" : false, - "fields" : [ { - "name" : "groupId", - "type" : "String" - } ] -} \ No newline at end of file diff --git a/AxonIvyPortal/portal/processes/Functional Processes/GetGroupId.p.json b/AxonIvyPortal/portal/processes/Functional Processes/GetGroupId.p.json deleted file mode 100644 index 9c3d85bdedc..00000000000 --- a/AxonIvyPortal/portal/processes/Functional Processes/GetGroupId.p.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/process/11.3.0/process.json", - "id" : "179D696BF6492C34", - "kind" : "CALLABLE_SUB", - "config" : { - "data" : "ch.ivy.add.portalkit.GetGroupIdData" - }, - "elements" : [ { - "id" : "f0", - "type" : "CallSubStart", - "name" : "getGroupId()", - "config" : { - "signature" : "getGroupId", - "result" : { - "params" : [ - { "name" : "groupId", "type" : "String", "desc" : "" } - ], - "map" : { - "result.groupId" : "in.groupId" - } - } - }, - "visual" : { - "at" : { "x" : 96, "y" : 64 }, - "labelOffset" : { "x" : 29, "y" : 37 } - }, - "connect" : [ - { "id" : "f4", "to" : "f3" } - ] - }, { - "id" : "f1", - "type" : "CallSubEnd", - "visual" : { - "at" : { "x" : 416, "y" : 64 } - } - }, { - "id" : "f3", - "type" : "Script", - "name" : [ - "get group id", - "in portal kit" - ], - "config" : { - "output" : { - "code" : [ - "import ch.ivyteam.ivy.project.IvyProjectNavigationUtil;", - "import ch.ivyteam.ivy.project.IIvyProject;", - "import ch.ivyteam.ivy.workflow.IWorkflowProcessModelVersion;", - "", - "IIvyProject ivyProject = IvyProjectNavigationUtil.getIvyProject(ivy.request.getProcessModelVersion());", - "", - "if (ivyProject.getLibrary() != null && ivyProject.getLibrary().getId() != null){", - " in.groupId = ivyProject.getLibrary().getId().groupId();", - "}" - ] - }, - "sudo" : true - }, - "visual" : { - "at" : { "x" : 288, "y" : 64 } - }, - "connect" : [ - { "id" : "f2", "to" : "f1" } - ] - } ] -} \ No newline at end of file diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/ProjectVersionBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/ProjectVersionBean.java index 77a11032115..9d1f1a40a9d 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/ProjectVersionBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/ProjectVersionBean.java @@ -1,5 +1,7 @@ package ch.ivy.addon.portalkit.bean; +import static ch.ivy.addon.portalkit.constant.PortalConstants.PORTAL_LIBRARY_ID; + import java.io.Serializable; import java.util.List; import java.util.Map; @@ -7,7 +9,6 @@ import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; -import ch.ivy.addon.portalkit.enums.PortalLibrary; import ch.ivy.addon.portalkit.ivydata.service.impl.LibraryService; import ch.ivyteam.ivy.application.IApplication; import ch.ivyteam.ivy.application.ILibrary; @@ -42,7 +43,7 @@ public Map> getProjectLibraries() { public void loadProjectVesion() { engineVersion = ch.ivyteam.ivy.Advisor.getAdvisor().getVersion().toString(); - ILibrary portalLibrary = IApplication.current().findReleasedLibrary(PortalLibrary.PORTAL.getValue()); + ILibrary portalLibrary = IApplication.current().findReleasedLibrary(PORTAL_LIBRARY_ID); portalVersion = portalLibrary.getQualifiedVersion().toString(); projectLibraries = retrieveProjectLibraries(); } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/PortalConstants.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/PortalConstants.java index 4b2450062f5..4af982f2065 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/PortalConstants.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/constant/PortalConstants.java @@ -5,8 +5,8 @@ public final class PortalConstants { public static final String BUILD_CASE_QUERY_CALLABLE = "Functional Processes/BuildCaseQuery"; public static final String BUILD_TASK_QUERY_CALLABLE = "Functional Processes/BuildTaskQuery"; public static final String ANALYZE_STATISTIC_CALLABLE = "Functional Processes/AnalyzeStatistic"; - public static final String GET_GROUP_ID_CALLABLE = "Functional Processes/GetGroupId"; public static final String RESET_TASK_CONFIRMATION_DIALOG = "reset-task-confirmation-dialog"; + public static final String PORTAL_LIBRARY_ID = "com.axonivy.portal:portal"; public static final int CUSTOM_STRING_FIELD_MAX_LENGTH = 2000; public static final Integer[] EXPRESS_INVALID_VERSION = {0}; public static final int EXPRESS_VERSION = 1; diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/PortalLibrary.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/PortalLibrary.java deleted file mode 100644 index f48196f1418..00000000000 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/PortalLibrary.java +++ /dev/null @@ -1,36 +0,0 @@ -package ch.ivy.addon.portalkit.enums; - -import org.apache.commons.lang3.StringUtils; - -import ch.ivy.addon.portalkit.constant.PortalConstants; -import ch.ivyteam.ivy.process.call.SubProcessCall; -import ch.ivyteam.ivy.security.exec.Sudo; - -public enum PortalLibrary { - PORTAL("portal"), - AXON_EXPRESS("axonivy-express"); - private String value; - - private PortalLibrary(String value) { - this.value = value; - } - - public String getValue(){ - return Sudo.get(() -> { - String groupId = SubProcessCall.withPath(PortalConstants.GET_GROUP_ID_CALLABLE) - .withStartName("getGroupId") - .call() - .get("groupId", String.class); - - if (StringUtils.isBlank(groupId)) { - groupId = value.equalsIgnoreCase("portal") ? "com.axonivy.portal" : "ch.ivyteam.ivy.project.portal"; - } - - return String.format("%s:%s", groupId, value); - }); - } - - public String getProjectId() { - return value; - } -} diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/LibraryService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/LibraryService.java index 713625a3064..534129012bc 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/LibraryService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/LibraryService.java @@ -9,7 +9,7 @@ import org.apache.commons.lang3.StringUtils; -import ch.ivy.addon.portalkit.enums.PortalLibrary; +import ch.ivy.addon.portalkit.constant.PortalConstants; import ch.ivyteam.ivy.application.IApplication; import ch.ivyteam.ivy.application.ILibrary; import ch.ivyteam.ivy.application.ReleaseState; @@ -17,8 +17,7 @@ import ch.ivyteam.ivy.security.ISecurityContext; public class LibraryService{ - final List portalLibraryStrings = Stream.of(PortalLibrary.values()).map(PortalLibrary::getValue) - .collect(Collectors.toList()); + final List portalLibraryStrings = Stream.of(PortalConstants.PORTAL_LIBRARY_ID).collect(Collectors.toList()); public Map> collectLibraries() { Map> libraries = new HashMap<>(); diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DeleteFinishedHiddenCasesService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DeleteFinishedHiddenCasesService.java index 5918aab3cd5..4600fc34674 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DeleteFinishedHiddenCasesService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/DeleteFinishedHiddenCasesService.java @@ -1,5 +1,7 @@ package ch.ivy.addon.portalkit.service; +import static ch.ivy.addon.portalkit.constant.PortalConstants.PORTAL_LIBRARY_ID; + import java.util.Arrays; import java.util.Date; import java.util.List; @@ -7,7 +9,6 @@ import org.apache.commons.lang3.StringUtils; import ch.ivy.addon.portalkit.enums.AdditionalProperty; -import ch.ivy.addon.portalkit.enums.PortalLibrary; import ch.ivyteam.ivy.application.IApplication; import ch.ivyteam.ivy.application.ILibrary; import ch.ivyteam.ivy.application.IProcessModel; @@ -28,7 +29,7 @@ public void deleteFinishedHiddenCases() { Ivy.log().info("***Job for deleting finished hidden system cases started at: " + currentDate + " by user: " + Ivy.session().getSessionUserName()); boolean shouldDeleteAllCases = Boolean.parseBoolean(Ivy.var().get(DELETE_ALL_FINISHED_HIDDEN_CASES)); - IProcessModelVersion portalPMV = findPortalPMVByLibraryId(IApplication.current(), PortalLibrary.PORTAL.getValue()); + IProcessModelVersion portalPMV = findPortalPMVByLibraryId(IApplication.current(), PORTAL_LIBRARY_ID); if (portalPMV == null) { Ivy.log().warn("Can not retrieve portal PMV"); return ; From 08b2bd3ab3d3bd8f75e3a91bdcc13ce8194f4d51 Mon Sep 17 00:00:00 2001 From: Tung Le <76459536+lttung-axonivy@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:23:45 +0700 Subject: [PATCH 06/13] IVYPORTAL-17183 Adapt process deprecate on LE (#1017) Remove GetGroupId process --- .../processes/Functional Processes/ChangePassword.p.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json b/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json index ba6ae653248..fd54d4da420 100644 --- a/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json +++ b/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json @@ -212,7 +212,6 @@ "import com.axonivy.portal.enums.PortalCustomSignature;", "import com.axonivy.portal.components.service.IvyAdapterService;", "import java.util.HashMap;", - "import ch.ivy.addon.portalkit.enums.PortalLibrary;", "import java.util.Arrays;", "import java.util.Map;", "", @@ -260,4 +259,4 @@ } } ] } ] -} \ No newline at end of file +} From 5a8cfd29c1c232cea0924267016c8f849d824af9 Mon Sep 17 00:00:00 2001 From: "Nam.Chu" Date: Tue, 10 Sep 2024 09:03:22 +0700 Subject: [PATCH 07/13] IVYPORTAL-17122 Back button in Case details issue - Fix on LE --- .../component/CaseItemDetails/CaseItemDetails.xhtml | 8 ++++++++ 1 file changed, 8 insertions(+) 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 37832499367..30fdc8ae336 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 @@ -229,6 +229,14 @@ iframes.remove(); } if (window.history.length > 2) { + // handle for bug https://1ivy.atlassian.net/browse/IVYPORTAL-17122 + // when user open case detail from dashboard or full case list -> related task -> start task in iFrame -> cancel + // if url of current document is openning task in iFrame + if (document.referrer.includes('TaskTemplateIFrame.xhtml?taskUrl=')){ + // back to case list to avoid go error: click back will navigate to openning task + backToCasesList(); + return; + } window.history.back(); } else { // if no history or back from a page in Frame From 691b26f8adae7d960680e4c7657a0aa39ad87c32 Mon Sep 17 00:00:00 2001 From: Loc Nguyen <121596218+ntloc-axonivy@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:50:57 +0700 Subject: [PATCH 08/13] feature/IVYPORTAL-17541-Custom-fields-are-missing-in-Excel-file-in-Case-Widget-LE (#1015) --- .../addon/portalkit/exporter/CaseDashboardExporter.java | 8 ++++---- .../addon/portalkit/exporter/TaskDashboardExporter.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/CaseDashboardExporter.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/CaseDashboardExporter.java index 24b8d8bddfb..6c08e971197 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/CaseDashboardExporter.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/CaseDashboardExporter.java @@ -55,14 +55,14 @@ public String getColumnName(String column) { /** * Get header text from the custom column - * Custom column format: fieldType__fieldName__header + * Custom column format: fieldFormat__fieldName__header__fieldType * * @param column * @return header text */ private String getCustomColumnName(String column) { String[] columnParts = getCustomColumnParts(column); - if (columnParts.length != 3) { + if (columnParts.length != 4) { return ""; } return columnParts[2]; @@ -97,7 +97,7 @@ private Object getCommonColumnValue(DashboardStandardCaseColumn sortField, ICase /** * Get custom column value - * Custom column format: fieldType__fieldName__header + * Custom column format: fieldFormat__fieldName__header__fieldType * * @param column * @param caseItem @@ -105,7 +105,7 @@ private Object getCommonColumnValue(DashboardStandardCaseColumn sortField, ICase */ private Object getCustomColumnValue(String column, ICase caseItem) { String[] columnParts = getCustomColumnParts(column); - if (columnParts.length != 3) { + if (columnParts.length != 4) { return ""; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/TaskDashboardExporter.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/TaskDashboardExporter.java index 6ac771f666e..eea15914ba7 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/TaskDashboardExporter.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/exporter/TaskDashboardExporter.java @@ -56,7 +56,7 @@ public String getColumnName(String column) { /** * Get header text from the custom column - * Custom column format: fieldType__fieldName__header + * Custom column format: fieldFormat__fieldName__header__fieldType * * @param column * @return customColumnName From 2ce9185611e9b2216fb86e53d6a9bfa9858330dc Mon Sep 17 00:00:00 2001 From: Loc Nguyen <121596218+ntloc-axonivy@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:50:19 +0700 Subject: [PATCH 09/13] IVYPORTAL-17429 Close expanded widgets with esc button (#1019) --- AxonIvyPortal/portal/webContent/resources/js/portal.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AxonIvyPortal/portal/webContent/resources/js/portal.js b/AxonIvyPortal/portal/webContent/resources/js/portal.js index dfd1153560f..befc0c83b53 100644 --- a/AxonIvyPortal/portal/webContent/resources/js/portal.js +++ b/AxonIvyPortal/portal/webContent/resources/js/portal.js @@ -549,6 +549,13 @@ $(document).ready(function() { focusedElement.focus(); } } + + if (event.key === 'Escape') { + var collapseWidgetBtn = $('[id*="collapse-link"]:visible'); + if (collapseWidgetBtn) { + collapseWidgetBtn.click(); + } + } }); }); From 4ab44b6f43019e2386ac5f81e3c280940ed7cc66 Mon Sep 17 00:00:00 2001 From: Thai Phan <117443490+pvthai-axonivy@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:02:13 +0700 Subject: [PATCH 10/13] IVYPORTAL-17410: Change the message for no tasks/cases available(#1023) (cherry picked from commit 235724a85cf773e12bf2fd2c313c9213da9217c4) --- AxonIvyPortal/portal/cms/cms.yaml | 14 ++------------ AxonIvyPortal/portal/cms/cms_de.yaml | 14 ++------------ AxonIvyPortal/portal/cms/cms_en.yaml | 14 ++------------ AxonIvyPortal/portal/cms/cms_es.yaml | 14 ++------------ AxonIvyPortal/portal/cms/cms_fr.yaml | 14 ++------------ .../portal/generic/bean/DashboardBean.java | 18 ++---------------- .../portalkit/enums/CaseEmptyMessage.java | 7 +------ .../portalkit/enums/TaskEmptyMessage.java | 7 +------ 8 files changed, 14 insertions(+), 88 deletions(-) diff --git a/AxonIvyPortal/portal/cms/cms.yaml b/AxonIvyPortal/portal/cms/cms.yaml index fa61a0b7433..f036beb4fa2 100644 --- a/AxonIvyPortal/portal/cms/cms.yaml +++ b/AxonIvyPortal/portal/cms/cms.yaml @@ -704,20 +704,10 @@ ch.ivy.addon.portalkit.ui.jsf: filters: Filters iconMessage: caseWidget: - BEACH_PALM_SUNBED: You are awesome - all cases are done. Lean back and enjoy. - CHARGING_BATTERY_FULL_1: There are currently no cases. Time to recharge the batteries a little. - COFFEE_OF_HOT: Wow! Good job! All cases are completed. How about a quick coffee break? - RANKING_WINNER_MEDAL: Game, set and match! You did it, all cases are completed! - SOCCER_PLAYER: Goal! You did it, all cases completed. Short half-time break. - YOGA_MEDITATE: Well done! All cases are done. Inhale, exhale, relax. + EMPTY_MESSAGE: Currently, there are no cases available. noCasesFoundWhenFilter: There are currently no cases considering the applied filter. taskWidget: - BEACH_PALM_SUNBED: You are awesome - all tasks are done. Lean back and enjoy. - CHARGING_BATTERY_FULL_1: There are currently no tasks. Time to recharge the batteries a little. - COFFEE_OF_HOT: Wow! Good job! All tasks are completed. How about a quick coffee break? - RANKING_WINNER_MEDAL: Game, set and match! You did it, all tasks are completed! - SOCCER_PLAYER: Goal! You did it, all tasks completed. Short half-time break. - YOGA_MEDITATE: Well done! All tasks are done. Inhale, exhale, relax. + EMPTY_MESSAGE: Currently, there are no tasks available. noTasksFoundWhenFilter: There are currently no tasks after applied filter. loading: Loading... noCategory: There are no categories diff --git a/AxonIvyPortal/portal/cms/cms_de.yaml b/AxonIvyPortal/portal/cms/cms_de.yaml index 8062baa9ff9..40bbc209c05 100644 --- a/AxonIvyPortal/portal/cms/cms_de.yaml +++ b/AxonIvyPortal/portal/cms/cms_de.yaml @@ -875,20 +875,10 @@ ch.ivy.addon.portalkit.ui.jsf: fullscreenMode: Vollbildmodus iconMessage: caseWidget: - BEACH_PALM_SUNBED: Sie sind großartig - alle Vorgänge sind erledigt. Lehnen Sie sich zurück und genießen Sie. - CHARGING_BATTERY_FULL_1: Zurzeit gibt es keine Vorgänge. Zeit, die Batterien ein wenig aufzuladen. - COFFEE_OF_HOT: Wahnsinn! Gut gemacht! Alle Vorgänge sind abgeschlossen. Wie wäre es mit einer kurzen Kaffeepause? - RANKING_WINNER_MEDAL: Spiel, Satz und Sieg! Du hast es geschafft, alle Vorgänge sind abgeschlossen! - SOCCER_PLAYER: Ziel erreicht! Du hast es geschafft, alle Vorgänge sind abgeschlossen. Kurze Halbzeitpause. - YOGA_MEDITATE: Gut gemacht! Alle Vorgänge sind erledigt. Einatmen, ausatmen, entspannen. + EMPTY_MESSAGE: Aktuell sind keine weiteren Cases vorhanden. noCasesFoundWhenFilter: Derzeit gibt es keine Vorgänge nach dem angewandten Filter. taskWidget: - BEACH_PALM_SUNBED: Sie sind großartig - alle Aufgaben sind erledigt. Lehnen Sie sich zurück und genießen Sie. - CHARGING_BATTERY_FULL_1: Derzeit gibt es keine Aufgaben. Zeit, die Batterien ein wenig aufzuladen. - COFFEE_OF_HOT: Wahnsinn! Gut gemacht! Alle Aufgaben sind erledigt. Wie wäre es mit einer kurzen Kaffeepause? - RANKING_WINNER_MEDAL: Spiel, Satz und Sieg! Du hast es geschafft, alle Aufgaben sind erledigt! - SOCCER_PLAYER: Ziel erreicht! Du hast es geschafft, alle Aufgaben sind erledigt. Kurze Halbzeitpause. - YOGA_MEDITATE: Gut gemacht! Alle Aufgaben sind erledigt. Einatmen, ausatmen, entspannen. + EMPTY_MESSAGE: Aktuell sind keine weiteren Aufgaben vorhanden. noTasksFoundWhenFilter: Derzeit gibt es keine Aufgaben nach dem angewandten Filter. loading: Laden... noCategory: Es gibt keine Kategorien diff --git a/AxonIvyPortal/portal/cms/cms_en.yaml b/AxonIvyPortal/portal/cms/cms_en.yaml index 3b07dd13b14..1bef35227c3 100644 --- a/AxonIvyPortal/portal/cms/cms_en.yaml +++ b/AxonIvyPortal/portal/cms/cms_en.yaml @@ -877,20 +877,10 @@ ch.ivy.addon.portalkit.ui.jsf: fullscreenMode: Fullscreen Mode iconMessage: caseWidget: - BEACH_PALM_SUNBED: You are awesome - all cases are done. Lean back and enjoy. - CHARGING_BATTERY_FULL_1: There are currently no cases. Time to recharge the batteries a little. - COFFEE_OF_HOT: Wow! Good job! All cases are completed. How about a quick coffee break? - RANKING_WINNER_MEDAL: Game, set and match! You did it, all cases are completed! - SOCCER_PLAYER: Goal! You did it, all cases completed. Short half-time break. - YOGA_MEDITATE: Well done! All cases are done. Inhale, exhale, relax. + EMPTY_MESSAGE: Currently, there are no cases available. noCasesFoundWhenFilter: There are currently no cases after applied filter. taskWidget: - BEACH_PALM_SUNBED: You are awesome - all tasks are done. Lean back and enjoy. - CHARGING_BATTERY_FULL_1: There are currently no tasks. Time to recharge the batteries a little. - COFFEE_OF_HOT: Wow! Good job! All tasks are completed. How about a quick coffee break? - RANKING_WINNER_MEDAL: Game, set and match! You did it, all tasks are completed! - SOCCER_PLAYER: Goal! You did it, all tasks completed. Short half-time break. - YOGA_MEDITATE: Well done! All tasks are done. Inhale, exhale, relax. + EMPTY_MESSAGE: Currently, there are no tasks available. noTasksFoundWhenFilter: There are currently no tasks after applied filter. loading: Loading... noCategory: There are no categories diff --git a/AxonIvyPortal/portal/cms/cms_es.yaml b/AxonIvyPortal/portal/cms/cms_es.yaml index 604a24ca67e..8c8237e6fc9 100644 --- a/AxonIvyPortal/portal/cms/cms_es.yaml +++ b/AxonIvyPortal/portal/cms/cms_es.yaml @@ -874,20 +874,10 @@ ch.ivy.addon.portalkit.ui.jsf: fullscreenMode: Modo de pantalla completa iconMessage: caseWidget: - BEACH_PALM_SUNBED: Eres increíble - todos los casos están hechos. Recuéstate y disfruta. - CHARGING_BATTERY_FULL_1: There are currently no cases. Time to recharge the batteries a little. - COFFEE_OF_HOT: ¡Vaya! ¡Buen trabajo! Todos los casos están completados. ¿Qué tal una pausa rápida para el café? - RANKING_WINNER_MEDAL: ¡Juego, set y partido! Lo has conseguido, ¡todos los casos están completados! - SOCCER_PLAYER: ¡Gol! Lo has hecho, todos los casos completados. Breve descanso de medio tiempo. - YOGA_MEDITATE: ¡Bien hecho! Todos los casos están hechos. Inhala, exhala, relájate. + EMPTY_MESSAGE: Actualmente, no hay casos adicionales disponibles. noCasesFoundWhenFilter: Actualmente no hay casos después de aplicar el filtro. taskWidget: - BEACH_PALM_SUNBED: 'Eres increíble: todas las tareas están hechas. Recuéstate y disfruta.' - CHARGING_BATTERY_FULL_1: Actualmente no hay tareas. Es hora de recargar un poco las pilas. - COFFEE_OF_HOT: ¡Vaya! ¡Buen trabajo! Todas las tareas están completadas. ¿Qué tal una pausa rápida para el café? - RANKING_WINNER_MEDAL: ¡Juego, set y partido! Lo has conseguido, ¡todas las tareas están completadas! - SOCCER_PLAYER: ¡Gol! Lo hiciste, todas las tareas completadas. Breve descanso de medio tiempo. - YOGA_MEDITATE: Bien hecho. Todas las tareas están hechas. Inhala, exhala, relájate. + EMPTY_MESSAGE: Actualmente, no hay tareas adicionales disponibles. noTasksFoundWhenFilter: Actualmente no hay tareas después del filtro aplicado. loading: Cargando... noCategory: No hay categorías diff --git a/AxonIvyPortal/portal/cms/cms_fr.yaml b/AxonIvyPortal/portal/cms/cms_fr.yaml index 3e94ed6f3a6..186b08da480 100644 --- a/AxonIvyPortal/portal/cms/cms_fr.yaml +++ b/AxonIvyPortal/portal/cms/cms_fr.yaml @@ -871,20 +871,10 @@ ch.ivy.addon.portalkit.ui.jsf: fullscreenMode: Mode plein écran iconMessage: caseWidget: - BEACH_PALM_SUNBED: Vous êtes géniale - toutes les affaires sont réglées. Détendez-vous et profitez-en. - CHARGING_BATTERY_FULL_1: Il n'y a actuellement aucun cas. Il est temps de recharger un peu les batteries. - COFFEE_OF_HOT: Wow ! Bon travail ! Toutes les affaires sont terminées. Que diriez-vous d'une petite pause café ? - RANKING_WINNER_MEDAL: Jeu, set et match ! Vous avez réussi, toutes les affaires sont terminées ! - SOCCER_PLAYER: But ! Vous avez réussi, toutes les affaires sont terminées. Petite pause à la mi-temps. - YOGA_MEDITATE: Bien joué ! Tous les cas sont terminés. Inspirez, expirez, détendez-vous. + EMPTY_MESSAGE: Actuellement, il n'y a pas de cas supplémentaires disponibles. noCasesFoundWhenFilter: Il n'y a actuellement aucun cas après le filtre appliqué. taskWidget: - BEACH_PALM_SUNBED: Vous êtes génial - toutes les tâches sont terminées. Détendez-vous et profitez-en. - CHARGING_BATTERY_FULL_1: Il n'y a actuellement aucune tâche. Il est temps de recharger un peu les batteries. - COFFEE_OF_HOT: Ouah ! Bon travail ! Toutes les tâches sont terminées. Que diriez-vous d'une petite pause café ? - RANKING_WINNER_MEDAL: Jeu, set et match ! Vous avez réussi, toutes les tâches sont terminées ! - SOCCER_PLAYER: But ! Vous avez réussi, toutes les tâches sont terminées. Petite pause à la mi-temps. - YOGA_MEDITATE: Bien joué ! Toutes les tâches sont terminées. Inspirez, expirez, détendez-vous. + EMPTY_MESSAGE: Actuellement, il n'y a pas de tâches supplémentaires disponibles. noTasksFoundWhenFilter: Il n'y a actuellement aucune tâche après le filtre appliqué. loading: Chargement... noCategory: Il n'y a pas de catégories diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java index be55652e4c6..000e3f40783 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java @@ -77,8 +77,6 @@ public class DashboardBean implements Serializable { private List deleteFilters; private ITask selectedTask; private boolean isRunningTaskWhenClickingOnTaskInList; - private CaseEmptyMessage noCasesMessage; - private TaskEmptyMessage noTasksMessage; private List dashboardTemplates; protected String translatedText; protected String warningText; @@ -380,23 +378,11 @@ public void setDeleteFilters(List deleteFilters) { } public CaseEmptyMessage getNoCasesMessage() { - if (noCasesMessage == null) { - List messages = Stream.of(CaseEmptyMessage.values()).collect(Collectors.toList()); - Random random = new Random(); - int index = random.ints(0, messages.size()).findFirst().getAsInt(); - noCasesMessage = messages.get(index); - } - return noCasesMessage; + return CaseEmptyMessage.EMPTY_MESSAGE; } public TaskEmptyMessage getNoTasksMessage() { - if (noTasksMessage == null) { - List messages = Stream.of(TaskEmptyMessage.values()).collect(Collectors.toList()); - Random random = new Random(); - int index = random.ints(0, messages.size()).findFirst().getAsInt(); - noTasksMessage = messages.get(index); - } - return noTasksMessage; + return TaskEmptyMessage.EMPTY_MESSAGE; } public List getDashboardTemplates() { diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/CaseEmptyMessage.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/CaseEmptyMessage.java index 940a8df59c3..749e0dc15a2 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/CaseEmptyMessage.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/CaseEmptyMessage.java @@ -3,12 +3,7 @@ import ch.ivyteam.ivy.environment.Ivy; public enum CaseEmptyMessage { - COFFEE_OF_HOT("si-coffee-cup-hot"), - YOGA_MEDITATE("si-yoga-meditate"), - RANKING_WINNER_MEDAL("si-ranking-winner-medal"), - SOCCER_PLAYER("si-soccer-player"), - CHARGING_BATTERY_FULL_1("si-charging-battery-full-1"), - BEACH_PALM_SUNBED("si-beach-palm-sunbed"); + EMPTY_MESSAGE("si-task-list-edit"); private String icon; diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/TaskEmptyMessage.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/TaskEmptyMessage.java index f1dea65d196..7cce50a3f54 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/TaskEmptyMessage.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/TaskEmptyMessage.java @@ -3,12 +3,7 @@ import ch.ivyteam.ivy.environment.Ivy; public enum TaskEmptyMessage { - COFFEE_OF_HOT("si-coffee-cup-hot"), - YOGA_MEDITATE("si-yoga-meditate"), - RANKING_WINNER_MEDAL("si-ranking-winner-medal"), - SOCCER_PLAYER("si-soccer-player"), - CHARGING_BATTERY_FULL_1("si-charging-battery-full-1"), - BEACH_PALM_SUNBED("si-beach-palm-sunbed"); + EMPTY_MESSAGE("si-task-list-edit"); private String icon; From fd4fc1da03236197d9fd994369f6c95a0e122a26 Mon Sep 17 00:00:00 2001 From: Tung Le <76459536+lttung-axonivy@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:20:28 +0700 Subject: [PATCH 11/13] Update docker-compose.yml due to changing of ivy and extra configuration (#1024) --- .../performance-master/docker-compose.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Showcase/InternalSupport/resources/performance-master/docker-compose.yml b/Showcase/InternalSupport/resources/performance-master/docker-compose.yml index 29b0c0154c2..d101690831c 100644 --- a/Showcase/InternalSupport/resources/performance-master/docker-compose.yml +++ b/Showcase/InternalSupport/resources/performance-master/docker-compose.yml @@ -6,13 +6,15 @@ services: ports: - 9000:8080 volumes: - - ./licence-11.lic:/etc/axonivy-engine/licence.lic - - ./ivy.yaml:/etc/axonivy-engine/ivy.yaml - - ./configuration-app-portal:/usr/lib/axonivy-engine/configuration/applications/Portal - - ./applications:/usr/lib/axonivy-engine/applications - - ./data:/usr/lib/axonivy-engine/data - - ./work:/usr/lib/axonivy-engine/work - - ./logs:/usr/lib/axonivy-engine/logs + - ./configuration/applications/Portal:/ivy/configuration/applications/Portal + - ./configuration/ivy.yaml:/ivy/configuration/ivy.yaml + - ./configuration/licence-11.lic:/ivy/configuration/licence-11.lic + - ./configuration/jvm.options:/ivy/configuration/jvm.options + - ./configuration/elasticsearch/jvm.options:/ivy/configuration/elasticsearch/jvm.options + - ./applications:/ivy/applications + - ./data:/ivy/data + - ./work:/ivy/work + - ./logs:/ivy/logs networks: - postgres_network networks: From 334cda3c1a2696ad5eee0c03f736a27d1193d0df Mon Sep 17 00:00:00 2001 From: Tung Le <76459536+lttung-axonivy@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:23:07 +0700 Subject: [PATCH 12/13] Update docker-compose.yml due to changing of ivy and extra configuration (#1025) --- .../resources/master/docker-compose.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Showcase/InternalSupport/resources/master/docker-compose.yml b/Showcase/InternalSupport/resources/master/docker-compose.yml index 66f4b9c07ee..abf1159aa82 100644 --- a/Showcase/InternalSupport/resources/master/docker-compose.yml +++ b/Showcase/InternalSupport/resources/master/docker-compose.yml @@ -6,11 +6,12 @@ services: ports: - 8000:8080 volumes: - - ./ivy.yaml:/etc/axonivy-engine/ivy.yaml - - ./applications:/usr/lib/axonivy-engine/applications - - ./configuration:/usr/lib/axonivy-engine/configuration - - ./data:/usr/lib/axonivy-engine/data - - ./logs:/usr/lib/axonivy-engine/logs + - ./applications:/ivy/applications + - ./data:/ivy/data + - ./logs:/ivy/logs + - ./configuration/applications:/ivy/configuration/applications + - ./configuration/ivy.yaml:/ivy/configuration/ivy.yaml + - ./configuration/licence-11.lic:/ivy/configuration/licence-11.lic networks: - postgres_network networks: From 8f4bd485e3b8225664957fa4e15fa0da0cb1f502 Mon Sep 17 00:00:00 2001 From: Luong Minh Luat <157108501+lmluat-axonivy@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:53:08 +0700 Subject: [PATCH 13/13] bug/IVYPORTAL-17553-TaskWriteExpiryTimestamp-does-not-work-as-expected-LE (#1020) - Fix bug --- .../addon/portalkit/bean/TaskActionBean.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java index 046a892dd46..b48abab025e 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java @@ -130,11 +130,34 @@ public boolean canChangePriority(ITask task) { return isNotDone(task) && hasPermission(task, IPermission.TASK_WRITE_ORIGINAL_PRIORITY); } + /** + * Logic to check if user can change task expiry date: + * - Task not null + * - Task state is different from DONE, DESTROYED + * - User has permission TaskWriteExpiryTimestamp + * - The task has expiry handler or has expiry option 'Nobody & delete' + * + * @param task + * @return condition whether the user can change expiry time + */ + public boolean canChangeExpiry(ITask task) { - List taskStates = Arrays.asList(TaskBusinessState.DONE, TaskBusinessState.DESTROYED); - return (hasPermission(task, IPermission.TASK_WRITE_EXPIRY_TIMESTAMP) - || (task != null && StringUtils.isNotBlank(task.getExpiryTaskStartElementPid()))) - && !taskStates.contains(task.getBusinessState()); + List nonChangeableExpiryStates = Arrays.asList(TaskState.DONE, + TaskState.DESTROYED); + + if (task == null || nonChangeableExpiryStates.contains(task.getState())) { + return false; + } + + boolean isAutoDeleteAfterExpiry = StringUtils + .isBlank(task.getExpiryActivatorName()) + && StringUtils.isBlank(task.getExpiryTaskStartElementPid()); + + boolean hasExpiryHandler = StringUtils + .isNotBlank(task.getExpiryTaskStartElementPid()); + + return hasPermission(task, IPermission.TASK_WRITE_EXPIRY_TIMESTAMP) + && (isAutoDeleteAfterExpiry || hasExpiryHandler); } public boolean canChangeDelayTimestamp(ITask task) {