Fix jobset input handling in the API
[?]
Oct 24, 2013, 5:00 PM
VZX6HJ3I35NVK6L4FP7ASLNAMLMGPAESPQAAYZEUCXYKFUA6HTAQCDependencies
- [2]
NIX2TKYVUse redirectJSON - [3]
K3HODXGHCheck all inputs for blame but only email selected inputs - [4]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [5]
LZVO64YGMerge in the first bits of the API work - [6]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [7]
ZCTQCN3EUse inputTypes from plugins to determine valid input types - [8]
ZFEN2MAOSimplify jobset cloning - [9]
TQVKZQUGUse the REST API in the web interface for editing jobsets - [10]
RQI3GRC6Enable setting checkresponsible in the edit jobset form - [*]
3HZY24CX* Make jobsets viewable under - [*]
OX6NYJDVSplit viewing and editing a jobset
Change contents
- replacement in src/lib/Hydra/Controller/Jobset.pm at line 221
foreach my $param (keys %{$c->stash->{params}}) {next unless $param =~ /^input-(\w+)-name$/;my $baseName = $1;next if $baseName eq "template";my $name = $c->stash->{params}->{$param};my $type = $c->stash->{params}->{"input-$baseName-type"};my $values = $c->stash->{params}->{"input-$baseName-values"};foreach my $name (keys %{$c->stash->{params}->{inputs}}) {my $inputData = $c->stash->{params}->{inputs}->{$name};my $type = $inputData->{type};my $values = $inputData->{values};my $emailresponsible = defined $inputData->{emailresponsible} ? 1 : 0; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 233
emailresponsible => defined $c->stash->{params}->{"input-$baseName-emailresponsible"} ? 1 : 0emailresponsible => $emailresponsible - edit in src/root/edit-jobset.tt at line 181
var formElements = $(this).parents("form").serializeArray();var data = { 'inputs': {} };var inputs = {};for (var i = 0; i < formElements.length; i++) {var elem = formElements[i];var match = elem.name.match(/^input-(\w+)-(\w+)$/);if (match === null) {data[elem.name] = elem.value;} else {var baseName = match[1];var param = match[2];if (baseName === "template") {continue;}if (!(baseName in inputs)) {inputs[baseName] = {};}if (param === "name") {data.inputs[elem.value] = inputs[baseName];} else {inputs[baseName][param] = elem.value;}}} - replacement in src/root/edit-jobset.tt at line 214
data: $(this).parents("form").serialize(),data: JSON.stringify(data),contentType: 'application/json',