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.
148 lines
4.6 KiB
148 lines
4.6 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';
|
|
|
|
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');
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
}]);
|
|
|