Merge branch 'master' into persona

[?]
Nov 5, 2013, 10:11 AM
GTXYNFUKUWXM5KO2FOJ5RHAMT7GMHABIVMERLA36COZ4ZZ4S2NKQC

Dependencies

  • [2] 2CZSW5S5 Don't redirect to /login if authentication is required
  • [3] NZQYBRU5 Use the alert class for flash messages
  • [4] CGVKJQPI Show a user's roles in the preferences page
  • [5] UM73XPLK Fix some XML wellformedness issues
  • [6] Z6FOXDEC Use more flash messages
  • [7] LYVUXIGT Clean up the authorization code a bit
  • [8] KSBB33RE Add a dashboard
  • [9] HRAFVVOE make logo configurable via HYDRA_LOGO env var
  • [10] QTFVCDIF added hide feature for project/jobset
  • [11] 3PNG7NIB Remove trailing whitespace
  • [12] XJRJ4J7M Add user registration
  • [13] 36ZTCZ4F Add basic Persona support
  • [14] HFUSVMYV Set the character set
  • [15] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [16] 7ZQAHJQM Fix indentation
  • [17] 5NO7NCKT * Refactoring.
  • [18] LSZLZHJY Allow users to edit their own settings
  • [19] J5UVLXOK * Start of a basic Catalyst web interface.
  • [20] XTKCALUA Make "Add to release" a modal dialog
  • [21] S5GCSCNS Update bootstrap to 2.3.1
  • [22] NABL63FI * hydra: project members can do stuff that the owner can do
  • [23] QL55ECJ6 - adapted ui for hydra, more in line with nixos.org website
  • [24] JIJDYWPY Remove the Build menu from the top bar
  • [25] 4NTIBJ74 Implement DELETE for jobsets and use it in the web interface
  • [26] OEPUOUNB Using twitter bootstrap for more consistent looks for Hydra
  • [27] PZL3SZM3 Give every page a consistent title
  • [28] 2G63HKCH Fix some wellformedness issues
  • [29] A52HEFHQ * Allow builds to be restarted (if they failed with a transient error,
  • [30] OIBSCXGI Use a popover to show how to use the build reproduction script
  • [*] LBNVQXUB * Build the /build stuff in a separate controller.
  • [*] IK53RV4V
  • [*] SZYDW2DG hydra: added some user admin

Change contents

  • edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 103
    [9.4333][7.359:380](),[9.4333][7.359:380]()
    error($c, $msg);
  • resurrect zombie in src/lib/Hydra/Helper/CatalystUtils.pm at line 103
    [7.380][7.380:427](),[7.380][7.380:427]()
    }
    sub accessDenied {
    my ($c, $msg) = @_;
  • resolve order conflict in src/lib/Hydra/Helper/CatalystUtils.pm at line 103
    [2.603]
    [7.380]
  • replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 108
    [7.427][7.427:458](),[7.427][7.427:458]()
    $c->response->status(403);
    [7.427]
    [9.4354]
    error($c, $msg, 403);
  • edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 123
    [9.4373][2.604:662]()
    error($c, "This page requires you to sign in.", 403);
  • resurrect zombie in src/lib/Hydra/Helper/CatalystUtils.pm at line 123
    [9.1329][7.477:557](),[9.1329][7.477:557]()
    }
    sub requireUser {
    my ($c) = @_;
    forceLogin($c) if !$c->user_exists;
  • edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 123
    [9.4373]
    [7.477]
    accessDenied($c, "This page requires you to sign in.");
  • edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 145
    [9.1][2.663:756](),[9.1][2.663:756]()
    error($c, "Only the project members or administrators can perform this operation.", 403)
  • edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 159
    [9.11269][2.757:827](),[9.11269][2.757:827]()
    error($c, "Only administrators can perform this operation.", 403)
  • replacement in src/root/common.tt at line 455
    [9.2374][9.472:540]()
    <a href="[% uri %]" [% IF modal %]data-toggle="modal"[% END %]>
    [9.2374]
    [9.540]
    <a [% HTML.attributes(href => uri) %] [%+ IF modal %]data-toggle="modal"[% END %]>
  • edit in src/root/layout.tt at line 13
    [9.2897][9.0:1](),[9.1][5.618:692]()
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • resolve order conflict in src/root/layout.tt at line 13
    [9.1179]
    [9.618]
  • replacement in src/root/layout.tt at line 69
    [9.1][3.0:152]()
    [% IF !hideHeader %]
    <div class="page-header">
    <h1><small>[% HTML.escape(title) %]</small></h1>
    </div>
    [% ELSE %]
    [9.1]
    [3.152]
    [% IF flashMsg %]
  • edit in src/root/layout.tt at line 71
    [3.167][3.167:184](),[3.184][9.1:25](),[9.1][9.1:25](),[9.25][3.185:244]()
    [% END %]
    [% IF flashMsg %]
    <div class="alert alert-info">[% flashMsg %]</div>
  • resurrect zombie in src/root/layout.tt at line 71
    [9.40][6.341:400](),[9.40][6.341:400]()
    <div class="alert alert-info">[% flashMsg %]</div>
  • edit in src/root/layout.tt at line 75
    [9.4206]
    [3.245]
    <br />
  • edit in src/root/layout.tt at line 77
    [9.4221][6.401:465](),[9.4221][6.401:465]()
    <div class="alert alert-success">[% successMsg %]</div>
  • resolve order conflict in src/root/layout.tt at line 77
    [3.309]
    [9.4283]
  • edit in src/root/layout.tt at line 80
    [9.138][3.310:377]()
    <div class="alert alert-error">Error: [% errorMsg %]</div>
  • resurrect zombie in src/root/layout.tt at line 80
    [9.153][6.466:535](),[9.153][6.466:535](),[9.3204][8.7015:7131](),[9.3204][8.7015:7131]()
    <div class="alert alert-warning">Error: [% errorMsg %]</div>
    <h1><small>[% IF c.user_exists && starUri; INCLUDE makeStar; " "; END; HTML.escape(title) %]</small></h1>
  • edit in src/root/layout.tt at line 80
    [9.138]
    [6.466]
    <br />
  • edit in src/root/layout.tt at line 82
    [6.535]
    [8.7015]
    [% END %]
    [% IF !hideHeader %]
    <div class="page-header">
  • edit in src/root/layout.tt at line 87
    [8.7131]
    [9.3310]
    </div>
    [% ELSE %]
    <br />
  • edit in src/root/topbar.tt at line 1
    [9.448][9.2373:2431](),[9.448][9.2373:2431]()
    <a [% HTML.attributes(href => uri) %]>[% title %]</a>
  • replacement in src/root/user.tt at line 76
    [9.6586][4.22:136](),[9.6586][9.5074:5140]()
    <select multiple name="roles" class="span3" [% IF !c.check_user_roles('admin') %]disabled="1"[% END %]>
    <select multiple="multiple" name="roles" class="span3">
    [9.6586]
    [9.6641]
    <select multiple="multiple" name="roles" class="span3" [% IF !c.check_user_roles('admin') %]disabled="1"[% END %]>