From dc2d88bd716aeedfe8655428455f37c57ec3e25a Mon Sep 17 00:00:00 2001 From: Loc Nguyen Date: Tue, 17 Sep 2024 16:17:49 +0700 Subject: [PATCH 01/16] feature/IVYPORTAL-17431-Remove-Express-from-Portal - Remove ChatRenderBean --- .../portal/processes/Start Processes/PortalStart.p.json | 6 +----- .../ch/ivy/addon/portal/generic/bean/ChatRendererBean.java | 5 ----- .../layouts/restricted/AbstractTaskTemplate.xhtml | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json b/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json index cb92d8cb9bf..fba685d3460 100644 --- a/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json +++ b/AxonIvyPortal/portal/processes/Start Processes/PortalStart.p.json @@ -2674,11 +2674,7 @@ "at" : { "x" : 224, "y" : 96 } }, "connect" : [ - { "id" : "S10-f8", "to" : "S10-f7", "label" : { - "name" : "Express end page", - "segment" : 0.47, - "offset" : { "y" : -11 } - } }, + { "id" : "S10-f8", "to" : "S10-f7" }, { "id" : "S10-f2", "to" : "S10-f68", "via" : [ { "x" : 288, "y" : 192 } ] }, { "id" : "S10-f3", "to" : "S10-f17", "via" : [ { "x" : 288, "y" : 288 } ] }, { "id" : "S10-f4", "to" : "S10-f19", "via" : [ { "x" : 256, "y" : 384 } ] }, diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/ChatRendererBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/ChatRendererBean.java index 34313ca3178..dcfff0cca55 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/ChatRendererBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/ChatRendererBean.java @@ -20,7 +20,6 @@ public class ChatRendererBean implements Serializable { private static final long serialVersionUID = 4691697531600235758L; - private static final String EXPRESS_CREATION_TASK = "isExpressCreationTask"; private Boolean isGroupChatRendered; private Boolean isPrivateChatRendered; @@ -56,8 +55,4 @@ public void getGroupChatName() { String groupChatName = Ivy.cms().co("/ch.ivy.addon.portalkit.ui.jsf/common/case") + "-{caseId}" + " {caseName}"; PrimeFaces.current().executeScript("var groupChatFormat = '" + groupChatName + "'"); } - - public boolean isExpressCreationTask() { - return Ivy.wfTask().customFields().stringField(EXPRESS_CREATION_TASK).get().isPresent(); - } } diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml index 82b2d9e8f72..71a6a408896 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml @@ -141,7 +141,7 @@ icon="si si-move-to-bottom" onclick="PF('adhoc-task-reset-confirmation-dialog').show()" /> Date: Wed, 18 Sep 2024 11:43:16 +0700 Subject: [PATCH 02/16] feature/IVYPORTAL-17431-Remove-Express-from-Portal - Remove from AbstractTaskTemplate --- AxonIvyPortal/portal/cms/cms.yaml | 6 -- AxonIvyPortal/portal/cms/cms_de.yaml | 6 -- AxonIvyPortal/portal/cms/cms_en.yaml | 6 -- AxonIvyPortal/portal/cms/cms_es.yaml | 6 -- AxonIvyPortal/portal/cms/cms_fr.yaml | 6 -- .../bean/AbstractTaskTemplateBean.java | 56 ---------- .../ivy/addon/portalkit/bo/AdhocHistory.java | 61 ----------- .../dashboard/process/DashboardProcess.java | 25 ----- .../portalkit/enums/AdditionalProperty.java | 2 - .../service/AdhocHistoryService.java | 33 ------ .../webContent/layouts/TaskTemplate-8.xhtml | 1 - .../restricted/AbstractTaskTemplate.xhtml | 101 +----------------- .../webContent/resources/css/module.css | 22 ---- 13 files changed, 2 insertions(+), 329 deletions(-) delete mode 100644 AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/AdhocHistory.java delete mode 100644 AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/AdhocHistoryService.java diff --git a/AxonIvyPortal/portal/cms/cms.yaml b/AxonIvyPortal/portal/cms/cms.yaml index f036beb4fa2..ae600261641 100644 --- a/AxonIvyPortal/portal/cms/cms.yaml +++ b/AxonIvyPortal/portal/cms/cms.yaml @@ -11,16 +11,11 @@ ch.ivy.addon.portal.generic: requestTabTitle: Request statusTabTitle: Case Information OpenTaskTemplate: - adhocHistory: Adhoc history - adhocHistoryTooltip: Show adhoc history browserTabClosingWarning: You may lose your work in progress. Do you want to continue? goToAdhocWarning: You may lose your work in progress and start the Ad-hoc process. Do you want to continue? goToSidestepWarning: Your current modifications will not be saved, when a sidestep process is started directly from a task. Do you want to continue? - noteOfResultFromAdhocProcess: 'Note: You will find all these entries also in the process history' reCreateAdhocWarning: There is already an adhoc process for this task, do you want to create another one? resultFromAdhocProcess: Results from the Ad-Hoc Process - startAdHoc: Start Adhoc - startAdHocTooltip: Reroute this process using ad-hoc steps ch.ivy.addon.portalkit.ui.jsf: AbsenceAndDeputy: Messages: @@ -102,7 +97,6 @@ ch.ivy.addon.portalkit.ui.jsf: GRID: Grid IMAGE: Image ProcessType: - EXPRESS_PROCESS: Express Workflow EXTERNAL_LINK: External Link IVY_PROCESS: Business Process ProcessWidgetMode: diff --git a/AxonIvyPortal/portal/cms/cms_de.yaml b/AxonIvyPortal/portal/cms/cms_de.yaml index 40bbc209c05..6c659b01cdf 100644 --- a/AxonIvyPortal/portal/cms/cms_de.yaml +++ b/AxonIvyPortal/portal/cms/cms_de.yaml @@ -11,16 +11,11 @@ ch.ivy.addon.portal.generic: requestTabTitle: Anfrage statusTabTitle: Vorgangsinformationen OpenTaskTemplate: - adhocHistory: AdHoc Prozesshistorie - adhocHistoryTooltip: AdHoc Prozesshistorie anzeigen browserTabClosingWarning: Durch diese Aktion gehen ungespeicherte Änderungen verloren. Möchten Sie wirklich fortfahren? goToAdhocWarning: Beim starten von Ad-hoc Prozess gehen Ihre nicht gespeicherte Eingaben verloren. Möchten Sie weiter? goToSidestepWarning: Bei starten eines Sidestep Prozesses werden die aktuelle Eingaben nicht gespeichert. Möchten Sie sich trotzdem fortsetzen? - noteOfResultFromAdhocProcess: 'Achtung: alle Einträge sind auch in der Vorgangshistorie' reCreateAdhocWarning: Es gibt bereits einen AdHoc Prozess zu dieser Aufgabe. Möchten Sie einen neuen erstellen? resultFromAdhocProcess: Ergebnisse aus dem Ad-Hoc Prozess - startAdHoc: Start Adhoc - startAdHocTooltip: Neue Aufgabe hinzufügen, und den aktuellen Prozess umleiten. PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -111,7 +106,6 @@ ch.ivy.addon.portalkit.ui.jsf: BY_CUSTOM_ORDER: Benutzerdefinierte Reihenfolge BY_INDEX: Sortierindex ProcessType: - EXPRESS_PROCESS: Express Workflow EXTERNAL_LINK: External Link IVY_PROCESS: Geschäftsprozess ProcessWidgetMode: diff --git a/AxonIvyPortal/portal/cms/cms_en.yaml b/AxonIvyPortal/portal/cms/cms_en.yaml index 1bef35227c3..cb94c7de8d5 100644 --- a/AxonIvyPortal/portal/cms/cms_en.yaml +++ b/AxonIvyPortal/portal/cms/cms_en.yaml @@ -11,16 +11,11 @@ ch.ivy.addon.portal.generic: requestTabTitle: Request statusTabTitle: Case Information OpenTaskTemplate: - adhocHistory: Adhoc history - adhocHistoryTooltip: Show adhoc history browserTabClosingWarning: You may lose your work in progress. Do you want to continue? goToAdhocWarning: You may lose your work in progress and start the Ad-hoc process. Do you want to continue? goToSidestepWarning: Your current modifications will not be saved, when a sidestep process is started directly from a task. Do you want to continue? - noteOfResultFromAdhocProcess: 'Note: You will find all these entries also in the process history' reCreateAdhocWarning: There is already an adhoc process for this task, do you want to create another one? resultFromAdhocProcess: Results from the Ad-Hoc Process - startAdHoc: Start Adhoc - startAdHocTooltip: Reroute this process using ad-hoc steps PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -111,7 +106,6 @@ ch.ivy.addon.portalkit.ui.jsf: BY_CUSTOM_ORDER: Custom order BY_INDEX: Sorting index ProcessType: - EXPRESS_PROCESS: Express Workflow EXTERNAL_LINK: External Link IVY_PROCESS: Business Process ProcessWidgetMode: diff --git a/AxonIvyPortal/portal/cms/cms_es.yaml b/AxonIvyPortal/portal/cms/cms_es.yaml index 8c8237e6fc9..ba59acf895b 100644 --- a/AxonIvyPortal/portal/cms/cms_es.yaml +++ b/AxonIvyPortal/portal/cms/cms_es.yaml @@ -11,16 +11,11 @@ ch.ivy.addon.portal.generic: requestTabTitle: Solicitud statusTabTitle: Información del caso OpenTaskTemplate: - adhocHistory: Historial del proceso AdHoc - adhocHistoryTooltip: Mostrar historial del proceso AdHoc browserTabClosingWarning: Puede perder su trabajo en progreso. ¿Quiere continuar? goToAdhocWarning: Puede perder su trabajo en progreso e iniciar el proceso Ad-hoc. ¿Quiere continuar? goToSidestepWarning: Sus modificaciones actuales no se guardarán cuando se inicie un proceso de paso lateral directamente desde una tarea. ¿Quiere continuar? - noteOfResultFromAdhocProcess: 'Nota: podrá encontrar este historial también en el historial del caso.' reCreateAdhocWarning: Ya existe un proceso AdHoc para esta tarea. ¿Desea crear un proceso nuevo? resultFromAdhocProcess: Resultados del proceso AdHoc - startAdHoc: Comenzar Adhoc - startAdHocTooltip: Redirija este proceso usando pasos ad-hoc PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -111,7 +106,6 @@ ch.ivy.addon.portalkit.ui.jsf: BY_CUSTOM_ORDER: Pedido personalizado BY_INDEX: Índice de clasificación ProcessType: - EXPRESS_PROCESS: Flujo de trabajo exprés EXTERNAL_LINK: Link externo IVY_PROCESS: Proceso de negocio ProcessWidgetMode: diff --git a/AxonIvyPortal/portal/cms/cms_fr.yaml b/AxonIvyPortal/portal/cms/cms_fr.yaml index 186b08da480..9c3ef995f8e 100644 --- a/AxonIvyPortal/portal/cms/cms_fr.yaml +++ b/AxonIvyPortal/portal/cms/cms_fr.yaml @@ -11,16 +11,11 @@ ch.ivy.addon.portal.generic: requestTabTitle: Demande statusTabTitle: Informations sur le dossier OpenTaskTemplate: - adhocHistory: l'historique adhoc - adhocHistoryTooltip: Afficher l'historique adhoc browserTabClosingWarning: Votre travail risque d'être perdu. Souhaitez-vous continuer ? goToAdhocWarning: En démarrant un processus ad hoc, vos données non sauvegardées seront perdues. Voulez-vous continuer? goToSidestepWarning: En démarrant un processus sidestep, vos données non sauvegardées seront perdues. Voulez-vous continuer? - noteOfResultFromAdhocProcess: 'Remarque : Vous trouverez également toutes ces entrées dans l''historique du processus.' reCreateAdhocWarning: Il existe déjà un processus ad hoc pour cette tâche, voulez-vous en créer un autre ? resultFromAdhocProcess: Résultats du processus ad hoc - startAdHoc: Démarrer ad-hoc - startAdHocTooltip: Rediriger ce processus en ajoutant une étape ad hoc. PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -111,7 +106,6 @@ ch.ivy.addon.portalkit.ui.jsf: BY_CUSTOM_ORDER: Commande personnalisée BY_INDEX: Index de tri ProcessType: - EXPRESS_PROCESS: Flux de travail express EXTERNAL_LINK: Lien externe IVY_PROCESS: Processus d'entreprise ProcessWidgetMode: diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/AbstractTaskTemplateBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/AbstractTaskTemplateBean.java index 12d52a2910f..5fbf065d0b5 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/AbstractTaskTemplateBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portal/generic/bean/AbstractTaskTemplateBean.java @@ -7,15 +7,9 @@ import javax.faces.context.FacesContext; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; -import org.primefaces.PrimeFaces; import ch.ivy.addon.portal.generic.navigation.PortalNavigator; -import ch.ivy.addon.portalkit.bo.AdhocHistory; -import ch.ivy.addon.portalkit.enums.AdditionalProperty; -import ch.ivy.addon.portalkit.service.AdhocHistoryService; -import ch.ivy.addon.portalkit.service.ExpressProcessService; import ch.ivy.addon.portalkit.util.TaskUtils; import ch.ivy.addon.portalkit.util.UrlUtils; import ch.ivy.addon.portalkit.util.UserUtils; @@ -36,7 +30,6 @@ public abstract class AbstractTaskTemplateBean implements Serializable { protected List sideStepList; protected IStartableSideStep selectedSideStep; - protected List adhocHistories; protected String caseDetailsLink; protected ITask task; protected ITask currentTask; @@ -49,23 +42,12 @@ public void setSelectedSideStep(IStartableSideStep selectedSideStep) { this.selectedSideStep = selectedSideStep; } - public void startAdhoc(Long taskId) { - String url = ExpressProcessService.getInstance().findExpressAdhocWFLink(); - url = url + "?originalTaskId=" + taskId; - PortalNavigator.redirect(url); - } - public void startSideStep(ITask task) { TaskUtils.resetTask(task); String link = UrlUtils.formatLinkWithEmbedInFrameParam(selectedSideStep.getStartLink().getRelativeEncoded()); PortalNavigator.redirect(link); } - public boolean hasExpressAdhocWF() { - String adhocUrl = ExpressProcessService.getInstance().findExpressAdhocWFLink(); - return !adhocUrl.isEmpty(); - } - public List generateSideStepList(ICase iCase) { if (iCase == null) { return Collections.emptyList(); @@ -87,37 +69,6 @@ private boolean isSkippingTaskList() { return task != null && currentTask != null && currentTask.getId() != task.getId(); } - public boolean hasAdhocTasks(ITask task) { - if (task == null) { - return false; - } - boolean isFirstTimeOpenOriginalAdhocTask = AdditionalProperty.FIRST_TIME_OPEN_ORIGINAL_ADHOC_TASK.toString() - .equals(task.customFields().stringField(AdditionalProperty.FIRST_TIME_OPEN_ORIGINAL_ADHOC_TASK.toString()).getOrNull()); - if (isFirstTimeOpenOriginalAdhocTask) { - PrimeFaces.current().executeScript("PF('adhoc-task-history-dialog').show()"); - } - return AdditionalProperty.ORIGINAL_ADHOC_EXPRESS_TASK.toString().equals(task.customFields().stringField(AdditionalProperty.ORIGINAL_ADHOC_EXPRESS_TASK.toString()).getOrNull()); - } - - public void onCloseAdhocTaskHistoryDialog(ITask task) { - task.customFields().stringField(AdditionalProperty.FIRST_TIME_OPEN_ORIGINAL_ADHOC_TASK.toString()).delete(); - } - - public String getAdhocCreationMessage(Long taskId) { - AdhocHistoryService adhocHistoryService = new AdhocHistoryService(); - boolean hasAdhocHistory = adhocHistoryService.hasAdhocHistory(taskId); - return hasAdhocHistory ? Ivy.cms().co("/ch.ivy.addon.portal.generic/OpenTaskTemplate/reCreateAdhocWarning") : Ivy.cms().co("/ch.ivy.addon.portal.generic/OpenTaskTemplate/goToAdhocWarning"); - } - - public List getAllAdhocHistories(ITask task) { - if (adhocHistories == null && task != null) { - AdhocHistoryService adhocHistoryService = new AdhocHistoryService(); - adhocHistories = adhocHistoryService.getHistoriesByTaskID(task.getId()); - adhocHistories.sort((first, second) -> second.getTimestamp().compareTo(first.getTimestamp())); - } - return adhocHistories; - } - public static String getUserByUsernameAndExternalName(String username, String externalId) { if (StringUtils.isBlank(username)) { return ""; @@ -234,13 +185,6 @@ public void setTask(ITask task) { this.task = task; } - public boolean canStartAdhoc(String isShowStartAdhocButton, - Boolean isCurrentTaskPersistent) { - return StringUtils.isBlank(isShowStartAdhocButton) - ? (hasExpressAdhocWF() && isCurrentTaskPersistent) - : BooleanUtils.toBoolean(isShowStartAdhocButton); - } - public void doNothing() { } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/AdhocHistory.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/AdhocHistory.java deleted file mode 100644 index 19d588a71bd..00000000000 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bo/AdhocHistory.java +++ /dev/null @@ -1,61 +0,0 @@ -package ch.ivy.addon.portalkit.bo; - -import java.util.Date; - -public class AdhocHistory { - - private long originalTaskId; - private String content; - private Date timestamp; - private String taskName; - private String authorUsername; - private String externalSecurityId; - - public long getOriginalTaskId() { - return originalTaskId; - } - - public void setOriginalTaskId(long originalTaskId) { - this.originalTaskId = originalTaskId; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public Date getTimestamp() { - return timestamp; - } - - public void setTimestamp(Date timestamp) { - this.timestamp = timestamp; - } - - public String getTaskName() { - return taskName; - } - - public void setTaskName(String taskName) { - this.taskName = taskName; - } - - public String getAuthorUsername() { - return authorUsername; - } - - public void setAuthorUsername(String authorUsername) { - this.authorUsername = authorUsername; - } - - public String getExternalSecurityId() { - return externalSecurityId; - } - - public void setExternalSecurityId(String externalSecurityId) { - this.externalSecurityId = externalSecurityId; - } -} diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/process/DashboardProcess.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/process/DashboardProcess.java index 5c554e68c61..1f3fd787c90 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/process/DashboardProcess.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/dto/dashboard/process/DashboardProcess.java @@ -8,23 +8,17 @@ import com.fasterxml.jackson.annotation.JsonInclude; -import ch.ivy.addon.portalkit.bo.ExpressProcess; import ch.ivy.addon.portalkit.bo.ExternalLinkProcessItem; -import ch.ivy.addon.portalkit.bo.PortalExpressProcess; import ch.ivy.addon.portalkit.bo.Process; import ch.ivy.addon.portalkit.dto.DisplayName; import ch.ivy.addon.portalkit.enums.DefaultImage; import ch.ivy.addon.portalkit.enums.ProcessType; -import ch.ivy.addon.portalkit.service.ExpressProcessService; -import ch.ivy.addon.portalkit.util.CategoryUtils; -import ch.ivyteam.ivy.application.IApplication; import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.workflow.category.Category; import ch.ivyteam.ivy.workflow.start.IWebStartable; @JsonInclude(JsonInclude.Include.NON_NULL) public class DashboardProcess implements Process { - private static final String EXPRESS_WORKFLOW_ID_PARAM = "?workflowID="; private String id; @Deprecated(forRemoval = true, since = "11.2.0") private Long processStartId; @@ -71,16 +65,6 @@ public DashboardProcess(IWebStartable process) { this.portalProcessInformation = getPortalProcessInformation(process); } - public DashboardProcess(ExpressProcess process) { - this.id = process.getId(); - this.type = ProcessType.EXPRESS_PROCESS; - this.name = process.getProcessName(); - this.description = process.getProcessDescription(); - this.icon = process.getIcon(); - this.category = CategoryUtils.buildExpressCategory(process.getProcessName()); - this.application = IApplication.current().getName(); - } - @Override public String getId() { return id; @@ -130,9 +114,6 @@ public void setNames(List names) { @Override public String getStartLink() { - if (this.type == ProcessType.EXPRESS_PROCESS) { - return generateWorkflowStartLink(); - } return startLink; } @@ -145,8 +126,6 @@ public String getIcon() { if (StringUtils.isBlank(icon)) { if (this.type == ProcessType.IVY_PROCESS) { return Process.DEFAULT_PROCESS_ICON; - } else if (this.type == ProcessType.EXPRESS_PROCESS) { - return PortalExpressProcess.DEFAULT_ICON; } else if (this.type == ProcessType.EXTERNAL_LINK) { return ExternalLinkProcessItem.DEFAULT_ICON; } @@ -164,10 +143,6 @@ private String getActiveDisplayName() { .map(DisplayName::getValue).findFirst().orElse(this.name); } - private String generateWorkflowStartLink() { - return ExpressProcessService.getInstance().findExpressWorkflowStartLink() + EXPRESS_WORKFLOW_ID_PARAM + this.id; - } - /** * @deprecated use {@link #setProcessElementId(String)} * @return process start id diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java index d432fefa9b3..97988070ce4 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java @@ -5,8 +5,6 @@ public enum AdditionalProperty { CUSTOMIZATION_ADDITIONAL_CASE_DETAILS_PAGE, CASE_BUSINESS_ENTITY_PROPERTY, HIDE, - ORIGINAL_ADHOC_EXPRESS_TASK, ADHOC_EXPRESS_TASK, - FIRST_TIME_OPEN_ORIGINAL_ADHOC_TASK, PORTAL_GROUP_CHAT_INFO; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/AdhocHistoryService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/AdhocHistoryService.java deleted file mode 100644 index bf51f1ec443..00000000000 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/AdhocHistoryService.java +++ /dev/null @@ -1,33 +0,0 @@ -package ch.ivy.addon.portalkit.service; - -import java.util.List; - -import ch.ivy.addon.portalkit.bo.AdhocHistory; -import ch.ivyteam.ivy.business.data.store.search.Filter; -import ch.ivyteam.ivy.business.data.store.search.Result; - -public class AdhocHistoryService extends BusinessDataService { - - private static final String ORIGINAL_TASK_ID = "originalTaskId"; - - @Override - public Class getType() { - return AdhocHistory.class; - } - - public List getHistoriesByTaskID(long taskID) { - Filter query = repo().search(getType()).numberField(ORIGINAL_TASK_ID).isEqualTo(taskID); - Result queryResult = query.execute(); - long totalCount = queryResult.totalCount(); - if(totalCount > LIMIT_10) { - queryResult = query.limit(Math.toIntExact(totalCount)).execute(); - } - return queryResult.getAll(); - } - - public boolean hasAdhocHistory(long taskID) { - Filter query = repo().search(getType()).numberField(ORIGINAL_TASK_ID).isEqualTo(taskID); - return query.limit(1).execute().count() > 0; - } - -} diff --git a/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml b/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml index 80fc802ccfe..1d88d40411f 100644 --- a/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/TaskTemplate-8.xhtml @@ -36,7 +36,6 @@ - diff --git a/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml b/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml index 71a6a408896..21f9cc4a85a 100644 --- a/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml +++ b/AxonIvyPortal/portal/webContent/layouts/restricted/AbstractTaskTemplate.xhtml @@ -72,27 +72,11 @@ - - - - - - - - + - - - + rendered="#{chatRendererBean.isGroupChatRendered and !(currentTask.state eq 'CREATED')}" /> - - - - - - - - - - - -
- #{abstractTaskTemplateBean.getAdhocCreationMessage(currentTask.id)} -
-
- - - - - - - - - - -
- @@ -287,46 +230,6 @@ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- diff --git a/AxonIvyPortal/portal/webContent/resources/css/module.css b/AxonIvyPortal/portal/webContent/resources/css/module.css index 69bd1aa9323..5139ba57375 100644 --- a/AxonIvyPortal/portal/webContent/resources/css/module.css +++ b/AxonIvyPortal/portal/webContent/resources/css/module.css @@ -4466,17 +4466,6 @@ _:-ms-fullscreen, :root .content-link-history { } /* =================== END ENHANCEMENT ====================== */ -/* =================== ADHOC ============================= */ -.adhoc-task-history-dialog .ui-dialog-content.ui-widget-content { - max-height: 50vh; - width: 35vw; -} - -.adhoc-task-history-author { - display: inline; -} -/* ===================== END ADHOC ======================= */ - /* =================== ADD CHAT ============================= */ .chat-assignee-dialog { width: 600px !important; @@ -4741,10 +4730,6 @@ _:-ms-fullscreen, :root .content-link-history { max-width: 96vw; } - .adhoc-task-history-dialog .ui-dialog-content.ui-widget-content { - margin: 0 !important; - width: calc(100vw - 40px) !important; - } .case-details-data-1st-column { padding-right: 10px; text-align: left; @@ -4762,13 +4747,6 @@ _:-ms-fullscreen, :root .content-link-history { } } -@media screen and (min-width: 40.063em) and (max-width: 64.062em) { - .adhoc-task-history-dialog .ui-dialog-content.ui-widget-content { - margin: 0 !important; - width: calc(80vw - 40px) !important; - } -} - .note-show-more-link-icon, .note-show-more-link { margin-left: 5px; } From 500761e7b66e0768ae797ca8ced8d1fdaee2894d Mon Sep 17 00:00:00 2001 From: Loc Nguyen Date: Wed, 18 Sep 2024 15:31:26 +0700 Subject: [PATCH 03/16] feature/IVYPORTAL-17431-Remove-Express-from-Portal - Remove all AdHoc related --- AxonIvyPortal/portal/cms/cms.yaml | 25 ------------------- AxonIvyPortal/portal/cms/cms_de.yaml | 19 -------------- AxonIvyPortal/portal/cms/cms_en.yaml | 25 ------------------- AxonIvyPortal/portal/cms/cms_es.yaml | 25 ------------------- AxonIvyPortal/portal/cms/cms_fr.yaml | 19 -------------- .../addon/portalkit/bean/SideStepBean.java | 22 ++++++---------- .../addon/portalkit/bean/TaskActionBean.java | 3 +-- .../portalkit/enums/AdditionalProperty.java | 1 - .../portalkit/ivydata/bo/IvySideStep.java | 9 ------- .../SideStepSearchCriteria.java | 9 ------- .../ivydata/service/impl/SideStepService.java | 21 ---------------- .../service/ExpressProcessService.java | 6 ----- .../portalkit/service/HistoryService.java | 17 +++---------- .../component/CaseWidget/ActionsCell.xhtml | 2 +- .../component/TaskWidget/ActionsCell.xhtml | 2 +- .../component/ActionStep/ActionStep.xhtml | 8 ++---- .../component/CaseItem/CaseItem.xhtml | 2 +- .../CaseItemDetails/CaseItemDetails.xhtml | 1 - .../CaseItemRelatedCases/CaseAction.xhtml | 2 +- .../CaseItemRelatedCases.xhtml | 2 +- .../CaseItemRelatedTasks/TaskAction.xhtml | 2 +- .../component/SideStep/SideStep.xhtml | 12 +++------ .../component/TaskItem/TaskAction.xhtml | 2 +- .../TaskItemDetails/TaskItemDetails.xhtml | 2 +- 24 files changed, 26 insertions(+), 212 deletions(-) diff --git a/AxonIvyPortal/portal/cms/cms.yaml b/AxonIvyPortal/portal/cms/cms.yaml index ae600261641..68ce2e6402f 100644 --- a/AxonIvyPortal/portal/cms/cms.yaml +++ b/AxonIvyPortal/portal/cms/cms.yaml @@ -1,6 +1,4 @@ Categories: - AdhocExpressTasks: - name: Adhoc Express Tasks CreateExpressWorkflow: name: Create Express Workflow ExpressWorkflow: @@ -12,10 +10,7 @@ ch.ivy.addon.portal.generic: statusTabTitle: Case Information OpenTaskTemplate: browserTabClosingWarning: You may lose your work in progress. Do you want to continue? - goToAdhocWarning: You may lose your work in progress and start the Ad-hoc process. Do you want to continue? goToSidestepWarning: Your current modifications will not be saved, when a sidestep process is started directly from a task. Do you want to continue? - reCreateAdhocWarning: There is already an adhoc process for this task, do you want to create another one? - resultFromAdhocProcess: Results from the Ad-Hoc Process ch.ivy.addon.portalkit.ui.jsf: AbsenceAndDeputy: Messages: @@ -361,7 +356,6 @@ ch.ivy.addon.portalkit.ui.jsf: add: Add addDocument: Add document addNote: Add note - adhoc: Adhoc allCategories: All Categories allowPng: Only png types allowed apply: Apply @@ -905,8 +899,6 @@ ch.ivy.addon.portalkit.ui.jsf: process: Process searchResults: Search Results searchResultsFor: '{0} search results for "{1}"' - sidestep: - addAdhocTask: Add Ad-hoc Task statistic: chart: ExpandOrCollapseColumn: Expand/Collapse Columns @@ -1092,7 +1084,6 @@ ch.ivy.addon.portalkit.ui.jsf: expiry: Expiry failedDelayValidation: Task delay timestamp cannot be an empty value or invalid date format failedExpiryValidation: Task expiry timestamp cannot be in the past. - noAdhoc: No Adhoc available noDescription: No description noNotes: No notes processingTime: Processing Time @@ -1253,8 +1244,6 @@ Dialogs: FormDefinition: TaskDescription: Please define the form! TaskName: Form creation! - ProcessLoaded: - TaskName: AdHoc Configuration Task SaveWorkflow: TaskName: Express workflow creation in progress TaskDetail: @@ -1293,7 +1282,6 @@ Dialogs: agileBPM: TooltipForOriginalTask: Your current task will return once previous steps of the ad hoc workflow are finished. define_WF: - AdhocWorkflowTasks: Workflow Tasks ErrorSelectInvalidAssignee: Assignee is already selected or invalid ListOfSelectedUser: List of selected users ResponsibleDialogHeader: Responsible Users @@ -1385,7 +1373,6 @@ Dialogs: MaxLabelLenght: '35' maxOptionsLength: '20' workflowCreation: - AdhocProcessName: AdHoc Process for Task {0} - {1} FormDefinition: AddCheckboxField: Add new field AddOptionboxField: Append new option @@ -1467,7 +1454,6 @@ Dialogs: Processflow: Process flow Processstep: Process step Processtype: Type of process - ProcesstypeAdHoc: One time ProcesstypeRepeating: Repeatable TaskType: Task Type UntilDaysTooltip: After expiry, the task will be assigned to Everybody and its priority becomes High. @@ -1481,7 +1467,6 @@ Dialogs: ReqMsgGeneric: ' is a required field!' processStep: Process Step Labels: - AdhocWorkflow: Describe your Workflow AppendTask-Explain: The task is added to the sequence after my task. AppendTheTask: Append the task CreateNewDashboard: Create new dashboard @@ -1496,7 +1481,6 @@ Labels: TaskItemDetail: Task Details TaskUser-Explain: Comma separated list of users ViewAllResults: View all results - adhocTaskRequired: You must add at least one new task. disabledUserPrefix: (disabled) title: Self Service Ad-hoc Workflow patterns: @@ -1529,17 +1513,8 @@ Processes: portalHome: Portal Home portalSettingSaved: Portal settings are saved ProcessPages: - selfServiceAdhocProcess: Axon Ivy Self Service selfServiceDescription: 'Self Service Prozess: Launch an ad-hoc Workflow based on a predefined flow pattern.' Texts: - Adhoc-Explain: |+ -

- - Enter your comment and press Send to proceed the workflow. - -

- - AdhocWF-Explain: "

\n\nDefine and launch a Workflow at your fingertip: Select a flow pattern, add some tasks and start the Workflow. \n\n

\n\n

\n\n\n\n

\n\n" Approval-Explain: |+

diff --git a/AxonIvyPortal/portal/cms/cms_de.yaml b/AxonIvyPortal/portal/cms/cms_de.yaml index 6c659b01cdf..1d610ea6f29 100644 --- a/AxonIvyPortal/portal/cms/cms_de.yaml +++ b/AxonIvyPortal/portal/cms/cms_de.yaml @@ -1,6 +1,4 @@ Categories: - AdhocExpressTasks: - name: Adhoc Express Aufgaben CreateExpressWorkflow: name: Express Workflow erstellen ExpressWorkflow: @@ -12,10 +10,7 @@ ch.ivy.addon.portal.generic: statusTabTitle: Vorgangsinformationen OpenTaskTemplate: browserTabClosingWarning: Durch diese Aktion gehen ungespeicherte Änderungen verloren. Möchten Sie wirklich fortfahren? - goToAdhocWarning: Beim starten von Ad-hoc Prozess gehen Ihre nicht gespeicherte Eingaben verloren. Möchten Sie weiter? goToSidestepWarning: Bei starten eines Sidestep Prozesses werden die aktuelle Eingaben nicht gespeichert. Möchten Sie sich trotzdem fortsetzen? - reCreateAdhocWarning: Es gibt bereits einen AdHoc Prozess zu dieser Aufgabe. Möchten Sie einen neuen erstellen? - resultFromAdhocProcess: Ergebnisse aus dem Ad-Hoc Prozess PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -424,7 +419,6 @@ ch.ivy.addon.portalkit.ui.jsf: add: Hinzufügen addDocument: Dokument hinzufügen addNote: Notiz hinzufügen - adhoc: Adhoc allCategories: Alle Kategorien allowPng: Nur das png Format wird unterstützt apply: Anwenden @@ -1125,8 +1119,6 @@ ch.ivy.addon.portalkit.ui.jsf: process: Prozess searchResults: Suchresultate searchResultsFor: '{0} Suchresultate für "{1}"' - sidestep: - addAdhocTask: Ad-hoc Aufgabe hinzufügen statistic: chart: ExpandOrCollapseColumn: Spalten auf-/zuklappen @@ -1319,7 +1311,6 @@ ch.ivy.addon.portalkit.ui.jsf: expiry: Ablauffrist failedDelayValidation: Der Zeitstempel der Aufgabenverzögerung darf kein leerer Wert oder ungültiges Datumsformat sein failedExpiryValidation: Der Ablauf der Aufgabe darf nicht in der Vergangenheit liegen. - noAdhoc: AdHoc nicht verfügbar noDescription: Keine Beschreibung vorhanden noNotes: Keine Notizen processingTime: Bearbeitungszeit @@ -1484,8 +1475,6 @@ Dialogs: FormDefinition: TaskDescription: Bitte definieren Sie das Formular! TaskName: Formulardefinition! - ProcessLoaded: - TaskName: Aufgabe für die Adhoc Konfiguration SaveWorkflow: TaskName: Ein Express Workflowprozess ist gerade am Entstehen TaskDetail: @@ -1524,7 +1513,6 @@ Dialogs: agileBPM: TooltipForOriginalTask: Ihre aktuelle Aufgabe wird wieder auftauchen sobald der Ad hoc Workflow fertiggestellt ist. define_WF: - AdhocWorkflowTasks: Workflow Aufgaben ErrorSelectInvalidAssignee: Der Beauftragte ist bereits ausgewählt oder ungültig ListOfSelectedUser: Liste ausgewählter Benutzer ResponsibleDialogHeader: Verantwortliche Benutzer @@ -1659,7 +1647,6 @@ Dialogs: invalidSizeMessage: Datei zu groß! maximumFileUploadElement: Es gibt bereits ein Datei-Upload-Element workflowCreation: - AdhocProcessName: AdHoc Prozess für Aufgabe {0} - {1} FormDefinition: AddCheckboxField: Neues Feld hinzufügen AddOptionboxField: Neue Option hinzufügen @@ -1741,7 +1728,6 @@ Dialogs: Processflow: Prozessfluss Processstep: Prozessschritt Processtype: Prozessart - ProcesstypeAdHoc: Einmalig ProcesstypeRepeating: Wiederkehrend TaskType: Aufgabentyp UntilDaysTooltip: Nach Ablauf wird die Aufgabe an die Rolle Everybody zugeteilt, und ihre Priorität auf Hoch gesetzt. @@ -1755,7 +1741,6 @@ Dialogs: ReqMsgGeneric: ' ist ein erforderliches Feld!' processStep: Prozessschritt Labels: - AdhocWorkflow: Beschreiben Sie Ihren Workflow AppendTask-Explain: Die Aufgabe wird in der Sequenz nach meiner Aufgabe hinzugefügt. AppendTheTask: Aufgabe anhängen CreateNewDashboard: Neues Dashboard erstellen @@ -1853,7 +1838,6 @@ Labels: TaskUser-Explain: Kommaseparierte Liste von Benutzern ToggleMenu: Menü umschalten ViewAllResults: Alle Ergebnisse anzeigen - adhocTaskRequired: Zumindest eine Aufgabe ist erforderlich. disabledUserPrefix: (inaktiv) title: Self Service Ad-hoc Workflow patterns: @@ -1886,11 +1870,8 @@ Processes: portalHome: Portal Home portalSettingSaved: Portaleinstellungen sind gespeichert ProcessPages: - selfServiceAdhocProcess: Axon Ivy Self Service selfServiceDescription: 'Self Service Prozess: ein ad-hoc Workflow starten' Texts: - Adhoc-Explain: '

Geben Sie Ihren Kommentar ein und drücken Sie Senden um weiterzufahren.

' - AdhocWF-Explain: "

\n\nDefinieren und starten Sie einen Workflow auf Knopfdruck. \n\n

\n\n" Approval-Explain: "

\n\nTreffen Sie Ihre Entscheidung und klicken Sie auf Senden um weiterzufahren. \n\n

\n\n" QA-Explain: |+

diff --git a/AxonIvyPortal/portal/cms/cms_en.yaml b/AxonIvyPortal/portal/cms/cms_en.yaml index cb94c7de8d5..3bff66d18c4 100644 --- a/AxonIvyPortal/portal/cms/cms_en.yaml +++ b/AxonIvyPortal/portal/cms/cms_en.yaml @@ -1,6 +1,4 @@ Categories: - AdhocExpressTasks: - name: Adhoc Express Tasks CreateExpressWorkflow: name: Create Express Workflow ExpressWorkflow: @@ -12,10 +10,7 @@ ch.ivy.addon.portal.generic: statusTabTitle: Case Information OpenTaskTemplate: browserTabClosingWarning: You may lose your work in progress. Do you want to continue? - goToAdhocWarning: You may lose your work in progress and start the Ad-hoc process. Do you want to continue? goToSidestepWarning: Your current modifications will not be saved, when a sidestep process is started directly from a task. Do you want to continue? - reCreateAdhocWarning: There is already an adhoc process for this task, do you want to create another one? - resultFromAdhocProcess: Results from the Ad-Hoc Process PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -423,7 +418,6 @@ ch.ivy.addon.portalkit.ui.jsf: add: Add addDocument: Add document addNote: Add note - adhoc: Adhoc allCategories: All Categories allowPng: Only png types allowed apply: Apply @@ -1127,8 +1121,6 @@ ch.ivy.addon.portalkit.ui.jsf: process: Process searchResults: Search Results searchResultsFor: '{0} search results for "{1}"' - sidestep: - addAdhocTask: Add Ad-hoc Task statistic: chart: ExpandOrCollapseColumn: Expand/Collapse Columns @@ -1321,7 +1313,6 @@ ch.ivy.addon.portalkit.ui.jsf: expiry: Expiry failedDelayValidation: Task delay timestamp cannot be an empty value or invalid date format failedExpiryValidation: Task expiry timestamp cannot be in the past. - noAdhoc: No Adhoc available noDescription: No description noNotes: No notes processingTime: Processing Time @@ -1485,8 +1476,6 @@ Dialogs: FormDefinition: TaskDescription: Please define the form! TaskName: Form creation! - ProcessLoaded: - TaskName: AdHoc Configuration Task SaveWorkflow: TaskName: Express workflow creation in progress TaskDetail: @@ -1525,7 +1514,6 @@ Dialogs: agileBPM: TooltipForOriginalTask: Your current task will return once previous steps of the ad hoc workflow are finished. define_WF: - AdhocWorkflowTasks: Workflow Tasks ErrorSelectInvalidAssignee: Assignee is already selected or invalid ListOfSelectedUser: List of selected users ResponsibleDialogHeader: Responsible Users @@ -1663,7 +1651,6 @@ Dialogs: MaxLabelLenght: '35' maxOptionsLength: '20' workflowCreation: - AdhocProcessName: AdHoc Process for Task {0} - {1} FormDefinition: AddCheckboxField: Add new field AddOptionboxField: Append new option @@ -1745,7 +1732,6 @@ Dialogs: Processflow: Process flow Processstep: Process step Processtype: Type of process - ProcesstypeAdHoc: One time ProcesstypeRepeating: Repeatable TaskType: Task Type UntilDaysTooltip: After expiry, the task will be assigned to Everybody and its priority becomes High. @@ -1759,7 +1745,6 @@ Dialogs: ReqMsgGeneric: ' is a required field!' processStep: Process Step Labels: - AdhocWorkflow: Describe your Workflow AppendTask-Explain: The task is added to the sequence after my task. AppendTheTask: Append the task CreateNewDashboard: Create new dashboard @@ -1857,7 +1842,6 @@ Labels: TaskUser-Explain: Comma separated list of users ToggleMenu: Toggle menu ViewAllResults: View all results - adhocTaskRequired: You must add at least one new task. disabledUserPrefix: (disabled) title: Self Service Ad-hoc Workflow patterns: @@ -1890,17 +1874,8 @@ Processes: portalHome: Portal Home portalSettingSaved: Portal settings are saved ProcessPages: - selfServiceAdhocProcess: Axon Ivy Self Service selfServiceDescription: 'Self Service Prozess: Launch an ad-hoc Workflow based on a predefined flow pattern.' Texts: - Adhoc-Explain: |+ -

- - Enter your comment and press Send to proceed the workflow. - -

- - AdhocWF-Explain: "

\n\nDefine and launch a Workflow at your fingertip: Select a flow pattern, add some tasks and start the Workflow. \n\n

\n\n

\n\n\n\n

\n\n" Approval-Explain: |+

diff --git a/AxonIvyPortal/portal/cms/cms_es.yaml b/AxonIvyPortal/portal/cms/cms_es.yaml index ba59acf895b..53de8c86961 100644 --- a/AxonIvyPortal/portal/cms/cms_es.yaml +++ b/AxonIvyPortal/portal/cms/cms_es.yaml @@ -1,6 +1,4 @@ Categories: - AdhocExpressTasks: - name: Tareas Adhoc de Express CreateExpressWorkflow: name: Crear Express Workflow ExpressWorkflow: @@ -12,10 +10,7 @@ ch.ivy.addon.portal.generic: statusTabTitle: Información del caso OpenTaskTemplate: browserTabClosingWarning: Puede perder su trabajo en progreso. ¿Quiere continuar? - goToAdhocWarning: Puede perder su trabajo en progreso e iniciar el proceso Ad-hoc. ¿Quiere continuar? goToSidestepWarning: Sus modificaciones actuales no se guardarán cuando se inicie un proceso de paso lateral directamente desde una tarea. ¿Quiere continuar? - reCreateAdhocWarning: Ya existe un proceso AdHoc para esta tarea. ¿Desea crear un proceso nuevo? - resultFromAdhocProcess: Resultados del proceso AdHoc PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -425,7 +420,6 @@ ch.ivy.addon.portalkit.ui.jsf: add: Añadir addDocument: Agregar documento addNote: Agregar nota - adhoc: Adhoc allCategories: Todas las categorias allowPng: Solo se permiten los tipos png apply: Aplicar @@ -1124,8 +1118,6 @@ ch.ivy.addon.portalkit.ui.jsf: process: Proceso searchResults: Resultados de la búsqueda searchResultsFor: '{0} resultados de búsqueda para "{1}"' - sidestep: - addAdhocTask: Añadir tarea Ad-hoc statistic: chart: ExpandOrCollapseColumn: Abrir/Cerrar columnas @@ -1321,7 +1313,6 @@ ch.ivy.addon.portalkit.ui.jsf: expiry: Expiración failedDelayValidation: La marca de tiempo del retraso de la tarea no puede ser un valor vacío o un formato de fecha inválido failedExpiryValidation: La fecha de vencimiento de la tarea no puede estar en el pasado. - noAdhoc: Proceso AdHoc no disponible noDescription: Sin descripción noNotes: Sin notas processingTime: Tiempo de procesado @@ -1486,8 +1477,6 @@ Dialogs: FormDefinition: TaskDescription: ¡Por favor define el formulario! TaskName: ¡Creación de formulario! - ProcessLoaded: - TaskName: Tarea para configurar el proceso Adhoc SaveWorkflow: TaskName: El flujo de trabajo express en tramitación TaskDetail: @@ -1526,7 +1515,6 @@ Dialogs: agileBPM: TooltipForOriginalTask: Su tarea actual volverá a evaluarse cuando estén completados los flujos de trabajo ad hoc previos. define_WF: - AdhocWorkflowTasks: Tareas del flujo de trabajo ErrorSelectInvalidAssignee: El destinatario ya está seleccionado o es inválido ListOfSelectedUser: Lista de usuarios seleccionados ResponsibleDialogHeader: Usuarios responsables @@ -1661,7 +1649,6 @@ Dialogs: invalidSizeMessage: ¡El archivo es muy grande! maximumFileUploadElement: Ya existe un elemento de subir documentos workflowCreation: - AdhocProcessName: Proceso adHoc para la tarea {0} - {1} FormDefinition: AddCheckboxField: Agregar nuevo campo AddOptionboxField: Anexar nueva opción @@ -1743,7 +1730,6 @@ Dialogs: Processflow: Flujo de proceso Processstep: Paso del proceso Processtype: Tipo de proceso - ProcesstypeAdHoc: Una vez ProcesstypeRepeating: Recurrente TaskType: Tipo de tarea UntilDaysTooltip: Después de la fecha de caducidad, esta tarea será asignada al grupo "todos" y su prioridad será alta @@ -1757,7 +1743,6 @@ Dialogs: ReqMsgGeneric: ¡Es un campo requerido! processStep: Paso del proceso Labels: - AdhocWorkflow: Describe tu Flujo de Trabajo AppendTask-Explain: La tarea es añadida a la secuencia después de mi tarea. AppendTheTask: Anexar la tarea CreateNewDashboard: Crear un nuevo cuadro de mandos @@ -1855,7 +1840,6 @@ Labels: TaskUser-Explain: Lista de usuario separados por coma ToggleMenu: Menú alternativo ViewAllResults: Ver todos los resultados - adhocTaskRequired: Deberá agregar al menos una tarea. disabledUserPrefix: (inactivo) title: Flujo de trabajo Ad-hoc de auto servicio patterns: @@ -1888,17 +1872,8 @@ Processes: portalHome: Portal Principal portalSettingSaved: Ajustes del portal guardados ProcessPages: - selfServiceAdhocProcess: Auto servicio Axon Ivy selfServiceDescription: 'Proceso de auto servicio: Lanzar un flujo de trabajo ad-hoc basado en un patrón de flujo predefinido' Texts: - Adhoc-Explain: |+ -

- - Introduzca sus comentarios y presione Enviar para proceder al flujo de trabajo. - -

- - AdhocWF-Explain: "

\n\nDefinir y lanzar un flujo de trabajo es muy sencillo: seleccione un patrón de flujo, agregue algunas tareas y empieze el flujo de trabajo. \n\n

\n\n

\n\n\n\n

\n\n" Approval-Explain: |+

diff --git a/AxonIvyPortal/portal/cms/cms_fr.yaml b/AxonIvyPortal/portal/cms/cms_fr.yaml index 9c3ef995f8e..0f0a51ca764 100644 --- a/AxonIvyPortal/portal/cms/cms_fr.yaml +++ b/AxonIvyPortal/portal/cms/cms_fr.yaml @@ -1,6 +1,4 @@ Categories: - AdhocExpressTasks: - name: Tâches Adhoc Express CreateExpressWorkflow: name: Créer un workflow express ExpressWorkflow: @@ -12,10 +10,7 @@ ch.ivy.addon.portal.generic: statusTabTitle: Informations sur le dossier OpenTaskTemplate: browserTabClosingWarning: Votre travail risque d'être perdu. Souhaitez-vous continuer ? - goToAdhocWarning: En démarrant un processus ad hoc, vos données non sauvegardées seront perdues. Voulez-vous continuer? goToSidestepWarning: En démarrant un processus sidestep, vos données non sauvegardées seront perdues. Voulez-vous continuer? - reCreateAdhocWarning: Il existe déjà un processus ad hoc pour cette tâche, voulez-vous en créer un autre ? - resultFromAdhocProcess: Résultats du processus ad hoc PortalName: PortalName: Portal ch.ivy.addon.portalkit.ui.jsf: @@ -422,7 +417,6 @@ ch.ivy.addon.portalkit.ui.jsf: add: Ajouter addDocument: Ajouter un document addNote: Ajouter une note - adhoc: Adhoc allCategories: Toutes les catégories allowPng: Seulement les types .png autorisés apply: Utiliser @@ -1121,8 +1115,6 @@ ch.ivy.addon.portalkit.ui.jsf: process: Processus searchResults: Résultats de la recherche searchResultsFor: '{0} résultats pour "{1}"' - sidestep: - addAdhocTask: Ajouter une Ad-hoc tâche statistic: chart: ExpandOrCollapseColumn: Agrandir/réduire les colonnes @@ -1315,7 +1307,6 @@ ch.ivy.addon.portalkit.ui.jsf: expiry: Expiration failedDelayValidation: L'horodatage du délai des tâches ne peut pas être une valeur vide ou un format de date non valide failedExpiryValidation: L'horodatage de l'expiration des tâches ne peut pas être dans le passé. - noAdhoc: Pas d'Adhoc disponible noDescription: Aucune description noNotes: Aucune note processingTime: Durée de traitement @@ -1480,8 +1471,6 @@ Dialogs: FormDefinition: TaskDescription: Veuillez définir le formulaire ! TaskName: Création du formulaire! - ProcessLoaded: - TaskName: Tâche pour la configuration Adhoc SaveWorkflow: TaskName: Création de workflow express en cours TaskDetail: @@ -1520,7 +1509,6 @@ Dialogs: agileBPM: TooltipForOriginalTask: 'Votre tâche actuelle réapparaîtra dès que le workflow ad hoc sera terminé. ' define_WF: - AdhocWorkflowTasks: Tâches du workflow ErrorSelectInvalidAssignee: Le destinataire est déjà sélectionné ou invalide ListOfSelectedUser: Liste des utilisateurs sélectionnés ResponsibleDialogHeader: Utilisateurs responsables @@ -1655,7 +1643,6 @@ Dialogs: invalidSizeMessage: Le fichier est trop volumineux ! maximumFileUploadElement: Il existe déjà un élément de téléchargement de fichiers workflowCreation: - AdhocProcessName: AdHoc processues pour tâche {0} - {1} FormDefinition: AddCheckboxField: Ajouter un nouveau champs AddOptionboxField: Ajouter une nouvelle option @@ -1737,7 +1724,6 @@ Dialogs: Processflow: Flux du processus Processstep: Étape de processus Processtype: Type de processus - ProcesstypeAdHoc: Une fois ProcesstypeRepeating: Rrépétitif TaskType: Type de tâche UntilDaysTooltip: Après expiration, la tâche sera assignée au role “Everybody” et sa priorité sera passée en “haute”. @@ -1751,7 +1737,6 @@ Dialogs: ReqMsgGeneric: est un champ obligatoire ! processStep: Étape du processus Labels: - AdhocWorkflow: Décrivez votre workflow AppendTask-Explain: La tâche est ajoutée à la séquence après ma tâche. AppendTheTask: Ajouter la tâche CreateNewDashboard: Créer un nouveau tableau de bord @@ -1841,7 +1826,6 @@ Labels: TaskUser-Explain: Liste d’utilisateurs séparés par des virgules ToggleMenu: Menu à bascule ViewAllResults: Voir tous les résultats - adhocTaskRequired: Vous devez ajouter au moins une tâche. disabledUserPrefix: (désactivé) title: Workflow ad hoc Self Service patterns: @@ -1874,11 +1858,8 @@ Processes: portalHome: Page d'accueil portalSettingSaved: Les paramètres du portail sont enregistrés ProcessPages: - selfServiceAdhocProcess: Axon Ivy Self Service selfServiceDescription: 'Processus en libre service: lance un workflow ad hoc basé sur un modèle prédéfini. ' Texts: - Adhoc-Explain: '

Rentrez votre commentaire et cliquez sur Envoyer afin de poursuivre.

' - AdhocWF-Explain: "

\n\nDéfinir et démarrer un workflow en un clic. \n\n

" Approval-Explain: "

\n\nVeuillez choisir et cliquez sur Envoyer pour poursuivre. \n\n

" QA-Explain: |-

diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/SideStepBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/SideStepBean.java index 9eb5f74191e..25c1eda46ad 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/SideStepBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/SideStepBean.java @@ -28,39 +28,38 @@ public class SideStepBean implements Serializable { private List currentSideSteps = new ArrayList<>(); - public void getSideSteps(Long taskId, Long caseId, boolean isAdhocExcluded) { + public void getSideSteps(Long taskId, Long caseId) { currentSideSteps.clear(); if(isNullOrZero(taskId)) { - currentSideSteps.addAll(getSideStepsOfCases(caseId, isAdhocExcluded)); + currentSideSteps.addAll(getSideStepsOfCases(caseId)); } else { - currentSideSteps.addAll(getSideStepsOfTasks(caseId, isAdhocExcluded)); + currentSideSteps.addAll(getSideStepsOfTasks(caseId)); } } - private List getSideStepsOfCases(Long caseId, boolean isAdhocExcluded) { + private List getSideStepsOfCases(Long caseId) { if (sideStepOfCases.containsKey(caseId)) { return sideStepOfCases.get(caseId); } - List sideSteps = getSideStepsByCriteria(caseId, isAdhocExcluded); + List sideSteps = getSideStepsByCriteria(caseId); sideStepOfCases.put(caseId, sideSteps); return sideSteps; } - private List getSideStepsOfTasks(Long caseId, boolean isAdhocExcluded) { + private List getSideStepsOfTasks(Long caseId) { if (sideStepOfTasks.containsKey(caseId)) { return sideStepOfTasks.get(caseId); } - List sideSteps = getSideStepsByCriteria(caseId, isAdhocExcluded); + List sideSteps = getSideStepsByCriteria(caseId); sideStepOfTasks.put(caseId, sideSteps); return sideSteps; } - private List getSideStepsByCriteria(Long caseId, boolean isAdhocExcluded) { + private List getSideStepsByCriteria(Long caseId) { SideStepSearchCriteria criteria = new SideStepSearchCriteria(); criteria.setCaseId(caseId); - criteria.setAdhocExcluded(isAdhocExcluded); Map params = new HashMap<>(); params.put("sideStepSearchCriteria", criteria); @@ -78,11 +77,6 @@ public void startSideStep(IvySideStep sideStep) throws IOException { String url = UrlUtils.formatLinkWithEmbedInFrameParam(sideStep.getStartLink()); FacesContext.getCurrentInstance().getExternalContext().redirect(url); } - - public void startAdhoc(IvySideStep sideStep, long taskId) throws IOException { - String url = sideStep.getStartLink() + "?originalTaskId=" + taskId; - FacesContext.getCurrentInstance().getExternalContext().redirect(url); - } public List getCurrentSideSteps() { return currentSideSteps; diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java index b48abab025e..728b2329944 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/TaskActionBean.java @@ -28,7 +28,6 @@ import ch.ivyteam.ivy.security.restricted.permission.IPermissionRepository; import ch.ivyteam.ivy.workflow.ITask; import ch.ivyteam.ivy.workflow.TaskState; -import ch.ivyteam.ivy.workflow.task.TaskBusinessState; @ManagedBean @ViewScoped @@ -38,7 +37,7 @@ public class TaskActionBean implements Serializable { private boolean isShowResetTask; private boolean isShowReserveTask; private boolean isShowDelegateTask; - //This variable control display of side step and create adhoc + //This variable control display of side step private boolean isShowAdditionalOptions; private boolean isShowDestroyTask; private boolean isShowReadWorkflowEvent; diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java index 97988070ce4..62a72f3a1ad 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/enums/AdditionalProperty.java @@ -5,6 +5,5 @@ public enum AdditionalProperty { CUSTOMIZATION_ADDITIONAL_CASE_DETAILS_PAGE, CASE_BUSINESS_ENTITY_PROPERTY, HIDE, - ADHOC_EXPRESS_TASK, PORTAL_GROUP_CHAT_INFO; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvySideStep.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvySideStep.java index 405f7118b8a..56c17a0b8eb 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvySideStep.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/bo/IvySideStep.java @@ -4,7 +4,6 @@ public class IvySideStep { private String name; private String startLink; - private boolean isAdhoc; public String getName() { return name; @@ -22,12 +21,4 @@ public void setStartLink(String startLink) { this.startLink = startLink; } - public boolean isAdhoc() { - return isAdhoc; - } - - public void setAdhoc(boolean isAdhoc) { - this.isAdhoc = isAdhoc; - } - } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/SideStepSearchCriteria.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/SideStepSearchCriteria.java index f1e2aaf0613..568dec76890 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/SideStepSearchCriteria.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/searchcriteria/SideStepSearchCriteria.java @@ -3,7 +3,6 @@ public class SideStepSearchCriteria { private Long caseId; - private boolean isAdhocExcluded; public Long getCaseId() { return caseId; @@ -16,12 +15,4 @@ public void setCaseId(Long caseId) { public boolean hasCaseId() { return caseId != null && caseId != 0; } - - public boolean isAdhocExcluded() { - return isAdhocExcluded; - } - - public void setAdhocExcluded(boolean isAdhocExcluded) { - this.isAdhocExcluded = isAdhocExcluded; - } } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/SideStepService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/SideStepService.java index 5803e414906..5104de40b6c 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/SideStepService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/ivydata/service/impl/SideStepService.java @@ -7,7 +7,6 @@ import ch.ivy.addon.portalkit.ivydata.bo.IvySideStep; import ch.ivy.addon.portalkit.ivydata.searchcriteria.SideStepSearchCriteria; -import ch.ivy.addon.portalkit.service.ExpressProcessService; import ch.ivyteam.ivy.casemap.runtime.ICaseMapService; import ch.ivyteam.ivy.casemap.runtime.model.IStartableSideStep; import ch.ivyteam.ivy.environment.Ivy; @@ -34,31 +33,11 @@ public List findSideStepsByCriteria(SideStepSearchCriteria criteria List startableSideSteps = getSideSteps(iCase); List ivySideSteps = startableSideSteps.stream().map(this::toIvySideStep).collect(Collectors.toList()); - if (!criteria.isAdhocExcluded()) { - IvySideStep adhocSideStep = createAdhocSideStep(); - if (adhocSideStep != null) { - ivySideSteps.add(adhocSideStep); - } - } - ivySideSteps.sort((s1, s2) -> StringUtils.compareIgnoreCase(s1.getName(), s2.getName())); return ivySideSteps; }); } - private IvySideStep createAdhocSideStep() { - String expressAdhocWFLink = ExpressProcessService.getInstance().findExpressAdhocWFLink(); - if (StringUtils.isBlank(expressAdhocWFLink)) { - return null; - } - - IvySideStep adhoc = new IvySideStep(); - adhoc.setName(Ivy.cms().co("/ch.ivy.addon.portalkit.ui.jsf/sidestep/addAdhocTask")); - adhoc.setStartLink(expressAdhocWFLink); - adhoc.setAdhoc(true); - return adhoc; - } - private IvySideStep toIvySideStep(IStartableSideStep startableSideStep) { IvySideStep ivySideStep = new IvySideStep(); ivySideStep.setName(startableSideStep.getName()); diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/ExpressProcessService.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/ExpressProcessService.java index b89a9b7d204..9aa96d6c59e 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/ExpressProcessService.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/service/ExpressProcessService.java @@ -22,8 +22,6 @@ public class ExpressProcessService extends JsonConfigurationService createHistoriesFromITasks(List tasks, boolean excludeSystemTasks, long selectedCaseId) { - List refineTasks = new ArrayList<>(); - refineTasks = tasks.stream().filter(isNotExpressTask()).collect(Collectors.toList()); if (excludeSystemTasks) { - refineTasks = refineTasks.stream().filter(isNotSystemTaskNote()).collect(Collectors.toList()); + tasks = tasks.stream().filter(isNotSystemTaskNote()).collect(Collectors.toList()); } var histories = new ArrayList(); - CollectionUtils.emptyIfNull(refineTasks).forEach(task -> { + CollectionUtils.emptyIfNull(tasks).forEach(task -> { var history = createHistoryFrom(task); buildDisplayCaseNameForNote(selectedCaseId, task.getCase(), history); histories.add(history); @@ -94,11 +91,9 @@ private List sortHistoriesByTimeStampDescending(List> lis private List createHistoriesFromITasks(List tasks, boolean excludeSystemTasks) { if (excludeSystemTasks) { - return tasks.stream().filter(isNotSystemTaskNote()).filter(isNotExpressTask()) - .map(this::createHistoryFrom).collect(Collectors.toList()); + return tasks.stream().filter(isNotSystemTaskNote()).map(this::createHistoryFrom).collect(Collectors.toList()); } - return tasks.stream().filter(isNotExpressTask()) - .map(this::createHistoryFrom).collect(Collectors.toList()); + return tasks.stream().map(this::createHistoryFrom).collect(Collectors.toList()); } public List createHistoriesFromINotes(List notes, boolean excludeSystemNotes) { @@ -113,10 +108,6 @@ private Predicate isNotSystemTaskNote() { return task -> !StringUtils.equals(task.getWorkerUserName(), ISecurityConstants.SYSTEM_USER_NAME); } - private Predicate isNotExpressTask() { - return task -> task.customFields().stringField(AdditionalProperty.ADHOC_EXPRESS_TASK.toString()).getOrNull() == null; - } - private boolean isNotSystemNote(INote note) { return !StringUtils.equals(note.getWritterName(), ISecurityConstants.SYSTEM_USER_NAME); } diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/ActionsCell.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/ActionsCell.xhtml index f332a864b9d..50a4b5de11b 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/ActionsCell.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/CaseWidget/ActionsCell.xhtml @@ -6,7 +6,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/ActionsCell.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/ActionsCell.xhtml index 483ca59ab07..60ded5ca3ec 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/ActionsCell.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/TaskWidget/ActionsCell.xhtml @@ -4,7 +4,7 @@ xmlns:pe="http://primefaces.org/ui/extensions" xmlns:jsf="http://xmlns.jcp.org/jsf">

- @@ -77,13 +76,10 @@ - + - - - diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItem.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItem.xhtml index 59b816ee496..8e39f8c86cb 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItem.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItem/CaseItem.xhtml @@ -32,7 +32,7 @@ diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml index 30fdc8ae336..a035bbc8d98 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemDetails/CaseItemDetails.xhtml @@ -94,7 +94,6 @@ panelWidgetVar="case-details-action-panel" case="#{case}" inFrame="#{inFrame}" readOnly="#{readOnly}" renderShowDetailAction="false" - isAdhocExcluded="true" onDestroyComplete="PF('destroy-case-dialog').show()" />
diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseAction.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseAction.xhtml index 23f3646cd27..07c26760781 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseAction.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedCases/CaseAction.xhtml @@ -26,7 +26,7 @@ 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 12875a4a2b3..a495338f5fc 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 @@ -100,7 +100,7 @@
+ actionLinkStyleClass="ui-button-text-only" case="#{case}" inFrame="#{cc.attrs.inFrame}" onDestroyComplete="PF('destroy-related-case-dialog').show()"/>
diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/TaskAction.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/TaskAction.xhtml index ab80a1fce1e..04fd68b648c 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/TaskAction.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/CaseItemRelatedTasks/TaskAction.xhtml @@ -27,7 +27,7 @@ - - + @@ -115,18 +114,13 @@ - + - - - - - diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItem/TaskAction.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItem/TaskAction.xhtml index 8aabbd28859..03940abdb6d 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItem/TaskAction.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portalkit/component/TaskItem/TaskAction.xhtml @@ -33,7 +33,7 @@ Date: Wed, 18 Sep 2024 18:13:42 +0700 Subject: [PATCH 04/16] feature/IVYPORTAL-17431-Remove-Express-from-Portal - remove process express widget related --- AxonIvyPortal/portal/cms/cms.yaml | 5 ---- AxonIvyPortal/portal/cms/cms_de.yaml | 5 ---- AxonIvyPortal/portal/cms/cms_en.yaml | 5 ---- AxonIvyPortal/portal/cms/cms_es.yaml | 5 ---- AxonIvyPortal/portal/cms/cms_fr.yaml | 5 ---- .../portalkit/bean/AbstractProcessBean.java | 4 ---- .../bean/CombinedDashboardProcessBean.java | 4 +--- .../bean/CompactDashboardProcessBean.java | 16 ------------- .../bean/CompactProcessWidgetBean.java | 16 ------------- .../portalkit/bean/DashboardProcessBean.java | 4 ---- .../ProcessWidget/CombinedModeProcess.xhtml | 3 +-- .../ProcessWidget/ImageModeProcess.xhtml | 7 +++--- .../ProcessWidget/ProcessImageMode.xhtml | 7 +++--- .../ProcessWidget/ProcessListMode.xhtml | 24 ++----------------- .../ProcessWidget/ProcessWidget.xhtml | 10 -------- .../ProcessWidget/ProcessWidgetDialogs.xhtml | 21 +--------------- .../ProcessGridItem/ProcessGridItem.xhtml | 7 +++--- .../webContent/resources/css/module.css | 24 ------------------- 18 files changed, 14 insertions(+), 158 deletions(-) diff --git a/AxonIvyPortal/portal/cms/cms.yaml b/AxonIvyPortal/portal/cms/cms.yaml index 68ce2e6402f..c5cc687a8c1 100644 --- a/AxonIvyPortal/portal/cms/cms.yaml +++ b/AxonIvyPortal/portal/cms/cms.yaml @@ -853,7 +853,6 @@ ch.ivy.addon.portalkit.ui.jsf: addNewProcess: Add new process addNewProcessDialogHeader: Add new user process backToOverview: Back to overview - deleteExpressWorkflowTooltip: Delete Express Workflow deleteExternalLinkTooltip: Delete external link deleteProcess: Delete Process deleteProcessItemConfirmation: Are you sure you want to delete the following process? @@ -864,9 +863,7 @@ ch.ivy.addon.portalkit.ui.jsf: dialogEditInfoTitle: '{0} Information' dialogHeaderDescription: In this area you can edit some information related to the selected process. dialogHeaderTitle: Edit information for {0} - editExpressWorkflowTooltip: Edit Express Workflow editProcesses: Edit processes - expressWorkflow: Express workflow externalLink: External link externalLinkVisibility: Visibility goTo: 'Go to: ' @@ -1435,7 +1432,6 @@ Dialogs: UserTask: User task UserTaskWithEmail: User task with E-mail WorkflowDefinition: - AbleToStart: Able to Start AddProcessStep: Add process step ChooseAssignee: AddUserOrRole: 'Select a group or a user, please:' @@ -1448,7 +1444,6 @@ Dialogs: EndStep: End FormDefinitionStep: Form definition ProcessNameExists: This process name was used before - ProcessOwner: Process Owner Processdescription: Process description Processdetails: Process properties Processflow: Process flow diff --git a/AxonIvyPortal/portal/cms/cms_de.yaml b/AxonIvyPortal/portal/cms/cms_de.yaml index 1d610ea6f29..b57714553a3 100644 --- a/AxonIvyPortal/portal/cms/cms_de.yaml +++ b/AxonIvyPortal/portal/cms/cms_de.yaml @@ -1069,7 +1069,6 @@ ch.ivy.addon.portalkit.ui.jsf: addNewProcess: Prozess hinzufügen addNewProcessDialogHeader: Neuen Prozess hinzufügen backToOverview: Zurück zur Übersicht - deleteExpressWorkflowTooltip: Express Workflow entfernen deleteExternalLinkTooltip: Externen Link löschen deleteProcess: Prozess löschen deleteProcessItemConfirmation: Sind sie sicher das Sie folgenden Prozess löschen wollen? @@ -1080,9 +1079,7 @@ ch.ivy.addon.portalkit.ui.jsf: dialogEditInfoTitle: '{0} Informationen' dialogHeaderDescription: In diesem Bereich können Sie einige Informationen bearbeiten, die sich auf den ausgewählten Prozess beziehen. dialogHeaderTitle: Informationen bearbeiten für {0} - editExpressWorkflowTooltip: Express Workflow bearbeiten editProcesses: Prozesse bearbeiten - expressWorkflow: Express Workflow externalLink: Externer Link externalLinkVisibility: Sichtbarkeit goTo: 'Gehe zu: ' @@ -1709,7 +1706,6 @@ Dialogs: UserTask: Aufgabe UserTaskWithEmail: Aufgabe mit E-Mail Schritt WorkflowDefinition: - AbleToStart: Startberechtigung AddProcessStep: Prozessschritt hinzufügen ChooseAssignee: AddUserOrRole: 'Wählen Sie eine Gruppe oder Benutzer aus, bitte:' @@ -1722,7 +1718,6 @@ Dialogs: EndStep: Ende FormDefinitionStep: Formular-definition ProcessNameExists: Dieser Prozessname wurde bereits benutzt - ProcessOwner: Prozessverantwortliche Processdescription: Prozessbeschreibung Processdetails: Prozesseigenschaften Processflow: Prozessfluss diff --git a/AxonIvyPortal/portal/cms/cms_en.yaml b/AxonIvyPortal/portal/cms/cms_en.yaml index 3bff66d18c4..b615d91251f 100644 --- a/AxonIvyPortal/portal/cms/cms_en.yaml +++ b/AxonIvyPortal/portal/cms/cms_en.yaml @@ -1071,7 +1071,6 @@ ch.ivy.addon.portalkit.ui.jsf: addNewProcess: Add new process addNewProcessDialogHeader: Add new user process backToOverview: Back to overview - deleteExpressWorkflowTooltip: Delete Express Workflow deleteExternalLinkTooltip: Delete external link deleteProcess: Delete Process deleteProcessItemConfirmation: Are you sure you want to delete the following process? @@ -1082,9 +1081,7 @@ ch.ivy.addon.portalkit.ui.jsf: dialogEditInfoTitle: '{0} Information' dialogHeaderDescription: In this area you can edit some information related to the selected process. dialogHeaderTitle: Edit information for {0} - editExpressWorkflowTooltip: Edit Express Workflow editProcesses: Edit processes - expressWorkflow: Express workflow externalLink: External link externalLinkVisibility: Visibility goTo: 'Go to: ' @@ -1713,7 +1710,6 @@ Dialogs: UserTask: User task UserTaskWithEmail: User task with E-mail WorkflowDefinition: - AbleToStart: Able to Start AddProcessStep: Add process step ChooseAssignee: AddUserOrRole: 'Select a group or a user, please:' @@ -1726,7 +1722,6 @@ Dialogs: EndStep: End FormDefinitionStep: Form definition ProcessNameExists: This process name was used before - ProcessOwner: Process Owner Processdescription: Process description Processdetails: Process properties Processflow: Process flow diff --git a/AxonIvyPortal/portal/cms/cms_es.yaml b/AxonIvyPortal/portal/cms/cms_es.yaml index 53de8c86961..fd03c59af5d 100644 --- a/AxonIvyPortal/portal/cms/cms_es.yaml +++ b/AxonIvyPortal/portal/cms/cms_es.yaml @@ -1068,7 +1068,6 @@ ch.ivy.addon.portalkit.ui.jsf: addNewProcess: Agregar nuevo proceso addNewProcessDialogHeader: Agregar nuevo proceso de usuario backToOverview: De regreso a la visión general - deleteExpressWorkflowTooltip: Eliminar Express Workflow deleteExternalLinkTooltip: Borrar enlace externo deleteProcess: Eliminar proceso deleteProcessItemConfirmation: ¿Seguro que quiere eliminar el siguiente proceso? @@ -1079,9 +1078,7 @@ ch.ivy.addon.portalkit.ui.jsf: dialogEditInfoTitle: '{0} Información' dialogHeaderDescription: Aqui puede configurar parámetros relacionados con el proceso seleccionado. dialogHeaderTitle: Editar información para {0} - editExpressWorkflowTooltip: Editar Express Workflow editProcesses: Editar procesos - expressWorkflow: Workflow Express externalLink: Enlace externo externalLinkVisibility: Visibilidad goTo: 'Ir a:' @@ -1711,7 +1708,6 @@ Dialogs: UserTask: Tarea UserTaskWithEmail: 'Tarea con E-Mail ' WorkflowDefinition: - AbleToStart: Permiso de ejecución AddProcessStep: Agregar paso de proceso ChooseAssignee: AddUserOrRole: 'Selecione un grupo o usuario porfavor:' @@ -1724,7 +1720,6 @@ Dialogs: EndStep: Terminar FormDefinitionStep: Definición de formulario ProcessNameExists: Este nombre para el flujo de trabajo ya ha sido seleccionado - ProcessOwner: Responsable del proceso Processdescription: Descripción de proceso Processdetails: Propiedades del proceso Processflow: Flujo de proceso diff --git a/AxonIvyPortal/portal/cms/cms_fr.yaml b/AxonIvyPortal/portal/cms/cms_fr.yaml index 0f0a51ca764..f439c1a6d1c 100644 --- a/AxonIvyPortal/portal/cms/cms_fr.yaml +++ b/AxonIvyPortal/portal/cms/cms_fr.yaml @@ -1065,7 +1065,6 @@ ch.ivy.addon.portalkit.ui.jsf: addNewProcess: Ajouter un processus addNewProcessDialogHeader: Ajouter un nouveau processus utilisateur backToOverview: Retour à l'aperçu - deleteExpressWorkflowTooltip: Supprimer le Workflow Express deleteExternalLinkTooltip: Supprimer le lien externe deleteProcess: Supprimer processus deleteProcessItemConfirmation: Êtes-vous sûr de vouloir détruire le processus suivant ? @@ -1076,9 +1075,7 @@ ch.ivy.addon.portalkit.ui.jsf: dialogEditInfoTitle: '{0} Informations' dialogHeaderDescription: Dans cette zone, vous pouvez modifier certaines informations relatives au processus sélectionné. dialogHeaderTitle: Modifier les informations pour {0} - editExpressWorkflowTooltip: Modifier le Workflow Express editProcesses: Modifier des processus - expressWorkflow: Workflow Express externalLink: lien externe externalLinkVisibility: Visibilité goTo: 'Aller à:' @@ -1705,7 +1702,6 @@ Dialogs: UserTask: Tâche UserTaskWithEmail: Tâche avec email WorkflowDefinition: - AbleToStart: Capable de commencer AddProcessStep: Ajouter une étape de processus ChooseAssignee: AddUserOrRole: 'Veuillez sélectionner un groupe ou un utilisateur :' @@ -1718,7 +1714,6 @@ Dialogs: EndStep: Fin FormDefinitionStep: Définition du formulaire ProcessNameExists: Ce nom de processus a été utilisé avant - ProcessOwner: Propriétaire du processus Processdescription: Description du processus Processdetails: Propriétés du processus Processflow: Flux du processus diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/AbstractProcessBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/AbstractProcessBean.java index 9e617eed6b3..0654185ea5c 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/AbstractProcessBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/AbstractProcessBean.java @@ -113,10 +113,6 @@ public boolean isIvyProcess(Process process) { return !Objects.isNull(process) && process.getType() == ProcessType.IVY_PROCESS; } - public boolean isExpressProcess(Process process) { - return !Objects.isNull(process) && process.getType() == ProcessType.EXPRESS_PROCESS; - } - public boolean isExternalLink(Process process) { return !Objects.isNull(process) && process.getType() == ProcessType.EXTERNAL_LINK; } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CombinedDashboardProcessBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CombinedDashboardProcessBean.java index 9e8e721ae9e..d7750c87756 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CombinedDashboardProcessBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CombinedDashboardProcessBean.java @@ -77,9 +77,7 @@ public void updateProcessStartId() { if (CollectionUtils.isEmpty(startableProcessStarts)) { initStartableProcessStarts(); } - - if (getWidget() != null && getWidget().getProcess() != null - && getWidget().getProcess().getType() != ProcessType.EXPRESS_PROCESS) { + if (getWidget() != null && getWidget().getProcess() != null) { String startLink = getWidget().getProcess().getStartLink(); IProcessStart processStart = startableProcessStarts.stream() .filter(process -> process.getLink().getRelative().equals(startLink)).findFirst().get(); diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactDashboardProcessBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactDashboardProcessBean.java index e906ebc84e7..752d065ccc8 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactDashboardProcessBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactDashboardProcessBean.java @@ -15,7 +15,6 @@ import javax.faces.bean.ViewScoped; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import ch.ivy.addon.portalkit.dto.dashboard.ColumnModel; import ch.ivy.addon.portalkit.dto.dashboard.CompactProcessDashboardWidget; @@ -24,7 +23,6 @@ import ch.ivy.addon.portalkit.enums.DashboardStandardProcessColumn; import ch.ivy.addon.portalkit.enums.ProcessSorting; import ch.ivy.addon.portalkit.jsf.ManagedBeans; -import ch.ivy.addon.portalkit.service.ExpressProcessService; import ch.ivy.addon.portalkit.util.DashboardWidgetUtils; @ManagedBean @@ -35,7 +33,6 @@ public class CompactDashboardProcessBean private static final long serialVersionUID = 1L; private List portalCompactProcesses; private DashboardProcessBean dashboardProcessBean; - private static String expressStartLink; public CompactProcessDashboardWidget getWidget() { return (CompactProcessDashboardWidget) dashboardProcessBean.getWidget(); @@ -161,12 +158,6 @@ public void startProcessWithCompactMode(DashboardProcess process) throws IOExcep return; } - if (dashboardProcessBean.isExpressProcess(process) && StringUtils.isNotBlank(process.getId()) - && StringUtils.isNotBlank(getExpressStartLink())) { - dashboardProcessBean.redirectToLink(getExpressStartLink() + "?workflowID=" + process.getId(), false); - return; - } - dashboardProcessBean.redirectToLink(link, true); } @@ -204,13 +195,6 @@ public void onChangeApplications(List applications) { dashboardProcessBean.setApplications(applications); } - private static String getExpressStartLink() { - if (StringUtils.isEmpty(expressStartLink)) { - expressStartLink = ExpressProcessService.getInstance().findExpressWorkflowStartLink(); - } - return expressStartLink; - } - public ProcessSorting[] getProcessSorting() { return ProcessSorting.values(); } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactProcessWidgetBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactProcessWidgetBean.java index de3bd3d43cf..f69ff1aba7a 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactProcessWidgetBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/CompactProcessWidgetBean.java @@ -9,13 +9,10 @@ import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; -import org.apache.commons.lang3.StringUtils; - import com.axonivy.portal.service.GlobalSearchService; import ch.ivy.addon.portalkit.configuration.UserProcess; import ch.ivy.addon.portalkit.enums.ProcessType; -import ch.ivy.addon.portalkit.service.ExpressProcessService; import ch.ivy.addon.portalkit.util.PermissionUtils; @ManagedBean @@ -42,15 +39,6 @@ public void startProcess(UserProcess userProcess) throws IOException { return; } - if (isExpressProcess(userProcess) && StringUtils.isNotBlank(userProcess.getProcessId())) { - String expressStartLink = ExpressProcessService.getInstance().findExpressWorkflowStartLink(); - if (StringUtils.isNotBlank(expressStartLink)) { - FacesContext.getCurrentInstance().getExternalContext() - .redirect(expressStartLink + "?workflowID=" + userProcess.getProcessId()); - return; - } - } - link += link.contains("?") ? "&" : "?"; // Put the "embedInIFrame" param to the process link to open it in the DefaultFramePage process // Then this process will open task in IFrame or not based on its "embedInIFrame" String custom field @@ -77,10 +65,6 @@ private boolean isExternalLink(UserProcess process) { return process != null && process.getProcessType() == ProcessType.EXTERNAL_LINK; } - private boolean isExpressProcess(UserProcess process) { - return process != null && process.getProcessType() == ProcessType.EXPRESS_PROCESS; - } - private boolean isEnableGlobalSearchScopeProcesses() { return GlobalSearchService.getInstance().isShowGlobalSearchByProcesses(); } diff --git a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/DashboardProcessBean.java b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/DashboardProcessBean.java index 594ce5f439b..053a54ba9f8 100644 --- a/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/DashboardProcessBean.java +++ b/AxonIvyPortal/portal/src/ch/ivy/addon/portalkit/bean/DashboardProcessBean.java @@ -110,10 +110,6 @@ public void setDisplayModes(List displayModes) { this.displayModes = displayModes; } - public boolean isExpressProcess(DashboardProcess process) { - return process != null && process.getType() == ProcessType.EXPRESS_PROCESS; - } - public boolean isExternalLink(DashboardProcess process) { return process != null && process.getType() == ProcessType.EXTERNAL_LINK; } diff --git a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml index 403b10fda54..2d4645d8aad 100644 --- a/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml +++ b/AxonIvyPortal/portal/src_hd/ch/ivy/addon/portal/generic/dashboard/component/ProcessWidget/CombinedModeProcess.xhtml @@ -36,10 +36,9 @@ - -