Files
galaxy/static/scripts/mvc/ui/icon-button.js
T

2 lines
1.8 KiB
JavaScript

define([],function(){var a=Backbone.Model.extend({defaults:{title:"",icon_class:"",on_click:null,menu_options:null,is_menu_button:!0,id:null,href:null,target:null,enabled:!0,visible:!0,tooltip_config:{}}}),b=Backbone.View.extend({initialize:function(){this.model.attributes.tooltip_config={placement:"bottom"},this.model.bind("change",this.render,this)},render:function(){this.$el.tooltip("hide");var a=this.template(this.model.toJSON());return a.tooltip(this.model.get("tooltip_config")),this.$el.replaceWith(a),this.setElement(a),this},events:{click:"click"},click:function(a){return _.isFunction(this.model.get("on_click"))?(this.model.get("on_click")(a),!1):!0},template:function(a){var b='title="'+a.title+'" class="icon-button';return a.is_menu_button&&(b+=" menu-button"),b+=" "+a.icon_class,a.enabled||(b+="_disabled"),b+='"',a.id&&(b+=' id="'+a.id+'"'),b+=' href="'+a.href+'"',a.target&&(b+=' target="'+a.target+'"'),a.visible||(b+=' style="display: none;"'),b=a.enabled?"<a "+b+"/>":"<span "+b+"/>",$(b)}}),c=Backbone.Collection.extend({model:a}),d=Backbone.View.extend({tagName:"div",initialize:function(){this.render()},render:function(){var a=this;return this.collection.each(function(b){var c=$("<a/>").attr("href","javascript:void(0)").attr("title",b.attributes.title).addClass("icon-button menu-button").addClass(b.attributes.icon_class).appendTo(a.$el).click(b.attributes.on_click);b.attributes.tooltip_config&&c.tooltip(b.attributes.tooltip_config);var d=b.get("options");d&&make_popupmenu(c,d)}),this}}),e=function(b,e){e||(e={});var f=new c(_.map(b,function(b){return new a(_.extend(b,e))}));return new d({collection:f})};return{IconButton:a,IconButtonView:b,IconButtonCollection:c,IconButtonMenuView:d,create_icon_buttons_menu:e}});
//# sourceMappingURL=../../../maps/mvc/ui/icon-button.js.map