diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 99bf6977255..4434bb469f8 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -6,6 +6,7 @@ on: - master pull_request: types: [opened, reopened, synchronize] + workflow_dispatch: permissions: contents: write diff --git a/AxonIvyPortal/PortalKitTestHelper/pom.xml b/AxonIvyPortal/PortalKitTestHelper/pom.xml index c5b12aa3cfb..92f67094eef 100644 --- a/AxonIvyPortal/PortalKitTestHelper/pom.xml +++ b/AxonIvyPortal/PortalKitTestHelper/pom.xml @@ -8,7 +8,7 @@ iar 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/AxonIvyPortal/portal-components/pom.xml b/AxonIvyPortal/portal-components/pom.xml index 50204f3e8b6..21011bc121d 100644 --- a/AxonIvyPortal/portal-components/pom.xml +++ b/AxonIvyPortal/portal-components/pom.xml @@ -17,7 +17,7 @@ 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/AxonIvyPortal/portal-migration/pom.xml b/AxonIvyPortal/portal-migration/pom.xml index 4513cb0fae4..a0353fc56c4 100644 --- a/AxonIvyPortal/portal-migration/pom.xml +++ b/AxonIvyPortal/portal-migration/pom.xml @@ -7,7 +7,7 @@ iar 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 diff --git a/AxonIvyPortal/portal-selenium-test/customized_pom.xml b/AxonIvyPortal/portal-selenium-test/customized_pom.xml index 2af55d344d0..6080d61ba9d 100644 --- a/AxonIvyPortal/portal-selenium-test/customized_pom.xml +++ b/AxonIvyPortal/portal-selenium-test/customized_pom.xml @@ -6,7 +6,7 @@ 9.1.0.0-SNAPSHOT iar - 12.0.0-SNAPSHOT + 12.0.0 12.0.0 UTF-8 diff --git a/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml b/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml index 5d54b1988c8..676ff5f35b4 100644 --- a/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml +++ b/AxonIvyPortal/portal-selenium-test/document_screenshot_pom.xml @@ -6,7 +6,7 @@ 9.1.0.0-SNAPSHOT pom - 12.0.0-SNAPSHOT + 12.0.0 12.0.0 UTF-8 diff --git a/AxonIvyPortal/portal-selenium-test/pom.xml b/AxonIvyPortal/portal-selenium-test/pom.xml index 487564eec59..532eb61c5fb 100644 --- a/AxonIvyPortal/portal-selenium-test/pom.xml +++ b/AxonIvyPortal/portal-selenium-test/pom.xml @@ -8,7 +8,7 @@ iar 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js b/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js index 8e9b4caacee..dca9849fadd 100644 --- a/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js +++ b/AxonIvyPortal/portal-selenium-test/resources/js/document-screenshot.js @@ -34,25 +34,6 @@ function createRedThickOutlineWithOffset($element) { } /***IMPLEMENTATION TO DECORATE PAGES - WHICH ARE CALLED IN SELENIUM****/ -function highlightDashboardWidget() { - createRedMediumOutline($("#task-widget")); - createRedMediumOutline($("#process-widget")); -} - -function highlightAndNumberingDashboardSections() { - var processWidget = $("#process-widget"); - createRedMediumOutline(processWidget); - appendStepAnnotation(processWidget, "1", 0 , processWidget.width()/2); - var taskWidget = $("#task-widget"); - createRedMediumOutline(taskWidget); - appendStepAnnotation(taskWidget, "2", 0, taskWidget.width()/2); -} - -function numberingTaskFilter() { - var taskOrder = jQuery("#task-widget\\:compact-task-widget-sort-menu"); - appendStepAnnotation(taskOrder, 2, -15,100) -} - function highlightTopBar() { var topMenu = $("#top-menu"); var searchIcon = topMenu.find("li.topbar-item.search-item"); @@ -82,31 +63,6 @@ function highlightLogo() { createRedMediumOutline($(".portal-home-logo.portal-home-logo-small")); } -function numberingTaskItem() { - var taskPriorityFirstRow = jQuery(".priority-cell:eq(0)"); - appendStepAnnotation(taskPriorityFirstRow, "1", -35, 0); - - var taskNameFirstRow = jQuery(".task-start-info-task-name:eq(0)"); - appendStepAnnotation(taskNameFirstRow, "2", -10, 160); - - var taskIdSecondRow = jQuery(".task-start-info-task-name:eq(1)"); - appendStepAnnotation(taskIdSecondRow, "3", -10, 170); - - var taskDatesThirddRow = jQuery(".task-start-info-content:eq(2)"); - appendStepAnnotation(taskDatesThirddRow, "4", -10, -45); - appendStepAnnotation(taskDatesThirddRow, "5", -10, 120); - - var taskDescriptionFourthRow = jQuery(".task-start-info-task-description:eq(3)"); - appendStepAnnotation(taskDescriptionFourthRow, "6", -10, 175); -} - -function numberingTaskFilterAndSort() { - var taskFilter = $("#task-widget\\:filter-form\\:filter-container"); - appendStepAnnotation(taskFilter, 1, -15, taskFilter.width()/2); - var taskSort = $("#task-widget\\:sort-task-form\\:sort-task-menu"); - appendStepAnnotation(taskSort, 2, -15, taskSort.width()/2); -} - function highlightProcessNavigation() { createRedThickOutlineWithOffset($('.layout-menu .PROCESS')); } @@ -202,72 +158,6 @@ function highlightShowMoreNoteLink() { createRedMediumOutline($('a.js-note-show-more-link')); } -function highlightCustomCaseList() { - var caseHeader = $("[id$='case-widget:widget-column-header']"); - createRedMediumOutline(caseHeader); - appendStepAnnotation(caseHeader, "1", -15, caseHeader.width()/2); - - var action = $(".case-header-container.case-header-data:eq(1)"); - createRedMediumOutline(action); - appendStepAnnotation(action, "2", -15, caseHeader.width()/2); -} - -function highlightCustomColumnsConfigOnCaseList() { - var customColumnHeader = $(".ui-commandlink.customized-case-header-column:eq(0)"); - createRedMediumOutline(customColumnHeader) - appendStepAnnotation(customColumnHeader, "1", -30, -20); - - var columnsCheckbox = $("[id$=':select-columns-form:columns-checkbox']"); - var customCheckbox = columnsCheckbox.find("td:eq(5)"); - createRedMediumOutline(customCheckbox); - appendStepAnnotation(customCheckbox, "2", -20, customCheckbox.width() - 10); - - var caseHeader = $(".case-info-row.js-case-start-link:eq(6)"); - var customCaseItemCell = caseHeader.find("span.customized-case-header-column:eq(0)"); - createRedMediumOutline(customCaseItemCell); - appendStepAnnotation(customCaseItemCell, "3", -20, - 20); -} - -function highlightCaseCreatorFilter() { - var filterLabel = $("[id$=':creator-filter:filter-open-form:advanced-filter-command']"); - createRedMediumOutline(filterLabel); - appendStepAnnotation(filterLabel, "1", -25, -30); - - var removeFilterCommand = $("[id$=':creator-filter:filter-open-form:advanced-filter-remove-command']"); - createRedMediumOutline(removeFilterCommand); - appendStepAnnotation(removeFilterCommand, "2", -25, removeFilterCommand.width()); - - var updateCommand = $("[id$=':creator-filter:filter-input-form:update-command']"); - createRedMediumOutline(updateCommand); - appendStepAnnotation(updateCommand, "3", -2, -40) -} - -function highlightEditSwitchProcessButton() { - var editSwitchCommand = $("[id$='process-widget:user-process-action-form:editing-switch-command']"); - createRedMediumOutline(editSwitchCommand); - appendStepAnnotation(editSwitchCommand, "1", -45, editSwitchCommand.width()/2); -} - -function highlightEditStepUserProcess(isDeleteProcess) { - var userProcessList = $("[id$='process-widget:edit-process-item-form:order-list-items']"); - var userProcessItem = userProcessList.find("li.ui-orderlist-item.ui-sortable-handle:eq(0)"); - if (isDeleteProcess) { - var processDeleteLink = userProcessItem.find("[id$=':process-delete-link']"); - createRedMediumOutline(processDeleteLink); - appendStepAnnotation(processDeleteLink, "2", -40, processDeleteLink.width()/2); - } else { - appendStepAnnotation(userProcessItem, "2", 4, userProcessItem.width()/2); - } - - var processSaveLink = $("[id$='process-widget:user-process-action-form:save-process-command']"); - createRedMediumOutline(processSaveLink); - appendStepAnnotation(processSaveLink, "3", -40, -20); -} - -function highlightSortUserProcess() { - createRedMediumOutline($("[id$=':user-process-action-form:name-sort-command']")); -} - function highlightProcessMoreInformationLink() { var displayingProcessItem = $(".js-process-start-list-item").filter(function() { if($(this).css('display') != 'none') @@ -280,47 +170,6 @@ function highlightProcessMoreInformationLink() { } // Task -function highlightCustomTaskList() { - var caseHeader = $("[id$='task-widget:task-widget-sub-header']"); - createRedMediumOutline(caseHeader); - appendStepAnnotation(caseHeader, "1", -15, caseHeader.width()/2); - - var action = $(".full-mode.task-start-list-item.js-task-start-list-item:eq(2)"); - createRedMediumOutline(action); - appendStepAnnotation(action, "2", -15, caseHeader.width()/2); -} - -function highlightCustomColumnsConfigOnTaskList() { - var customColumnHeader = $("[id$=':task-custom']")[0]; - createRedMediumOutline($(customColumnHeader)) - appendStepAnnotation($(customColumnHeader), "1", -30, -20); - - var columnsCheckbox = $("[id$='task-columns-configuration:select-columns-form:columns-checkbox']"); - var customCheckbox = columnsCheckbox.find("td:eq(7)"); - createRedMediumOutline(customCheckbox); - appendStepAnnotation(customCheckbox, "2", -20, customCheckbox.width() - 10); - - var taskHeader = $(".task-start-link.js-task-start-link:eq(4)"); - var customTaskItemCell = taskHeader.find(".task-custom-field-cell"); - createRedMediumOutline(customTaskItemCell); - appendStepAnnotation(customTaskItemCell, "3", -20, - 20); -} - - -function highlightTaskStateFilter() { - var filterLabel = $("[id$=':state-filter:filter-open-form:advanced-filter-command']"); - createRedMediumOutline(filterLabel); - appendStepAnnotation(filterLabel, "1", -25, -30); - - var removeFilterCommand = $("[id$=':state-filter:filter-open-form:advanced-filter-remove-command']"); - createRedMediumOutline(removeFilterCommand); - appendStepAnnotation(removeFilterCommand, "2", -25, removeFilterCommand.width()); - - var updateCommand = $("[id$=':state-filter:filter-input-form:update-command']"); - createRedMediumOutline(updateCommand); - appendStepAnnotation(updateCommand, "3", -2, -40) -} - function highlightJoinGroupChatOption() { createRedMediumOutline($('#horizontal-task-action-form\\:chat-group').parent()); } @@ -349,36 +198,10 @@ function scrollToMiddleOfLayoutContent() { window.scrollTo(0, document.body.scrollHeight/2); } -function scrollToMiddleOfLayoutContent2() { - window.scrollTo(0, document.body.scrollHeight/4); -} - function scrollToBottomOfLayoutContent() { window.scrollTo(0, document.body.scrollHeight); } -function highlightCustomTaskDetail() { - var customTop = $('.custom-task-details-panel-top'); - appendStepAnnotation(customTop, 1, -45, customTop.width()/2); - - var customBottom = $('.custom-task-details-panel-bottom'); - appendStepAnnotation(customBottom, 2, -45, customBottom.width()/2); -} - -function highlightCustomTaskDetailWithNewStyle() { - var customPanel1 = $('.custom-task-panel-1'); - appendStepAnnotation(customPanel1, 1, -10, customPanel1.width()/2); - - var customPanel2 = $('.custom-task-panel-2'); - appendStepAnnotation(customPanel2, 2, -10, customPanel2.width()/2); - - var customPanel3 = $('.custom-task-panel-3'); - appendStepAnnotation(customPanel3, 3, -10, customPanel3.width()/2); - - var customPanel4 = $('.custom-task-panel-4'); - appendStepAnnotation(customPanel4, 4, -10, customPanel4.width()/2); -} - function highlightCaseDetailComponents() { var general = $('#case-details-information-panel'); appendStepAnnotation(general, 1, 0, general.width()/2); @@ -423,14 +246,6 @@ function highlightTaskActionItem(taskIndex, actionIndex) { createRedMediumOutline(actionItem); } -function highlightShowAllProcesses() { - createRedThickOutlineWithOffset($('.layout-menu .PROCESS')); -} - -function highlightTaskExportToExcelButton() { - createRedMediumOutline($("[id$=':task-export-to-excel-form']")); -} - function highlightCaseExportToExcelButton() { createRedMediumOutline($("a[id$=':case-export-to-excel']")); } @@ -456,16 +271,6 @@ function highlightCustomWidgetInCaseDetails() { createRedMediumOutline($(".custom-widget-card")); } -function addStepToCustomWidgetTopTaskDetails() { - var topWidget = $(".custom-task-details-panel-top"); - appendStepAnnotation(topWidget, 1, -30, topWidget.width()/2) -} - -function addStepTCustomWidgetTopTaskDetails() { - var bottomWidget = $(".custom-task-details-panel-bottom"); - appendStepAnnotation(bottomWidget, 2, -30, bottomWidget.width()/2) -} - function highlightIFrameWidgetTaskDetails() { createRedMediumOutline($(".custom-widget-card.task-detail-card")); } @@ -482,10 +287,6 @@ function clearHighlightUserName() { clearRedMediumOutline($('#user-settings-menu')); } -function highlightServerInfo() { - createRedMediumOutline($("#server-infor")); -} - function highlightUserExampleNavigation() { createRedThickOutlineWithOffset($('.layout-menu .CUSTOM')); } @@ -558,8 +359,4 @@ function createBlackThinOutline($element) { function createBlackMediumOutline($element) { $element.addClass("black-medium-outline"); -} - -function highlightElement(elementSelector) { - createRedMediumOutline($(elementSelector)); -} +} \ No newline at end of file diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/DashboardScreenshotTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/DashboardScreenshotTest.java index ae1145ad01e..2d673f25df7 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/DashboardScreenshotTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/DashboardScreenshotTest.java @@ -1,5 +1,8 @@ package com.axonivy.portal.selenium.document.screenshot; +import static com.codeborne.selenide.CollectionCondition.sizeGreaterThanOrEqual; +import static com.codeborne.selenide.Selenide.$; + import java.io.IOException; import java.util.Arrays; @@ -40,8 +43,6 @@ import com.codeborne.selenide.CollectionCondition; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.CollectionCondition.sizeGreaterThanOrEqual; -import static com.codeborne.selenide.Selenide.$; import ch.ivy.addon.portalkit.enums.PortalVariable; @@ -205,6 +206,17 @@ public void screenshotNewDashboardUserGuide() throws IOException { detailsEditPage.waitForCaseWidgetLoaded(); ScreenshotUtils.capturePageScreenshot(ScreenshotUtils.NEW_DASHBOARD_FOLDER + "edit-widget"); + // Take screenshot of task widget table in edit mode + NewDashboardPage newDashboardPage = new NewDashboardPage(); + ScreenshotUtils.captureElementScreenshot( + newDashboardPage.getTaskWidgetTable(), + ScreenshotUtils.NEW_DASHBOARD_FOLDER + "task-list-widget-edit-mode"); + + // Take screenshot of case widget table in edit mode + ScreenshotUtils.captureElementScreenshot( + newDashboardPage.getCaseWidgetTable(), + ScreenshotUtils.NEW_DASHBOARD_FOLDER + "case-list-widget-edit-mode"); + // Take screenshot of Add new widget dialog WebElement newWidgetDialog = detailsEditPage.addWidget(); ScreenshotUtils.captureElementWithMarginOptionScreenshot(newWidgetDialog, diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java index 46cf1803ebb..ffd8a3412be 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/document/screenshot/PortalCasesScreenshotTest.java @@ -11,6 +11,7 @@ import com.axonivy.portal.selenium.common.ScreenshotBaseTest; import com.axonivy.portal.selenium.common.ScreenshotMargin; import com.axonivy.portal.selenium.common.ScreenshotUtils; +import com.axonivy.portal.selenium.common.Sleeper; import com.axonivy.portal.selenium.common.TestAccount; import com.axonivy.portal.selenium.common.Variable; import com.axonivy.portal.selenium.common.WaitHelper; @@ -58,6 +59,7 @@ public void screenshotCasesNavigate() throws IOException { ScreenshotUtils.resizeBrowser(new Dimension(SCREENSHOT_WIDTH, 600)); mainMenuPage.closeMainMenu(); caseWidgetPage.clickOnCaseActionLink(0); + Sleeper.sleep(500); // use Sleeper to wait actions memu display clearly ScreenshotUtils.capturePageScreenshot(ScreenshotUtils.CASE_WIDGET_FOLDER + "case-key-information"); } diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/UploadDocumentTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/UploadDocumentTest.java index f231297b26e..536641b154e 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/UploadDocumentTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/UploadDocumentTest.java @@ -91,14 +91,17 @@ public void uploadDocumentAndCheckDocumentName() { updateFileExtensionWhiteListInPortalSetting(); initNewDashboardPage(TestAccount.ADMIN_USER); casePage = menuPage.openCaseList(); - caseDetailsPage = casePage.openDetailsCase("Leave Request"); caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile(pdfFile)); isCorrectIconExtension(pdfFile, "si si-office-file-pdf-1"); + casePage = menuPage.openCaseList(); + caseDetailsPage = casePage.openDetailsCase("Leave Request"); caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile(wordFile)); isCorrectIconExtension(wordFile, "si si-office-file-doc-1"); + casePage = menuPage.openCaseList(); + caseDetailsPage = casePage.openDetailsCase("Leave Request"); caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile(unsupportFile)); isCorrectIconExtension(unsupportFile, "si si-common-file-empty"); } diff --git a/AxonIvyPortal/portal/cms/cms.yaml b/AxonIvyPortal/portal/cms/cms.yaml index 5a2295b2567..896f00b7270 100644 --- a/AxonIvyPortal/portal/cms/cms.yaml +++ b/AxonIvyPortal/portal/cms/cms.yaml @@ -1014,11 +1014,11 @@ ch.ivy.addon.portalkit.ui.jsf: sort: Sort taskWarning: createdTaskLeave: '
You are about to leave this page.
Please choose one of the following options:
  • Leave: Discard your changes and move to the selected page.
  • Cancel: Continue working this task.
' - createdTaskLogout: '
You are about to leave this page.
Please choose one of the following options:
  •  Logout: Discard your changes and logout.
  •  Cancel: Continue working this task.
' + createdTaskLogout: '
You are about to leave this page.
Please choose one of the following options:
  • Logout: Discard your changes and logout.
  • Cancel: Continue working this task.
' resetParkTaskBeforeLeave: '
You are about to leave a task in progress.
Please choose one of the following options:
  • Leave: Discard your changes and move to the selected page.
  • Reserve: Discard your changes and keep the task in your task list.
  • Cancel: Continue working this task.
' - resetParkTaskBeforeLogout: '
You are about to leave a task in progress.
Please choose one of the following options:
  •     Logout: Discard your changes and logout.
  •     Reserve: Discard your changes and keep the task in your personal task list. Then logout.
  •   -   Cancel: Continue working this task.
' + resetParkTaskBeforeLogout: '
You are about to leave a task in progress.
Please choose one of the following options:
  • Logout: Discard your changes and logout.
  • Reserve: Discard your changes and keep the task in your personal task list. Then logout.
  • Cancel: Continue working + this task.
' taskNotFound: The task does not exist or you have insufficient rights to see this task. userProfile: myProfileTitle: My profile diff --git a/AxonIvyPortal/portal/cms/cms_de.yaml b/AxonIvyPortal/portal/cms/cms_de.yaml index 923656479dd..d1f85cba9f2 100644 --- a/AxonIvyPortal/portal/cms/cms_de.yaml +++ b/AxonIvyPortal/portal/cms/cms_de.yaml @@ -461,7 +461,7 @@ ch.ivy.addon.portalkit.ui.jsf: detail: Details display: Anzeigen displayAsTopMenu: Als oberstes Menü anzeigen - displayName: Name anzeigen + displayName: Anzeigename dragAndDropFile: 'Ziehen und Ablegen einer Datei oder ' dragAndDropImage: 'Ziehen und Ablegen eines Bildes oder ' edit: Bearbeiten @@ -590,6 +590,7 @@ ch.ivy.addon.portalkit.ui.jsf: viewExpired: Ihre aktuelle Bearbeitungsmaske ist abgelaufen und kann nicht weiter bearbeitet werden. Sie werden auf die Startseite umgeleitet. viewMode: Ansichtsmodus visible: Sichtbar + waitingDownloadMessage: Bitte um Geduld. Wir erstellen gerade den Export. Das kann einige Minuten dauern. warning: Warnung! welcomeToPortal: Willkommen, bitte melden Sie sich an wrongDateFormat: Bitte geben Sie ein gültiges Datum ein. @@ -983,6 +984,8 @@ ch.ivy.addon.portalkit.ui.jsf: newNoteHeader: Neue Notiz hinzufügen wroteAt: Erstellt am notifications: + errorNotificationMessage: | + Die Details für die neue Aufgabe konnten nicht angezeigt werden. Bitte wenden Sie sich an Ihren Administrator, um Unterstützung zu erhalten linkToFullScreen: Link zum Vollbild linkToNotificationSettings: Benachrichtigungseinstellungen markAllAsRead: Alle als gelesen markieren @@ -1009,6 +1012,7 @@ ch.ivy.addon.portalkit.ui.jsf: minSpecialCharacterRequired: mindestens {0} Sonderzeichen enthalten minUppercaseCharacterRequired: mindestens {0} Großbuchstaben enthalten newPassword: Neues Passwort + noPermission: Sie haben nicht die erforderlichen Berechtigungen, um das Passwort zu ändern. Bitte wenden Sie sich an Ihren Administrator, um Unterstützung zu erhalten. passwordMust: Das Passwort muss requireConfirmPassword: Wiederholen Sie Ihr Passwort, bitte requireCurrentPassword: Bitte geben Sie Ihr Passwort an @@ -1251,10 +1255,10 @@ ch.ivy.addon.portalkit.ui.jsf: taskWarning: createdTaskLeave: '
Sie verlassen die aktuelle Seite.
Bitte wählen Sie eine der folgenden Optionen:
  • Verlassen: Ihre Änderungen verwerfen und zur ausgewählten Seite gehen.
  • Abbrechen: Die Bearbeitung dieser Aufgabe fortsetzen.
' createdTaskLogout: '
Sie verlassen die aktuelle Seite.
Bitte wählen Sie eine der folgenden Optionen:
  • Abmelden: Ihre Änderungen verwerfen und abmelden.
  • Abbrechen: Die Bearbeitung dieser Aufgabe fortsetzen.
' - resetParkTaskBeforeLeave: '
Sie verlassen die aktuelle Aufgabe.
Bitte wählen Sie eine der folgenden Optionen:
  • Verlassen: Ihre Änderungen verwerfen und zur ausgewählten Seite gehen.
  • Reservieren: Ihre Änderungen verwerfen und die Aufgabe in Ihre Aufgabenliste verschieben
  • - Abbrechen: Die Bearbeitung dieser Aufgabe fortsetzen.
' - resetParkTaskBeforeLogout: '
Sie verlassen die aktuelle Aufgabe.
Bitte wählen Sie eine der folgenden Optionen:
  •     Abmelden: Ihre Änderungen verwerfen und abmelden.
  •     Reservieren: Ihre Änderungen verwerfen und die Aufgabe in Ihre persönliche Aufgabenliste - verschieben. Dann abmelden.
  •     Abbrechen: Die Bearbeitung dieser Aufgabe fortsetzen.
' + resetParkTaskBeforeLeave: '
Sie verlassen die aktuelle Aufgabe.
Bitte wählen Sie eine der folgenden Optionen:
  • Verlassen: Ihre Änderungen verwerfen und zur ausgewählten Seite gehen.
  • Reservieren: Ihre Änderungen verwerfen und die Aufgabe in Ihre Aufgabenliste verschieben
  • Abbrechen: + Die Bearbeitung dieser Aufgabe fortsetzen.
' + resetParkTaskBeforeLogout: '
Sie verlassen die aktuelle Aufgabe.
Bitte wählen Sie eine der folgenden Optionen:
  • Abmelden: Ihre Änderungen verwerfen und abmelden.
  • Reservieren: Ihre Änderungen verwerfen und die Aufgabe in Ihre persönliche Aufgabenliste verschieben. Dann abmelden.
  • Abbrechen: + Die Bearbeitung dieser Aufgabe fortsetzen.
' taskNotFound: Die Aufgabe existiert nicht oder Sie haben ungenügende Rechte, um diese Aufgabe zu sehen. userProfile: myProfileTitle: Mein Profil @@ -1303,7 +1307,7 @@ Dialogs: CouldNotFindLinkedProcess: Der verlinkte Prozess konnte nicht gefunden werden! CustomWidgetIFrameTitle: '{0} Rahmen' DashboardModification: - Share: Aktie + Share: Teilen ProcessWidgetConfiguration: DragAndDropToChangeOrder: ziehen und ablegen zum ändern der Reihenfolge. DragAndDropTooltip: Klicken Sie auf die Vorschau und ändern Sie die Reihenfolge durch Ziehen und Ableg @@ -1469,7 +1473,7 @@ Labels: ID: Id NAME: Name OWNER: Prozessverantwortlichen - STATE: Staat + STATE: Status DashboardStandardTaskColumn: ACTIONS: Aktionen APPLICATION: Anmeldung @@ -1482,7 +1486,7 @@ Labels: PRIORITY: Priorität RESPONSIBLE: Verantwortlich START: Start - STATE: Staat + STATE: Status FilterOperator: AFTER: Ist nach BEFORE: Ist vor diff --git a/AxonIvyPortal/portal/cms/cms_en.yaml b/AxonIvyPortal/portal/cms/cms_en.yaml index 047dfbf620b..edcfc633ea7 100644 --- a/AxonIvyPortal/portal/cms/cms_en.yaml +++ b/AxonIvyPortal/portal/cms/cms_en.yaml @@ -589,6 +589,7 @@ ch.ivy.addon.portalkit.ui.jsf: viewExpired: Your current view expired. You will be redirected to the home page. viewMode: View mode visible: Visible + waitingDownloadMessage: We are creating the Export, this can take a few minutes warning: Warning! welcomeToPortal: Welcome, please login wrongDateFormat: Please enter valid date. @@ -985,6 +986,7 @@ ch.ivy.addon.portalkit.ui.jsf: newNoteHeader: Add new note wroteAt: wrote at notifications: + errorNotificationMessage: We couldn't display the details for the new task. Please contact your administrator for assistance linkToFullScreen: Link to full screen linkToNotificationSettings: Notification settings markAllAsRead: Mark all as read @@ -1011,6 +1013,7 @@ ch.ivy.addon.portalkit.ui.jsf: minSpecialCharacterRequired: contain at least {0} special character minUppercaseCharacterRequired: contain at least {0} uppercase character newPassword: New password + noPermission: You do not have the required permissions to change the password. Please contact your administrator for assistance. passwordMust: Password must requireConfirmPassword: Password confirmation was missing requireCurrentPassword: Please specify the current password @@ -1252,11 +1255,11 @@ ch.ivy.addon.portalkit.ui.jsf: sort: Sort taskWarning: createdTaskLeave: '
You are about to leave this page.
Please choose one of the following options:
  • Leave: Discard your changes and move to the selected page.
  • Cancel: Continue working this task.
' - createdTaskLogout: '
You are about to leave this page.
Please choose one of the following options:
  •  Logout: Discard your changes and logout.
  •  Cancel: Continue working this task.
' + createdTaskLogout: '
You are about to leave this page.
Please choose one of the following options:
  • Logout: Discard your changes and logout.
  • Cancel: Continue working this task.
' resetParkTaskBeforeLeave: '
You are about to leave a task In progress.
Please choose one of the following options:
  • Leave: Discard your changes and move to the selected page.
  • Reserve: Discard your changes and keep the task in your task list.
  • Cancel: Continue working this task.
' - resetParkTaskBeforeLogout: '
You are about to leave a task in progress.
Please choose one of the following options:
  •     Logout: Discard your changes and logout.
  •     Reserve: Discard your changes and keep the task in your personal task list. Then logout.
  •   -   Cancel: Continue working this task.
' + resetParkTaskBeforeLogout: '
You are about to leave a task in progress.
Please choose one of the following options:
  • Logout: Discard your changes and logout.
  • Reserve: Discard your changes and keep the task in your personal task list. Then logout.
  • Cancel: Continue working + this task.
' taskNotFound: The task does not exist or you have insufficient rights to see this task. userProfile: myProfileTitle: My profile diff --git a/AxonIvyPortal/portal/cms/cms_es.yaml b/AxonIvyPortal/portal/cms/cms_es.yaml index 45be74efd61..5f54bd19892 100644 --- a/AxonIvyPortal/portal/cms/cms_es.yaml +++ b/AxonIvyPortal/portal/cms/cms_es.yaml @@ -483,7 +483,7 @@ ch.ivy.addon.portalkit.ui.jsf: finish: Terminar general: General generalInformation: Información general - globalSearch: Búsqueda ... + globalSearch: Buscar ... goToDetail: Ir a detalles hasPrecondition: Este proceso tiene una precondición height: altura @@ -564,7 +564,7 @@ ch.ivy.addon.portalkit.ui.jsf: showSystemNotes: Notas del sistema showSystemTasks: Tareas del sistema sorting: Sorting - start: Abrir + start: Iniciar startProcess: Iniciar el proceso state: Estatus status: Estado @@ -591,6 +591,7 @@ ch.ivy.addon.portalkit.ui.jsf: viewExpired: Su vista actual expiró. Serás redirigido a la página de inicio. viewMode: Modo de visualización visible: Visible + waitingDownloadMessage: Estamos creando la Exportación, esto puede tardar unos minutos warning: Advertencia! welcomeToPortal: Bienvenido, por favor inicie su sesión wrongDateFormat: Por favor ingrese una fecha válida. @@ -982,6 +983,8 @@ ch.ivy.addon.portalkit.ui.jsf: newNoteHeader: Agregar nueva nota wroteAt: escribió en notifications: + errorNotificationMessage: | + No pudimos mostrar los detalles de la nueva tarea. Por favor, contacte con su administrador para obtener ayuda linkToFullScreen: Enlace a la pantalla completa linkToNotificationSettings: Ajustes de notificación markAllAsRead: Marcar todo como leído @@ -1008,6 +1011,7 @@ ch.ivy.addon.portalkit.ui.jsf: minSpecialCharacterRequired: contienen al menos {0} un carácter especial minUppercaseCharacterRequired: contener al menos {0} caracteres en mayúscula newPassword: Nueva contraseña + noPermission: No tienes los permisos necesarios para cambiar la contraseña. Por favor, contacta con tu administrador para obtener ayuda. passwordMust: La contraseña debe requireConfirmPassword: Falta la confirmación de la contraseña requireCurrentPassword: Por favor, especifique la contraseña actual @@ -1248,8 +1252,8 @@ ch.ivy.addon.portalkit.ui.jsf: showFullTaskList: Mostrar lista de tareas completa sort: Ordenar taskWarning: - createdTaskLeave: '
Va a salir de esta página. Por favor selecione una de las siguientes opciones:
  •     Salir: No guardará sus cambios y navegará a la página seleccionada
  •     Cancelar: Continue trabajando en esta tarea.
' - createdTaskLogout: '
Va a salir de esta página.
Por favor selecione una de las siguientes opciones:
  •     Cerrar sesión: No guardará sus cambios y se cerrará la sesión.
  •  Cancelar: Continue trabajando en esta tarea.
' + createdTaskLeave: '
Va a salir de esta página. Por favor selecione una de las siguientes opciones:
  • Salir: No guardará sus cambios y navegará a la página seleccionada
  • Cancelar: Continue trabajando en esta tarea.
' + createdTaskLogout: '
Va a salir de esta página.
Por favor selecione una de las siguientes opciones:
  • Cerrar sesión: No guardará sus cambios y se cerrará la sesión.
  • Cancelar: Continue trabajando en esta tarea.
' resetParkTaskBeforeLeave: '
Va a salir de esta página.
Por favor selecione una de las siguientes opciones:
  • Salir: No guardará sus cambios y navegará a la página seleccionada
  • Reservar: No guardará sus cambios y esta tarea quedara reservada para usted.
  • Cancelar: Continue trabajando en esta tarea.
' resetParkTaskBeforeLogout: '
Va a salir de esta página.
Por favor selecione una de las siguientes opciones:
  • Salir: no guardará sus cambios y volverá a la página anterior.
  • Reservar: No guardará sus cambios, volverá a la página anterior pero la tarea quedara reservada para usted.
  • Cancelar: diff --git a/AxonIvyPortal/portal/cms/cms_fr.yaml b/AxonIvyPortal/portal/cms/cms_fr.yaml index df13469df8e..cad0ec2d686 100644 --- a/AxonIvyPortal/portal/cms/cms_fr.yaml +++ b/AxonIvyPortal/portal/cms/cms_fr.yaml @@ -18,11 +18,11 @@ ch.ivy.addon.portalkit.ui.jsf: userNameRequired: Le nom d'utilisateur doit être indiqué. absences: Absences addAbsence: Ajouter une absence - deputies: Substituts + deputies: Remplaçant description: Veuillez inscrire vos vacances, maladies ou autres obligations extérieures conduisant à une absence. editAbsence: Editer les absences from: Du - noDeputy: Aucun substitut + noDeputy: Aucun remplaçant noPermissionToSeeThisArea: Vous n'avez pas l'autorisation requise pour visiter cette zone. period: Période personalTaskDuringAbsenceDeputies: Remplacer les tâches assignées personnellement pendant l'absence @@ -39,15 +39,15 @@ ch.ivy.addon.portalkit.ui.jsf: removedAbsences: Absence supprimée pour {0} saveAbsenceSetting: Les paramètres d'absence ont été sauvegardés avec succès. updateAbsence: Mise à jour des absences réussie - absenceAndDeputy: Absences et suppléances + absenceAndDeputy: Absences et remplacements allAbsences: Absences de tous les utilisateurs applicationAndRole: Application et rôle - definedDeputies: Substituts définis + definedDeputies: Remplaçant définis deputyFor: Je suis remplaçant pour myAbsences: Mon absence myDeputies: Mes substituts nextAbsence: Absence à venir - selectedDeputyFor: L'utilisateur sélectionné est un substitut de + selectedDeputyFor: L'utilisateur sélectionné est un remplaçant de selectedUser: Utilisateur sélectionné AccessibilityShortcuts: processName: Raccourcis d'accessibilité Widgets @@ -139,7 +139,7 @@ ch.ivy.addon.portalkit.ui.jsf: MyProfile: DateFormat: Format de la date FormattingLanguage: Langue de mise en forme - General: Généraux + General: Général Homepage: Page d'accueil Language: Langue ProcessList: Liste des processus @@ -588,6 +588,7 @@ ch.ivy.addon.portalkit.ui.jsf: viewExpired: Votre vue actuelle a expiré. Vous allez être redirigé vers la page d'accueil. viewMode: Mode d'affichage visible: Visible + waitingDownloadMessage: Nous créons l'export, cela peut prendre quelques minutes warning: Attention! welcomeToPortal: Bienvenue, veuillez vous connecter wrongDateFormat: Veuillez entrer une date valide @@ -980,9 +981,10 @@ ch.ivy.addon.portalkit.ui.jsf: newNoteHeader: Ajouter une nouvelle note wroteAt: Ajoutée le notifications: + errorNotificationMessage: Nous n'avons pas pu afficher les détails de la nouvelle tâche. Veuillez contacter votre administrateur pour obtenir de l'aide linkToFullScreen: Lien vers le plein écran linkToNotificationSettings: Paramètres de notification - markAllAsRead: Marquer tous les textes comme lus + markAllAsRead: Marquer tous comme lus markAsRead: Marquer comme lu noNotificationText: Pas de notification notificationTitle: Notifications @@ -1006,6 +1008,7 @@ ch.ivy.addon.portalkit.ui.jsf: minSpecialCharacterRequired: contenir au moins {0} caractère spécial minUppercaseCharacterRequired: contenir au moins {0} un caractère majuscule newPassword: Nouveau mot de passe + noPermission: Vous n'avez pas les autorisations nécessaires pour changer le mot de passe. Veuillez contacter votre administrateur pour obtenir de l'aide. passwordMust: Le mot de passe doit requireConfirmPassword: Veuillez confirmer votre mot de passe requireCurrentPassword: Veuillez indiquer votre mot de passe actuel @@ -1247,11 +1250,11 @@ ch.ivy.addon.portalkit.ui.jsf: sort: Trier taskWarning: createdTaskLeave: '
    Vous êtes sur le point de quitter cette page.
    Choisissez l''une des options suivantes :
    • Quitter : abandonnez vos modifications et allez à la page choisie.
    • Annuler : continuez à travailler sur cette tâche.
    ' - createdTaskLogout: '
    Vous êtes sur le point de quitter cette page.
    Choisissez l''une des options suivantes :
    •   Déconnecter : abandonnez vos modifications et déconnectez-vous.
    •   Annuler : continuez à travailler sur cette tâche.
    ' + createdTaskLogout: '
    Vous êtes sur le point de quitter cette page.
    Choisissez l''une des options suivantes :
    • Déconnecter : abandonnez vos modifications et déconnectez-vous.
    • Annuler : continuez à travailler sur cette tâche.
    ' resetParkTaskBeforeLeave: '
    Vous êtes sur le point de laisser une tâche en cours.
    Choisissez l''une des options suivantes :
    • Quitter : abandonnez vos modifications et allez à la page choisie.
    • Enregistrer : abandonnez vos modifications et conservez la tâche dans votre liste de tâches personnelles. Ensuite déconnectez-vous.
    • Annuler : continuez à travailler sur cette tâche.
    ' - resetParkTaskBeforeLogout: '
    Vous êtes sur le point de laisser une tâche en cours.
    Choisissez l''une des options suivantes :
    •     Déconnecter : abandonnez vos modifications et déconnectez-vous.
    •     Enregistrer : annulez vos modifications et - conservez la tâche dans votre liste de tâches personnelles. Ensuite, déconnectez-vous.
    •     Annuler : continuez à travailler sur cette tâche.
    ' + resetParkTaskBeforeLogout: '
    Vous êtes sur le point de laisser une tâche en cours.
    Choisissez l''une des options suivantes :
    • Déconnecter : abandonnez vos modifications et déconnectez-vous.
    • Enregistrer : annulez vos modifications et conservez la tâche dans votre + liste de tâches personnelles. Ensuite, déconnectez-vous.
    • Annuler : continuez à travailler sur cette tâche.
    ' taskNotFound: cette tâche n'existe pas ou vous n'avez pas l'autorisation de la voir. userProfile: myProfileTitle: Mon profil diff --git a/AxonIvyPortal/portal/cms/images/AIAssistant/DefaultLogo.png b/AxonIvyPortal/portal/cms/images/AIAssistant/DefaultLogo.png index 9d1b71808cb..7bdcb556159 100644 Binary files a/AxonIvyPortal/portal/cms/images/AIAssistant/DefaultLogo.png and b/AxonIvyPortal/portal/cms/images/AIAssistant/DefaultLogo.png differ diff --git a/AxonIvyPortal/portal/cms/images/MenuQRCode/AppleStore/AppleStore.svg b/AxonIvyPortal/portal/cms/images/MenuQRCode/AppleStore/AppleStore.svg index ed1a7efde8c..a26f5bff0b2 100644 --- a/AxonIvyPortal/portal/cms/images/MenuQRCode/AppleStore/AppleStore.svg +++ b/AxonIvyPortal/portal/cms/images/MenuQRCode/AppleStore/AppleStore.svg @@ -1,25 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/AxonIvyPortal/portal/cms/images/MenuQRCode/GooglePlay/GooglePlay.svg b/AxonIvyPortal/portal/cms/images/MenuQRCode/GooglePlay/GooglePlay.svg index dbcfb88ec67..6112d780b78 100644 --- a/AxonIvyPortal/portal/cms/images/MenuQRCode/GooglePlay/GooglePlay.svg +++ b/AxonIvyPortal/portal/cms/images/MenuQRCode/GooglePlay/GooglePlay.svg @@ -1,43 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/AxonIvyPortal/portal/cms/images/MenuQRCode/MobileAppLogo/MobileAppLogo.png b/AxonIvyPortal/portal/cms/images/MenuQRCode/MobileAppLogo/MobileAppLogo.png index feb1505761e..f862dad6f0e 100644 Binary files a/AxonIvyPortal/portal/cms/images/MenuQRCode/MobileAppLogo/MobileAppLogo.png and b/AxonIvyPortal/portal/cms/images/MenuQRCode/MobileAppLogo/MobileAppLogo.png differ diff --git a/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImage.jpg b/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImage.jpg index a1d8bbec85d..d773f0b5f7e 100644 Binary files a/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImage.jpg and b/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImage.jpg differ diff --git a/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImageDark.jpg b/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImageDark.jpg index 57b807cc85d..d14373e5864 100644 Binary files a/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImageDark.jpg and b/AxonIvyPortal/portal/cms/images/WelcomeWidget/DefaultImageDark.jpg differ diff --git a/AxonIvyPortal/portal/config/variables/Portal/ClientStatistic.json b/AxonIvyPortal/portal/config/variables/Portal/ClientStatistic.json index 024a0a2d2b3..741453b58ba 100644 --- a/AxonIvyPortal/portal/config/variables/Portal/ClientStatistic.json +++ b/AxonIvyPortal/portal/config/variables/Portal/ClientStatistic.json @@ -240,7 +240,7 @@ }, { "locale": "fr", - "value": "Durée moyenne des affaires par Catégorie" + "value": "Durée moyenne des affaires par catégorie" }, { "locale": "es", @@ -499,7 +499,7 @@ }, { "locale": "fr", - "value": "Cas en Cours" + "value": "Cas en cours" }, { "locale": "es", @@ -652,11 +652,11 @@ }, { "locale": "fr", - "value": "Tâches Ouvertes" + "value": "Tâches ouvertes" }, { "locale": "es", - "value": "Tareas Abiertas" + "value": "Tareas Pendientes" } ], "descriptions": [ diff --git a/AxonIvyPortal/portal/config/variables/Portal/Dashboard.json b/AxonIvyPortal/portal/config/variables/Portal/Dashboard.json index fe24c2736a4..c222e3a9993 100644 --- a/AxonIvyPortal/portal/config/variables/Portal/Dashboard.json +++ b/AxonIvyPortal/portal/config/variables/Portal/Dashboard.json @@ -53,24 +53,28 @@ "enableQuickSearch": true, "columns": [ { - "field": "start" + "field": "start", + "width": "65" }, { - "field": "priority" + "field": "priority", + "width": "65" }, { "field": "id", "visible": false }, { - "field": "name" + "field": "name", + "width": "315" }, { "field": "description", "visible": false }, { - "field": "activator" + "field": "activator", + "width": "120" }, { "field": "state", @@ -88,7 +92,8 @@ "visible": false }, { - "field": "actions" + "field": "actions", + "width": "78" } ], "sortDescending": true, @@ -137,23 +142,28 @@ "enableQuickSearch": true, "columns": [ { - "field": "id" + "field": "id", + "width": "60" }, { - "field": "name" + "field": "name", + "width": "320" }, { "field": "description", "visible": false }, { - "field": "state" + "field": "state", + "width": "60" }, { - "field": "creator" + "field": "creator", + "width": "100" }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "100" }, { "field": "endTimestamp", @@ -164,7 +174,8 @@ "visible": false }, { - "field": "actions" + "field": "actions", + "width": "60" } ], "sortDescending": true, diff --git a/AxonIvyPortal/portal/config/variables/Portal/DashboardTemplates.json b/AxonIvyPortal/portal/config/variables/Portal/DashboardTemplates.json index 32c68d3934e..4c1146a4165 100644 --- a/AxonIvyPortal/portal/config/variables/Portal/DashboardTemplates.json +++ b/AxonIvyPortal/portal/config/variables/Portal/DashboardTemplates.json @@ -74,40 +74,48 @@ "canWorkOn": true, "columns": [ { - "field": "start" + "field": "start", + "width": "53" }, { - "field": "priority" + "field": "priority", + "width": "50" }, { "field": "id", "visible": false }, { - "field": "name" + "field": "name", + "width": "185" }, { "field": "description", "visible": false }, { - "field": "activator" + "field": "activator", + "width": "85" }, { - "field": "state" + "field": "state", + "width": "60" }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "80" }, { - "field": "expiryTimestamp" + "field": "expiryTimestamp", + "width": "80" }, { "field": "category", "visible": false }, { - "field": "actions" + "field": "actions", + "width": "65" } ], "sortField": "startTimestamp", @@ -155,23 +163,28 @@ "enableQuickSearch": true, "columns": [ { - "field": "id" + "field": "id", + "width": "60" }, { - "field": "name" + "field": "name", + "width": "320" }, { "field": "description", "visible": false }, { - "field": "state" + "field": "state", + "width": "50" }, { - "field": "creator" + "field": "creator", + "width": "90" }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "80" }, { "field": "endTimestamp", @@ -182,7 +195,8 @@ "visible": false }, { - "field": "actions" + "field": "actions", + "width": "55" } ], "sortField": "startTimestamp", @@ -401,16 +415,20 @@ "sortDescending": true, "columns": [ { - "field": "start" + "field": "start", + "width": "50" }, { - "field": "priority" + "field": "priority", + "width": "50" }, { - "field": "id" + "field": "id", + "width": "60" }, { - "field": "name" + "field": "name", + "width": "300" }, { "field": "description", @@ -422,12 +440,14 @@ }, { "field": "state", + "width": "60", "filterList": [ "OPEN" ] }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "90" }, { "field": "expiryTimestamp", @@ -438,7 +458,8 @@ "visible": false }, { - "field": "actions" + "field": "actions", + "width": "60" } ], "canWorkOn": true, @@ -463,16 +484,20 @@ "sortDescending": true, "columns": [ { - "field": "start" + "field": "start", + "width": "50" }, { - "field": "priority" + "field": "priority", + "width": "50" }, { - "field": "id" + "field": "id", + "width": "60" }, { - "field": "name" + "field": "name", + "width": "300" }, { "field": "description", @@ -484,13 +509,15 @@ }, { "field": "state", + "width": "60", "filterList": [ "OPEN", "IN_PROGRESS" ] }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "90" }, { "field": "expiryTimestamp", @@ -501,7 +528,8 @@ "visible": false }, { - "field": "actions" + "field": "actions", + "width": "60" } ], "canWorkOn": false, @@ -558,7 +586,7 @@ }, { "locale": "fr", - "value": "Tableau de bord réduit optimisé pour une utilisation en accessibilité" + "value": "Tableau de bord réduit optimisé pour une utilisation accessible" }, { "locale": "de", @@ -606,28 +634,36 @@ "showFullscreenMode": false, "columns": [ { - "field": "start" + "field": "start", + "width": "50" }, { - "field": "actions" + "field": "actions", + "width": "70" }, { - "field": "name" + "field": "name", + "width": "200" }, { - "field": "priority" + "field": "priority", + "width": "60" }, { - "field": "activator" + "field": "activator", + "width": "90" }, { - "field": "state" + "field": "state", + "width": "60" }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "90" }, { - "field": "expiryTimestamp" + "field": "expiryTimestamp", + "width": "90" }, { "field": "id", @@ -738,31 +774,37 @@ "enableQuickSearch": true, "showFullscreenMode": false, "columns": [ - { - "field": "name" - }, { "field": "id", "visible": false }, + { + "field": "name", + "width": "280" + }, { "field": "description", "visible": false }, { - "field": "state" + "field": "state", + "width": "60" }, { - "field": "creator" + "field": "creator", + "width": "100" }, { - "field": "startTimestamp" + "field": "startTimestamp", + "width": "100" }, { - "field": "endTimestamp" + "field": "endTimestamp", + "width": "100" }, { - "field": "owner" + "field": "owner", + "width": "100" }, { "field": "category", @@ -773,7 +815,8 @@ "visible": false }, { - "field": "actions" + "field": "actions", + "width": "70" } ], "sortField": "id", diff --git a/AxonIvyPortal/portal/dataclasses/portalkit/PortalCallableToolsData.d.json b/AxonIvyPortal/portal/dataclasses/portalkit/PortalCallableToolsData.d.json index 98bd9b26f72..f9ddca99fed 100644 --- a/AxonIvyPortal/portal/dataclasses/portalkit/PortalCallableToolsData.d.json +++ b/AxonIvyPortal/portal/dataclasses/portalkit/PortalCallableToolsData.d.json @@ -1,5 +1,5 @@ { - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", "simpleName" : "PortalCallableToolsData", "namespace" : "portalkit", "isBusinessCaseData" : false, diff --git a/AxonIvyPortal/portal/dataclasses/portalkit/PortalToolsData.d.json b/AxonIvyPortal/portal/dataclasses/portalkit/PortalToolsData.d.json index 1d15edb0dcc..343e07a90e5 100644 --- a/AxonIvyPortal/portal/dataclasses/portalkit/PortalToolsData.d.json +++ b/AxonIvyPortal/portal/dataclasses/portalkit/PortalToolsData.d.json @@ -1,5 +1,5 @@ { - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", "simpleName" : "PortalToolsData", "namespace" : "portalkit", "isBusinessCaseData" : false, diff --git a/AxonIvyPortal/portal/pom.xml b/AxonIvyPortal/portal/pom.xml index 421cec260e2..48de35cf4df 100644 --- a/AxonIvyPortal/portal/pom.xml +++ b/AxonIvyPortal/portal/pom.xml @@ -18,7 +18,7 @@ 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json b/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json index 34f002327e0..36a125247c0 100644 --- a/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json +++ b/AxonIvyPortal/portal/processes/Functional Processes/ChangePassword.p.json @@ -132,6 +132,7 @@ "config" : { "output" : { "code" : [ + "import ch.ivy.addon.portalkit.util.PermissionUtils;", "import ch.ivy.addon.portalkit.bo.PasswordValidationStatus;", "import ch.ivy.addon.portalkit.service.PasswordCheckingService;", "import com.axonivy.portal.components.enums.ChangePasswordStatus;", @@ -144,6 +145,9 @@ "} else if(!pwValidationStatus.getStatus()){", " in.status = ChangePasswordStatus.FAIL;", " in.message = pwValidationStatus.getMessage();", + "} else if (!PermissionUtils.checkUserSetOwnPasswordPermission()) {", + " in.status = ChangePasswordStatus.FAIL;", + " in.message = ivy.cms.co(\"/ch.ivy.addon.portalkit.ui.jsf/passwordSetting/noPermission\");", "} else {", " in.status = ChangePasswordStatus.OK;", "}" 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 602d2ee8aea..08c315e2577 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 @@ -101,7 +101,13 @@ public boolean isHiddenLogout() { public boolean isHiddenChangePassword() { return loggedByExternalSecuritySystem() - || GlobalSettingService.getInstance().findGlobalSettingValueAsBoolean(GlobalVariable.HIDE_CHANGE_PASSWORD_BUTTON); + || GlobalSettingService.getInstance().findGlobalSettingValueAsBoolean( + GlobalVariable.HIDE_CHANGE_PASSWORD_BUTTON) + || !hasChangePasswordPermission(); + } + + private boolean hasChangePasswordPermission() { + return PermissionUtils.checkUserSetOwnPasswordPermission(); } private boolean loggedByExternalSecuritySystem() { 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 12107271cd1..67d7f464a8c 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 @@ -34,6 +34,10 @@ public class BusinessEntityConverter { public BusinessEntityConverter() {} public static String entityToJsonValue(Object entity) { + return objectEntityToJsonValue(entity); + } + + private static String objectEntityToJsonValue(Object entity) { try { return getObjectMapper().writeValueAsString(entity); } catch (JsonProcessingException e) { @@ -42,6 +46,10 @@ public static String entityToJsonValue(Object entity) { } public static String prettyPrintEntityToJsonValue(Object entity) { + return prettyPrintObjectEntityToJsonValue(entity); + } + + private static String prettyPrintObjectEntityToJsonValue(Object entity) { try { return getObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(entity); } catch (JsonProcessingException e) { @@ -131,11 +139,11 @@ public static List convertJsonToListString(String value) public static String entityToJsonValue(List dashboards) { DashboardUtils.updatePropertiesToNullIfCurrentValueIsDefaultValue(dashboards); - try { - return getObjectMapper().writeValueAsString(dashboards); - } catch (JsonProcessingException e) { - throw new PortalException(e); - } + return objectEntityToJsonValue(dashboards); } + public static String prettyPrintEntityToJsonValue(List dashboards) { + DashboardUtils.updatePropertiesToNullIfCurrentValueIsDefaultValue(dashboards); + return prettyPrintObjectEntityToJsonValue(dashboards); + } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/DashboardUtils.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/DashboardUtils.java index ede15c3e5e6..f42e63ec3d2 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/DashboardUtils.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/util/DashboardUtils.java @@ -13,6 +13,7 @@ import java.util.function.Consumer; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.primefaces.PrimeFaces; @@ -320,7 +321,7 @@ public static void updatePropertiesToNullIfCurrentValueIsDefaultValue(List taskHandler) { } } + public boolean isActionAvailible(NotificationDto dto) { + return dto.getRunAction() != null; + } + } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/bean/dashboard/filter/TaskWidgetUserFilterBean.java b/AxonIvyPortal/portal/src/com/axonivy/portal/bean/dashboard/filter/TaskWidgetUserFilterBean.java index 899a8379bc0..e47be0e1d35 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/bean/dashboard/filter/TaskWidgetUserFilterBean.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/bean/dashboard/filter/TaskWidgetUserFilterBean.java @@ -38,9 +38,14 @@ private void initUserFilters() { } for (DashboardFilter filter : this.widget.getUserFilters()) { + if (Optional.ofNullable(filter).map(DashboardFilter::getFilterType) + .isEmpty()) { + return; + } + FilterField filterField = TaskFilterFieldFactory - .findBy(Optional.ofNullable(filter).map(DashboardFilter::getField).orElse(""), - Optional.ofNullable(filter).map(DashboardFilter::getFilterType).orElse(null)); + .findBy(Optional.ofNullable(filter).map(DashboardFilter::getField) + .orElse(""), filter.getFilterType()); if (filterField != null) { filterField.initFilter(filter); } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/JsonDashboardConverterFactory.java b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/JsonDashboardConverterFactory.java index fb0b1f06dbe..6ab00122140 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/JsonDashboardConverterFactory.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/JsonDashboardConverterFactory.java @@ -23,17 +23,14 @@ public static List getConverters(AbstractJsonVersion version) { new com.axonivy.portal.migration.dashboard.converter.v113.DashboardCaseWidgetConverter(), new com.axonivy.portal.migration.dashboard.converter.v113.DashboardTaskWidgetConverter()); - private static final List LE114 = List - .of(new com.axonivy.portal.migration.dashboard.converter.v114.DashboardProcessWidgetConverter()); - private static final List LE120 = List - .of(new com.axonivy.portal.migration.dashboard.converter.v120.DashboardStatisticWidgetConverter()); + .of(new com.axonivy.portal.migration.dashboard.converter.v120.DashboardProcessWidgetConverter(), + new com.axonivy.portal.migration.dashboard.converter.v120.DashboardStatisticWidgetConverter()); static { CONVERTERS.addAll(LE112); CONVERTERS.addAll(LE113); - CONVERTERS.addAll(LE114); CONVERTERS.addAll(LE120); } } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/v114/DashboardProcessWidgetConverter.java b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/v120/DashboardProcessWidgetConverter.java similarity index 94% rename from AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/v114/DashboardProcessWidgetConverter.java rename to AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/v120/DashboardProcessWidgetConverter.java index a8fe3737724..ea33bde3bec 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/v114/DashboardProcessWidgetConverter.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboard/converter/v120/DashboardProcessWidgetConverter.java @@ -1,4 +1,4 @@ -package com.axonivy.portal.migration.dashboard.converter.v114; +package com.axonivy.portal.migration.dashboard.converter.v120; import com.axonivy.portal.bo.jsonversion.AbstractJsonVersion; import com.axonivy.portal.bo.jsonversion.DashboardJsonVersion; @@ -44,7 +44,7 @@ public String getNewType() { @Override public AbstractJsonVersion version() { - return new DashboardJsonVersion("11.4.0"); + return new DashboardJsonVersion("12.0.0"); } @Override diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/JsonDashboardTemplateConverterFactory.java b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/JsonDashboardTemplateConverterFactory.java index 5eac8c1784a..35e4b1ae592 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/JsonDashboardTemplateConverterFactory.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/JsonDashboardTemplateConverterFactory.java @@ -25,12 +25,12 @@ public static List getConverters(AbstractJsonVersion version) { new com.axonivy.portal.migration.dashboard.converter.v113.DashboardTaskWidgetConverter() ); - private static final List LE114 = List.of( - new com.axonivy.portal.migration.dashboard.converter.v114.DashboardProcessWidgetConverter()); + private static final List LE120 = List.of( + new com.axonivy.portal.migration.dashboard.converter.v120.DashboardProcessWidgetConverter()); static { CONVERTERS.addAll(LE112); CONVERTERS.addAll(LE113); - CONVERTERS.addAll(LE114); + CONVERTERS.addAll(LE120); } } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/v114/DashboardTemplateProcessWidgetConverter.java b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/v120/DashboardTemplateProcessWidgetConverter.java similarity index 97% rename from AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/v114/DashboardTemplateProcessWidgetConverter.java rename to AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/v120/DashboardTemplateProcessWidgetConverter.java index b9d7f8b266a..8287abe090f 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/v114/DashboardTemplateProcessWidgetConverter.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/migration/dashboardtemplate/converter/v120/DashboardTemplateProcessWidgetConverter.java @@ -1,4 +1,4 @@ -package com.axonivy.portal.migration.dashboardtemplate.converter.v114; +package com.axonivy.portal.migration.dashboardtemplate.converter.v120; import com.axonivy.portal.bo.jsonversion.AbstractJsonVersion; import com.axonivy.portal.bo.jsonversion.DashboardTemplateJsonVersion; @@ -43,7 +43,7 @@ public String getNewType() { @Override public AbstractJsonVersion version() { - return new DashboardTemplateJsonVersion("11.4.0"); + return new DashboardTemplateJsonVersion("12.0.0"); } @Override diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindCaseWidget/FindCaseWidgetData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindCaseWidget/FindCaseWidgetData.d.json index 06e049fdf48..329e9b981a4 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindCaseWidget/FindCaseWidgetData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindCaseWidget/FindCaseWidgetData.d.json @@ -1,5 +1,5 @@ { - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", "simpleName" : "FindCaseWidgetData", "namespace" : "ch.ivy.addon.portal.generic.ai.FindCaseWidget", "isBusinessCaseData" : false, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindProcessWidget/FindProcessWidgetData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindProcessWidget/FindProcessWidgetData.d.json index aa9e01dd85e..06ee30a0465 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindProcessWidget/FindProcessWidgetData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindProcessWidget/FindProcessWidgetData.d.json @@ -1,5 +1,5 @@ { - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", "simpleName" : "FindProcessWidgetData", "namespace" : "ch.ivy.addon.portal.generic.ai.FindProcessWidget", "isBusinessCaseData" : false, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindTaskWidget/FindTaskWidgetData.d.json b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindTaskWidget/FindTaskWidgetData.d.json index a0cd3683e22..a14c00e2c6d 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindTaskWidget/FindTaskWidgetData.d.json +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/ai/FindTaskWidget/FindTaskWidgetData.d.json @@ -1,5 +1,5 @@ { - "$schema" : "https://json-schema.axonivy.com/data-class/11.4.0/data-class.json", + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", "simpleName" : "FindTaskWidgetData", "namespace" : "ch.ivy.addon.portal.generic.ai.FindTaskWidget", "isBusinessCaseData" : false, diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseDashboardWidget/CaseInfo.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseDashboardWidget/CaseInfo.xhtml index 3fe4fcfd3a8..c39fa393d19 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseDashboardWidget/CaseInfo.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseDashboardWidget/CaseInfo.xhtml @@ -20,9 +20,16 @@ alwaysShowState="true" responsiveStyleClass="" /> - + + + - + + + + + + @@ -46,9 +53,16 @@ - + + + - + + + + + +
    diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml index 89fa86311d8..a90abd57fac 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/DashboardModification/DashboardModification.xhtml @@ -72,7 +72,7 @@ icon="si si-download-bottom" value="#{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/DashboardConfiguration/ExportDashboard')}" rendered="#{dashboardModificationBean.hasExportDashboardPermission()}" - onclick="PF('exportDashboardBtn').jq.click()"/> + onclick="PF('exportDashboardBtn-#{dashboard.id}').jq.click()"/>
    - #{entry.value} #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/common/processes')} - #{entry.value} #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/common/process')} + + + + + + + + + + + +
    diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CompactModeProcess.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CompactModeProcess.xhtml index 15de2909f7e..a08c193ee7a 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CompactModeProcess.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CompactModeProcess.xhtml @@ -53,7 +53,8 @@ - + 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 faf16da47d9..dd976d8bdb6 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 @@ -120,7 +120,7 @@ - - +
    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 9330fe95d3c..ba590a7a91d 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 @@ -241,7 +241,7 @@ -
    +

    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/preview')}

    - - - + + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskDashboardWidget/TaskInfo.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskDashboardWidget/TaskInfo.xhtml index e39ae8d23a7..53b21fd21a2 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskDashboardWidget/TaskInfo.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskDashboardWidget/TaskInfo.xhtml @@ -18,15 +18,30 @@
    - + + + -
    + + + + + + +
    - + + + - + + + + + + @@ -47,9 +62,16 @@ alwaysShowState="true" responsiveStyleClass="" />
    - + + + - + + + + + + @@ -73,9 +95,16 @@ - + + + - + + + + + +
    diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml index 8149d47fc71..f91f3032968 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/ActionStep/ActionStep.xhtml @@ -49,7 +49,7 @@ - + #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/caseDetails/showProcessOverview')} diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCases.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCases.xhtml index a495338f5fc..8e59d524703 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCases.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseItemRelatedCases.xhtml @@ -109,8 +109,8 @@
    -
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/waitingDownloadMessage')}
    - #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/caseList/downloadZipFileExplanation')} +
    #{ivy.cms.co("/ch.ivy.addon.portalkit.ui.jsf/common/waitingDownloadMessage")}
    +
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/downloadZipFileExplanation')}
    diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/CaseItemRelatedTasks.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/CaseItemRelatedTasks.xhtml index 89a5443648c..16ccf9bfaee 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/CaseItemRelatedTasks.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/CaseItemRelatedTasks.xhtml @@ -239,9 +239,8 @@ -
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/waitingDownloadMessage')}
    - - #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/downloadZipFileExplanation')} +
    #{ivy.cms.co("/ch.ivy.addon.portalkit.ui.jsf/common/waitingDownloadMessage")}
    +
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/downloadZipFileExplanation')}
    diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseWidget/CaseWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseWidget/CaseWidget.xhtml index cafeaabd5eb..a930c026967 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseWidget/CaseWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseWidget/CaseWidget.xhtml @@ -372,8 +372,8 @@ -
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/waitingDownloadMessage')}
    - #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/caseList/downloadZipFileExplanation')} +
    #{ivy.cms.co("/ch.ivy.addon.portalkit.ui.jsf/common/waitingDownloadMessage")}
    +
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/downloadZipFileExplanation')}
    \ No newline at end of file diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemWorkflowEvents/TaskItemWorkflowEvents.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemWorkflowEvents/TaskItemWorkflowEvents.xhtml index 7656af30411..c5f60a7e2e4 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemWorkflowEvents/TaskItemWorkflowEvents.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItemWorkflowEvents/TaskItemWorkflowEvents.xhtml @@ -14,12 +14,10 @@ - - - - - - diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskWidget/TaskWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskWidget/TaskWidget.xhtml index e5cde8ee118..64ee20924d9 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskWidget/TaskWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskWidget/TaskWidget.xhtml @@ -497,8 +497,8 @@ -
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/waitingDownloadMessage')}
    - #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/downloadZipFileExplanation')} +
    #{ivy.cms.co("/ch.ivy.addon.portalkit.ui.jsf/common/waitingDownloadMessage")}
    +
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/downloadZipFileExplanation')}
    \ No newline at end of file diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/process/ProcessItemAction/ProcessItemAction.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/process/ProcessItemAction/ProcessItemAction.xhtml index bf3bdc12550..111554405ca 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/process/ProcessItemAction/ProcessItemAction.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/process/ProcessItemAction/ProcessItemAction.xhtml @@ -51,19 +51,19 @@ actionListener="#{cc.attrs.actionListenerOnEditProcess}" update="#{cc.attrs.componentToUpdateOnEditProcess}" rendered="#{canModify}" /> - +
    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 f8025608331..4481667b73d 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 @@ -27,8 +27,8 @@ actionListener="#{logic.logout(task)}" /> + widgetVar="logoutConfirmation" appendTo="@(body)" style="max-width: 610px;" + rendered="#{data.isWorkingOnATask}" responsive="true" closable="false" styleClass="warning-before-leaving-task">

    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/common/confirmation')}

    diff --git a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/component/NotificationFullPage/NotificationFullPage.xhtml b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/component/NotificationFullPage/NotificationFullPage.xhtml index a0bef9b0d40..b050e4a94d6 100644 --- a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/component/NotificationFullPage/NotificationFullPage.xhtml +++ b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/component/NotificationFullPage/NotificationFullPage.xhtml @@ -50,21 +50,26 @@
    -
    - - - - - -
    -
    +
    + + + + + + + + + + +
    + -
    +
    diff --git a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidget/NotificationWidget.xhtml b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidget/NotificationWidget.xhtml index cd8d55a27bb..bf9264b4eda 100644 --- a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidget/NotificationWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidget/NotificationWidget.xhtml @@ -70,21 +70,26 @@ value="#{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/notifications/markAsRead')}" />
    - + + - - + + + + +
    -
    + -
    + diff --git a/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml b/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml index 923caf320d0..eed266974d9 100644 --- a/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/includes/notification.xhtml @@ -84,22 +84,26 @@ value="#{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/notifications/markAsRead')}" />
    - - - + + + + - + + + + +
    -
    + -
    + diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml index 334aa5fd75d..2c2a30aa326 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/DashboardTemplate.xhtml @@ -341,8 +341,8 @@ -
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/statistic/taskAnalysis/waitingDownloadMessage')}
    -
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/downloadZipFileExplanation')}
    +
    #{ivy.cms.co("/ch.ivy.addon.portalkit.ui.jsf/common/waitingDownloadMessage")}
    +
    #{ivy.cms.co('/ch.ivy.addon.portalkit.ui.jsf/dashboard/downloadZipFileExplanation')}
    diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml index 6796eefbd1b..1c3d9cfbb43 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml @@ -41,7 +41,6 @@
    -
    .ui-menuitem-link.color-destroy > span { color: var(--ivy-tertinary-color-red-medium) !important; } .options-panel .ui-state-disabled.option-item { - display: inline-block; opacity: 0.5; text-decoration: none; } diff --git a/AxonIvyPortal/portal/webContent/resources/images/welcome-widget-sample.png b/AxonIvyPortal/portal/webContent/resources/images/welcome-widget-sample.png index 6bc310bb8c4..8d3611b93d5 100644 Binary files a/AxonIvyPortal/portal/webContent/resources/images/welcome-widget-sample.png and b/AxonIvyPortal/portal/webContent/resources/images/welcome-widget-sample.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/architecture/images/multi-app-structure.png b/Documentation/portal-guide/source/portal-developer-guide/architecture/images/multi-app-structure.png index 962b6f55605..1329f867693 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/architecture/images/multi-app-structure.png and b/Documentation/portal-guide/source/portal-developer-guide/architecture/images/multi-app-structure.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/architecture/images/process-module-structure.png b/Documentation/portal-guide/source/portal-developer-guide/architecture/images/process-module-structure.png index 42e54c0a7e2..7efd7c68ea3 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/architecture/images/process-module-structure.png and b/Documentation/portal-guide/source/portal-developer-guide/architecture/images/process-module-structure.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customization-business-details-page-start-request.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customization-business-details-page-start-request.png index 9198e5c90b7..4c41dbdeb89 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customization-business-details-page-start-request.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customization-business-details-page-start-request.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customize-business-details-with-public-api.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customize-business-details-with-public-api.png index 26b8e13865b..95f37707717 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customize-business-details-with-public-api.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/customize-business-details-with-public-api.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/set-business-details-page-callable-process.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/set-business-details-page-callable-process.png index 0ea7f9145fd..1a45a709327 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/set-business-details-page-callable-process.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/set-business-details-page-callable-process.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/start-business-details-page-iframe.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/start-business-details-page-iframe.png index 96195996880..bcad0842312 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/start-business-details-page-iframe.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/business-details-page/start-business-details-page-iframe.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Mapping-ReviewRequest-Start.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Mapping-ReviewRequest-Start.png index a6e82447c53..8761a30c446 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Mapping-ReviewRequest-Start.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Mapping-ReviewRequest-Start.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Review-Request-Start.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Review-Request-Start.png index 8e93d9352f5..b4e6813b9c1 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Review-Request-Start.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/case-details/Review-Request-Start.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-case-details.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-case-details.png index 2a06e85cc67..57cca97dfe6 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-case-details.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-case-details.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-task-details.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-task-details.png index f6aa71d6d43..2e807d9e991 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-task-details.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/edit-variable-portal-task-details.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-case.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-case.png index d2e427d4b41..9d579f47f0e 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-case.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-case.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-task.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-task.png index d9730fd7823..86b84eea6e8 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-task.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/hide-technical-task.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-custom-field.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-custom-field.png index 4cffff72a80..fcc3b555bfc 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-custom-field.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-custom-field.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-input-mapping.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-input-mapping.png index 1a121e40aea..79e4501677a 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-input-mapping.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/customization/task-customized-iframe-process-input-mapping.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/process-image/define-process-image.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/process-image/define-process-image.png index 8b4251ee935..f9f24bbed03 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/process-image/define-process-image.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/process-image/define-process-image.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/customization/images/task-delegation/calculate-task-delegate.png b/Documentation/portal-guide/source/portal-developer-guide/customization/images/task-delegation/calculate-task-delegate.png index f5f7e04ab4d..8da87526206 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/customization/images/task-delegation/calculate-task-delegate.png and b/Documentation/portal-guide/source/portal-developer-guide/customization/images/task-delegation/calculate-task-delegate.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field-start.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field-start.png new file mode 100644 index 00000000000..b4eac043737 Binary files /dev/null and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field-start.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field.png index dd5d72adb91..cc96a4cb8f2 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field.png and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-custom-field.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-process-demo.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-process-demo.png index 7a5d7eeacbf..9026d782fdd 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-process-demo.png and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-button-process-demo.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-destroy-case.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-destroy-case.png new file mode 100644 index 00000000000..8e6d7806cf1 Binary files /dev/null and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-case-widget/custom-action-destroy-case.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-field.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-field.png index 3b8308f0024..1b574551f92 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-field.png and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-field.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-params.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-params.png index 5b498dd61d0..56df31f45a3 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-params.png and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-custom-widget/process-custom-params.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-process-widget/process-sort-index.png b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-process-widget/process-sort-index.png index 6b1fc94245e..d7265ad7ab2 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-process-widget/process-sort-index.png and b/Documentation/portal-guide/source/portal-developer-guide/dashboard/images/new-dashboard-process-widget/process-sort-index.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-case-widget.rst b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-case-widget.rst index 22ca725eada..034b73eec42 100644 --- a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-case-widget.rst +++ b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-case-widget.rst @@ -202,10 +202,16 @@ Portal supports creating custom action buttons as a column in case widget for sp Follow these steps to implement it: - #. Create a new process that will be triggered after clicking on the custom action button. In this example, the process will destroy the case. + #. Create a new process that will be triggered after clicking on the custom action button. In this process, define a request start event that accepts the ``uuid`` parameter. + When the ``Custom Action`` button on the case details page is clicked, Portal will call this process and pass the case UUID as + the ``uuid`` parameter. |custom-action-button-process-demo| + #. Design and implement the action/script for the custom action within this process. + + |custom-action-destroy-case| + #. Describe the custom action button in ``custom-fields.yaml``. .. code-block:: yaml @@ -593,3 +599,5 @@ Below are the definition of these attributes: .. |custom-action-button-custom-field| image:: images/new-dashboard-case-widget/custom-action-button-custom-field.png .. |custom-action-button-process-demo| image:: images/new-dashboard-case-widget/custom-action-button-process-demo.png +.. |custom-action-button-custom-field-start| image:: images/new-dashboard-case-widget/custom-action-button-custom-field-start.png +.. |custom-action-destroy-case| image:: images/new-dashboard-case-widget/custom-action-destroy-case.png diff --git a/Documentation/portal-guide/source/portal-developer-guide/iframe/images/case-embedInFrame.png b/Documentation/portal-guide/source/portal-developer-guide/iframe/images/case-embedInFrame.png index 3807ff77112..e7e4d983cc9 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/iframe/images/case-embedInFrame.png and b/Documentation/portal-guide/source/portal-developer-guide/iframe/images/case-embedInFrame.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/iframe/images/task-embedInFrame.png b/Documentation/portal-guide/source/portal-developer-guide/iframe/images/task-embedInFrame.png index 5d7d00cddee..b43640ae750 100644 Binary files a/Documentation/portal-guide/source/portal-developer-guide/iframe/images/task-embedInFrame.png and b/Documentation/portal-guide/source/portal-developer-guide/iframe/images/task-embedInFrame.png differ diff --git a/Documentation/portal-guide/source/portal-developer-guide/installation/index.rst b/Documentation/portal-guide/source/portal-developer-guide/installation/index.rst index 72726596502..458e958ff15 100644 --- a/Documentation/portal-guide/source/portal-developer-guide/installation/index.rst +++ b/Documentation/portal-guide/source/portal-developer-guide/installation/index.rst @@ -144,10 +144,15 @@ In Engine Migrate 11.3.2 To 12.0.0 ------------------------ -Custom field values for business details pages are migrated silently from the process link relative path +1. Custom field values for business details pages are migrated silently from the process link relative path to its :dev-url:`IWebStartable ID `. You don't need to do anything, this is just for your information. +2. We implemented a new feature to adjusting column widths in the Task and Case widgets. +This change may slightly impact the column widths of Task and Case widgets from previous versions. +To manually adjust column widths, please refer to the :ref:`Task widget configuraiton `, +and :ref:`Case widget configuraiton ` guides. + Migrate 11.1.0 To 11.2.0 ------------------------ diff --git a/Documentation/portal-guide/source/portal-developer-guide/introduction/index.rst b/Documentation/portal-guide/source/portal-developer-guide/introduction/index.rst index 164fbc47c64..a70a1ef683c 100644 --- a/Documentation/portal-guide/source/portal-developer-guide/introduction/index.rst +++ b/Documentation/portal-guide/source/portal-developer-guide/introduction/index.rst @@ -6,6 +6,13 @@ Introduction Portal Developer Guide provides information to set up, configure, customize Portal so that it could fit customer need. +.. _introduction-new-and-note-worthy-12.0: + +New & Noteworthy 12 +------------------- + +Check out more information on `release 12.0 `__. + .. _introduction-new-and-note-worthy-11.2: New & Noteworthy 11 diff --git a/Documentation/portal-guide/source/portal-user-guide/admin-settings/index.rst b/Documentation/portal-guide/source/portal-user-guide/admin-settings/index.rst index b89bb5b7599..b1df12f1140 100644 --- a/Documentation/portal-guide/source/portal-user-guide/admin-settings/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/admin-settings/index.rst @@ -79,11 +79,11 @@ HowTo: Show/Hide the Announcement |announcement| -#. Input your announcement text and click on :guilabel:`Save changes` +#. Input your announcement text and click on :guilabel:`Save` button. -#. To show the announcement, click on :guilabel:`Enable`. +#. Turn on the :guilabel:`Enable announcement` option to display the announcement. -#. If the announcement is enabled, hide it again by clicking on :guilabel:`Disable`. +#. Turn off the :guilabel:`Enable announcement` option to hide the announcement. HowTo: Manage Roles ------------------------------ diff --git a/Documentation/portal-guide/source/portal-user-guide/ai-assistant/ai-assistant-menu-item.png b/Documentation/portal-guide/source/portal-user-guide/ai-assistant/ai-assistant-menu-item.png index a8087189bf2..b5a55ffa5d9 100644 Binary files a/Documentation/portal-guide/source/portal-user-guide/ai-assistant/ai-assistant-menu-item.png and b/Documentation/portal-guide/source/portal-user-guide/ai-assistant/ai-assistant-menu-item.png differ diff --git a/Documentation/portal-guide/source/portal-user-guide/full-case-list/index.rst b/Documentation/portal-guide/source/portal-user-guide/full-case-list/index.rst index fcb3c965874..a64832877c6 100644 --- a/Documentation/portal-guide/source/portal-user-guide/full-case-list/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/full-case-list/index.rst @@ -70,7 +70,7 @@ HowTo: Move and Resize Widgets in Case Details ---------------------------------------------- 1. Open the case details -2. Click on the **Switch to Edit Mode** button to drag, drop and resize widgets. +2. Click on the :guilabel:`Edit` button to drag, drop and resize widgets. |how-to-switch-to-edit-mode| @@ -87,7 +87,7 @@ HowTo: Move and Resize Widgets in Case Details .. _howto-attach-a-document-to-the-case-1: -HowTo: Attach a Document to the Case +HowTo: Attach a document to a case ------------------------------------ #. Open the case details @@ -96,8 +96,8 @@ HowTo: Attach a Document to the Case #. The :guilabel:`Add document` dialog is opened -#. To upload a file, click :guilabel:`Select` or simply drag the file into the - dialog. +#. Upload a file by clicking :guilabel:`Upload here` or by dragging the + file into the dialog #. Click :guilabel:`Close` close the dialog @@ -279,7 +279,7 @@ HowTo: Show Process Viewer - Full case list - Full task list -#. Click on :guilabel:`Action` +#. Click on :guilabel:`Actions` #. Click on :guilabel:`Process Viewer` @@ -304,20 +304,36 @@ HowTo: Share Case Details .. include:: ../includes/_common-icon.rst .. |navigate-to-full-cases-list-page| image:: ../../screenshots/case/navigate-to-full-cases-list-page.png + :alt: Menu to navigate to the Full case list page .. |case-key-information| image:: ../../screenshots/case/case-key-information.png + :alt: Full case list: key informations .. |case-details| image:: ../../screenshots/case-detail/case-details.png + :alt: The Case Details page .. |case-details-data-description| image:: ../../screenshots/case-detail/case-details-data-description.png + :alt: Case Details: General section .. |case-details-related-tasks-cases| image:: ../../screenshots/case-detail/case-details-related-tasks-cases.png + :alt: Case Details: Related Tasks of Case section .. |case-details-histories| image:: ../../screenshots/case-detail/case-details-histories.png + :alt: Case Details: Histories section .. |case-details-documents| image:: ../../screenshots/case-detail/case-details-documents.png + :alt: Case Details: Documents section .. |how-to-attach-document-to-case| image:: ../../screenshots/case-detail/how-to-attach-document-to-case.png -.. |how-to-create-case-filter| image:: ../../screenshots/case/how-to-create-case-filter.png + :alt: Case Details: Add document dialog .. |how-to-delete-an-attachment-from-case| image:: ../../screenshots/case-detail/how-to-delete-an-attachment-from-case.png + :alt: Case Details: Delete document confirm dialog .. |how-to-add-task-note| image:: ../../screenshots/case-detail/how-to-add-task-note.png + :alt: Case Details: Add note dialog .. |how-to-show-note-details| image:: ../../screenshots/case-detail/how-to-show-note-details.png + :alt: Case Details: Link to show more notes details .. |export-case-history| image:: ../../screenshots/case/export-case-history.png + :alt: Case Business Information page: Link to export case history .. |how-to-switch-to-view-mode| image:: ../../screenshots/case-detail/how-to-switch-to-view-mode.png + :alt: Case Details: save button .. |how-to-switch-to-edit-mode| image:: ../../screenshots/case-detail/how-to-switch-to-edit-mode.png + :alt: Case Details: button to switch to the edit mode .. |how-to-reset-to-default| image:: ../../screenshots/case-detail/how-to-reset-to-default.png + :alt: Case Details: button to reset to the default configurations .. |portal-process-viewer| image:: ../../screenshots/case/portal-process-viewer.png + :alt: Process Viewer page .. |how-to-share-case-details| image:: ../../screenshots/case-detail/share-page-button.png + :alt: Case Details: button to get the shareable link of the case details diff --git a/Documentation/portal-guide/source/portal-user-guide/full-task-list/index.rst b/Documentation/portal-guide/source/portal-user-guide/full-task-list/index.rst index aa7ae5ae32b..44c03ea79c8 100644 --- a/Documentation/portal-guide/source/portal-user-guide/full-task-list/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/full-task-list/index.rst @@ -130,7 +130,7 @@ HowTo: Move and Resize Widgets in Task Details |how-to-reset-to-default| -HowTo: Attach a document to the case +HowTo: Attach a document to a case ------------------------------------ #. Open the task details of a task @@ -138,8 +138,8 @@ HowTo: Attach a document to the case #. The :guilabel:`Add document` dialog is opened -#. Upload a file by using the :guilabel:`Select` button or by simply dragging - the file into the dialog +#. Upload a file by clicking :guilabel:`Upload here` or by dragging the + file into the dialog #. Click the button :guilabel:`Close` to close the dialog @@ -240,19 +240,36 @@ HowTo: Share Task Details .. |navigate-to-full-task-list-page| image:: ../../screenshots/dashboard/expanded-left-menu.png + :alt: Menu to navigate to the Full task list .. |task-key-information| image:: ../../screenshots/task/task-key-information.png + :alt: Full task list: key informations .. |detailed-task-information-data-description| image:: ../../screenshots/task-detail/detailed-task-information-data-description.png + :alt: Task Details: General section .. |detailed-task-information-note| image:: ../../screenshots/task-detail/detailed-task-information-note.png + :alt: Task Details: Notes section .. |detailed-task-information-documents| image:: ../../screenshots/task-detail/detailed-task-information-documents.png + :alt: Task Details: Documents section .. |detailed-task-information| image:: ../../screenshots/task-detail/detailed-task-information.png + :alt: The Task Details page .. |how-to-upload-document| image:: ../../screenshots/task-detail/how-to-upload-document.png + :alt: Task Details:Add document dialog .. |how-to-delete-document| image:: ../../screenshots/task-detail/how-to-delete-document.png + :alt: Task Details: Delete document confirm dialog .. |how-to-add-note| image:: ../../screenshots/task-detail/how-to-add-note.png + :alt: Task Details: Add note dialog .. |how-to-show-note-details| image:: ../../screenshots/task-detail/how-to-show-note-details.png + :alt: Task Details: Link to show more notes details .. |how-to-export-note-details| image:: ../../screenshots/task-detail/how-to-export-note-details.png + :alt: Link to export task notes .. |workflow-events-table| image:: ../../screenshots/task-detail/workflow-events-table.png + :alt: Workflow events of task dialog .. |how-to-switch-to-view-mode| image:: ../../screenshots/task-detail/how-to-switch-to-view-mode.png + :alt: Task Details: save button .. |how-to-switch-to-edit-mode| image:: ../../screenshots/task-detail/how-to-switch-to-edit-mode.png + :alt: Task Details: button to switch to the edit mode .. |how-to-reset-to-default| image:: ../../screenshots/task-detail/how-to-reset-to-default.png + :alt: Task Details: button to reset to the default configurations .. |how-to-share-task-details| image:: ../../screenshots/task-detail/share-page-button.png + :alt: Task Details: button to get the shareable link of the task details .. |task-status-banner| image:: ../../screenshots/task-detail/task-status-banner.png + :alt: Task Details: the Status banner \ No newline at end of file diff --git a/Documentation/portal-guide/source/portal-user-guide/index.rst b/Documentation/portal-guide/source/portal-user-guide/index.rst index 860a34265f6..f5f9f5d1206 100644 --- a/Documentation/portal-guide/source/portal-user-guide/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/index.rst @@ -23,3 +23,4 @@ User Guide accessibility/index demo-processes/index qr-code/index + ai-assistant/index diff --git a/Documentation/portal-guide/source/portal-user-guide/new-dashboard/index.rst b/Documentation/portal-guide/source/portal-user-guide/new-dashboard/index.rst index 71f292bbee9..e21967a22c9 100644 --- a/Documentation/portal-guide/source/portal-user-guide/new-dashboard/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/new-dashboard/index.rst @@ -146,7 +146,19 @@ In view mode, when quick search is enabled, a text box will appear to allow you #. You can define the scope of the quick search feature in the configuration panel. #. The result of the quick search function may be affected if you apply a complex filter on the widget. - + +**Adjust column width** + +In edit mode, you can adjust the width of each column directly within the widget table. + +|task-list-widget-edit-mode| + +You may also notice gridlines on the table which implemented by Portal to help you adjust the column widths more efficiently. + + .. important:: + + If the total width of the columns is less than the widget’s width, the Portal will automatically adjust the column widths to match the widget’s width. + .. _new-dashboard-case-list-widget: Case list widget @@ -214,6 +226,18 @@ In view mode, when quick search is enabled, a text box will appear to allow you #. You can define the scope of the quick search feature in the configuration panel. #. The result of the quick search function may be affected if you apply a complex filter on the widget. +**Adjust column width** + +In edit mode, you can adjust the width of each column directly within the widget table. + +|case-list-widget-edit-mode| + +You may also notice gridlines on the table which implemented by Portal to help you adjust the column widths more efficiently. + + .. important:: + + If the total width of the columns is less than the widget’s width, the Portal will automatically adjust the column widths to match the widget’s width. + .. _new-dashboard-process-list-widget: Process list widget @@ -426,4 +450,8 @@ You can define a Notifications widget to display all Notifications based on your .. |task-quick-search-textbox| image:: ../../screenshots/new-dashboard/task-quick-search-textbox.png :alt: Dashboard task widget's quick search .. |case-quick-search-textbox| image:: ../../screenshots/new-dashboard/case-quick-search-textbox.png - :alt: Dashboard case widget's quick search \ No newline at end of file + :alt: Dashboard case widget's quick search +.. |task-list-widget-edit-mode| image:: ../../screenshots/new-dashboard/task-list-widget-edit-mode.png + :alt: Dashboard task widget in the Edit mode +.. |case-list-widget-edit-mode| image:: ../../screenshots/new-dashboard/case-list-widget-edit-mode.png + :alt: Dashboard case widget in the Edit mode \ No newline at end of file diff --git a/Documentation/portal-guide/source/portal-user-guide/portal-header/index.rst b/Documentation/portal-guide/source/portal-user-guide/portal-header/index.rst index 5dd4864ab6b..f6f49433eef 100644 --- a/Documentation/portal-guide/source/portal-user-guide/portal-header/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/portal-header/index.rst @@ -54,7 +54,7 @@ tasks assigned to you or one of the roles you hold. |portal-absences| The dialog shows you all current and upcoming absences. You may show also past -absences by activating the option :guilabel:`Show absences in the past`. Furthermore, +absences by activating the option :guilabel:`Display absences in the past`. Furthermore, you can edit or delete absences by using the |edit-icon| **Edit** or |trash-icon| **Delete** action in the row of the respective absence. @@ -65,7 +65,7 @@ HowTo: Add absence #. The :guilabel:`Add absence` dialog is opened -#. Enter :guilabel:`From` and :guilabel:`To` +#. Enter :guilabel:`From` and :guilabel:`Until` #. You may provide an explanatory comment @@ -101,7 +101,7 @@ HowTo: Set substitute .. note:: - Grant either permission :bdg-ref-warning:`🔑UserCreateOwnSubstitute ` or :bdg-ref-warning:`🔑UserCreateSubstitute ` + Grant either permission :bdg-ref-warning:`🔑UserCreateOwnSubstitute ` or :bdg-ref-warning:`🔑UserCreateSubstitute ` to allow a user to create their own substitute definitions or create substitute definitions for all users, respectively. Change Password @@ -111,6 +111,12 @@ The menu entry :guilabel:`Change password` allows you to set a new password. |portal-password-change-dialog| +.. note:: + + Grant permission: :bdg-warning:`🔑UserSetOwnPassword` to allow a user to change their password. + Configure permissions in the :dev-url:`Engine Cockpit + `. In the security area, open PersonalPermissions -> PersonalSecurityPermissions -> UserSetOwnPassword. + Info ---- @@ -183,4 +189,4 @@ You can configure these variables by :ref:`settings-admin-settings`. .. |portal-version-information| image:: ../../screenshots/settings/portal-version-information.png :alt: Version information dialog .. |portal-global-search-result-page| image:: ../../screenshots/search/global-search-result.png - :alt: Global search results page \ No newline at end of file + :alt: Global search results page diff --git a/Documentation/portal-guide/source/portal-user-guide/statistic-chart/index.rst b/Documentation/portal-guide/source/portal-user-guide/statistic-chart/index.rst index 131c187a157..bba540b6fd7 100644 --- a/Documentation/portal-guide/source/portal-user-guide/statistic-chart/index.rst +++ b/Documentation/portal-guide/source/portal-user-guide/statistic-chart/index.rst @@ -15,7 +15,7 @@ To utilize the Statistic feature on the Dashboard Configuration, follow these st - Navigate to Dashboard Configuration of the dashboard where you want to add the widget and select :guilabel:`Add Widget`. -- From the dropdown menu labeled "Statistic Widget," choose from a variety of insightful charts. +- From the dropdown menu labeled **Statistic Widgets**, choose from a variety of insightful charts. |statistic-widget-list-page| diff --git a/Documentation/public-api/pom.xml b/Documentation/public-api/pom.xml index 345e9c0875f..5bea3c50dc9 100644 --- a/Documentation/public-api/pom.xml +++ b/Documentation/public-api/pom.xml @@ -5,8 +5,8 @@ public-api 9.1.0.0-SNAPSHOT - 11.4.0-SNAPSHOT - 11.4.0 + 12.0.0 + 12.0.0 diff --git a/Showcase/InternalSupport/pom.xml b/Showcase/InternalSupport/pom.xml index 8f67c86cf8f..5e0578b75af 100644 --- a/Showcase/InternalSupport/pom.xml +++ b/Showcase/InternalSupport/pom.xml @@ -6,7 +6,7 @@ 9.1.0.0-SNAPSHOT iar - 12.0.0-SNAPSHOT + 12.0.0 12.0.0 UTF-8 diff --git a/Showcase/portal-components-examples/pom.xml b/Showcase/portal-components-examples/pom.xml index ad995a6a774..ac732b8129c 100644 --- a/Showcase/portal-components-examples/pom.xml +++ b/Showcase/portal-components-examples/pom.xml @@ -18,7 +18,7 @@ 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/Showcase/portal-developer-examples/cms/cms_es.yaml b/Showcase/portal-developer-examples/cms/cms_es.yaml index 4f4748fb93a..380a3b7f4b2 100644 --- a/Showcase/portal-developer-examples/cms/cms_es.yaml +++ b/Showcase/portal-developer-examples/cms/cms_es.yaml @@ -177,5 +177,5 @@ Processes: name: Pedido de pizza description: Crear 3 tareas, cada tarea tiene CustomerName y ShipmentDate name: Crear tareas para la personalización de la lista de tareas - UserExampleGuide: Guía de ejemplos de uso + UserExampleGuide: Guía de ejemplos para el usuario google: SP Google diff --git a/Showcase/portal-developer-examples/cms/cms_fr.yaml b/Showcase/portal-developer-examples/cms/cms_fr.yaml index 3cdeb331592..f1beab7a276 100644 --- a/Showcase/portal-developer-examples/cms/cms_fr.yaml +++ b/Showcase/portal-developer-examples/cms/cms_fr.yaml @@ -177,5 +177,5 @@ Processes: name: Commande de pizzas description: Créez 3 tâches, chaque tâche a le nom du client et la date d'expédition. name: Créer des tâches pour la personnalisation de la liste de tâches - UserExampleGuide: Guide d'exemple d'utilisation + UserExampleGuide: Guide d'utilisation google: FR Google diff --git a/Showcase/portal-developer-examples/pom.xml b/Showcase/portal-developer-examples/pom.xml index e6627713740..6b8f7129f2b 100644 --- a/Showcase/portal-developer-examples/pom.xml +++ b/Showcase/portal-developer-examples/pom.xml @@ -18,7 +18,7 @@ 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/Showcase/portal-user-examples/cms/Images/advertising-megaphone.svg b/Showcase/portal-user-examples/cms/Images/advertising-megaphone.svg index a8f81c87e9a..d372c8d496b 100644 --- a/Showcase/portal-user-examples/cms/Images/advertising-megaphone.svg +++ b/Showcase/portal-user-examples/cms/Images/advertising-megaphone.svg @@ -1,11 +1 @@ - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/Showcase/portal-user-examples/cms/Images/check-circle-1.svg b/Showcase/portal-user-examples/cms/Images/check-circle-1.svg index 04e557020ff..c08a3802170 100644 --- a/Showcase/portal-user-examples/cms/Images/check-circle-1.svg +++ b/Showcase/portal-user-examples/cms/Images/check-circle-1.svg @@ -1,8 +1 @@ - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/Showcase/portal-user-examples/cms/Images/information-circle.svg b/Showcase/portal-user-examples/cms/Images/information-circle.svg index 85005e72dee..718401a3bb1 100644 --- a/Showcase/portal-user-examples/cms/Images/information-circle.svg +++ b/Showcase/portal-user-examples/cms/Images/information-circle.svg @@ -1,10 +1 @@ - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/Showcase/portal-user-examples/cms/Images/shopping-cart-check.svg b/Showcase/portal-user-examples/cms/Images/shopping-cart-check.svg index 3a046996070..a769a020657 100644 --- a/Showcase/portal-user-examples/cms/Images/shopping-cart-check.svg +++ b/Showcase/portal-user-examples/cms/Images/shopping-cart-check.svg @@ -1,12 +1 @@ - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/Showcase/portal-user-examples/cms/cms_es.yaml b/Showcase/portal-user-examples/cms/cms_es.yaml index 19260975f15..bbe2968ce42 100644 --- a/Showcase/portal-user-examples/cms/cms_es.yaml +++ b/Showcase/portal-user-examples/cms/cms_es.yaml @@ -173,4 +173,4 @@ Processes: UserExampleGuide: comingSoon: Próximamente… description: '¡Bienvenido! En esta guía de ejemplo de usuario encontrará algunos procesos de demostración disponibles en el portal Axon Ivy. Simplemente haga clic en el enlace correspondiente abajo para obtener más información. ' - name: Guía para los ejemplos + name: Guía de ejemplos para el usuario diff --git a/Showcase/portal-user-examples/cms/cms_fr.yaml b/Showcase/portal-user-examples/cms/cms_fr.yaml index 93ef82d5a7e..780ad6f178e 100644 --- a/Showcase/portal-user-examples/cms/cms_fr.yaml +++ b/Showcase/portal-user-examples/cms/cms_fr.yaml @@ -156,10 +156,10 @@ Processes: name: Processus d'absence rejectedTask: Votre demande de congé est rejetée MarketingCampaign: - name: Marketing campaign coordination + name: Coordination des campagnes marketing Procurement: - name: Procurement + name: Approvisionnement UserExampleGuide: comingSoon: A venir… description: 'Bienvenue ! Dans ce guide d''exemple d''utilisateur, vous trouverez quelques processus de démonstration disponibles dans le Axon Ivy Portal. Il vous suffit de cliquer sur le lien correspondant ci-dessous pour obtenir plus d''informations. ' - name: Guide d'exemple d'utilisateur + name: Guide d'utilisation diff --git a/Showcase/portal-user-examples/pom.xml b/Showcase/portal-user-examples/pom.xml index c3de29d2f10..1933081090c 100644 --- a/Showcase/portal-user-examples/pom.xml +++ b/Showcase/portal-user-examples/pom.xml @@ -18,7 +18,7 @@ 12.0.0 - 12.0.0-SNAPSHOT + 12.0.0 UTF-8 diff --git a/Showcase/portal-user-examples/processes/Start Processes/UserExampleGuide.p.json b/Showcase/portal-user-examples/processes/Start Processes/UserExampleGuide.p.json index da4de677535..b13a8331350 100644 --- a/Showcase/portal-user-examples/processes/Start Processes/UserExampleGuide.p.json +++ b/Showcase/portal-user-examples/processes/Start Processes/UserExampleGuide.p.json @@ -12,7 +12,7 @@ "signature" : "userExampleGuide", "request" : { "name" : "<%=ivy.cms.co(\"/Processes/UserExampleGuide/name\")%>", - "description" : "<%=ivy.cms.co(\"/Processes/UserExampleGuide/processDescription\")%>", + "description" : "<%=ivy.cms.co(\"/Processes/UserExampleGuide/description\")%>", "customFields" : [ { "name" : "cssIcon", "value" : "si si-help-wheel" }, { "name" : "processImage", "value" : "<%=ivy.cms.cr(\"/Images/process/HELPDESK2\")%>" } @@ -415,7 +415,7 @@ } ], "layout" : { "lanes" : [ { - "name" : "User example guide", + "name" : "<%=ivy.cms.co(\"/Processes/UserExampleGuide/name\")%>", "offset" : 32, "size" : 544, "lanes" : [ ] diff --git a/Showcase/portal-user-examples/src_hd/com/axonivy/portal/userexamples/ExampleHomePage/ExampleHomePage.xhtml b/Showcase/portal-user-examples/src_hd/com/axonivy/portal/userexamples/ExampleHomePage/ExampleHomePage.xhtml index 7a354ff3f73..6a359f625ca 100644 --- a/Showcase/portal-user-examples/src_hd/com/axonivy/portal/userexamples/ExampleHomePage/ExampleHomePage.xhtml +++ b/Showcase/portal-user-examples/src_hd/com/axonivy/portal/userexamples/ExampleHomePage/ExampleHomePage.xhtml @@ -4,8 +4,6 @@ xmlns:pe="http://primefaces.org/ui/extensions"> - - #{ivy.cms.co('/Processes/UserExampleGuide/name')} @@ -56,7 +54,15 @@
    - + +