Files
galaxy/static/scripts/utils/config.js
T

1 line
4.9 KiB
JavaScript

define("utils/config",["exports","libs/underscore","viz/trackster/util","utils/config"],function(e,t,l,o){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0});var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&(t[l]=e[l]);return t.default=e,t}(t),n=a(l),r=(a(o),Backbone.Model.extend({initialize:function(e){var t=this.get("key");this.set("id",t);var l=i.find([{key:"name",label:"Name",type:"text",default_value:""},{key:"color",label:"Color",type:"color",default_value:null},{key:"min_value",label:"Min Value",type:"float",default_value:null},{key:"max_value",label:"Max Value",type:"float",default_value:null},{key:"mode",type:"string",default_value:this.mode,hidden:!0},{key:"height",type:"int",default_value:32,hidden:!0},{key:"pos_color",label:"Positive Color",type:"color",default_value:"#FF8C00"},{key:"neg_color",label:"Negative Color",type:"color",default_value:"#4169E1"},{key:"block_color",label:"Block color",type:"color",default_value:null},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:!1},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:!0},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:null},{key:"show_differences",label:"Show differences only",type:"bool",default_value:!0}],function(e){return e.key===t});l&&this.set(i.extend({},l,e)),void 0===this.get("value")&&void 0!==this.get("default_value")&&(this.set_value(this.get("default_value")),this.get("value")||"color"!==this.get("type")||this.set("value",n.default.get_random_color()))},set_value:function(e,t){var l=this.get("type");"float"===l?e=parseFloat(e):"int"===l&&(e=parseInt(e,10)),this.set({value:e},t)}})),s=Backbone.Collection.extend({model:r,to_key_value_dict:function(){var e={};return this.each(function(t){e[t.get("key")]=t.get("value")}),e},get_value:function(e){var t=this.get(e);if(t)return t.get("value")},set_value:function(e,t,l){var o=this.get(e);if(o)return o.set_value(t,l)},set_default_value:function(e,t){var l=this.get(e);if(l)return l.set("default_value",t)}},{from_models_and_saved_values:function(e,t){return t&&(e=i.map(e,function(e){return i.extend({},e,{value:t[e.key]})})),new s(e)}}),c=Backbone.View.extend({className:"config-settings-view",render:function(){var e=this.$el;return this.collection.each(function(t,l){if(!t.get("hidden")){var o="param_"+l,a=t.get("type"),r=t.get("value"),s=$("<div class='form-row' />").appendTo(e);if(s.append($("<label />").attr("for",o).text(t.get("label")+":")),"bool"===a)s.append($('<input type="checkbox" />').attr("id",o).attr("name",o).attr("checked",r));else if("text"===a)s.append($('<input type="text"/>').attr("id",o).val(r).click(function(){$(this).select()}));else if("select"===a){var c=$("<select />").attr("id",o);i.each(t.get("options"),function(e){$("<option/>").text(e.label).attr("value",e.value).appendTo(c)}),c.val(r),s.append(c)}else if("color"===a){var u=$("<div/>").appendTo(s),d=$("<input />").attr("id",o).attr("name",o).val(r).css("float","left").appendTo(u).click(function(e){$(".tooltip").removeClass("in");var t=$(this).siblings(".tooltip").addClass("in");t.css({left:$(this).position().left+$(this).width()+5,top:$(this).position().top-$(t).height()/2+$(this).height()/2}).show(),t.click(function(e){e.stopPropagation()}),$(document).bind("click.color-picker",function(){t.hide(),$(document).unbind("click.color-picker")}),e.stopPropagation()}),f=$("<a href='javascript:void(0)'/>").addClass("icon-button arrow-circle").appendTo(u).attr("title","Set new random color").tooltip(),p=$("<div class='tooltip right' style='position: absolute;' />").appendTo(u).hide(),h=$("<div class='tooltip-inner' style='text-align: inherit'></div>").appendTo(p),v=($("<div class='tooltip-arrow'></div>").appendTo(p),$.farbtastic(h,{width:100,height:100,callback:d,color:r}));u.append($("<div/>").css("clear","both")),function(e){f.click(function(){e.setColor(n.default.get_random_color())})}(v)}else s.append($("<input />").attr("id",o).attr("name",o).val(r));t.help&&s.append($("<div class='help'/>").text(t.help))}}),this},render_in_modal:function(e){var t=this,l=function(){Galaxy.modal.hide(),$(window).unbind("keypress.check_enter_esc")},o=function(){Galaxy.modal.hide(),$(window).unbind("keypress.check_enter_esc"),t.update_from_form()};$(window).bind("keypress.check_enter_esc",function(e){27===(e.keyCode||e.which)?l():13===(e.keyCode||e.which)&&o()}),0===this.$el.children().length&&this.render(),Galaxy.modal.show({title:e||"Configure",body:this.$el,buttons:{Cancel:l,OK:o}})},update_from_form:function(){var e=this;this.collection.each(function(t,l){if(!t.get("hidden")){var o="param_"+l,a=e.$el.find("#"+o).val();"bool"===t.get("type")&&(a=e.$el.find("#"+o).is(":checked")),t.set_value(a)}})}});e.default={ConfigSetting:r,ConfigSettingCollection:s,ConfigSettingCollectionView:c}});