mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Highlight filter inputs with missing modules
This commit is contained in:
@@ -23,6 +23,8 @@ var View = Backbone.View.extend({
|
||||
message: options.message,
|
||||
status: options.status || "warning",
|
||||
icon: options.icon,
|
||||
initial_errors: true,
|
||||
errors: options.errors,
|
||||
inputs: options.inputs,
|
||||
buttons: {
|
||||
submit: new Ui.Button({
|
||||
|
||||
@@ -675,10 +675,11 @@ class UserAPIController(BaseAPIController, UsesTagsMixin, CreatesUsersMixin, Cre
|
||||
if name in filter_types:
|
||||
saved_values[name] = listify(value, do_strip=True)
|
||||
inputs = []
|
||||
errors = {}
|
||||
factory = FilterFactory(trans.app.toolbox)
|
||||
for filter_type in filter_types:
|
||||
self._add_filter_inputs(factory, filter_types, inputs, filter_type, saved_values)
|
||||
return {'inputs': inputs}
|
||||
self._add_filter_inputs(factory, filter_types, inputs, errors, filter_type, saved_values)
|
||||
return {'inputs': inputs, 'errors': errors}
|
||||
|
||||
@expose_api
|
||||
def set_toolbox_filters(self, trans, id, payload={}, **kwd):
|
||||
@@ -690,28 +691,30 @@ class UserAPIController(BaseAPIController, UsesTagsMixin, CreatesUsersMixin, Cre
|
||||
for filter_type in filter_types:
|
||||
new_filters = []
|
||||
for prefixed_name in payload:
|
||||
prefix = filter_type + '|'
|
||||
if prefixed_name.startswith(filter_type):
|
||||
new_filters.append(prefixed_name[len(prefix):])
|
||||
if payload.get(prefixed_name) == 'true':
|
||||
prefix = filter_type + '|'
|
||||
if prefixed_name.startswith(filter_type):
|
||||
new_filters.append(prefixed_name[len(prefix):])
|
||||
user.preferences[filter_type] = ','.join(new_filters)
|
||||
trans.sa_session.add(user)
|
||||
trans.sa_session.flush()
|
||||
return {'message': 'Toolbox filters have been saved.'}
|
||||
|
||||
def _add_filter_inputs(self, factory, filter_types, inputs, filter_type, saved_values):
|
||||
def _add_filter_inputs(self, factory, filter_types, inputs, errors, filter_type, saved_values):
|
||||
filter_inputs = list()
|
||||
filter_values = saved_values.get(filter_type, [])
|
||||
filter_config = filter_types[filter_type]['config']
|
||||
filter_title = filter_types[filter_type]['title']
|
||||
for filter_name in filter_config:
|
||||
function = factory.build_filter_function(filter_name)
|
||||
if function is None:
|
||||
errors['%s|%s' % (filter_type, filter_name)] = 'Filter module not found.'
|
||||
filter_inputs.append({
|
||||
'type': 'boolean',
|
||||
'name': filter_name,
|
||||
'label': filter_name,
|
||||
'help': docstring_trim(function.__doc__) or 'No description available.',
|
||||
'value': 'true' if filter_name in filter_values else 'false',
|
||||
'ignore': 'false'
|
||||
'value': 'true' if filter_name in filter_values else 'false'
|
||||
})
|
||||
if filter_inputs:
|
||||
inputs.append({'type': 'section', 'title': filter_title, 'name': filter_type, 'expanded': True, 'inputs': filter_inputs})
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
define("mvc/form/form-wrapper",["exports","mvc/form/form-view","mvc/ui/ui-misc"],function(e,t,s){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(t),n=i(s),o=Backbone.View.extend({initialize:function(e){this.model=new Backbone.Model(e),this.url=this.model.get("url"),this.redirect=this.model.get("redirect"),this.setElement("<div/>"),this.render()},render:function(){var e=this;$.ajax({url:Galaxy.root+this.url,type:"GET"}).done(function(t){var s=$.extend({},e.model.attributes,t),i=new a.default({title:s.title,message:s.message,status:s.status||"warning",icon:s.icon,inputs:s.inputs,buttons:{submit:new n.default.Button({tooltip:s.submit_tooltip,title:s.submit_title||"Save",icon:s.submit_icon||"fa-save",cls:"btn btn-primary ui-clear-float",onclick:function(){e._submit(i)}})}});e.$el.empty().append(i.$el)}).fail(function(t){e.$el.empty().append(new n.default.Message({message:"Failed to load resource "+e.url+".",status:"danger",persistent:!0}).$el)})},_submit:function(e){var t=this;$.ajax({url:Galaxy.root+t.url,data:JSON.stringify(e.data.create()),type:"PUT",contentType:"application/json"}).done(function(s){var i={};s.id?i.id=s.id:i={message:s.message,status:"success",persistent:!1},t.redirect?window.location=Galaxy.root+t.redirect+"?"+$.param(i):(e.data.matchModel(s,function(t,s){e.field_list[s].value(t.value)}),t._showMessage(e,success_message))}).fail(function(s){t._showMessage(e,{message:s.responseJSON.err_msg,status:"danger",persistent:!1})})},_showMessage:function(e,t){e.$el.parents().filter(function(){return-1!=["auto","scroll"].indexOf($(this).css("overflow"))}).first().animate({scrollTop:0},500),e.message.update(t)}});e.default={View:o}});
|
||||
define("mvc/form/form-wrapper",["exports","mvc/form/form-view","mvc/ui/ui-misc"],function(e,t,s){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(t),n=i(s),r=Backbone.View.extend({initialize:function(e){this.model=new Backbone.Model(e),this.url=this.model.get("url"),this.redirect=this.model.get("redirect"),this.setElement("<div/>"),this.render()},render:function(){var e=this;$.ajax({url:Galaxy.root+this.url,type:"GET"}).done(function(t){var s=$.extend({},e.model.attributes,t),i=new a.default({title:s.title,message:s.message,status:s.status||"warning",icon:s.icon,initial_errors:!0,errors:s.errors,inputs:s.inputs,buttons:{submit:new n.default.Button({tooltip:s.submit_tooltip,title:s.submit_title||"Save",icon:s.submit_icon||"fa-save",cls:"btn btn-primary ui-clear-float",onclick:function(){e._submit(i)}})}});e.$el.empty().append(i.$el)}).fail(function(t){e.$el.empty().append(new n.default.Message({message:"Failed to load resource "+e.url+".",status:"danger",persistent:!0}).$el)})},_submit:function(e){var t=this;$.ajax({url:Galaxy.root+t.url,data:JSON.stringify(e.data.create()),type:"PUT",contentType:"application/json"}).done(function(s){var i={};s.id?i.id=s.id:i={message:s.message,status:"success",persistent:!1},t.redirect?window.location=Galaxy.root+t.redirect+"?"+$.param(i):(e.data.matchModel(s,function(t,s){e.field_list[s].value(t.value)}),t._showMessage(e,success_message))}).fail(function(s){t._showMessage(e,{message:s.responseJSON.err_msg,status:"danger",persistent:!1})})},_showMessage:function(e,t){e.$el.parents().filter(function(){return-1!=["auto","scroll"].indexOf($(this).css("overflow"))}).first().animate({scrollTop:0},500),e.message.update(t)}});e.default={View:r}});
|
||||
Reference in New Issue
Block a user