* UI for cloning builds (not functional yet).

[?]
Oct 26, 2009, 2:30 PM
WRIU3S5EO3RB3IM5PUDNHLOOMUPD5UKWNUL4YMAKD3C6O4KELJCAC

Dependencies

  • [2] Z6MDQIGO * A quick (non-Web 2.0) interface to manually add builds to a release.
  • [3] J5UVLXOK * Start of a basic Catalyst web interface.
  • [4] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [5] SZZ3PFYF
  • [6] W6DC6K4I * Happy Javascript hacking.
  • [7] TW5ZQX5Z * Move up the build products in the builds page, since they're more
  • [8] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [9] KRVD4EW7 * Only non-garbage collected builds can be added to a release.
  • [10] WHAFVCEI
  • [11] HJLYC753 * Adding input value alternatives.
  • [12] NDL67SQT * XHTML validity.
  • [13] L2E6EVE2 * Merged the Build and Job tables.
  • [14] GCHNNFZP
  • [*] LBNVQXUB * Build the /build stuff in a separate controller.
  • [*] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [*] JLDUSNUO * Unify rendering of finished and scheduled builds.
  • [*] JFZNAYJX * Showing releases.
  • [*] D5QIOJGP * Move everything up one directory.
  • [*] 7YBYT2LQ
  • [*] TP3PFR5K

Change contents

  • edit in src/lib/Hydra/Controller/Build.pm at line 385
    [17.1243]
    [16.3293]
    }
    sub clone : Chained('build') PathPart('clone') Args(0) {
    my ($self, $c) = @_;
    my $build = $c->stash->{build};
    requireProjectOwner($c, $build->project);
    $c->stash->{template} = 'clone-build.tt';
    }
    sub clone_submit : Chained('build') PathPart('clone/submit') Args(0) {
    my ($self, $c) = @_;
    my $build = $c->stash->{build};
    requireProjectOwner($c, $build->project);
    $c->flash->{buildMsg} = "Build XXX added to the queue.";
    $c->res->redirect($c->uri_for($c->controller('Root')->action_for('queue')));
  • edit in src/lib/Hydra/Controller/Root.pm at line 63
    [18.299]
    [19.2120]
    $c->stash->{flashMsg} = $c->flash->{buildMsg};
  • edit in src/root/build.tt at line 213
    [3.7981][3.0:1]()
  • edit in src/root/build.tt at line 221
    [2.1106]
    [2.1106]
    [% IF c.user_exists %]
    <p>[<a href="[% c.uri_for('/build' build.id 'clone') %]">Clone this build</a>]</p>
    [% END %]
  • file addition: clone-build.tt (----------)
    [20.1486]
    [% WRAPPER layout.tt title="Clone Build" %]
    [% PROCESS common.tt %]
    [% USE HTML %]
    [% edit=1 %]
    <h1>Clone Build</h1>
    <p>Cloning allows you to perform a build with modified inputs.</p>
    <form action="[% c.uri_for('/build' build.id 'clone' 'submit') %]" method="post">
    <h2>Nix expression</h2>
    <p>Evaluate job <tt><input type="text" class="string"
    name="jobname" [% HTML.attributes(value => build.job.name) %]
    /></tt> in Nix expression <tt><input type="text" class="string"
    name="nixexprpath" [% HTML.attributes(value => build.nixexprpath) %]
    /></tt> in input <tt><input type="text" class="string"
    name="nixexprinput" [% HTML.attributes(value => build.nixexprinput)
    %] /></tt>.</p>
    <h2>Build inputs</h2>
    <table class="tablesorter">
    <thead>
    <tr><th>Name</th><th>Type</th><th>Value</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN build.inputs -%]
    <tr>
    <td><tt>[% input.name %]</tt></td>
    <td>
    [% INCLUDE renderSelection curValue=input.type param="input-$input.name-type" options=inputTypes %]
    </td>
    <td>
    <tt><input type="text" class="string" name="input-[% input.name %]-value"
    [% HTML.attributes(value => input.value || input.uri || input.dependency.id) %] /></tt>
    </td>
    </tr>
    [% END -%]
    </tbody>
    </table>
    <p><button type="submit"><img alt="Add" src="/static/images/success.gif" />Add to queue</button></p>
    </form>
    [% END %]
  • replacement in src/root/project.tt at line 98
    [3.1751][3.21450:21571]()
    <a href="[% c.uri_for(c.controller('Project').action_for('create_jobset'), [project.name]) %]">[Create a new jobset]</a>
    [3.1751]
    [3.3091]
    <p><a href="[% c.uri_for(c.controller('Project').action_for('create_jobset'), [project.name]) %]">[Create a new jobset]</a></p>
  • edit in src/root/queue.tt at line 5
    [22.92]
    [22.92]
    [% IF flashMsg %]
    <p class="error">[% flashMsg %]</p>
    [% END %]