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.
		
		
		
		
			
				
					149 lines
				
				4.6 KiB
			
		
		
			
		
	
	
					149 lines
				
				4.6 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'; | ||
|  | 
 | ||
|  | var APP_DEFINITION_TOOLBAR = { | ||
|  |     ACTIONS: { | ||
|  | 
 | ||
|  |         saveModel: function (services) { | ||
|  | 
 | ||
|  |             _internalCreateModal({ | ||
|  |                 backdrop: true, | ||
|  |                 keyboard: true, | ||
|  |                 template: 'views/popup/app-definition-save-model.html?version=' + Date.now(), | ||
|  |                 scope: services.$scope | ||
|  |             }, services.$modal, services.$scope); | ||
|  |         }, | ||
|  | 
 | ||
|  |         help: function (services) { | ||
|  | 
 | ||
|  |         }, | ||
|  | 
 | ||
|  |         feedback: function (services) { | ||
|  | 
 | ||
|  |         }, | ||
|  | 
 | ||
|  |         closeEditor:  function (services) { | ||
|  |         	services.$location.path('/apps'); | ||
|  |         } | ||
|  |     } | ||
|  | }; | ||
|  | 
 | ||
|  | /** Custom controller for the save dialog */ | ||
|  | angular.module('flowableModeler').controller('SaveAppDefinitionCtrl', | ||
|  |     [ '$rootScope', '$scope', '$http', '$route', '$location', '$translate', | ||
|  |     function ($rootScope, $scope, $http, $route, $location, $translate) { | ||
|  | 
 | ||
|  |     var description = ''; | ||
|  |     if ($rootScope.currentAppDefinition.description) { | ||
|  |     	description = $rootScope.currentAppDefinition.description; | ||
|  |     } | ||
|  | 
 | ||
|  |     var saveDialog = { | ||
|  |         name: $rootScope.currentAppDefinition.name, | ||
|  |         key: $rootScope.currentAppDefinition.key, | ||
|  |         description: description, | ||
|  |         publish: false | ||
|  |     }; | ||
|  | 
 | ||
|  |     $scope.saveDialog = saveDialog; | ||
|  | 
 | ||
|  |     $scope.status = { | ||
|  |         loading: false | ||
|  |     }; | ||
|  | 
 | ||
|  |     $scope.cancel = function () { | ||
|  |     	$scope.$hide(); | ||
|  |     }; | ||
|  | 
 | ||
|  |     $scope.saveAndClose = function (force) { | ||
|  |     	$scope.save(function() { | ||
|  |     		$location.path('/apps'); | ||
|  |     	}, force); | ||
|  |     }; | ||
|  | 
 | ||
|  |     $scope.save = function (saveCallback, force) { | ||
|  | 
 | ||
|  |         if (!$scope.saveDialog.name || $scope.saveDialog.name.length == 0 || | ||
|  |         	!$scope.saveDialog.key || $scope.saveDialog.key.length == 0) { | ||
|  | 
 | ||
|  |             return; | ||
|  |         } | ||
|  | 
 | ||
|  |         // Indicator spinner image
 | ||
|  |         $scope.status.loading = true; | ||
|  | 
 | ||
|  |         var data = { | ||
|  |             appDefinition: $rootScope.currentAppDefinition, | ||
|  |             publish: $scope.saveDialog.publish | ||
|  |         }; | ||
|  | 
 | ||
|  |         data.appDefinition.name = $scope.saveDialog.name; | ||
|  |         if ($scope.saveDialog.description && $scope.saveDialog.description.length > 0) { | ||
|  |         	data.appDefinition.description = $scope.saveDialog.description; | ||
|  |         } | ||
|  | 
 | ||
|  |         if (force !== undefined && force !== null && force === true) { | ||
|  |             data.force = true; | ||
|  |         } | ||
|  | 
 | ||
|  |         delete $scope.conflict; | ||
|  |         $http({method: 'PUT', url: FLOWABLE.APP_URL.getAppDefinitionUrl($rootScope.currentAppDefinition.id), data: data}). | ||
|  |             success(function(response, status, headers, config) { | ||
|  |                 // Regular error
 | ||
|  |                 if (response.error) { | ||
|  |                     $scope.status.loading = false; | ||
|  |                     $scope.saveDialog.errorMessage = response.errorDescription; | ||
|  |                 } else { | ||
|  |                     $scope.$hide(); | ||
|  |                     $rootScope.addAlert($translate.instant('APP.POPUP.SAVE-APP-SAVE-SUCCESS', 'info')); | ||
|  |                     if (saveCallback) { | ||
|  |                         saveCallback(); | ||
|  |                     } | ||
|  |                 } | ||
|  | 
 | ||
|  |             }). | ||
|  |             error(function(data, status, headers, config) { | ||
|  |                 $scope.status.loading = false; | ||
|  |                 $scope.saveDialog.errorMessage = data.message; | ||
|  |             }); | ||
|  |     }; | ||
|  | 
 | ||
|  |     $scope.isOkButtonDisabled = function() { | ||
|  |         if ($scope.status.loading) { | ||
|  |             return false; | ||
|  |         } else if ($scope.error && $scope.error.hasCustomStencilItem) { | ||
|  |             return false; | ||
|  |         } | ||
|  |         return true; | ||
|  |     }; | ||
|  | 
 | ||
|  |     $scope.okClicked = function() { | ||
|  |         if ($scope.error) { | ||
|  |             if ($scope.error.conflictResolveAction === 'discardChanges') { | ||
|  |                 $scope.close(); | ||
|  |                 $route.reload(); | ||
|  |             } else if ($scope.error.conflictResolveAction === 'overwrite' | ||
|  |                 || $scope.error.conflictResolveAction === 'newVersion') { | ||
|  |                 $scope.save(); | ||
|  |             } else if($scope.error.conflictResolveAction === 'saveAs') { | ||
|  |                 $scope.save(function() { | ||
|  |                     $rootScope.ignoreChanges = true;  // Otherwise will get pop up that changes are not saved.
 | ||
|  |                     $location.path('/apps'); | ||
|  |                 }); | ||
|  |             } | ||
|  |         } | ||
|  |     }; | ||
|  | 
 | ||
|  | }]); |