r10414 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Form lib/MusicBrainz/Server/Form/Artist lib/MusicBrainz/Server/Form/Release lib/MusicBrainz/Server/Form/Track root root/release root/releases root/track root/user

View: New views
1 Messages — Rating Filter:   Alert me  

r10414 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Form lib/MusicBrainz/Server/Form/Artist lib/MusicBrainz/Server/Form/Release lib/MusicBrainz/Server/Form/Track root root/release root/releases root/track root/user

by root-97 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Author: acid2
Date: 2008-10-02 11:38:19 +0000 (Thu, 02 Oct 2008)
New Revision: 10414

Added:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Release/
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Release/Move.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Release/Title.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Track/
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Track/Base.pm
   mb_server/branches/TemplateToolkit/root/release/
   mb_server/branches/TemplateToolkit/root/release/box-header.tt
   mb_server/branches/TemplateToolkit/root/release/box-summary.tt
   mb_server/branches/TemplateToolkit/root/release/change_quality.tt
   mb_server/branches/TemplateToolkit/root/release/confirm_move.tt
   mb_server/branches/TemplateToolkit/root/release/details.tt
   mb_server/branches/TemplateToolkit/root/release/edit-links.tt
   mb_server/branches/TemplateToolkit/root/release/edit_title.tt
   mb_server/branches/TemplateToolkit/root/release/full.tt
   mb_server/branches/TemplateToolkit/root/release/header.tt
   mb_server/branches/TemplateToolkit/root/release/info-links.tt
   mb_server/branches/TemplateToolkit/root/release/layout.tt
   mb_server/branches/TemplateToolkit/root/release/move.tt
   mb_server/branches/TemplateToolkit/root/release/perma.tt
   mb_server/branches/TemplateToolkit/root/release/relations.tt
   mb_server/branches/TemplateToolkit/root/release/release-box.tt
   mb_server/branches/TemplateToolkit/root/release/release.tt
   mb_server/branches/TemplateToolkit/root/release/show.tt
   mb_server/branches/TemplateToolkit/root/release/tags.tt
   mb_server/branches/TemplateToolkit/root/track/details.tt
   mb_server/branches/TemplateToolkit/root/user/change_password.tt
Removed:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/MoveRelease.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/ReleaseTitle.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Track.pm
   mb_server/branches/TemplateToolkit/root/releases/box-header.tt
   mb_server/branches/TemplateToolkit/root/releases/box-summary.tt
   mb_server/branches/TemplateToolkit/root/releases/confirm_move.tt
   mb_server/branches/TemplateToolkit/root/releases/details.tt
   mb_server/branches/TemplateToolkit/root/releases/edit-links.tt
   mb_server/branches/TemplateToolkit/root/releases/edit-title.tt
   mb_server/branches/TemplateToolkit/root/releases/full.tt
   mb_server/branches/TemplateToolkit/root/releases/header.tt
   mb_server/branches/TemplateToolkit/root/releases/info-links.tt
   mb_server/branches/TemplateToolkit/root/releases/layout.tt
   mb_server/branches/TemplateToolkit/root/releases/move.tt
   mb_server/branches/TemplateToolkit/root/releases/perma.tt
   mb_server/branches/TemplateToolkit/root/releases/quality.tt
   mb_server/branches/TemplateToolkit/root/releases/relations.tt
   mb_server/branches/TemplateToolkit/root/releases/release-box.tt
   mb_server/branches/TemplateToolkit/root/releases/release.tt
   mb_server/branches/TemplateToolkit/root/releases/show.tt
   mb_server/branches/TemplateToolkit/root/releases/tags.tt
   mb_server/branches/TemplateToolkit/root/track/info.tt
   mb_server/branches/TemplateToolkit/root/user/changePassword.tt
Modified:
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Search.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Tags.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Track.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Url.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
   mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Artist/DataQuality.pm
Log:
Moved all forms to use the new ->form pattern, also removed any unnecessary ->stash->{template} assignments

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Label.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -36,11 +36,7 @@
 
 =cut
 
-sub perma : Chained('label')
-{
-    my ($self, $c) = @_;
-    $c->stash->{template} = 'label/perma.tt';
-}
+sub perma : Chained('label') { }
 
 =head2 aliases
 
@@ -54,7 +50,6 @@
     my $label = $c->stash->{label};
 
     $c->stash->{aliases}  = $c->model('Alias')->load_for_entity($label);
-    $c->stash->{template} = 'label/aliases.tt';
 }
 
 =head2 tags
@@ -69,7 +64,6 @@
     my $label = $c->stash->{label};
 
     $c->stash->{tagcloud} = $c->model('Tag')->generate_tag_cloud($label);
-    $c->stash->{template} = 'label/tags.tt';
 }
 
 =head2 google
@@ -98,8 +92,6 @@
     my $label = $c->stash->{_label};
   
     $c->stash->{relations} = load_relations($label);
-
-    $c->stash->{template}  = 'label/relations.tt';
 }
 
 =head2 show
