Make sign in a modal dialog box rather than a separate page
[?]
Nov 5, 2013, 12:13 PM
WDKFN4B2M7BUF4S7X6YA5AKHOJKHLG65LWNQVOSIBTKFEZELBMKACDependencies
- [2]
D44B24QCStore the account type ("hydra" or "persona") explicitly in the database - [3]
OR5SJ42YShow releases in a tab on the project page - [4]
YTSIRIMK* Separate job status and all builds pages. - [5]
LFVXESGIRemove already disabled jobstatus code - [6]
NEQ4BISOAdd bootstrap.zip - [7]
VH5ZABDRAdd a page to show the latest evaluations for the entire server - [8]
QL55ECJ6- adapted ui for hydra, more in line with nixos.org website - [9]
2G63HKCHFix some wellformedness issues - [10]
2BUX775I* More release -> view. - [11]
LZVO64YGMerge in the first bits of the API work - [12]
WRIU3S5E* UI for cloning builds (not functional yet). - [13]
KSBB33REAdd a dashboard - [14]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [15]
EFWN7JBV* Added a status page that shows all the currently executing build steps. - [16]
75XUS62Y* Added a page to quickly see all failed builds and failed evaluations - [17]
KXGOUX7P* Creating releases. - [18]
5DSDXORDhydra: missing plain.tt - [19]
VG4QG336Remove tablesorter - [20]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [21]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [22]
R2PON6R7Allow non-admin users to see the machine status page - [23]
RU7AQO7U* Role-based access control. Only admins can create projects. Only - [24]
SMTMFEKEhydra: add missing templates - [25]
TRDGNILTRemove unused file - [26]
FV2M6MOThydra: use autoconf/-make - [27]
36M6DGITShow the runtime/build dependencies in the build page - [28]
7KF7YZDRDisable account creation for now - [29]
D7X6XTKQIntegrate the "Job status" and "All jobs" tabs - [30]
JARRBLZDBootstrapify the Hydra forms (except the project and jobset edit pages) - [31]
64IV56HIReplace bootstrap tarball - [32]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [33]
ZFEN2MAOSimplify jobset cloning - [34]
D5QIOJGP* Move everything up one directory. - [35]
36ZTCZ4FAdd basic Persona support - [36]
OX6NYJDVSplit viewing and editing a jobset - [37]
XJRJ4J7MAdd user registration - [38]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [39]
6FRLEP4Pfirst try for timeline of last 24 hours in hydra - [40]
AK2UZDS2Jobset page: Add a new tab to show job status in a matrix - [41]
G2WXEQHERemove the Errors page - [42]
US27ZTX5* HydraFrontend -> Hydra. - [43]
RSEGBU6CHydra/20: Jobset clone feature - [44]
UICHT2PSAdd a search feature - [45]
VCG6KNUXRemove the "clone build" feature - [46]
3JBUMW3Eforgot to commit a file - [47]
PZL3SZM3Give every page a consistent title - [48]
PFB5ZUQWFix legacy login - [49]
BHZXGT2H* Channels: provide an index page that lists all the packages in the - [50]
VVRM3EGCLink to both the Persona and legacy sign in - [51]
LC64D4PUCorrectly redirect to the referring page when logging in - [52]
U4TD3AIQAdd support for viewing jobset evaluations - [53]
7ZQAHJQMFix indentation - [54]
JOVVHIJXRemove all entry points to modify machines - [55]
DV43UILUDon't float the search bar to the right in collapsed mode - [56]
QTC3SYBMJobset page: Load the jobs and status tabs on demand - [57]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [58]
JFZNAYJX* Showing releases. - [59]
AS2OXLRM* Editing releases. - [60]
LSZLZHJYAllow users to edit their own settings - [61]
XDDCO6CH* hydra: add dependency list with links to logfiles - [62]
KKJNJHO5Update bootstrap to 2.0.3 - [63]
J3RYO2CURemove the jobs status page - [64]
G6HJY2V4 - [65]
JY7BXXOPSplit viewing and editing a project - [66]
SZYDW2DGhydra: added some user admin - [67]
JLDUSNUO* Unify rendering of finished and scheduled builds. - [68]
HZWUT4YNAllow users to reproduce builds on their own systems - [69]
TP3PFR5K - [70]
U72VNKRURemove unused file - [*]
J5UVLXOK* Start of a basic Catalyst web interface.
Change contents
- edit in src/lib/Hydra/Controller/User.pm at line 20[3.23695]→[3.23695:23712](∅→∅),[3.23712]→[3.497:523](∅→∅),[3.497]→[3.497:523](∅→∅),[3.523]→[3.23713:23878](∅→∅),[3.23878]→[3.639:640](∅→∅),[3.639]→[3.639:640](∅→∅),[3.640]→[3.23879:23921](∅→∅)
sub login_GET {my ($self, $c) = @_;my $baseurl = $c->uri_for('/');my $referer = $c->request->referer;$c->session->{referer} = $referer if defined $referer && $referer =~ m/^($baseurl)/;$c->stash->{template} = 'login.tt';} - replacement in src/lib/Hydra/Controller/User.pm at line 24
my $username;my $password;my $username = $c->stash->{params}->{username} // "";my $password = $c->stash->{params}->{password} // ""; - replacement in src/lib/Hydra/Controller/User.pm at line 27
$username = $c->stash->{params}->{username};$password = $c->stash->{params}->{password};error($c, "You must specify a user name.") if $username eq "";error($c, "You must specify a password.") if $password eq ""; - replacement in src/lib/Hydra/Controller/User.pm at line 30[3.878]→[3.878:912](∅→∅),[3.912]→[3.24101:24557](∅→∅),[3.24557]→[3.1203:1209](∅→∅),[3.1203]→[3.1203:1209](∅→∅)
if ($username && $password) {if ($c->authenticate({username => $username, password => $password})) {if ($c->request->looks_like_browser) {backToReferer($c);} else {currentUser_GET($self, $c);}} else {$self->status_forbidden($c, message => "Bad username or password.");if ($c->request->looks_like_browser) {login_GET($self, $c);}}}accessDenied($c, "Bad username or password.")if !$c->authenticate({username => $username, password => $password});$self->status_ok($c, entity => { }); - file deletion: login.tt login.tt[3.1486]→[3.1846:1878](∅→∅),[3.1878]→[3.4453:4453](∅→∅),[3.857]→[3.5222:5254](∅→∅),[3.5254]→[3.4453:4453](∅→∅)
[% WRAPPER layout.tt title="Sign in" %][% PROCESS common.tt %][% IF c.user_exists %]<p class="alert alert-info">You are already signed in as <tt>[% HTML.escape(c.user.username) %]</tt>.</p>[% ELSE %]<form class="form-horizontal" method="post" action="[% c.uri_for('/login') %]"><fieldset><div class="control-group"><label class="control-label">User name</label><div class="controls"><input type="text" class="span3" name="username" value=""/></div></div><div class="control-group"><label class="control-label">Password</label><div class="controls"><input type="password" class="span3" name="password" value=""/></div></div><div class="form-actions"><input type="submit" name="login" value="Sign in" class="btn btn-primary" /></div></fieldset></form>[% END %][% END %] - edit in src/root/layout.tt at line 149[3.1518][72.11729]
[% IF !c.user_exists %]<div id="hydra-signin" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true"><form class="form-horizontal"><div class="modal-body"><div class="control-group"><label class="control-label">User name</label><div class="controls"><input type="text" class="span3" name="username" value=""/></div></div><div class="control-group"><label class="control-label">Password</label><div class="controls"><input type="password" class="span3" name="password" value=""/></div></div></div><div class="modal-footer"><button id="do-signin" class="btn btn-primary">Sign in</button><button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button></div></form></div><script>$("#do-signin").click(function() {requestJSON({url: "[% c.uri_for('/login') %]",data: $(this).parents("form").serialize(),type: 'POST',success: function(data) {window.location.reload();}});return false;});</script>[% END %] - replacement in src/root/topbar.tt at line 131
<a href="[% c.uri_for('/login') %]">Sign in with a Hydra account</a><a href="#hydra-signin" data-toggle="modal">Sign in with a Hydra account</a>