diff --git a/mdw-hub/web/js/workflow/processes.js b/mdw-hub/web/js/workflow/processes.js index f6b56a20fa..93cefdbb65 100644 --- a/mdw-hub/web/js/workflow/processes.js +++ b/mdw-hub/web/js/workflow/processes.js @@ -6,40 +6,60 @@ processMod.controller('ProcessesController', ['$scope', '$http', 'mdw', 'util', 'PROCESS_STATUSES', function($scope, $http, mdw, util, PROCESS_STATUSES) { - // definitionId and processSpec passed in query params - // (from mdw-studio, for example) - var definitionIdParam = util.urlParams().definitionId; - var processSpecParam = util.urlParams().processSpec; - if (definitionIdParam && processSpecParam) { + $scope.getFilter = function() { var procFilter = sessionStorage.getItem('processFilter'); if (procFilter) procFilter = JSON.parse(procFilter); else procFilter = {}; + return procFilter; + }; + + $scope.setFilter = function(procFilter) { + if (procFilter) { + sessionStorage.setItem('processFilter', JSON.stringify(procFilter)); + } + }; + + $scope.resetFilter = function() { + $scope.processFilter = { + master: true, + status: '[Active]', + sort: 'startDate', + descending: true, + values: null + }; + }; + + // definitionId and processSpec passed in query params + // (from mdw-studio, for example) + var definitionIdParam = util.urlParams().definitionId; + var processSpecParam = util.urlParams().processSpec; + var valuesParam = util.urlParams().values; + var procFilter = $scope.getFilter(); + if (definitionIdParam && processSpecParam) { procFilter.processId = definitionIdParam; procFilter.master = false; procFilter.status = '[Any]'; - procFilter.sort = 'startDate'; - procFilter.descending = true; procFilter.values = null; - sessionStorage.setItem('processFilter', JSON.stringify(procFilter)); + $scope.setFilter(procFilter); if (processSpecParam.endsWith('.proc')) processSpecParam = processSpecParam.substring(0, processSpecParam.length - 5); sessionStorage.setItem('processSpec', processSpecParam); + if (!valuesParam) { // otherwise wait redirect after setting values + window.location = mdw.roots.hub + '#/workflow/processes'; + return; + } + } + if (valuesParam) { + procFilter.master = false; + procFilter.status = '[Any]'; + procFilter.values = valuesParam; + $scope.setFilter(procFilter); window.location = mdw.roots.hub + '#/workflow/processes'; return; } - $scope.resetFilter = function() { - $scope.processFilter = { - master: true, - status: '[Active]', - sort: 'startDate', - descending: true, - values: null - }; - }; - // two-way bound to/from directive $scope.processList = {};