diff --git a/lib/jquery.stackview.css b/lib/jquery.stackview.css index 008e1aa..601d1eb 100644 --- a/lib/jquery.stackview.css +++ b/lib/jquery.stackview.css @@ -75,6 +75,10 @@ color: #fff; } +.stack-item-empty { + padding: 10px 10px 15px 5px; +} + .spine-text { position: absolute; z-index: 2; diff --git a/lib/jquery.stackview.min.js b/lib/jquery.stackview.min.js index ea45f8d..bdd4631 100644 --- a/lib/jquery.stackview.min.js +++ b/lib/jquery.stackview.min.js @@ -12,4 +12,4 @@ Dual licensed under MIT and GPL. */ -(function(e,h,i,c){var l,f="stackView",j,g={};l={init:"stackview.init",item_added:"stackview.itemadded",item_removed:"stackview.itemremoved",page_load:"stackview.pageload"};var b=function(n){var m;e.each(g,function(o,p){if(p.match(n)){m=p;return false}});return m};var d=function(m,q,n){var o=n?"before":"append",p=n?n:m.$element.find(m.options.selectors.item_list);e.each(q,function(s,u){var t=b(u),r;if(t==null){return true}r=e(tmpl(t.template,t.adapter(u,m.options)));r.data("stackviewItem",u);p[o](r)});if(n){n.remove()}};var a=function(m){var n=m.options,o;o={start:m.page*m.options.items_per_page,limit:m.options.items_per_page,search_type:m.options.search_type,query:m.options.query};if(o.search_type==="loc_sort_order"){o.start=0;if(m.page===0){m.loc={low:n.id-Math.floor(n.items_per_page/2),high:n.id+Math.floor(n.items_per_page/2)};o.query=["[",m.loc.low,"%20TO%20",m.loc.high,"]"].join("")}else{if(m.direction==="down"){o.query=["[",m.loc.high+1,"%20TO%20",m.loc.high+n.items_per_page+1,"]"].join("");m.loc.high=m.loc.high+n.items_per_page+1}else{if(m.direction==="up"){o.query=["[",m.loc.low-n.items_per_page-1,"%20TO%20",m.loc.low-1,"]"].join("");m.loc.low=m.loc.low-n.items_per_page-1}}}}return o};var k=function(n,q){var p=a(n),m=e.param(p),o;n.page++;o=h.stackCache.get(n.options.url+m);if(o){q(o)}else{e.ajax({url:n.options.url,data:m,dataType:n.options.jsonp?"jsonp":"json",success:function(r){h.stackCache.set(n.options.url+p,r,n.options.cache_ttl);q(r)}})}};j=function(n,m){this.element=n;this.$element=e(n);this.options=e.extend({},j.defaults,m);this.page=0;this.finished={up:false,down:false};this.loc={low:null,high:null};this.direction="down";this.init()};e.extend(true,j,{defaults:{cache_ttl:60,data:"",id:null,items_per_page:10,jsonp:false,query:"",ribbon:"Stack View",search_type:"keyword",selectors:{item:".stack-item",item_list:".stack-items",ribbon:".ribbon"},url:"basic.json"},utils:{get_heat:function(m){return m===100?10:Math.floor(m/10)+1}},register_type:function(m){g[m.name]=m},get_types:function(){return g}});e.extend(true,j.prototype,{init:function(){var m=this;this.$element.html(tmpl(j.templates.scaffold,{ribbon:this.options.ribbon})).addClass("stackview").bind(l.page_load,function(){m.zIndex()});this.$element.data("stackviewObject",this);this.$element.trigger(l.init);this.next_page()},next_page:function(){var m=e(tmpl(j.templates.placeholder,{})),o=this,n=this.options;if(this.finished.down){return}this.direction="down";if(n.data){d(this,n.data.docs?n.data.docs:n.data);this.finished.down=true;this.$element.trigger(l.page_load,[n.data])}else{if(n.url){this.$element.find(n.selectors.item_list).append(m);k(this,function(p){d(o,p.docs,m);if(parseInt(p.start,10)===-1){o.finished.down=true}o.$element.trigger(l.page_load,[p])})}}},prev_page:function(){var m=e(tmpl(j.templates.placeholder,{})),o=this.options,n=this,p=n.$element.find(o.selectors.item).first();if(o.search_type!=="loc_sort_order"||this.finished.up){return}this.direction="up";this.$element.find(o.selectors.item_list).prepend(m);k(this,function(r){var q=p.position().top;d(n,r.docs,m);if(n.page>1){n.$element.find(o.selectors.item_list).animate({scrollTop:"+="+(p.position().top-q)},0)}if(parseInt(r.start,10)===-1){n.finished.up=true}n.$element.trigger(l.page_load,[r])})},add:function(){var s=this.$element.find(this.options.selectors.item),n,p,o,q,r,m;if(typeof(arguments[0])==="number"){n=arguments[0];p=arguments[1]}else{n=s.length;p=arguments[0]}if(n>s.length||n<0){return}else{if(n===s.length){r=s.last();q="after"}else{r=s.eq(n);q="before"}}o=b(p);if(o==null){return}m=e(tmpl(o.template,o.adapter(p,this.options)));m.data("stackviewItem",p);r[q](m);this.zIndex();this.$element.trigger(l.item_added)},remove:function(m){var q=this.$element.find(this.options.selectors.item),o,p,n;if(typeof(m)==="number"){o=q.eq(m)}else{if(m.nodeType||m.jquery){o=e(m)}else{q.each(function(s,t){var r=e(t);if(r.data("stackviewItem")===m){o=r;return false}})}}if(o==null||!o.length){return}o.detach();p=o.data("stackviewItem");this.$element.trigger(l.item_removed,[p]);return o},getData:function(){var m=[];this.$element.find(this.options.selectors.item).each(function(){m.push(e(this).data("stackviewItem"))});return m},zIndex:function(m){var q=this.$element.find(this.options.selectors.item),o=q.length,n=0,p=m?0:q.length-1;while(n=j){g.unbind("scroll.stackview");l.stackView("next_page")}}};g.bind("scroll.stackview",i);i()};a.delegate(".stackview","stackview.pageload",b)})(jQuery);(function(c,d){var b=c(document),a=window.StackView;c.extend(true,a.defaults,{transitionDuration:500,transitionEasing:"easeOutQuad",navigationPercent:80,selectors:{downstream:".downstream",upstream:".upstream",num_items:".num-found span"}});b.delegate(".stackview","stackview.init",function(f){var g=c(f.target),e=g.data("stackviewObject"),i=g.find(e.options.selectors.item_list),h=g.height()*e.options.navigationPercent/100;e.num_found_delta=0;g.prepend(tmpl(a.templates.navigation,{empty:e.options.search_type==="loc_sort_order"}));g.delegate(e.options.selectors.downstream,"click",function(){i.animate({scrollTop:"+="+h},e.options.transitionDuration,e.options.transitionEasing);return false}).delegate(e.options.selectors.upstream,"click",function(){i.animate({scrollTop:"-="+h},e.options.transitionDuration,e.options.transitionEasing);return false})}).delegate(".stackview","stackview.pageload",function(h,i){var j=c(h.target),e=j.data("stackviewObject"),g=i.num_found?parseInt(i.num_found,10):i.length,f;e.num_found=g;f=g+e.num_found_delta;j.find(e.options.selectors.num_items).text(f)}).delegate(".stackview","stackview.itemadded stackview.itemremoved",function(g){var h=c(g.target),e=h.data("stackviewObject"),i=h.find(e.options.selectors.item),f;e.num_found_delta+=(g.namespace==="itemadded"?1:-1);f=e.num_found+e.num_found_delta;h.find(e.options.selectors.num_items).text(f)})})(jQuery);(function(c,d){var b=c(document),a=window.StackView;c.extend(true,a.defaults,{classes:{ministack:"stackview-mini"},ministack:{breakpoint:220,max_height_percentage:100,min_height_percentage:80,page_multiple:0.08}});b.delegate(".stackview","stackview.init",function(f){var g=c(f.target),e=g.data("stackviewObject");if(g.width()<=e.options.ministack.breakpoint){g.addClass(e.options.classes.ministack);c.each(["max_height_percentage","min_height_percentage","page_multiple"],function(h,j){e.options.book[j]=e.options.ministack[j]})}})})(jQuery);window.stackCache=(function(d,f){var b={},e=d.JSON&&(function(){try{return("localStorage" in d)&&d.localStorage!==null}catch(h){return false}})();return{set:g,get:c,remove:a};function g(j,k,h){var i=h&&new Date(+new Date()+h*1000),m={expires:+i,value:k};if(e){try{localStorage[j]=JSON.stringify(m)}catch(l){return l}}else{b[j]=m}}function c(h){var i,j;if(e){i=localStorage[h];if(i){i=JSON.parse(i)}}else{i=b[h]}if(i){if(i.expires&&i.expires<+new Date()){a(h)}else{j=i.value}}return j}function a(h){if(e){localStorage.removeItem(h)}else{delete b[h]}}})(window);(function(a){StackView.templates={scaffold:'
<%= ribbon %>