@@ -112,14 +104,12 @@
 sub show : PathPart('') Chained('label')
 {
     my ($self, $c) = @_;
-    my $label = $c->stash->{label};
 
+    my $label    = $c->stash->{label};
     my $releases = $c->model('Release')->load_for_label($label);
-    $c->stash->{releases}  = $releases;
 
+    $c->stash->{releases}  = $releases;
     $c->stash->{relations} = $c->model('Relation')->load_relations($label);
-
-    $c->stash->{template} = 'label/show.tt';
 }
 
 =head2 details
@@ -128,11 +118,7 @@
 
 =cut
 
-sub details : Chained('label')
-{
-    my ($self, $c) = @_;
-    $c->stash->{template} = 'label/details.tt';
-}
+sub details : Chained('label') { }
 
 =head2 WRITE METHODS
 
@@ -144,19 +130,14 @@
 
     $c->forward('/user/login');
 
-    use MusicBrainz::Server::Form::Search::Query;
-    my $form = new MusicBrainz::Server::Form::Search::Query;
+    my $form = $c->form(undef, 'Search::Query');
 
-    if ($c->form_posted && $form->validate($c->req->params))
-    {
-        my $label = $c->stash->{label};
+    return unless $c->form_posted && $form->validate($c->req->params);
+    
+    my $label = $c->stash->{label};
 
-        my $labels = $c->model('Label')->direct_search($form->value('query'));
-        $c->stash->{labels} = $labels;
-    }
-
-    $c->stash->{form    } = $form;
-    $c->stash->{template} = 'label/merge_search.tt';
+    my $labels = $c->model('Label')->direct_search($form->value('query'));
+    $c->stash->{labels} = $labels;
 }
 
 sub merge_into : Chained('label') PathPart('into') Args(1)
@@ -165,41 +146,23 @@
 
     $c->forward('/user/login');
 
-    use MusicBrainz::Server::Form;
-    my $form = new MusicBrainz::Server::Form(profile => {
-            required => { edit_note => 'TextArea' },
-        });
-
+    my $label     = $c->stash->{label};
     my $new_label = $c->model('Label')->load($new_mbid);
     $c->stash->{new_label} = $new_label;
 
-    if ($c->form_posted)
-    {
-        require Moderation;
-        my @mods = Moderation->InsertModeration(
-            DBH   => $c->mb->{DBH},
-            uid   => $c->user->id,
-            privs => $c->user->privs,
-            type  => ModDefs::MOD_MERGE_LABEL,
+    my $form = $c->form($label, 'Label::Merge');
+    $form->context($c);
 
-            source => $c->stash->{label},
-            target => $new_label,
-        );
+    $c->stash->{template} = 'label/merge.tt';
 
-        if (@mods)
-        {
-            $mods[0]->InsertNote($c->user->id, $form->value('edit_note'))
-                if $form->value('edit_note') =~ /\S/;
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-            $c->flash->{ok} = "Thanks, your label edit has been entered " .
-                              "into the moderation queue";
+    my @mods = $form->perform_merge($new_label);
 
-            $c->response->redirect($c->entity_url($new_label, 'show'));
-            $c->detach;
-        }
-    }
+    $c->flash->{ok} = "Thanks, your label edit has been entered " .
+                      "into the moderation queue";
 
-    $c->stash->{template} = 'label/merge.tt';
+    $c->response->redirect($c->entity_url($new_label, 'show'));
 }
 
 1;

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Release.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -42,11 +42,7 @@
 
 =cut
 
-sub perma : Chained('release')
-{
-    my ($self, $c) = @_;
-    $c->stash->{template} = 'releases/perma.tt';
-}
+sub perma : Chained('release') { }
 
 =head2 details
 
@@ -54,11 +50,7 @@
 
 =cut
 
-sub details : Chained('release')
-{
-    my ($self, $c) = @_;
-    $c->stash->{template} = 'releases/details.tt';
-}
+sub details : Chained('release') { }
 
 =head2 google
 
@@ -86,7 +78,6 @@
     my $release = $c->stash->{release};
 
     $c->stash->{tagcloud} = $c->model('Tag')->generate_tag_cloud($release);
-    $c->stash->{template} = 'releases/tags.tt';
 }
 
 =head2 relations
@@ -101,8 +92,6 @@
     my $release = $c->stash->{release};
 
     $c->stash->{relations}      = $c->model('Relation')->load_relations($release);
-
-    $c->stash->{template} = 'releases/relations.tt';
 }
 
 =head2 show
@@ -138,8 +127,6 @@
 
         $_;
     } @$releases ];
-
-    $c->stash->{template} = 'releases/show.tt';
 }
 
 =head2 WRITE METHODS
@@ -158,25 +145,17 @@
 
     my $release = $c->stash->{release};
 
-    use MusicBrainz::Server::Form::DataQuality;
-    
-    my $form = new MusicBrainz::Server::Form::DataQuality($release);
+    my $form = $c->form($release, 'Release::DataQuality');
     $form->context($c);
 
