r12272 - in mb_server/trunk: lib/MusicBrainz/Server lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Edit/Alias lib/MusicBrainz/Server/Edit/Artist lib/MusicBrainz/Server/Edit/Label root/alias root/artist root/components root/label t

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

r12272 - in mb_server/trunk: lib/MusicBrainz/Server lib/MusicBrainz/Server/Controller lib/MusicBrainz/Server/Edit/Alias lib/MusicBrainz/Server/Edit/Artist lib/MusicBrainz/Server/Edit/Label root/alias root/artist root/components root/label t

by root-97 :: Rate this Message:

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

Author: acid2
Date: 2009-10-31 12:28:23 +0000 (Sat, 31 Oct 2009)
New Revision: 12272

Added:
   mb_server/trunk/lib/MusicBrainz/Server/Edit/Alias/Delete.pm
   mb_server/trunk/lib/MusicBrainz/Server/Edit/Artist/DeleteAlias.pm
   mb_server/trunk/lib/MusicBrainz/Server/Edit/Label/DeleteAlias.pm
   mb_server/trunk/root/alias/delete.tt
   mb_server/trunk/root/artist/delete_alias.tt
   mb_server/trunk/root/label/delete_alias.tt
   mb_server/trunk/t/edit_artist_delete_alias.t
   mb_server/trunk/t/edit_label_delete_alias.t
Modified:
   mb_server/trunk/lib/MusicBrainz/Server/Constants.pm
   mb_server/trunk/lib/MusicBrainz/Server/Controller/Alias.pm
   mb_server/trunk/lib/MusicBrainz/Server/EditRegistry.pm
   mb_server/trunk/root/artist/aliases.tt
   mb_server/trunk/root/components/aliases.tt
   mb_server/trunk/root/label/aliases.tt
   mb_server/trunk/t/controller_artist.t
   mb_server/trunk/t/controller_label.t
Log:
Delete alias type and form

See review 445

Merge branch 'delete-alias'

Modified: mb_server/trunk/lib/MusicBrainz/Server/Constants.pm
===================================================================
--- mb_server/trunk/lib/MusicBrainz/Server/Constants.pm 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/lib/MusicBrainz/Server/Constants.pm 2009-10-31 12:28:23 UTC (rev 12272)
@@ -50,6 +50,7 @@
 Readonly our $EDIT_ARTIST_MERGE => 4;
 Readonly our $EDIT_ARTIST_ADD_ANNOTATION => 5;
 Readonly our $EDIT_ARTIST_ADD_ALIAS => 6;
+Readonly our $EDIT_ARTIST_DELETE_ALIAS => 7;
 
 Readonly our $EDIT_LABEL_CREATE => 10;
 Readonly our $EDIT_LABEL_EDIT => 11;
@@ -57,6 +58,7 @@
 Readonly our $EDIT_LABEL_MERGE => 14;
 Readonly our $EDIT_LABEL_ADD_ANNOTATION => 15;
 Readonly our $EDIT_LABEL_ADD_ALIAS => 16;
+Readonly our $EDIT_LABEL_DELETE_ALIAS => 17;
 
 Readonly our $EDIT_RELEASEGROUP_DELETE => 23;
 Readonly our $EDIT_RELEASEGROUP_MERGE => 24;

Modified: mb_server/trunk/lib/MusicBrainz/Server/Controller/Alias.pm
===================================================================
--- mb_server/trunk/lib/MusicBrainz/Server/Controller/Alias.pm 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/lib/MusicBrainz/Server/Controller/Alias.pm 2009-10-31 12:28:23 UTC (rev 12272)
@@ -3,13 +3,22 @@
 
 requires 'load';
 
