Hydra/20: Jobset clone feature
[?]
Apr 23, 2010, 11:20 AM
RSEGBU6CIEDRNTL7R6Q7RF2IZGCN3HH6VTPGFBKD77LSHEUD6EKACDependencies
- [2]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [3]
AKAXJDMW* Disable the statistics on the project, jobset and job pages for now - [4]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [*]
3HZY24CX* Make jobsets viewable under - [*]
D5QIOJGP* Move everything up one directory.
Change contents
- edit in src/lib/Hydra/Controller/Jobset.pm at line 252
}sub clone : Chained('jobset') PathPart('clone') Args(0) {my ($self, $c) = @_;my $jobset = $c->stash->{jobset};requireProjectOwner($c, $jobset->project);$c->stash->{template} = 'clone-jobset.tt'; - edit in src/lib/Hydra/Controller/Jobset.pm at line 264
sub clone_submit : Chained('jobset') PathPart('clone/submit') Args(0) {my ($self, $c) = @_; - edit in src/lib/Hydra/Controller/Jobset.pm at line 267
my $jobset = $c->stash->{jobset};requireProjectOwner($c, $jobset->project);requirePost($c);my $newjobsetName = trim $c->request->params->{"newjobset"};error($c, "Invalid jobset name: $newjobsetName") unless $newjobsetName =~ /^[[:alpha:]][\w\-]*$/;my $newjobset;txn_do($c->model('DB')->schema, sub {$newjobset = $jobset->project->jobsets->create({ name => $newjobsetName, description => $jobset->description, nixexprpath => $jobset->nixexprpath, nixexprinput => $jobset->nixexprinput, enabled => 0, enableemail => $jobset->enableemail, emailoverride => $jobset->emailoverride});foreach my $input ($jobset->jobsetinputs) {my $newinput = $newjobset->jobsetinputs->create({name => $input->name, type => $input->type});foreach my $inputalt ($input->jobsetinputalts) {$newinput->jobsetinputalts->create({altnr => $inputalt->altnr, value => $inputalt->value});}}});$c->res->redirect($c->uri_for($c->controller('Jobset')->action_for("edit"), [$jobset->project->name, $newjobsetName]));} - file addition: clone-jobset.tt[7.1486]
[% WRAPPER layout.tt title="Clone Jobset" %][% PROCESS common.tt %][% USE HTML %][% edit=1 %]<form action="[% c.uri_for('/jobset' jobset.project.name jobset.name 'clone' 'submit') %]" method="post"><h2>Cloning jobset [% jobset.project.name %]:[% jobset.name %]</h2><p>Name <tt><input type="text" class="string" name="newjobset" [% HTML.attributes(value => "") %] /></tt></p><p><button type="submit">Next</button></p></form>[% END %] - replacement in src/root/jobset.tt at line 154
<h2>Information[% IF !edit %] <a class="smallLink" href="[% c.uri_for('/jobset' project.name jobset.name 'edit') %]">[Edit]</a>[% END %]</h2><h2>Information</h2>[% IF !edit && c.user_exists %]<p>[ <a href="[% c.uri_for('/jobset' project.name jobset.name 'edit') %]">Edit</a> | <a href="[% c.uri_for('/jobset' project.name jobset.name 'clone') %]">Clone</a> ]</p>[% END %]