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
			| 
								 
											1 year 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');
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}]);
							 |