Compare commits

...

2 Commits

Author SHA1 Message Date
alice groux
3354374ffd feat(app/notifications): improve notification error to avoid repetitions 2021-03-08 15:12:35 +01:00
alice groux
d3406cfefb feat(app/notifications): update notification error by adding api types 2021-03-08 15:12:35 +01:00
2 changed files with 48 additions and 23 deletions

View File

@@ -5,6 +5,16 @@ angular.module('portainer.app').factory('Notifications', [
function NotificationsFactory($sanitize) {
'use strict';
var service = {};
// To complete (https://github.com/portainer/portainer/issues/4240)
service.ApiTypes = Object.freeze({
KUBERNETES: 1,
DOCKER: 2,
DOCKER_REGISTRY: 3,
AZURE: 4,
STORIGE: 5,
PORTAINER: 6,
PORTAINER_AGENT: 7,
});
service.success = function (title, text) {
toastr.success($sanitize(text), $sanitize(title));
@@ -14,28 +24,43 @@ angular.module('portainer.app').factory('Notifications', [
toastr.warning($sanitize(text), $sanitize(title), { timeOut: 6000 });
};
service.error = function (title, e, fallbackText) {
var msg = fallbackText;
if (e.err && e.err.data && e.err.data.message) {
msg = e.err.data.message;
} else if (e.err && e.err.data && e.err.data.details) {
msg = e.err.data.details;
} else if (e.data && e.data.details) {
msg = e.data.details;
} else if (e.data && e.data.message) {
msg = e.data.message;
} else if (e.data && e.data.content) {
msg = e.data.content;
} else if (e.message) {
msg = e.message;
} else if (e.err && e.err.data && e.err.data.length > 0 && e.err.data[0].message) {
msg = e.err.data[0].message;
} else if (e.err && e.err.data && e.err.data.err) {
msg = e.err.data.err;
} else if (e.data && e.data.err) {
msg = e.data.err;
} else if (e.msg) {
msg = e.msg;
service.error = function (title, e, fallbackText, APIType = service.ApiTypes.KUBERNETES) {
var msg = undefined;
if (APIType === service.ApiTypes.DOCKER) {
if (e.err && e.err.data && e.err.data.details) {
msg = e.err.data.details;
} else if (e.err && e.err.data && e.err.data.message) {
msg = e.err.data.message;
}
}
if (APIType !== service.ApiTypes.DOCKER) {
if (e.err && e.err.data && e.err.data.message) {
msg = e.err.data.message;
} else if (e.err && e.err.data && e.err.data.details) {
msg = e.err.data.details;
}
}
if (msg === undefined) {
if (e.data && e.data.details) {
msg = e.data.details;
} else if (e.data && e.data.message) {
msg = e.data.message;
} else if (e.data && e.data.content) {
msg = e.data.content;
} else if (e.message) {
msg = e.message;
} else if (e.err && e.err.data && e.err.data.length > 0 && e.err.data[0].message) {
msg = e.err.data[0].message;
} else if (e.err && e.err.data && e.err.data.err) {
msg = e.err.data.err;
} else if (e.data && e.data.err) {
msg = e.data.err;
} else if (e.msg) {
msg = e.msg;
} else {
msg = fallbackText;
}
}
if (msg !== 'Invalid JWT token') {

View File

@@ -75,7 +75,7 @@ class CreateCustomTemplateViewController {
this.Notifications.success('Custom template successfully created');
this.$state.go('docker.templates.custom');
} catch (err) {
this.Notifications.error('Failure', err, 'A template with the same name already exists');
this.Notifications.error('Failure', err, 'A template with the same name already exists', this.Notifications.ApiTypes.DOCKER);
} finally {
this.state.actionInProgress = false;
}