-    if ($c->form_posted)
-    {
-        if ($form->update_from_form($c->req->params))
-        {
-            $c->flash->{ok} = "Thanks, your release edit has been entered " .
-                              "into the moderation queue";
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-            $c->response->redirect($c->entity_url($release, 'show'));
-            $c->detach;
-        }
-    }
+    $form->update_model;
 
-    $c->stash->{form}     = $form;
-    $c->stash->{template} = 'releases/quality.tt';
+    $c->flash->{ok} = "Thanks, your release edit has been entered " .
+                      "into the moderation queue";
+
+    $c->response->redirect($c->entity_url($release, 'show'));
 }
 
 sub edit_title : Chained('release')
@@ -187,21 +166,17 @@
 
     my $release = $c->stash->{release};
 
-    use MusicBrainz::Server::Form::ReleaseTitle;
-    my $form = new MusicBrainz::Server::Form::ReleaseTitle($release);
+    my $form = $c->form($release, 'Release::Title');
     $form->context($c);
 
-    if ($c->form_posted && $form->update_from_form($c->req->params))
-    {
-        $c->flash->{ok} = "Thanks, your release edit has been entered " .
-                          "into the moderation queue";
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-        $c->response->redirect($c->entity_url($release, 'show'));
-        $c->detach;
-    }
+    $form->update_model;
+    
+    $c->flash->{ok} = "Thanks, your release edit has been entered " .
+                      "into the moderation queue";
 
-    $c->stash->{form    } = $form;
-    $c->stash->{template} = 'releases/edit-title.tt';
+    $c->response->redirect($c->entity_url($release, 'show'));
 }
 
 sub move : Chained('release')
@@ -212,17 +187,12 @@
 
     my $release = $c->stash->{release};
 
-    use MusicBrainz::Server::Form::Search::Query;
-    my $form = new MusicBrainz::Server::Form::Search::Query;
+    my $form = $c->form(undef, 'Search::Query');
 
-    if ($c->form_posted && $form->validate($c->req->params))
-    {
-        my $artists = $c->model('Artist')->direct_search($form->value('query'));
-        $c->stash->{artists} = $artists;
-    }
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-    $c->stash->{form    } = $form;
-    $c->stash->{template} = 'releases/move.tt';
+    my $artists = $c->model('Artist')->direct_search($form->value('query'));
+    $c->stash->{artists} = $artists;
 }
 
 sub move_to : Chained('release') Args(1)
@@ -233,44 +203,18 @@
 
     my $release = $c->stash->{release};
 
+    my $old_artist = $c->model('Artist')->load($release->artist);
     my $new_artist = $c->model('Artist')->load($new_artist);
     $c->stash->{new_artist} = $new_artist;
 
-    use MusicBrainz::Server::Form::MoveRelease;
-    my $form = new MusicBrainz::Server::Form::MoveRelease($release);
+    my $form = $c->form($release, 'Release::Move');
     $form->context($c);
 
-    if ($c->form_posted && $form->validate($c->req->params))
-    {
-        my $user       = $c->user;
-        my $old_artist = $c->model('Artist')->load($release->artist);
+    $c->stash->{template} = 'release/confirm_move.tt';
 
-        my @mods = Moderation->InsertModeration(
-            DBH   => $c->mb->{DBH},
-            uid   => $user->id,
-            privs => $user->privs,
-            type  => ModDefs::MOD_MOVE_RELEASE,
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-            album              => $release,
-            oldartist          => $old_artist,
-            artistname         => $new_artist->name,
-            artistsortname     => $new_artist->sort_name,
-            artistid           => $new_artist->id,
-            movetracks         => $form->value('move_tracks'),
-        );
-
-        if (scalar @mods)
-        {
-            $mods[0]->InsertNote($user->id, $form->value('edit_note'))
-                if $mods[0] and $form->value('edit_note') =~ /\S/;
-
-            $c->response->redirect($c->entity_url($release, 'show'));
-            $c->detach;
-        }
-    }
-
-    $c->stash->{form    } = $form;
-    $c->stash->{template} = 'releases/confirm_move.tt';
+    $c->response->redirect($c->entity_url($release, 'show'));
 }
 
 =head1 LICENSE

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Search.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Search.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Search.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -30,28 +30,29 @@
 
     use MusicBrainz::Server::Form::Search::Simple;
 
-    my $form = new MusicBrainz::Server::Form::Search::Simple;
+    my $form = $c->form(undef, "Search::Simple");
 
-    if ($form->validate($c->req->query_params))
+    if(!$form->validate($c->req->query_params))
     {
-        my ($type, $query) = (  $form->value('type'),
-                                $form->value('query')   );
+        $c->response->redirect($c->request->referer);
+        $c->detach;
+    }
 
-        $c->session->{last_simple_search} = $type;
+    my ($type, $query) = (  $form->value('type'),
+                            $form->value('query')   );
 
-        # Use the 'editor' action for searching for moderators,
-        # otherwise search using the external search engine
-        if ($type eq 'editor')
-        {
-            $c->detach("editor", [ $query ]);
-        }
-        else
-        {
-            $c->detach("external");
-        }
-    }
+    $c->session->{last_simple_search} = $type;
 
