Initial commit

This commit is contained in:
Senad Uka
2018-06-11 11:09:35 +02:00
commit ed7df7b11f
1954 changed files with 483354 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
(function () {
global.dashModule
.directive('copyProcesses', copyProcessesDirective)
.controller('copyProcessesCtrl', ['$scope', '$http', '$', '$timeout', '$translate', 'utilsService', copyProcessesCtrl]);
function copyProcessesDirective() {
return {
restrict: 'E',
templateUrl: 'processes/html/copyProcessesTemplate'
};
}
function copyProcessesCtrl($scope, $http, $, $timeout, $translate, utilsService) {
$scope.initPeocessCopy = initPeocessCopy;
$scope.getSteps = getSteps;
$scope.resetProcessSelection = resetProcessSelection;
function initPeocessCopy(){
getProcessNames();
}
function getProcessNames() {
$http({
url: 'processes/api/getProcessNames'
}).then(setProcessNames, utilsService.onHttpError);
}
function setProcessNames(response) {
$scope.processes = response.data || [];
}
function getSteps() {
$scope.processSteps = [];
const processSelected = $scope.processes.find(processData => {
return processData.id === $scope.idSelectedProccess.id;
});
$scope.processName = processSelected.name;
$scope.selectedCountry = processSelected.idCountry;
$http({
method: 'POST',
data: $.param({
idProcess: $scope.idSelectedProccess.id
}),
url: 'processes/api/getStepsForProcessSelected'
}).then(setSteps, utilsService.onHttpError);
}
function setSteps(response) {
if (response.data) {
$scope.availableSteps = response.data.steps || {};
$scope.processSteps = response.data.processSteps|| [];
}
}
function resetProcessSelection() {
$scope.idSelectedProccess = null;
$scope.processSteps = [];
}
}
})();

View File

