Initial commit
This commit is contained in:
@@ -0,0 +1,185 @@
|
||||
(function () {
|
||||
global.dashModule
|
||||
.directive('linkProcess', linkProcessDirective)
|
||||
.controller('linkProcessCtrl', ['$scope', '$http', '$', '$timeout', '$translate', 'utilsService', linkProcessCtrl]);
|
||||
|
||||
function linkProcessDirective() {
|
||||
return {
|
||||
restrict: 'E',
|
||||
templateUrl: 'processes/html/linkProcessTemplate'
|
||||
};
|
||||
}
|
||||
|
||||
function linkProcessCtrl($scope, $http, $, $timeout, $translate, utilsService) {
|
||||
$scope.packages = {};
|
||||
$scope.getPackages = getPackages;
|
||||
$scope.isPackageSelected = isPackageSelected;
|
||||
$scope.getCountries = getCountries;
|
||||
$scope.isCountrySelected = isCountrySelected;
|
||||
$scope.getProcesses = getProcesses;
|
||||
$scope.processDragStart = processDragStart;
|
||||
$scope.processDragStop = processDragStop;
|
||||
$scope.prcessDrop = prcessDrop;
|
||||
$scope.linkProcesses = linkProcesses;
|
||||
$scope.isNewStepFormVisible = isNewStepFormVisible;
|
||||
$scope.enableAddNewProcess = enableAddNewProcess;
|
||||
$scope.showProcessInfo = showProcessInfo;
|
||||
$scope.isVisibleToCustomer = isVisibleToCustomer;
|
||||
$scope.addingNewStep = false;
|
||||
$scope.processes = [];
|
||||
$scope.selectedProcesses = [];
|
||||
$scope.selectedSteps = {
|
||||
steps: [],
|
||||
processName: ''
|
||||
};
|
||||
|
||||
function isVisibleToCustomer(stepVisibleInfo) {
|
||||
return stepVisibleInfo === '1' ? 'glyphicon-eye-open' : 'glyphicon-eye-close';
|
||||
}
|
||||
|
||||
function processDragStart(event, ui) {
|
||||
const containerSelector = $(ui.helper).hasClass('available-process') ? '#available-processes' : '#selected-processes';
|
||||
const dropSelector = containerSelector === '#selected-processes' ? '#available-processes' : '#selected-processes';
|
||||
$(containerSelector).css({
|
||||
height: 'auto',
|
||||
overflow: 'visible',
|
||||
});
|
||||
|
||||
$(dropSelector).css({
|
||||
border: '2px dashed #000',
|
||||
background: 'rgba(223, 240, 216, 0.5)'
|
||||
});
|
||||
}
|
||||
|
||||
function processDragStop(event, ui) {
|
||||
const containerSelector = $(ui.helper).hasClass('available-process') ? '#available-processes' : '#selected-processes';
|
||||
const dropSelector = containerSelector === '#selected-processes' ? '#available-processes' : '#selected-processes';
|
||||
$(containerSelector).css({
|
||||
height: '360px',
|
||||
'overflow-y': 'scroll',
|
||||
'overflow-x': 'hidden',
|
||||
});
|
||||
|
||||
$(dropSelector).css({
|
||||
border: '2px solid #000',
|
||||
background: 'none'
|
||||
});
|
||||
}
|
||||
|
||||
function prcessDrop(event, ui) {
|
||||
const processKey = $(ui.helper).attr('process-key');
|
||||
if ($(ui.helper).hasClass('available-process')) {
|
||||
$scope.selectedProcesses.push($scope.processes[processKey]);
|
||||
$scope.processes.splice(processKey, 1);
|
||||
$scope.selectedProcesses.sort(utilsService.sortByAttributeName('processName'));
|
||||
} else {
|
||||
$scope.processes.push($scope.selectedProcesses[processKey]);
|
||||
$scope.selectedProcesses.splice(processKey, 1);
|
||||
$scope.processes.sort(utilsService.sortByAttributeName('processName'));
|
||||
}
|
||||
}
|
||||
|
||||
function linkProcesses() {
|
||||
const params = $.param({
|
||||
idPackage: $scope.selectedPackageId,
|
||||
selectedProcesses: JSON.stringify($scope.selectedProcesses)
|
||||
});
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'processes/api/linkProcessesToPackage',
|
||||
data: params
|
||||
}).then(showUpdateMessage, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function showUpdateMessage(response) {
|
||||
if (typeof response.data.messages !== 'undefined') {
|
||||
response.data.messages.forEach((messageObj) => {
|
||||
let translatedMessage = $translate.instant('processes.messages.' + messageObj.message);
|
||||
utilsService.displayMessage(messageObj.code, translatedMessage);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getPackages() {
|
||||
const params = $.param({
|
||||
idCountry: $scope.selectedCountryId
|
||||
});
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'processes/api/getPackagesAndProcesses',
|
||||
data: params
|
||||
}).then(setPackages, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function getProcesses() {
|
||||
if ($scope.selectedPackageId) {
|
||||
const params = $.param({
|
||||
idPackage: $scope.selectedPackageId
|
||||
});
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'processes/api/getProcesses',
|
||||
data: params
|
||||
}).then(setProcesses, utilsService.onHttpError);
|
||||
}
|
||||
}
|
||||
|
||||
function setProcesses(response) {
|
||||
if (typeof response.data.processes !== 'undefined' && typeof response.data.steps !== 'undefined') {
|
||||
$scope.steps = response.data.steps;
|
||||
$scope.selectedProcesses = [];
|
||||
$scope.processes = [];
|
||||
response.data.processes.forEach(process => {
|
||||
if (process.isSelected === '1') {
|
||||
$scope.selectedProcesses.push(process);
|
||||
} else {
|
||||
$scope.processes.push(process);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setPackages(response) {
|
||||
if (response.data.length) {
|
||||
$scope.packages = {};
|
||||
response.data.forEach(packageItem => {
|
||||
$scope.packages[packageItem.idPackage] = packageItem.packageName;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function isPackageSelected() {
|
||||
return typeof $scope.selectedPackageId !== 'undefined' && $scope.selectedPackageId !== null;
|
||||
}
|
||||
|
||||
function getCountries() {
|
||||
$http({
|
||||
method: 'GET',
|
||||
url: 'countries/api/getAllCountries'
|
||||
}).then(setCountries, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function setCountries(response) {
|
||||
$scope.countries = response.data;
|
||||
}
|
||||
|
||||
function isCountrySelected() {
|
||||
return typeof $scope.selectedCountryId !== 'undefined' && $scope.selectedCountryId !== 0;
|
||||
}
|
||||
|
||||
function isNewStepFormVisible() {
|
||||
return $scope.addingNewStep;
|
||||
}
|
||||
|
||||
function enableAddNewProcess() {
|
||||
$scope.addingNewStep = !$scope.addingNewStep;
|
||||
}
|
||||
|
||||
function showProcessInfo(process) {
|
||||
$('#info-placeholder').hide();
|
||||
$scope.selectedSteps.processName = process.processName;
|
||||
$scope.selectedSteps.steps = $scope.steps[process.idProcess];
|
||||
}
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user