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.
		
		
		
		
		
			
		
			
				
					
					
						
							288 lines
						
					
					
						
							10 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							288 lines
						
					
					
						
							10 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.
							 | 
						|
								 */
							 | 
						|
								'use strict';
							 | 
						|
								
							 | 
						|
								angular.module('flowableModeler')
							 | 
						|
								.controller('EditModelPopupCtrl', ['$rootScope', '$scope', '$http', '$translate', '$location',
							 | 
						|
								    function ($rootScope, $scope, $http, $translate, $location) {
							 | 
						|
								
							 | 
						|
								        var model;
							 | 
						|
								        var popupType;
							 | 
						|
								        if ($scope.model.process) {
							 | 
						|
								            model = $scope.model.process;
							 | 
						|
								            popupType = 'PROCESS';
							 | 
						|
								        } else if ($scope.model.caseModel) {
							 | 
						|
								            model = $scope.model.caseModel;
							 | 
						|
								            popupType = 'CASE';
							 | 
						|
								        } else if ($scope.model.form) {
							 | 
						|
								            model = $scope.model.form;
							 | 
						|
								            popupType = 'FORM';
							 | 
						|
								        } else if ($scope.model.decisionTable) {
							 | 
						|
								            model = $scope.model.decisionTable;
							 | 
						|
								            popupType = 'DECISION-TABLE';
							 | 
						|
								        } else if ($scope.model.decisionService) {
							 | 
						|
								            model = $scope.model.decisionService;
							 | 
						|
								            popupType = 'DECISION-SERVICE';
							 | 
						|
								        } else {
							 | 
						|
								            model = $scope.model.app;
							 | 
						|
								            popupType = 'APP';
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								    	$scope.popup = {
							 | 
						|
								    		loading: false,
							 | 
						|
								    		popupType: popupType,
							 | 
						|
								        	modelName: model.name,
							 | 
						|
								        	modelKey: model.key,
							 | 
						|
								        	modelDescription: model.description,
							 | 
						|
								    		id: model.id
							 | 
						|
								    	};
							 | 
						|
								
							 | 
						|
								    	$scope.ok = function () {
							 | 
						|
								
							 | 
						|
								    		if (!$scope.popup.modelName || $scope.popup.modelName.length == 0 ||
							 | 
						|
								    			!$scope.popup.modelKey || $scope.popup.modelKey.length == 0) {
							 | 
						|
								    			
							 | 
						|
								    			return;
							 | 
						|
								    		}
							 | 
						|
								
							 | 
						|
								        	$scope.model.name = $scope.popup.modelName;
							 | 
						|
								        	$scope.model.key = $scope.popup.modelKey;
							 | 
						|
								        	$scope.model.description = $scope.popup.modelDescription;
							 | 
						|
								
							 | 
						|
								    		$scope.popup.loading = true;
							 | 
						|
								    		var updateData = {
							 | 
						|
								    			name: $scope.model.name, 
							 | 
						|
								    			key: $scope.model.key, description: 
							 | 
						|
								    			$scope.model.description
							 | 
						|
								    		};
							 | 
						|
								
							 | 
						|
								    		$http({method: 'PUT', url: FLOWABLE.APP_URL.getModelUrl($scope.popup.id), data: updateData}).
							 | 
						|
								    			success(function(data, status, headers, config) {
							 | 
						|
								    				if ($scope.model.process) {
							 | 
						|
								    					$scope.model.process = data;
							 | 
						|
								    				} else if ($scope.model.caseModel) {
							 | 
						|
								                        $scope.model.caseModel = data;
							 | 
						|
								    				} else if ($scope.model.form) {
							 | 
						|
								    					$scope.model.form = data;
							 | 
						|
								    				} else if ($scope.model.decisionTable) {
							 | 
						|
								                        $scope.model.decisionTable = data;
							 | 
						|
								                    } else if ($scope.model.decisionService) {
							 | 
						|
								                        $scope.model.decisionService = data;
							 | 
						|
								                    } else {
							 | 
						|
								    					$scope.model.app = data;
							 | 
						|
								    				}
							 | 
						|
								
							 | 
						|
								    				$scope.addAlertPromise($translate('PROCESS.ALERT.EDIT-CONFIRM'), 'info');
							 | 
						|
								    				$scope.$hide();
							 | 
						|
								    				$scope.popup.loading = false;
							 | 
						|
								
							 | 
						|
								    				if (popupType === 'FORM') {
							 | 
						|
								                        $location.path("/forms/" +  $scope.popup.id);
							 | 
						|
								                    } else if (popupType === 'APP') {
							 | 
						|
								                        $location.path("/apps/" +  $scope.popup.id);
							 | 
						|
								                    } else if (popupType === 'DECISION-TABLE') {
							 | 
						|
								                        $location.path("/decision-tables/" +  $scope.popup.id);
							 | 
						|
								                    } else if (popupType === 'CASE') {
							 | 
						|
								                        $location.path("/casemodels/" +  $scope.popup.id);
							 | 
						|
								                    } else if (popupType === 'DECISION-SERVICE') {
							 | 
						|
								                        $location.path("/decision-services/" +  $scope.popup.id);
							 | 
						|
								                    } else {
							 | 
						|
								                        $location.path("/processes/" +  $scope.popup.id);
							 | 
						|
								                    }
							 | 
						|
								
							 | 
						|
								    			}).
							 | 
						|
								    			error(function(data, status, headers, config) {
							 | 
						|
								    				$scope.popup.loading = false;
							 | 
						|
								    				$scope.popup.errorMessage = data.message;
							 | 
						|
								    			});
							 | 
						|
								    	};
							 | 
						|
								
							 | 
						|
								    	$scope.cancel = function () {
							 | 
						|
								    		if (!$scope.popup.loading) {
							 | 
						|
								    			$scope.$hide();
							 | 
						|
								    		}
							 | 
						|
								    	};
							 | 
						|
								}]);
							 | 
						|
								
							 | 
						|
								angular.module('flowableModeler')
							 | 
						|
								    .controller('DeleteModelPopupCtrl', ['$rootScope', '$scope', '$http', '$translate', function ($rootScope, $scope, $http, $translate) {
							 | 
						|
								
							 | 
						|
								        var model;
							 | 
						|
								        var popupType;
							 | 
						|
								        if ($scope.model.process) {
							 | 
						|
								            model = $scope.model.process;
							 | 
						|
								            popupType = 'PROCESS';
							 | 
						|
								        } else if ($scope.model.caseModel) {
							 | 
						|
								            model = $scope.model.caseModel;
							 | 
						|
								            popupType = 'CASE';
							 | 
						|
								        } else if ($scope.model.form) {
							 | 
						|
								            model = $scope.model.form;
							 | 
						|
								            popupType = 'FORM';
							 | 
						|
								        } else if ($scope.model.decisionTable) {
							 | 
						|
								            model = $scope.model.decisionTable;
							 | 
						|
								            popupType = 'DECISION-TABLE';
							 | 
						|
								        } else if ($scope.model.decisionService) {
							 | 
						|
								            model = $scope.model.decisionService;
							 | 
						|
								            popupType = 'DECISION-SERVICE';
							 | 
						|
								        } else {
							 | 
						|
								            model = $scope.model.app;
							 | 
						|
								            popupType = 'APP';
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $scope.popup = {
							 | 
						|
								            loading: true,
							 | 
						|
								            loadingRelations: true,
							 | 
						|
								            cascade: 'false',
							 | 
						|
								            popupType: popupType,
							 | 
						|
								            model: model
							 | 
						|
								        };
							 | 
						|
								
							 | 
						|
								        // Loading relations when opening
							 | 
						|
								        $http({method: 'GET', url: FLOWABLE.APP_URL.getModelParentRelationsUrl($scope.popup.model.id)}).
							 | 
						|
								            success(function (data, status, headers, config) {
							 | 
						|
								                $scope.popup.loading = false;
							 | 
						|
								                $scope.popup.loadingRelations = false;
							 | 
						|
								                $scope.popup.relations = data;
							 | 
						|
								            }).
							 | 
						|
								            error(function (data, status, headers, config) {
							 | 
						|
								                $scope.$hide();
							 | 
						|
								                $scope.popup.loading = false;
							 | 
						|
								            });
							 | 
						|
								
							 | 
						|
								        $scope.ok = function () {
							 | 
						|
								            $scope.popup.loading = true;
							 | 
						|
								            var params = {
							 | 
						|
								                // Explicit string-check because radio-values cannot be js-booleans
							 | 
						|
								                cascade: $scope.popup.cascade === 'true'
							 | 
						|
								            };
							 | 
						|
								
							 | 
						|
								            $http({method: 'DELETE', url: FLOWABLE.APP_URL.getModelUrl($scope.popup.model.id), params: params}).
							 | 
						|
								                success(function (data, status, headers, config) {
							 | 
						|
								                    $scope.$hide();
							 | 
						|
								                    $scope.popup.loading = false;
							 | 
						|
								                    $scope.addAlertPromise($translate(popupType + '.ALERT.DELETE-CONFIRM'), 'info');
							 | 
						|
								                    $scope.returnToList();
							 | 
						|
								                }).
							 | 
						|
								                error(function (data, status, headers, config) {
							 | 
						|
								                    $scope.$hide();
							 | 
						|
								                    $scope.popup.loading = false;
							 | 
						|
								                });
							 | 
						|
								        };
							 | 
						|
								
							 | 
						|
								        $scope.cancel = function () {
							 | 
						|
								            if (!$scope.popup.loading) {
							 | 
						|
								                $scope.$hide();
							 | 
						|
								            }
							 | 
						|
								        };
							 | 
						|
								    }]);
							 | 
						|
								
							 | 
						|
								angular.module('flowableModeler')
							 | 
						|
								.controller('UseAsNewVersionPopupCtrl', ['$rootScope', '$scope', '$http', '$translate', '$location', function ($rootScope, $scope, $http, $translate, $location) {
							 | 
						|
								
							 | 
						|
									var model;
							 | 
						|
									var popupType;
							 | 
						|
									if ($scope.model.process) {
							 | 
						|
										model = $scope.model.process;
							 | 
						|
										popupType = 'PROCESS';
							 | 
						|
									} else if ($scope.model.caseModel) {
							 | 
						|
								        model = $scope.model.caseModel;
							 | 
						|
								        popupType = 'CASE';
							 | 
						|
									} else if ($scope.model.form) {
							 | 
						|
								        model = $scope.model.form;
							 | 
						|
								        popupType = 'FORM';
							 | 
						|
								    } else if ($scope.model.decisionTable) {
							 | 
						|
								        model = $scope.model.decisionTable;
							 | 
						|
								        popupType = 'DECISION-TABLE';
							 | 
						|
								    } else if ($scope.model.decisionService) {
							 | 
						|
								        model = $scope.model.decisionService;
							 | 
						|
								        popupType = 'DECISION-SERVICE';
							 | 
						|
								    } else {
							 | 
						|
								        model = $scope.model.app;
							 | 
						|
								        popupType = 'APP';
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
									$scope.popup = {
							 | 
						|
										loading: false,
							 | 
						|
										model: model,
							 | 
						|
										popupType: popupType,
							 | 
						|
										latestModelId: $scope.model.latestModelId,
							 | 
						|
										comment: ''
							 | 
						|
									};
							 | 
						|
								
							 | 
						|
									$scope.ok = function () {
							 | 
						|
										$scope.popup.loading = true;
							 | 
						|
								
							 | 
						|
										var actionData = {
							 | 
						|
											action: 'useAsNewVersion',
							 | 
						|
											comment: $scope.popup.comment
							 | 
						|
										};
							 | 
						|
								
							 | 
						|
										$http({method: 'POST', url: FLOWABLE.APP_URL.getModelHistoryUrl($scope.popup.latestModelId, $scope.popup.model.id), data: actionData}).
							 | 
						|
											success(function(data, status, headers, config) {
							 | 
						|
								
							 | 
						|
								                var backToOverview = function() {
							 | 
						|
								                    if (popupType === 'FORM') {
							 | 
						|
								                        $location.path("/forms/" +  $scope.popup.latestModelId);
							 | 
						|
								                    } else if (popupType === 'APP') {
							 | 
						|
								                        $location.path("/apps/" +  $scope.popup.latestModelId);
							 | 
						|
								                    } else if (popupType === 'DECISION-TABLE') {
							 | 
						|
								                        $location.path("/decision-tables/" +  $scope.popup.latestModelId);
							 | 
						|
								                    } else if (popupType === 'DECISION-SERVICE') {
							 | 
						|
								                        $location.path("/decision-services/" +  $scope.popup.latestModelId);
							 | 
						|
								                    } else if (popupType === 'CASE') {
							 | 
						|
								                        $location.path("/casemodels/" +  $scope.popup.latestModelId);
							 | 
						|
								                    } else {
							 | 
						|
								                        $location.path("/processes/" +  $scope.popup.latestModelId);
							 | 
						|
								                    }
							 | 
						|
								                };
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								                if (data && data.unresolvedModels && data.unresolvedModels.length > 0) {
							 | 
						|
								
							 | 
						|
								                    // There were unresolved models
							 | 
						|
								
							 | 
						|
								                    $scope.popup.loading = false;
							 | 
						|
								                    $scope.popup.foundUnresolvedModels = true;
							 | 
						|
								                    $scope.popup.unresolvedModels = data.unresolvedModels;
							 | 
						|
								
							 | 
						|
								                    $scope.close = function() {
							 | 
						|
								                        $scope.$hide();
							 | 
						|
								                        backToOverview();
							 | 
						|
								                    };
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								                } else {
							 | 
						|
								
							 | 
						|
								                    // All models working resolved perfectly
							 | 
						|
								
							 | 
						|
								                    $scope.popup.loading = false;
							 | 
						|
								                    $scope.$hide();
							 | 
						|
								
							 | 
						|
								                    $scope.addAlertPromise($translate(popupType + '.ALERT.NEW-VERSION-CONFIRM'), 'info');
							 | 
						|
								                    backToOverview();
							 | 
						|
								
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
											}).
							 | 
						|
											error(function(data, status, headers, config) {
							 | 
						|
												$scope.$hide();
							 | 
						|
												$scope.popup.loading = false;
							 | 
						|
											});
							 | 
						|
									};
							 | 
						|
								
							 | 
						|
									$scope.cancel = function () {
							 | 
						|
										if (!$scope.popup.loading) {
							 | 
						|
											$scope.$hide();
							 | 
						|
										}
							 | 
						|
									};
							 | 
						|
								}]);
							 | 
						|
								
							 |