mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-08-04 21:39:04 +00:00
add CORS header to local rules
This commit is contained in:
180
web/js/addons/notify.js
Executable file
180
web/js/addons/notify.js
Executable file
@@ -0,0 +1,180 @@
|
||||
/*! UIkit 2.9.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
|
||||
|
||||
(function(addon) {
|
||||
|
||||
var component;
|
||||
|
||||
if (jQuery && jQuery.UIkit) {
|
||||
component = addon(jQuery, jQuery.UIkit);
|
||||
}
|
||||
|
||||
if (typeof define == "function" && define.amd) {
|
||||
define("uikit-notify", ["uikit"], function(){
|
||||
return component || addon(jQuery, jQuery.UIkit);
|
||||
});
|
||||
}
|
||||
|
||||
})(function($, UI){
|
||||
|
||||
var containers = {},
|
||||
messages = {},
|
||||
|
||||
notify = function(options){
|
||||
|
||||
if ($.type(options) == 'string') {
|
||||
options = { message: options };
|
||||
}
|
||||
|
||||
if (arguments[1]) {
|
||||
options = $.extend(options, $.type(arguments[1]) == 'string' ? {status:arguments[1]} : arguments[1]);
|
||||
}
|
||||
|
||||
return (new Message(options)).show();
|
||||
},
|
||||
closeAll = function(group, instantly){
|
||||
if(group) {
|
||||
for(var id in messages) { if(group===messages[id].group) messages[id].close(instantly); }
|
||||
} else {
|
||||
for(var id in messages) { messages[id].close(instantly); }
|
||||
}
|
||||
};
|
||||
|
||||
var Message = function(options){
|
||||
|
||||
var $this = this;
|
||||
|
||||
this.options = $.extend({}, Message.defaults, options);
|
||||
|
||||
this.uuid = "ID"+(new Date().getTime())+"RAND"+(Math.ceil(Math.random() * 100000));
|
||||
this.element = $([
|
||||
|
||||
'<div class="uk-notify-message">',
|
||||
'<a class="uk-close"></a>',
|
||||
'<div>'+this.options.message+'</div>',
|
||||
'</div>'
|
||||
|
||||
].join('')).data("notifyMessage", this);
|
||||
|
||||
// status
|
||||
if (this.options.status) {
|
||||
this.element.addClass('uk-notify-message-'+this.options.status);
|
||||
this.currentstatus = this.options.status;
|
||||
}
|
||||
|
||||
this.group = this.options.group;
|
||||
|
||||
messages[this.uuid] = this;
|
||||
|
||||
if(!containers[this.options.pos]) {
|
||||
containers[this.options.pos] = $('<div class="uk-notify uk-notify-'+this.options.pos+'"></div>').appendTo('body').on("click", ".uk-notify-message", function(){
|
||||
$(this).data("notifyMessage").close();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$.extend(Message.prototype, {
|
||||
|
||||
uuid: false,
|
||||
element: false,
|
||||
timout: false,
|
||||
currentstatus: "",
|
||||
group: false,
|
||||
|
||||
show: function() {
|
||||
|
||||
if (this.element.is(":visible")) return;
|
||||
|
||||
var $this = this;
|
||||
|
||||
containers[this.options.pos].show().prepend(this.element);
|
||||
|
||||
var marginbottom = parseInt(this.element.css("margin-bottom"), 10);
|
||||
|
||||
this.element.css({"opacity":0, "margin-top": -1*this.element.outerHeight(), "margin-bottom":0}).animate({"opacity":1, "margin-top": 0, "margin-bottom":marginbottom}, function(){
|
||||
|
||||
if ($this.options.timeout) {
|
||||
|
||||
var closefn = function(){ $this.close(); };
|
||||
|
||||
$this.timeout = setTimeout(closefn, $this.options.timeout);
|
||||
|
||||
$this.element.hover(
|
||||
function() { clearTimeout($this.timeout); },
|
||||
function() { $this.timeout = setTimeout(closefn, $this.options.timeout); }
|
||||
);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
close: function(instantly) {
|
||||
|
||||
var $this = this,
|
||||
finalize = function(){
|
||||
$this.element.remove();
|
||||
|
||||
if(!containers[$this.options.pos].children().length) {
|
||||
containers[$this.options.pos].hide();
|
||||
}
|
||||
|
||||
$this.options.onClose.apply($this, []);
|
||||
|
||||
delete messages[$this.uuid];
|
||||
};
|
||||
|
||||
if(this.timeout) clearTimeout(this.timeout);
|
||||
|
||||
if(instantly) {
|
||||
finalize();
|
||||
} else {
|
||||
this.element.animate({"opacity":0, "margin-top": -1* this.element.outerHeight(), "margin-bottom":0}, function(){
|
||||
finalize();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
content: function(html){
|
||||
|
||||
var container = this.element.find(">div");
|
||||
|
||||
if(!html) {
|
||||
return container.html();
|
||||
}
|
||||
|
||||
container.html(html);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
status: function(status) {
|
||||
|
||||
if(!status) {
|
||||
return this.currentstatus;
|
||||
}
|
||||
|
||||
this.element.removeClass('uk-notify-message-'+this.currentstatus).addClass('uk-notify-message-'+status);
|
||||
|
||||
this.currentstatus = status;
|
||||
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
Message.defaults = {
|
||||
message: "",
|
||||
status: "",
|
||||
timeout: 5000,
|
||||
group: null,
|
||||
pos: 'top-center',
|
||||
onClose: function() {}
|
||||
};
|
||||
|
||||
UI.notify = notify;
|
||||
UI.notify.message = Message;
|
||||
UI.notify.closeAll = closeAll;
|
||||
|
||||
return notify;
|
||||
});
|
||||
Reference in New Issue
Block a user