/* * Activiti Modeler component part of the Activiti project * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* * String controller */ var KisBpmStringPropertyCtrl = [ '$scope', function ($scope) { $scope.shapeId = $scope.selectedShape.id; $scope.valueFlushed = false; /** Handler called when input field is blurred */ $scope.inputBlurred = function() { $scope.valueFlushed = true; if ($scope.property.value) { $scope.property.value = $scope.property.value.replace(/(<([^>]+)>)/ig,""); } $scope.updatePropertyInModel($scope.property); }; $scope.enterPressed = function(keyEvent) { if (keyEvent && keyEvent.which === 13) { keyEvent.preventDefault(); $scope.inputBlurred(); // we want to do the same as if the user would blur the input field } }; $scope.$on('$destroy', function controllerDestroyed() { if(!$scope.valueFlushed) { if ($scope.property.value) { $scope.property.value = $scope.property.value.replace(/(<([^>]+)>)/ig,""); } $scope.updatePropertyInModel($scope.property, $scope.shapeId); } }); }]; /* * Boolean controller */ var KisBpmBooleanPropertyCtrl = ['$scope', function ($scope) { $scope.changeValue = function() { if ($scope.property.key === 'oryx-defaultflow' && $scope.property.value) { var selectedShape = $scope.selectedShape; if (selectedShape) { var incomingNodes = selectedShape.getIncomingShapes(); if (incomingNodes && incomingNodes.length > 0) { // get first node, since there can be only one for a sequence flow var rootNode = incomingNodes[0]; var flows = rootNode.getOutgoingShapes(); if (flows && flows.length > 1) { // in case there are more flows, check if another flow is already defined as default for (var i = 0; i < flows.length; i++) { if (flows[i].resourceId != selectedShape.resourceId) { var defaultFlowProp = flows[i].properties['oryx-defaultflow']; if (defaultFlowProp) { flows[i].setProperty('oryx-defaultflow', false, true); } } } } } } } $scope.updatePropertyInModel($scope.property); }; }]; /* * Text controller */ var KisBpmTextPropertyCtrl = [ '$scope', '$modal', function($scope, $modal) { var opts = { template: 'editor-app/configuration/properties/text-popup.html?version=' + Date.now(), scope: $scope }; // Open the dialog $modal(opts); }]; var KisBpmTextPropertyPopupCtrl = ['$scope', function($scope) { $scope.save = function() { $scope.updatePropertyInModel($scope.property); $scope.close(); }; $scope.close = function() { $scope.property.mode = 'read'; $scope.$hide(); }; }];