75 lines
2.7 KiB
JavaScript
75 lines
2.7 KiB
JavaScript
(function() {
|
|
global.dashModule.directive('displayCdnImages', displayCdnImagesDirective);
|
|
|
|
function displayCdnImagesDirective() {
|
|
return {
|
|
restrict: 'E',
|
|
scope: {
|
|
imageParams: '@'
|
|
},
|
|
controller: displayCdnImagesCtrl,
|
|
templateUrl: 'packages/html/displayCdnImagesTemplate'
|
|
};
|
|
}
|
|
|
|
function displayCdnImagesCtrl($scope, $, $http, $translate, utilsService) {
|
|
$scope.getImagesFromCdn = getImagesFromCdn;
|
|
$scope.images = [];
|
|
|
|
utilsService.registerFunction('getImagesFromCdn', getImagesFromCdn);
|
|
utilsService.registerFunction('saveCoverImage', saveCoverImage);
|
|
|
|
function getImagesFromCdn() {
|
|
$scope.imageParams = typeof $scope.imageParams === 'string' && JSON.parse($scope.imageParams);
|
|
const params = $.param({
|
|
idCountry: $scope.imageParams.idCountry || 0,
|
|
idPackage: $scope.imageParams.idPackage || 0
|
|
});
|
|
|
|
$http({
|
|
method: 'POST',
|
|
url: 'packages/api/getImagesFromCdn',
|
|
data: params
|
|
}).then(setImagesPerCountry, utilsService.onHttpError);
|
|
}
|
|
|
|
function setImagesPerCountry(response) {
|
|
if(response.data) {
|
|
$scope.images = response.data.resources || [];
|
|
|
|
const coverPhoto = $scope.images.find(imageDetails => {
|
|
return imageDetails.useAsMarketPicture === true;
|
|
});
|
|
|
|
$scope.profilePicture = coverPhoto || [];
|
|
}
|
|
}
|
|
|
|
function saveCoverImage(imageParams) {
|
|
const coverPhotoDetails = $scope.images.find(imageDetails => {
|
|
return imageDetails.secure_url === $scope.profilePicture.secure_url;
|
|
});
|
|
|
|
const params = $.param({
|
|
idPackage: imageParams.idPackage || 0,
|
|
publicId: coverPhotoDetails && coverPhotoDetails.public_id ? coverPhotoDetails.public_id : null
|
|
});
|
|
|
|
$http({
|
|
method: 'POST',
|
|
url: 'packages/api/saveCoverPhotoForPackage',
|
|
data: params
|
|
}).then(displayUpdateMessage, utilsService.onHttpError);
|
|
}
|
|
|
|
function displayUpdateMessage(response) {
|
|
if (typeof response.data.messages !== 'undefined') {
|
|
response.data.messages.forEach((messageObj) => {
|
|
const translatedMessage = $translate.instant('packages.forms.messages.' + messageObj.message);
|
|
utilsService.displayMessage(messageObj.code, translatedMessage);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
})();
|