-    $c->forward("external");
+    # Use the 'editor' action for searching for moderators,
+    # otherwise search using the external search engine
+    if ($type eq 'editor')
+    {
+        $c->detach("editor", [ $query ]);
+    }
+    else
+    {
+        $c->detach("external");
+    }
 }
 
 =head2 editor
@@ -65,7 +66,7 @@
 
 =cut
 
-sub editor : Local
+sub editor : Private
 {
     my ($self, $c, $query) = @_;
 
@@ -95,177 +96,155 @@
 {
     my ($self, $c) = @_;
 
-    # This will be set if we were forwarded from the simple search
-    my $form = $c->stash->{form};
+    my $form = $c->form(undef, 'Search::External');
 
-    # Otherwise create a new form
-    unless ($form)
-    {
-        use MusicBrainz::Server::Form::Search::External;
+    return unless $c->form_posted && $form->validate($c->req->query_params);
 
-        $form = new MusicBrainz::Server::Form::Search::External;
-        $c->stash->{form} = $form;
+    use URI::Escape qw( uri_escape );
+    use POSIX qw(ceil floor);
+
+    my $type   = $form->value('type');
+    my $query  = $form->value('query');
+    my $offset = $c->request->query_params->{offset} || 0;
+    my $limit  = $form->value('limit') || 25;
+
+    if ($query eq '!!!' and $type eq 'artist')
+    {
+        $query = 'chkchkchk';
     }
 
-    if ($form->validate($c->req->query_params))
+    unless ($form->value('enable_advanced'))
     {
-        use URI::Escape qw( uri_escape );
-        use POSIX qw(ceil floor);
+        use MusicBrainz::Server::LuceneSearch;
+        
+        $query = MusicBrainz::Server::LuceneSearch::EscapeQuery($query);
 
-        my $type   = $form->value('type');
-        my $query  = $form->value('query');
-        my $offset = $c->request->query_params->{offset} || 0;
-        my $limit  = $form->value('limit') || 25;
-
-        if ($query eq '!!!' and $type eq 'artist')
+        if ($type eq 'artist')
         {
-            $query = 'chkchkchk';
+            $query = "artist:($query)(sortname:($query) alias:($query) !artist:($query))";
         }
+    }
 
-        unless ($form->value('enable_advanced'))
-        {
-            use MusicBrainz::Server::LuceneSearch;
-            
-            $query = MusicBrainz::Server::LuceneSearch::EscapeQuery($query);
-
-            if ($type eq 'artist')
-            {
-                $query = "artist:($query)(sortname:($query) alias:($query) !artist:($query))";
-            }
-        }
+    $query = uri_escape($query);
     
-        $query = uri_escape($query);
-        
-        my $search_url = sprintf("http://%s/ws/1/%s/?query=%s&offset=%s&max=%s",
-                                     DBDefs::LUCENE_SERVER,
-                                     $type,
-                                     $query,
-                                     $offset,
-                                     $limit,);
-        use LWP::UserAgent;
-        
-        warn "Search is: $search_url";
+    my $search_url = sprintf("http://%s/ws/1/%s/?query=%s&offset=%s&max=%s",
+                                 DBDefs::LUCENE_SERVER,
+                                 $type,
+                                 $query,
+                                 $offset,
+                                 $limit,);
+    use LWP::UserAgent;
+    
+    my $ua = LWP::UserAgent->new;
+    $ua->timeout (2);
+    
+    if (DBDefs::PROXY_ENABLE)
+    {
+        $ua->proxy([ 'http' ], sprintf('http://%s:%i', DBDefs::PROXY_HOST, DBDefs::PROXY_PORT));
+    }
 
-        my $ua = LWP::UserAgent->new;
-        $ua->timeout (2);
-        
-        if (DBDefs::PROXY_ENABLE)
-        {
-            $ua->proxy([ 'http' ], sprintf('http://%s:%i', DBDefs::PROXY_HOST, DBDefs::PROXY_PORT));
-        }
+    # Dispatch the search request.
+    my $response = $ua->get($search_url);
+    unless ($response->is_success)
+    {
+        # Something went wrong with the search
+        my $template = 'search/error/';
 
-        # Dispatch the search request.
-        my $response = $ua->get($search_url);
-        unless ($response->is_success)
+        # Switch on the response code to decide which template to provide
+        use Switch;
+        switch ($response->code)
         {
-            # Something went wrong with the search
-            my $template = 'search/error/';
+            case 404 { $template .= 'no-results.tt'; }
+            case 403 { $template .= 'no-info.tt'; };
+            case 500 { $template .= 'internal-error.tt'; }
+            case 400 { $template .= 'invalid.tt'; }
 
-            # Switch on the response code to decide which template to provide
-            use Switch;
-            switch ($response->code)
-            {
-                case 404 { $template .= 'no-results.tt'; }
-                case 403 { $template .= 'no-info.tt'; };
-                case 500 { $template .= 'internal-error.tt'; }
-                case 400 { $template .= 'invalid.tt'; }
+            else { $template .= 'general.tt'; }
+        }
 
-                else { $template .= 'general.tt'; }
-            }
+        $c->stash->{content}  = $response->content;
+        $c->stash->{query}    = $query;
+        $c->stash->{type}     = $type;
+        $c->stash->{template} = $template;
 
-            $c->stash->{content}  = $response->content;
-            $c->stash->{query}    = $query;
-            $c->stash->{type}     = $type;
-            $c->stash->{template} = $template;
+        $c->detach;
+    }
+    else
+    {
+        my $results = $response->content;
 
-            $c->detach;
-        }
-        else
-        {
-            my $results = $response->content;
+        # Because this branch has a different url scheme, we need to
+        # update the URLs.
+        # TODO Update when this branch is live in Xapian's code base.
+        $results =~ s/\.html//g;
 
-            # Because this branch has a different url scheme, we need to
-            # update the URLs.
-            # TODO Update when this branch is live in Xapian's code base.
-            $results =~ s/\.html//g;
-
-            # Parse information about total results
-            my ($redirect, $total_hits);
-            if ($results =~ /<!--\s+(.*?)\s+-->/s)
+        # Parse information about total results
+        my ($redirect, $total_hits);
+        if ($results =~ /<!--\s+(.*?)\s+-->/s)
+        {
+            my $comments = $1;
+            
+            use Switch;
+            foreach my $comment (split(/\n/, $comments))
             {
-                my $comments = $1;
-                
-                use Switch;
-                foreach my $comment (split(/\n/, $comments))
-                {
-                    my ($key, $value) = split(/=/, $comment, 2);
+                my ($key, $value) = split(/=/, $comment, 2);
 
-                    switch ($key)
-                    {
-                        case ('hits')     { $total_hits = $value; }
-                        case ('redirect') { $redirect   = $value; }
-                    }
+                switch ($key)
+                {
+                    case ('hits')     { $total_hits = $value; }
+                    case ('redirect') { $redirect   = $value; }
                 }
             }
+        }
 
-            # If the user searches for annotations, they will get the results in wikiformat - we need to
-            # convert this to HTML.
-            for(;;)
-            {
-                if ($results =~ /%WIKIBEGIN%(.*?)%WIKIEND%/s)
-                {
-                    use Text::WikiFormat;
-                    use DBDefs;
+        # If the user searches for annotations, they will get the results in wikiformat - we need to
+        # convert this to HTML.
+        while ($results =~ /%WIKIBEGIN%(.*?)%WIKIEND%/s)
+        {
+            use Text::WikiFormat;
+            use DBDefs;
 
-                    my $temp = Text::WikiFormat::format($1, {}, { prefix => "http://".DBDefs::WIKITRANS_SERVER, extended => 1, absolute_links => 1, implicit_links => 0 });
-                    $results =~ s/%WIKIBEGIN%(.*?)%WIKIEND%/$temp/s;
-                }
-                else
-                {    
-                    last;
-                }
-            }
+            my $temp = Text::WikiFormat::format($1, {}, { prefix => "http://".DBDefs::WIKITRANS_SERVER, extended => 1, absolute_links => 1, implicit_links => 0 });
+            $results =~ s/%WIKIBEGIN%(.*?)%WIKIEND%/$temp/s;
+        }
 
-            if ($redirect && $total_hits == 1 &&
-                ($type eq 'artist' || $type eq 'release' || $type eq 'label'))
-            {
-                my $type_controller = $c->controller($type);
-                my $action = $type_controller->action_for('show');
+        if ($redirect && $total_hits == 1 &&
+            ($type eq 'artist' || $type eq 'release' || $type eq 'label'))
+        {
+            my $type_controller = $c->controller($type);
+            my $action = $type_controller->action_for('show');
 
-                $c->res->redirect($c->uri_for($action, [ $redirect ]));
-                $c->detach;
-            }
-    
-            my $total_pages = ceil($total_hits / $limit);
+            $c->res->redirect($c->uri_for($action, [ $redirect ]));
+            $c->detach;
+        }
 
-            $c->stash->{current_page} = floor($offset / $limit) + 1;
-            $c->stash->{total_pages}  = $total_pages;
-            $c->stash->{offset}       = $offset;
-            $c->stash->{total_hits}   = $total_hits;
-            $c->stash->{results}      = $results;
+        my $total_pages = ceil($total_hits / $limit);
 
-            $c->stash->{url_for_page} = sub {
-                my $page_number = shift;
-                $page_number    = $page_number - 1;
+        $c->stash->{current_page} = floor($offset / $limit) + 1;
+        $c->stash->{total_pages}  = $total_pages;
+        $c->stash->{offset}       = $offset;
+        $c->stash->{total_hits}   = $total_hits;
+        $c->stash->{results}      = $results;
 
-                my $new_offset  = $page_number * $limit;
+        $c->stash->{url_for_page} = sub {
+            my $page_number = shift;
+            $page_number    = $page_number - 1;
 
-                my $min_offset  = 0;
-                my $max_offset  = ($c->stash->{total_pages} - 1) * $limit;
+            my $new_offset  = $page_number * $limit;
 
-                $new_offset = $new_offset < $min_offset ? $min_offset
-                            : $new_offset > $max_offset ? $max_offset
-                            :                             $new_offset;
+            my $min_offset  = 0;
+            my $max_offset  = ($c->stash->{total_pages} - 1) * $limit;
 
-                my $query = $c->req->query_params;
-                $query->{offset} = $page_number * $limit;
+            $new_offset = $new_offset < $min_offset ? $min_offset
+                        : $new_offset > $max_offset ? $max_offset
+                        :                             $new_offset;
 
-                $c->uri_for('/search/external', $query);
-            };
-        }
-    }
+            my $query = $c->req->query_params;
+            $query->{offset} = $page_number * $limit;
 
-    $c->stash->{template} = 'search/external.tt';
+            $c->uri_for('/search/external', $query);
+        };
+    }
 }
 
 =head1 LICENSE

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Tags.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Tags.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Tags.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -60,8 +60,6 @@
     }
 
     $c->stash->{tag} = $tag;
