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.
		
		
		
		
			
				
					289 lines
				
				10 KiB
			
		
		
			
		
	
	
					289 lines
				
				10 KiB
			| 
											2 years ago
										 | /* 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(); | ||
|  | 		} | ||
|  | 	}; | ||
|  | }]); |