You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
3.0 KiB
82 lines
3.0 KiB
/* 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<planModel.children.length; i++) {
|
|
toVisit.push(planModel.children[i]);
|
|
}
|
|
|
|
while (toVisit.length > 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<child.children.length; i++) {
|
|
toVisit.push(child.children[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var simplifiedPlanItems = [];
|
|
for (var i=0; i<planItems.length; i++) {
|
|
simplifiedPlanItems.push({ id: planItems[i].resourceId, name: planItems[i].properties.get('oryx-name') });
|
|
}
|
|
|
|
if (simplifiedPlanItems.length > 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);
|
|
};
|
|
}]); |