-
-    $c->stash->{template} = 'tag/display.tt';
 }
 
 =head2 entity
@@ -97,8 +95,6 @@
     my ($self, $c) = @_;
 
     $c->stash->{tagcloud} = $c->model('Tag')->generate_tag_cloud();
-    
-    $c->stash->{template} = 'tag/all.tt';
 }
 
 =head1 LICENSE

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Track.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Track.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Track.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -48,7 +48,6 @@
     my $track = $c->stash->{track};
 
     $c->stash->{relations} = $c->model('Relation')->load_relations($track);
-    $c->stash->{template}  = 'track/relations.tt';
 }
 
 =head2 details
@@ -65,8 +64,7 @@
     $c->stash->{relations} = $c->model('Relation')->load_relations($track);
     $c->stash->{tags}      = $c->model('Tag')->top_tags($track);
     $c->stash->{release}   = $c->model('Release')->load($track->release);
-
-    $c->stash->{template} = 'track/info.tt';
+    $c->stash->{template}  = 'track/details.tt';
 }
 
 sub show : Chained('track') PathPart('')
@@ -81,7 +79,6 @@
     my $track = $c->stash->{track};
 
     $c->stash->{tags}     = $c->model('Tag')->generate_tag_cloud($track);
-    $c->stash->{template} = 'track/tags.tt';
 }
 
 sub google : Chained('track')
