1. Added notification plugin for the temporal graph vis,

2. Made sure that notification appears when more than 10 entites are attempted to be compared.
This commit is contained in:
cdtank 2011-01-06 20:52:23 +00:00
parent 1e27c494eb
commit c5904868c0
6 changed files with 252 additions and 12 deletions

View file

@ -0,0 +1,140 @@
/*
* jQuery Notify UI Widget 1.4
* Copyright (c) 2010 Eric Hynds
*
* http://www.erichynds.com/jquery/a-jquery-ui-growl-ubuntu-notification-widget/
*
* Depends:
* - jQuery 1.4
* - jQuery UI 1.8 widget factory
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
(function($){
$.widget("ech.notify", {
options: {
speed: 500,
expires: 5000,
stack: 'below',
custom: false
},
_create: function(){
var self = this;
this.templates = {};
this.keys = [];
// build and save templates
this.element.addClass("ui-notify").children().addClass("ui-notify-message ui-notify-message-style").each(function(i){
var key = this.id || i;
self.keys.push(key);
self.templates[key] = $(this).removeAttr("id").wrap("<div></div>").parent().html(); // because $(this).andSelf().html() no workie
}).end().empty().show();
},
create: function(template, msg, opts){
if(typeof template === "object"){
opts = msg;
msg = template;
template = null;
}
var tpl = this.templates[ template || this.keys[0]];
// remove default styling class if rolling w/ custom classes
if(opts && opts.custom){
tpl = $(tpl).removeClass("ui-notify-message-style").wrap("<div></div>").parent().html();
}
// return a new notification instance
return new $.ech.notify.instance(this)._create(msg, $.extend({}, this.options, opts), tpl);
}
});
// instance constructor
$.extend($.ech.notify, {
instance: function(widget){
this.parent = widget;
this.isOpen = false;
}
});
// instance methods
$.extend($.ech.notify.instance.prototype, {
_create: function(params, options, template){
this.options = options;
var self = this,
// build html template
html = template.replace(/#(?:\{|%7B)(.*?)(?:\}|%7D)/g, function($1, $2){
return ($2 in params) ? params[$2] : '';
}),
// the actual message
m = (this.element = $(html)),
// close link
closelink = m.find(".ui-notify-close");
// clickable?
if(typeof this.options.click === "function"){
m.addClass("ui-notify-click").bind("click", function(e){
self._trigger("click", e, self);
});
}
// show close link?
if(closelink.length){
closelink.bind("click", function(){
self.close();
return false;
});
}
this.open();
// auto expire?
if(typeof options.expires === "number"){
window.setTimeout(function(){
self.close();
}, options.expires);
}
return this;
},
close: function(){
var self = this, speed = this.options.speed;
this.element.fadeTo(speed, 0).slideUp(speed, function(){
self._trigger("close");
self.isOpen = false;
});
return this;
},
open: function(){
if(this.isOpen || this._trigger("beforeopen") === false){
return this;
}
var self = this;
this.element[this.options.stack === 'above' ? 'prependTo' : 'appendTo'](this.parent.element).css({ display:"none", opacity:"" }).fadeIn(this.options.speed, function(){
self._trigger("open");
self.isOpen = true;
});
return this;
},
widget: function(){
return this.element;
},
_trigger: function(type, e, instance){
return this.parent._trigger.call( this, type, e, instance );
}
});
})(jQuery);

View file

@ -0,0 +1,16 @@
/*
* jQuery Notify UI Widget 1.4
* Copyright (c) 2010 Eric Hynds
*
* http://www.erichynds.com/jquery/a-jquery-ui-growl-ubuntu-notification-widget/
*
* Depends:
* - jQuery 1.4
* - jQuery UI 1.8 widget factory
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
(function(d){d.widget("ech.notify",{options:{speed:500,expires:5E3,stack:"below",custom:false},_create:function(){var a=this;this.templates={};this.keys=[];this.element.addClass("ui-notify").children().addClass("ui-notify-message ui-notify-message-style").each(function(b){b=this.id||b;a.keys.push(b);a.templates[b]=d(this).removeAttr("id").wrap("<div></div>").parent().html()}).end().empty().show()},create:function(a,b,c){if(typeof a==="object"){c=b;b=a;a=null}a=this.templates[a||this.keys[0]];if(c&&c.custom)a=d(a).removeClass("ui-notify-message-style").wrap("<div></div>").parent().html();return(new d.ech.notify.instance(this))._create(b,d.extend({},this.options,c),a)}});d.extend(d.ech.notify,{instance:function(a){this.parent=a;this.isOpen=false}});d.extend(d.ech.notify.instance.prototype,{_create:function(a,b,c){this.options=b;var e=this;c=c.replace(/#(?:\{|%7B)(.*?)(?:\}|%7D)/g,function(f,g){return g in a?a[g]:""});c=this.element=d(c);var h=c.find(".ui-notify-close");typeof this.options.click==="function"&&c.addClass("ui-notify-click").bind("click",function(f){e._trigger("click",f,e)});h.length&&h.bind("click",function(){e.close();return false});this.open();typeof b.expires==="number"&&window.setTimeout(function(){e.close()},b.expires);return this},close:function(){var a=this,b=this.options.speed;this.isOpen=false;this.element.fadeTo(b,0).slideUp(b,function(){a._trigger("close")});return this},open:function(){if(this.isOpen||this._trigger("beforeopen")===false)return this;var a=this;this.isOpen=true;this.element[this.options.stack==="above"?"prependTo":"appendTo"](this.parent.element).css({display:"none",opacity:""}).fadeIn(this.options.speed,function(){a._trigger("open")});return this},widget:function(){return this.element},_trigger:function(a,b,c){return this.parent._trigger.call(this,a,b,c)}})})(jQuery);

View file

@ -660,14 +660,13 @@ function clearRenderedObjects(){
}
function createNotification( template, vars, opts ){
return $notificationContainer.notify("create", template, vars, opts);
}
function updateCounter(){
//notification about the max items that can be clicked
$("#counter").text(renderedObjects.length);
if (freeColors.length == 0) {
$.jGrowl("You can not select more than 10 entities at one time.", {
life: 3000
});
}
}
function displayLineGraphs(){
@ -737,7 +736,7 @@ function prepareTableForDataTablePagination(jsonData){
var row = $('<tr>');
var checkboxTD = $('<td>');
checkboxTD.html('<input type="checkbox" class="if_clicked_on_school" value="' + index + '"'+'/>');
checkboxTD.html('<div class="disabled-checkbox-event-receiver">&nbsp;</div><input type="checkbox" class="if_clicked_on_school" value="' + index + '"'+'/>');
var labelTD = $('<td>');
labelTD.css("width", "100px");
@ -876,6 +875,7 @@ function disableUncheckedEntities(){
$.each($("input[type=checkbox].if_clicked_on_school:not(:checked)"), function(index, val){
$(val).attr('disabled', true);
$(val).prev().show();
});
//console.log($("input[type=checkbox].if_clicked_on_school:not(:checked)"));
@ -887,6 +887,7 @@ function enableUncheckedEntities(){
$.each($("input[type=checkbox].if_clicked_on_school:not(:checked)"), function(index, val){
$(val).attr('disabled', false);
$(val).prev().hide();
});