-use MusicBrainz::Server::Constants qw( $EDIT_ARTIST_ADD_ALIAS $EDIT_LABEL_ADD_ALIAS );
+use MusicBrainz::Server::Constants qw(
+    $EDIT_ARTIST_ADD_ALIAS $EDIT_LABEL_ADD_ALIAS
+    $EDIT_ARTIST_DELETE_ALIAS $EDIT_LABEL_DELETE_ALIAS
+);
 use MusicBrainz::Server::Edit::Artist::AddAlias;
 use MusicBrainz::Server::Edit::Label::AddAlias;
 
 my %model_to_edit_type = (
-    Artist => $EDIT_ARTIST_ADD_ALIAS,
-    Label  => $EDIT_LABEL_ADD_ALIAS,
+    add => {
+        Artist => $EDIT_ARTIST_ADD_ALIAS,
+        Label  => $EDIT_LABEL_ADD_ALIAS,
+    },
+    delete => {
+        Artist => $EDIT_ARTIST_DELETE_ALIAS,
+        Label  => $EDIT_LABEL_DELETE_ALIAS,
+    }
 );
 
 sub aliases : Chained('load') PathPart('aliases')
@@ -23,6 +32,14 @@
     );
 }
 
+sub alias : Chained('load') PathPart('alias') CaptureArgs(1)
+{
+    my ($self, $c, $alias_id) = @_;
+    my $alias = $c->model($self->{model})->alias->get_by_id($alias_id)
+        or $c->detach('/error_404');
+    $c->stash( alias => $alias );
+}
+
 sub add_alias : Chained('load') PathPart('add-alias') RequireAuth
 {
     my ($self, $c) = @_;
@@ -31,17 +48,40 @@
     my $entity = $c->stash->{ $type };
     if ($c->form_posted && $form->submitted_and_valid($c->req->params)) {
         my $edit = $c->model('Edit')->create(
-            edit_type => $model_to_edit_type{ $self->{model} },
+            edit_type => $model_to_edit_type{add}->{ $self->{model} },
             editor_id => $c->user->id,
             alias => $form->field('alias')->value,
             $type.'_id' => $entity->id,
         );
 
-        my $action = $c->controller->action_for('aliases');
-        $c->response->redirect($c->uri_for($action, [ $entity->gid ]));
+        $self->_redir_to_aliases($c);
     }
 }
 
+sub delete_alias : Chained('alias') PathPart('delete') RequireAuth
+{
+    my ($self, $c, $alias_id) = @_;
+    my $alias = $c->stash->{alias};
+    my $form = $c->form( form => 'Confirm' );
+    if ($c->form_posted && $form->submitted_and_valid($c->req->params)) {
+        my $edit = $c->model('Edit')->create(
+            edit_type => $model_to_edit_type{delete}->{ $self->{model} },
+            editor_id => $c->user->id,
+            alias_id  => $alias->id,
+            entity_id => $c->stash->{ $self->{entity_name} }->id,
+        );
 
+        $self->_redir_to_aliases($c);
+    }
+}
+
+sub _redir_to_aliases
+{
+    my ($self, $c) = @_;
+    my $action = $c->controller->action_for('aliases');
+    my $entity = $c->stash->{ $self->{entity_name} };
+    $c->response->redirect($c->uri_for($action, [ $entity->gid ]));
+}
+
 no Moose::Role;
 1;

Modified: mb_server/trunk/lib/MusicBrainz/Server/EditRegistry.pm
===================================================================
--- mb_server/trunk/lib/MusicBrainz/Server/EditRegistry.pm 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/lib/MusicBrainz/Server/EditRegistry.pm 2009-10-31 12:28:23 UTC (rev 12272)
@@ -9,10 +9,12 @@
     MusicBrainz::Server::Edit::Artist::AddAlias
     MusicBrainz::Server::Edit::Artist::AddAnnotation
     MusicBrainz::Server::Edit::Artist::Create
+    MusicBrainz::Server::Edit::Artist::DeleteAlias
     MusicBrainz::Server::Edit::Artist::Delete
     MusicBrainz::Server::Edit::Artist::Edit
     MusicBrainz::Server::Edit::Artist::Merge
     MusicBrainz::Server::Edit::Label::AddAlias
+    MusicBrainz::Server::Edit::Label::DeleteAlias
     MusicBrainz::Server::Edit::Label::AddAnnotation
     MusicBrainz::Server::Edit::Label::Create
     MusicBrainz::Server::Edit::Label::Delete

