Show releases in a tab on the project page

[?]
Feb 21, 2013, 12:23 AM
OR5SJ42Y6HYDJL3UTEXMINLNY2T3LYSVJ6FSYFMHP4K4W2RZAMIQC

Dependencies

  • [2] SU566LI3 * Sort releases.
  • [3] JY7BXXOP Split viewing and editing a project
  • [4] TRDGNILT Remove unused file
  • [5] 75XUS62Y * Added a page to quickly see all failed builds and failed evaluations
  • [6] 2DTJNAMX Allow project members to create jobsets, regression introduced by bootstrap make-over. Currently all logged in users see these options, however, only on performing the action the privileges are checked. Need to change that in the future.
  • [7] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [8] NEQ4BISO Add bootstrap.zip
  • [9] R2PON6R7 Allow non-admin users to see the machine status page
  • [10] SZYDW2DG hydra: added some user admin
  • [11] RBNQKATL * Adding persistant releases. A release is a named set of builds.
  • [12] 23QNCJF2 * Use a table.
  • [13] 2BUX775I * More release -> view.
  • [14] OEPUOUNB Using twitter bootstrap for more consistent looks for Hydra
  • [15] AS2OXLRM * Editing releases.
  • [16] 6FRLEP4P first try for timeline of last 24 hours in hydra
  • [17] Q4VDOA76 Replace last 5 builds on jobset page with last 5 evaluations. Moved hide/unhide and evaluate options to jobset topmenu.
  • [18] QL55ECJ6 - adapted ui for hydra, more in line with nixos.org website
  • [19] XDDCO6CH * hydra: add dependency list with links to logfiles
  • [20] WRIU3S5E * UI for cloning builds (not functional yet).
  • [21] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [22] KXGOUX7P * Creating releases.
  • [23] GPHLV42M * Allow the description of a release member to be edited, and to
  • [24] RSEGBU6C Hydra/20: Jobset clone feature
  • [25] EFWN7JBV * Added a status page that shows all the currently executing build steps.
  • [26] GEL2WHSU Move channel link to top menu of Project and Jobset.
  • [27] HU5DPGCV There is only one channel, so drop the "(latest)" suffix
  • [28] Z6MDQIGO * A quick (non-Web 2.0) interface to manually add builds to a release.
  • [29] RJICSUYG * Align the apply/delete buttons.
  • [30] SMTMFEKE hydra: add missing templates
  • [31] FV2M6MOT hydra: use autoconf/-make
  • [32] 36M6DGIT Show the runtime/build dependencies in the build page
  • [33] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [34] D5QIOJGP * Move everything up one directory.
  • [35] 5DSDXORD hydra: missing plain.tt
  • [36] 3JBUMW3E forgot to commit a file
  • [37] U4TD3AIQ Add support for viewing jobset evaluations
  • [38] PZL3SZM3 Give every page a consistent title
  • [39] ZWCTAZGL added newsitems, added some admin options to clear various caches.
  • [40] JARRBLZD Bootstrapify the Hydra forms (except the project and jobset edit pages)
  • [*] BKOIYITR added some json responses
  • [*] 7YBYT2LQ
  • [*] W6DC6K4I * Happy Javascript hacking.

Change contents

  • edit in src/lib/Hydra/Controller/Project.pm at line 29
    [42.7207]
    [4.1942]
    $c->stash->{releases} = [$c->stash->{project}->releases->search({},
    {order_by => ["timestamp DESC"]})];
  • edit in src/lib/Hydra/Controller/Project.pm at line 237
    [4.898][4.898:902](),[4.902][4.0:133](),[4.133][2.0:116]()
    }
    sub releases : Chained('project') PathPart('releases') Args(0) {
    my ($self, $c) = @_;
    $c->stash->{template} = 'releases.tt';
    $c->stash->{releases} = [$c->stash->{project}->releases->search({},
    {order_by => ["timestamp DESC"]})];
  • replacement in src/lib/Hydra/Controller/Release.pm at line 69
    [4.160][4.160:249]()
    $c->res->redirect($c->uri_for($c->controller('Project')->action_for('releases'),
    [4.160]
    [4.249]
    $c->res->redirect($c->uri_for($c->controller('Project')->action_for('view'),
  • file deletion: releases.tt (----------)
    [4.1486][4.4149:4184](),[4.4184][4.3623:3623]()
    [% PROCESS common.tt %]
    [% USE HTML %]
    [% IF releases.size == 0 %]
    <p><em>This project has no releases yet.</em></p>
    [% ELSE %]
    <p>This project has made the following releases:</p>
    <table class="tablesorter table table-condensed table-striped">
    <thead>
    <tr>
    <th>Name</th>
    <th>Date</th>
    </tr>
    </thead>
    <tbody>
    [% FOREACH release IN releases %]
    [% link = c.uri_for('/release' project.name release.name) %]
    <tr class="clickable" onclick="window.location = '[% link %]'">
    <td><a href="[% link %]"><tt>[% release.name %]</tt></a></td>
    <td>[% INCLUDE renderDateTime timestamp = release.timestamp %]</td>
    </tr>
    [% END %]
    </tbody>
    </table>
    [% END %]
    [% END %]
    [% IF c.user_exists %]
    <p><a class="btn" href="[% c.uri_for('/project' project.name 'create-release') %]">
    <i class="icon-plus"></i> Create a release
    </a></p>
    [% END %]
    [% WRAPPER layout.tt title="Releases for project $project.name" %]
  • edit in src/root/project.tt at line 7
    [3.2718]
    [3.2718]
    <li><a href="#tabs-releases" data-toggle="tab">Releases</a></li>
  • edit in src/root/project.tt at line 111
    [3.6554]
    [44.3196]
    <div id="tabs-releases" class="tab-pane">
    [% IF releases.size == 0 %]
    <p><em>This project has no releases yet.</em></p>
    [% ELSE %]
    <p>This project has made the following releases:</p>
  • edit in src/root/project.tt at line 122
    [44.3197]
    [3.6555]
    <table class="tablesorter table table-condensed table-striped">
    <thead>
    <tr>
    <th>Name</th>
    <th>Date</th>
    </tr>
    </thead>
    <tbody>
    [% FOREACH release IN releases %]
    [% link = c.uri_for('/release' project.name release.name) %]
    <tr class="clickable" onclick="window.location = '[% link %]'">
    <td><a href="[% link %]"><tt>[% release.name %]</tt></a></td>
    <td>[% INCLUDE renderDateTime timestamp = release.timestamp %]</td>
    </tr>
    [% END %]
    </tbody>
    </table>
    [% END %]
    [% IF c.user_exists %]
    <p><a class="btn" href="[% c.uri_for('/project' project.name 'create-release') %]">
    <i class="icon-plus"></i> Create a release
    </a></p>
    [% END %]
    </div>
  • edit in src/root/topbar.tt at line 51
    [4.2710][4.2710:2838]()
    [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('releases'), [project.name]) title = "Releases" %]