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(); | |
| 		} | |
| 	}; | |
| }]);
 | |
| 
 |