@@ -110,23 +107,13 @@
 
     my $track = $c->stash->{track};
 
-    use MusicBrainz::Server::Form::Track;
-    my $form = new MusicBrainz::Server::Form::Track($track);
+    my $form = $c->form($track, 'Track::Edit');
     $form->context($c);
 
-    $c->stash->{form} = $form;
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-    if($c->form_posted)
-    {
-        if($form->update_from_form($c->req->params))
-        {
-            $c->flash->{ok} = "Thank you, your edits have been added to the queue";
-            $c->response->redirect($c->entity_url($track, 'show'));
-            $c->detach;
-        }
-    }
-
-    $c->stash->{template} = 'track/edit.tt';
+    $c->flash->{ok} = "Thank you, your edits have been added to the queue";
+    $c->response->redirect($c->entity_url($track, 'show'));
 }
 
 sub remove : Chained('track')
@@ -135,42 +122,17 @@
 
     $c->forward('/user/login');
 
-    use MusicBrainz::Server::Form;
-    my $form = MusicBrainz::Server::Form->new(profile => {
-            optional => { edit_note => 'TextArea' },
-        });
+    my $track   = $c->stash->{track};
 
-    if ($c->form_posted)
-    {
-        my $track   = $c->stash->{track};
-        my $release = $c->model('Release')->load($track->release);
+    my $form = $c->form($track, 'Track::Remove')
+    $form->context($c);
 
-        require Moderation;
-        my @mods = Moderation->InsertModeration(
-            DBH   => $c->mb->{DBH},
-            uid   => $c->user->id,
-            privs => $c->user->privs,
-            type  => ModDefs::MOD_REMOVE_TRACK,
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-            track => $track,
-            album => $release,
-        );
+    $c->flash->{ok} = "Thanks, your track edit has been entered " .
+                      "into the moderation queue";
 
-        if (scalar @mods)
-        {
-            $mods[0]->InsertNote($c->user->id, $form->value('edit_note'))
-                if $form->value('edit_note') =~ /\S/;
-
-            $c->flash->{ok} = "Thanks, your track edit has been entered " .
-                              "into the moderation queue";
-
-            $c->response->redirect($c->entity_url($release, 'show'));
-            $c->detach;
-        }
-    }
-
-    $c->stash->{form    } = $form;
-    $c->stash->{template} = 'track/remove.tt';
+    $c->response->redirect($c->entity_url($release, 'show'));
 }
 
 =head1 LICENSE

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Url.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Url.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Url.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -43,8 +43,6 @@
     my $url = $c->stash->{url};
 
     $c->stash->{relations} = $c->model('Relation')->load_relations($url);
