* Editing releases.

[?]
Oct 23, 2009, 12:42 PM
AS2OXLRMJGRI64FIEM4T7EV24NZYIMPPR2EQN3SR5A2JBHVXNYXAC

Dependencies

  • [2] KXGOUX7P * Creating releases.
  • [3] 2BUX775I * More release -> view.
  • [4] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [5] CS7T2XFI
  • [6] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [7] RBNQKATL * Adding persistant releases. A release is a named set of builds.
  • [8] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [9] A52HEFHQ * Allow builds to be restarted (if they failed with a transient error,
  • [10] LBNVQXUB * Build the /build stuff in a separate controller.
  • [*] D5QIOJGP * Move everything up one directory.

Change contents

  • replacement in src/lib/Hydra/Controller/Release.pm at line 12
    [2.1251][2.1251:1324]()
    #$c->stash->{project} = $project;
    #$c->stash->{release} = $view;
    [2.1251]
    [2.1324]
    $c->stash->{project} = $c->model('DB::Projects')->find($projectName)
    or notFound($c, "Project $projectName doesn't exist.");
    $c->stash->{release} = $c->stash->{project}->releases->find({name => $releaseName})
    or notFound($c, "Release $releaseName doesn't exist.");
  • replacement in src/lib/Hydra/Controller/Release.pm at line 32
    [2.1613][2.1613:1668]()
    unless $releaseName =~ /^[[:alpha:]][\w\-]*$/;
    [2.1613]
    [2.1668]
    unless $releaseName =~ /^$relNameRE$/;
  • edit in src/lib/Hydra/Controller/Release.pm at line 38
    [2.1803]
    [2.1803]
    }
    sub edit : Chained('release') PathPart('edit') Args(0) {
    my ($self, $c) = @_;
    requireProjectOwner($c, $c->stash->{project});
    $c->stash->{template} = 'edit-release.tt';
  • edit in src/lib/Hydra/Controller/Release.pm at line 48
    [2.1807]
    [2.1807]
    sub submit : Chained('release') PathPart('submit') Args(0) {
    my ($self, $c) = @_;
    requireProjectOwner($c, $c->stash->{project});
    txn_do($c->model('DB')->schema, sub {
    updateRelease($c, $c->stash->{release});
    });
    $c->res->redirect($c->uri_for($self->action_for("view"),
    [$c->stash->{project}->name, $c->stash->{release}->name]));
    }
    sub delete : Chained('release') PathPart('delete') Args(0) {
    my ($self, $c) = @_;
    requireProjectOwner($c, $c->stash->{project});
    txn_do($c->model('DB')->schema, sub {
    $c->stash->{release}->delete;
    });
    $c->res->redirect($c->uri_for($c->controller('Project')->action_for('releases'),
    [$c->stash->{project}->name]));
    }
  • replacement in src/lib/Hydra/Controller/View.pm at line 132
    [3.1989][3.1989:2102]()
    $c->res->redirect($c->uri_for($c->controller('Project')->action_for('view'), [$c->stash->{project}->name]));
    [3.1989]
    [3.2102]
    $c->res->redirect($c->uri_for($c->controller('Project')->action_for('view'),
    [$c->stash->{project}->name]));
  • replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 14
    [3.1125][3.153:180](),[3.9780][3.153:180](),[3.153][3.153:180]()
    $pathCompRE $relPathRE
    [3.9780]
    [3.180]
    $pathCompRE $relPathRE $relNameRE
  • edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 136
    [3.367]
    [3.367]
    Readonly::Scalar our $relNameRE =>"(?:[A-Za-z0-9-][A-Za-z0-9-\.]*)";
  • replacement in src/root/edit-release.tt at line 5
    [2.4600][2.4600:4621]()
    <h1>New Release</h1>
    [2.4600]
    [2.4621]
    <h1>[% IF create %]New Release[% ELSE %]Release <tt>[% release.name %]</tt>[% END %]</h1>
  • replacement in src/root/edit-release.tt at line 7
    [2.4622][2.4622:4823]()
    <form action="[% IF create %][% c.uri_for('/project' project.name 'create-release/submit') %][% ELSE %][% c.uri_for('/project' project.name 'release' release.name 'submit') %][% END %]" method="post">
    [2.4622]
    [2.4823]
    <form action="[% IF create %][% c.uri_for('/project' project.name 'create-release/submit') %][% ELSE %][% c.uri_for('/release' project.name release.name 'submit') %][% END %]" method="post">
  • edit in src/root/edit-release.tt at line 23
    [2.5335]
    [2.5335]
    [% IF !create %]
    <form action="[% c.uri_for('/release' project.name release.name 'delete') %]" method="post">
    <p><button id="delete-release" type="submit"><img src="/static/images/failure.gif" />Delete this release</button></p>
    </form>
  • edit in src/root/edit-release.tt at line 30
    [2.5336]
    [2.5336]
    <script type="text/javascript">
    $("#delete-release").click(function() {
    return confirm("Are you sure you want to delete this release?");
    });
    </script>
    [% END %]
  • file addition: release.tt (----------)
    [12.1486]
    [% WRAPPER layout.tt title="Release ‘$release.name’" %]
    [% PROCESS common.tt %]
    [% USE HTML %]
    <h1>Release <tt>[% release.name %]</tt> <a
    class="smallLink" href="[% c.uri_for('/release' project.name release.name "edit") %]">[Edit]</a></h1>
    <p><em>Released on [% INCLUDE renderDateTime timestamp = release.timestamp %].</em></p>
    [% END %]
  • replacement in src/root/releases.tt at line 21
    [3.4066][3.4066:4107]()
    <li><tt>[% release.name %]</tt></li>
    [3.4066]
    [3.4107]
    <li><a href="[% c.uri_for('/release' project.name release.name) %]"><tt>[% release.name %]</tt></a></li>