Merge branch 'revise_visit_000' into dev

This commit is contained in:
Dannon Baker
2016-05-16 18:39:48 -04:00
16 changed files with 88 additions and 74 deletions
+40 -53
View File
@@ -122,7 +122,10 @@ define([ 'utils/utils' ], function( Utils ) {
/** Matches a new tool model to the current input elements e.g. used to update dynamic options
*/
matchModel: function( model, callback ) {
return matchIds( model.inputs, this.flat_dict, callback );
var self = this;
visitInputs( model.inputs, function( input, name ) {
self.flat_dict[ name ] && callback ( input, self.flat_dict[ name ] );
});
},
/** Matches identifier from api response to input elements e.g. used to display validation errors
@@ -191,66 +194,50 @@ define([ 'utils/utils' ], function( Utils ) {
return -1;
};
/** Match context
* @param{dict} inputs - Dictionary of input elements
* @param{dict} key - Reference key which is matched to an input name e.g. data_ref
* @param{dict} callback - Called with matched context i.e. callback( input, referenced_input )
*/
var matchContext = function( inputs, key, callback, context ) {
context = $.extend( true, {}, context );
_.each( inputs, function ( input ) {
input && input.type && ( context[ input.name ] = input );
});
_.each( inputs, function ( input ) {
if ( _.isObject( input ) ) {
if ( input.type && context[ input[ key ] ] ) {
callback ( input, context[ input[ key ] ] );
} else {
matchContext( input, key, callback, context );
}
}
});
};
/** Matches a tool model to a dictionary, indexed with flat ids
* @param{dict} inputs - Dictionary of input elements
* @param{dict} mapping - Dictionary containing flat ids
/** Visits tool inputs
* @param{dict} inputs - Nested dictionary of input elements
* @param{dict} callback - Called with the mapped dictionary object and corresponding model node
*/
var matchIds = function( inputs, mapping, callback ) {
var result = {};
var self = this;
function search ( id, head ) {
for ( var i in head ) {
var node = head[ i ];
var index = node.name;
id != '' && ( index = id + '|' + index );
switch ( node.type ) {
case 'repeat':
for ( var j in node.cache ) {
search ( index + '_' + j, node.cache[ j ] );
var visitInputs = function( inputs, callback, prefix, context ) {
context = $.extend( true, {}, context );
_.each( inputs, function ( input ) {
if ( input && input.type && input.name ) {
context[ input.name ] = input;
}
});
for ( var i in inputs ) {
var node = inputs[ i ];
var name = prefix ? prefix + '|' + node.name : node.name;
switch ( node.type ) {
case 'repeat':
_.each( node.cache, function( cache, j ) {
visitInputs( cache, callback, name + '_' + j, context );
});
break;
case 'conditional':
if ( node.test_param ) {
callback( node.test_param, name + '|' + node.test_param.name, context );
var selectedCase = matchCase( node, node.test_param.value );
if ( selectedCase != -1 ) {
visitInputs( node.cases[ selectedCase ].inputs, callback, name, context );
} else {
Galaxy.emit.debug( 'form-data::visitInputs() - Invalid case for ' + name + '.' );
}
break;
case 'conditional':
var selectedCase = matchCase( node, node.test_param && node.test_param.value );
selectedCase != -1 && search ( index, node.cases[ selectedCase ].inputs );
break;
case 'section':
search ( index, node.inputs );
break;
default:
var mapped = mapping[ index ];
mapped && callback( mapped, node );
}
} else {
Galaxy.emit.debug( 'form-data::visitInputs() - Conditional test parameter missing for ' + name + '.' );
}
break;
case 'section':
visitInputs( node.inputs, callback, name, context )
break;
default:
callback( node, name, context );
}
}
search( '', inputs );
return result;
};
return {
Manager : Manager,
matchIds : matchIds,
matchContext : matchContext
visitInputs : visitInputs
}
});
+1 -1
View File
@@ -18,7 +18,7 @@ define(['utils/utils', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc', 'mvc/form/form-sec
/** Update available options */
update: function(new_model){
var self = this;
this.data.matchModel(new_model, function(input_id, node) {
this.data.matchModel(new_model, function(node, input_id) {
var input = self.input_list[input_id];
if (input && input.options) {
if (!_.isEqual(input.options, node.options)) {
@@ -105,7 +105,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view',
large : true
})).$el);
} else {
Galaxy.modal.show({
Galaxy.modal && Galaxy.modal.show({
title : 'Tool request failed',
body : error_message,
buttons : {
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"form-data.js","sources":["../../../src/mvc/form/form-data.js"],"names":["define","Manager","Backbone","Model","extend","initialize","app","this","checksum","sum","self","section","$el","find","each","id","$","attr","field","field_list","JSON","stringify","value","collapsed","create","add","flat_id","input_id","input_value","flat_dict","result_dict","element_list","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","i","test_param","selectedCase","matchCase","flat","undefined","ignore","collapsible_value","payload","p_id","dict","_iterate","match","matchModel","model","callback","matchIds","inputs","matchResponse","response","search","result","new_id","separator","Array","parent","children","child","hasClass","input_list","truevalue","falsevalue","cases","matchContext","key","context","_","isObject","mapping","j","cache","mapped"],"mappings":"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"}
{"version":3,"file":"form-data.js","sources":["../../../src/mvc/form/form-data.js"],"names":["define","Manager","Backbone","Model","extend","initialize","app","this","checksum","sum","self","section","$el","find","each","id","$","attr","field","field_list","JSON","stringify","value","collapsed","create","add","flat_id","input_id","input_value","flat_dict","result_dict","element_list","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","i","test_param","selectedCase","matchCase","flat","undefined","ignore","collapsible_value","payload","p_id","dict","_iterate","match","matchModel","model","callback","visitInputs","inputs","matchResponse","response","search","result","new_id","separator","Array","parent","children","child","hasClass","input_list","truevalue","falsevalue","cases","prefix","context","_","cache","j","Galaxy","emit","debug"],"mappings":"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"}
+1 -1
View File
@@ -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","merge","initial_errors","cls","icon","modal","parent","Galaxy","Modal","setElement","render","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","emit","debug","wait","active","is_dynamic","unwait","highlight","message","silent","input_element","element_list","error","top","$panel","$el","parents","filter","$","css","first","animate","scrollTop","offset","errors","error_messages","matchResponse","off","Manager","_renderForm","create","current_check","checksum","on","new_check","onchange","reset","Message","section","inputs","remove","portlet","title","operations","buttons","collapsible","collapsed","append","empty","persistent","status"],"mappings":"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"}
{"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","merge","initial_errors","cls","icon","modal","parent","Galaxy","Modal","setElement","render","update","new_model","self","data","matchModel","node","input_id","input","input_list","_","isEqual","field","field_list","new_options","indexOf","type","i","opt","length","push","label","value","trigger","emit","debug","wait","active","is_dynamic","unwait","highlight","message","silent","input_element","element_list","error","top","$panel","$el","parents","filter","$","css","first","animate","scrollTop","offset","errors","error_messages","matchResponse","off","Manager","_renderForm","create","current_check","checksum","on","new_check","onchange","reset","Message","section","inputs","remove","portlet","title","operations","buttons","collapsible","collapsed","append","empty","persistent","status"],"mappings":"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"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define(["utils/utils"],function(){var a=Backbone.Model.extend({initialize:function(a){this.app=a},checksum:function(){var a="",b=this;return this.app.section.$el.find(".section-row").each(function(){var c=$(this).attr("id"),d=b.app.field_list[c];d&&(a+=c+":"+JSON.stringify(d.value&&d.value())+":"+d.collapsed+";")}),a},create:function(){function a(a,b,c){d.flat_dict[a]=b,f[a]=c,d.app.element_list[b]&&d.app.element_list[b].$el.attr("tour_id",a)}function c(e,f){for(var g in f){var h=f[g];if(h.input){var i=h.input,j=e;switch(""!=e&&(j+="|"),j+=i.name,i.type){case"repeat":var k="section-",l=[],m=null;for(var n in h){var o=n.indexOf(k);-1!=o&&(o+=k.length,l.push(parseInt(n.substr(o))),m||(m=n.substr(0,o)))}l.sort(function(a,b){return a-b});var g=0;for(var p in l)c(j+"_"+g++,h[m+l[p]]);break;case"conditional":var q=d.app.field_list[i.id].value();a(j+"|"+i.test_param.name,i.id,q);var r=b(i,q);-1!=r&&c(j,f[i.id+"-section-"+r]);break;case"section":c(!i.flat&&j||"",h);break;default:var s=d.app.field_list[i.id];if(s&&s.value){var q=s.value();if((void 0===i.ignore||i.ignore!=q)&&(s.collapsed&&i.collapsible_value&&(q=i.collapsible_value),a(j,i.id,q),i.payload))for(var t in i.payload)a(t,i.id,i.payload[t])}}}}}var d=this,e={};this._iterate(this.app.section.$el,e);var f={};return this.flat_dict={},c("",e),f},match:function(a){return this.flat_dict&&this.flat_dict[a]},matchCase:function(a,c){return b(a,c)},matchModel:function(a,b){return d(a.inputs,this.flat_dict,b)},matchResponse:function(a){function b(a,e){if("string"==typeof e){var f=d.flat_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")){var e=c.app.input_list[d];b[d]=e&&{input:e}||{},c._iterate(a,b[d])}else c._iterate(a,b)})}}),b=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},c=function(a,b,d,e){e=$.extend(!0,{},e),_.each(a,function(a){a&&a.type&&(e[a.name]=a)}),_.each(a,function(a){_.isObject(a)&&(a.type&&e[a[b]]?d(a,e[a[b]]):c(a,b,d,e))})},d=function(a,c,d){function e(a,f){for(var g in f){var h=f[g],i=h.name;switch(""!=a&&(i=a+"|"+i),h.type){case"repeat":for(var j in h.cache)e(i+"_"+j,h.cache[j]);break;case"conditional":var k=b(h,h.test_param&&h.test_param.value);-1!=k&&e(i,h.cases[k].inputs);break;case"section":e(i,h.inputs);break;default:var l=c[i];l&&d(l,h)}}}var f={};return e("",a),f};return{Manager:a,matchIds:d,matchContext:c}});
define(["utils/utils"],function(){var a=Backbone.Model.extend({initialize:function(a){this.app=a},checksum:function(){var a="",b=this;return this.app.section.$el.find(".section-row").each(function(){var c=$(this).attr("id"),d=b.app.field_list[c];d&&(a+=c+":"+JSON.stringify(d.value&&d.value())+":"+d.collapsed+";")}),a},create:function(){function a(a,b,c){d.flat_dict[a]=b,f[a]=c,d.app.element_list[b]&&d.app.element_list[b].$el.attr("tour_id",a)}function c(e,f){for(var g in f){var h=f[g];if(h.input){var i=h.input,j=e;switch(""!=e&&(j+="|"),j+=i.name,i.type){case"repeat":var k="section-",l=[],m=null;for(var n in h){var o=n.indexOf(k);-1!=o&&(o+=k.length,l.push(parseInt(n.substr(o))),m||(m=n.substr(0,o)))}l.sort(function(a,b){return a-b});var g=0;for(var p in l)c(j+"_"+g++,h[m+l[p]]);break;case"conditional":var q=d.app.field_list[i.id].value();a(j+"|"+i.test_param.name,i.id,q);var r=b(i,q);-1!=r&&c(j,f[i.id+"-section-"+r]);break;case"section":c(!i.flat&&j||"",h);break;default:var s=d.app.field_list[i.id];if(s&&s.value){var q=s.value();if((void 0===i.ignore||i.ignore!=q)&&(s.collapsed&&i.collapsible_value&&(q=i.collapsible_value),a(j,i.id,q),i.payload))for(var t in i.payload)a(t,i.id,i.payload[t])}}}}}var d=this,e={};this._iterate(this.app.section.$el,e);var f={};return this.flat_dict={},c("",e),f},match:function(a){return this.flat_dict&&this.flat_dict[a]},matchCase:function(a,c){return b(a,c)},matchModel:function(a,b){var d=this;c(a.inputs,function(a,c){d.flat_dict[c]&&b(a,d.flat_dict[c])})},matchResponse:function(a){function b(a,e){if("string"==typeof e){var f=d.flat_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")){var e=c.app.input_list[d];b[d]=e&&{input:e}||{},c._iterate(a,b[d])}else c._iterate(a,b)})}}),b=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},c=function(a,d,e,f){f=$.extend(!0,{},f),_.each(a,function(a){a&&a.type&&a.name&&(f[a.name]=a)});for(var g in a){var h=a[g],i=e?e+"|"+h.name:h.name;switch(h.type){case"repeat":_.each(h.cache,function(a,b){c(a,d,i+"_"+b,f)});break;case"conditional":if(h.test_param){d(h.test_param,i+"|"+h.test_param.name,f);var j=b(h,h.test_param.value);-1!=j?c(h.cases[j].inputs,d,i,f):Galaxy.emit.debug("form-data::visitInputs() - Invalid case for "+i+".")}else Galaxy.emit.debug("form-data::visitInputs() - Conditional test parameter missing for "+i+".");break;case"section":c(h.inputs,d,i,f);break;default:d(h,i,f)}}};return{Manager:a,visitInputs:c}});
//# sourceMappingURL=../../../maps/mvc/form/form-data.js.map
+1 -1
View File
@@ -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.options=a.merge(b,{initial_errors:!1,cls:"ui-portlet-limited",icon:""}),this.modal=parent.Galaxy&&parent.Galaxy.modal||new c.Modal.View,this.setElement("<div/>"),this.render()},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"),Galaxy.emit.debug("form-view::update()","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())}},highlight:function(a,b,c){var d=this.element_list[a];if(d&&(d.error(b||"Please verify this parameter."),this.trigger("expand",a),!c))if(self==top){var e=this.$el.parents().filter(function(){return"auto"==$(this).css("overflow")}).first();e.animate({scrollTop:e.scrollTop()+d.$el.offset().top-50},500)}else $("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)}}},render:function(){var a=this;this.off("change"),this.off("reset"),this.field_list={},this.input_list={},this.element_list={},this.data=new e.Manager(this),this._renderForm(),this.data.create(),this.options.initial_errors&&this.errors(this.options);var b=this.data.checksum();return 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()}),this},_renderForm:function(){this.message=new c.Message,this.section=new d.View(this,{inputs:this.options.inputs}),$(".tooltip").remove(),this.portlet=new b.View({icon:this.options.icon,title:this.options.title,cls:this.options.cls,operations:this.options.operations,buttons:this.options.buttons,collapsible:this.options.collapsible,collapsed:this.options.collapsed}),this.portlet.append(this.message.$el),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}),Galaxy.emit.debug("form-view::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.options=a.merge(b,{initial_errors:!1,cls:"ui-portlet-limited",icon:""}),this.modal=parent.Galaxy&&parent.Galaxy.modal||new c.Modal.View,this.setElement("<div/>"),this.render()},update:function(a){var b=this;this.data.matchModel(a,function(a,c){var d=b.input_list[c];if(d&&d.options&&!_.isEqual(d.options,a.options)){d.options=a.options;var e=b.field_list[c];if(e.update){var f=[];if(-1!=["data","data_collection","drill_down"].indexOf(d.type))f=d.options;else for(var g in a.options){var h=a.options[g];h.length>2&&f.push({label:h[0],value:h[1]})}e.update(f),e.trigger("change"),Galaxy.emit.debug("form-view::update()","Updating options for "+c)}}})},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())}},highlight:function(a,b,c){var d=this.element_list[a];if(d&&(d.error(b||"Please verify this parameter."),this.trigger("expand",a),!c))if(self==top){var e=this.$el.parents().filter(function(){return"auto"==$(this).css("overflow")}).first();e.animate({scrollTop:e.scrollTop()+d.$el.offset().top-50},500)}else $("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)}}},render:function(){var a=this;this.off("change"),this.off("reset"),this.field_list={},this.input_list={},this.element_list={},this.data=new e.Manager(this),this._renderForm(),this.data.create(),this.options.initial_errors&&this.errors(this.options);var b=this.data.checksum();return 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()}),this},_renderForm:function(){this.message=new c.Message,this.section=new d.View(this,{inputs:this.options.inputs}),$(".tooltip").remove(),this.portlet=new b.View({icon:this.options.icon,title:this.options.title,cls:this.options.cls,operations:this.options.operations,buttons:this.options.buttons,collapsible:this.options.collapsible,collapsed:this.options.collapsed}),this.portlet.append(this.message.$el),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}),Galaxy.emit.debug("form-view::initialize()","Completed")}})});
//# sourceMappingURL=../../../maps/mvc/form/form-view.js.map
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -22,10 +22,10 @@ define([
window.Galaxy.currHistoryPanel = { model: new Backbone.Model() };
window.Galaxy.emit = {
debug : function(){},
error : function(){}
error : function( v ){ window.console.error( v ) }
};
window.fakeserver = sinon.fakeServer.create();
window.WAIT_FADE_FAST = 300;
window.fakeserver = sinon.fakeServer.create();
for (var route in serverdata) {
window.fakeserver.respondWith('GET', Galaxy.root + route, [ 200, { 'Content-Type': 'application/json' }, serverdata[ route ].data ]);
}
+4 -1
View File
@@ -5,6 +5,9 @@ return {
},
'api/datatypes': {
data: '["RData", "ab1", "affybatch", "txt"]'
},
'api/tools/test/build': {
data: '{ "id": "test", "name": "_name", "version": "_version", "description": "_description", "display": "true", "inputs": [ { "name": "a", "type": "text" }, { "name": "b", "type": "conditional", "test_param": { "name": "c", "type": "select", "value": "h" }, "cases": [ { "name": "d", "value": "d", "inputs": [ { "name": "f", "type": "text" }, { "name": "g", "type": "text" } ] }, { "name": "h", "value": "h", "inputs": [ { "name": "i", "type": "text" }, { "name": "j", "type": "text" } ] } ] }, { "name": "k", "type": "repeat", "cache": [[ { "name": "l", "type": "text" }, { "name": "m", "type": "conditional", "test_param": { "name": "n", "type": "select", "value": "o" }, "cases": [ { "name": "o", "value": "o", "inputs": [ { "name": "p", "type": "text" }, { "name": "q", "type": "text" } ] }, { "name": "r", "value": "r", "inputs": [ { "name": "s", "type": "text" }, { "name": "t", "type": "text" } ] } ] } ] ] } ] }'
}
}
});
});
+27 -2
View File
@@ -1,6 +1,6 @@
/* global define, QUnit, module, test, ok, equal, deepEqual, notEqual */
define([ 'test-app', 'mvc/form/form-input', 'mvc/ui/ui-misc',
], function( testApp, InputElement, Ui ){
define([ 'test-app', 'mvc/form/form-input', 'mvc/ui/ui-misc', 'mvc/form/form-data', 'mvc/tool/tool-form', 'utils/utils',
], function( testApp, InputElement, Ui, FormData, ToolForm, Utils ){
'use strict';
module( 'Form test', {
setup: function() {
@@ -11,6 +11,31 @@ define([ 'test-app', 'mvc/form/form-input', 'mvc/ui/ui-misc',
}
} );
test( 'tool-form', function() {
var form = new ToolForm.View( { id: 'test' } );
$( 'body' ).prepend( form.$el );
window.fakeserver.respond();
ok( form.$( '.portlet-title-text' ).html() == '<b>_name</b> _description (Galaxy Version _version)', 'Title correct' );
var tour_ids = [];
$( '[tour_id]' ).each( function() { tour_ids.push( $( this ).attr( 'tour_id' ) ) } );
ok( JSON.stringify( tour_ids ) == '["a","b|c"]', 'Tour ids correct' );
ok( JSON.stringify( form.data.create() ) == '{"a":"","b|c":null}', 'Created data correct' );
var mapped_ids = [];
form.data.matchModel( form.options, function( input, id ) { mapped_ids.push( $( '#' + id ).find( '[tour_id]' ).first().attr( 'tour_id' ) ) } );
ok( JSON.stringify( mapped_ids ) == '["a","b|c"]', 'Remapped tour ids correct' );
});
test( 'data', function() {
var visits = [];
Utils.get( { url: Galaxy.root + 'api/tools/test/build', success: function( response ) {
FormData.visitInputs( response.inputs, function( node, name, context ) {
visits.push( { name: name, node: node } );
} );
} } );
window.fakeserver.respond();
ok( JSON.stringify( visits ) == '[{"name":"a","node":{"name":"a","type":"text"}},{"name":"b|c","node":{"name":"c","type":"select","value":"h"}},{"name":"b|i","node":{"name":"i","type":"text"}},{"name":"b|j","node":{"name":"j","type":"text"}},{"name":"k_0|l","node":{"name":"l","type":"text"}},{"name":"k_0|m|n","node":{"name":"n","type":"select","value":"o"}},{"name":"k_0|m|p","node":{"name":"p","type":"text"}},{"name":"k_0|m|q","node":{"name":"q","type":"text"}}]', 'Testing value visitor' );
});
test( 'input', function() {
var input = new InputElement( {}, {
field: new Ui.Input({})
-1
View File
@@ -4,7 +4,6 @@
<html>
<head>
<link href="../../../static/style/blue/base.css" media="screen" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
<script data-main="../test-common" src="../scripts/libs/require.js"></script>
</head>
<body>