[ARVADOS] updated: e5b8f6826a2034c0c7d7142cff3fb02f64fb8831
git at public.curoverse.com
git at public.curoverse.com
Thu Feb 5 17:14:38 EST 2015
Summary of changes:
apps/workbench/app/helpers/application_helper.rb | 4 +-
.../test/integration/pipeline_instances_test.rb | 43 ++++++++++++++++++----
services/api/test/fixtures/pipeline_templates.yml | 19 ++++++++++
3 files changed, 55 insertions(+), 11 deletions(-)
via e5b8f6826a2034c0c7d7142cff3fb02f64fb8831 (commit)
via 12dee1ebfd6a3fca40c19d751459ba6a071c0a3d (commit)
from 36d6d1609ef342268cc87fc8bfce51bcf7199929 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit e5b8f6826a2034c0c7d7142cff3fb02f64fb8831
Merge: 36d6d16 12dee1e
Author: Brett Smith <brett at curoverse.com>
Date: Thu Feb 5 17:14:03 2015 -0500
Merge branch '5141-workbench-numeric-inputs-wip'
Closes #5141, #5143.
commit 12dee1ebfd6a3fca40c19d751459ba6a071c0a3d
Author: Brett Smith <brett at curoverse.com>
Date: Thu Feb 5 16:18:00 2015 -0500
5141: Workbench permits float values for number pipeline inputs.
Previously, when a pipeline input had the number dataclass, we
rendered the input form with type=number. However, the Arvados number
dataclass is meant to allow all numeric types. The HTML 5 number
input type only permits integers.
Unfortunately, X-Editable does not have any built-in validation for a
broader range of numeric types. This commit simply removes any
validation.
diff --git a/apps/workbench/app/helpers/application_helper.rb b/apps/workbench/app/helpers/application_helper.rb
index a05e6ba..ef2830c 100644
--- a/apps/workbench/app/helpers/application_helper.rb
+++ b/apps/workbench/app/helpers/application_helper.rb
@@ -307,9 +307,7 @@ module ApplicationHelper
end
end
- if dataclass == 'number' or attrvalue.is_a? Fixnum or attrvalue.is_a? Float
- datatype = 'number'
- elsif attrvalue.is_a? String
+ if attrvalue.is_a? String
datatype = 'text'
elsif attrvalue.is_a?(Array) or dataclass.andand.is_a?(Class)
# TODO: find a way to edit with x-editable
diff --git a/apps/workbench/test/integration/pipeline_instances_test.rb b/apps/workbench/test/integration/pipeline_instances_test.rb
index 1c8139e..ebdb28b 100644
--- a/apps/workbench/test/integration/pipeline_instances_test.rb
+++ b/apps/workbench/test/integration/pipeline_instances_test.rb
@@ -182,17 +182,27 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest
"components JSON not found")
end
- PROJECT_WITH_SEARCH_COLLECTION = "A Subproject"
- def check_parameter_search(proj_name)
- template = api_fixture("pipeline_templates")["parameter_with_search"]
- search_text = template["components"]["with-search"]["script_parameters"]["input"]["search_for"]
- visit page_with_token("active", "/pipeline_templates/#{template['uuid']}")
+ def create_pipeline_from(template_name, project_name="Home")
+ # Visit the named pipeline template and create a pipeline instance from it.
+ # The instance will be created under the named project.
+ template_uuid = api_fixture("pipeline_templates", template_name, "uuid")
+ visit page_with_token("active", "/pipeline_templates/#{template_uuid}")
click_on "Run this pipeline"
- within(".modal-dialog") do # Set project for the new pipeline instance
- find(".selectable", text: proj_name).click
+ within(".modal-dialog") do
+ # Set project for the new pipeline instance
+ find(".selectable", text: project_name).click
click_on "Choose"
end
- assert(has_text?("This pipeline was created from the template"), "did not land on pipeline instance page")
+ assert(has_text?("This pipeline was created from the template"),
+ "did not land on pipeline instance page")
+ end
+
+ PROJECT_WITH_SEARCH_COLLECTION = "A Subproject"
+ def check_parameter_search(proj_name)
+ create_pipeline_from("parameter_with_search", proj_name)
+ search_text = api_fixture("pipeline_templates", "parameter_with_search",
+ "components", "with-search",
+ "script_parameters", "input", "search_for")
first("a.btn,button", text: "Choose").click
within(".modal-body") do
if (proj_name != PROJECT_WITH_SEARCH_COLLECTION)
@@ -215,6 +225,23 @@ class PipelineInstancesTest < ActionDispatch::IntegrationTest
check_parameter_search("A Project")
end
+ test "enter a float for a number pipeline input" do
+ # Poltergeist either does not support the HTML 5 <input
+ # type="number">, or interferes with the associated X-Editable
+ # validation code. If the input field has type=number (forcing an
+ # integer), this test will yield a false positive under
+ # Poltergeist. --Brett, 2015-02-05
+ need_selenium "for strict X-Editable input validation"
+ create_pipeline_from("template_with_dataclass_number")
+ INPUT_SELECTOR =
+ ".editable[data-name='[components][work][script_parameters][input][value]']"
+ find(INPUT_SELECTOR).click
+ find(".editable-input input").set("12.34")
+ find("#editable-submit").click
+ assert_no_selector(".editable-popup")
+ assert_selector(INPUT_SELECTOR, text: "12.34")
+ end
+
[
[true, 'Two Part Pipeline Template', 'foo_collection_in_aproject', false],
[false, 'Two Part Pipeline Template', 'foo_collection_in_aproject', false],
diff --git a/services/api/test/fixtures/pipeline_templates.yml b/services/api/test/fixtures/pipeline_templates.yml
index 4659da3..40bf63d 100644
--- a/services/api/test/fixtures/pipeline_templates.yml
+++ b/services/api/test/fixtures/pipeline_templates.yml
@@ -165,6 +165,25 @@ template_with_dataclass_file:
array_with_value: # important to test repeating values in the array!
value: [1,1,2,3,5]
+template_with_dataclass_number:
+ uuid: zzzzz-p5p6p-numbertemplatea
+ owner_uuid: zzzzz-tpzed-xurymjxw79nv3jz
+ created_at: 2015-01-14 12:35:04 -0400
+ updated_at: 2015-01-14 12:35:04 -0400
+ modified_at: 2015-01-14 12:35:04 -0400
+ modified_by_client_uuid: zzzzz-ozdt8-brczlopd8u8d0jr
+ modified_by_user_uuid: zzzzz-tpzed-xurymjxw79nv3jz
+ name: Template with dataclass number
+ components:
+ work:
+ script: foo
+ script_version: master
+ script_parameters:
+ input:
+ required: true
+ dataclass: number
+ title: "Input number"
+
pipeline_template_in_publicly_accessible_project:
uuid: zzzzz-p5p6p-tmpltpublicproj
owner_uuid: zzzzz-j7d0g-zhxawtyetzwc5f0
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list