Modified: mb_server/trunk/root/artist/aliases.tt
===================================================================
--- mb_server/trunk/root/artist/aliases.tt 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/root/artist/aliases.tt 2009-10-31 12:28:23 UTC (rev 12272)
@@ -1,3 +1,4 @@
 [%- WRAPPER "artist/layout.tt" title=l("Aliases") page='aliases' -%]
-    [%- INCLUDE "components/aliases.tt" entity=artist -%]
+    [%- INCLUDE "components/aliases.tt" entity=artist
+        delete_path='/artist/delete_alias' -%]
 [%- END -%]

Modified: mb_server/trunk/root/components/aliases.tt
===================================================================
--- mb_server/trunk/root/components/aliases.tt 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/root/components/aliases.tt 2009-10-31 12:28:23 UTC (rev 12272)
@@ -3,7 +3,7 @@
         <table class="tbl">
             <thead>
                 <tr>
-                    <th>[% l('Alias') %]</th>
+                    <th colspan="[% c.user_exists ? 2 : 1 %]">[% l('Alias') %]</th>
                 </tr>
             </thead>
             <tbody>
@@ -13,12 +13,10 @@
                         [% alias.name | html %]
                     </td>
                     [% IF c.user_exists %]
-                        <td>
-                            [% links = [
-                                { link => c.entity_url(entity, 'remove_alias', alias.id), text => l('Remove'), }
-                                { link => c.entity_url(entity, 'edit_alias', alias.id), text => l('Edit'), }
-                            ] %]
-                            [% INCLUDE 'components/piped-list.tt' list=links %]
+                        <td style="width: 10em">
+                            <a href="[% c.uri_for_action(delete_path, [ entity.gid, alias.id ]) %]">
+                              [% l('Delete') %]
+                            </a>
                         </td>
                     [% END %]
                 </tr>

Modified: mb_server/trunk/root/label/aliases.tt
===================================================================
--- mb_server/trunk/root/label/aliases.tt 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/root/label/aliases.tt 2009-10-31 12:28:23 UTC (rev 12272)
@@ -1,3 +1,4 @@
 [%- WRAPPER "label/layout.tt" title=l('Aliases') page='aliases' -%]
-[%- INCLUDE "components/aliases.tt" entity=label -%]
+    [%- INCLUDE "components/aliases.tt" entity=label
+        delete_path='/label/delete_alias' -%]
 [%- END -%]

Modified: mb_server/trunk/t/controller_artist.t
===================================================================
--- mb_server/trunk/t/controller_artist.t 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/t/controller_artist.t 2009-10-31 12:28:23 UTC (rev 12272)
@@ -288,4 +288,18 @@
     alias => 'An alias',
 });
 
+# Test deleting aliases
+$mech->get_ok('/artist/945c079d-374e-4436-9448-da92dedef3cf/alias/1/delete');
+my $response = $mech->submit_form(
+    with_fields => {
+        'confirm.edit_note' => ''
+    });
+
+my $edit = MusicBrainz::Server::Test->get_latest_edit($c);
+isa_ok($edit, 'MusicBrainz::Server::Edit::Artist::DeleteAlias');
+is_deeply($edit->data, {
+    entity_id => 4,
+    alias_id => 1,
+});
+
 done_testing;

Modified: mb_server/trunk/t/controller_label.t
===================================================================
--- mb_server/trunk/t/controller_label.t 2009-10-31 08:33:03 UTC (rev 12271)
+++ mb_server/trunk/t/controller_label.t 2009-10-31 12:28:23 UTC (rev 12272)
@@ -225,4 +225,18 @@
     alias => 'An alias',
 });
 
+# Test deleting aliases
+$mech->get_ok('/label/46f0f4cd-8aab-4b33-b698-f459faf64190/alias/1/delete');
+my $response = $mech->submit_form(
+    with_fields => {
+        'confirm.edit_note' => ''
+    });
+
+my $edit = MusicBrainz::Server::Test->get_latest_edit($c);
+isa_ok($edit, 'MusicBrainz::Server::Edit::Label::DeleteAlias');
+is_deeply($edit->data, {
+    entity_id => 2,
+    alias_id => 1,
+});
+
 done_testing;


_______________________________________________
MusicBrainz-commits mailing list
MusicBrainz-commits@...
http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-commits