diff --git a/client/galaxy/scripts/mvc/form/form-data.js b/client/galaxy/scripts/mvc/form/form-data.js index 5e1f23ce1fb..0562d97fbf9 100644 --- a/client/galaxy/scripts/mvc/form/form-data.js +++ b/client/galaxy/scripts/mvc/form/form-data.js @@ -96,9 +96,9 @@ return Backbone.Model.extend({ convert(job_input_id, head[input.id + '-section-' + selectedCase]); } break; - // handle custom sub sections + // handle sections case 'section': - convert('', node); + convert(job_input_id, node); break; default: // get field @@ -191,6 +191,9 @@ return Backbone.Model.extend({ search (index, node.cases[selectedCase].inputs); } break; + case 'section': + search (index, node.inputs); + break; default: var input_id = self.map_dict[index]; if (input_id) { diff --git a/client/galaxy/scripts/mvc/form/form-section.js b/client/galaxy/scripts/mvc/form/form-section.js index f2f4a22785c..3c1c2092451 100644 --- a/client/galaxy/scripts/mvc/form/form-section.js +++ b/client/galaxy/scripts/mvc/form/form-section.js @@ -286,7 +286,7 @@ define(['utils/utils', }); // show sub section if requested - if (input_def.expand) { + if (input_def.expanded) { portlet.$header.trigger('click'); } diff --git a/client/galaxy/scripts/mvc/form/form-view.js b/client/galaxy/scripts/mvc/form/form-view.js index 2f9b2ae36f5..0ad6f12093b 100644 --- a/client/galaxy/scripts/mvc/form/form-view.js +++ b/client/galaxy/scripts/mvc/form/form-view.js @@ -200,6 +200,13 @@ define(['utils/utils', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc', inputs : this.options.inputs }); + // switch to classic tool form mako if the form definition is incompatible + if (this.incompatible) { + this.$el.hide(); + $('#tool-form-classic').show(); + return; + } + // create portlet this.portlet = new Portlet.View({ icon : 'fa-wrench', diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index 0123da8d5e4..78ec4921e70 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -40,7 +40,7 @@ from galaxy.tools.parameters.basic import (BaseURLToolParameter, DataToolParameter, DataCollectionToolParameter, HiddenToolParameter, LibraryDatasetToolParameter, SelectToolParameter, ToolParameter, UnvalidatedValue, IntegerToolParameter, FloatToolParameter) -from galaxy.tools.parameters.grouping import Conditional, ConditionalWhen, Repeat, UploadDataset +from galaxy.tools.parameters.grouping import Conditional, ConditionalWhen, Repeat, Section, UploadDataset from galaxy.tools.parameters.input_translation import ToolInputTranslator from galaxy.tools.parameters.output import ToolOutputActionGroup from galaxy.tools.parameters.validation import LateValidationError @@ -972,6 +972,15 @@ class Tool( object, Dictifiable ): case.inputs = odict() group.cases.append( case ) rval[group.name] = group + elif input_type == "section": + group = Section() + group.name = input_source.get( "name" ) + group.title = input_source.get( "title" ) + group.help = input_source.get( "help", None ) + group.expanded = input_source.get_bool( "expanded", False ) + page_source = input_source.parse_nested_inputs_source() + group.inputs = self.parse_input_elem( page_source, enctypes, context ) + rval[group.name] = group elif input_type == "upload_dataset": elem = input_source.elem() group = UploadDataset() @@ -1505,6 +1514,20 @@ class Tool( object, Dictifiable ): group_state['__current_case__'] = current_case # Store the value of the test element group_state[ input.test_param.name ] = value + elif isinstance( input, Section ): + group_state = state[input.name] + group_prefix = "%s|" % ( key ) + self.fill_in_new_state( trans, input.inputs, group_state, context, history=history ) + group_errors = self.populate_state( trans, + input.inputs, + group_state, + incoming, + history, + source, + prefix=group_prefix, + context=context ) + if group_errors: + errors[ input.name ] = group_errors elif isinstance( input, UploadDataset ): group_state = state[input.name] group_errors = [] @@ -1714,6 +1737,22 @@ class Tool( object, Dictifiable ): group_state['__current_case__'] = current_case # Store the value of the test element group_state[ input.test_param.name ] = value + elif isinstance( input, Section ): + group_state = state[input.name] + group_old_errors = old_errors.get( input.name, {} ) + group_prefix = "%s|" % ( key ) + group_errors = self.update_state( trans, + input.inputs, + group_state, + incoming, + prefix=group_prefix, + context=context, + source=source, + update_only=update_only, + old_errors=group_old_errors, + item_callback=item_callback ) + if group_errors: + errors[ input.name ] = group_errors elif isinstance( input, UploadDataset ): group_state = state[input.name] group_errors = [] @@ -2383,6 +2422,10 @@ class Tool( object, Dictifiable ): errors[test_param_key] = 'The selected case is unavailable/invalid.' pass group_state[input.test_param.name] = value + elif input.type == 'section': + group_state = state[input.name] + group_prefix = "%s|" % ( key ) + populate_state(trans, input.inputs, group_state, errors, incoming, prefix=group_prefix, context=context) else: default_value = incoming.get(key, state.get(input.name, None)) value, error = check_state(trans, input, default_value, context) @@ -2417,6 +2460,8 @@ class Tool( object, Dictifiable ): if i == group_state.get('__current_case__', None): current_state = group_state iterate(tool_dict['cases'][i]['inputs'], input.cases[i].inputs, current_state, other_values) + elif input.type == 'section': + iterate( tool_dict['inputs'], input.inputs, group_state, other_values ) else: # create input dictionary, try to pass other_values if to_dict function supports it e.g. dynamic options try: diff --git a/lib/galaxy/tools/evaluation.py b/lib/galaxy/tools/evaluation.py index bfe7fecf37d..05760d60a76 100644 --- a/lib/galaxy/tools/evaluation.py +++ b/lib/galaxy/tools/evaluation.py @@ -22,7 +22,7 @@ from galaxy.tools.parameters.basic import ( LibraryDatasetToolParameter, SelectToolParameter, ) -from galaxy.tools.parameters.grouping import Conditional, Repeat +from galaxy.tools.parameters.grouping import Conditional, Repeat, Section from galaxy.jobs.datasets import dataset_path_rewrites import logging @@ -143,6 +143,9 @@ class ToolEvaluator( object ): values = input_values[ input.name ] current = values["__current_case__"] do_walk( input.cases[current].inputs, values ) + elif isinstance( input, Section ): + values = input_values[ input.name ] + do_walk( input.inputs, values ) else: func( input_values, input ) diff --git a/lib/galaxy/tools/parameters/__init__.py b/lib/galaxy/tools/parameters/__init__.py index 6c7ee3ebe19..73fcc26bb1e 100644 --- a/lib/galaxy/tools/parameters/__init__.py +++ b/lib/galaxy/tools/parameters/__init__.py @@ -33,6 +33,11 @@ def visit_input_values( inputs, input_values, callback, name_prefix="", label_pr label_prefix = label_prefix new_name_prefix = name_prefix + input.name + "|" visit_input_values( input.cases[current].inputs, values, callback, new_name_prefix, label_prefix ) + elif isinstance( input, Section ): + values = input_values[ input.name ] + label_prefix = label_prefix + new_name_prefix = name_prefix + input.name + "|" + visit_input_values( input.inputs, values, callback, new_name_prefix, label_prefix ) else: new_value = callback( input, input_values[input.name], @@ -124,6 +129,10 @@ def params_to_incoming( incoming, inputs, input_values, app, name_prefix="", to_ new_name_prefix = name_prefix + input.name + "|" incoming[ new_name_prefix + input.test_param.name ] = values[ input.test_param.name ] params_to_incoming( incoming, input.cases[current].inputs, values, app, new_name_prefix, to_html=to_html ) + elif isinstance( input, Section ): + values = input_values[ input.name ] + new_name_prefix = name_prefix + input.name + "|" + params_to_incoming( incoming, input.inputs, values, app, new_name_prefix, to_html=to_html ) else: value = input_values.get( input.name ) if to_html: diff --git a/lib/galaxy/tools/parameters/grouping.py b/lib/galaxy/tools/parameters/grouping.py index 30b9dfa6c4c..000b4d72eeb 100644 --- a/lib/galaxy/tools/parameters/grouping.py +++ b/lib/galaxy/tools/parameters/grouping.py @@ -129,6 +129,55 @@ class Repeat( Group ): repeat_dict[ "inputs" ] = map( input_to_dict, self.inputs.values() ) return repeat_dict +class Section( Group ): + + dict_collection_visible_keys = ( 'name', 'type', 'title', 'help', 'expanded') + + type = "section" + def __init__( self ): + Group.__init__( self ) + self.title = None + self.inputs = None + self.help = None + self.expanded = False + @property + def title_plural( self ): + return inflector.pluralize( self.title ) + def label( self ): + return "Section (%s)" % self.title + def value_to_basic( self, value, app ): + rval = {} + for input in self.inputs.itervalues(): + rval[ input.name ] = input.value_to_basic( value[input.name], app ) + return rval + def value_from_basic( self, value, app, ignore_errors=False ): + rval = {} + try: + for input in self.inputs.itervalues(): + if not ignore_errors or input.name in value: + rval[ input.name ] = input.value_from_basic( value[ input.name ], app, ignore_errors ) + except Exception, e: + if not ignore_errors: + raise e + return rval + def visit_inputs( self, prefix, value, callback ): + for input in self.inputs.itervalues(): + if isinstance( input, ToolParameter ): + callback( prefix, input, value[input.name], parent = value ) + else: + input.visit_inputs( prefix, value[input.name], callback ) + def get_initial_value( self, trans, context, history=None ): + rval = {} + child_context = ExpressionContext( rval, context ) + for child_input in self.inputs.itervalues(): + rval[ child_input.name ] = child_input.get_initial_value( trans, child_context, history=history ) + return rval + def to_dict( self, trans, view='collection', value_mapper=None ): + section_dict = super( Section, self ).to_dict( trans, view=view, value_mapper=value_mapper ) + def input_to_dict( input ): + return input.to_dict( trans, view=view, value_mapper=value_mapper ) + section_dict[ "inputs" ] = map( input_to_dict, self.inputs.values() ) + return section_dict class UploadDataset( Group ): type = "upload_dataset" diff --git a/lib/galaxy/tools/parameters/wrapped.py b/lib/galaxy/tools/parameters/wrapped.py index 473799b5076..ea610b06976 100644 --- a/lib/galaxy/tools/parameters/wrapped.py +++ b/lib/galaxy/tools/parameters/wrapped.py @@ -8,6 +8,7 @@ from galaxy.tools.parameters.basic import ( from galaxy.tools.parameters.grouping import ( Repeat, Conditional, + Section ) PARAMS_UNWRAPPED = object() @@ -44,6 +45,9 @@ class WrappedParameters( object ): values = input_values[ input.name ] current = values[ "__current_case__" ] self.wrap_values( input.cases[current].inputs, values, skip_missing_values=skip_missing_values ) + elif isinstance( input, Section ): + values = input_values[ input.name ] + self.wrap_values( input.inputs, values, skip_missing_values=skip_missing_values ) elif isinstance( input, DataToolParameter ) and input.multiple: input_values[ input.name ] = \ galaxy.tools.DatasetListWrapper( input_values[ input.name ], diff --git a/lib/galaxy/tools/parser/xml.py b/lib/galaxy/tools/parser/xml.py index e2bbb609bcf..d28b0076e3f 100644 --- a/lib/galaxy/tools/parser/xml.py +++ b/lib/galaxy/tools/parser/xml.py @@ -422,6 +422,13 @@ def __expand_input_elems( root_elem, prefix="" ): __pull_up_params( root_elem, cond_elem ) root_elem.remove( cond_elem ) + section_elems = root_elem.findall( 'section' ) + for section_elem in section_elems: + new_prefix = __prefix_join( prefix, section_elem.get( "name" ) ) + __expand_input_elems( section_elem, new_prefix ) + __pull_up_params( root_elem, section_elem ) + root_elem.remove( section_elem ) + def __append_prefix_to_params( elem, prefix ): for param_elem in elem.findall( 'param' ): diff --git a/lib/galaxy/tools/test.py b/lib/galaxy/tools/test.py index 8cfe5bcd846..03f48106e6a 100644 --- a/lib/galaxy/tools/test.py +++ b/lib/galaxy/tools/test.py @@ -166,7 +166,12 @@ class ToolTestBuilder( object ): # an infinite loop - hence the "case_value is not None" # check. expanded_inputs[ case_context.for_state() ] = expanded_case_value - + elif isinstance( value, galaxy.tools.parameters.grouping.Section ): + context = ParamContext( name=value.name, parent_context=parent_context ) + for r_name, r_value in value.inputs.iteritems(): + expanded_input = self.__process_raw_inputs( { context.for_state(): r_value }, raw_inputs, parent_context=context ) + if expanded_input: + expanded_inputs.update( expanded_input ) elif isinstance( value, galaxy.tools.parameters.grouping.Repeat ): repeat_index = 0 while True: diff --git a/static/maps/mvc/form/form-data.js.map b/static/maps/mvc/form/form-data.js.map index 84e2565dde4..7522cbb5ded 100644 --- a/static/maps/mvc/form/form-data.js.map +++ b/static/maps/mvc/form/form-data.js.map @@ -1 +1 @@ -{"version":3,"file":"form-data.js","sources":["../../../src/mvc/form/form-data.js"],"names":["define","Backbone","Model","extend","initialize","app","this","checksum","sum","i","field_list","field","JSON","stringify","value","create","add","job_input_id","input_id","input_value","self","map_dict","result_dict","convert","identifier","head","index","node","input","name","type","section_label","block_indices","block_prefix","block_label","pos","indexOf","length","push","parseInt","substr","sort","a","b","id","test_param","selectedCase","matchCase","undefined","ignore","payload","p_id","dict","_iterate","section","$el","match","truevalue","falsevalue","cases","matchModel","model","callback","search","j","cache","inputs","result","matchResponse","response","new_id","separator","Array","parent","children","$","each","child","attr","hasClass","input_list"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"form-data.js","sources":["../../../src/mvc/form/form-data.js"],"names":["define","Backbone","Model","extend","initialize","app","this","checksum","sum","i","field_list","field","JSON","stringify","value","create","add","job_input_id","input_id","input_value","self","map_dict","result_dict","convert","identifier","head","index","node","input","name","type","section_label","block_indices","block_prefix","block_label","pos","indexOf","length","push","parseInt","substr","sort","a","b","id","test_param","selectedCase","matchCase","undefined","ignore","payload","p_id","dict","_iterate","section","$el","match","truevalue","falsevalue","cases","matchModel","model","callback","search","j","cache","inputs","result","matchResponse","response","new_id","separator","Array","parent","children","$","each","child","attr","hasClass","input_list"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/form/form-section.js.map b/static/maps/mvc/form/form-section.js.map index ef2d993e2e6..d1aaf3aeb6e 100644 --- a/static/maps/mvc/form/form-section.js.map +++ b/static/maps/mvc/form/form-section.js.map @@ -1 +1 @@ -{"version":3,"file":"form-section.js","sources":["../../../src/mvc/form/form-section.js"],"names":["define","Utils","Table","Ui","Portlet","Repeat","InputElement","Parameters","View","Backbone","extend","initialize","app","options","this","inputs","cls","cls_tr","table","parameters","setElement","$el","render","delAll","i","add","input","input_def","jQuery","id","uid","input_list","type","_addConditional","_addRepeat","_addSection","_addRow","self","test_param","field","onchange","value","selectedCase","data","matchCase","cases","case_def","section_id","section_row","get","nonhidden","j","hidden","fadeIn","hide","trigger","sub_section_id","sub_section","addClass","append","create","block_index","repeat","ondel","del","title","title_new","min","max","onnew","n_min","n_cache","_","size","cache","Math","input_element","label","help","button_visible","ButtonIcon","icon","tooltip","portlet","operations","$","html","visible","$content","$header","css","on","setIcon","expand","field_list","default_value","optional","element_list"],"mappings":"AAGAA,QAAQ,cACA,kBACA,iBACA,oBACA,uBACA,sBACA,4BACJ,SAASC,EAAOC,EAAOC,EAAIC,EAASC,EAAQC,EAAcC,GAG1D,GAAIC,GAAOC,SAASD,KAAKE,QAErBC,WAAY,SAASC,EAAKC,GAEtBC,KAAKF,IAAMA,EAGXE,KAAKC,OAASF,EAAQE,OAGtBF,EAAQG,IAAM,iBAIdH,EAAQI,OAAS,cAGjBH,KAAKI,MAAQ,GAAIhB,GAAMM,KAAKK,GAG5BC,KAAKK,WAAa,GAAIZ,GAAWK,EAAKC,GAGtCC,KAAKM,WAAWN,KAAKI,MAAMG,KAG3BP,KAAKQ,UAKTA,OAAQ,WAEJR,KAAKI,MAAMK,QAGX,KAAK,GAAIC,KAAKV,MAAKC,OACfD,KAAKW,IAAIX,KAAKC,OAAOS,KAM7BC,IAAK,SAASC,GAEV,GAGIC,GAAYC,OAAOlB,QAAO,KAAUgB,EAGxCC,GAAUE,GAAKH,EAAMG,GAAK5B,EAAM6B,MAGhChB,KAAKF,IAAImB,WAAWJ,EAAUE,IAAMF,CAGpC,IAAIK,GAAOL,EAAUK,IACrB,QAAOA,GAEH,IAAK,cACDlB,KAAKmB,gBAAgBN,EACrB,MAEJ,KAAK,SACDb,KAAKoB,WAAWP,EAChB,MAEJ,KAAK,UACDb,KAAKqB,YAAYR,EACjB,MAEJ,SACIb,KAAKsB,QAAQT,KAMzBM,gBAAiB,SAASN,GAEtB,GAAIU,GAAOvB,IAGXa,GAAUW,WAAWT,GAAKF,EAAUE,EAGpC,IAAIU,GAAQzB,KAAKsB,QAAQT,EAAUW,WAGnCC,GAAM1B,QAAQ2B,SAAW,SAASC,GAE9B,GAAIC,GAAeL,EAAKzB,IAAI+B,KAAKC,UAAUjB,EAAWc,EAGtD,KAAK,GAAIjB,KAAKG,GAAUkB,MAAO,CAE3B,GAAIC,GAAWnB,EAAUkB,MAAMrB,GAG3BuB,EAAapB,EAAUE,GAAK,YAAcL,EAG1CwB,EAAcX,EAAKnB,MAAM+B,IAAIF,GAG7BG,GAAY,CAChB,KAAK,GAAIC,KAAKL,GAAS/B,OACnB,IAAK+B,EAAS/B,OAAOoC,GAAGC,OAAQ,CAC5BF,GAAY,CACZ,OAKJ1B,GAAKkB,GAAgBQ,EACrBF,EAAYK,OAAO,QAEnBL,EAAYM,OAKpBjB,EAAKzB,IAAI2C,QAAQ,UAIrB,KAAK,GAAI/B,KAAKG,GAAUkB,MAAO,CAE3B,GAAIW,GAAiB7B,EAAUE,GAAK,YAAcL,EAG9CiC,EAAc,GAAIjD,GAAKM,KAAKF,KAC5BG,OAAUY,EAAUkB,MAAMrB,GAAGT,QAIjC0C,GAAYpC,IAAIqC,SAAS,oBAGzB5C,KAAKI,MAAMO,IAAIgC,EAAYpC,KAG3BP,KAAKI,MAAMyC,OAAOH,GAItBjB,EAAMgB,QAAQ,WAKlBrB,WAAY,SAASP,GAuBjB,QAASiC,GAAQ7C,GAEb,GAAIyC,GAAiB7B,EAAUE,GAAK,YAAegC,IAG/CJ,EAAc,GAAIjD,GAAK6B,EAAKzB,KAC5BG,OAAUA,GAId+C,GAAOrC,KACHI,GAAU2B,EACVnC,IAAUoC,EAAYpC,IACtB0C,MAAU,WAEND,EAAOE,IAAIR,GAGXnB,EAAKzB,IAAI2C,QAAQ,aAU7B,IAAK,GAjDDlB,GAAOvB,KAGP+C,EAAc,EAGdC,EAAS,GAAIzD,GAAOG,MACpByD,MAAkBtC,EAAUsC,MAC5BC,UAAkBvC,EAAUsC,MAC5BE,IAAkBxC,EAAUwC,IAC5BC,IAAkBzC,EAAUyC,IAC5BC,MAAkB,WAEdT,EAAOjC,EAAUZ,QAGjBsB,EAAKzB,IAAI2C,QAAQ,aA+BrBe,EAAU3C,EAAUwC,IACpBI,EAAUC,EAAEC,KAAK9C,EAAU+C,OACtBlD,EAAI,EAAGA,EAAImD,KAAKP,IAAIG,EAASD,GAAQ9C,IAAK,CAC/C,GAAIT,GAAS,IAETA,GADIwD,EAAJ/C,EACSG,EAAU+C,MAAMlD,GAEhBG,EAAUZ,OAIvB6C,EAAO7C,GAIX,GAAI6D,GAAgB,GAAItE,GAAaQ,KAAKF,KACtCiE,MAAUlD,EAAUsC,MACpBa,KAAUnD,EAAUmD,KACpBvC,MAAUuB,GAIdhD,MAAKI,MAAMO,IAAImD,EAAcvD,KAG7BP,KAAKI,MAAMyC,OAAOhC,EAAUE,KAKhCM,YAAa,SAASR,GAElB,GAAIU,GAAOvB,KAGP2C,EAAc,GAAIjD,GAAK6B,EAAKzB,KAC5BG,OAAUY,EAAUZ,SAIpBgE,EAAiB,GAAI5E,GAAG6E,YACxBC,KAAU,eACVC,QAAU,oBACVlE,IAAU,yBAIVmE,EAAU,GAAI/E,GAAQI,MACtByD,MAActC,EAAUsC,MACxBjD,IAAc,qBACdoE,YACIL,eAAgBA,IAGxBI,GAAQxB,OAAOF,EAAYpC,KAC3B8D,EAAQxB,OAAO0B,EAAE,UAAU3B,SAAS,sBAAsB4B,KAAK3D,EAAUmD,MAGzE,IAAIS,IAAU,CACdJ,GAAQK,SAASlC,OACjB6B,EAAQM,QAAQC,IAAI,SAAU,WAC9BP,EAAQM,QAAQE,GAAG,QAAS,WACpBJ,GACAA,GAAU,EACVJ,EAAQK,SAASlC,OACjByB,EAAea,QAAQ,kBAEvBL,GAAU,EACVJ,EAAQK,SAASnC,OAAO,QACxB0B,EAAea,QAAQ,aAK3BjE,EAAUkE,QACVV,EAAQM,QAAQlC,QAAQ,SAI5BzC,KAAKI,MAAMO,IAAI0D,EAAQ9D,KAGvBP,KAAKI,MAAMyC,OAAOhC,EAAUE,KAKhCO,QAAS,SAAST,GAEd,GAAIE,GAAKF,EAAUE,GAGfU,EAAQzB,KAAKK,WAAWyC,OAAOjC,EAGnCb,MAAKF,IAAIkF,WAAWjE,GAAMU,CAG1B,IAAIqC,GAAgB,GAAItE,GAAaQ,KAAKF,KACtCiE,MAAkBlD,EAAUkD,MAC5BkB,cAAkBpE,EAAUoE,cAC5BC,SAAkBrE,EAAUqE,SAC5BlB,KAAkBnD,EAAUmD,KAC5BvC,MAAkBA,GAkBtB,OAdAzB,MAAKF,IAAIqF,aAAapE,GAAM+C,EAG5B9D,KAAKI,MAAMO,IAAImD,EAAcvD,KAG7BP,KAAKI,MAAMyC,OAAO9B,GAGdF,EAAUyB,QACVtC,KAAKI,MAAM+B,IAAIpB,GAAIyB,OAIhBf,IAIf,QACI/B,KAAMA"} \ No newline at end of file +{"version":3,"file":"form-section.js","sources":["../../../src/mvc/form/form-section.js"],"names":["define","Utils","Table","Ui","Portlet","Repeat","InputElement","Parameters","View","Backbone","extend","initialize","app","options","this","inputs","cls","cls_tr","table","parameters","setElement","$el","render","delAll","i","add","input","input_def","jQuery","id","uid","input_list","type","_addConditional","_addRepeat","_addSection","_addRow","self","test_param","field","onchange","value","selectedCase","data","matchCase","cases","case_def","section_id","section_row","get","nonhidden","j","hidden","fadeIn","hide","trigger","sub_section_id","sub_section","addClass","append","create","block_index","repeat","ondel","del","title","title_new","min","max","onnew","n_min","n_cache","_","size","cache","Math","input_element","label","help","button_visible","ButtonIcon","icon","tooltip","portlet","operations","$","html","visible","$content","$header","css","on","setIcon","expanded","field_list","default_value","optional","element_list"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/form/form-view.js.map b/static/maps/mvc/form/form-view.js.map index 36735cbe682..10d6646b3c8 100644 --- a/static/maps/mvc/form/form-view.js.map +++ b/static/maps/mvc/form/form-view.js.map @@ -1 +1 @@ -{"version":3,"file":"form-view.js","sources":["../../../src/mvc/form/form-view.js"],"names":["define","Utils","Portlet","Ui","FormSection","FormData","Backbone","View","extend","initialize","options","this","optionsDefault","is_dynamic","narrow","initial_errors","cls","merge","console","debug","galaxy","parent","Galaxy","modal","Modal","setElement","_build","update","new_model","self","data","matchModel","input_id","node","input","input_list","_","isEqual","field","field_list","new_options","indexOf","type","i","opt","length","push","label","value","trigger","wait","active","unwait","reciept","$el","empty","append","highlight","message","silent","input_element","element_list","error","$","animate","scrollTop","offset","top","errors","error_messages","matchResponse","off","_renderForm","create","current_check","checksum","on","new_check","onchange","reset","Message","section","inputs","portlet","icon","title","operations","buttons","addClass","persistent","status"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"form-view.js","sources":["../../../src/mvc/form/form-view.js"],"names":["define","Utils","Portlet","Ui","FormSection","FormData","Backbone","View","extend","initialize","options","this","optionsDefault","is_dynamic","narrow","initial_errors","cls","merge","console","debug","galaxy","parent","Galaxy","modal","Modal","setElement","_build","update","new_model","self","data","matchModel","input_id","node","input","input_list","_","isEqual","field","field_list","new_options","indexOf","type","i","opt","length","push","label","value","trigger","wait","active","unwait","reciept","$el","empty","append","highlight","message","silent","input_element","element_list","error","$","animate","scrollTop","offset","top","errors","error_messages","matchResponse","off","_renderForm","create","current_check","checksum","on","new_check","onchange","reset","Message","section","inputs","incompatible","hide","show","portlet","icon","title","operations","buttons","addClass","persistent","status"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/mvc/form/form-data.js b/static/scripts/mvc/form/form-data.js index 79473f6f824..3e74c8c30a6 100644 --- a/static/scripts/mvc/form/form-data.js +++ b/static/scripts/mvc/form/form-data.js @@ -1,2 +1,2 @@ -define(["utils/utils"],function(){return Backbone.Model.extend({initialize:function(a){this.app=a},checksum:function(){var a="";for(var b in this.app.field_list){var c=this.app.field_list[b];a+=JSON.stringify(c.value&&c.value())}return a},create:function(){function a(a,b,d){c.map_dict[a]=b,e[a]=d}function b(d,e){for(var f in e){var g=e[f];if(g.input){var h=g.input,i=d;switch(""!=d&&(i+="|"),i+=h.name,h.type){case"repeat":var j="section-",k=[],l=null;for(var m in g){var n=m.indexOf(j);-1!=n&&(n+=j.length,k.push(parseInt(m.substr(n))),l||(l=m.substr(0,n)))}k.sort(function(a,b){return a-b});var f=0;for(var o in k)b(i+"_"+f++,g[l+k[o]]);break;case"conditional":var p=c.app.field_list[h.id].value();a(i+"|"+h.test_param.name,h.id,p);var q=c.matchCase(h,p);-1!=q&&b(i,e[h.id+"-section-"+q]);break;case"section":b("",g);break;default:var r=c.app.field_list[h.id];if(r&&r.value){var p=r.value();if((void 0===h.ignore||h.ignore!=p)&&(a(i,h.id,p),h.payload))for(var s in h.payload)a(s,h.id,h.payload[s])}}}}}var c=this,d={};this._iterate(this.app.section.$el,d);var e={};return this.map_dict={},b("",d),e},match:function(a){return this.map_dict&&this.map_dict[a]},matchCase:function(a,b){"boolean"==a.test_param.type&&(b="true"==b?a.test_param.truevalue||"true":a.test_param.falsevalue||"false");for(var c in a.cases)if(a.cases[c].value==b)return c;return-1},matchModel:function(a,b){function c(a,d){for(var f in d){var g=d[f],h=g.name;switch(""!=a&&(h=a+"|"+h),g.type){case"repeat":for(var i in g.cache)c(h+"_"+i,g.cache[i]);break;case"conditional":var j=g.test_param&&g.test_param.value,k=e.matchCase(g,j);-1!=k&&c(h,g.cases[k].inputs);break;default:var l=e.map_dict[h];l&&b(l,g)}}}var d={},e=this;return c("",a.inputs),d},matchResponse:function(a){function b(a,e){if("string"==typeof e){var f=d.map_dict[a];f&&(c[f]=e)}else for(var g in e){var h=g;if(""!==a){var i="|";e instanceof Array&&(i="_"),h=a+i+h}b(h,e[g])}}var c={},d=this;return b("",a),c},_iterate:function(a,b){var c=this,d=$(a).children();d.each(function(){var a=this,d=$(a).attr("id");if($(a).hasClass("section-row")){b[d]={};var e=c.app.input_list[d];e&&(b[d]={input:e}),c._iterate(a,b[d])}else c._iterate(a,b)})}})}); +define(["utils/utils"],function(){return Backbone.Model.extend({initialize:function(a){this.app=a},checksum:function(){var a="";for(var b in this.app.field_list){var c=this.app.field_list[b];a+=JSON.stringify(c.value&&c.value())}return a},create:function(){function a(a,b,d){c.map_dict[a]=b,e[a]=d}function b(d,e){for(var f in e){var g=e[f];if(g.input){var h=g.input,i=d;switch(""!=d&&(i+="|"),i+=h.name,h.type){case"repeat":var j="section-",k=[],l=null;for(var m in g){var n=m.indexOf(j);-1!=n&&(n+=j.length,k.push(parseInt(m.substr(n))),l||(l=m.substr(0,n)))}k.sort(function(a,b){return a-b});var f=0;for(var o in k)b(i+"_"+f++,g[l+k[o]]);break;case"conditional":var p=c.app.field_list[h.id].value();a(i+"|"+h.test_param.name,h.id,p);var q=c.matchCase(h,p);-1!=q&&b(i,e[h.id+"-section-"+q]);break;case"section":b(i,g);break;default:var r=c.app.field_list[h.id];if(r&&r.value){var p=r.value();if((void 0===h.ignore||h.ignore!=p)&&(a(i,h.id,p),h.payload))for(var s in h.payload)a(s,h.id,h.payload[s])}}}}}var c=this,d={};this._iterate(this.app.section.$el,d);var e={};return this.map_dict={},b("",d),e},match:function(a){return this.map_dict&&this.map_dict[a]},matchCase:function(a,b){"boolean"==a.test_param.type&&(b="true"==b?a.test_param.truevalue||"true":a.test_param.falsevalue||"false");for(var c in a.cases)if(a.cases[c].value==b)return c;return-1},matchModel:function(a,b){function c(a,d){for(var f in d){var g=d[f],h=g.name;switch(""!=a&&(h=a+"|"+h),g.type){case"repeat":for(var i in g.cache)c(h+"_"+i,g.cache[i]);break;case"conditional":var j=g.test_param&&g.test_param.value,k=e.matchCase(g,j);-1!=k&&c(h,g.cases[k].inputs);break;case"section":c(h,g.inputs);break;default:var l=e.map_dict[h];l&&b(l,g)}}}var d={},e=this;return c("",a.inputs),d},matchResponse:function(a){function b(a,e){if("string"==typeof e){var f=d.map_dict[a];f&&(c[f]=e)}else for(var g in e){var h=g;if(""!==a){var i="|";e instanceof Array&&(i="_"),h=a+i+h}b(h,e[g])}}var c={},d=this;return b("",a),c},_iterate:function(a,b){var c=this,d=$(a).children();d.each(function(){var a=this,d=$(a).attr("id");if($(a).hasClass("section-row")){b[d]={};var e=c.app.input_list[d];e&&(b[d]={input:e}),c._iterate(a,b[d])}else c._iterate(a,b)})}})}); //# sourceMappingURL=../../../maps/mvc/form/form-data.js.map \ No newline at end of file diff --git a/static/scripts/mvc/form/form-section.js b/static/scripts/mvc/form/form-section.js index f6549141b0b..befc9ba0519 100644 --- a/static/scripts/mvc/form/form-section.js +++ b/static/scripts/mvc/form/form-section.js @@ -1,2 +1,2 @@ -define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-misc","mvc/ui/ui-portlet","mvc/form/form-repeat","mvc/form/form-input","mvc/form/form-parameters"],function(a,b,c,d,e,f,g){var h=Backbone.View.extend({initialize:function(a,c){this.app=a,this.inputs=c.inputs,c.cls="ui-table-plain",c.cls_tr="section-row",this.table=new b.View(c),this.parameters=new g(a,c),this.setElement(this.table.$el),this.render()},render:function(){this.table.delAll();for(var a in this.inputs)this.add(this.inputs[a])},add:function(b){var c=jQuery.extend(!0,{},b);c.id=b.id=a.uid(),this.app.input_list[c.id]=c;var d=c.type;switch(d){case"conditional":this._addConditional(c);break;case"repeat":this._addRepeat(c);break;case"section":this._addSection(c);break;default:this._addRow(c)}},_addConditional:function(a){var b=this;a.test_param.id=a.id;var c=this._addRow(a.test_param);c.options.onchange=function(c){var d=b.app.data.matchCase(a,c);for(var e in a.cases){var f=a.cases[e],g=a.id+"-section-"+e,h=b.table.get(g),i=!1;for(var j in f.inputs)if(!f.inputs[j].hidden){i=!0;break}e==d&&i?h.fadeIn("fast"):h.hide()}b.app.trigger("change")};for(var d in a.cases){var e=a.id+"-section-"+d,f=new h(this.app,{inputs:a.cases[d].inputs});f.$el.addClass("ui-table-section"),this.table.add(f.$el),this.table.append(e)}c.trigger("change")},_addRepeat:function(a){function b(b){var e=a.id+"-section-"+d++,f=new h(c.app,{inputs:b});g.add({id:e,$el:f.$el,ondel:function(){g.del(e),c.app.trigger("change")}})}for(var c=this,d=0,g=new e.View({title:a.title,title_new:a.title,min:a.min,max:a.max,onnew:function(){b(a.inputs),c.app.trigger("change")}}),i=a.min,j=_.size(a.cache),k=0;kk?a.cache[k]:a.inputs,b(l)}var m=new f(this.app,{label:a.title,help:a.help,field:g});this.table.add(m.$el),this.table.append(a.id)},_addSection:function(a){var b=this,e=new h(b.app,{inputs:a.inputs}),f=new c.ButtonIcon({icon:"fa-eye-slash",tooltip:"Show/hide section",cls:"ui-button-icon-plain"}),g=new d.View({title:a.title,cls:"ui-portlet-section",operations:{button_visible:f}});g.append(e.$el),g.append($("
").addClass("ui-table-form-info").html(a.help));var i=!1;g.$content.hide(),g.$header.css("cursor","pointer"),g.$header.on("click",function(){i?(i=!1,g.$content.hide(),f.setIcon("fa-eye-slash")):(i=!0,g.$content.fadeIn("fast"),f.setIcon("fa-eye"))}),a.expand&&g.$header.trigger("click"),this.table.add(g.$el),this.table.append(a.id)},_addRow:function(a){var b=a.id,c=this.parameters.create(a);this.app.field_list[b]=c;var d=new f(this.app,{label:a.label,default_value:a.default_value,optional:a.optional,help:a.help,field:c});return this.app.element_list[b]=d,this.table.add(d.$el),this.table.append(b),a.hidden&&this.table.get(b).hide(),c}});return{View:h}}); +define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-misc","mvc/ui/ui-portlet","mvc/form/form-repeat","mvc/form/form-input","mvc/form/form-parameters"],function(a,b,c,d,e,f,g){var h=Backbone.View.extend({initialize:function(a,c){this.app=a,this.inputs=c.inputs,c.cls="ui-table-plain",c.cls_tr="section-row",this.table=new b.View(c),this.parameters=new g(a,c),this.setElement(this.table.$el),this.render()},render:function(){this.table.delAll();for(var a in this.inputs)this.add(this.inputs[a])},add:function(b){var c=jQuery.extend(!0,{},b);c.id=b.id=a.uid(),this.app.input_list[c.id]=c;var d=c.type;switch(d){case"conditional":this._addConditional(c);break;case"repeat":this._addRepeat(c);break;case"section":this._addSection(c);break;default:this._addRow(c)}},_addConditional:function(a){var b=this;a.test_param.id=a.id;var c=this._addRow(a.test_param);c.options.onchange=function(c){var d=b.app.data.matchCase(a,c);for(var e in a.cases){var f=a.cases[e],g=a.id+"-section-"+e,h=b.table.get(g),i=!1;for(var j in f.inputs)if(!f.inputs[j].hidden){i=!0;break}e==d&&i?h.fadeIn("fast"):h.hide()}b.app.trigger("change")};for(var d in a.cases){var e=a.id+"-section-"+d,f=new h(this.app,{inputs:a.cases[d].inputs});f.$el.addClass("ui-table-section"),this.table.add(f.$el),this.table.append(e)}c.trigger("change")},_addRepeat:function(a){function b(b){var e=a.id+"-section-"+d++,f=new h(c.app,{inputs:b});g.add({id:e,$el:f.$el,ondel:function(){g.del(e),c.app.trigger("change")}})}for(var c=this,d=0,g=new e.View({title:a.title,title_new:a.title,min:a.min,max:a.max,onnew:function(){b(a.inputs),c.app.trigger("change")}}),i=a.min,j=_.size(a.cache),k=0;kk?a.cache[k]:a.inputs,b(l)}var m=new f(this.app,{label:a.title,help:a.help,field:g});this.table.add(m.$el),this.table.append(a.id)},_addSection:function(a){var b=this,e=new h(b.app,{inputs:a.inputs}),f=new c.ButtonIcon({icon:"fa-eye-slash",tooltip:"Show/hide section",cls:"ui-button-icon-plain"}),g=new d.View({title:a.title,cls:"ui-portlet-section",operations:{button_visible:f}});g.append(e.$el),g.append($("
").addClass("ui-table-form-info").html(a.help));var i=!1;g.$content.hide(),g.$header.css("cursor","pointer"),g.$header.on("click",function(){i?(i=!1,g.$content.hide(),f.setIcon("fa-eye-slash")):(i=!0,g.$content.fadeIn("fast"),f.setIcon("fa-eye"))}),a.expanded&&g.$header.trigger("click"),this.table.add(g.$el),this.table.append(a.id)},_addRow:function(a){var b=a.id,c=this.parameters.create(a);this.app.field_list[b]=c;var d=new f(this.app,{label:a.label,default_value:a.default_value,optional:a.optional,help:a.help,field:c});return this.app.element_list[b]=d,this.table.add(d.$el),this.table.append(b),a.hidden&&this.table.get(b).hide(),c}});return{View:h}}); //# sourceMappingURL=../../../maps/mvc/form/form-section.js.map \ No newline at end of file diff --git a/static/scripts/mvc/form/form-view.js b/static/scripts/mvc/form/form-view.js index 44340dd8e60..5f2312fd115 100644 --- a/static/scripts/mvc/form/form-view.js +++ b/static/scripts/mvc/form/form-view.js @@ -1,2 +1,2 @@ -define(["utils/utils","mvc/ui/ui-portlet","mvc/ui/ui-misc","mvc/form/form-section","mvc/form/form-data"],function(a,b,c,d,e){return Backbone.View.extend({initialize:function(b){this.optionsDefault={is_dynamic:!0,narrow:!1,initial_errors:!1,cls:"ui-portlet-limited"},this.options=a.merge(b,this.optionsDefault),console.debug(this.options);var d=parent.Galaxy;this.modal=d&&d.modal?d.modal:new c.Modal.View,this.setElement("
"),this._build()},update:function(a){var b=this;this.data.matchModel(a,function(a,c){var d=b.input_list[a];if(d&&d.options&&!_.isEqual(d.options,c.options)){d.options=c.options;var e=b.field_list[a];if(e.update){var f=[];if(-1!=["data","data_collection","drill_down"].indexOf(d.type))f=d.options;else for(var g in c.options){var h=c.options[g];h.length>2&&f.push({label:h[0],value:h[1]})}e.update(f),e.trigger("change"),console.debug("Updating options for "+a)}}})},wait:function(a){for(var b in this.input_list){var c=this.field_list[b],d=this.input_list[b];d.is_dynamic&&c.wait&&c.unwait&&(a?c.wait():c.unwait())}},reciept:function(a){this.$el.empty(),this.$el.append(a)},highlight:function(a,b,c){var d=this.element_list[a];d&&(d.error(b||"Please verify this parameter."),c||$("html, body").animate({scrollTop:d.$el.offset().top-20},500))},errors:function(a){if(this.trigger("reset"),a&&a.errors){var b=this.data.matchResponse(a.errors);for(var c in this.element_list){{this.element_list[c]}b[c]&&this.highlight(c,b[c],!0)}}},_build:function(){var a=this;this.off("change"),this.off("reset"),this.field_list={},this.input_list={},this.element_list={},this.data=new e(this),this._renderForm(),this.data.create(),this.options.initial_errors&&this.errors(this.options);var b=this.data.checksum();this.on("change",function(){var c=a.data.checksum();c!=b&&(b=c,a.options.onchange&&a.options.onchange())}),this.on("reset",function(){for(var a in this.element_list)this.element_list[a].reset()})},_renderForm:function(){this.message=new c.Message,this.section=new d.View(this,{inputs:this.options.inputs}),this.portlet=new b.View({icon:"fa-wrench",title:this.options.title,cls:this.options.cls,operations:this.options.operations,buttons:this.options.buttons}),this.portlet.append(this.message.$el.addClass("ui-margin-top")),this.portlet.append(this.section.$el),this.$el.empty(),this.$el.append(this.portlet.$el),this.options.message&&this.message.update({persistent:!0,status:"warning",message:this.options.message}),console.debug("tools-form-base::initialize() - Completed.")}})}); +define(["utils/utils","mvc/ui/ui-portlet","mvc/ui/ui-misc","mvc/form/form-section","mvc/form/form-data"],function(a,b,c,d,e){return Backbone.View.extend({initialize:function(b){this.optionsDefault={is_dynamic:!0,narrow:!1,initial_errors:!1,cls:"ui-portlet-limited"},this.options=a.merge(b,this.optionsDefault),console.debug(this.options);var d=parent.Galaxy;this.modal=d&&d.modal?d.modal:new c.Modal.View,this.setElement("
"),this._build()},update:function(a){var b=this;this.data.matchModel(a,function(a,c){var d=b.input_list[a];if(d&&d.options&&!_.isEqual(d.options,c.options)){d.options=c.options;var e=b.field_list[a];if(e.update){var f=[];if(-1!=["data","data_collection","drill_down"].indexOf(d.type))f=d.options;else for(var g in c.options){var h=c.options[g];h.length>2&&f.push({label:h[0],value:h[1]})}e.update(f),e.trigger("change"),console.debug("Updating options for "+a)}}})},wait:function(a){for(var b in this.input_list){var c=this.field_list[b],d=this.input_list[b];d.is_dynamic&&c.wait&&c.unwait&&(a?c.wait():c.unwait())}},reciept:function(a){this.$el.empty(),this.$el.append(a)},highlight:function(a,b,c){var d=this.element_list[a];d&&(d.error(b||"Please verify this parameter."),c||$("html, body").animate({scrollTop:d.$el.offset().top-20},500))},errors:function(a){if(this.trigger("reset"),a&&a.errors){var b=this.data.matchResponse(a.errors);for(var c in this.element_list){{this.element_list[c]}b[c]&&this.highlight(c,b[c],!0)}}},_build:function(){var a=this;this.off("change"),this.off("reset"),this.field_list={},this.input_list={},this.element_list={},this.data=new e(this),this._renderForm(),this.data.create(),this.options.initial_errors&&this.errors(this.options);var b=this.data.checksum();this.on("change",function(){var c=a.data.checksum();c!=b&&(b=c,a.options.onchange&&a.options.onchange())}),this.on("reset",function(){for(var a in this.element_list)this.element_list[a].reset()})},_renderForm:function(){return this.message=new c.Message,this.section=new d.View(this,{inputs:this.options.inputs}),this.incompatible?(this.$el.hide(),void $("#tool-form-classic").show()):(this.portlet=new b.View({icon:"fa-wrench",title:this.options.title,cls:this.options.cls,operations:this.options.operations,buttons:this.options.buttons}),this.portlet.append(this.message.$el.addClass("ui-margin-top")),this.portlet.append(this.section.$el),this.$el.empty(),this.$el.append(this.portlet.$el),this.options.message&&this.message.update({persistent:!0,status:"warning",message:this.options.message}),void console.debug("tools-form-base::initialize() - Completed."))}})}); //# sourceMappingURL=../../../maps/mvc/form/form-view.js.map \ No newline at end of file diff --git a/static/style/blue/base.css b/static/style/blue/base.css index 207da8938da..27c0ed68afc 100644 --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -1442,7 +1442,7 @@ html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto; .ui-portlet .portlet-backdrop,.ui-portlet-limited .portlet-backdrop,.ui-portlet-narrow .portlet-backdrop{display:none;z-index:10;position:absolute;top:0px;width:100%;height:100%;opacity:0.2;background:#fff;cursor:not-allowed} .ui-portlet-repeat,.ui-portlet-section,.ui-portlet-section{border:none;border-left:solid 3px #ebd9b2;border-radius:5px;margin-bottom:5px}.ui-portlet-repeat .portlet-header,.ui-portlet-section .portlet-header{background:#ebd9b2;border-radius:5px;border-bottom-left-radius:0px;border-top-left-radius:0px;padding:0px 2px}.ui-portlet-repeat .portlet-header .portlet-title-text,.ui-portlet-section .portlet-header .portlet-title-text{vertical-align:middle;line-height:20px !important} .ui-portlet-repeat .portlet-content,.ui-portlet-section .portlet-content{padding-right:0px} -.ui-portlet-section{border-left:solid 3px #dfe5f9}.ui-portlet-section .portlet-header{background:#dfe5f9;border-bottom:solid #b4c2f1 1px} +.ui-portlet-section{margin-top:5px;border-left:solid 3px #dfe5f9}.ui-portlet-section .portlet-header{background:#dfe5f9;border-bottom:solid #b4c2f1 1px} .ui-portlet-narrow{border:none}.ui-portlet-narrow .portlet-header{border-radius:3px}.ui-portlet-narrow .portlet-header .portlet-operations .ui-button-icon{margin-left:3px} .ui-portlet-narrow .ui-portlet-repeat .portlet-header,.ui-portlet-narrow .ui-portlet-section .portlet-header{border-radius:5px;border-bottom-left-radius:0px;border-top-left-radius:0px} .ui-portlet-narrow .portlet-content{padding:0px} diff --git a/static/style/src/less/ui.less b/static/style/src/less/ui.less index ef8b2d0acb5..adf9a0fe5b2 100644 --- a/static/style/src/less/ui.less +++ b/static/style/src/less/ui.less @@ -272,6 +272,7 @@ .ui-portlet-section { &:extend(.ui-portlet-repeat all); + margin-top: @ui-margin-vertical; border-left: solid 3px @side-panel-bg; .portlet-header { background: @side-panel-bg; diff --git a/templates/webapps/galaxy/tool_form.mako b/templates/webapps/galaxy/tool_form.mako index d8dcb5a9c37..d272fc2c085 100644 --- a/templates/webapps/galaxy/tool_form.mako +++ b/templates/webapps/galaxy/tool_form.mako @@ -227,7 +227,7 @@ ${h.css('base', 'jquery-ui/smoothness/jquery-ui')} ##
%endif - %else: + %elif input.type != "section": ${row_for_param( prefix, input, tool_state, errors, other_values )} %endif %endfor diff --git a/templates/webapps/tool_shed/repository/tool_form.mako b/templates/webapps/tool_shed/repository/tool_form.mako index 7025cf4e920..c3f86cd4d4d 100644 --- a/templates/webapps/tool_shed/repository/tool_form.mako +++ b/templates/webapps/tool_shed/repository/tool_form.mako @@ -21,7 +21,7 @@ %for input_index, input in enumerate( inputs.itervalues() ): %if not input.visible: <% pass %> - %elif input.type == "repeat": + %elif input.type in ["repeat", "section"]:
${input.title_plural} diff --git a/test/functional/tools/samples_tool_conf.xml b/test/functional/tools/samples_tool_conf.xml index f0af5f8af3e..c4fd339afeb 100644 --- a/test/functional/tools/samples_tool_conf.xml +++ b/test/functional/tools/samples_tool_conf.xml @@ -29,6 +29,7 @@ + diff --git a/test/functional/tools/section.xml b/test/functional/tools/section.xml new file mode 100644 index 00000000000..29bb7fe10e3 --- /dev/null +++ b/test/functional/tools/section.xml @@ -0,0 +1,43 @@ + + + echo "$int.inttest" >> $out_file1; + echo "$float.floattest" >> $out_file1; + + +
+ +
+
+ +
+
+ + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+
+