Files
galaxy/static/scripts/layout/panel.js
T
2017-06-19 15:48:28 -04:00

2 lines
3.7 KiB
JavaScript

define(["jquery","libs/underscore","libs/backbone"],function(a,b,c){"use strict";var d=160,e=800,f=c.View.extend({initialize:function(a){this.view=a.view,this.hidden=!1,this.saved_size=null,this.hiddenByTool=!1},$center:function(){return this.$el.siblings("#center")},$toggleButton:function(){return this.$(".unified-panel-footer > .panel-collapse")},render:function(){var a=this,c=this.view,d=this.view.model.attributes||{};this.$el.html(this._templatePanel(this.id)),b.each(d.buttons,function(b){a.$(".panel-header-buttons").append(b.$el)}),this.$el.addClass(d.cls),this.$(".panel-header-text").html(b.escape(d.title)),this.$(".unified-panel-body").append(c.$el),c.render()},_templatePanel:function(){return[this._templateHeader(),this._templateBody(),this._templateFooter()].join("")},_templateHeader:function(){return['<div class="unified-panel-header" unselectable="on">','<div class="unified-panel-header-inner">','<div class="panel-header-buttons" style="float: right"/>','<div class="panel-header-text"/>',"</div>","</div>"].join("")},_templateBody:function(){return'<div class="unified-panel-body"/>'},_templateFooter:function(){return['<div class="unified-panel-footer">','<div class="panel-collapse ',b.escape(this.id),'"/>','<div class="drag"/>',"</div>"].join("")},events:{"mousedown .unified-panel-footer > .drag":"_mousedownDragHandler","click .unified-panel-footer > .panel-collapse":"toggle"},_mousedownDragHandler:function(b){function c(a){var b=a.pageX-h;h=a.pageX;var c=f.$el.width(),i=g?c+b:c-b;i=Math.min(e,Math.max(d,i)),f.resize(i)}var f=this,g="left"===this.id,h=b.pageX;a("#dd-helper").show().on("mousemove",c).one("mouseup",function(){a(this).hide().off("mousemove",c)})},resize:function(a){return this.$el.css("width",a),this.$center().css(this.id,a),this},show:function(){if(this.hidden){var a=this,b={},c=this.id;return b[c]=0,a.$el.css(c,-this.saved_size).show().animate(b,"fast",function(){a.resize(a.saved_size)}),a.hidden=!1,a.$toggleButton().removeClass("hidden"),this}},hide:function(){if(!this.hidden){var a={},b=this.id;return this.saved_size=this.$el.width(),a[b]=-this.saved_size,this.$el.animate(a,"fast"),this.$center().css(b,0),this.hidden=!0,this.$toggleButton().addClass("hidden"),this}},toggle:function(){return this.hidden?this.show():this.hide(),this.hiddenByTool=!1,this},handle_minwidth_hint:function(a){var b=this.$center().width()-(this.hidden?this.saved_size:0);return a>b?this.hidden||(this.toggle(),this.hiddenByTool=!0):this.hiddenByTool&&(this.toggle(),this.hiddenByTool=!1),self},force_panel:function(a){return"show"==a?this.show():"hide"==a?this.hide():self},toString:function(){return"SidePanel("+this.id+")"}}),g=f.extend({id:"left"}),h=f.extend({id:"right"}),i=c.View.extend({initialize:function(){this.setElement(a(this.template())),this.$frame=this.$(".center-frame"),this.$panel=this.$(".center-panel"),this.$frame.on("load",b.bind(this._iframeChangeHandler,this))},_iframeChangeHandler:function(b){var c=b.currentTarget,d=c.contentWindow&&c.contentWindow.location;d&&d.host&&(a(c).show(),this.$panel.empty().hide(),Galaxy.trigger("center-frame:load",{fullpath:d.pathname+d.search+d.hash,pathname:d.pathname,search:d.search,hash:d.hash}))},display:function(a){var b=this.$frame[0].contentWindow||{},c=b.onbeforeunload&&b.onbeforeunload();(!c||confirm(c))&&(b.onbeforeunload=void 0,this.$frame.attr("src","about:blank").hide(),this.$panel.empty().scrollTop(0).append(a.$el).show(),Galaxy.trigger("center-panel:load",a))},template:function(){return'<div class="center-container"><iframe id="galaxy_main" name="galaxy_main" frameborder="0" class="center-frame" /><div class="center-panel" /></div>'},toString:function(){return"CenterPanel"}});return{SidePanel:f,LeftPanel:g,RightPanel:h,CenterPanel:i}});
//# sourceMappingURL=../../maps/layout/panel.js.map