/* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ angular.module('flowableModeler').controller('FlowablePlanItemDropdownCtrl', [ '$scope', function($scope) { // Find all planitems var selectedShape = $scope.selectedShape; if (selectedShape) { // Go up in parent chain until plan model is found var planModel; var parent = selectedShape.parent; if (parent) { while (planModel === undefined && parent !== null && parent !== undefined) { if (parent.resourceId !== null && parent.resourceId !== undefined && 'casePlanModel' === parent.resourceId) { planModel = parent; } else { parent = parent.parent; } } } var planItems = []; if (planModel !== null && planModel !== undefined) { var toVisit = []; for (var i=0; i 0) { var child = toVisit.pop(); if (typeof child.getStencil === 'function' && (child.getStencil()._jsonStencil.groups.indexOf('Activities') >= 0 || (child.getStencil()._jsonStencil.title === 'Stage') )) { planItems.push(child); } if (child.children !== null && child.children !== undefined) { for (var i=0; i 0) { simplifiedPlanItems.sort(function(a,b) { if(a.name < b.name) { return -1; } else if (a.name > b.name) { return 1; } else { return 0; } }); } $scope.planItems = simplifiedPlanItems; } if ($scope.property.value == undefined && $scope.property.value == null) { $scope.property.value = ''; } $scope.planItemChanged = function() { $scope.updatePropertyInModel($scope.property); }; }]);