|
|
/* 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'); }); } } };
}]);
|