/* 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. */ /* * Due date */ 'use strict'; angular.module('flowableModeler').controller('BpmnEditorDueDateCtrl', [ '$scope', '$modal', function($scope, $modal) { // Config for the modal window var opts = { template: 'editor-app/configuration/properties/duedate-popup.html?version=' + Date.now(), scope: $scope }; // Open the dialog _internalCreateModal(opts, $modal, $scope); }]); angular.module('flowableModeler').controller('BpmnEditorDueDatePopupCtrl', [ '$rootScope', '$scope', '$translate', function($rootScope, $scope, $translate) { // Put json representing assignment on scope if ($scope.property.value !== undefined && $scope.property.value !== null) { if ($scope.property.value.duedate !== undefined && $scope.property.value.duedate !== null) { $scope.popup = {'duedate': $scope.property.value.duedate}; } else if ($scope.property.value.duedateExpression !== undefined && $scope.property.value.duedateExpression !== null) { $scope.popup = {'duedateExpression': $scope.property.value.duedateExpression}; } else { $scope.popup = {'duedateExpression': $scope.property.value}; } } else { $scope.popup = {}; } $scope.taskDueDateOptions = [ {id: "none", title: $translate.instant('PROPERTY.DUEDATE.TASK-DUE-DATE-OPTIONS.NO-DUEDATE')}, {id: "expression", title: $translate.instant('PROPERTY.DUEDATE.TASK-DUE-DATE-OPTIONS.EXPRESSION')}, {id: "static", title: $translate.instant('PROPERTY.DUEDATE.TASK-DUE-DATE-OPTIONS.STATIC')}, {id: "field", title: $translate.instant('PROPERTY.DUEDATE.TASK-DUE-DATE-OPTIONS.FIELD')} ]; if (!$scope.popup.duedate && !$scope.popup.duedateExpression) { // Default, first time opening the popup $scope.popup.selectedDueDateOption = $scope.taskDueDateOptions[0].id; } else if (!$scope.popup.duedate) { $scope.popup.selectedDueDateOption = $scope.taskDueDateOptions[1].id; } else { if ($scope.popup.duedate.fixed) { $scope.popup.selectedDueDateOption = $scope.taskDueDateOptions[2].id; } else if ($scope.popup.duedate.field) { $scope.popup.selectedDueDateOption = $scope.taskDueDateOptions[3].id; } else { $scope.popup.selectedDueDateOption = $scope.taskDueDateOptions[0].id; } } $scope.dueDateOptionChanged = function() { if ($scope.popup.selectedDueDateOption === 'expression') { $scope.popup.duedate = undefined; } else if ($scope.popup.selectedDueDateOption === 'none') { $scope.popup.duedate = undefined; $scope.popup.duedateExpression = undefined; } else if ($scope.popup.selectedDueDateOption === 'static') { $scope.popup.duedate = {'fixed': {}}; $scope.popup.duedateExpression = undefined; } else if ($scope.popup.selectedDueDateOption === 'field') { $scope.popup.duedate = {'field': {}}; $scope.popup.duedateExpression = undefined; } }; $scope.setAddCalculationType = function() { $scope.popup.duedate.field.taskDueDateCalculationType = 'add'; }; $scope.setSubtractCalculationType = function() { $scope.popup.duedate.field.taskDueDateCalculationType = 'subtract'; }; $scope.allSteps = EDITOR.UTIL.collectSortedElementsFromPrecedingElements($scope.selectedShape); $scope.save = function () { $scope.property.value = {}; if ($scope.popup.duedate) { $scope.property.value.duedate = $scope.popup.duedate; } else if ($scope.popup.duedateExpression) { $scope.property.value.duedateExpression = $scope.popup.duedateExpression; } else { $scope.property.value = ''; } $scope.updatePropertyInModel($scope.property); $scope.close(); }; // Close button handler $scope.close = function() { $scope.property.mode = 'read'; $scope.$hide(); }; }]);