@@ -0,0 +1,306 @@
(function () {
global.dashModule
.directive('createProcessSteps', createProcessStepsDirective)
.controller('createProcessStepsCtrl', ['$scope', '$http', '$', '$timeout', '$translate', 'utilsService', createProcessStepsCtrl]);
function createProcessStepsDirective() {
return {
restrict: 'E',
templateUrl: 'processes/html/createProcessTemplate'
};
}
function createProcessStepsCtrl($scope, $http, $, $timeout, $translate, utilsService) {
let idStepAdded;
let isStepVisible = true;
const messageTranslatePath = 'processes.messages.';
$scope.packages = {};
$scope.initProcessCreation = initProcessCreation;
$scope.addProcessStep = addProcessStep;
$scope.addProcess = addProcess;
$scope.processListsTitle = getProcessTitleTranslation;
$scope.shouldShowIcon = shouldShowIcon;
$scope.isProcessFormValid = isProcessFormValid;
$scope.getStepsForProcess = getStepsForProcess;
$scope.getStepPadding = getStepPadding;
$scope.getStepNumber = getStepNumber;
$scope.selectedProcesses = [];
$scope.isStepVisibleToCustomer = isStepVisibleToCustomer;
$scope.setVisible = setVisible;
$scope.isVisibleToCustomer = isVisibleToCustomer;
$scope.processSteps = [];
$scope.getExtraActionDescription = getExtraActionDescription;
$scope.countries = [];
$scope.selectedCountry = null;
$scope.tinymceOptions = utilsService.getTynimceOptions();
function createOptions(stepPlace) {
var options = {
placeholder: 'create-processes-products-display',
connectWith: '.processes-list',
start: function () {
if (stepPlace === 'available') {
$('#create-processes-step-dragndrop-process').addClass('allowed-drop-zone');
}
},
stop: function () {
if (stepPlace === 'available') {
$('#create-processes-step-dragndrop-process').removeClass('allowed-drop-zone');
}
}
};
return options;
}
$scope.sortableOptionsList = {
available: createOptions('available'),
process: createOptions('process')
};
function initProcessCreation(processSteps, onProcessCreated) {
$scope.processSteps = processSteps || [];
$scope.onProcessCreated = onProcessCreated;
getCountries();
displayProcessSteps(getStepsForProcess);
}
function getCountries() {
const params = $.param({
getArray: true
});
$http({
method: 'POST',
data: params,
url: 'countries/api/getAllCountries'
}).then(setCountries, utilsService.onHttpError);
}
function setCountries(response) {
if (response.data) {
$scope.countries = response.data;
}
}
function displayProcessSteps(successCallback) {
$http({
method: 'GET',
url: 'processes/api/getProcessSteps'
}).then(successCallback, utilsService.onHttpError);
}
function getStepsForProcess(response) {
if (!angular.equals(response.data, {})) {
$scope.availableSteps = response.data.steps;
if($scope.processSteps){
$scope.availableSteps = $scope.availableSteps.filter((availableStep) => {
return !$scope.processSteps.find((selectedStep) => {
return selectedStep.id === availableStep.id;
});
});
}
getUserTypes();
getExtraActionsAvailable();
}
}
function addProcessStep() {
const params = $.param({
shortDesc: $scope.processStepShortDesc,
fullDesc: $scope.processStepFullDesc,
idUserType: $scope.selectedUserTypeId,
isStepVisible: isStepVisible ? 1 : 0,
extraActionCode: $scope.selectedExtraAction || ''
});
$http({
method: 'POST',
url: 'processes/api/addProcessStep',
data: params
}).then(addProcessStepConfirmation, utilsService.onHttpError);
}
function addProcessStepConfirmation(response) {
if (response.data.messageData) {
const translationData = {
stepName: $scope.processStepShortDesc
};
response.data.messageData.forEach(messageInfo => {
if (messageInfo.code === 'success') {
idStepAdded = response.data.idInserted;
$scope.$parent.processStepShortDesc = '';
$scope.$parent.processStepFullDesc = '';
isStepVisible = true;
displayProcessSteps(updateProcessSteps);
} else {
if (messageInfo.type && messageInfo.limit) {
translationData.type = messageInfo.type;
translationData.limit = messageInfo.limit;
}
}
const message = $translate.instant(messageTranslatePath + messageInfo.message, translationData);
utilsService.displayMessage(messageInfo.code, message);
});
} else {
throwServerError();
}
}
function updateProcessSteps(response) {
if (response.data.steps.length) {
const newStepAdded = response.data.steps.find(findAddedProcessStep);
$scope.availableSteps.push(newStepAdded);
$scope.availableSteps.sort(compareStepNames);
}
}
function findAddedProcessStep(stepData) {
return parseInt(stepData.id) === idStepAdded;
}
function addProcess() {
if ($scope.processName && $scope.processSteps.length > 0) {
const params = $.param({
data: JSON.stringify($scope.processSteps),
processName: $scope.processName,
idCountry: $scope.selectedCountry
});
$http({
method: 'POST',
url: 'processes/api/addProcess',
data: params
}).then(processConfirmationMessage, utilsService.onHttpError);
} else {
utilsService.displayMessage('error', $translate.instant(messageTranslatePath + 'PROCESS_DATA_MISSING'));
}
}
function processConfirmationMessage(response) {
if (response.data.messageData) {
const translationData = {
processName: $scope.processName
};
response.data.messageData.forEach(messageInfo => {
if (messageInfo.code === 'success') {
$scope.processName = '';
$scope.availableSteps = $scope.availableSteps.concat($scope.processSteps);
$scope.availableSteps.sort(compareStepNames);
$scope.processSteps = [];
if($scope.onProcessCreated){
$scope.onProcessCreated();
}
} else {
$('#create-processes-process-name').focus();
if (messageInfo.type && messageInfo.limit) {
translationData.type = messageInfo.type;
translationData.limit = messageInfo.limit;
}
}
const message = $translate.instant(messageTranslatePath + messageInfo.message, translationData);
utilsService.displayMessage(messageInfo.code, message);
});
} else {
throwServerError();
}
}
function shouldShowIcon(name) {
return name === 'steps';
}
function getProcessTitleTranslation(name) {
return 'processes.labels.' + name.toUpperCase();
}
function getUserTypes() {
$http({
method: 'GET',
url: 'processes/api/getUserTypes',
}).then(setUserTypes, utilsService.onHttpError);
}
function setUserTypes(response) {
if (response.data.length) {
response.data.forEach(userType => {
userType.type = userType.type.charAt(0).toUpperCase() + userType.type.slice(1);
userType.type = userType.type.replace('_', ' ');
});
$scope.userTypes = response.data;
}
}
function getExtraActionsAvailable() {
$http({
method: 'POST',
url: 'processes/api/getExtraActionsAvailable',
}).then(setExtraActionsAvailable, utilsService.onHttpError);
}
function setExtraActionsAvailable(response) {
if (response.data.length) {
response.data.forEach(extraAction => {
extraAction.name = extraAction.actionCode.charAt(0).toUpperCase() + extraAction.actionCode.slice(1);
extraAction.name = extraAction.name.replace('-', ' ');
});
$scope.extraActions = response.data;
}
}
function isProcessFormValid() {
return $scope.processName && $scope.processSteps.length > 0;
}
function getStepPadding(position) {
return (position + 1) * 2;
}
function getStepNumber(position) {
$scope.processSteps[position].stepNumber = position + 1;
return position + 1;
}
function throwServerError() {
const errorMessage = $translate.instant('processes.messages.SERVER_ERROR');
utilsService.displayMessage('error', errorMessage);
}
function isStepVisibleToCustomer() {
return isStepVisible ? 'glyphicon-eye-open' : 'glyphicon-eye-close';
}
function setVisible() {
isStepVisible = !isStepVisible;
}
function isVisibleToCustomer(stepVisibleInfo) {
return stepVisibleInfo === '1' ? 'glyphicon-eye-open' : 'glyphicon-eye-close';
}
function getExtraActionDescription() {
const selectedActionObj = $scope.extraActions.filter((action) => {
return action.idActionCode === $scope.selectedExtraAction;
});
if (selectedActionObj.length) {
const translatedName = selectedActionObj[0].actionCode.replace('-', '_');
return $translate.instant('processes.messages.' + translatedName);
}
return '';
}
function compareStepNames(stepA, stepB) {
if (stepA.shortDesc < stepB.shortDesc) {
return -1;
}
if (stepA.shortDesc > stepB.shortDesc) {
return 1;
}
return 0;
}
}
})();

