Files
greenhouse-MyController/www/services/alert_services.js

139 lines
4.7 KiB
JavaScript

/*
* Copyright 2015-2018 Jeeva Kandasamy (jkandasa@gmail.com)
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// don't forget to declare this service module as a dependency in your main app constructor!
//http://js2.coffee/#coffee2js
//https://coderwall.com/p/r_bvhg/angular-ui-bootstrap-alert-service-for-angular-js
myControllerModule.factory('alertService', function() {
var alertCfg = {};
alertCfg.displayTemplate = '<div class="col-xs-11 col-sm-3 toast-pf alert alert-{0} alert-dismissable">' +
'<button type="button" class="close" data-dismiss="alert" data-notify="dismiss" aria-hidden="true">' +
'<span class="pficon pficon-close"></span>' +
'</button>'+
'<span data-notify="icon"></span>' +
'<strong>{1}</strong> {2}' +
'<a href="{3}" target="{4}" data-notify="url"></a>'+
'</div>';
alertCfg.placement = "top";
alertCfg.delay = 1000;
alertCfg.timer = 1000;
return alertService = {
default: function(msg) {
$.notify({
icon: 'pficon pficon-info',
message: msg
},{
type: 'info',
delay: alertCfg.delay,
timer: alertCfg.timer,
placement: {
from: alertCfg.placement,
},
animate: {
enter: 'animated lightSpeedIn',
exit: 'animated lightSpeedOut'
},
template: alertCfg.displayTemplate,
});
},
success: function(msg){
$.notify({
icon: 'pficon pficon-ok',
message: msg
},{
type: 'success',
delay: alertCfg.delay,
timer: alertCfg.timer,
placement: {
from: alertCfg.placement,
},
animate: {
enter: 'animated lightSpeedIn',
exit: 'animated lightSpeedOut'
},
template: alertCfg.displayTemplate,
});
},
warning: function(msg){
$.notify({
icon: 'pficon pficon-warning-triangle-o',
message: msg
},{
type: 'warning',
delay: alertCfg.delay,
timer: alertCfg.timer,
placement: {
from: alertCfg.placement,
},
animate: {
enter: 'animated lightSpeedIn',
exit: 'animated lightSpeedOut'
},
template: alertCfg.displayTemplate,
});
},
danger: function(msg){
$.notify({
icon: 'pficon pficon-error-circle-o',
message: msg
},{
type: 'danger',
delay: alertCfg.delay,
timer: alertCfg.timer,
placement: {
from: alertCfg.placement,
},
animate: {
enter: 'animated lightSpeedIn',
exit: 'animated lightSpeedOut'
},
template: alertCfg.displayTemplate,
});
}
};
}
);
myControllerModule.factory('displayRestError', function(alertService){
return displayRestError = {
display: function(error){
//alertService.danger(angular.toJson(error));
var displayMessage = '';
if(error.status === 0){
displayMessage = 'NO RESPONSE, Check your network connection [or] Server status!';
}else if(error.data != null){
if(error.data.errorMessage != null){
displayMessage = error.status +': '+ error.statusText+'<br>'+error.data.errorMessage;
} else if(error.data.message != null) {
displayMessage = error.status +': '+ error.statusText+'<br>'+error.data.message;
} else {
displayMessage = error.status +': '+ error.statusText;
}
}else if(data != null){
displayMessage = error.status +': '+ error.statusText;
}
alertService.danger(displayMessage);
},
displayMsg: function(response, expectedCode, successDisplay){
alertService.success(angular.toJson(response));
}
};
});