-
-    $c->stash->{template} = 'url/info.tt';
 }
 
 =head1 LICENSE

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -50,13 +50,12 @@
 
     unless ($c->user_exists)
     {
-        use MusicBrainz::Server::Form::User::Login;
+        my $form = $c->form(undef, 'User::Login');
 
-        my $form = MusicBrainz::Server::Form::User::Login->new;
-        $c->stash->{form} = $form;
-
-        if ($c->form_posted && $form->validate($c->request->parameters))
+        if ($c->form_posted)
         {
+            return unless $form->validate($c->request->parameters));
+
             my ($username, $password) = ( $form->value("username"),
                                           $form->value("password") );
 
@@ -78,11 +77,14 @@
                 $c->stash->{errors} = ['Username/password combination invalid'];
             }
         }
+        else
+        {
+            # The form was not posted, so we should store the referer
+            $c->flash->{_user_login_old_redir} = $c->req->referer;
+        }
 
-        $c->flash->{_user_login_old_redir} = $c->req->referer;
-        $c->stash->{template} = 'user/login.tt';
-
-        # Have to make sure we detach
+        # If we got this far we need to show the form (to login, or to fix
+        # login form errors)
         $c->detach;
     }
 }
@@ -99,26 +101,21 @@
 {
     my ($self, $c) = @_;
 
-    use MusicBrainz::Server::Form::User::Register;
-
-    my $form = MusicBrainz::Server::Form::User::Register->new;
+    my $form = $c->form(undef, 'User::Register');
     $c->stash->{form} = $form;
 
-    if($c->form_posted && $form->validate($c->request->parameters))
-    {
-        my $new_user = $c->model('User')->create($form->value('username'),
-                                                 $form->value('password'));
+    return unless $c->form_posted && $form->validate($c->request->parameters);
 
-        my $email            = $form->value('email');
-        my $could_send_email = $new_user->SendVerificationEmail($email);
+    my $new_user = $c->model('User')->create($form->value('username'),
+                                             $form->value('password'));
 
-        $c->authenticate({ username => $new_user->username,
-                           password => $new_user->password });
+    my $email            = $form->value('email');
+    my $could_send_email = $new_user->SendVerificationEmail($email);
 
-        $c->detach('registered', $could_send_email, $email);
-    }
+    $c->authenticate({ username => $new_user->username,
+                       password => $new_user->password });
 
-    $c->stash->{template} = 'user/register.tt';
+    $c->detach('registered', $could_send_email, $email);
 }
 
 =head2 registered
@@ -152,53 +149,48 @@
 {
     my ($self, $c) = @_;
 
-    use MusicBrainz::Server::Form::User::ForgotPassword;
-
-    my $form = new MusicBrainz::Server::Form::User::ForgotPassword;
+    my $form = $c->form(undef, 'User::ForgotPassword');
     $form->context($c);
-    $c->stash->{form} = $form;
 
-    if ($c->form_posted && $form->validate($c->req->params))
-    {
-        my ($email, $username) = ( $form->value('email'),
-                                   $form->value('username') );
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-        if ($email)
+    my ($email, $username) = ( $form->value('email'),
+                               $form->value('username') );
+
+    if ($email)
+    {
+        my $usernames = $c->model('User')->find_by_email($email);
+        if(scalar @$usernames)
         {
-            my $usernames = $c->model('User')->find_by_email($email);
-            if(scalar @$usernames)
+            foreach $username (@$usernames)
             {
-                foreach $username (@$usernames)
+                my $user = $c->model('User')->load_user({ username => $username });
+                if ($user)
                 {
-                    my $user = $c->model('User')->load_user({ username => $username });
-                    if ($user)
-                    {
-                        $user->SendPasswordReminder
-                            or die "Could not send password reminder";
-                    }
+                    $user->SendPasswordReminder
+                        or die "Could not send password reminder";
                 }
-
-                $c->flash->{ok} = "A password reminder has been sent to you. Please check your inbox for more details";
             }
-            else
-            {
-                $c->field('email')->add_error('We could not find any users registered with this email address');
-            }
+
+            $c->flash->{ok} = "A password reminder has been sent to you."
+                            . "Please check your inbox for more details";
         }
-        elsif ($username)
+        else
         {
-            my $user = $c->model('User')->load_user({ username => $username });
-            if ($user)
-            {
-                $user->SendPasswordReminder
-                    or die "Could not send password reminder";
-
-                $c->flash->{ok} = "A password reminder has been sent to you. Please check your inbox for more details";
-            }
+            $c->field('email')->add_error('We could not find any users registered with this email address');
         }
     }
+    elsif ($username)
+    {
+        my $user = $c->model('User')->load_user({ username => $username });
+        if ($user)
+        {
+            $user->SendPasswordReminder
+                or die "Could not send password reminder";
 
-    $c->stash->{template} = 'user/forgot.tt';
+            $c->flash->{ok} = "A password reminder has been sent to you. Please check your inbox for more details";
+        }
+    }
 }
 
 =head2 editProfile
@@ -214,21 +206,17 @@
 
     $c->forward('login');
 
-    use MusicBrainz::Server::Form::User::EditProfile;
+    my $form = $c->form($c->user, 'User::EditProfile');
+    $form->context($c->user);
 
-    my $form = new MusicBrainz::Server::Form::User::EditProfile($c->user);
-    $c->stash->{form} = $form;
+    return unless $c->form_posted && $form->validate($c->req->params);
 
-    if ($c->form_posted)
-    {
-        $c->flash->{ok} = "Your profile has been sucessfully updated"
-            if $form->update_from_form ($c->req->params);
-    }
+    $form->update_model;
 
-    $c->stash->{template} = 'user/edit.tt';
+    $c->flash->{ok} = "Your profile has been sucessfully updated";
 }
 