View File

@@ -0,0 +1,246 @@
(function () {
global.dashModule
.directive('editProcesses', editProcessesDirective)
.controller('editProcessesCtrl', ['$scope', '$http', '$', '$timeout', '$translate', 'utilsService', editProcessesCtrl]);
function editProcessesDirective() {
return {
restrict: 'E',
templateUrl: 'processes/html/editProcessesTemplate'
};
}
function editProcessesCtrl($scope, $http, $, $timeout, $translate, utilsService) {
let processStepsHeight;
let availableStepDragged = {};
let processStepDragged = {};
$scope.initPRocessEdit = initPRocessEdit;
$scope.getSteps = getSteps;
$scope.isProcessSelected = isProcessSelected;
$scope.getStepPadding = getStepPadding;
$scope.startDragFromAvailableSteps = startDragFromAvailableSteps;
$scope.endDragFromAvailableSteps = endDragFromAvailableSteps;
$scope.availableStepDropped = availableStepDropped;
$scope.startDragFromProcessSteps = startDragFromProcessSteps;
$scope.endDragFromProcessSteps = endDragFromProcessSteps;
$scope.processStepDropped = processStepDropped;
$scope.editProcess = editProcess;
$scope.setProcessAfterEdit = setProcessAfterEdit;
$scope.resetProducts = resetProducts;
$scope.isVisibleToCustomer = isVisibleToCustomer;
function isVisibleToCustomer(stepVisibleInfo) {
return stepVisibleInfo === '1' ? 'glyphicon-eye-open' : 'glyphicon-eye-close';
}
function initPRocessEdit(){
getProcessNames();
getCountries();
}
function getProcessNames(isAfterEdit = false) {
$http({
methos: 'POST',
url: 'processes/api/getProcessNames'
}).then((response) => {setProcessNames(response, isAfterEdit);}, utilsService.onHttpError);
}
function setProcessNames(response, isAfterEdit) {
$scope.processes = response.data ? response.data : [];
if(isAfterEdit){
setProcessAfterEdit();
}
}
function getCountries() {
const params = $.param({
getArray: true
});
$http({
method: 'POST',
data: params,
url: 'countries/api/getAllCountries'
}).then(setCountries, utilsService.onHttpError);
}
function setCountries(response){
if(response.data){
$scope.countries = response.data;
}
}
function getSteps() {
const processSelected = $scope.processes.find(processData => {
return processData.id === $scope.idSelectedProccess.id;
});
$scope.processName = processSelected.name;
$scope.selectedCountry = processSelected.idCountry;
$http({
method: 'POST',
data: $.param({
idProcess: $scope.idSelectedProccess.id
}),
url: 'processes/api/getStepsForProcessSelected'
}).then(setSteps, utilsService.onHttpError);
}
function setSteps(response) {
if (response.data) {
$scope.availableSteps = response.data.steps ? response.data.steps : {};
$scope.processSteps = response.data.processSteps ? response.data.processSteps : [];
}
processStepsHeight = $('#process-steps-list').height();
$('.available-steps-list').css({
height: processStepsHeight
});
}
function isProcessSelected() {
return $scope.idSelectedProccess && $scope.idSelectedProccess.id ? $scope.idSelectedProccess.id : $scope.idSelectedProccess;
}
function getStepPadding(position) {
return (position + 1) * 2;
}
function startDragFromAvailableSteps(event, ui, idStepDragged) {
$('#available-steps-list').css({
height: '400px',
overflow: 'visible'
});
$('#process-steps-list').addClass('allowed-drop-zone');
availableStepDragged = {
idStep: idStepDragged,
shortDesc: $scope.availableSteps[idStepDragged].shortDesc,
isVisibleForCustomer: $scope.availableSteps[idStepDragged].isVisibleForCustomer
};
}
function endDragFromAvailableSteps() {
$('#available-steps-list').css({
height: processStepsHeight,
'overflow-y': 'scroll'
});
$('#process-steps-list').removeClass('allowed-drop-zone');
}
function availableStepDropped(event, ui) {
let isStepMoved = false;
if (Object.keys(availableStepDragged).length === 0) {
processStepDragged = JSON.parse($(ui.helper).attr('step-info'));
if (typeof processStepDragged === 'object') {
isStepMoved = $scope.processSteps.some(processStep => {
return processStep.idStep === processStepDragged.idStep;
});
}
}
if (!isStepMoved) {
$scope.processSteps.push(availableStepDragged);
delete $scope.availableSteps[availableStepDragged.idStep];
availableStepDragged = {};
}
$(ui.helper).css({
position: 'relative',
left: 0,
top: 0
});
}
function startDragFromProcessSteps(event, ui) {
$('#process-steps-list').css({
height: '400px',
overflow: 'visible'
});
$('#available-steps-list').addClass('allowed-drop-zone');
$('#process-steps-list').addClass('allowed-drop-zone');
processStepDragged = JSON.parse($(ui.helper).attr('step-info'));
}
function endDragFromProcessSteps() {
processStepsHeight = $('#process-steps-list').height();
$('#process-steps-list').css({
height: processStepsHeight,
'overflow-y': 'scroll'
});
$('#available-steps-list').removeClass('allowed-drop-zone');
$('#process-steps-list').removeClass('allowed-drop-zone');
$timeout(function () {
$('.rearrange-steps').sortable('refreshPositions');
});
}
function processStepDropped(event, ui) {
if (typeof processStepDragged.idStep !== 'undefined') {
$scope.availableSteps[processStepDragged.idStep] = processStepDragged;
$scope.processSteps = $scope.processSteps.filter(removeDroppedStep);
}
processStepDragged = {};
$(ui.helper).css({
position: 'relative',
left: 0,
top: 0
});
}
function removeDroppedStep(processStep) {
return processStep.idStep !== processStepDragged.idStep;
}
function editProcess() {
if ($scope.processSteps.length !== 0) {
$http({
method: 'POST',
url: 'processes/api/editProcess',
data: $.param({
idProcess: $scope.idSelectedProccess.id,
data: {
processName: $scope.processName,
idCountry: $scope.selectedCountry,
processSteps: $scope.processSteps
}
})
}).then(displayEditMessage, utilsService.onHttpError);
} else {
const message = $translate.instant('processes.messages.NO_STEPS');
utilsService.displayMessage('error', message);
}
}
function displayEditMessage(response) {
if (response.data.hasOwnProperty('messageData') && response.data.messageData.length > 0) {
response.data.messageData.forEach(messageData => {
const message = $translate.instant('processes.messages.' + messageData.message);
utilsService.displayMessage(messageData.code, message);
if (messageData.code === 'success') {
getProcessNames(true);
}
});
}
}
function setProcessAfterEdit(idProcessUpdated = 0) {
if (idProcessUpdated) {
$scope.idSelectedProccess = {
id: idProcessUpdated
};
getSteps();
}
}
function resetProducts() {
getSteps();
const message = $translate.instant('processes.messages.RESET_PROCESS');
utilsService.displayMessage('success', message);
}
}
})();

