Sha256: b80fdedd5012c765d156b64f937174252d5390d68b0a058885eeb99ec074b3c8

Contents?: true

Size: 1.91 KB

Versions: 2

Compression:

Stored size: 1.91 KB

Contents

(function(Application, jQuery, _){
  _.extend(
    Application.namespace('LayMeOut.Utils'),
    (function($) {
      var _FlashMessage = function(options) {
        this.containerId = '#' + options.containerId;
        this.messageClass = '.' + options.messageClass;
        this.messageTemplateId = options.messageTemplateId;
        this.interval = options.interval;
      };

      _FlashMessage.prototype = (function() {
        var _showFlashMessage = function(message) {
          var self = this;
          var element = _addFlashMessage.apply(self, [message]);
          element.fadeIn('slow');

          setTimeout(function(){
            _removeFlashMessage.apply(self, [element]);
          }, self.interval);
        };

        var _showFlashMessages = function(messages) {
          var self = this;

          if(!_.isArray(messages)) {
            messages = [messages];
          }
          _.each(messages, function(message) {
            _showFlashMessage.apply(self, [message]);
          });
        };

        var _addFlashMessage = function(message) {
          var self = this;
          var rawHtml = ich[self.messageTemplateId](message);
          $(self.containerId).prepend(rawHtml);
          return $(self.containerId).find(self.messageClass).first()
        };

        var _removeFlashMessage = function(element) {
          $(element).fadeOut(function(){
            $(this).remove();
          });
        };

        return {
          showFlashMessages: _showFlashMessages
        };
      }());

      var FlashMessage = (function() {
        var instance;

        return {
          getInstance: function(options) {
            if(_.isUndefined(instance)) {
              instance = new _FlashMessage(options);
            }
            return instance;
          }
        };
      }());

      return {FlashMessage: FlashMessage};
    }(jQuery, ich))
  );
}(window.LayMeOut = window.LayMeOut || {}, jQuery, _));

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lay_me_out-1.2.9 app/assets/javascripts/lay_me_out/utils/flash-message.js
lay_me_out-1.2.8 app/assets/javascripts/lay_me_out/utils/flash-message.js