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