-=head2 changePassword
+=head2 change_password
 
 Allow users to change their password. This displays a form prompting
 for their old password and a new password (with confirmation), which
@@ -242,28 +230,21 @@
 
     $c->forward('login');
 
-    use MusicBrainz::Server::Form::User::ChangePassword;
+    my $form = $c->form(undef, 'User::ChangePassword');
 
-    my $form = new MusicBrainz::Server::Form::User::ChangePassword;
-    $c->stash->{form} = $form;
-
-    if ($c->form_posted && $form->validate($c->req->params))
+    return unless $c->form_posted && $form->validate($c->req->params);
+    if ($form->value('old_password') eq $c->user->password)
     {
-        if ($form->value('old_password') eq $c->user->password)
-        {
-            $c->user->ChangePassword( $form->value('old_password'),
-                                      $form->value('new_password'),
-                                      $form->value('confirm_new_password') );
+        $c->user->ChangePassword( $form->value('old_password'),
+                                  $form->value('new_password'),
+                                  $form->value('confirm_new_password') );
 
-            $c->flash->{ok} = "Your password has been successfully changed";
-        }
-        else
-        {
-            $form->field('old_password')->add_error("Old password is incorrect.");
-        }
+        $c->flash->{ok} = "Your password has been successfully changed";
     }
-
-    $c->stash->{template} = 'user/changePassword.tt';
+    else
+    {
+        $form->field('old_password')->add_error("Old password is incorrect.");
+    }
 }
 
 =head2 profile

Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Artist/DataQuality.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Artist/DataQuality.pm 2008-10-02 11:37:02 UTC (rev 10413)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Artist/DataQuality.pm 2008-10-02 11:38:19 UTC (rev 10414)
@@ -2,6 +2,8 @@
 
 use base 'MusicBrainz::Server::Form::DataQuality';
 
+use ModDefs;
+
 sub build_moderation
 {
     my ($self, $current_moderation) = @_;

Deleted: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/MoveRelease.pm

Copied: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Release/Move.pm (from rev 10413, mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/MoveRelease.pm)

Copied: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Release/Title.pm (from rev 10413, mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/ReleaseTitle.pm)

Deleted: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/ReleaseTitle.pm

Added: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Track/Base.pm

Deleted: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/Track.pm

Copied: mb_server/branches/TemplateToolkit/root/release/box-header.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/box-header.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/box-summary.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/box-summary.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/change_quality.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/quality.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/confirm_move.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/confirm_move.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/details.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/details.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/edit-links.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/edit-links.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/edit_title.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/edit-title.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/full.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/full.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/header.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/header.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/info-links.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/info-links.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/layout.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/layout.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/move.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/move.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/perma.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/perma.tt)

Added: mb_server/branches/TemplateToolkit/root/release/relations.tt

Added: mb_server/branches/TemplateToolkit/root/release/release-box.tt

Copied: mb_server/branches/TemplateToolkit/root/release/release.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/release.tt)

Copied: mb_server/branches/TemplateToolkit/root/release/show.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/releases/show.tt)

Added: mb_server/branches/TemplateToolkit/root/release/tags.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/box-header.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/box-summary.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/confirm_move.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/details.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/edit-links.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/edit-title.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/full.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/header.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/info-links.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/layout.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/move.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/perma.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/quality.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/relations.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/release-box.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/release.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/show.tt

Deleted: mb_server/branches/TemplateToolkit/root/releases/tags.tt

Copied: mb_server/branches/TemplateToolkit/root/track/details.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/track/info.tt)

Deleted: mb_server/branches/TemplateToolkit/root/track/info.tt

Deleted: mb_server/branches/TemplateToolkit/root/user/changePassword.tt

Copied: mb_server/branches/TemplateToolkit/root/user/change_password.tt (from rev 10413, mb_server/branches/TemplateToolkit/root/user/changePassword.tt)


_______________________________________________
MusicBrainz-commits mailing list
MusicBrainz-commits@...
http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-commits
LightInTheBox - Buy quality products at wholesale price!
 
Creative Commons EFF GPL LGPL
Original Design|vacubomb.com Contact Details Server Version: RELEASE-20060712