(function () { global.dashModule.service('utilsService', ['$translate', '$exceptionHandler', 'Notification', 'ORDER_STATUSES_ICONS', utilsService]); function utilsService($translate, $exceptionHandler, Notification, ORDER_STATUSES_ICONS) { let registeredFunction = {}; return { displayMessage, sortByAttributeName, verifyAmountAdded, sortByAtribute, onHttpError, registerFunction, executeRegisteredFunction, getStatusIcon, getTynimceOptions }; function displayMessage(status, message) { switch (status) { case 'success': return Notification.success(getMessageDisplayParams(message)); case 'error': return Notification.error(getMessageDisplayParams(message)); case 'warning': return Notification.warning(getMessageDisplayParams(message)); default: break; } } function onHttpError(response) { const err = { message: response.data || 'no reponse from server', stack: response.config && response.config.url ? response.config.url : 'no url' }; $exceptionHandler(err, 'HTTP request failed'); } function getMessageDisplayParams(message) { return { message: message, delay: 10000, positionY: 'top', positionX: 'right', startTop: 20, startRight: 20 }; } function sortByAttributeName(attribute) { return function (a, b) { const nameA = a[attribute].toLowerCase(); const nameB = b[attribute].toLowerCase(); if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } return 0; }; } function verifyAmountAdded(productQuantity) { if (productQuantity < 1 || productQuantity > 100 || typeof productQuantity === 'undefined') { const message = $translate.instant('packages.forms.messages.ONLY_NUMBERS'); displayMessage('error', message); } } function sortByAtribute(a, b, attribute) { if (a[attribute] < b[attribute]) { return -1; } if (a[attribute] > b[attribute]) { return 1; } return 0; } function registerFunction(functionName, calbackFunction) { registeredFunction[functionName] = calbackFunction; } function executeRegisteredFunction(functionName, aditionalParam = '') { if (registeredFunction[functionName]) { registeredFunction[functionName](aditionalParam); } } function getStatusIcon(status) { return ORDER_STATUSES_ICONS[status]; } function getTynimceOptions(options) { let tinymceOptions = { height: '250px', plugins: 'link image textcolor lists colorpicker code', toolbar: 'undo redo | styleselect | bold italic underline forecolor fontsizeselect | link | alignleft aligncenter alignright | numlist bullist | outdent indent | code' }; if (typeof options === 'object') { Object.assign(tinymceOptions, options); } return tinymceOptions; } } })();