[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