thiagofm/memcached-manager

View on GitHub
lib/public/javascripts/angular/services/notification.js

Summary

Maintainability
A
0 mins
Test Coverage
window.notification = function(message, type) {
  var color;

  // type of notification to color mapping
  switch(type) {
    case 'success':
      color = 'green';
      break;
    case 'error':
      color = 'red';
      break;
    case 'fatal':
      color = 'red-fatal';
      break;
    case 'info':
      color = 'blue';
      break;
  }

  // if past notification isn't the same as the currrent one
  if ($('.notification-red-fatal').text() != message) {
    // remove current notification div
    if ($('#notification').length) { $('#notification').remove(); }

    // add a new notification with of the desired type and message
    $('.container').prepend('<div id="notification" class="notification-'+ color +'">'+ message +'</div>');
  }

  if (type != 'fatal'){
    setTimeout(function(){
      $('#notification').animate({height: 'toggle', easing: 'swing'}, 1000);
    }, 1000);
  }
}

services.factory('Notification', function() {
  return {
    error: function(message) {
      window.notification(message, 'error');
    },
    fatal: function(message) {
      window.notification(message, 'fatal');
    },
    info: function(message) {
      window.notification(message, 'info');
    },
    success: function(message) {
      window.notification(message, 'success');
    }
  };
});