commit/galaxy-central: guerler: Ui: Update Fontawesome, ToolForm: Add tool version handling
1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/5bdce43378bd/ Changeset: 5bdce43378bd User: guerler Date: 2014-12-10 06:54:26+00:00 Summary: Ui: Update Fontawesome, ToolForm: Add tool version handling Affected #: 28 files diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 client/galaxy/scripts/mvc/tools/tools-form.js --- a/client/galaxy/scripts/mvc/tools/tools-form.js +++ b/client/galaxy/scripts/mvc/tools/tools-form.js @@ -48,21 +48,12 @@ // add to main element $(this.container).append(this.$el); - // creates a tree/json structure from the input form - this.tree = new ToolTree(this); - - // creates the job handler - this.job_handler = new ToolJobs(this); - - // request history content and build form - this.content = new ToolContent(this); - // build this form - this._buildForm(options); + this._buildForm(); }, - // message - message: function($el) { + // reciept shows the final message usually upon successful job submission + reciept: function($el) { $(this.container).empty(); $(this.container).append($el); }, @@ -105,6 +96,7 @@ if (this.options.dataset_id) { model_url += 'dataset_id=' + this.options.dataset_id; } else { + model_url += 'tool_version=' + this.options.version + '&'; var loc = top.location.href; var pos = loc.indexOf('?'); if (loc.indexOf('tool_id=') != -1 && pos !== -1) { @@ -112,27 +104,47 @@ } } } - + + // register process + var process_id = this.deferred.register(); + // get initial model Utils.request({ type : 'GET', url : model_url, success : function(response) { // link model data update options - self.options = $.extend(self.options, response); - self.model = response; - self.inputs = response.inputs; + self.options = response; + + // build form + self._buildForm(); + + // process completed + self.deferred.done(process_id); // log success console.debug('tools-form::initialize() - Initial tool model ready.'); console.debug(response); - - // build form - self._buildForm(); }, error : function(response) { + // process completed + self.deferred.done(process_id); + + // log error console.debug('tools-form::initialize() - Initial tool model request failed.'); console.debug(response); + + // show error + var error_message = response.error || 'Uncaught error.'; + self.modal.show({ + title : 'Tool cannot be executed', + body : error_message, + buttons : { + 'Close' : function() { + self.modal.hide(); + } + } + }); } }); }, @@ -175,10 +187,13 @@ // register process var process_id = this.deferred.register(); + // build model url for request + var model_url = galaxy_config.root + 'api/tools/' + this.options.id + '/build?tool_version=' + this.options.version; + // post job Utils.request({ type : 'GET', - url : galaxy_config.root + 'api/tools/' + this.options.id + '/build', + url : model_url, data : current_state, success : function(response) { // rebuild form @@ -219,23 +234,18 @@ var field = self.field_list[input_id]; if (field.update) { var new_options = []; - switch (input.type) { - case 'data': - new_options = input.options; - break; - case 'drill_down': - new_options = input.options; - break; - default: - for (var i in node.options) { - var opt = node.options[i]; - if (opt.length > 2) { - new_options.push({ - 'label': opt[0], - 'value': opt[1] - }); - } + if ((['data', 'data_collection', 'drill_down']).indexOf(input.type) != -1) { + new_options = input.options; + } else { + for (var i in node.options) { + var opt = node.options[i]; + if (opt.length > 2) { + new_options.push({ + 'label': opt[0], + 'value': opt[1] + }); } + } } field.update(new_options); field.trigger('change'); @@ -247,7 +257,7 @@ }, // builds the tool form - _buildForm: function(options) { + _buildForm: function() { // link this var self = this; @@ -260,12 +270,46 @@ // reset input element list, which contains the dom elements of each input element (includes also the input field) this.element_list = {}; - // for now the initial tool model is parsed through the mako - this.model = options; - this.inputs = options.inputs; + // creates a tree/json data structure from the input form + this.tree = new ToolTree(this); + + // creates the job handler + this.job_handler = new ToolJobs(this); + + // request history content and build form + this.content = new ToolContent(this); + + // link model options + var options = this.options; + + // button for version selection + var versions_button = new Ui.ButtonMenu({ + icon : 'fa-cubes', + title : 'Versions', + tooltip : 'Click to see available versions.' + }); + if (options.versions && options.versions.length > 1) { + for (var i in options.versions) { + versions_button.addMenu({ + title : options.versions[i], + icon : 'fa-cube', + onclick : function() { + // here we update the tool version (some tools encode the version also in the id) + options.id = options.id.replace(options.version, this.title); + options.version = this.title; + + // rebuild the model and form + self.deferred.reset(); + self.deferred.execute(function(){self._buildModel()}); + } + }); + } + } else { + versions_button.$el.hide(); + } // button menu - var menu = new Ui.ButtonMenu({ + var menu_button = new Ui.ButtonMenu({ icon : 'fa-gear', tooltip : 'Click to see a list of options.' }); @@ -273,52 +317,52 @@ // configure button selection if(options.biostar_url) { // add question option - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-question-circle', title : 'Question?', tooltip : 'Ask a question about this tool (Biostar)', onclick : function() { - window.open(self.options.biostar_url + '/p/new/post/'); + window.open(options.biostar_url + '/p/new/post/'); } }); // create search button - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-search', title : 'Search', tooltip : 'Search help for this tool (Biostar)', onclick : function() { - window.open(self.options.biostar_url + '/t/' + self.options.id + '/'); + window.open(options.biostar_url + '/t/' + options.id + '/'); } }); }; // create share button - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-share', title : 'Share', tooltip : 'Share this tool', onclick : function() { - prompt('Copy to clipboard: Ctrl+C, Enter', window.location.origin + galaxy_config.root + 'root?tool_id=' + self.options.id); + prompt('Copy to clipboard: Ctrl+C, Enter', window.location.origin + galaxy_config.root + 'root?tool_id=' + options.id); } }); // add admin operations if (this.is_admin) { // create download button - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-download', title : 'Download', tooltip : 'Download this tool', onclick : function() { - window.location.href = galaxy_config.root + 'api/tools/' + self.options.id + '/download'; + window.location.href = galaxy_config.root + 'api/tools/' + options.id + '/download'; } }); } // create tool form section this.section = new ToolSection.View(self, { - inputs : this.inputs, + inputs : options.inputs, cls : 'ui-table-plain' }); @@ -332,15 +376,16 @@ // create portlet this.portlet = new Portlet.View({ icon : 'fa-wrench', - title : '<b>' + this.model.name + '</b> ' + this.model.description, + title : '<b>' + options.name + '</b> ' + options.description + ' (Version ' + options.version + ')', cls : 'ui-portlet-slim', operations: { - menu : menu + menu : menu_button, + versions : versions_button }, buttons: { execute : new Ui.Button({ icon : 'fa-check', - tooltip : 'Execute: ' + self.model.name, + tooltip : 'Execute: ' + options.name, title : 'Execute', cls : 'btn btn-primary', floating : 'clear', @@ -371,6 +416,16 @@ this.$el.append($citations); } + // append message + if (options.message) { + var message = new Ui.Message({ + persistent : true, + status : 'warning', + message : options.message + }); + this.portlet.append(message.$el); + } + // append tool section this.portlet.append(this.section.$el); diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 client/galaxy/scripts/mvc/tools/tools-jobs.js --- a/client/galaxy/scripts/mvc/tools/tools-jobs.js +++ b/client/galaxy/scripts/mvc/tools/tools-jobs.js @@ -4,12 +4,8 @@ define(['utils/utils', 'mvc/tools/tools-template'], function(Utils, ToolTemplate) { return Backbone.Model.extend({ // initialize - initialize: function(app, options) { - // link app + initialize: function(app) { this.app = app; - - // link options - this.options = Utils.merge(options, this.optionsDefault); }, /** Creates and submits a job request to the api @@ -20,8 +16,9 @@ // create job definition for submission to tools api var job_def = { - tool_id : this.app.options.id, - inputs : this.app.tree.finalize() + tool_id : this.app.options.id, + tool_version : this.app.options.version, + inputs : this.app.tree.finalize() } // reset @@ -46,7 +43,7 @@ data : job_def, success : function(response) { self.app.modal.hide(); - self.app.message(ToolTemplate.success(response)); + self.app.reciept(ToolTemplate.success(response)); self._refreshHdas(); }, error : function(response, response_full) { diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 client/galaxy/scripts/mvc/tools/tools-select-content.js --- a/client/galaxy/scripts/mvc/tools/tools-select-content.js +++ b/client/galaxy/scripts/mvc/tools/tools-select-content.js @@ -38,7 +38,7 @@ // error messages var extensions = options.extensions.toString(); if (extensions) { - extensions = extensions.replace(',', ', '); + extensions = extensions.replace(/,/g, ', '); var pos = extensions.lastIndexOf(', '); if (pos != -1) { extensions = extensions.substr(0, pos) + ' or ' + extensions.substr(pos+1); @@ -50,7 +50,7 @@ } var hdca_error = 'No dataset list available.'; if (extensions) { - hdca_error = 'No ' + extensions + ' dataset list available.'; + hdca_error = 'No ' + extensions + ' dataset collection available.'; } // add single dataset selector @@ -86,7 +86,7 @@ // add collection selector if (this.mode == 'single' || this.mode == 'collection') { - radio_buttons.push({icon: 'fa-folder-o', label : 'List of datasets', value : 'collection' }); + radio_buttons.push({icon: 'fa-folder-o', label : 'Dataset collection', value : 'collection' }); this.select_collection = new Ui.Select.View({ error_text : hdca_error, onchange : function() { diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 client/galaxy/scripts/mvc/tools/tools-tree.js --- a/client/galaxy/scripts/mvc/tools/tools-tree.js +++ b/client/galaxy/scripts/mvc/tools/tools-tree.js @@ -8,7 +8,6 @@ return Backbone.Model.extend({ // initialize initialize: function(app) { - // link app this.app = app; }, diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 client/galaxy/scripts/mvc/ui/ui-misc.js --- a/client/galaxy/scripts/mvc/ui/ui-misc.js +++ b/client/galaxy/scripts/mvc/ui/ui-misc.js @@ -248,9 +248,9 @@ var Message = Backbone.View.extend({ // options optionsDefault: { - message : '', - status : 'info', - persistent : false + message : null, + status : 'info', + persistent : false }, // initialize @@ -260,6 +260,11 @@ // create new element this.setElement('<div></div>'); + + // show initial message + if (this.options.message) { + this.update(this.options); + } }, // update diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 lib/galaxy/webapps/galaxy/api/tools.py --- a/lib/galaxy/webapps/galaxy/api/tools.py +++ b/lib/galaxy/webapps/galaxy/api/tools.py @@ -79,7 +79,12 @@ GET /api/tools/{tool_id}/build Returns a tool model including dynamic parameters and updated values, repeats block etc. """ - tool = self._get_tool( id ) + tool_id = urllib.unquote_plus( id ) + tool_version = kwd.get( 'tool_version', None ) + tool = self.app.toolbox.get_tool( tool_id, tool_version ) + if not tool: + trans.response.status = 500 + return { 'error': 'Could not find tool with id \'%s\'' % tool_id } return self._build_dict(trans, tool, kwd) @_future_expose_api @@ -128,7 +133,8 @@ # -- Execute tool. -- # Get tool. - tool = trans.app.toolbox.get_tool( payload[ 'tool_id' ] ) if 'tool_id' in payload else None + tool_version = payload.get( 'tool_version', None ) + tool = trans.app.toolbox.get_tool( payload[ 'tool_id' ] , tool_version ) if 'tool_id' in payload else None if not tool: trans.response.status = 404 return { "message": { "type": "error", "text" : trans.app.model.Dataset.conversion_messages.NO_TOOL } } @@ -219,9 +225,9 @@ # # -- Helper methods -- # - def _get_tool( self, id ): + def _get_tool( self, id, tool_version=None ): id = urllib.unquote_plus( id ) - tool = self.app.toolbox.get_tool( id ) + tool = self.app.toolbox.get_tool( id, tool_version ) if not tool: raise exceptions.ObjectNotFound("Could not find tool with id '%s'" % id) return tool @@ -728,50 +734,58 @@ tool_citations = False if tool.citations: tool_citations = True - + + # get tool versions + tool_versions = [] + tools = self.app.toolbox.get_loaded_tools_by_lineage(tool.id) + for t in tools: + tool_versions.append(t.version) + # add additional properties tool_model.update({ 'help' : tool_help, 'citations' : tool_citations, 'biostar_url' : trans.app.config.biostar_url, - 'message' : tool_message + 'message' : tool_message, + 'versions' : tool_versions }) - + + # check for errors + if 'error' in tool_message: + return tool_message + # return enriched tool model return tool_model - def _get_tool_components( self, trans, tool_id, tool_version=None, get_loaded_tools_by_lineage=False, set_selected=False ): - return self.get_toolbox().get_tool_components( tool_id, tool_version, get_loaded_tools_by_lineage, set_selected ) - def _compare_tool_version( self, trans, tool, job ): """ - Compares a tool version with the tool version from a job (from ToolRunne. + Compares a tool version with the tool version from a job (from ToolRunner). """ - id = job.tool_id - version = job.tool_version + tool_id = job.tool_id + tool_version = job.tool_version message = '' try: - select_field, tools, tool = self._get_tool_components( trans, id, tool_version=version, get_loaded_tools_by_lineage=False, set_selected=True ) + select_field, tools, tool = self.app.toolbox.get_tool_components( tool_id, tool_version=tool_version, get_loaded_tools_by_lineage=False, set_selected=True ) if tool is None: trans.response.status = 500 - return { 'error': 'This dataset was created by an obsolete tool (%s). Can\'t re-run.' % id } - if ( tool.id != id and tool.old_id != id ) or tool.version != version: - if tool.id == id: - if version == None: + return { 'error': 'This dataset was created by an obsolete tool (%s). Can\'t re-run.' % tool_id } + if ( tool.id != tool_id and tool.old_id != tool_id ) or tool.version != tool_version: + if tool.id == tool_id: + if tool_version == None: # for some reason jobs don't always keep track of the tool version. message = '' else: - message = 'This job was initially run with tool version "%s", which is currently not available. ' % version + message = 'This job was initially run with tool version "%s", which is currently not available. ' % tool_version if len( tools ) > 1: message += 'You can re-run the job with the selected tool or choose another derivation of the tool.' else: message += 'You can re-run the job with this tool version, which is a derivation of the original tool.' else: if len( tools ) > 1: - message = 'This job was initially run with tool version "%s", which is currently not available. ' % version + message = 'This job was initially run with tool version "%s", which is currently not available. ' % tool_version message += 'You can re-run the job with the selected tool or choose another derivation of the tool.' else: - message = 'This job was initially run with tool id "%s", version "%s", which is ' % ( id, version ) + message = 'This job was initially run with tool id "%s", version "%s", which is ' % ( tool_id, tool_version ) message += 'currently not available. You can re-run the job with this tool, which is a derivation of the original tool.' except Exception, error: trans.response.status = 500 diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/images/fonts/fontawesome-webfont.eot Binary file static/images/fonts/fontawesome-webfont.eot has changed diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/images/fonts/fontawesome-webfont.ttf Binary file static/images/fonts/fontawesome-webfont.ttf has changed diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/images/fonts/fontawesome-webfont.woff Binary file static/images/fonts/fontawesome-webfont.woff has changed diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/mvc/tools/tools-form.js --- a/static/scripts/mvc/tools/tools-form.js +++ b/static/scripts/mvc/tools/tools-form.js @@ -48,21 +48,12 @@ // add to main element $(this.container).append(this.$el); - // creates a tree/json structure from the input form - this.tree = new ToolTree(this); - - // creates the job handler - this.job_handler = new ToolJobs(this); - - // request history content and build form - this.content = new ToolContent(this); - // build this form - this._buildForm(options); + this._buildForm(); }, - // message - message: function($el) { + // reciept shows the final message usually upon successful job submission + reciept: function($el) { $(this.container).empty(); $(this.container).append($el); }, @@ -105,6 +96,7 @@ if (this.options.dataset_id) { model_url += 'dataset_id=' + this.options.dataset_id; } else { + model_url += 'tool_version=' + this.options.version + '&'; var loc = top.location.href; var pos = loc.indexOf('?'); if (loc.indexOf('tool_id=') != -1 && pos !== -1) { @@ -112,27 +104,47 @@ } } } - + + // register process + var process_id = this.deferred.register(); + // get initial model Utils.request({ type : 'GET', url : model_url, success : function(response) { // link model data update options - self.options = $.extend(self.options, response); - self.model = response; - self.inputs = response.inputs; + self.options = response; + + // build form + self._buildForm(); + + // process completed + self.deferred.done(process_id); // log success console.debug('tools-form::initialize() - Initial tool model ready.'); console.debug(response); - - // build form - self._buildForm(); }, error : function(response) { + // process completed + self.deferred.done(process_id); + + // log error console.debug('tools-form::initialize() - Initial tool model request failed.'); console.debug(response); + + // show error + var error_message = response.error || 'Uncaught error.'; + self.modal.show({ + title : 'Tool cannot be executed', + body : error_message, + buttons : { + 'Close' : function() { + self.modal.hide(); + } + } + }); } }); }, @@ -175,10 +187,13 @@ // register process var process_id = this.deferred.register(); + // build model url for request + var model_url = galaxy_config.root + 'api/tools/' + this.options.id + '/build?tool_version=' + this.options.version; + // post job Utils.request({ type : 'GET', - url : galaxy_config.root + 'api/tools/' + this.options.id + '/build', + url : model_url, data : current_state, success : function(response) { // rebuild form @@ -219,23 +234,18 @@ var field = self.field_list[input_id]; if (field.update) { var new_options = []; - switch (input.type) { - case 'data': - new_options = input.options; - break; - case 'drill_down': - new_options = input.options; - break; - default: - for (var i in node.options) { - var opt = node.options[i]; - if (opt.length > 2) { - new_options.push({ - 'label': opt[0], - 'value': opt[1] - }); - } + if ((['data', 'data_collection', 'drill_down']).indexOf(input.type) != -1) { + new_options = input.options; + } else { + for (var i in node.options) { + var opt = node.options[i]; + if (opt.length > 2) { + new_options.push({ + 'label': opt[0], + 'value': opt[1] + }); } + } } field.update(new_options); field.trigger('change'); @@ -247,7 +257,7 @@ }, // builds the tool form - _buildForm: function(options) { + _buildForm: function() { // link this var self = this; @@ -260,12 +270,46 @@ // reset input element list, which contains the dom elements of each input element (includes also the input field) this.element_list = {}; - // for now the initial tool model is parsed through the mako - this.model = options; - this.inputs = options.inputs; + // creates a tree/json data structure from the input form + this.tree = new ToolTree(this); + + // creates the job handler + this.job_handler = new ToolJobs(this); + + // request history content and build form + this.content = new ToolContent(this); + + // link model options + var options = this.options; + + // button for version selection + var versions_button = new Ui.ButtonMenu({ + icon : 'fa-cubes', + title : 'Versions', + tooltip : 'Click to see available versions.' + }); + if (options.versions && options.versions.length > 1) { + for (var i in options.versions) { + versions_button.addMenu({ + title : options.versions[i], + icon : 'fa-cube', + onclick : function() { + // here we update the tool version (some tools encode the version also in the id) + options.id = options.id.replace(options.version, this.title); + options.version = this.title; + + // rebuild the model and form + self.deferred.reset(); + self.deferred.execute(function(){self._buildModel()}); + } + }); + } + } else { + versions_button.$el.hide(); + } // button menu - var menu = new Ui.ButtonMenu({ + var menu_button = new Ui.ButtonMenu({ icon : 'fa-gear', tooltip : 'Click to see a list of options.' }); @@ -273,52 +317,52 @@ // configure button selection if(options.biostar_url) { // add question option - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-question-circle', title : 'Question?', tooltip : 'Ask a question about this tool (Biostar)', onclick : function() { - window.open(self.options.biostar_url + '/p/new/post/'); + window.open(options.biostar_url + '/p/new/post/'); } }); // create search button - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-search', title : 'Search', tooltip : 'Search help for this tool (Biostar)', onclick : function() { - window.open(self.options.biostar_url + '/t/' + self.options.id + '/'); + window.open(options.biostar_url + '/t/' + options.id + '/'); } }); }; // create share button - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-share', title : 'Share', tooltip : 'Share this tool', onclick : function() { - prompt('Copy to clipboard: Ctrl+C, Enter', window.location.origin + galaxy_config.root + 'root?tool_id=' + self.options.id); + prompt('Copy to clipboard: Ctrl+C, Enter', window.location.origin + galaxy_config.root + 'root?tool_id=' + options.id); } }); // add admin operations if (this.is_admin) { // create download button - menu.addMenu({ + menu_button.addMenu({ icon : 'fa-download', title : 'Download', tooltip : 'Download this tool', onclick : function() { - window.location.href = galaxy_config.root + 'api/tools/' + self.options.id + '/download'; + window.location.href = galaxy_config.root + 'api/tools/' + options.id + '/download'; } }); } // create tool form section this.section = new ToolSection.View(self, { - inputs : this.inputs, + inputs : options.inputs, cls : 'ui-table-plain' }); @@ -332,15 +376,16 @@ // create portlet this.portlet = new Portlet.View({ icon : 'fa-wrench', - title : '<b>' + this.model.name + '</b> ' + this.model.description, + title : '<b>' + options.name + '</b> ' + options.description + ' (Version ' + options.version + ')', cls : 'ui-portlet-slim', operations: { - menu : menu + menu : menu_button, + versions : versions_button }, buttons: { execute : new Ui.Button({ icon : 'fa-check', - tooltip : 'Execute: ' + self.model.name, + tooltip : 'Execute: ' + options.name, title : 'Execute', cls : 'btn btn-primary', floating : 'clear', @@ -371,6 +416,16 @@ this.$el.append($citations); } + // append message + if (options.message) { + var message = new Ui.Message({ + persistent : true, + status : 'warning', + message : options.message + }); + this.portlet.append(message.$el); + } + // append tool section this.portlet.append(this.section.$el); diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/mvc/tools/tools-jobs.js --- a/static/scripts/mvc/tools/tools-jobs.js +++ b/static/scripts/mvc/tools/tools-jobs.js @@ -4,12 +4,8 @@ define(['utils/utils', 'mvc/tools/tools-template'], function(Utils, ToolTemplate) { return Backbone.Model.extend({ // initialize - initialize: function(app, options) { - // link app + initialize: function(app) { this.app = app; - - // link options - this.options = Utils.merge(options, this.optionsDefault); }, /** Creates and submits a job request to the api @@ -20,8 +16,9 @@ // create job definition for submission to tools api var job_def = { - tool_id : this.app.options.id, - inputs : this.app.tree.finalize() + tool_id : this.app.options.id, + tool_version : this.app.options.version, + inputs : this.app.tree.finalize() } // reset @@ -46,7 +43,7 @@ data : job_def, success : function(response) { self.app.modal.hide(); - self.app.message(ToolTemplate.success(response)); + self.app.reciept(ToolTemplate.success(response)); self._refreshHdas(); }, error : function(response, response_full) { diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/mvc/tools/tools-select-content.js --- a/static/scripts/mvc/tools/tools-select-content.js +++ b/static/scripts/mvc/tools/tools-select-content.js @@ -38,7 +38,7 @@ // error messages var extensions = options.extensions.toString(); if (extensions) { - extensions = extensions.replace(',', ', '); + extensions = extensions.replace(/,/g, ', '); var pos = extensions.lastIndexOf(', '); if (pos != -1) { extensions = extensions.substr(0, pos) + ' or ' + extensions.substr(pos+1); @@ -50,7 +50,7 @@ } var hdca_error = 'No dataset list available.'; if (extensions) { - hdca_error = 'No ' + extensions + ' dataset list available.'; + hdca_error = 'No ' + extensions + ' dataset collection available.'; } // add single dataset selector @@ -86,7 +86,7 @@ // add collection selector if (this.mode == 'single' || this.mode == 'collection') { - radio_buttons.push({icon: 'fa-folder-o', label : 'List of datasets', value : 'collection' }); + radio_buttons.push({icon: 'fa-folder-o', label : 'Dataset collection', value : 'collection' }); this.select_collection = new Ui.Select.View({ error_text : hdca_error, onchange : function() { diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/mvc/tools/tools-tree.js --- a/static/scripts/mvc/tools/tools-tree.js +++ b/static/scripts/mvc/tools/tools-tree.js @@ -8,7 +8,6 @@ return Backbone.Model.extend({ // initialize initialize: function(app) { - // link app this.app = app; }, diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/mvc/ui/ui-misc.js --- a/static/scripts/mvc/ui/ui-misc.js +++ b/static/scripts/mvc/ui/ui-misc.js @@ -248,9 +248,9 @@ var Message = Backbone.View.extend({ // options optionsDefault: { - message : '', - status : 'info', - persistent : false + message : null, + status : 'info', + persistent : false }, // initialize @@ -260,6 +260,11 @@ // create new element this.setElement('<div></div>'); + + // show initial message + if (this.options.message) { + this.update(this.options); + } }, // update diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/packed/mvc/tools/tools-form.js --- a/static/scripts/packed/mvc/tools/tools-form.js +++ b/static/scripts/packed/mvc/tools/tools-form.js @@ -1,1 +1,1 @@ -define(["utils/utils","utils/deferred","mvc/ui/ui-portlet","mvc/ui/ui-misc","mvc/citation/citation-model","mvc/citation/citation-view","mvc/tools","mvc/tools/tools-template","mvc/tools/tools-content","mvc/tools/tools-section","mvc/tools/tools-tree","mvc/tools/tools-jobs"],function(i,j,h,m,k,a,e,d,f,l,c,g){var b=Backbone.View.extend({container:"body",initialize:function(o){console.debug(o);var n=this;var p=parent.Galaxy;if(p&&p.modal){this.modal=p.modal}else{this.modal=new m.Modal.View()}if(p&&p.currUser){this.is_admin=p.currUser.get("is_admin")}else{this.is_admin=false}this.options=o;this.deferred=new j();this.setElement("<div/>");$(this.container).append(this.$el);this.tree=new c(this);this.job_handler=new g(this);this.content=new f(this);this._buildForm(o)},message:function(n){$(this.container).empty();$(this.container).append(n)},reset:function(){for(var n in this.element_list){this.element_list[n].reset()}},rebuild:function(){this.tree.refresh();console.debug("tools-form::rebuild() - Rebuilding data structures.")},refresh:function(){if(this.is_dynamic){var n=this;this.deferred.reset();this.deferred.execute(function(){n._updateModel()})}},_buildModel:function(){var n=this;var o=galaxy_config.root+"api/tools/"+this.options.id+"/build?";if(this.options.job_id){o+="job_id="+this.options.job_id}else{if(this.options.dataset_id){o+="dataset_id="+this.options.dataset_id}else{var p=top.location.href;var q=p.indexOf("?");if(p.indexOf("tool_id=")!=-1&&q!==-1){o+=p.slice(q+1)}}}i.request({type:"GET",url:o,success:function(r){n.options=$.extend(n.options,r);n.model=r;n.inputs=r.inputs;console.debug("tools-form::initialize() - Initial tool model ready.");console.debug(r);n._buildForm()},error:function(r){console.debug("tools-form::initialize() - Initial tool model request failed.");console.debug(r)}})},_updateModel:function(){var n=this;var o=this.tree.finalize({data:function(r){if(r.values.length>0&&r.values[0]&&r.values[0].src==="hda"){return n.content.get({id:r.values[0].id,src:"hda"}).id_uncoded}return null}});console.debug("tools-form::_refreshForm() - Refreshing states.");console.debug(o);function q(u){for(var s in n.input_list){var t=n.field_list[s];var r=n.input_list[s];if(r.is_dynamic&&t.wait&&t.unwait){if(u){t.wait()}else{t.unwait()}}}}q(true);var p=this.deferred.register();i.request({type:"GET",url:galaxy_config.root+"api/tools/"+this.options.id+"/build",data:o,success:function(r){n._updateForm(r);q(false);n.deferred.done(p);console.debug("tools-form::_refreshForm() - States refreshed.");console.debug(r)},error:function(r){n.deferred.done(p);console.debug("tools-form::_refreshForm() - Refresh request failed.");console.debug(r)}})},_updateForm:function(n){var o=this;this.tree.matchModel(n,function(q,u){var p=o.input_list[q];if(p&&p.options){if(!_.isEqual(p.options,u.options)){p.options=u.options;var v=o.field_list[q];if(v.update){var t=[];switch(p.type){case"data":t=p.options;break;case"drill_down":t=p.options;break;default:for(var s in u.options){var r=u.options[s];if(r.length>2){t.push({label:r[0],value:r[1]})}}}v.update(t);v.trigger("change");console.debug("Updating options for "+q)}}}})},_buildForm:function(p){var o=this;this.field_list={};this.input_list={};this.element_list={};this.model=p;this.inputs=p.inputs;var s=new m.ButtonMenu({icon:"fa-gear",tooltip:"Click to see a list of options."});if(p.biostar_url){s.addMenu({icon:"fa-question-circle",title:"Question?",tooltip:"Ask a question about this tool (Biostar)",onclick:function(){window.open(o.options.biostar_url+"/p/new/post/")}});s.addMenu({icon:"fa-search",title:"Search",tooltip:"Search help for this tool (Biostar)",onclick:function(){window.open(o.options.biostar_url+"/t/"+o.options.id+"/")}})}s.addMenu({icon:"fa-share",title:"Share",tooltip:"Share this tool",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+galaxy_config.root+"root?tool_id="+o.options.id)}});if(this.is_admin){s.addMenu({icon:"fa-download",title:"Download",tooltip:"Download this tool",onclick:function(){window.location.href=galaxy_config.root+"api/tools/"+o.options.id+"/download"}})}this.section=new l.View(o,{inputs:this.inputs,cls:"ui-table-plain"});if(this.incompatible){this.$el.hide();$("#tool-form-classic").show();return}this.portlet=new h.View({icon:"fa-wrench",title:"<b>"+this.model.name+"</b> "+this.model.description,cls:"ui-portlet-slim",operations:{menu:s},buttons:{execute:new m.Button({icon:"fa-check",tooltip:"Execute: "+o.model.name,title:"Execute",cls:"btn btn-primary",floating:"clear",onclick:function(){o.job_handler.submit()}})}});this.$el.empty();this.$el.append(this.portlet.$el);if(p.help!=""){this.$el.append(d.help(p.help))}if(p.citations){var r=$("<div/>");var n=new k.ToolCitationCollection();n.tool_id=p.id;var q=new a.CitationListView({el:r,collection:n});q.render();n.fetch();this.$el.append(r)}this.portlet.append(this.section.$el);this.rebuild()}});return{View:b}}); \ No newline at end of file +define(["utils/utils","utils/deferred","mvc/ui/ui-portlet","mvc/ui/ui-misc","mvc/citation/citation-model","mvc/citation/citation-view","mvc/tools","mvc/tools/tools-template","mvc/tools/tools-content","mvc/tools/tools-section","mvc/tools/tools-tree","mvc/tools/tools-jobs"],function(i,j,h,m,k,a,e,d,f,l,c,g){var b=Backbone.View.extend({container:"body",initialize:function(o){console.debug(o);var n=this;var p=parent.Galaxy;if(p&&p.modal){this.modal=p.modal}else{this.modal=new m.Modal.View()}if(p&&p.currUser){this.is_admin=p.currUser.get("is_admin")}else{this.is_admin=false}this.options=o;this.deferred=new j();this.setElement("<div/>");$(this.container).append(this.$el);this._buildForm()},reciept:function(n){$(this.container).empty();$(this.container).append(n)},reset:function(){for(var n in this.element_list){this.element_list[n].reset()}},rebuild:function(){this.tree.refresh();console.debug("tools-form::rebuild() - Rebuilding data structures.")},refresh:function(){if(this.is_dynamic){var n=this;this.deferred.reset();this.deferred.execute(function(){n._updateModel()})}},_buildModel:function(){var n=this;var o=galaxy_config.root+"api/tools/"+this.options.id+"/build?";if(this.options.job_id){o+="job_id="+this.options.job_id}else{if(this.options.dataset_id){o+="dataset_id="+this.options.dataset_id}else{o+="tool_version="+this.options.version+"&";var q=top.location.href;var r=q.indexOf("?");if(q.indexOf("tool_id=")!=-1&&r!==-1){o+=q.slice(r+1)}}}var p=this.deferred.register();i.request({type:"GET",url:o,success:function(s){n.options=s;n._buildForm();n.deferred.done(p);console.debug("tools-form::initialize() - Initial tool model ready.");console.debug(s)},error:function(s){n.deferred.done(p);console.debug("tools-form::initialize() - Initial tool model request failed.");console.debug(s);var t=s.error||"Uncaught error.";n.modal.show({title:"Tool cannot be executed",body:t,buttons:{Close:function(){n.modal.hide()}}})}})},_updateModel:function(){var n=this;var o=this.tree.finalize({data:function(s){if(s.values.length>0&&s.values[0]&&s.values[0].src==="hda"){return n.content.get({id:s.values[0].id,src:"hda"}).id_uncoded}return null}});console.debug("tools-form::_refreshForm() - Refreshing states.");console.debug(o);function r(v){for(var t in n.input_list){var u=n.field_list[t];var s=n.input_list[t];if(s.is_dynamic&&u.wait&&u.unwait){if(v){u.wait()}else{u.unwait()}}}}r(true);var q=this.deferred.register();var p=galaxy_config.root+"api/tools/"+this.options.id+"/build?tool_version="+this.options.version;i.request({type:"GET",url:p,data:o,success:function(s){n._updateForm(s);r(false);n.deferred.done(q);console.debug("tools-form::_refreshForm() - States refreshed.");console.debug(s)},error:function(s){n.deferred.done(q);console.debug("tools-form::_refreshForm() - Refresh request failed.");console.debug(s)}})},_updateForm:function(n){var o=this;this.tree.matchModel(n,function(q,u){var p=o.input_list[q];if(p&&p.options){if(!_.isEqual(p.options,u.options)){p.options=u.options;var v=o.field_list[q];if(v.update){var t=[];if((["data","data_collection","drill_down"]).indexOf(p.type)!=-1){t=p.options}else{for(var s in u.options){var r=u.options[s];if(r.length>2){t.push({label:r[0],value:r[1]})}}}v.update(t);v.trigger("change");console.debug("Updating options for "+q)}}}})},_buildForm:function(){var t=this;this.field_list={};this.input_list={};this.element_list={};this.tree=new c(this);this.job_handler=new g(this);this.content=new f(this);var v=this.options;var o=new m.ButtonMenu({icon:"fa-cubes",title:"Versions",tooltip:"Click to see available versions."});if(v.versions&&v.versions.length>1){for(var q in v.versions){o.addMenu({title:v.versions[q],icon:"fa-cube",onclick:function(){v.id=v.id.replace(v.version,this.title);v.version=this.title;t.deferred.reset();t.deferred.execute(function(){t._buildModel()})}})}}else{o.$el.hide()}var r=new m.ButtonMenu({icon:"fa-gear",tooltip:"Click to see a list of options."});if(v.biostar_url){r.addMenu({icon:"fa-question-circle",title:"Question?",tooltip:"Ask a question about this tool (Biostar)",onclick:function(){window.open(v.biostar_url+"/p/new/post/")}});r.addMenu({icon:"fa-search",title:"Search",tooltip:"Search help for this tool (Biostar)",onclick:function(){window.open(v.biostar_url+"/t/"+v.id+"/")}})}r.addMenu({icon:"fa-share",title:"Share",tooltip:"Share this tool",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+galaxy_config.root+"root?tool_id="+v.id)}});if(this.is_admin){r.addMenu({icon:"fa-download",title:"Download",tooltip:"Download this tool",onclick:function(){window.location.href=galaxy_config.root+"api/tools/"+v.id+"/download"}})}this.section=new l.View(t,{inputs:v.inputs,cls:"ui-table-plain"});if(this.incompatible){this.$el.hide();$("#tool-form-classic").show();return}this.portlet=new h.View({icon:"fa-wrench",title:"<b>"+v.name+"</b> "+v.description+" (Version "+v.version+")",cls:"ui-portlet-slim",operations:{menu:r,versions:o},buttons:{execute:new m.Button({icon:"fa-check",tooltip:"Execute: "+v.name,title:"Execute",cls:"btn btn-primary",floating:"clear",onclick:function(){t.job_handler.submit()}})}});this.$el.empty();this.$el.append(this.portlet.$el);if(v.help!=""){this.$el.append(d.help(v.help))}if(v.citations){var s=$("<div/>");var n=new k.ToolCitationCollection();n.tool_id=v.id;var p=new a.CitationListView({el:s,collection:n});p.render();n.fetch();this.$el.append(s)}if(v.message){var u=new m.Message({persistent:true,status:"warning",message:v.message});this.portlet.append(u.$el)}this.portlet.append(this.section.$el);this.rebuild()}});return{View:b}}); \ No newline at end of file diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/packed/mvc/tools/tools-jobs.js --- a/static/scripts/packed/mvc/tools/tools-jobs.js +++ b/static/scripts/packed/mvc/tools/tools-jobs.js @@ -1,1 +1,1 @@ -define(["utils/utils","mvc/tools/tools-template"],function(b,a){return Backbone.Model.extend({initialize:function(d,c){this.app=d;this.options=b.merge(c,this.optionsDefault)},submit:function(){var c=this;var d={tool_id:this.app.options.id,inputs:this.app.tree.finalize()};this.app.reset();if(!this._validation(d)){console.debug("tools-jobs::submit - Submission canceled. Validation failed.");return}console.debug(d);this.app.modal.show({title:"Please wait...",body:"progress",closing_events:true,buttons:{Close:function(){c.app.modal.hide()}}});b.request({type:"POST",url:galaxy_config.root+"api/tools",data:d,success:function(e){c.app.modal.hide();c.app.message(a.success(e));c._refreshHdas()},error:function(e,g){c.app.modal.hide();if(e&&e.message&&e.message.data){var h=c.app.tree.matchResponse(e.message.data);for(var f in h){c._foundError(f,h[f]);break}}else{console.debug(e);c.app.modal.show({title:"Job submission failed",body:a.error(d),buttons:{Close:function(){c.app.modal.hide()}}})}}})},_foundError:function(c,d){var e=this.app.element_list[c];e.error(d||"Please verify this parameter.");$(this.app.container).animate({scrollTop:e.$el.offset().top-20},500)},_validation:function(h){var d=h.inputs;var m=-1;var i=null;for(var k in d){var f=d[k];var l=this.app.tree.match(k);var e=this.app.field_list[l];var j=this.app.input_list[l];if(!l||!j||!e){console.debug("tools-jobs::_validation - Retrieving input objects failed.");continue}if(!j.optional&&e.validate&&!e.validate()){this._foundError(l);return false}if(f&&f.batch){var g=f.values.length;var c=null;if(g>0){c=f.values[0]&&f.values[0].src}if(c){if(i===null){i=c}else{if(i!==c){this._foundError(l,"Please select either dataset or dataset list fields for all batch mode fields.");return false}}}if(m===-1){m=g}else{if(m!==g){this._foundError(l,"Please make sure that you select the same number of inputs for all batch mode fields. This field contains <b>"+g+"</b> selection(s) while a previous field contains <b>"+m+"</b>.");return false}}}}return true},_refreshHdas:function(){if(parent.Galaxy&&parent.Galaxy.currHistoryPanel){parent.Galaxy.currHistoryPanel.refreshContents()}}})}); \ No newline at end of file +define(["utils/utils","mvc/tools/tools-template"],function(b,a){return Backbone.Model.extend({initialize:function(c){this.app=c},submit:function(){var c=this;var d={tool_id:this.app.options.id,tool_version:this.app.options.version,inputs:this.app.tree.finalize()};this.app.reset();if(!this._validation(d)){console.debug("tools-jobs::submit - Submission canceled. Validation failed.");return}console.debug(d);this.app.modal.show({title:"Please wait...",body:"progress",closing_events:true,buttons:{Close:function(){c.app.modal.hide()}}});b.request({type:"POST",url:galaxy_config.root+"api/tools",data:d,success:function(e){c.app.modal.hide();c.app.reciept(a.success(e));c._refreshHdas()},error:function(e,g){c.app.modal.hide();if(e&&e.message&&e.message.data){var h=c.app.tree.matchResponse(e.message.data);for(var f in h){c._foundError(f,h[f]);break}}else{console.debug(e);c.app.modal.show({title:"Job submission failed",body:a.error(d),buttons:{Close:function(){c.app.modal.hide()}}})}}})},_foundError:function(c,d){var e=this.app.element_list[c];e.error(d||"Please verify this parameter.");$(this.app.container).animate({scrollTop:e.$el.offset().top-20},500)},_validation:function(h){var d=h.inputs;var m=-1;var i=null;for(var k in d){var f=d[k];var l=this.app.tree.match(k);var e=this.app.field_list[l];var j=this.app.input_list[l];if(!l||!j||!e){console.debug("tools-jobs::_validation - Retrieving input objects failed.");continue}if(!j.optional&&e.validate&&!e.validate()){this._foundError(l);return false}if(f&&f.batch){var g=f.values.length;var c=null;if(g>0){c=f.values[0]&&f.values[0].src}if(c){if(i===null){i=c}else{if(i!==c){this._foundError(l,"Please select either dataset or dataset list fields for all batch mode fields.");return false}}}if(m===-1){m=g}else{if(m!==g){this._foundError(l,"Please make sure that you select the same number of inputs for all batch mode fields. This field contains <b>"+g+"</b> selection(s) while a previous field contains <b>"+m+"</b>.");return false}}}}return true},_refreshHdas:function(){if(parent.Galaxy&&parent.Galaxy.currHistoryPanel){parent.Galaxy.currHistoryPanel.refreshContents()}}})}); \ No newline at end of file diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/packed/mvc/tools/tools-select-content.js --- a/static/scripts/packed/mvc/tools/tools-select-content.js +++ b/static/scripts/packed/mvc/tools/tools-select-content.js @@ -1,1 +1,1 @@ -define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(c,e,b,a){var d=Backbone.View.extend({initialize:function(f,o){this.app=f;this.options=o;var n=this;this.setElement("<div/>");this.list={};var m=[];if(o.type=="data_collection"){this.mode="collection"}else{if(o.multiple){this.mode="multiple"}else{this.mode="single"}}this.current=this.mode;this.list={};var j=o.extensions.toString();if(j){j=j.replace(",",", ");var k=j.lastIndexOf(", ");if(k!=-1){j=j.substr(0,k)+" or "+j.substr(k+1)}}var h="No dataset available.";if(j){h="No "+j+" dataset available."}var l="No dataset list available.";if(j){l="No "+j+" dataset list available."}if(this.mode=="single"){m.push({icon:"fa-file-o",label:"Single dataset",value:"single"});this.select_single=new e.Select.View({error_text:h,onchange:function(){n.trigger("change")}});this.list.single={field:this.select_single,type:"hda"}}if(this.mode=="single"||this.mode=="multiple"){m.push({icon:"fa-files-o",label:"Multiple datasets",value:"multiple"});this.select_multiple=new e.Select.View({multiple:true,error_text:h,onchange:function(){n.trigger("change")}});this.list.multiple={field:this.select_multiple,type:"hda"}}if(this.mode=="single"||this.mode=="collection"){m.push({icon:"fa-folder-o",label:"List of datasets",value:"collection"});this.select_collection=new e.Select.View({error_text:l,onchange:function(){n.trigger("change")}});this.list.collection={field:this.select_collection,type:"hdca"}}this.button_type=new e.RadioButton.View({value:this.current,data:m,onchange:function(i){n.current=i;n.refresh();n.trigger("change")}});this.$batch=$(a.batchMode());if(_.size(this.list)>1){this.$el.append(c.wrap(this.button_type.$el))}for(var g in this.list){this.$el.append(this.list[g].field.$el)}this.$el.append(this.$batch);this.update(o.data);if(this.options.value!==undefined){this.value(this.options.value)}this.refresh();this.on("change",function(){if(o.onchange){o.onchange(n.value())}})},wait:function(){for(var f in this.list){this.list[f].field.wait()}},unwait:function(){for(var f in this.list){this.list[f].field.unwait()}},update:function(g){var l=[];for(var j in g.hda){var k=g.hda[j];l.push({label:k.hid+": "+k.name,value:k.id})}var f=[];for(var j in g.hdca){var h=g.hdca[j];f.push({label:h.hid+": "+h.name,value:h.id})}this.select_single&&this.select_single.update(l);this.select_multiple&&this.select_multiple.update(l);this.select_collection&&this.select_collection.update(f);this.app.content.add(g)},value:function(m){if(m&&m.values){try{var l=[];for(var h in m.values){l.push(m.values[h].id)}if(m&&m.values.length>0&&m.values[0].src=="hcda"){this.current="collection";this.select_collection.value(l[0])}else{if(this.mode=="multiple"){this.current="multiple";this.select_multiple.value(l)}else{this.current="single";this.select_single.value(l[0])}}this.refresh();var g=this._select();if(!g.validate()){g.value(g.first())}}catch(k){console.debug("tools-select-content::value() - Skipped.")}}var j=this._select().value();if(!(j instanceof Array)){j=[j]}var f={batch:this.mode=="single"&&this.current!="single",values:[]};for(var h in j){f.values.push({id:j[h],src:this.list[this.current].type})}return f},validate:function(){return this._select().validate()},refresh:function(){for(var g in this.list){var f=this.list[g].field.$el;if(this.current==g){f.show()}else{f.hide()}}if(this.mode=="single"&&this.current!="single"){this.$batch.show()}else{this.$batch.hide()}},_select:function(){return this.list[this.current].field}});return{View:d}}); \ No newline at end of file +define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(c,e,b,a){var d=Backbone.View.extend({initialize:function(f,o){this.app=f;this.options=o;var n=this;this.setElement("<div/>");this.list={};var m=[];if(o.type=="data_collection"){this.mode="collection"}else{if(o.multiple){this.mode="multiple"}else{this.mode="single"}}this.current=this.mode;this.list={};var j=o.extensions.toString();if(j){j=j.replace(/,/g,", ");var k=j.lastIndexOf(", ");if(k!=-1){j=j.substr(0,k)+" or "+j.substr(k+1)}}var h="No dataset available.";if(j){h="No "+j+" dataset available."}var l="No dataset list available.";if(j){l="No "+j+" dataset collection available."}if(this.mode=="single"){m.push({icon:"fa-file-o",label:"Single dataset",value:"single"});this.select_single=new e.Select.View({error_text:h,onchange:function(){n.trigger("change")}});this.list.single={field:this.select_single,type:"hda"}}if(this.mode=="single"||this.mode=="multiple"){m.push({icon:"fa-files-o",label:"Multiple datasets",value:"multiple"});this.select_multiple=new e.Select.View({multiple:true,error_text:h,onchange:function(){n.trigger("change")}});this.list.multiple={field:this.select_multiple,type:"hda"}}if(this.mode=="single"||this.mode=="collection"){m.push({icon:"fa-folder-o",label:"Dataset collection",value:"collection"});this.select_collection=new e.Select.View({error_text:l,onchange:function(){n.trigger("change")}});this.list.collection={field:this.select_collection,type:"hdca"}}this.button_type=new e.RadioButton.View({value:this.current,data:m,onchange:function(i){n.current=i;n.refresh();n.trigger("change")}});this.$batch=$(a.batchMode());if(_.size(this.list)>1){this.$el.append(c.wrap(this.button_type.$el))}for(var g in this.list){this.$el.append(this.list[g].field.$el)}this.$el.append(this.$batch);this.update(o.data);if(this.options.value!==undefined){this.value(this.options.value)}this.refresh();this.on("change",function(){if(o.onchange){o.onchange(n.value())}})},wait:function(){for(var f in this.list){this.list[f].field.wait()}},unwait:function(){for(var f in this.list){this.list[f].field.unwait()}},update:function(g){var l=[];for(var j in g.hda){var k=g.hda[j];l.push({label:k.hid+": "+k.name,value:k.id})}var f=[];for(var j in g.hdca){var h=g.hdca[j];f.push({label:h.hid+": "+h.name,value:h.id})}this.select_single&&this.select_single.update(l);this.select_multiple&&this.select_multiple.update(l);this.select_collection&&this.select_collection.update(f);this.app.content.add(g)},value:function(m){if(m&&m.values){try{var l=[];for(var h in m.values){l.push(m.values[h].id)}if(m&&m.values.length>0&&m.values[0].src=="hcda"){this.current="collection";this.select_collection.value(l[0])}else{if(this.mode=="multiple"){this.current="multiple";this.select_multiple.value(l)}else{this.current="single";this.select_single.value(l[0])}}this.refresh();var g=this._select();if(!g.validate()){g.value(g.first())}}catch(k){console.debug("tools-select-content::value() - Skipped.")}}var j=this._select().value();if(!(j instanceof Array)){j=[j]}var f={batch:this.mode=="single"&&this.current!="single",values:[]};for(var h in j){f.values.push({id:j[h],src:this.list[this.current].type})}return f},validate:function(){return this._select().validate()},refresh:function(){for(var g in this.list){var f=this.list[g].field.$el;if(this.current==g){f.show()}else{f.hide()}}if(this.mode=="single"&&this.current!="single"){this.$batch.show()}else{this.$batch.hide()}},_select:function(){return this.list[this.current].field}});return{View:d}}); \ No newline at end of file diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/scripts/packed/mvc/ui/ui-misc.js --- a/static/scripts/packed/mvc/ui/ui-misc.js +++ b/static/scripts/packed/mvc/ui/ui-misc.js @@ -1,1 +1,1 @@ -define(["utils/utils","mvc/ui/ui-select-default","mvc/ui/ui-slider","mvc/ui/ui-options","mvc/ui/ui-drilldown","mvc/ui/ui-button-menu","mvc/ui/ui-modal"],function(k,b,e,o,l,q,m){var d=Backbone.View.extend({optionsDefault:{url:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options))},_template:function(r){return'<img class="ui-image '+r.cls+'" src="'+r.url+'"/>'}});var j=Backbone.View.extend({optionsDefault:{title:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options))},title:function(r){this.$el.html(r)},_template:function(r){return'<label class="ui-label '+r.cls+'">'+r.title+"</label>"},value:function(){return options.title}});var c=Backbone.View.extend({optionsDefault:{floating:"right",icon:"",tooltip:"",placement:"bottom",title:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options));$(this.el).tooltip({title:r.tooltip,placement:"bottom"})},_template:function(r){return'<div><span class="fa '+r.icon+'" class="ui-icon"/> '+r.title+"</div>"}});var g=Backbone.View.extend({optionsDefault:{id:null,title:"",floating:"right",cls:"ui-button btn btn-default",icon:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options));$(this.el).on("click",function(){$(".tooltip").hide();if(r.onclick){r.onclick()}});$(this.el).tooltip({title:r.tooltip,placement:"bottom"})},_template:function(r){var s='<button id="'+r.id+'" type="submit" style="float: '+r.floating+';" type="button" class="'+r.cls+'">';if(r.icon){s+='<i class="icon fa '+r.icon+'"></i> '}s+=r.title+"</button>";return s}});var h=Backbone.View.extend({optionsDefault:{id:null,title:"",floating:"right",cls:"ui-button-icon",icon:"",tooltip:"",onclick:null},initialize:function(s){this.options=k.merge(s,this.optionsDefault);this.setElement(this._template(this.options));this.$button=this.$el.find(".button");var r=this;$(this.el).on("click",function(){$(".tooltip").hide();if(s.onclick&&!r.disabled){s.onclick()}});$(this.el).tooltip({title:s.tooltip,placement:"bottom"})},disable:function(){this.$button.addClass("disabled");this.disabled=true},enable:function(){this.$button.removeClass("disabled");this.disabled=false},_template:function(r){var s="";if(r.title){s="width: auto;"}var t='<div id="'+r.id+'" style="float: '+r.floating+"; "+s+'" class="'+r.cls+'">';if(r.title){t+='<div class="button"><i class="icon fa '+r.icon+'"/> <span class="title">'+r.title+"</span></div>"}else{t+='<i class="icon fa '+r.icon+'"/>'}t+="</div>";return t}});var f=Backbone.View.extend({optionsDefault:{title:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options));$(this.el).on("click",r.onclick)},_template:function(r){return'<div><a href="javascript:void(0)" class="ui-anchor '+r.cls+'">'+r.title+"</a></div>"}});var n=Backbone.View.extend({optionsDefault:{message:"",status:"info",persistent:false},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement("<div></div>")},update:function(s){this.options=k.merge(s,this.optionsDefault);if(s.message!=""){this.$el.html(this._template(this.options));this.$el.find(".alert").append(s.message);this.$el.fadeIn();if(!s.persistent){var r=this;window.setTimeout(function(){if(r.$el.is(":visible")){r.$el.fadeOut()}else{r.$el.hide()}},3000)}}else{this.$el.fadeOut()}},_template:function(r){return'<div class="ui-message alert alert-'+r.status+'"/>'}});var a=Backbone.View.extend({optionsDefault:{onclick:null,searchword:""},initialize:function(s){this.options=k.merge(s,this.optionsDefault);this.setElement(this._template(this.options));var r=this;if(this.options.onclick){this.$el.on("submit",function(u){var t=r.$el.find("#search");r.options.onclick(t.val())})}},_template:function(r){return'<div class="ui-search"><form onsubmit="return false;"><input id="search" class="form-control input-sm" type="text" name="search" placeholder="Search..." value="'+r.searchword+'"><button type="submit" class="btn search-btn"><i class="fa fa-search"></i></button></form></div>'}});var i=Backbone.View.extend({optionsDefault:{type:"text",placeholder:"",disabled:false,visible:true,cls:"",area:false},initialize:function(s){this.options=k.merge(s,this.optionsDefault);this.setElement(this._template(this.options));if(this.options.value!==undefined){this.value(this.options.value)}if(this.options.disabled){this.$el.prop("disabled",true)}if(!this.options.visible){this.$el.hide()}var r=this;this.$el.on("input",function(){if(r.options.onchange){r.options.onchange(r.$el.val())}})},value:function(r){if(r!==undefined){this.$el.val(r)}return this.$el.val()},_template:function(r){if(r.area){return'<textarea id="'+r.id+'" class="ui-textarea '+r.cls+'"></textarea>'}else{return'<input id="'+r.id+'" type="'+r.type+'" value="'+r.value+'" placeholder="'+r.placeholder+'" class="ui-input '+r.cls+'">'}}});var p=Backbone.View.extend({initialize:function(r){this.options=r;this.setElement(this._template(this.options));if(this.options.value!==undefined){this.value(this.options.value)}},value:function(r){if(r!==undefined){this.$el.val(r)}return this.$el.val()},_template:function(r){return'<hidden id="'+r.id+'" value="'+r.value+'"/>'}});return{Anchor:f,Button:g,ButtonIcon:h,ButtonMenu:q,Icon:c,Image:d,Input:i,Label:j,Message:n,Modal:m,RadioButton:o.RadioButton,Checkbox:o.Checkbox,Radio:o.Radio,Searchbox:a,Select:b,Hidden:p,Slider:e,Drilldown:l}}); \ No newline at end of file +define(["utils/utils","mvc/ui/ui-select-default","mvc/ui/ui-slider","mvc/ui/ui-options","mvc/ui/ui-drilldown","mvc/ui/ui-button-menu","mvc/ui/ui-modal"],function(k,b,e,o,l,q,m){var d=Backbone.View.extend({optionsDefault:{url:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options))},_template:function(r){return'<img class="ui-image '+r.cls+'" src="'+r.url+'"/>'}});var j=Backbone.View.extend({optionsDefault:{title:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options))},title:function(r){this.$el.html(r)},_template:function(r){return'<label class="ui-label '+r.cls+'">'+r.title+"</label>"},value:function(){return options.title}});var c=Backbone.View.extend({optionsDefault:{floating:"right",icon:"",tooltip:"",placement:"bottom",title:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options));$(this.el).tooltip({title:r.tooltip,placement:"bottom"})},_template:function(r){return'<div><span class="fa '+r.icon+'" class="ui-icon"/> '+r.title+"</div>"}});var g=Backbone.View.extend({optionsDefault:{id:null,title:"",floating:"right",cls:"ui-button btn btn-default",icon:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options));$(this.el).on("click",function(){$(".tooltip").hide();if(r.onclick){r.onclick()}});$(this.el).tooltip({title:r.tooltip,placement:"bottom"})},_template:function(r){var s='<button id="'+r.id+'" type="submit" style="float: '+r.floating+';" type="button" class="'+r.cls+'">';if(r.icon){s+='<i class="icon fa '+r.icon+'"></i> '}s+=r.title+"</button>";return s}});var h=Backbone.View.extend({optionsDefault:{id:null,title:"",floating:"right",cls:"ui-button-icon",icon:"",tooltip:"",onclick:null},initialize:function(s){this.options=k.merge(s,this.optionsDefault);this.setElement(this._template(this.options));this.$button=this.$el.find(".button");var r=this;$(this.el).on("click",function(){$(".tooltip").hide();if(s.onclick&&!r.disabled){s.onclick()}});$(this.el).tooltip({title:s.tooltip,placement:"bottom"})},disable:function(){this.$button.addClass("disabled");this.disabled=true},enable:function(){this.$button.removeClass("disabled");this.disabled=false},_template:function(r){var s="";if(r.title){s="width: auto;"}var t='<div id="'+r.id+'" style="float: '+r.floating+"; "+s+'" class="'+r.cls+'">';if(r.title){t+='<div class="button"><i class="icon fa '+r.icon+'"/> <span class="title">'+r.title+"</span></div>"}else{t+='<i class="icon fa '+r.icon+'"/>'}t+="</div>";return t}});var f=Backbone.View.extend({optionsDefault:{title:"",cls:""},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement(this._template(this.options));$(this.el).on("click",r.onclick)},_template:function(r){return'<div><a href="javascript:void(0)" class="ui-anchor '+r.cls+'">'+r.title+"</a></div>"}});var n=Backbone.View.extend({optionsDefault:{message:null,status:"info",persistent:false},initialize:function(r){this.options=k.merge(r,this.optionsDefault);this.setElement("<div></div>");if(this.options.message){this.update(this.options)}},update:function(s){this.options=k.merge(s,this.optionsDefault);if(s.message!=""){this.$el.html(this._template(this.options));this.$el.find(".alert").append(s.message);this.$el.fadeIn();if(!s.persistent){var r=this;window.setTimeout(function(){if(r.$el.is(":visible")){r.$el.fadeOut()}else{r.$el.hide()}},3000)}}else{this.$el.fadeOut()}},_template:function(r){return'<div class="ui-message alert alert-'+r.status+'"/>'}});var a=Backbone.View.extend({optionsDefault:{onclick:null,searchword:""},initialize:function(s){this.options=k.merge(s,this.optionsDefault);this.setElement(this._template(this.options));var r=this;if(this.options.onclick){this.$el.on("submit",function(u){var t=r.$el.find("#search");r.options.onclick(t.val())})}},_template:function(r){return'<div class="ui-search"><form onsubmit="return false;"><input id="search" class="form-control input-sm" type="text" name="search" placeholder="Search..." value="'+r.searchword+'"><button type="submit" class="btn search-btn"><i class="fa fa-search"></i></button></form></div>'}});var i=Backbone.View.extend({optionsDefault:{type:"text",placeholder:"",disabled:false,visible:true,cls:"",area:false},initialize:function(s){this.options=k.merge(s,this.optionsDefault);this.setElement(this._template(this.options));if(this.options.value!==undefined){this.value(this.options.value)}if(this.options.disabled){this.$el.prop("disabled",true)}if(!this.options.visible){this.$el.hide()}var r=this;this.$el.on("input",function(){if(r.options.onchange){r.options.onchange(r.$el.val())}})},value:function(r){if(r!==undefined){this.$el.val(r)}return this.$el.val()},_template:function(r){if(r.area){return'<textarea id="'+r.id+'" class="ui-textarea '+r.cls+'"></textarea>'}else{return'<input id="'+r.id+'" type="'+r.type+'" value="'+r.value+'" placeholder="'+r.placeholder+'" class="ui-input '+r.cls+'">'}}});var p=Backbone.View.extend({initialize:function(r){this.options=r;this.setElement(this._template(this.options));if(this.options.value!==undefined){this.value(this.options.value)}},value:function(r){if(r!==undefined){this.$el.val(r)}return this.$el.val()},_template:function(r){return'<hidden id="'+r.id+'" value="'+r.value+'"/>'}});return{Anchor:f,Button:g,ButtonIcon:h,ButtonMenu:q,Icon:c,Image:d,Input:i,Label:j,Message:n,Modal:m,RadioButton:o.RadioButton,Checkbox:o.Checkbox,Radio:o.Radio,Searchbox:a,Select:b,Hidden:p,Slider:e,Drilldown:l}}); \ No newline at end of file diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/blue/base.css --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -762,7 +762,7 @@ .nav-tabs{margin-bottom:15px} a{text-decoration:underline} label{font-weight:normal} -@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot?v=4.0.1');src:url('../images/fonts/fontawesome-webfont.eot?#iefix&v=4.0.1') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff?v=4.0.1') format('woff'),url('../images/fonts/fontawesome-webfont.ttf?v=4.0.1') format('truetype'),url('../images/fonts/fontawesome-webfont.svg?v=4.0.1#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} +@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../images/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../images/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../images/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} .fa-lg{font-size:1.3333333333333333em;line-height:.75em;vertical-align:-15%} .fa-2x{font-size:2em} .fa-3x{font-size:3em} @@ -776,12 +776,13 @@ .pull-left{float:left} .fa.pull-left{margin-right:.3em} .fa.pull-right{margin-left:.3em} -.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear} -@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)} 100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)} 100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)} 100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)} 100%{transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)} -.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)} -.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)} -.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)} -.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)} +.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear} +@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)} +.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)} +.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)} +.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)} +.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)} +:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none} .fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle} .fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center} .fa-stack-1x{line-height:inherit} @@ -800,7 +801,7 @@ .fa-th:before{content:"\f00a"} .fa-th-list:before{content:"\f00b"} .fa-check:before{content:"\f00c"} -.fa-times:before{content:"\f00d"} +.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"} .fa-search-plus:before{content:"\f00e"} .fa-search-minus:before{content:"\f010"} .fa-power-off:before{content:"\f011"} @@ -846,7 +847,7 @@ .fa-dedent:before,.fa-outdent:before{content:"\f03b"} .fa-indent:before{content:"\f03c"} .fa-video-camera:before{content:"\f03d"} -.fa-picture-o:before{content:"\f03e"} +.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"} .fa-pencil:before{content:"\f040"} .fa-map-marker:before{content:"\f041"} .fa-adjust:before{content:"\f042"} @@ -854,7 +855,7 @@ .fa-edit:before,.fa-pencil-square-o:before{content:"\f044"} .fa-share-square-o:before{content:"\f045"} .fa-check-square-o:before{content:"\f046"} -.fa-move:before{content:"\f047"} +.fa-arrows:before{content:"\f047"} .fa-step-backward:before{content:"\f048"} .fa-fast-backward:before{content:"\f049"} .fa-backward:before{content:"\f04a"} @@ -882,8 +883,8 @@ .fa-arrow-up:before{content:"\f062"} .fa-arrow-down:before{content:"\f063"} .fa-mail-forward:before,.fa-share:before{content:"\f064"} -.fa-resize-full:before{content:"\f065"} -.fa-resize-small:before{content:"\f066"} +.fa-expand:before{content:"\f065"} +.fa-compress:before{content:"\f066"} .fa-plus:before{content:"\f067"} .fa-minus:before{content:"\f068"} .fa-asterisk:before{content:"\f069"} @@ -905,9 +906,9 @@ .fa-shopping-cart:before{content:"\f07a"} .fa-folder:before{content:"\f07b"} .fa-folder-open:before{content:"\f07c"} -.fa-resize-vertical:before{content:"\f07d"} -.fa-resize-horizontal:before{content:"\f07e"} -.fa-bar-chart-o:before{content:"\f080"} +.fa-arrows-v:before{content:"\f07d"} +.fa-arrows-h:before{content:"\f07e"} +.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"} .fa-twitter-square:before{content:"\f081"} .fa-facebook-square:before{content:"\f082"} .fa-camera-retro:before{content:"\f083"} @@ -954,8 +955,8 @@ .fa-tasks:before{content:"\f0ae"} .fa-filter:before{content:"\f0b0"} .fa-briefcase:before{content:"\f0b1"} -.fa-fullscreen:before{content:"\f0b2"} -.fa-group:before{content:"\f0c0"} +.fa-arrows-alt:before{content:"\f0b2"} +.fa-group:before,.fa-users:before{content:"\f0c0"} .fa-chain:before,.fa-link:before{content:"\f0c1"} .fa-cloud:before{content:"\f0c2"} .fa-flask:before{content:"\f0c3"} @@ -964,7 +965,7 @@ .fa-paperclip:before{content:"\f0c6"} .fa-save:before,.fa-floppy-o:before{content:"\f0c7"} .fa-square:before{content:"\f0c8"} -.fa-reorder:before{content:"\f0c9"} +.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"} .fa-list-ul:before{content:"\f0ca"} .fa-list-ol:before{content:"\f0cb"} .fa-strikethrough:before{content:"\f0cc"} @@ -983,8 +984,8 @@ .fa-caret-right:before{content:"\f0da"} .fa-columns:before{content:"\f0db"} .fa-unsorted:before,.fa-sort:before{content:"\f0dc"} -.fa-sort-down:before,.fa-sort-asc:before{content:"\f0dd"} -.fa-sort-up:before,.fa-sort-desc:before{content:"\f0de"} +.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"} +.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"} .fa-envelope:before{content:"\f0e0"} .fa-linkedin:before{content:"\f0e1"} .fa-rotate-left:before,.fa-undo:before{content:"\f0e2"} @@ -1007,8 +1008,8 @@ .fa-coffee:before{content:"\f0f4"} .fa-cutlery:before{content:"\f0f5"} .fa-file-text-o:before{content:"\f0f6"} -.fa-building:before{content:"\f0f7"} -.fa-hospital:before{content:"\f0f8"} +.fa-building-o:before{content:"\f0f7"} +.fa-hospital-o:before{content:"\f0f8"} .fa-ambulance:before{content:"\f0f9"} .fa-medkit:before{content:"\f0fa"} .fa-fighter-jet:before{content:"\f0fb"} @@ -1036,8 +1037,6 @@ .fa-github-alt:before{content:"\f113"} .fa-folder-o:before{content:"\f114"} .fa-folder-open-o:before{content:"\f115"} -.fa-expand-o:before{content:"\f116"} -.fa-collapse-o:before{content:"\f117"} .fa-smile-o:before{content:"\f118"} .fa-frown-o:before{content:"\f119"} .fa-meh-o:before{content:"\f11a"} @@ -1047,8 +1046,7 @@ .fa-flag-checkered:before{content:"\f11e"} .fa-terminal:before{content:"\f120"} .fa-code:before{content:"\f121"} -.fa-reply-all:before{content:"\f122"} -.fa-mail-reply-all:before{content:"\f122"} +.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"} .fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"} .fa-location-arrow:before{content:"\f124"} .fa-crop:before{content:"\f125"} @@ -1075,10 +1073,10 @@ .fa-html5:before{content:"\f13b"} .fa-css3:before{content:"\f13c"} .fa-anchor:before{content:"\f13d"} -.fa-unlock-o:before{content:"\f13e"} +.fa-unlock-alt:before{content:"\f13e"} .fa-bullseye:before{content:"\f140"} -.fa-ellipsis-horizontal:before{content:"\f141"} -.fa-ellipsis-vertical:before{content:"\f142"} +.fa-ellipsis-h:before{content:"\f141"} +.fa-ellipsis-v:before{content:"\f142"} .fa-rss-square:before{content:"\f143"} .fa-play-circle:before{content:"\f144"} .fa-ticket:before{content:"\f145"} @@ -1157,6 +1155,118 @@ .fa-wheelchair:before{content:"\f193"} .fa-vimeo-square:before{content:"\f194"} .fa-turkish-lira:before,.fa-try:before{content:"\f195"} +.fa-plus-square-o:before{content:"\f196"} +.fa-space-shuttle:before{content:"\f197"} +.fa-slack:before{content:"\f198"} +.fa-envelope-square:before{content:"\f199"} +.fa-wordpress:before{content:"\f19a"} +.fa-openid:before{content:"\f19b"} +.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"} +.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"} +.fa-yahoo:before{content:"\f19e"} +.fa-google:before{content:"\f1a0"} +.fa-reddit:before{content:"\f1a1"} +.fa-reddit-square:before{content:"\f1a2"} +.fa-stumbleupon-circle:before{content:"\f1a3"} +.fa-stumbleupon:before{content:"\f1a4"} +.fa-delicious:before{content:"\f1a5"} +.fa-digg:before{content:"\f1a6"} +.fa-pied-piper:before{content:"\f1a7"} +.fa-pied-piper-alt:before{content:"\f1a8"} +.fa-drupal:before{content:"\f1a9"} +.fa-joomla:before{content:"\f1aa"} +.fa-language:before{content:"\f1ab"} +.fa-fax:before{content:"\f1ac"} +.fa-building:before{content:"\f1ad"} +.fa-child:before{content:"\f1ae"} +.fa-paw:before{content:"\f1b0"} +.fa-spoon:before{content:"\f1b1"} +.fa-cube:before{content:"\f1b2"} +.fa-cubes:before{content:"\f1b3"} +.fa-behance:before{content:"\f1b4"} +.fa-behance-square:before{content:"\f1b5"} +.fa-steam:before{content:"\f1b6"} +.fa-steam-square:before{content:"\f1b7"} +.fa-recycle:before{content:"\f1b8"} +.fa-automobile:before,.fa-car:before{content:"\f1b9"} +.fa-cab:before,.fa-taxi:before{content:"\f1ba"} +.fa-tree:before{content:"\f1bb"} +.fa-spotify:before{content:"\f1bc"} +.fa-deviantart:before{content:"\f1bd"} +.fa-soundcloud:before{content:"\f1be"} +.fa-database:before{content:"\f1c0"} +.fa-file-pdf-o:before{content:"\f1c1"} +.fa-file-word-o:before{content:"\f1c2"} +.fa-file-excel-o:before{content:"\f1c3"} +.fa-file-powerpoint-o:before{content:"\f1c4"} +.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"} +.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"} +.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"} +.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"} +.fa-file-code-o:before{content:"\f1c9"} +.fa-vine:before{content:"\f1ca"} +.fa-codepen:before{content:"\f1cb"} +.fa-jsfiddle:before{content:"\f1cc"} +.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"} +.fa-circle-o-notch:before{content:"\f1ce"} +.fa-ra:before,.fa-rebel:before{content:"\f1d0"} +.fa-ge:before,.fa-empire:before{content:"\f1d1"} +.fa-git-square:before{content:"\f1d2"} +.fa-git:before{content:"\f1d3"} +.fa-hacker-news:before{content:"\f1d4"} +.fa-tencent-weibo:before{content:"\f1d5"} +.fa-qq:before{content:"\f1d6"} +.fa-wechat:before,.fa-weixin:before{content:"\f1d7"} +.fa-send:before,.fa-paper-plane:before{content:"\f1d8"} +.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"} +.fa-history:before{content:"\f1da"} +.fa-circle-thin:before{content:"\f1db"} +.fa-header:before{content:"\f1dc"} +.fa-paragraph:before{content:"\f1dd"} +.fa-sliders:before{content:"\f1de"} +.fa-share-alt:before{content:"\f1e0"} +.fa-share-alt-square:before{content:"\f1e1"} +.fa-bomb:before{content:"\f1e2"} +.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"} +.fa-tty:before{content:"\f1e4"} +.fa-binoculars:before{content:"\f1e5"} +.fa-plug:before{content:"\f1e6"} +.fa-slideshare:before{content:"\f1e7"} +.fa-twitch:before{content:"\f1e8"} +.fa-yelp:before{content:"\f1e9"} +.fa-newspaper-o:before{content:"\f1ea"} +.fa-wifi:before{content:"\f1eb"} +.fa-calculator:before{content:"\f1ec"} +.fa-paypal:before{content:"\f1ed"} +.fa-google-wallet:before{content:"\f1ee"} +.fa-cc-visa:before{content:"\f1f0"} +.fa-cc-mastercard:before{content:"\f1f1"} +.fa-cc-discover:before{content:"\f1f2"} +.fa-cc-amex:before{content:"\f1f3"} +.fa-cc-paypal:before{content:"\f1f4"} +.fa-cc-stripe:before{content:"\f1f5"} +.fa-bell-slash:before{content:"\f1f6"} +.fa-bell-slash-o:before{content:"\f1f7"} +.fa-trash:before{content:"\f1f8"} +.fa-copyright:before{content:"\f1f9"} +.fa-at:before{content:"\f1fa"} +.fa-eyedropper:before{content:"\f1fb"} +.fa-paint-brush:before{content:"\f1fc"} +.fa-birthday-cake:before{content:"\f1fd"} +.fa-area-chart:before{content:"\f1fe"} +.fa-pie-chart:before{content:"\f200"} +.fa-line-chart:before{content:"\f201"} +.fa-lastfm:before{content:"\f202"} +.fa-lastfm-square:before{content:"\f203"} +.fa-toggle-off:before{content:"\f204"} +.fa-toggle-on:before{content:"\f205"} +.fa-bicycle:before{content:"\f206"} +.fa-bus:before{content:"\f207"} +.fa-ioxhost:before{content:"\f208"} +.fa-angellist:before{content:"\f209"} +.fa-cc:before{content:"\f20a"} +.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"} +.fa-meanpath:before{content:"\f20c"} .fa-icon{font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} .select2-container{margin:0;position:relative;display:inline-block;zoom:1;*display:inline;vertical-align:middle} .select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} @@ -1610,7 +1720,7 @@ .unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999 1px;background:#eee;color:#555}.unified-panel-footer a{color:#555} .unified-panel-footer .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize} #right>.unified-panel-footer .drag{left:0} -.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;width:100%;z-index:1000;background:#eee;color:#555;font-size:1.3333333333333333em;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;z-index:201;display:block;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;height:25px;line-height:25px;width:20px;background:none;border-right:solid #999 1px;border-top:solid #999 1px;background:#eee}.panel-collapse a{color:#555} +.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;width:100%;z-index:1000;background:#eee;color:#555;font-size:1.3333333333333333em;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;z-index:201;display:block;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;height:25px;line-height:25px;width:20px;background:none;border-right:solid #999 1px;border-top:solid #999 1px;background:#eee}.panel-collapse a{color:#555} .panel-collapse .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize} .panel-collapse:before{content:'\f053'} .panel-collapse.hidden:before{content:'\f054'} @@ -1687,7 +1797,7 @@ .search-query{display:inline-block;padding:4px;font-size:12px;line-height:1.428571429;color:#555;border:1px solid #aaa;padding-left:14px !important;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;max-width:auto} .search-query:focus{border-color:rgba(24,132,218,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);outline:0;outline:thin dotted \9;} .search-spinner{position:absolute;display:none;right:6px;top:9px} -#search-clear-btn{position:absolute;right:6px;top:5px;display:block;font-size:1.4em;text-decoration:none;color:#888;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#search-clear-btn:before{content:"\f057"} +#search-clear-btn{position:absolute;right:6px;top:9px;display:block;font-size:1.4em !important;text-decoration:none;color:#888;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#search-clear-btn:before{content:"\f057"} .errormessagelarge,.warningmessagelarge,.donemessagelarge,.infomessagelarge{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px;min-height:36px;padding-left:52px;background-image:url(error_large.png);background-repeat:no-repeat;background-position:10px 8px}.errormessagelarge h4,.warningmessagelarge h4,.donemessagelarge h4,.infomessagelarge h4{margin-top:0;color:inherit} .errormessagelarge .alert-link,.warningmessagelarge .alert-link,.donemessagelarge .alert-link,.infomessagelarge .alert-link{font-weight:bold} .errormessagelarge>p,.warningmessagelarge>p,.donemessagelarge>p,.infomessagelarge>p,.errormessagelarge>ul,.warningmessagelarge>ul,.donemessagelarge>ul,.infomessagelarge>ul{margin-bottom:0} @@ -1878,7 +1988,7 @@ .list-item .details .list-panel{margin-top:8px;border-radius:3px;background:white;padding:4px}.list-item .details .list-panel .list-items{border:1px solid #bfbfbf;border-radius:3px}.list-item .details .list-panel .list-items .list-item:first-child{border-top-width:0px;border-radius:3px 3px 0px 0px} .list-item .details .list-panel .list-items .list-item:last-child{border-bottom-width:0px;border-radius:0px 0px 3px 3px} .history-panel-header .panel-header-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0px} -.state-icon{font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;margin-right:4px;vertical-align:middle;width:16px;height:16px;line-height:16px;text-align:center;font-size:16px} +.state-icon{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;margin-right:4px;vertical-align:middle;width:16px;height:16px;line-height:16px;text-align:center;font-size:16px} .state-icon-running{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)} 100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)} 100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)} 100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)} 100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)} 100%{transform:rotate(359deg)}}.state-icon-running:before{content:"\f110"} .state-icon-upload{overflow:hidden}.state-icon-upload:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)} 100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)} 100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)} 100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)} 100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)} 100%{transform:translate(0, -16px)}} .state-icon-error{background-color:white;border-radius:8px}.state-icon-error:before{font-size:20px;line-height:16px;color:red;content:"\f057"} @@ -1974,9 +2084,9 @@ div.historyItem-setting_metadata{background:#ffc}div.historyItem-setting_metadata .state-icon{background-image:url(data_running.gif)} div.historyItem-upload{background:#a6e4f7}div.historyItem-upload .state-icon{background-image:url(data_upload.gif)} div.historyItem-queued{background:#eee}div.historyItem-queued .state-icon{background-image:url(sprite-history-states.png);background-position:0px -45px;width:15px;height:15px;height:15px} -div.historyItem-noPermission{filter:alpha(opacity=60);-moz-opacity:.60;opacity:.60}div.historyItem-noPermission .state-icon{line-height:16px;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-noPermission .state-icon:before{content:"\f05e"} -div.historyItem-paused{background:#d9edf7}div.historyItem-paused .state-icon{line-height:16px;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-paused .state-icon:before{content:"\f04c"} -div.historyItem-new .state-icon{line-height:16px;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-new .state-icon:before{content:"\f071"} +div.historyItem-noPermission{filter:alpha(opacity=60);-moz-opacity:.60;opacity:.60}div.historyItem-noPermission .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-noPermission .state-icon:before{content:"\f05e"} +div.historyItem-paused{background:#d9edf7}div.historyItem-paused .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-paused .state-icon:before{content:"\f04c"} +div.historyItem-new .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-new .state-icon:before{content:"\f071"} div.historyItemTitleBar.spinner .state-icon{background:url(data_running.gif) 0 1px no-repeat !important} div.historyItemButtons{float:right}div.historyItemButtons .icon-button.display{background-image:url(sprite-history-buttons.png);background-position:0px -48px;width:16px;height:16px;height:16px} div.historyItemButtons .icon-button.display:hover{background-image:url(sprite-history-buttons.png);background-position:0px -64px;width:16px;height:16px;height:16px} diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/base.less --- a/static/style/src/less/base.less +++ b/static/style/src/less/base.less @@ -742,9 +742,9 @@ #search-clear-btn { position: absolute; right: 6px; - top: 5px; + top: 9px; display: block; - font-size: 1.4em; + font-size: 1.4em !important; text-decoration: none; color: #888; .fa-icon; diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/core.less --- a/static/style/src/less/fontawesome/core.less +++ b/static/style/src/less/fontawesome/core.less @@ -3,10 +3,9 @@ .@{fa-css-prefix} { display: inline-block; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - line-height: 1; + font: normal normal normal 14px/1 FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/font-awesome.less --- a/static/style/src/less/fontawesome/font-awesome.less +++ b/static/style/src/less/fontawesome/font-awesome.less @@ -1,38 +1,17 @@ /*! - * Font Awesome 4.0.1 - * the iconic font designed for Bootstrap - * ------------------------------------------------------------------------------ - * The full suite of pictographic icons, examples, and documentation can be - * found at http://fontawesome.io. Stay up to date on Twitter at - * http://twitter.com/fontawesome. - * - * License - * ------------------------------------------------------------------------------ - * - The Font Awesome font is licensed under SIL OFL 1.1 - - * http://scripts.sil.org/OFL - * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - - * http://opensource.org/licenses/mit-license.html - * - Font Awesome documentation licensed under CC BY 3.0 - - * http://creativecommons.org/licenses/by/3.0/ - * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: - * "Font Awesome by Dave Gandy - http://fontawesome.io" - * - * Author - Dave Gandy - * ------------------------------------------------------------------------------ - * Email: dave@fontawesome.io - * Twitter: http://twitter.com/davegandy - * Work: Lead Product Designer @ Kyruus - http://kyruus.com + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ -@import "variables"; -@import "mixins"; -@import "path"; -@import "core"; -@import "larger"; -@import "fixed-width"; -@import "list"; -@import "bordered-pulled"; -@import "spinning"; -@import "rotated-flipped"; -@import "stacked"; -@import "icons"; +@import "variables.less"; +@import "mixins.less"; +@import "path.less"; +@import "core.less"; +@import "larger.less"; +@import "fixed-width.less"; +@import "list.less"; +@import "bordered-pulled.less"; +@import "spinning.less"; +@import "rotated-flipped.less"; +@import "stacked.less"; +@import "icons.less"; diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/icons.less --- a/static/style/src/less/fontawesome/icons.less +++ b/static/style/src/less/fontawesome/icons.less @@ -14,6 +14,8 @@ .@{fa-css-prefix}-th:before { content: @fa-var-th; } .@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } .@{fa-css-prefix}-check:before { content: @fa-var-check; } +.@{fa-css-prefix}-remove:before, +.@{fa-css-prefix}-close:before, .@{fa-css-prefix}-times:before { content: @fa-var-times; } .@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } .@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } @@ -63,6 +65,8 @@ .@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } .@{fa-css-prefix}-indent:before { content: @fa-var-indent; } .@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } +.@{fa-css-prefix}-photo:before, +.@{fa-css-prefix}-image:before, .@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } .@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } .@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } @@ -72,7 +76,7 @@ .@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } .@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } .@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } -.@{fa-css-prefix}-move:before { content: @fa-var-move; } +.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } .@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } .@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } .@{fa-css-prefix}-backward:before { content: @fa-var-backward; } @@ -101,8 +105,8 @@ .@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } .@{fa-css-prefix}-mail-forward:before, .@{fa-css-prefix}-share:before { content: @fa-var-share; } -.@{fa-css-prefix}-resize-full:before { content: @fa-var-resize-full; } -.@{fa-css-prefix}-resize-small:before { content: @fa-var-resize-small; } +.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } +.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } .@{fa-css-prefix}-plus:before { content: @fa-var-plus; } .@{fa-css-prefix}-minus:before { content: @fa-var-minus; } .@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } @@ -125,9 +129,10 @@ .@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } .@{fa-css-prefix}-folder:before { content: @fa-var-folder; } .@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } -.@{fa-css-prefix}-resize-vertical:before { content: @fa-var-resize-vertical; } -.@{fa-css-prefix}-resize-horizontal:before { content: @fa-var-resize-horizontal; } -.@{fa-css-prefix}-bar-chart-o:before { content: @fa-var-bar-chart-o; } +.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } +.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } +.@{fa-css-prefix}-bar-chart-o:before, +.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } .@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } .@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } .@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } @@ -175,8 +180,9 @@ .@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } .@{fa-css-prefix}-filter:before { content: @fa-var-filter; } .@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } -.@{fa-css-prefix}-fullscreen:before { content: @fa-var-fullscreen; } -.@{fa-css-prefix}-group:before { content: @fa-var-group; } +.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } +.@{fa-css-prefix}-group:before, +.@{fa-css-prefix}-users:before { content: @fa-var-users; } .@{fa-css-prefix}-chain:before, .@{fa-css-prefix}-link:before { content: @fa-var-link; } .@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } @@ -189,7 +195,9 @@ .@{fa-css-prefix}-save:before, .@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } .@{fa-css-prefix}-square:before { content: @fa-var-square; } -.@{fa-css-prefix}-reorder:before { content: @fa-var-reorder; } +.@{fa-css-prefix}-navicon:before, +.@{fa-css-prefix}-reorder:before, +.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } .@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } .@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } .@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } @@ -210,9 +218,9 @@ .@{fa-css-prefix}-unsorted:before, .@{fa-css-prefix}-sort:before { content: @fa-var-sort; } .@{fa-css-prefix}-sort-down:before, +.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } +.@{fa-css-prefix}-sort-up:before, .@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } -.@{fa-css-prefix}-sort-up:before, -.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } .@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } .@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } .@{fa-css-prefix}-rotate-left:before, @@ -240,8 +248,8 @@ .@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } .@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } .@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } -.@{fa-css-prefix}-building:before { content: @fa-var-building; } -.@{fa-css-prefix}-hospital:before { content: @fa-var-hospital; } +.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } +.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } .@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } .@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } .@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } @@ -271,8 +279,6 @@ .@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } .@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } .@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } -.@{fa-css-prefix}-expand-o:before { content: @fa-var-expand-o; } -.@{fa-css-prefix}-collapse-o:before { content: @fa-var-collapse-o; } .@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } .@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } .@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } @@ -282,8 +288,8 @@ .@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } .@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } .@{fa-css-prefix}-code:before { content: @fa-var-code; } +.@{fa-css-prefix}-mail-reply-all:before, .@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } -.@{fa-css-prefix}-mail-reply-all:before { content: @fa-var-mail-reply-all; } .@{fa-css-prefix}-star-half-empty:before, .@{fa-css-prefix}-star-half-full:before, .@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } @@ -313,10 +319,10 @@ .@{fa-css-prefix}-html5:before { content: @fa-var-html5; } .@{fa-css-prefix}-css3:before { content: @fa-var-css3; } .@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } -.@{fa-css-prefix}-unlock-o:before { content: @fa-var-unlock-o; } +.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } .@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } -.@{fa-css-prefix}-ellipsis-horizontal:before { content: @fa-var-ellipsis-horizontal; } -.@{fa-css-prefix}-ellipsis-vertical:before { content: @fa-var-ellipsis-vertical; } +.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } +.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } .@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } .@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } .@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } @@ -410,3 +416,137 @@ .@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } .@{fa-css-prefix}-turkish-lira:before, .@{fa-css-prefix}-try:before { content: @fa-var-try; } +.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } +.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } +.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } +.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } +.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } +.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } +.@{fa-css-prefix}-institution:before, +.@{fa-css-prefix}-bank:before, +.@{fa-css-prefix}-university:before { content: @fa-var-university; } +.@{fa-css-prefix}-mortar-board:before, +.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } +.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } +.@{fa-css-prefix}-google:before { content: @fa-var-google; } +.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } +.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } +.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } +.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } +.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } +.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } +.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } +.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } +.@{fa-css-prefix}-language:before { content: @fa-var-language; } +.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } +.@{fa-css-prefix}-building:before { content: @fa-var-building; } +.@{fa-css-prefix}-child:before { content: @fa-var-child; } +.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } +.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } +.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } +.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } +.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } +.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } +.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } +.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } +.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } +.@{fa-css-prefix}-automobile:before, +.@{fa-css-prefix}-car:before { content: @fa-var-car; } +.@{fa-css-prefix}-cab:before, +.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } +.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } +.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } +.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } +.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } +.@{fa-css-prefix}-database:before { content: @fa-var-database; } +.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } +.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } +.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } +.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } +.@{fa-css-prefix}-file-photo-o:before, +.@{fa-css-prefix}-file-picture-o:before, +.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } +.@{fa-css-prefix}-file-zip-o:before, +.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } +.@{fa-css-prefix}-file-sound-o:before, +.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } +.@{fa-css-prefix}-file-movie-o:before, +.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } +.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } +.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } +.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } +.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } +.@{fa-css-prefix}-life-bouy:before, +.@{fa-css-prefix}-life-buoy:before, +.@{fa-css-prefix}-life-saver:before, +.@{fa-css-prefix}-support:before, +.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } +.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } +.@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } +.@{fa-css-prefix}-ge:before, +.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } +.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } +.@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } +.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } +.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } +.@{fa-css-prefix}-wechat:before, +.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } +.@{fa-css-prefix}-send:before, +.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } +.@{fa-css-prefix}-send-o:before, +.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } +.@{fa-css-prefix}-history:before { content: @fa-var-history; } +.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } +.@{fa-css-prefix}-header:before { content: @fa-var-header; } +.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } +.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } +.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } +.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } +.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } +.@{fa-css-prefix}-soccer-ball-o:before, +.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } +.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } +.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } +.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } +.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } +.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } +.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } +.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } +.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } +.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } +.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } +.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } +.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } +.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } +.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } +.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } +.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } +.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } +.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } +.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } +.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } +.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } +.@{fa-css-prefix}-at:before { content: @fa-var-at; } +.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } +.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } +.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } +.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } +.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } +.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } +.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } +.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } +.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } +.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } +.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } +.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } +.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } +.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } +.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } +.@{fa-css-prefix}-shekel:before, +.@{fa-css-prefix}-sheqel:before, +.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } +.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/list.less --- a/static/style/src/less/fontawesome/list.less +++ b/static/style/src/less/fontawesome/list.less @@ -14,6 +14,6 @@ top: (2em / 14); text-align: center; &.@{fa-css-prefix}-lg { - left: -@fa-li-width + (4em / 14); + left: (-@fa-li-width + (4em / 14)); } } diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/mixins.less --- a/static/style/src/less/fontawesome/mixins.less +++ b/static/style/src/less/fontawesome/mixins.less @@ -1,20 +1,25 @@ // Mixins // -------------------------- +.fa-icon() { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + .fa-icon-rotate(@degrees, @rotation) { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); -webkit-transform: rotate(@degrees); - -moz-transform: rotate(@degrees); -ms-transform: rotate(@degrees); - -o-transform: rotate(@degrees); transform: rotate(@degrees); } .fa-icon-flip(@horiz, @vert, @rotation) { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); -webkit-transform: scale(@horiz, @vert); - -moz-transform: scale(@horiz, @vert); -ms-transform: scale(@horiz, @vert); - -o-transform: scale(@horiz, @vert); transform: scale(@horiz, @vert); } diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/rotated-flipped.less --- a/static/style/src/less/fontawesome/rotated-flipped.less +++ b/static/style/src/less/fontawesome/rotated-flipped.less @@ -7,3 +7,14 @@ .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .@{fa-css-prefix}-rotate-90, +:root .@{fa-css-prefix}-rotate-180, +:root .@{fa-css-prefix}-rotate-270, +:root .@{fa-css-prefix}-flip-horizontal, +:root .@{fa-css-prefix}-flip-vertical { + filter: none; +} diff -r 336a1e96bf5196955ec9f1b45d0446c42d4bc9ae -r 5bdce43378bddc43988616a16b3fdb055c315d52 static/style/src/less/fontawesome/spinning.less --- a/static/style/src/less/fontawesome/spinning.less +++ b/static/style/src/less/fontawesome/spinning.less @@ -2,29 +2,28 @@ // -------------------------- .@{fa-css-prefix}-spin { - -webkit-animation: spin 2s infinite linear; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } -@-moz-keyframes spin { - 0% { -moz-transform: rotate(0deg); } - 100% { -moz-transform: rotate(359deg); } +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } } -@-webkit-keyframes spin { - 0% { -webkit-transform: rotate(0deg); } - 100% { -webkit-transform: rotate(359deg); } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } } -@-o-keyframes spin { - 0% { -o-transform: rotate(0deg); } - 100% { -o-transform: rotate(359deg); } -} -@-ms-keyframes spin { - 0% { -ms-transform: rotate(0deg); } - 100% { -ms-transform: rotate(359deg); } -} -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(359deg); } -} This diff is so big that we needed to truncate the remainder. Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.
participants (1)
-
commits-noreply@bitbucket.org