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

2 lines
2.7 KiB
JavaScript

define(["utils/utils"],function(){var a=Backbone.View.extend({initialize:function(a){this.collection=new Backbone.Collection,this.model=a&&a.model||new Backbone.Model({onchange:null,visible:!0}).set(a),this.setElement($(this._template())),this.$nav=this.$(".tab-navigation"),this.$content=this.$(".tab-content"),this.$el.on("click",function(){$(".tooltip").hide()}),this.render(),this.listenTo(this.model,"change",this.render,this),this.listenTo(this.collection,"add",this._add,this),this.listenTo(this.collection,"remove",this._remove,this),this.listenTo(this.collection,"change",this._change,this),this.listenTo(this.collection,"reset",this._reset,this),this.listenTo(this.collection,"add remove reset",this.render,this)},render:function(){var a=this.model.get("current");a=this.$("#"+a).length>0?a:this.first(),a&&(this.$nav.children().removeClass("active"),this.$content.children().removeClass("active"),this.$("#tab-"+a).addClass("active"),this.$("#"+a).addClass("active")),this.$el[this.model.get("visible")?"fadeIn":"fadeOut"]("fast"),this.$nav[this.size()>1?"show":"hide"]()},current:function(){return this.model.get("current")},show:function(a){a&&(this.model.set({current:a,visible:!0}),this.model.get("onchange")&&this.model.get("onchange")(a))},hide:function(){this.model.set("visible",!1)},first:function(){var a=this.collection.first();return a&&a.id},size:function(){return this.collection.length},add:function(a){this.collection.add(a)},del:function(a){this.collection.remove(a)},delAll:function(){this.collection.reset()},showTab:function(a){this.collection.get(a).set("hidden",!1)},hideTab:function(a){this.collection.get(a).set("hidden",!0)},_add:function(a){var b=this,c=a.attributes;this.$content.append($("<div/>").attr("id",c.id).addClass("tab-pane").append(c.$el)),this.$nav.append($(this._template_tab(c)).show().tooltip({title:c.tooltip,placement:"bottom",container:b.$el}).on("click",function(a){a.preventDefault(),b.show(c.id)})),1==this.size()&&this.show(c.id)},_remove:function(a){this.$("#tab-"+a.id).remove(),this.$("#"+a.id).remove()},_reset:function(){this.$nav.empty(),this.$content.empty()},_change:function(a){this.$("#tab-"+a.id)[a.get("hidden")?"hide":"show"]()},_template:function(){return $("<div/>").addClass("ui-tabs tabbable tabs-left").append($("<ul/>").addClass("tab-navigation nav nav-tabs")).append($("<div/>").addClass("tab-content"))},_template_tab:function(a){var b=$("<li/>").addClass("tab-element").attr("id","tab-"+a.id).append($("<a/>").attr("id","tab-title-link-"+a.id)),c=b.find("a");return a.icon&&c.append($("<i/>").addClass("tab-icon fa").addClass(a.icon)),c.append($("<span/>").attr("id","tab-title-text-"+a.id).addClass("tab-title-text").append(a.title)),b}});return{View:a}});
//# sourceMappingURL=../../../maps/mvc/ui/ui-tabs.js.map