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.
		
		
		
		
			
				
					508 lines
				
				18 KiB
			
		
		
			
		
	
	
					508 lines
				
				18 KiB
			| 
								 
											1 year ago
										 
									 | 
							
								/* Copyright 2005-2015 Alfresco Software, Ltd.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * 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.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('DecisionsController', ['$rootScope', '$scope', '$translate', '$http', '$timeout', '$location', '$modal', 'modelType', function ($rootScope, $scope, $translate, $http, $timeout, $location, $modal, modelType) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $rootScope.setMainPageById('decisions');
							 | 
						||
| 
								 | 
							
								        $rootScope.decisionTableItems = undefined;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // get latest thumbnails
							 | 
						||
| 
								 | 
							
								        $scope.imageVersion = Date.now();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.model = {
							 | 
						||
| 
								 | 
							
								            filters: [
							 | 
						||
| 
								 | 
							
								                {id: 'decisionTables', labelKey: 'DECISION-TABLES', type: 'decision-tables'},
							 | 
						||
| 
								 | 
							
								                {id: 'decisionServices', labelKey: 'DECISION-SERVICES', type: 'decision-services'}
							 | 
						||
| 
								 | 
							
								            ],
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            sorts: [
							 | 
						||
| 
								 | 
							
								                {id: 'modifiedDesc', labelKey: 'MODIFIED-DESC'},
							 | 
						||
| 
								 | 
							
								                {id: 'modifiedAsc', labelKey: 'MODIFIED-ASC'},
							 | 
						||
| 
								 | 
							
								                {id: 'nameAsc', labelKey: 'NAME-ASC'},
							 | 
						||
| 
								 | 
							
								                {id: 'nameDesc', labelKey: 'NAME-DESC'}
							 | 
						||
| 
								 | 
							
								            ]
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (modelType && modelType === 6) {
							 | 
						||
| 
								 | 
							
								            $scope.model.activeFilter = $scope.model.filters[1];
							 | 
						||
| 
								 | 
							
								            $scope.model.activeSort = $scope.model.sorts[0];
							 | 
						||
| 
								 | 
							
								            $rootScope.decisionFilter = $scope.model.activeFilter;
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $scope.model.activeFilter = $scope.model.filters[0];
							 | 
						||
| 
								 | 
							
								            $scope.model.activeSort = $scope.model.sorts[0];
							 | 
						||
| 
								 | 
							
								            $rootScope.decisionFilter = $scope.model.activeFilter;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.activateSort = function (sort) {
							 | 
						||
| 
								 | 
							
								            $scope.model.activeSort = sort;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.importDecisionTable = function () {
							 | 
						||
| 
								 | 
							
								            _internalCreateModal({
							 | 
						||
| 
								 | 
							
								                template: 'views/popup/decision-table-import.html?version=' + Date.now()
							 | 
						||
| 
								 | 
							
								            }, $modal, $scope);
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.importDecisionService = function () {
							 | 
						||
| 
								 | 
							
								            _internalCreateModal({
							 | 
						||
| 
								 | 
							
								                template: 'views/popup/decision-service-import.html?version=' + Date.now()
							 | 
						||
| 
								 | 
							
								            }, $modal, $scope);
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.loadDecisionTables = function () {
							 | 
						||
| 
								 | 
							
								            $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var params = {
							 | 
						||
| 
								 | 
							
								                filter: $scope.model.activeFilter.id,
							 | 
						||
| 
								 | 
							
								                sort: $scope.model.activeSort.id,
							 | 
						||
| 
								 | 
							
								                modelType: 4
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if ($scope.model.filterText && $scope.model.filterText != '') {
							 | 
						||
| 
								 | 
							
								                params.filterText = $scope.model.filterText;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $http({method: 'GET', url: FLOWABLE.APP_URL.getModelsUrl(), params: params}).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.model.decisions = data;
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								            }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.loadDecisionServices = function () {
							 | 
						||
| 
								 | 
							
								            $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var params = {
							 | 
						||
| 
								 | 
							
								                filter: $scope.model.activeFilter.id,
							 | 
						||
| 
								 | 
							
								                sort: $scope.model.activeSort.id,
							 | 
						||
| 
								 | 
							
								                modelType: 6
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if ($scope.model.filterText && $scope.model.filterText != '') {
							 | 
						||
| 
								 | 
							
								                params.filterText = $scope.model.filterText;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $http({method: 'GET', url: FLOWABLE.APP_URL.getModelsUrl(), params: params}).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.model.decisions = data;
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								            }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        var timeoutFilter = function () {
							 | 
						||
| 
								 | 
							
								            $scope.model.isFilterDelayed = true;
							 | 
						||
| 
								 | 
							
								            $timeout(function () {
							 | 
						||
| 
								 | 
							
								                $scope.model.isFilterDelayed = false;
							 | 
						||
| 
								 | 
							
								                if ($scope.model.isFilterUpdated) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.isFilterUpdated = false;
							 | 
						||
| 
								 | 
							
								                    timeoutFilter();
							 | 
						||
| 
								 | 
							
								                } else {
							 | 
						||
| 
								 | 
							
								                    $scope.model.filterText = $scope.model.pendingFilterText;
							 | 
						||
| 
								 | 
							
								                    $rootScope.decisionFilter.filterText = $scope.model.filterText;
							 | 
						||
| 
								 | 
							
								                    $scope.loadDecisionTables();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }, 500);
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.filterDelayed = function () {
							 | 
						||
| 
								 | 
							
								            if ($scope.model.isFilterDelayed) {
							 | 
						||
| 
								 | 
							
								                $scope.model.isFilterUpdated = true;
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                timeoutFilter();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.createDecision = function () {
							 | 
						||
| 
								 | 
							
								            if ($scope.model.activeFilter.type === "decision-services") {
							 | 
						||
| 
								 | 
							
								                return $scope.createDecisionService();
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                return $scope.createDecisionTable();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.createDecisionTable = function () {
							 | 
						||
| 
								 | 
							
								            $rootScope.currentKickstartModel = undefined;
							 | 
						||
| 
								 | 
							
								            $rootScope.currentDecisionTableModel = undefined;
							 | 
						||
| 
								 | 
							
								            $scope.createDecisionTableCallback = function (result) {
							 | 
						||
| 
								 | 
							
								                $rootScope.editorHistory = [];
							 | 
						||
| 
								 | 
							
								                $location.url("/decision-table-editor/" + encodeURIComponent(result.id));
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            _internalCreateModal({
							 | 
						||
| 
								 | 
							
								                template: 'views/popup/decision-table-create.html?version=' + Date.now(),
							 | 
						||
| 
								 | 
							
								                scope: $scope
							 | 
						||
| 
								 | 
							
								            }, $modal, $scope);
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.createDecisionService = function () {
							 | 
						||
| 
								 | 
							
								            $rootScope.currentKickstartModel = undefined;
							 | 
						||
| 
								 | 
							
								            $rootScope.currentDRDModel = undefined;
							 | 
						||
| 
								 | 
							
								            $scope.createDecisionServiceCallback = function (result) {
							 | 
						||
| 
								 | 
							
								                $rootScope.editorHistory = [];
							 | 
						||
| 
								 | 
							
								                $location.url("/decision-service-editor/" + encodeURIComponent(result.id));
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            _internalCreateModal({
							 | 
						||
| 
								 | 
							
								                template: 'views/popup/decision-service-create.html?version=' + Date.now(),
							 | 
						||
| 
								 | 
							
								                scope: $scope
							 | 
						||
| 
								 | 
							
								            }, $modal, $scope);
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.showDecisionDetails = function (decision) {
							 | 
						||
| 
								 | 
							
								            if (decision) {
							 | 
						||
| 
								 | 
							
								                $rootScope.editorHistory = [];
							 | 
						||
| 
								 | 
							
								                $rootScope.currentKickstartModel = undefined;
							 | 
						||
| 
								 | 
							
								                if (decision.modelType === 4) {
							 | 
						||
| 
								 | 
							
								                    $location.url("/decision-tables/" + encodeURIComponent(decision.id));
							 | 
						||
| 
								 | 
							
								                } else if (decision.modelType === 6) {
							 | 
						||
| 
								 | 
							
								                    $location.url("/decision-services/" + encodeURIComponent(decision.id));
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.editDecisionDetails = function (decision) {
							 | 
						||
| 
								 | 
							
								            if (decision) {
							 | 
						||
| 
								 | 
							
								                $rootScope.editorHistory = [];
							 | 
						||
| 
								 | 
							
								                if (decision.modelType === 4) {
							 | 
						||
| 
								 | 
							
								                    $location.url("/decision-table-editor/" + encodeURIComponent(decision.id));
							 | 
						||
| 
								 | 
							
								                } else if (decision.modelType === 6) {
							 | 
						||
| 
								 | 
							
								                    $location.url("/decision-service-editor/" + encodeURIComponent(decision.id));
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($rootScope.decisionFilter &&
							 | 
						||
| 
								 | 
							
											$rootScope.decisionFilter &&
							 | 
						||
| 
								 | 
							
											$rootScope.decisionFilter.id === 'decisionServices') {
							 | 
						||
| 
								 | 
							
								            $scope.loadDecisionServices();
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
											$scope.loadDecisionTables();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('CreateNewDecisionTableCtrl', ['$rootScope', '$scope', '$http', function ($rootScope, $scope, $http) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.model = {
							 | 
						||
| 
								 | 
							
								            loading: false,
							 | 
						||
| 
								 | 
							
								            decisionTable: {
							 | 
						||
| 
								 | 
							
								                name: '',
							 | 
						||
| 
								 | 
							
								                key: '',
							 | 
						||
| 
								 | 
							
								                description: '',
							 | 
						||
| 
								 | 
							
								                modelType: 4
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.ok = function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (!$scope.model.decisionTable.name || $scope.model.decisionTable.name.length == 0 ||
							 | 
						||
| 
								 | 
							
								                !$scope.model.decisionTable.key || $scope.model.decisionTable.key.length == 0) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                return;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $http({method: 'POST', url: FLOWABLE.APP_URL.getModelsUrl(), data: $scope.model.decisionTable}).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.$hide();
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if ($scope.createDecisionTableCallback) {
							 | 
						||
| 
								 | 
							
								                    $scope.createDecisionTableCallback(data);
							 | 
						||
| 
								 | 
							
								                    $scope.createDecisionTableCallback = undefined;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								                $scope.model.errorMessage = data.message;
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.cancel = function () {
							 | 
						||
| 
								 | 
							
								            if (!$scope.model.loading) {
							 | 
						||
| 
								 | 
							
								                $scope.$hide();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    }]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('CreateNewDecisionServiceCtrl', ['$rootScope', '$scope', '$http', function ($rootScope, $scope, $http) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.model = {
							 | 
						||
| 
								 | 
							
								            loading: false,
							 | 
						||
| 
								 | 
							
								            decisionService: {
							 | 
						||
| 
								 | 
							
								                name: '',
							 | 
						||
| 
								 | 
							
								                key: '',
							 | 
						||
| 
								 | 
							
								                description: '',
							 | 
						||
| 
								 | 
							
								                modelType: 6
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.ok = function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (!$scope.model.decisionService.name || $scope.model.decisionService.name.length == 0 ||
							 | 
						||
| 
								 | 
							
								                !$scope.model.decisionService.key || $scope.model.decisionService.key.length == 0) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                return;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $http({method: 'POST', url: FLOWABLE.APP_URL.getModelsUrl(), data: $scope.model.decisionService}).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.$hide();
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if ($scope.createDecisionServiceCallback) {
							 | 
						||
| 
								 | 
							
								                    $scope.createDecisionServiceCallback(data);
							 | 
						||
| 
								 | 
							
								                    $scope.createDecisionServiceCallback = undefined;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								                $scope.model.errorMessage = data.message;
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.cancel = function () {
							 | 
						||
| 
								 | 
							
								            if (!$scope.model.loading) {
							 | 
						||
| 
								 | 
							
								                $scope.$hide();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    }]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('DuplicateDecisionTableCtrl', ['$rootScope', '$scope', '$http',
							 | 
						||
| 
								 | 
							
								        function ($rootScope, $scope, $http) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.model = {
							 | 
						||
| 
								 | 
							
								                loading: false,
							 | 
						||
| 
								 | 
							
								                decisionTable: {
							 | 
						||
| 
								 | 
							
								                    id: '',
							 | 
						||
| 
								 | 
							
								                    name: '',
							 | 
						||
| 
								 | 
							
								                    description: '',
							 | 
						||
| 
								 | 
							
								                    modelType: null
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if ($scope.originalModel) {
							 | 
						||
| 
								 | 
							
								                //clone the model
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionTable.name = $scope.originalModel.decisionTable.name;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionTable.key = $scope.originalModel.decisionTable.key;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionTable.description = $scope.originalModel.decisionTable.description;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionTable.modelType = $scope.originalModel.decisionTable.modelType;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionTable.id = $scope.originalModel.decisionTable.id;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.ok = function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (!$scope.model.decisionTable.name || $scope.model.decisionTable.name.length == 0) {
							 | 
						||
| 
								 | 
							
								                    return;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                $http({
							 | 
						||
| 
								 | 
							
								                    method: 'POST',
							 | 
						||
| 
								 | 
							
								                    url: FLOWABLE.APP_URL.getCloneModelsUrl($scope.model.decisionTable.id),
							 | 
						||
| 
								 | 
							
								                    data: $scope.model.decisionTable
							 | 
						||
| 
								 | 
							
								                }).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                    $scope.$hide();
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    if ($scope.duplicateDecisionTableCallback) {
							 | 
						||
| 
								 | 
							
								                        $scope.duplicateDecisionTableCallback(data);
							 | 
						||
| 
								 | 
							
								                        $scope.duplicateDecisionTableCallback = undefined;
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								                    $scope.model.errorMessage = data.message;
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.cancel = function () {
							 | 
						||
| 
								 | 
							
								                if (!$scope.model.loading) {
							 | 
						||
| 
								 | 
							
								                    $scope.$hide();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								        }]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('DuplicateDecisionServiceCtrl', ['$rootScope', '$scope', '$http',
							 | 
						||
| 
								 | 
							
								        function ($rootScope, $scope, $http) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.model = {
							 | 
						||
| 
								 | 
							
								                loading: false,
							 | 
						||
| 
								 | 
							
								                decisionService: {
							 | 
						||
| 
								 | 
							
								                    id: '',
							 | 
						||
| 
								 | 
							
								                    name: '',
							 | 
						||
| 
								 | 
							
								                    description: '',
							 | 
						||
| 
								 | 
							
								                    modelType: null
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if ($scope.originalModel) {
							 | 
						||
| 
								 | 
							
								                //clone the model
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionService.name = $scope.originalModel.decisionService.name;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionService.key = $scope.originalModel.decisionService.key;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionService.description = $scope.originalModel.decisionService.description;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionService.modelType = $scope.originalModel.decisionService.modelType;
							 | 
						||
| 
								 | 
							
								                $scope.model.decisionService.id = $scope.originalModel.decisionService.id;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.ok = function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if (!$scope.model.decisionService.name || $scope.model.decisionService.name.length == 0) {
							 | 
						||
| 
								 | 
							
								                    return;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                $http({
							 | 
						||
| 
								 | 
							
								                    method: 'POST',
							 | 
						||
| 
								 | 
							
								                    url: FLOWABLE.APP_URL.getCloneModelsUrl($scope.model.decisionService.id),
							 | 
						||
| 
								 | 
							
								                    data: $scope.model.decisionService
							 | 
						||
| 
								 | 
							
								                }).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                    $scope.$hide();
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    if ($scope.duplicateDecisionServiceCallback) {
							 | 
						||
| 
								 | 
							
								                        $scope.duplicateDecisionServiceCallback(data);
							 | 
						||
| 
								 | 
							
								                        $scope.duplicateDecisionServiceCallback = undefined;
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								                    $scope.model.errorMessage = data.message;
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $scope.cancel = function () {
							 | 
						||
| 
								 | 
							
								                if (!$scope.model.loading) {
							 | 
						||
| 
								 | 
							
								                    $scope.$hide();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								        }]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('ImportDecisionTableModelCtrl', ['$rootScope', '$scope', '$http', 'Upload', '$location', function ($rootScope, $scope, $http, Upload, $location) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.model = {
							 | 
						||
| 
								 | 
							
								            loading: false
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.onFileSelect = function ($files, isIE) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            for (var i = 0; i < $files.length; i++) {
							 | 
						||
| 
								 | 
							
								                var file = $files[i];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                var url;
							 | 
						||
| 
								 | 
							
								                if (isIE) {
							 | 
						||
| 
								 | 
							
								                    url = FLOWABLE.APP_URL.getDecisionTableTextImportUrl();
							 | 
						||
| 
								 | 
							
								                } else {
							 | 
						||
| 
								 | 
							
								                    url = FLOWABLE.APP_URL.getDecisionTableImportUrl();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                Upload.upload({
							 | 
						||
| 
								 | 
							
								                    url: url,
							 | 
						||
| 
								 | 
							
								                    method: 'POST',
							 | 
						||
| 
								 | 
							
								                    file: file
							 | 
						||
| 
								 | 
							
								                }).progress(function (evt) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								                    $scope.model.uploadProgress = parseInt(100.0 * evt.loaded / evt.total);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    $location.path("/decision-table-editor/" + data.id);
							 | 
						||
| 
								 | 
							
								                    $scope.$hide();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    if (data && data.message) {
							 | 
						||
| 
								 | 
							
								                        $scope.model.errorMessage = data.message;
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    $scope.model.error = true;
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.cancel = function () {
							 | 
						||
| 
								 | 
							
								            if (!$scope.model.loading) {
							 | 
						||
| 
								 | 
							
								                $scope.$hide();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    }]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								angular.module('flowableModeler')
							 | 
						||
| 
								 | 
							
								    .controller('ImportDecisionServiceModelCtrl', ['$rootScope', '$scope', '$http', 'Upload', '$location', function ($rootScope, $scope, $http, Upload, $location) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.model = {
							 | 
						||
| 
								 | 
							
								            loading: false
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.onFileSelect = function ($files, isIE) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            for (var i = 0; i < $files.length; i++) {
							 | 
						||
| 
								 | 
							
								                var file = $files[i];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                var url;
							 | 
						||
| 
								 | 
							
								                if (isIE) {
							 | 
						||
| 
								 | 
							
								                    url = FLOWABLE.APP_URL.getDecisionServiceTextImportUrl();
							 | 
						||
| 
								 | 
							
								                } else {
							 | 
						||
| 
								 | 
							
								                    url = FLOWABLE.APP_URL.getDecisionServiceImportUrl();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                Upload.upload({
							 | 
						||
| 
								 | 
							
								                    url: url,
							 | 
						||
| 
								 | 
							
								                    method: 'POST',
							 | 
						||
| 
								 | 
							
								                    file: file
							 | 
						||
| 
								 | 
							
								                }).progress(function (evt) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = true;
							 | 
						||
| 
								 | 
							
								                    $scope.model.uploadProgress = parseInt(100.0 * evt.loaded / evt.total);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }).success(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    $location.path("/decision-service-editor/" + data.id);
							 | 
						||
| 
								 | 
							
								                    $scope.$hide();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }).error(function (data, status, headers, config) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    if (data && data.message) {
							 | 
						||
| 
								 | 
							
								                        $scope.model.errorMessage = data.message;
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    $scope.model.error = true;
							 | 
						||
| 
								 | 
							
								                    $scope.model.loading = false;
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $scope.cancel = function () {
							 | 
						||
| 
								 | 
							
								            if (!$scope.model.loading) {
							 | 
						||
| 
								 | 
							
								                $scope.$hide();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    }]);
							 |