diff options
Diffstat (limited to 'js/components/notify.js')
| -rwxr-xr-x | js/components/notify.js | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/js/components/notify.js b/js/components/notify.js deleted file mode 100755 index d67be84..0000000 --- a/js/components/notify.js +++ /dev/null | |||
| @@ -1,189 +0,0 @@ | |||
| 1 | /*! UIkit 2.26.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ | ||
| 2 | (function(addon) { | ||
| 3 | |||
| 4 | var component; | ||
| 5 | |||
| 6 | if (window.UIkit) { | ||
| 7 | component = addon(UIkit); | ||
| 8 | } | ||
| 9 | |||
| 10 | if (typeof define == "function" && define.amd) { | ||
| 11 | define("uikit-notify", ["uikit"], function(){ | ||
| 12 | return component || addon(UIkit); | ||
| 13 | }); | ||
| 14 | } | ||
| 15 | |||
| 16 | })(function(UI){ | ||
| 17 | |||
| 18 | "use strict"; | ||
| 19 | |||
| 20 | var containers = {}, | ||
| 21 | messages = {}, | ||
| 22 | |||
| 23 | notify = function(options){ | ||
| 24 | |||
| 25 | if (UI.$.type(options) == 'string') { | ||
| 26 | options = { message: options }; | ||
| 27 | } | ||
| 28 | |||
| 29 | if (arguments[1]) { | ||
| 30 | options = UI.$.extend(options, UI.$.type(arguments[1]) == 'string' ? {status:arguments[1]} : arguments[1]); | ||
| 31 | } | ||
| 32 | |||
| 33 | return (new Message(options)).show(); | ||
| 34 | }, | ||
| 35 | closeAll = function(group, instantly){ | ||
| 36 | |||
| 37 | var id; | ||
| 38 | |||
| 39 | if (group) { | ||
| 40 | for(id in messages) { if(group===messages[id].group) messages[id].close(instantly); } | ||
| 41 | } else { | ||
| 42 | for(id in messages) { messages[id].close(instantly); } | ||
| 43 | } | ||
| 44 | }; | ||
| 45 | |||
| 46 | var Message = function(options){ | ||
| 47 | |||
| 48 | this.options = UI.$.extend({}, Message.defaults, options); | ||
| 49 | |||
| 50 | this.uuid = UI.Utils.uid("notifymsg"); | ||
| 51 | this.element = UI.$([ | ||
| 52 | |||
| 53 | '<div class="uk-notify-message">', | ||
| 54 | '<a class="uk-close"></a>', | ||
| 55 | '<div></div>', | ||
| 56 | '</div>' | ||
| 57 | |||
| 58 | ].join('')).data("notifyMessage", this); | ||
| 59 | |||
| 60 | this.content(this.options.message); | ||
| 61 | |||
| 62 | // status | ||
| 63 | if (this.options.status) { | ||
| 64 | this.element.addClass('uk-notify-message-'+this.options.status); | ||
| 65 | this.currentstatus = this.options.status; | ||
| 66 | } | ||
| 67 | |||
| 68 | this.group = this.options.group; | ||
| 69 | |||
| 70 | messages[this.uuid] = this; | ||
| 71 | |||
| 72 | if(!containers[this.options.pos]) { | ||
| 73 | containers[this.options.pos] = UI.$('<div class="uk-notify uk-notify-'+this.options.pos+'"></div>').appendTo('body').on("click", ".uk-notify-message", function(){ | ||
| 74 | |||
| 75 | var message = UI.$(this).data("notifyMessage"); | ||
| 76 | |||
| 77 | message.element.trigger('manualclose.uk.notify', [message]); | ||
| 78 | message.close(); | ||
| 79 | }); | ||
| 80 | } | ||
| 81 | }; | ||
| 82 | |||
| 83 | |||
| 84 | UI.$.extend(Message.prototype, { | ||
| 85 | |||
| 86 | uuid: false, | ||
| 87 | element: false, | ||
| 88 | timout: false, | ||
| 89 | currentstatus: "", | ||
| 90 | group: false, | ||
| 91 | |||
| 92 | show: function() { | ||
| 93 | |||
| 94 | if (this.element.is(":visible")) return; | ||
| 95 | |||
| 96 | var $this = this; | ||
| 97 | |||
| 98 | containers[this.options.pos].show().prepend(this.element); | ||
| 99 | |||
| 100 | var marginbottom = parseInt(this.element.css("margin-bottom"), 10); | ||
| 101 | |||
| 102 | this.element.css({"opacity":0, "margin-top": -1*this.element.outerHeight(), "margin-bottom":0}).animate({"opacity":1, "margin-top": 0, "margin-bottom":marginbottom}, function(){ | ||
| 103 | |||
| 104 | if ($this.options.timeout) { | ||
| 105 | |||
| 106 | var closefn = function(){ $this.close(); }; | ||
| 107 | |||
| 108 | $this.timeout = setTimeout(closefn, $this.options.timeout); | ||
| 109 | |||
| 110 | $this.element.hover( | ||
| 111 | function() { clearTimeout($this.timeout); }, | ||
| 112 | function() { $this.timeout = setTimeout(closefn, $this.options.timeout); } | ||
| 113 | ); | ||
| 114 | } | ||
| 115 | |||
| 116 | }); | ||
| 117 | |||
| 118 | return this; | ||
| 119 | }, | ||
| 120 | |||
| 121 | close: function(instantly) { | ||
| 122 | |||
| 123 | var $this = this, | ||
| 124 | finalize = function(){ | ||
| 125 | $this.element.remove(); | ||
| 126 | |||
| 127 | if (!containers[$this.options.pos].children().length) { | ||
| 128 | containers[$this.options.pos].hide(); | ||
| 129 | } | ||
| 130 | |||
| 131 | $this.options.onClose.apply($this, []); | ||
| 132 | $this.element.trigger('close.uk.notify', [$this]); | ||
| 133 | |||
| 134 | delete messages[$this.uuid]; | ||
| 135 | }; | ||
| 136 | |||
| 137 | if (this.timeout) clearTimeout(this.timeout); | ||
| 138 | |||
| 139 | if (instantly) { | ||
| 140 | finalize(); | ||
| 141 | } else { | ||
| 142 | this.element.animate({"opacity":0, "margin-top": -1* this.element.outerHeight(), "margin-bottom":0}, function(){ | ||
| 143 | finalize(); | ||
| 144 | }); | ||
| 145 | } | ||
| 146 | }, | ||
| 147 | |||
| 148 | content: function(html){ | ||
| 149 | |||
| 150 | var container = this.element.find(">div"); | ||
| 151 | |||
| 152 | if(!html) { | ||
| 153 | return container.html(); | ||
| 154 | } | ||
| 155 | |||
| 156 | container.html(html); | ||
| 157 | |||
| 158 | return this; | ||
| 159 | }, | ||
| 160 | |||
| 161 | status: function(status) { | ||
| 162 | |||
| 163 | if (!status) { | ||
| 164 | return this.currentstatus; | ||
| 165 | } | ||
| 166 | |||
| 167 | this.element.removeClass('uk-notify-message-'+this.currentstatus).addClass('uk-notify-message-'+status); | ||
| 168 | |||
| 169 | this.currentstatus = status; | ||
| 170 | |||
| 171 | return this; | ||
| 172 | } | ||
| 173 | }); | ||
| 174 | |||
| 175 | Message.defaults = { | ||
| 176 | message: "", | ||
| 177 | status: "", | ||
| 178 | timeout: 5000, | ||
| 179 | group: null, | ||
| 180 | pos: 'top-center', | ||
| 181 | onClose: function() {} | ||
| 182 | }; | ||
| 183 | |||
| 184 | UI.notify = notify; | ||
| 185 | UI.notify.message = Message; | ||
| 186 | UI.notify.closeAll = closeAll; | ||
| 187 | |||
| 188 | return notify; | ||
| 189 | }); | ||