View File

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

View File

@@ -0,0 +1,38 @@
(function () {
global.dashModule
.controller('processesController', ['$scope', processesController])
.directive('processes', [processesDirective]);
function processesDirective() {
return {
restrict: 'E',
templateUrl: 'processes/html/processesTemplate'
};
}
function processesController($scope) {
$scope.subModule = global.getParameterByName('subModule') || 'viewPackageProcesses';
$scope.setSubModule = setSubModule;
$scope.isSubmoduleVisible = isSubmoduleVisible;
addUrlListener();
function addUrlListener() {
window.addEventListener('popstate', function (e) {
$scope.$evalAsync($scope => {
$scope.subModule = e.state ? e.state.subModule : 'viewPackageProcesses';
});
}, false);
}
function setSubModule($event) {
$scope.subModule = $event.currentTarget.attributes.subModule.value;
history.pushState({
subModule: $scope.subModule
}, null, '?subModule=' + $scope.subModule);
}
function isSubmoduleVisible(subModule) {
return subModule === $scope.subModule;
}
}
})();

View File

@@ -0,0 +1,219 @@
@eye-open-color: #2184be;
@eye-close-color: #C11B17;
@layer-background: rgba(255, 255, 255, 0.7);
.module-layer {
position: relative;
margin-top: 1%;
background: @layer-background;
margin-bottom: 3%;
padding-bottom: 2%;
}
#create-process-steps {
width: 100%;
padding: 1%;
margin-bottom: 2%;
.create-process-title {
margin-bottom: 1%;
font-weight: bold;
font-size: 120%;
text-align: center;
}
.processes-list {
background: #FFF;
height: 360px;
min-height: 360px;
overflow-y: scroll;
border: 1px solid #000;
border-radius: 5px;
}
.glyphicon-eye-open {
color: @eye-open-color;
font-size: 120%;
}
.glyphicon-eye-close {
color: @eye-close-color;
font-size: 120%;
}
.step-extra-action-radios {
display: inline-block;
}
.draggable-icon-steps {
color: #3c763d;
top: 50%;
font-size: 200%;
text-align: center;
position: absolute;
}
.create-process-name-input, .create-process-country-select{
height: 3rem;
}
.add-process-steps {
display: inline-block;
margin-top: 1%;
border-top: 2px solid #3bb9ff;
border-bottom: 2px solid #3bb9ff;
padding: 2%;
background: rgba(59, 185, 255, 0.1);
.create-processes-description {
display: inline-block;
margin-top: 2%;
width: 98%;
.package-label {
width: 30%;
}
.create-package-description-text {
width: 70%;
}
}
}
}
#edit-process-button {
margin: 2%;
}
#edit-processes-container {
margin-left: 1%;
}
#edit-process-and-steps-container {
height: 400px;
margin-bottom: 2%;
overflow: hidden;
position: relative;
.draggable-icon {
color: #3c763d;
left: 28.5%;
top: 50%;
font-size: 200%;
text-align: center;
position: absolute;
}
}
#edit-processes {
.module-layer;
.glyphicon-eye-open {
color: @eye-open-color;
}
.glyphicon-eye-close {
color: @eye-close-color;
}
.edit-processes-lists {
display: inline-block;
width: 95%;
border: 1px solid #000;
border-radius: 5px;
height: 400px;
overflow-y: scroll;
padding: 0;
}
}
#link-process-steps {
.module-layer;
.glyphicon-eye-open {
color: @eye-open-color;
}
.glyphicon-eye-close {
color: @eye-close-color;
}
.processes-list {
background: #FFF;
height: 360px;
min-height: 360px;
overflow-y: scroll;
border: 1px solid #000;
border-radius: 5px;
}
.process-selection-layer {
display: inline-block;
position: relative;
width: 100%;
height: 360px;
overflow: hidden;
}
.headers-col {
margin-top: 1%;
margin-bottom: 1%;
vertical-align: top;
text-align: center;
}
.process-draggable {
padding: 7px 5px;
cursor: pointer;
border: 1px solid #ddd;
font-weight: bold;
padding-left: 2%;
}
.process-draggable:hover {
background: rgba(223, 240, 216, 0.5);
}
.info-placeholder {
color: rgba(124, 128, 130, 0.7);
padding: 5%;
}
.info-step {
border: 1px solid #ddd;
}
.step-position {
display: inline-block;
width: 10%;
font-weight: bold;
vertical-align: middle;
background: rgba(59, 185, 255, 0.5);
border-right: 2px solid rgb(59, 185, 255);
padding: 5px 0 5px 5px;
}
.step-description {
display: inline-block;
width: 85%;
padding: 5px 3px;
}
.link-processes-button {
margin-top: 1%;
margin-bottom: 3%;
}
.draggable-icon {
color: #3c763d;
left: 31%;
top: 50%;
font-size: 200%;
text-align: center;
position: absolute;
}
.add-new-process{
margin: 1% 0;
}
}

