diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessEditWidgetNewDashBoardPage.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessEditWidgetNewDashBoardPage.java index 45f95b947f8..f9e0229a8e5 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessEditWidgetNewDashBoardPage.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessEditWidgetNewDashBoardPage.java @@ -537,4 +537,27 @@ public SelenideElement getConfigurationFilterContainer() { return $("div#new-widget-configuration-dialog").shouldBe(appear, DEFAULT_TIMEOUT).$("div[id$='filter-container']") .shouldBe(appear, DEFAULT_TIMEOUT); } + + private SelenideElement getExpandModeCheckbox() { + return getConfigurationFilterContainer().$("span[id$='fullscreen-mode-group']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT).$("div[class*='ui-inputgroup']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT).$("div[id$='fullscreen-option']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT); + } + + public void clickOnExpandModeCheckbox() { + getExpandModeCheckbox().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click(); + } + + public SelenideElement getWidgetInfoIconCheckbox() { + return getConfigurationFilterContainer().$("span[id$='widget-info-icon-group']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT).$("div[class*='ui-inputgroup']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT).$("div[id$='widget-info']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT).$("div[class*='ui-chkbox-box']") + .shouldBe(Condition.appear, DEFAULT_TIMEOUT).$("span"); + } + + public void clickOnWidgetInfoIconCheckbox() { + getWidgetInfoIconCheckbox().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click(); + } } diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessWidgetNewDashBoardPage.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessWidgetNewDashBoardPage.java index ed8b06ba981..d98e35b3325 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessWidgetNewDashBoardPage.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/page/ProcessWidgetNewDashBoardPage.java @@ -5,8 +5,8 @@ import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$$; -import org.openqa.selenium.Keys;import com.codeborne.selenide.CollectionCondition; -import com.codeborne.selenide.Condition; +import org.openqa.selenium.Keys; + import com.codeborne.selenide.ElementsCollection; import com.codeborne.selenide.SelenideElement; @@ -101,4 +101,12 @@ public void shiftAndArrowKeyOnQuickSearchInput() { searchInput.sendKeys(Keys.ENTER); waitForPageLoad(); } + + public boolean isExpandButtonAppear() { + return getProcessWidgetHeader().$(".expand-link").isDisplayed(); + } + + public boolean isWidgetInfoIconAppear() { + return getProcessWidgetHeader().$(".widget__info-sidebar-link").isDisplayed(); + } } diff --git a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/dashboard/DashboardProcessWidgetTest.java b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/dashboard/DashboardProcessWidgetTest.java index efe1f4ce912..bd4f0661c52 100644 --- a/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/dashboard/DashboardProcessWidgetTest.java +++ b/AxonIvyPortal/portal-selenium-test/src_test/com/axonivy/portal/selenium/test/dashboard/DashboardProcessWidgetTest.java @@ -17,6 +17,7 @@ import com.axonivy.portal.selenium.page.NewDashboardPage; import com.axonivy.portal.selenium.page.ProcessEditWidgetNewDashBoardPage; import com.axonivy.portal.selenium.page.ProcessInformationPage; +import com.axonivy.portal.selenium.page.ProcessWidgetNewDashBoardPage; import com.axonivy.portal.selenium.page.TaskDetailsPage; import com.axonivy.portal.selenium.page.TaskIFrameTemplatePage; import com.axonivy.portal.selenium.page.TaskTemplateIFramePage; @@ -25,6 +26,7 @@ @IvyWebTest public class DashboardProcessWidgetTest extends BaseTest { + private static final String YOUR_PROCESSES = "Your Processes"; private static final String EXPRESS_PROCESS = "EXPRESS_PROCESS"; private static final String CASE_LEAVE_REQUEST_TEST_FOR_IVYPORTAL_3369 = "Case: Leave Request Test For IVYPORTAL-3369"; @@ -700,6 +702,28 @@ public void testSavedDataWhenChangeProcessDisplayMode() { .shouldNotHave(Condition.value(CATEGORIED_LEAVE_REQUEST)); } + @Test + public void testHideExpandMode() { + ProcessEditWidgetNewDashBoardPage editProcessWidgetConfiguration = + newDashboardPage.editProcessWidgetConfiguration(); + editProcessWidgetConfiguration.clickOnExpandModeCheckbox();; + editProcessWidgetConfiguration.save(); + backToNewDashboardPage(); + ProcessWidgetNewDashBoardPage processWidget = newDashboardPage.selectProcessWidget(YOUR_PROCESSES); + assertFalse(processWidget.isExpandButtonAppear()); + } + + @Test + public void testHideWidgetInfoIcon() { + ProcessEditWidgetNewDashBoardPage editProcessWidgetConfiguration = + newDashboardPage.editProcessWidgetConfiguration(); + editProcessWidgetConfiguration.clickOnWidgetInfoIconCheckbox(); + editProcessWidgetConfiguration.save(); + backToNewDashboardPage(); + ProcessWidgetNewDashBoardPage processWidget = newDashboardPage.selectProcessWidget(YOUR_PROCESSES); + assertFalse(processWidget.isWidgetInfoIconAppear()); + } + private void backToNewDashboardPage() { NewDashboardDetailsEditPage newDashboardDetailsEditPage = new NewDashboardDetailsEditPage(); var configurationPage = newDashboardDetailsEditPage.backToConfigurationPage(); diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java index be55652e4c6..3702840d84c 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardBean.java @@ -503,7 +503,7 @@ public boolean canShowWidgetInfoIcon(DashboardWidget widget) { } public boolean canShowExpandMode(DashboardWidget widget) { - return widget.getType().canShowFullscreenMode(); + return widget.getType().canShowFullscreenModeOption(); } public void setSelectedDashboardName(String dashboardName) { diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardDetailModificationBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardDetailModificationBean.java index 7aff8bad703..6925c0484af 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardDetailModificationBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/DashboardDetailModificationBean.java @@ -1028,9 +1028,9 @@ public boolean displayWidgetInfoOption() { .map(DashboardWidgetType::canShowWidgetInfoOption).orElse(false); } - public boolean displayFullscreenMode() { + public boolean displayFullscreenModeOption() { return Optional.ofNullable(this.widget).map(DashboardWidget::getType) - .map(DashboardWidgetType::canShowFullscreenMode).orElse(false); + .map(DashboardWidgetType::canShowFullscreenModeOption).orElse(false); } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ClientStatisticDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ClientStatisticDashboardWidget.java index 9c1506e78bc..485a48d4056 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ClientStatisticDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ClientStatisticDashboardWidget.java @@ -10,8 +10,11 @@ public class ClientStatisticDashboardWidget extends DashboardWidget { private static final long serialVersionUID = 1L; private String chartId; + private boolean showFullscreenMode; - public ClientStatisticDashboardWidget() {} + public ClientStatisticDashboardWidget() { + setShowFullscreenMode(true); + } @JsonIgnore @Override @@ -35,4 +38,12 @@ public void setChartId(String chartId) { public void cancelUserFilter() { } + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CustomDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CustomDashboardWidget.java index 378f97bc08f..5047e8a2230 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CustomDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/CustomDashboardWidget.java @@ -28,6 +28,7 @@ public class CustomDashboardWidget extends DashboardWidget { private String errorMessage; @JsonIgnore private String errorIcon; + private boolean showFullscreenMode; @Override public DashboardWidgetType getType() { @@ -61,6 +62,7 @@ public static CustomDashboardWidget buildDefaultWidget(String id, String name) { result.getLayout().setAxisX(0); result.getLayout().setAxisY(0); result.setData(new DashboardCustomWidgetData()); + result.setShowFullscreenMode(true); return result; } @@ -169,4 +171,12 @@ public void setErrorIcon(String errorIcon) { @Override public void cancelUserFilter() {} + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessDashboardWidget.java index ee83cafb84c..417f8dbbf05 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessDashboardWidget.java @@ -31,9 +31,13 @@ public class ProcessDashboardWidget extends DashboardWidget { private boolean isPreview; @JsonIgnore protected DashboardProcessSearchCriteria criteria; + private boolean showFullscreenMode; + private boolean showWidgetInfo; public ProcessDashboardWidget() { criteria = new DashboardProcessSearchCriteria(); + setShowFullscreenMode(true); + setShowWidgetInfo(true); } public ProcessDashboardWidget(ProcessDashboardWidget widget) { @@ -41,6 +45,8 @@ public ProcessDashboardWidget(ProcessDashboardWidget widget) { criteria = widget.getCriteria(); displayMode = widget.getDisplayMode(); isPreview = widget.isPreview(); + showFullscreenMode = widget.showFullscreenMode; + showWidgetInfo = widget.showWidgetInfo; } @Override @@ -126,4 +132,20 @@ public void cancelUserFilter() {} public void setQuickSearchKeyword() { this.criteria.setQuickSearchKeyword(this.getQuickSearchKeyword()); } + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } + + public void setShowWidgetInfo(boolean showWidgetInfo) { + this.showWidgetInfo = showWidgetInfo; + } + + public boolean isShowWidgetInfo() { + return showWidgetInfo; + } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java index 4e4016d95ea..0a94497bc33 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/ProcessViewerDashboardWidget.java @@ -16,6 +16,7 @@ public class ProcessViewerDashboardWidget extends DashboardWidget { private String processPath; @JsonIgnore private DashboardProcess process; + private boolean showFullscreenMode; @Override public DashboardWidgetType getType() { @@ -39,6 +40,7 @@ public static ProcessViewerDashboardWidget buildDefaultWidget(String id, String result.getLayout().setHeight(6); result.getLayout().setAxisX(0); result.getLayout().setAxisY(0); + result.setShowFullscreenMode(true); return result; } @@ -69,4 +71,13 @@ public String getProcessLink() { @Override public void cancelUserFilter() {} + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } + } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/StatisticDashboardWidget.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/StatisticDashboardWidget.java index fa4c114b7fc..bcc63ccaef3 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/StatisticDashboardWidget.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/StatisticDashboardWidget.java @@ -23,12 +23,16 @@ public class StatisticDashboardWidget extends DashboardWidget { private StatisticChart chart; @JsonIgnore private boolean isChartEmpty; + private boolean showFullscreenMode; - public StatisticDashboardWidget() {} + public StatisticDashboardWidget() { + setShowFullscreenMode(true); + } public StatisticDashboardWidget(StatisticDashboardWidget widget) { super(widget); chart = widget.getChart(); + showFullscreenMode = widget.showFullscreenMode; } @JsonIgnore @@ -113,4 +117,12 @@ public String getEmptyChartIcon() { @Override public void cancelUserFilter() {} + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/DashboardWidgetType.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/DashboardWidgetType.java index 208709eab24..942d804bb2e 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/DashboardWidgetType.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/DashboardWidgetType.java @@ -23,10 +23,11 @@ public boolean canEnableQuickSearch() { } public boolean canShowWidgetInfoOption() { - return this == TASK || this == CASE; + return this == TASK || this == CASE || this == PROCESS; } - - public boolean canShowFullscreenMode() { - return this == TASK || this == CASE; + + public boolean canShowFullscreenModeOption() { + return this == TASK || this == CASE || this == PROCESS || this == NEWS || this == CUSTOM || this == PROCESS_VIEWER + || this == CLIENT_STATISTIC || this == NOTIFICATION; } } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NewsDashboardWidget.java b/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NewsDashboardWidget.java index 707b089e697..235ceb644fe 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NewsDashboardWidget.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NewsDashboardWidget.java @@ -19,6 +19,7 @@ public class NewsDashboardWidget extends DashboardWidget implements Serializable private static final long serialVersionUID = -5650954020648136966L; @JsonIgnore private List newsList; + private boolean showFullscreenMode; public void buildDataFirstTime() { newsList = NewsService.getInstance().findAll(); @@ -42,6 +43,7 @@ public static NewsDashboardWidget buildDefaultWidget(String widgetId, String wid widget.getLayout().setHeight(6); widget.getLayout().setAxisX(0); widget.getLayout().setAxisY(0); + widget.setShowFullscreenMode(true); return widget; } @@ -55,4 +57,12 @@ public void setNewsList(List newsList) { @Override public void cancelUserFilter() {} + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } } diff --git a/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NotificationDashboardWidget.java b/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NotificationDashboardWidget.java index 4c7a7fb8e25..ebdb14389de 100644 --- a/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NotificationDashboardWidget.java +++ b/AxonIvyPortal/portal/src/com/axonivy/portal/dto/dashboard/NotificationDashboardWidget.java @@ -23,11 +23,13 @@ public class NotificationDashboardWidget extends DashboardWidget { @JsonIgnore private long countUnread; private boolean onlyUnread; + private boolean showFullscreenMode; public NotificationDashboardWidget() { this.webNotifications = WebNotifications.current(); this.countAll = webNotifications.countAll(); this.countUnread = webNotifications.countUnread(); + setShowFullscreenMode(true); } @JsonIgnore @@ -93,4 +95,12 @@ public void goToTaskDetail(NotificationDto dto) { PortalNavigator.redirect(dto.getInfoAction().getLink().getRelative()); } + public boolean isShowFullscreenMode() { + return showFullscreenMode; + } + + public void setShowFullscreenMode(boolean showFullscreenMode) { + this.showFullscreenMode = showFullscreenMode; + } + } diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml index c4999821f03..b8f320cbb34 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/PortalDashboardDetailModification/PortalDashboardAddNewWidgets.xhtml @@ -170,7 +170,7 @@ + widget="#{widget}" componentToUpdate="widget-configuration-form" isPublicDashboard="#{isPublicDashboard}" managedBean="#{dashboardDetailModificationBean}" /> diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomDashboardWidget/CustomDashboardWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomDashboardWidget/CustomDashboardWidget.xhtml index d4d1ff5b108..885f8089be0 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomDashboardWidget/CustomDashboardWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomDashboardWidget/CustomDashboardWidget.xhtml @@ -18,7 +18,7 @@ - + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml index 7b329c55829..f14595287cf 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CustomWidgetConfiguration/CustomWidgetConfiguration.xhtml @@ -47,6 +47,22 @@ + +
+ +
+
+ + + +
+
+ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessDashboardWidget/ProcessDashboardWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessDashboardWidget/ProcessDashboardWidget.xhtml index 8d769994b1a..34e36a60ddd 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessDashboardWidget/ProcessDashboardWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessDashboardWidget/ProcessDashboardWidget.xhtml @@ -25,6 +25,8 @@ + + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidget/ProcessViewerWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidget/ProcessViewerWidget.xhtml index b723035f53e..40fd1bcfbd0 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidget/ProcessViewerWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidget/ProcessViewerWidget.xhtml @@ -19,7 +19,7 @@ - + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidgetConfiguration/ProcessViewerWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidgetConfiguration/ProcessViewerWidgetConfiguration.xhtml index 207e753f71c..a67c0b81c37 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidgetConfiguration/ProcessViewerWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessViewerWidgetConfiguration/ProcessViewerWidgetConfiguration.xhtml @@ -58,6 +58,22 @@ + + +
+ +
+
+ + + +
+
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 2471ad556b1..9330fe95d3c 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 @@ -65,11 +65,11 @@ -
+
-
+
+ +
+ +
+
+ + + +
+
+ + +
+ +
+
+ + + +
+
+
#{ivy.cms.co("/ch.ivy.addon.portalkit.ui.jsf/dashboard/filters")} diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidget/StatisticChartWidget.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidget/StatisticChartWidget.xhtml index 95a2464f0e9..742ec8c6dee 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidget/StatisticChartWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidget/StatisticChartWidget.xhtml @@ -32,6 +32,7 @@ + diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml index 1994b1faa93..b10c0e507e2 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/StatisticChartWidgetConfiguration/StatisticChartWidgetConfiguration.xhtml @@ -12,6 +12,7 @@ + diff --git a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/ClientStatisticWidget/ClientStatisticWidget.xhtml b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/ClientStatisticWidget/ClientStatisticWidget.xhtml index 0aeb69d1656..8b9fa35b6bb 100644 --- a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/ClientStatisticWidget/ClientStatisticWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/ClientStatisticWidget/ClientStatisticWidget.xhtml @@ -27,6 +27,7 @@ + diff --git a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NewsWidget/NewsWidget.xhtml b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NewsWidget/NewsWidget.xhtml index 44205fa0b50..add1c55125a 100644 --- a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NewsWidget/NewsWidget.xhtml +++ b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NewsWidget/NewsWidget.xhtml @@ -29,6 +29,7 @@ +
+ + +
+ +
+
+ + + +
+
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 251884da88f..cd8d55a27bb 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 @@ -23,6 +23,7 @@ + diff --git a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidgetConfiguration/NotificationWidgetConfiguration.xhtml b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidgetConfiguration/NotificationWidgetConfiguration.xhtml index 80512fbf762..9f9f5c51393 100644 --- a/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidgetConfiguration/NotificationWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/src_hd/com/axonivy/portal/dashboard/component/NotificationWidgetConfiguration/NotificationWidgetConfiguration.xhtml @@ -60,6 +60,21 @@
+ +
+ +
+
+ + + +
+
diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml index 1b321f953aa..31e8f7ee988 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/decorator/SidebarWidgetConfiguration.xhtml @@ -94,7 +94,7 @@
` identifier of the process you want to display + + ``showFullscreenMode``: visibility of the fullscreen mode icon. The default value is ``true``, set to ``false`` to hide the icon diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-process-widget.rst b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-process-widget.rst index 55e0020727c..98c7f1888bd 100644 --- a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-process-widget.rst +++ b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-process-widget.rst @@ -24,7 +24,9 @@ The basic structure of the JSON of a process widget is as follows: ], "layout": { "x": 10, "y": 0, "w": 2, "h": 4 - } + }, + "showFullscreenMode" : true, + "showWidgetInfo" : true } .. @@ -51,6 +53,12 @@ modes: ``compact-process`` (compact mode), ``combined-process`` (combined mode), ``styleClass`` (optional): add CSS Classes to HTML DOM of the widget ``style`` (optional): add inline style to HTML DOM of the widget + + ``showFullscreenMode``: visibility of the fullscreen mode icon. The default + value is ``true``, set to ``false`` to hide the icon. + + ``showWidgetInfo``: visibility of the widget information icon. The default + value is ``true``, set to ``false`` to hide the icon. Each mode has differences in its JSON definition. Refer to the below sections to understand how to define the process widget in these modes properly. @@ -77,7 +85,9 @@ Below is a standard JSON definition of a Process widget in compact mode "processPaths": ["designer/portal-developer-examples/Start Processes/Request/createNewRequest.ivp", "designer/portal-developer-examples/Start Processes/Request/collectDataRequest.ivp"], "categories": ["/Categories/Showcase/Customized", "/Categories/Showcase/PortalDialogExample"], "sorting": "SORTING_INDEX", - "enableQuickSearch": true + "enableQuickSearch": true, + "showFullscreenMode" : true, + "showWidgetInfo" : true } .. @@ -127,7 +137,9 @@ Below is a standard JSON definition of a Process widget in combined mode "x": 10, "y": 0, "w": 2, "h": 4 }, "processPath": "designer/portal-developer-examples/Start Processes/Request/createNewRequest.ivp", - "rowsPerPage": 5 + "rowsPerPage": 5, + "showFullscreenMode" : true, + "showWidgetInfo" : true } .. @@ -156,7 +168,9 @@ Below is a standard JSON definition of a Process widget in full mode "layout": { "x": 10, "y": 0, "w": 2, "h": 4 }, - "processPath": "designer/portal-developer-examples/Start Processes/Request/createNewRequest.ivp" + "processPath": "designer/portal-developer-examples/Start Processes/Request/createNewRequest.ivp", + "showFullscreenMode" : true, + "showWidgetInfo" : true } .. @@ -179,7 +193,9 @@ Below is a standard JSON definition of the Process widget in image mode "layout": { "x": 10, "y": 0, "w": 2, "h": 4 }, - "processPath": "designer/portal-developer-examples/Start Processes/Request/createNewRequest.ivp" + "processPath": "designer/portal-developer-examples/Start Processes/Request/createNewRequest.ivp", + "showFullscreenMode" : true, + "showWidgetInfo" : true } .. diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-statistic-widget.rst b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-statistic-widget.rst index 0bdca395219..c2a3196a08a 100644 --- a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-statistic-widget.rst +++ b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-statistic-widget.rst @@ -23,7 +23,8 @@ Below is a sample JSON definition of a statistic widget in the Portal dashboard "x" : 8, "y" : 2 }, - "chartId": "10" + "chartId": "10", + "showFullscreenMode": true } .. @@ -43,4 +44,6 @@ The basic JSON structure of a statistic widget - ``h``: HTML DOM Style ``height`` is calculated as formula ``60 * h + 20 * (h - 1)`` - ``chartId``: ID of the standard client statistic chart. For more information, please refer to :ref:`Portal.StatisticCharts `. \ No newline at end of file + ``chartId``: ID of the standard client statistic chart. For more information, please refer to :ref:`Portal.StatisticCharts `. + + ``showFullscreenMode``: visibility of the fullscreen mode icon. The default value is ``true``, set to ``false`` to hide the icon. \ No newline at end of file diff --git a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-task-widget.rst b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-task-widget.rst index fde74a2408a..2103c2da25a 100644 --- a/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-task-widget.rst +++ b/Documentation/portal-guide/source/portal-developer-guide/dashboard/new-dashboard-task-widget.rst @@ -30,7 +30,7 @@ Below is a sample JSON definition of a task widget in the Portal dashboard "sortField": "name", "rowsPerPage": 20, "showWidgetInfo": true, - "showExpandMode": true, + "showFullscreenMode": true, "columns": [ { "field": "start" @@ -99,7 +99,7 @@ The basic JSON structure of a Task widget ``showWidgetInfo``: visibility of the widget information icon. The default value is ``true``, set to ``false`` to hide the icon - ``showExpandMode``: visibility of the fullscreen mode icon. The default value is ``true``, set to ``false`` to hide the icon + ``showFullscreenMode``: visibility of the fullscreen mode icon. The default value is ``true``, set to ``false`` to hide the icon ``columns``: column configurations for each of the columns in the widget. You can predefine filters, styles, visibility,... of columns and define custom 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 2d8c52b0cba..d492e0ec457 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 @@ -236,6 +236,8 @@ There are four process widget modes available: - Full mode - Image mode +In the widget configuration, you can choose the display mode, show or hide widget information and fullscreen mode icons. + |process-widget-modes| **Combined mode**