diff --git a/client/galaxy/scripts/utils/config.js b/client/galaxy/scripts/utils/config.js index 50bec9ccb9e..a703068e7be 100644 --- a/client/galaxy/scripts/utils/config.js +++ b/client/galaxy/scripts/utils/config.js @@ -5,13 +5,29 @@ define(['libs/underscore', 'viz/trackster/util', 'utils/config'], function(_, ut */ var ConfigSetting = Backbone.Model.extend({ + initialize: function(options) { // Use key as id for now. var key = this.get('key'); this.set('id', key); // Set defaults based on key. - var defaults = _.find(ConfigSetting.known_settings_defaults, function(s) { return s.key === key; }); + var defaults = _.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: true }, + { key: 'height', type: 'int', default_value: 32, hidden: true }, + { 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: false }, + { key: 'show_counts', label: 'Show summary counts', type: 'bool', default_value: true }, + { key: 'reverse_strand_color', label: 'Antisense strand color', type: 'color', default_value: null }, + { key: 'show_differences', label: 'Show differences only', type: 'bool', default_value: true } + ], function(s) { return s.key === key; }); if (defaults) { this.set(_.extend({}, defaults, options)); } @@ -45,26 +61,6 @@ var ConfigSetting = Backbone.Model.extend({ this.set({value: value}, options); } -}, { - // This is a master list of default settings for known settings. - known_settings_defaults: [ - { 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: true }, - { key: 'height', type: 'int', default_value: 32, hidden: true }, - { 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: false }, - { key: 'show_counts', label: 'Show summary counts', type: 'bool', default_value: true }, - { key: 'mode', type: 'string', default_value: this.mode, hidden: true }, - { key: 'reverse_strand_color', label: 'Antisense strand color', type: 'color', default_value: null }, - { key: 'show_differences', label: 'Show differences only', type: 'bool', default_value: true }, - { key: 'mode', type: 'string', default_value: this.mode, hidden: true } - ] }); /** @@ -309,4 +305,4 @@ return { ConfigSettingCollectionView: ConfigSettingCollectionView }; -}); \ No newline at end of file +}); diff --git a/static/maps/utils/config.js.map b/static/maps/utils/config.js.map index fa74f736cff..9dd387734b4 100644 --- a/static/maps/utils/config.js.map +++ b/static/maps/utils/config.js.map @@ -1 +1 @@ -{"version":3,"sources":["utils/config.js"],"names":["define","_","util_mod","config_mod","ConfigSetting","Backbone","Model","extend","initialize","get","this","set","key","defaults","find","known_settings_defaults","s","undefined","set_value","get_random_color","value","options","type","parseFloat","label","default_value","mode","hidden","ConfigSettingCollection","Collection","model","to_key_value_dict","rval","each","setting","get_value","set_default_value","saved_values","models","from_models_and_saved_values","ConfigSettingCollectionView","map","m","View","className","render","container","$el","$","collection","param","index","id","row","appendTo","append","select","text","attr","val","click","input","removeClass","option","tip","top","container_div","css","e","siblings","addClass","document","unbind","width","position","height","show","new_color_icon","bind","hide","tip_inner","stopPropagation","fixed_farb_obj","tooltip","callback","color","setColor","farb_obj","render_in_modal","title","cancel_fn","Galaxy","help","self","ok_fn","modal","window","update_from_form","keyCode","which","children","length","body","OK","is"],"mappings":"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","file":"../../scripts/utils/config.js","sourcesContent":["define(['libs/underscore', 'viz/trackster/util', 'utils/config'], function(_, util_mod, config_mod) {\n\n/**\n * A configuration setting. Currently key is used as id.\n */\nvar ConfigSetting = Backbone.Model.extend({\n\n initialize: function(options) {\n // Use key as id for now.\n var key = this.get('key');\n this.set('id', key);\n\n // Set defaults based on key.\n var defaults = _.find(ConfigSetting.known_settings_defaults, function(s) { return s.key === key; });\n if (defaults) {\n this.set(_.extend({}, defaults, options));\n }\n\n if (this.get('value') === undefined && this.get('default_value') !== undefined) {\n // Use default to set value (if present).\n this.set_value(this.get('default_value'));\n\n // If no default value for color config, set random color.\n if (!this.get('value') && this.get('type') === 'color') {\n // For color setting, set random color.\n this.set('value', util_mod.get_random_color());\n }\n }\n },\n\n /**\n * Cast and set value. This should be instead of\n * setting.set('value', new_value)\n */\n set_value: function(value, options) {\n var type = this.get('type');\n\n if (type === 'float') {\n value = parseFloat(value);\n }\n else if (type === 'int') {\n value = parseInt(value, 10);\n }\n // TODO: handle casting from string to bool?\n\n this.set({value: value}, options);\n }\n}, {\n // This is a master list of default settings for known settings.\n known_settings_defaults: [\n { key: 'name', label: 'Name', type: 'text', default_value: '' },\n { key: 'color', label: 'Color', type: 'color', default_value: null },\n { key: 'min_value', label: 'Min Value', type: 'float', default_value: null },\n { key: 'max_value', label: 'Max Value', type: 'float', default_value: null },\n { key: 'mode', type: 'string', default_value: this.mode, hidden: true },\n { key: 'height', type: 'int', default_value: 32, hidden: true },\n { key: 'pos_color', label: 'Positive Color', type: 'color', default_value: \"#FF8C00\" },\n { key: 'neg_color', label: 'Negative Color', type: 'color', default_value: \"#4169E1\" },\n { key: 'block_color', label: 'Block color', type: 'color', default_value: null },\n { key: 'label_color', label: 'Label color', type: 'color', default_value: 'black' },\n { key: 'show_insertions', label: 'Show insertions', type: 'bool', default_value: false },\n { key: 'show_counts', label: 'Show summary counts', type: 'bool', default_value: true },\n { key: 'mode', type: 'string', default_value: this.mode, hidden: true },\n { key: 'reverse_strand_color', label: 'Antisense strand color', type: 'color', default_value: null },\n { key: 'show_differences', label: 'Show differences only', type: 'bool', default_value: true },\n { key: 'mode', type: 'string', default_value: this.mode, hidden: true }\n ]\n});\n\n/**\n * Collection of config settings.\n */\nvar ConfigSettingCollection = Backbone.Collection.extend({\n model: ConfigSetting,\n\n /**\n * Save settings as a dictionary of key-value pairs.\n * This function is needed for backwards compatibility.\n */\n to_key_value_dict: function() {\n var rval = {};\n this.each(function(setting) {\n rval[setting.get('key')] = setting.get('value');\n });\n\n return rval;\n },\n\n /**\n * Returns value for a given key. Returns undefined if there is no setting with the specified key.\n */\n get_value: function(key) {\n var s = this.get(key);\n if (s) {\n return s.get('value');\n }\n\n return undefined;\n },\n\n /**\n * Set value for a setting.\n */\n set_value: function(key, value, options) {\n var s = this.get(key);\n if (s) {\n return s.set_value(value, options);\n }\n\n return undefined;\n },\n\n /**\n * Set default value for a setting.\n */\n set_default_value: function(key, default_value) {\n var s = this.get(key);\n if (s) {\n return s.set('default_value', default_value);\n }\n\n return undefined;\n }\n},\n{\n /**\n * Utility function that creates a ConfigSettingsCollection from a set of models\n * and a saved_values dictionary.\n */\n from_models_and_saved_values: function(models, saved_values) {\n // If there are saved values, copy models and update with saved values.\n if (saved_values) {\n models = _.map(models, function(m) {\n return _.extend({}, m, { value: saved_values[m.key] });\n });\n }\n\n return new ConfigSettingCollection(models);\n }\n});\n\n/**\n * Viewer for config settings collection.\n */\nvar ConfigSettingCollectionView = Backbone.View.extend({\n className: 'config-settings-view',\n\n /**\n * Renders form for editing configuration settings.\n */\n render: function() {\n var container = this.$el;\n\n this.collection.each(function(param, index) {\n // Hidden params have no representation in the form\n if (param.get('hidden')) { return; }\n\n // Build row for param.\n var id = 'param_' + index,\n type = param.get('type'),\n value = param.get('value');\n var row = $(\"
\").appendTo(container);\n row.append($('