View File

@@ -0,0 +1,76 @@
(function () {
global.dashModule
.directive('viewPackageProcesses', viewPackageProcessesDirective)
.controller('viewPackageProcessesController', ['$scope', '$http', '$translate', '$', 'utilsService', viewPackageProcessesCtrl]);
function viewPackageProcessesDirective() {
return {
restrict: 'E',
templateUrl: 'processes/html/viewPackageProcessesTemplate'
};
}
function viewPackageProcessesCtrl($scope, $http, $translate, $, utilsService) {
$scope.getAvailableProcesses = getAvailableProcesses;
$scope.listAvailableProcesses = listAvailableProcesses;
$scope.searchProcess = searchProcess;
$scope.isVisibleForCustomer = isVisibleForCustomer;
$scope.countries = [];
function getAvailableProcesses() {
$http({
method: 'GET',
url: 'processes/api/getProcessInfo'
}).then(setProcessData, utilsService.onHttpError);
}
function setProcessData(response) {
$scope.countries = response.data;
}
function isVisibleForCustomer(visibleForCustomer){
return visibleForCustomer === '1' ? 'glyphicon-eye-open' : 'glyphicon-eye-close';
}
function listAvailableProcesses() {
$scope.searchProcessValue = '';
getAvailableProcesses();
utilsService.displayMessage('success', $translate.instant('processes.messages.LIST_ALL_PROCESSES'));
}
function searchProcess() {
const params = $.param({
name: $scope.searchProcessValue
});
$http({
method: 'POST',
url: 'processes/api/searchProcess',
data: params
}).then(getSearchedProcess, utilsService.onHttpError);
}
function getSearchedProcess(response) {
if (response.data.messageData) {
let translationDataMessages = '';
if (response.data.messageData.status === 'success') {
let processesFound = 0;
$.each(response.data.data, (key, country) => {
processesFound += Object.keys(country.processes).length;
});
translationDataMessages = {
processesFound
};
$scope.countries = response.data.data;
} else {
$scope.countries = [];
}
const message = $translate.instant('processes.messages.' + response.data.messageData.message, translationDataMessages);
utilsService.displayMessage(response.data.messageData.status, message);
} else {
utilsService.displayMessage('error', $translate.instant('processes.messages.SERVER_ERROR'));
}
}
}
})();