Files
old-wiaas-legacy/api-wiaas/client/js/components/packages/edit-packages.directive.js
2018-06-11 11:09:35 +02:00

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 : '';
}
}
})();