98 lines
3.8 KiB
JavaScript
98 lines
3.8 KiB
JavaScript
(function () {
|
|
global.dashModule
|
|
.directive('editPackages', editPackagesDirective)
|
|
.controller('editPackagesCtrl', ['$scope', '$http', '$', '$translate', '$timeout', 'utilsService', 'packagesUtilsService', editPackagesCtrl]);
|
|
|
|
function editPackagesDirective() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'packages/html/editPackagesTemplate'
|
|
};
|
|
}
|
|
|
|
function editPackagesCtrl($scope, $http, $, $translate, $timeout, utilsService, packagesUtilsService) {
|
|
$scope.getCountries = getCountries;
|
|
$scope.isCountrySelected = isCountrySelected;
|
|
$scope.isPackageSelected = isPackageSelected;
|
|
$scope.showSelectPackages = getPackages;
|
|
$scope.packageList = [];
|
|
$scope.productUnit = [];
|
|
$scope.getEditPackagesTitle = getEditPackagesTitle;
|
|
$scope.checkQuantityAmount = utilsService.verifyAmountAdded;
|
|
$scope.setCountryAndPackageSelected = setCountryAndPackageSelected;
|
|
|
|
function getCountries() {
|
|
const params = $.param({
|
|
getArray: true
|
|
});
|
|
$http({
|
|
method: 'POST',
|
|
data: params,
|
|
url: 'countries/api/getAllCountries'
|
|
}).then(setCountries, utilsService.onHttpError);
|
|
}
|
|
|
|
function setCountries(response) {
|
|
$scope.countries = response.data;
|
|
}
|
|
|
|
function isCountrySelected(selectedCountryId) {
|
|
return typeof selectedCountryId !== 'undefined' && selectedCountryId !== 0;
|
|
}
|
|
|
|
function isPackageSelected() {
|
|
return typeof $scope.packageSelected !== 'undefined' && $scope.packageSelected;
|
|
}
|
|
|
|
function getPackages() {
|
|
utilsService.registerFunction('setPackages', setPackages);
|
|
packagesUtilsService.getPackagesPerCountry($scope.selectedCountryId).then(setPackages, global.onHttpError);
|
|
}
|
|
|
|
function setPackages(response) {
|
|
$scope.packageList = [];
|
|
|
|
if (response.data) {
|
|
$timeout(() => {
|
|
$scope.packageList = response.data && response.data.data ? response.data.data : response.data;
|
|
}, 0);
|
|
}
|
|
}
|
|
|
|
function getEditPackagesTitle() {
|
|
const translationData = {
|
|
packageName: $scope.packageSelected ? $scope.packageSelected.name : '',
|
|
packageReference: $scope.packageSelected ? $scope.packageSelected.reference : '',
|
|
country: $scope.selectedCountryId && $scope.countries ? searchCountryNameSelected() : ''
|
|
};
|
|
|
|
const editPackageTitle = getEditPackageTitle();
|
|
const packageName = $scope.packageSelected ? $scope.packageSelected.name : '';
|
|
const translatedMessage = editPackageTitle ? $translate.instant('packages.forms.' + editPackageTitle, translationData) : $scope.packageName;
|
|
|
|
return packageName ? packageName + translatedMessage : translatedMessage;
|
|
}
|
|
|
|
function getEditPackageTitle() {
|
|
if (typeof $scope.countrySelected === 'undefined' && typeof $scope.packageSelected === 'undefined') {
|
|
return 'SELECT_COUNTRY_PACKAGE';
|
|
}
|
|
return 'SELECTED_COUNTRY';
|
|
}
|
|
|
|
function setCountryAndPackageSelected() {
|
|
if($scope.packageSelected && $scope.selectedCountryId){
|
|
packagesUtilsService.setCountryAndPackageSelected(searchCountryNameSelected(), $scope.selectedCountryId, $scope.packageSelected);
|
|
}
|
|
}
|
|
|
|
function searchCountryNameSelected() {
|
|
const selectedCountry = $scope.countries.find(countryInfo => {
|
|
return countryInfo.id === $scope.selectedCountryId;
|
|
});
|
|
|
|
return selectedCountry ? selectedCountry.name : '';
|
|
}
|
|
}
|
|
})();
|