Skip to content

Instantly share code, notes, and snippets.

@dragg
Created February 10, 2017 06:18
Show Gist options
  • Save dragg/b7900f1643e65132cae8ae896d18df33 to your computer and use it in GitHub Desktop.
Save dragg/b7900f1643e65132cae8ae896d18df33 to your computer and use it in GitHub Desktop.
Alert service using inside https://github.com/jirikavi/AngularJS-Toaster and angular translation package
(function () {
'use strict';
angular
.module('app')
.service('alertService', alertService);
alertService.$inject = ['toaster', '$filter'];
/* @ngInject */
function alertService(toaster, $filter) {
/* jshint validthis: true */
let vm = this;
vm.pop = pop;
vm.success = success;
vm.error = error;
vm.info = info;
vm.showResponseError = showResponseError;
function pop(data, needTranslate = true) {
data = prepareData(data, undefined, needTranslate);
toaster.pop(data);
}
function success(data, needTranslate = true) {
data = prepareData(data, 'ALERT_TITLE_DEFAULT_SUCCESS', needTranslate);
toaster.success(data);
}
function info(data, needTranslate = true) {
data = prepareData(data, 'ALERT_TITLE_DEFAULT_INFO', needTranslate);
toaster.info(data);
}
function error(data, needTranslate = true) {
data = prepareData(data, 'ALERT_TITLE_DEFAULT_ERROR', needTranslate);
toaster.error(data);
}
function showResponseError(response, title) {
for (let key in response) {
if (response.hasOwnProperty(key) && (response[key] instanceof Array)) {
for (let i in response[key]) {
if (response[key].hasOwnProperty(i)) {
error({
title: title ? title : 'ALERT_TITLE_DEFAULT_ERROR',
body: response[key][i]
});
}
}
} else {
error({
title: title,
body: response[key]
});
}
}
}
function prepareData(data, title, needTranslate) {
if (!(data instanceof Object)) {
data = {
body: needTranslate ? $filter('translate')(data) : data,
}
}
data.title = data.title ? data.title : title;
if (needTranslate) {
data.title = $filter('translate')(data.title);
data.body = $filter('translate')(data.body);
}
data.bodyOutputType = 'trustedHtml';
return data;
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment