From bc087a1c9139384defd01847be4172f9cff3040f Mon Sep 17 00:00:00 2001 From: Teo Sarca Date: Mon, 23 Oct 2017 19:14:34 +0300 Subject: [PATCH] document actions: introduce disabled param https://github.com/metasfresh/metasfresh-webui-api/issues/644 --- .../controller/WindowRestController.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/metas/ui/web/window/controller/WindowRestController.java b/src/main/java/de/metas/ui/web/window/controller/WindowRestController.java index fe8762004..61510b018 100644 --- a/src/main/java/de/metas/ui/web/window/controller/WindowRestController.java +++ b/src/main/java/de/metas/ui/web/window/controller/WindowRestController.java @@ -2,6 +2,7 @@ import java.util.List; import java.util.Set; +import java.util.function.Predicate; import org.adempiere.ad.table.api.IADTableDAO; import org.adempiere.exceptions.AdempiereException; @@ -608,7 +609,8 @@ public JSONDocumentActionsList getDocumentActions( @PathVariable("windowId") final String windowIdStr, @PathVariable("documentId") final String documentId, @RequestParam(name = "selectedTabId", required = false) final String selectedTabIdStr, - @RequestParam(name = "selectedRowIds", required = false) final String selectedRowIdsAsStr) + @RequestParam(name = "selectedRowIds", required = false) final String selectedRowIdsAsStr, + @RequestParam(name = "disabled", defaultValue = "false") final boolean returnDisabled) { final WindowId windowId = WindowId.fromJson(windowIdStr); final DocumentPath documentPath = DocumentPath.rootDocumentPath(windowId, documentId); @@ -620,7 +622,7 @@ public JSONDocumentActionsList getDocumentActions( .map(documentCollection::getTableRecordReference) .collect(ImmutableSet.toImmutableSet()); - return getDocumentActions(documentPath, selectedIncludedRecords); + return getDocumentActions(documentPath, selectedIncludedRecords, returnDisabled); } @GetMapping("/{windowId}/{documentId}/{tabId}/{rowId}/actions") @@ -628,24 +630,38 @@ public JSONDocumentActionsList getIncludedDocumentActions( @PathVariable("windowId") final String windowIdStr, @PathVariable("documentId") final String documentIdStr, @PathVariable("tabId") final String tabIdStr, - @PathVariable("rowId") final String rowIdStr) + @PathVariable("rowId") final String rowIdStr, + @RequestParam(name = "disabled", defaultValue = "false") final boolean returnDisabled) { final WindowId windowId = WindowId.fromJson(windowIdStr); final DocumentPath documentPath = DocumentPath.includedDocumentPath(windowId, documentIdStr, tabIdStr, rowIdStr); final Set selectedIncludedRecords = ImmutableSet.of(); - return getDocumentActions(documentPath, selectedIncludedRecords); + return getDocumentActions(documentPath, selectedIncludedRecords, returnDisabled); } - private JSONDocumentActionsList getDocumentActions(final DocumentPath documentPath, final Set selectedIncludedRecords) + private JSONDocumentActionsList getDocumentActions( + final DocumentPath documentPath, + final Set selectedIncludedRecords, + final boolean returnDisabled) { userSession.assertLoggedIn(); + final Predicate filter; + if (returnDisabled) + { + filter = WebuiRelatedProcessDescriptor::isEnabledOrNotSilent; + } + else + { + filter = WebuiRelatedProcessDescriptor::isEnabled; + } + final IDocumentChangesCollector changesCollector = NullDocumentChangesCollector.instance; return documentCollection.forDocumentReadonly(documentPath, changesCollector, document -> { final DocumentPreconditionsAsContext preconditionsContext = DocumentPreconditionsAsContext.of(document, selectedIncludedRecords); return processRestController.streamDocumentRelatedProcesses(preconditionsContext) - .filter(WebuiRelatedProcessDescriptor::isEnabledOrNotSilent) + .filter(filter) .collect(JSONDocumentActionsList.collect(newJSONOptions().build())); }); }