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