91 lines
3.3 KiB
JavaScript
91 lines
3.3 KiB
JavaScript
(function () {
|
|
global.dashModule
|
|
.controller('myPackagesDetailsCtrl', ['$scope', '$sce', '$translate', myPackagesDetailsCtrl])
|
|
.directive('myPackagesDetails', [myPackagesDetails]);
|
|
|
|
function myPackagesDetails() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'packages/html/myPackagesDetails'
|
|
};
|
|
}
|
|
|
|
function myPackagesDetailsCtrl($scope, $sce, $translate) {
|
|
$scope.isVisibleToCustomer = isVisibleToCustomer;
|
|
$scope.sumPrices = sumPrices;
|
|
$scope.renderHtml = renderHtml;
|
|
$scope.hasExtraPackages = hasExtraPackages;
|
|
$scope.areAllPayTypesAvailable = areAllPayTypesAvailable;
|
|
$scope.showHideInfoBox = showHideInfoBox;
|
|
$scope.getAlertClass = getAlertClass;
|
|
$scope.getAlertText = getAlertText;
|
|
$scope.getAlertIcon = getAlertIcon;
|
|
$scope.getProductsArray = getProductsArray;
|
|
$scope.productsArray = [];
|
|
|
|
function getAlertClass(option) {
|
|
return !option.isAvailable ? 'alert-danger' : 'alert-warning';
|
|
}
|
|
|
|
function getAlertText(option) {
|
|
return !option.isAvailable ? $translate.instant('packages.messages.NOT_ALL_PAY_AVAILABLE') : $translate.instant('packages.messages.NOT_SET_PAYMENT');
|
|
}
|
|
|
|
function getAlertIcon(option) {
|
|
return !option.isAvailable ? 'glyphicon-ban-circle' : 'glyphicon-warning-sign';
|
|
}
|
|
|
|
function renderHtml(htmlCode) {
|
|
return $sce.trustAsHtml(htmlCode);
|
|
}
|
|
|
|
function areAllPayTypesAvailable(packagePrices, optionPackage) {
|
|
optionPackage.isAvailable = true;
|
|
optionPackage.isSetByMe = true;
|
|
packagePrices.forEach((value, key) => {
|
|
optionPackage.isAvailable = optionPackage.isAvailable &&
|
|
typeof optionPackage.prices[key] !== 'undefined' &&
|
|
value.idPaymentType === optionPackage.prices[key];
|
|
|
|
optionPackage.isSetByMe = optionPackage.isSetByMe &&
|
|
typeof optionPackage.commercialLeadPrices[key] !== 'undefined' &&
|
|
value.idPaymentType === optionPackage.commercialLeadPrices[key];
|
|
});
|
|
return packagePrices.length === optionPackage.prices.length && optionPackage.isAvailable && optionPackage.isSetByMe;
|
|
}
|
|
|
|
function showHideInfoBox(optionPackage) {
|
|
optionPackage.isInfoBoxVisible = !optionPackage.isInfoBoxVisible;
|
|
}
|
|
|
|
function hasExtraPackages(packageObject) {
|
|
return packageObject.packageType === 'standard';
|
|
}
|
|
|
|
function isVisibleToCustomer(visibleToCustomer) {
|
|
const visibleClasses = {
|
|
0: 'glyphicon-eye-close',
|
|
1: 'glyphicon-eye-open',
|
|
2: 'no-icon'
|
|
};
|
|
|
|
return visibleClasses[visibleToCustomer];
|
|
}
|
|
|
|
function sumPrices(values) {
|
|
let total = 0;
|
|
values.forEach((val) => {
|
|
total += parseFloat(val);
|
|
});
|
|
|
|
return total;
|
|
}
|
|
|
|
function getProductsArray(packageInfo) {
|
|
if('products' in packageInfo && packageInfo.products) {
|
|
$scope.productsArray = packageInfo.products.split(',');
|
|
}
|
|
}
|
|
}
|
|
})();
|