/
django-messages-ui.min.js
4 lines (4 loc) · 2.35 KB
/
django-messages-ui.min.js
1
2
3
4
/*! Django Messages UI - v1.0.1 - 2013-10-27
* https://github.com/jgerigmeyer/jquery-django-messages-ui
* Copyright (c) 2013 Jonny Gerig Meyer; Licensed MIT */
!function(a){"use strict";var b=0,c={init:function(b){var d=a(this),e=a.extend({},a.fn.messages.defaults,d.data("messages-ui-opts"),b);return d.data("messages-ui-opts",e),e.closeLink&&d.on("click",e.message+" "+e.closeLink,function(f){f.preventDefault(),a(this).blur();var g=a(this).closest(e.message);c.remove(g,b,d)}),e.handleAjax&&a.ajaxSetup({dataType:"json",dataFilter:function(e,f){if(e&&"json"===f){var g;try{g=a.parseJSON(e)}catch(h){g=!1}if(g&&g.messages){var i=a(g.messages);i.each(function(){c.add(this,b,d)})}}return e}}),c.bindHandlers(d.find(e.message),e,d),d},add:function(b,d,e){var f,g=e||a(this),h=a.extend({},a.fn.messages.defaults,g.data("messages-ui-opts"),d),i=b||{};return i.escapeHTML=h.escapeHTML,"handlebars"===h.templating&&Handlebars&&Handlebars.templates&&Handlebars.templates.message?f=a(Handlebars.templates.message(i)):"ich"===h.templating&&ich&&ich.message&&(f=a(ich.message(i))),f&&(f.appendTo(g),c.bindHandlers(f,h,g)),f},remove:function(b,c,d){var e=d||a(this),f=a.extend({},a.fn.messages.defaults,e.data("messages-ui-opts"),c);b.data("count")&&a.doTimeout("msg-"+b.data("count")),f.closeCallback&&f.closeCallback(b)},bindHandlers:function(c,d,e){var f=e||a(this),g=a.extend({},a.fn.messages.defaults,f.data("messages-ui-opts"),d),h=c.filter(g.transientMessage);if(h.length){var i=function(b){var c=b.data("count");a(document).off(".msg-"+c),b.off(".msg-"+c),a.doTimeout("msg-"+c,g.transientDelay,function(){g.transientCallback&&g.transientCallback(b)})};h.each(function(){var c=a(this);c.data("count",++b),a(document).one("mousedown.msg-"+b+" keydown.msg-"+b+" scroll.msg-"+b,function(){i(c)}),c.one("mouseover.msg-"+b,function(){i(c)})})}},exposeMethods:function(){return c}};a.fn.messages=function(b){return c[b]?c[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?(a.error("Method "+b+" does not exist on jQuery.messages"),void 0):c.init.apply(this,arguments)},a.fn.messages.defaults={message:".message",transientMessage:".success",closeLink:".close",closeCallback:function(a){a.stop().fadeOut("fast",function(){a.remove()})},transientDelay:500,transientCallback:function(a){a.fadeOut(2e3,function(){a.remove()})},handleAjax:!1,templating:"handlebars",escapeHTML:!0}}(jQuery);