Initial commit
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
(function () {
|
||||
global.dashModule
|
||||
.controller('documentsLinkCtrl', ['$scope', '$http', '$', '$translate', 'utilsService', documentsLinkController])
|
||||
.directive('documentsLink', [documentsLinkDirective]);
|
||||
|
||||
function documentsLinkDirective() {
|
||||
return {
|
||||
restrict: 'E',
|
||||
templateUrl: 'documents/html/documentsLinkTemplate'
|
||||
};
|
||||
}
|
||||
|
||||
function documentsLinkController($scope, $http, $, $translate, utilsService) {
|
||||
$scope.getDocumentsAndPackages = getDocumentsAndPackages;
|
||||
$scope.selectPackage = selectPackage;
|
||||
$scope.getPackageClass = getPackageClass;
|
||||
$scope.documentDragStart = documentDragStart;
|
||||
$scope.documentDragStop = documentDragStop;
|
||||
$scope.documentDropped = documentDropped;
|
||||
$scope.updatePackageDocuments = updatePackageDocuments;
|
||||
$scope.documents = [];
|
||||
$scope.packages = [];
|
||||
$scope.selectedPackage = {};
|
||||
|
||||
function getDocumentsAndPackages() {
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'documents/api/getDocumentsAndPackages'
|
||||
}).then(setDocumentsAndPackages, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function setDocumentsAndPackages(response) {
|
||||
if (response.data && response.data.documents && response.data.packages) {
|
||||
$scope.documents = response.data.documents;
|
||||
$scope.packages = response.data.packages;
|
||||
$scope.documents.forEach(hideLinkedDocuments);
|
||||
$scope.selectedPackage = response.data.packages[0] || {};
|
||||
}
|
||||
}
|
||||
|
||||
function hideLinkedDocuments(curentDocument) {
|
||||
let isDocumentInArray = false;
|
||||
if ($scope.selectedPackage.documents) {
|
||||
isDocumentInArray = $scope.selectedPackage.documents.find((doc) => {
|
||||
return doc.idDocument === curentDocument.idDocument;
|
||||
});
|
||||
}
|
||||
|
||||
curentDocument.isNotLinked = isDocumentInArray ? curentDocument.isNotLinked = false : curentDocument.isNotLinked = true;
|
||||
}
|
||||
|
||||
function selectPackage(selected) {
|
||||
$scope.selectedPackage = selected;
|
||||
$scope.documents.forEach(hideLinkedDocuments);
|
||||
}
|
||||
|
||||
function getPackageClass(curent) {
|
||||
return curent === $scope.selectedPackage ? 'selected-package' : '';
|
||||
}
|
||||
|
||||
function documentDragStart(event, ui, selector) {
|
||||
$('#'+selector).css({
|
||||
overflow: 'visible',
|
||||
});
|
||||
}
|
||||
|
||||
function documentDragStop(event, ui, selector) {
|
||||
$('#'+ selector).css({
|
||||
'overflow': 'auto'
|
||||
});
|
||||
}
|
||||
|
||||
function documentDropped(event, ui, dropContainer) {
|
||||
const dropToSelector = $(ui.helper).attr('drop-to');
|
||||
const idDocument = $(ui.helper).attr('id-document');
|
||||
|
||||
if(dropContainer !== dropToSelector){
|
||||
return;
|
||||
}
|
||||
|
||||
if (dropToSelector === 'linked-documents') {
|
||||
const dragedDocument = $scope.documents.find((doc) => {
|
||||
return doc.idDocument === idDocument;
|
||||
});
|
||||
|
||||
$scope.selectedPackage.documents.push(dragedDocument);
|
||||
$scope.documents.forEach(hideLinkedDocuments);
|
||||
} else if(dropToSelector === 'all-documents') {
|
||||
const dragedDocumentIndex = $scope.selectedPackage.documents.findIndex((doc) => {
|
||||
return doc.idDocument === idDocument;
|
||||
});
|
||||
$scope.selectedPackage.documents.splice(dragedDocumentIndex, 1);
|
||||
$scope.documents.forEach(hideLinkedDocuments);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function updatePackageDocuments() {
|
||||
const params = $.param({
|
||||
idPackage: $scope.selectedPackage.idPackage,
|
||||
documents: JSON.stringify($scope.selectedPackage.documents)
|
||||
});
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'documents/api/updatePackageDocuments',
|
||||
data: params
|
||||
}).then(updateMessage, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function updateMessage(response) {
|
||||
if (typeof response.data.messages !== 'undefined') {
|
||||
response.data.messages.forEach((messageObj) => {
|
||||
let translatedMessage = $translate.instant('documents.messages.' + messageObj.message);
|
||||
utilsService.displayMessage(messageObj.code, translatedMessage);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user