Files
galaxy/static/scripts/mvc/ui/ui-tabs.js
T

2 lines
3.5 KiB
JavaScript

define(["utils/utils"],function(a){var b=Backbone.View.extend({optionsDefault:{title_new:"",operations:null,onnew:null,max:null,onchange:null},initialize:function(b){this.visible=!1,this.$nav=null,this.$content=null,this.first_tab=null,this.current_id=null,this.options=a.merge(b,this.optionsDefault);var c=$(this._template(this.options));this.$nav=c.find(".tab-navigation"),this.$content=c.find(".tab-content"),this.setElement(c),this.list={};var d=this;if(this.options.operations&&$.each(this.options.operations,function(a,b){b.$el.prop("id",a),d.$nav.find(".operations").append(b.$el)}),this.options.onnew){var e=$(this._template_tab_new(this.options));this.$nav.append(e),e.tooltip({title:"Add a new tab",placement:"bottom",container:d.$el}),e.on("click",function(){e.tooltip("hide"),d.options.onnew()})}},size:function(){return _.size(this.list)},current:function(){return this.$el.find(".tab-pane.active").attr("id")},add:function(a){var b=this,c=a.id,d=$(this._template_tab(a)),e=$(this._template_tab_content(a));if(this.list[c]=a.ondel?!0:!1,this.options.onnew?this.$nav.find("#new-tab").before(d):this.$nav.append(d),e.append(a.$el),this.$content.append(e),1==this.size()&&(d.addClass("active"),e.addClass("active"),this.first_tab=c),this.options.max&&this.size()>=this.options.max&&this.$el.find("#new-tab").hide(),a.ondel){var f=d.find("#delete");f.tooltip({title:"Delete this tab",placement:"bottom",container:b.$el}),f.on("click",function(){return f.tooltip("destroy"),b.$el.find(".tooltip").remove(),a.ondel(),!1})}d.on("click",function(d){d.preventDefault(),a.onclick?a.onclick():b.show(c)}),this.current_id||(this.current_id=c)},del:function(a){this.$el.find("#tab-"+a).remove(),this.$el.find("#"+a).remove(),this.first_tab==a&&(this.first_tab=null),null!=this.first_tab&&this.show(this.first_tab),this.list[a]&&delete this.list[a],this.size()<this.options.max&&this.$el.find("#new-tab").show()},delRemovable:function(){for(var a in this.list)this.del(a)},show:function(a){this.$el.fadeIn("fast"),this.visible=!0,a&&(this.$el.find("#tab-"+this.current_id).removeClass("active"),this.$el.find("#"+this.current_id).removeClass("active"),this.$el.find("#tab-"+a).addClass("active"),this.$el.find("#"+a).addClass("active"),this.current_id=a),this.options.onchange&&this.options.onchange(a)},hide:function(){this.$el.fadeOut("fast"),this.visible=!1},hideOperation:function(a){this.$nav.find("#"+a).hide()},showOperation:function(a){this.$nav.find("#"+a).show()},setOperation:function(a,b){var c=this.$nav.find("#"+a);c.off("click"),c.on("click",b)},title:function(a,b){var c=this.$el.find("#tab-title-text-"+a);return b&&c.html(b),c.html()},retitle:function(a){var b=0;for(var c in this.list)this.title(c,++b+": "+a)},_template:function(){return'<div class="ui-tabs tabbable tabs-left"><ul id="tab-navigation" class="tab-navigation nav nav-tabs"><div class="operations" style="float: right; margin-bottom: 4px;"></div></ul><div id="tab-content" class="tab-content"/></div>'},_template_tab_new:function(a){return'<li id="new-tab"><a href="javascript:void(0);"><i class="ui-tabs-add fa fa-plus-circle"/>'+a.title_new+"</a></li>"},_template_tab:function(a){var b='<li id="tab-'+a.id+'" class="tab-element"><a id="tab-title-link-'+a.id+'" title="" href="#'+a.id+'" data-original-title=""><span id="tab-title-text-'+a.id+'" class="tab-title-text">'+a.title+"</span>";return a.ondel&&(b+='<i id="delete" class="ui-tabs-delete fa fa-minus-circle"/>'),b+="</a></li>"},_template_tab_content:function(a){return'<div id="'+a.id+'" class="tab-pane"/>'}});return{View:b}});
//# sourceMappingURL=../../../maps/mvc/ui/ui-tabs.js.map