[mb-commits] r9874 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz lib/MusicBrainz/Server lib/MusicBrainz/Server/Controller root root/forms root/forms/user root/static/styles/extra root/user
root at musicbrainz.org
root at musicbrainz.org
Fri Jun 20 16:19:17 UTC 2008
Author: acid2
Date: 2008-06-20 16:19:17 +0000 (Fri, 20 Jun 2008)
New Revision: 9874
Added:
mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Filters.pm
mb_server/branches/TemplateToolkit/root/forms/
mb_server/branches/TemplateToolkit/root/forms/user/
mb_server/branches/TemplateToolkit/root/forms/user/login.fb
mb_server/branches/TemplateToolkit/root/forms/user/register.fb
mb_server/branches/TemplateToolkit/root/user/register.tt
Modified:
mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm
mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
mb_server/branches/TemplateToolkit/root/static/styles/extra/user.css
mb_server/branches/TemplateToolkit/root/user/login.tt
mb_server/branches/TemplateToolkit/root/user/profile.tt
Log:
Introduced Form Builder forms
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm 2008-06-15 20:00:47 UTC (rev 9873)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm 2008-06-20 16:19:17 UTC (rev 9874)
@@ -86,7 +86,7 @@
my ($self, $c) = @_;
$c->stash->{server_details}->{version} = &DBDefs::VERSION;
- $c->stash->{logged_in} = defined $c->session->{user};
+ $c->stash->{logged_in} = defined $c->session->{user}{name};
$c->stash->{user}->{name} = $c->session->{user}->{name} if $c->stash->{logged_in};
}
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm 2008-06-15 20:00:47 UTC (rev 9873)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm 2008-06-20 16:19:17 UTC (rev 9874)
@@ -19,7 +19,7 @@
=cut
sub index : Private {
- my ( $self, $c ) = @_;
+ my ($self, $c) = @_;
if(defined $c->session->{user}) {
# If we are logged in, redirect to profile page
@@ -34,38 +34,61 @@
}
}
-sub login : Local {
+=head2 login
+Handle logging in users
+=cut
+
+sub login : Local Form {
my ($self, $c) = @_;
- $c->stash->{template} = 'user/login.tt';
+ if($c->form->submitted && $c->form->validate)
+ {
+ require MusicBrainz;
+ require UserStuff;
+
+ my ($self, $c) = @_;
+
+ my $username = $c->request->params->{username};
+ my $password = $c->request->params->{password};
+
+ my $mb = new MusicBrainz;
+ $mb->Login();
+
+ my $us = UserStuff->new($mb->{DBH});
+ my $user = $us->Login($username, $password);
+ if($user)
+ {
+ $c->session->{user} = {
+ name => $user->GetName
+ };
+ $c->response->redirect($c->uri_for('/user/profile'));
+ }
+ else
+ {
+ $c->error("FAIL");
+ }
+ }
+ else
+ {
+ $c->stash->{template} = 'user/login.tt';
+ }
}
-=head2 processLogin
-Process login details from a POST request (from /user/login/).
+=head2 register
+Handle user registration
=cut
-sub processLogin : Path("process-login") {
- require MusicBrainz;
- require UserStuff;
-
+sub register : Local Form
+{
my ($self, $c) = @_;
- my $username = $c->request->params->{username};
- my $password = $c->request->params->{password};
-
- my $mb = new MusicBrainz;
- $mb->Login();
-
- my $us = UserStuff->new($mb->{DBH});
- my $user = $us->Login($username, $password);
- if($user) {
- $c->session->{user} = {
- name => $user->GetName
- };
- $c->response->redirect($c->uri_for('/user/profile'));
- } else {
- $c->error("FAIL");
+ if($c->form->submitted && $c->form->validate)
+ {
}
+ else
+ {
+ $c->stash->{template} = 'user/register.tt';
+ }
}
=head2 profile
@@ -73,9 +96,44 @@
=cut
sub profile : Local {
- my ($self, $c) = @_;
+ require UserStuff;
+ require MusicBrainz;
+ require UserPreference;
+
+ my ($self, $c, $userName) = @_;
+ my $userId = $userName or $c->session->{user}->{name};
+
+ my $mb = new MusicBrainz;
+ $mb->Login();
+
+ my $us = UserStuff->new($mb->{DBH});
+ my $user = $us->newFromName($userId);
+
+ $c->stash->{viewing_own_profile} = $c->session->{user}->{name} eq $userId;
+
+ $c->stash->{user} = {
+ name => $userId,
+ type => $user->GetUserType,
+ email => {
+ address => $user->GetEmail,
+ verified_at => $user->GetEmailConfirmDate,
+ },
+ homepage => $user->GetWebURL,
+ biography => $user->GetBio,
+ public_subscriptions => UserPreference::get_for_user("subscriptions_public", $user),
+ subscriber_count => scalar $user->GetSubscribers,
+
+ member_since => $user->GetMemberSince,
+ accepted_non_autoedits => $user->GetModsAccepted,
+ accepted_autoedits => $user->GetAutoModsAccepted,
+ edits_voted_down => $user->GetModsRejected,
+ other_failed_edits => $user->GetModsFailed,
+ };
+
$c->stash->{template} = 'user/profile.tt';
+
+ $c->stash->{filter} = sub { \&date };
}
=head2 logout
Added: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Filters.pm
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm 2008-06-15 20:00:47 UTC (rev 9873)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm 2008-06-20 16:19:17 UTC (rev 9874)
@@ -26,8 +26,17 @@
# with a external configuration file acting as an override for
# local deployment.
-__PACKAGE__->config( name => 'MusicBrainz::Server' );
+require MusicBrainz::Server::Filters;
+__PACKAGE__->config(
+ name => 'MusicBrainz::Server',
+ "View::Default" => {
+ FILTERS => {
+ 'mb_date' => \&MusicBrainz::Server::Filters::date,
+ },
+ },
+);
+
# Start the application
__PACKAGE__->setup(qw/
-Debug
@@ -38,9 +47,12 @@
Session
Session::State::Cookie
-Session::Store::FastMmap/);
+Session::Store::FastMmap
+FormBuilder
+/);
+
=head1 NAME
musicbrainz - Catalyst based application
Added: mb_server/branches/TemplateToolkit/root/forms/user/login.fb
Added: mb_server/branches/TemplateToolkit/root/forms/user/register.fb
Modified: mb_server/branches/TemplateToolkit/root/static/styles/extra/user.css
===================================================================
--- mb_server/branches/TemplateToolkit/root/static/styles/extra/user.css 2008-06-15 20:00:47 UTC (rev 9873)
+++ mb_server/branches/TemplateToolkit/root/static/styles/extra/user.css 2008-06-20 16:19:17 UTC (rev 9874)
@@ -4,11 +4,11 @@
float: left;
clear: both;
font-weight: bold;
- width: 100pt;
+ width: 150pt;
margin-right: 10pt;
text-align: right;
}
-dl dd { margin-left: 110pt; }
+dl dd { margin-left: 160pt; }
dl, dd {
line-height: 18pt;
}
Modified: mb_server/branches/TemplateToolkit/root/user/login.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/user/login.tt 2008-06-15 20:00:47 UTC (rev 9873)
+++ mb_server/branches/TemplateToolkit/root/user/login.tt 2008-06-20 16:19:17 UTC (rev 9874)
@@ -3,21 +3,7 @@
[% WRAPPER "components/box.tt" header="Login" %]
<p>Please login using the form below. Note that the password field <em>is</em> case sensitive.</p>
- <form action="/user/process-login" method="post">
- <p>
- <label for="id_username">Username:</label>
- <input id="id_username" name="username" />
- </p>
-
- <p>
- <label for="id_password">Password:</label>
- <input id="id_password" name="password" type="password" />
- </p>
-
- <p class="no-label">
- <input type="submit" value="Login" />
- </p>
- </form>
+ [% form.render %]
[% END %]
[% END %]
Modified: mb_server/branches/TemplateToolkit/root/user/profile.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/user/profile.tt 2008-06-15 20:00:47 UTC (rev 9873)
+++ mb_server/branches/TemplateToolkit/root/user/profile.tt 2008-06-20 16:19:17 UTC (rev 9874)
@@ -1,5 +1,7 @@
+[% USE date %]
[% META title = "User Profile" %]
[% META extra_css = "user.css" %]
+
[% WRAPPER "layout.tt" %]
[% BLOCK property %]
@@ -32,22 +34,29 @@
WRAPPER property name = "Review" %]
[% INCLUDE "components/piped-list.tt" list = edit_account_options
- WRAPPER property name = "Edit My Account" %]
+ WRAPPER property name = "Edit My Account" IF viewing_own_profile%]
[% user.name WRAPPER property name = "Name" %]
[% user.type or "Unknown" WRAPPER property name = "User Type" %]
[% WRAPPER property name = "E-Mail" %]
- [% user.email or "[Hidden]" %]
- (verified [% user.email_verification_date %])
+ [% viewing_own_profile ? user.email.address or "[None]" : "[Hidden]" %]
+
+ [% IF user.email.verified_at %]
+ (verified [% user.email.verified_at %])
+ [% ELSE %]
+ [% IF viewing_own_profile %](<em>unverified!</em>)[% END %]
+ [% END %]
[% END %]
[% user.homepage or "[None]" WRAPPER property name = "Homepage" %]
[% user.biography or "[None]" WRAPPER property name = "Biography" %]
- [% PROCESS property name = "Subscriptions" %]
+ [% WRAPPER property name = "Subscriptions" %]
+ [% viewing_own_profile ? "Your" : user.name %] subscriptions are [% user.public_subscriptions ? "public" : "private" %]
+ [% END %]
[% WRAPPER property name = "Subscribers" %]
[% user.subscriber_count %] (<a href="/bad_link">view all</a>)
@@ -56,11 +65,11 @@
<h3>User Statistics</h3>
<dl>
- [% PROCESS property name = "Member Since" %]
- [% PROCESS property name = "Accepted Non-autoedits" %]
- [% PROCESS property name = "Autoedits" %]
- [% PROCESS property name = "Edits Voted Down" %]
- [% PROCESS property name = "Other Failed Edits" %]
+ [% user.member_since | mb_date WRAPPER property name = "Member Since" %]
+ [% user.accepted_non_autoedits WRAPPER property name = "Accepted Non-autoedits" %]
+ [% user.accepted_autoedits WRAPPER property name = "Autoedits" %]
+ [% user.edits_voted_down WRAPPER property name = "Edits Voted Down" %]
+ [% user.other_failed_edits WRAPPER property name = "Other Failed Edits" %]
</dl>
[% END %]
Added: mb_server/branches/TemplateToolkit/root/user/register.tt
More information about the MusicBrainz-commits
mailing list