Skip to content

Commit

Permalink
document actions: introduce disabled param
Browse files Browse the repository at this point in the history
  • Loading branch information
teosarca committed Oct 23, 2017
1 parent 6f23f30 commit bc087a1
Showing 1 changed file with 22 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -620,32 +622,46 @@ public JSONDocumentActionsList getDocumentActions(
.map(documentCollection::getTableRecordReference)
.collect(ImmutableSet.toImmutableSet());

return getDocumentActions(documentPath, selectedIncludedRecords);
return getDocumentActions(documentPath, selectedIncludedRecords, returnDisabled);
}

@GetMapping("/{windowId}/{documentId}/{tabId}/{rowId}/actions")
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<TableRecordReference> selectedIncludedRecords = ImmutableSet.of();
return getDocumentActions(documentPath, selectedIncludedRecords);
return getDocumentActions(documentPath, selectedIncludedRecords, returnDisabled);
}

private JSONDocumentActionsList getDocumentActions(final DocumentPath documentPath, final Set<TableRecordReference> selectedIncludedRecords)
private JSONDocumentActionsList getDocumentActions(
final DocumentPath documentPath,
final Set<TableRecordReference> selectedIncludedRecords,
final boolean returnDisabled)
{
userSession.assertLoggedIn();

final Predicate<WebuiRelatedProcessDescriptor> 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()));
});
}
Expand Down

0 comments on commit bc087a1

Please sign in to comment.