[mb-commits] r10991 - in mb_server/branches/TemplateToolkit: lib lib/MusicBrainz lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Model root/moderation
root at musicbrainz.org
root at musicbrainz.org
Tue Jan 6 15:19:21 UTC 2009
Author: acid2
Date: 2009-01-06 15:19:20 +0000 (Tue, 06 Jan 2009)
New Revision: 10991
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/lib/MusicBrainz/Server/Model/Subscription.pm
mb_server/branches/TemplateToolkit/lib/UserSubscription.pm
mb_server/branches/TemplateToolkit/root/moderation/notes.tt
Log:
Support unsubscribing from labels (in groups)
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm 2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm 2009-01-06 15:19:20 UTC (rev 10991)
@@ -148,29 +148,6 @@
$c->stash(entity_url => sub { EntityUrl($c, @_); });
$c->stash->{server_details}->{version} = &DBDefs::VERSION;
- # Effectivly a date filter:
- $c->stash->{user_date} = sub {
- return unless ('' ne $_[0]);
-
- use UserPreference;
-
- my ($date_time_format, $time_zone);
-
- if ($c->user_exists)
- {
- my $prefs = $c->model('User')->get_preferences_hash($c->user);
- $prefs->load;
-
- $date_time_format = $prefs->get('datetimeformat');
- $time_zone = $prefs->get('timezone');
- }
-
- MusicBrainz::Server::DateTime::format_datetime( {
- datetimeformat => $date_time_format,
- tz => $time_zone,
- }, @_);
- };
-
# For displaying release attributes
$c->stash->{release_attribute} = \&MusicBrainz::Server::Release::attribute_name;
$c->stash->{plural_release_attribute} = \&MusicBrainz::Server::Release::attribute_name_as_plural;
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm 2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm 2009-01-06 15:19:20 UTC (rev 10991)
@@ -445,11 +445,6 @@
$c->forward('/user/login');
- if ($type ne 'artist' || $type ne 'label' || $type ne 'editor')
- {
- $type = 'artist';
- }
-
$c->stash->{type} = $type;
$c->stash->{entities} = $c->model('Subscription')->users_subscribed_entities($c->user, $type);
@@ -465,13 +460,24 @@
my @entities = map
{
- my $artist = MusicBrainz::Server::Artist->new($c->mb->{DBH});
- $artist->id($_);
+ my $class = "MusicBrainz::Server::" . ucfirst($type);
+ my $obj = $class->new($c->mb->{DBH});
+ $obj->id($_);
- $artist;
+ $obj;
} @$ids;
- $c->model('Subscription')->unsubscribe_from_entities($c->user, [ @entities ]);
+ use Switch;
+ switch($type)
+ {
+ case ('artist') {
+ $c->model('Subscription')->unsubscribe_from_artists($c->user, [ @entities ]);
+ }
+
+ case ('label') {
+ $c->model('Subscription')->unsubscribe_from_labels($c->user, [ @entities ]);
+ }
+ }
$c->response->redirect($c->req->uri);
}
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm 2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/Subscription.pm 2009-01-06 15:19:20 UTC (rev 10991)
@@ -14,7 +14,14 @@
my $us = UserSubscription->new($self->context->mb->{DBH});
$us->SetUser($user->id);
- return $us->subscribed_artists;
+ use Switch;
+ switch ($type)
+ {
+ case ('artist') { return $us->subscribed_artists; }
+ case ('label') { return $us->subscribed_labels; }
+ }
+
+ return;
}
sub user_artist_count
@@ -47,7 +54,7 @@
return $us->GetNumSubscribedEditors;
}
-sub unsubscribe_from_entities
+sub unsubscribe_from_artists
{
my ($self, $user, $entities) = @_;
@@ -57,6 +64,16 @@
$us->UnsubscribeArtists(@$entities);
}
+sub unsubscribe_from_labels
+{
+ my ($self, $user, $entities) = @_;
+
+ my $us = UserSubscription->new($self->context->mb->{DBH});
+ $us->SetUser($user->id);
+
+ $us->UnsubscribeLabels(@$entities);
+}
+
sub is_user_subscribed_to_entity
{
my ($self, $user, $entity) = @_;
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm 2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server.pm 2009-01-06 15:19:20 UTC (rev 10991)
@@ -50,6 +50,7 @@
},
RECURSION => 1,
TEMPLATE_EXTENSION => '.tt',
+ PLUGIN_BASE => 'MusicBrainz::Server::Plugin',
},
);
Modified: mb_server/branches/TemplateToolkit/lib/UserSubscription.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/UserSubscription.pm 2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/lib/UserSubscription.pm 2009-01-06 15:19:20 UTC (rev 10991)
@@ -273,7 +273,7 @@
1;
}
-sub GetSubscribedLabels
+sub subscribed_labels
{
my ($self) = @_;
my $uid = $self->GetUser or die;
@@ -288,7 +288,16 @@
$uid,
);
- @$rows = map { $_->[0] }
+ @$rows =
+ map {
+ my $label = MusicBrainz::Server::Label->new;
+ $label->id($_->[0]->{label});
+ $label->name($_->[0]->{name});
+ $label->sort_name($_->[0]->{sortname});
+ $label->resolution($_->[0]->{resolution});
+
+ $label;
+ }
sort { $a->[1] cmp $b->[1] }
map {
my $row = $_;
Modified: mb_server/branches/TemplateToolkit/root/moderation/notes.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/moderation/notes.tt 2009-01-02 18:50:56 UTC (rev 10990)
+++ mb_server/branches/TemplateToolkit/root/moderation/notes.tt 2009-01-06 15:19:20 UTC (rev 10991)
@@ -1,3 +1,4 @@
+[%- USE UserDate(c.user) -%]
[% IF moderation.Notes %]
<table class="edit_notes">
[% FOR note=moderation.Notes %]
@@ -6,7 +7,7 @@
<a href="[% c.uri_for('/user/profile', note.user.name) %]">[% note.user.name %]</a>:
</td>
<td>
- <div class="note_date">[% user_date(note.GetNoteTime) %]</div>
+ <div class="note_date">[% UserDate.format(note.GetNoteTime) %]</div>
[% note.text_as_html %]
</td>
</tr>
More information about the MusicBrainz-commits
mailing list