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

3 lines
6.1 KiB
JavaScript

define("mvc/ui/ui-buttons",["exports","utils/utils"],function(t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=function(t){return t&&t.__esModule?t:{default:t}}(i),s=Backbone.View.extend({initialize:function(t){this.model=t&&t.model||new Backbone.Model({id:e.default.uid(),title:"",icon:"",cls:"btn btn-default",wait:!1,wait_text:"Sending...",wait_cls:"btn btn-info",disabled:!1,percentage:-1}).set(t),this.setElement($("<button/>").attr("type","button").append(this.$icon=$("<i/>")).append(this.$title=$("<span/>")).append(this.$progress=$("<div/>").append(this.$progress_bar=$("<div/>")))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var t=this,i=this.model.attributes;this.$el.removeClass().addClass("ui-button-default").addClass(i.disabled&&"disabled").attr("id",i.id).attr("disabled",i.disabled).off("click").on("click",function(){$(".tooltip").hide(),i.onclick&&!t.disabled&&i.onclick()}).tooltip({title:i.tooltip,placement:"bottom"}),this.$progress.addClass("progress").css("display",-1!==i.percentage?"block":"none"),this.$progress_bar.addClass("progress-bar").css({width:i.percentage+"%"}),this.$icon.removeClass().addClass("icon fa"),this.$title.removeClass().addClass("title"),i.wait?(this.$el.addClass(i.wait_cls).prop("disabled",!0),this.$icon.addClass("fa-spinner fa-spin ui-margin-right"),this.$title.html(i.wait_text)):(this.$el.addClass(i.cls),this.$icon.addClass(i.icon),this.$title.html(i.title),i.icon&&i.title&&this.$icon.addClass("ui-margin-right"))},show:function(){this.$el.show()},hide:function(){this.$el.hide()},disable:function(){this.model.set("disabled",!0)},enable:function(){this.model.set("disabled",!1)},wait:function(){this.model.set("wait",!0)},unwait:function(){this.model.set("wait",!1)},setIcon:function(t){this.model.set("icon",t)}}),l=s.extend({initialize:function(t){this.model=t&&t.model||new Backbone.Model({id:e.default.uid(),title:"",icon:"",cls:""}).set(t),this.setElement($("<a/>").append(this.$icon=$("<span/>"))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(){var t=this.model.attributes;this.$el.removeClass().addClass(t.cls).attr({id:t.id,href:t.href||"javascript:void(0)",title:t.title,target:t.target||"_top",disabled:t.disabled}).tooltip({placement:"bottom"}).off("click").on("click",function(){t.onclick&&!t.disabled&&t.onclick()}),this.$icon.removeClass().addClass(t.icon)}}),n=Backbone.View.extend({initialize:function(t){this.model=t&&t.model||new Backbone.Model({id:e.default.uid(),title:"Select/Unselect all",icons:["fa-square-o","fa-minus-square-o","fa-check-square-o"],value:0,onchange:function(){}}).set(t),this.setElement($("<div/>").append(this.$icon=$("<span/>")).append(this.$title=$("<span/>"))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(t){var i=this,t=this.model.attributes;this.$el.addClass("ui-button-check").off("click").on("click",function(){i.model.set("value",0===i.model.get("value")&&2||0),t.onclick&&t.onclick()}),this.$title.html(t.title),this.$icon.removeClass().addClass("icon fa ui-margin-right").addClass(t.icons[t.value])},value:function(t,i){return void 0!==t&&(i&&0!==t&&(t=t!==i&&1||2),this.model.set("value",t),this.model.get("onchange")(this.model.get("value"))),this.model.get("value")}}),o=s.extend({initialize:function(t){this.model=t&&t.model||new Backbone.Model({id:e.default.uid(),title:"",icon:"",cls:"ui-button-icon",disabled:!1}).set(t),this.setElement($("<div/>").append(this.$button=$("<div/>").append(this.$icon=$("<i/>")).append(this.$title=$("<span/>")))),this.listenTo(this.model,"change",this.render,this),this.render()},render:function(t){var t=this.model.attributes;this.$el.removeClass().addClass(t.cls).addClass(t.disabled&&"disabled").attr("disabled",t.disabled).attr("id",t.id).off("click").on("click",function(){$(".tooltip").hide(),!t.disabled&&t.onclick&&t.onclick()}),this.$button.addClass("button").tooltip({title:t.tooltip,placement:"bottom"}),this.$icon.removeClass().addClass("icon fa").addClass(t.icon),this.$title.addClass("title").html(t.title),t.icon&&t.title&&this.$icon.addClass("ui-margin-right")}}),d=s.extend({$menu:null,initialize:function(t){this.model=t&&t.model||new Backbone.Model({id:"",title:"",pull:"right",icon:null,onclick:null,cls:"ui-button-icon ui-button-menu",tooltip:"",target:"",href:"",onunload:null,visible:!0,tag:""}).set(t),this.collection=new Backbone.Collection,this.setElement($("<div/>").append(this.$root=$("<div/>").append(this.$icon=$("<i/>")).append(this.$title=$("<span/>")))),this.listenTo(this.model,"change",this.render,this),this.listenTo(this.collection,"change add remove reset",this.render,this),this.render()},render:function(){var t=this,i=this.model.attributes;this.$el.removeClass().addClass("dropdown").addClass(i.cls).attr("id",i.id).css({display:i.visible&&this.collection.where({visible:!0}).length>0?"block":"none"}),this.$root.addClass("root button dropdown-toggle").attr("data-toggle","dropdown").tooltip({title:i.tooltip,placement:"bottom"}).off("click").on("click",function(t){$(".tooltip").hide(),t.preventDefault(),i.onclick&&i.onclick()}),this.$icon.removeClass().addClass("icon fa").addClass(i.icon),this.$title.removeClass().addClass("title").html(i.title),i.icon&&i.title&&this.$icon.addClass("ui-margin-right"),this.$menu&&this.$menu.remove(),this.collection.length>0&&(this.$menu=$("<ul/>").addClass("menu dropdown-menu").addClass("pull-"+t.model.get("pull")).attr("role","menu"),this.$el.append(this.$menu)),this.collection.each(function(i){var e=i.attributes;if(e.visible){var s=$("<a/>").addClass("dropdown-item").attr({href:e.href,target:e.target}).append($("<i/>").addClass("fa").addClass(e.icon).css("display",e.icon?"inline-block":"none")).append(e.title).on("click",function(t){e.onclick&&(t.preventDefault(),e.onclick())});t.$menu.append($("<li/>").append(s)),e.divider&&t.$menu.append($("<li/>").addClass("divider"))}})},addMenu:function(t){this.collection.add(e.default.merge(t,{title:"",target:"",href:"",onclick:null,divider:!1,visible:!0,icon:null,cls:"button-menu btn-group"}))}});t.default={ButtonDefault:s,ButtonLink:l,ButtonIcon:o,ButtonCheck:n,ButtonMenu:d}});
//# sourceMappingURL=../../../maps/mvc/ui/ui-buttons.js.map