Bug 4912: Redirect to the appropriate view after editing/deleting a list
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 6 Jan 2016 14:25:14 +0000 (14:25 +0000)
committerBrendan A Gallagher <brendan@bywatersolutions.com>
Wed, 27 Jan 2016 02:34:40 +0000 (02:34 +0000)
There are 2 places where a list can be edited/deleted: on the list view
and the list content view. After the edition, the user expect to be
redirect to the previous page.
This patch implements that.

Test plan:
At the OPAC, delete and edit a list from the 2 differents places.
Confirm that you are redirect to the page you come from.

With patch, redirects work as expected.
Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt
opac/opac-shelves.pl

index 7fd410b..92c2343 100644 (file)
                                         <span class="sep">|</span>
                                         <form method="get" action="/cgi-bin/koha/opac-shelves.pl" class="form-inline">
                                             <input type="hidden" name="op" value="edit_form" />
+                                            <input type="hidden" name="referer" value="view" />
                                             <input type='hidden' name='category' value='[% category %]' />
                                             <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
                                             <input type="submit" class="editshelf" value="Edit list" />
 
                                         <form method="post" action="/cgi-bin/koha/opac-shelves.pl" class="form-inline">
                                             <input type="hidden" name="op" value="delete" />
+                                            <input type="hidden" name="referer" value="list" />
                                             <input type='hidden' name='category' value='[% category %]' />
                                             <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
                                             <input type="submit" class="deleteshelf" value="Delete list" onclick="return confirmDelete(MSG_CONFIRM_DELETE_LIST);"/>
                                     [% ELSIF category == PRIVATE # not manageshelf and private means shared %]
                                         <form action="/cgi-bin/koha/opac-shelves.pl" method="post" class="form-inline">
                                             <input type="hidden" name="op" value="remove_share" />
+                                            <input type="hidden" name="referer" value="list" />
                                             <input type='hidden' name='category' value='[% category %]' />
                                             <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
                                             <input type="submit" class="deleteshelf" onclick="return confirmDelete(MSG_CONFIRM_REMOVE_SHARE);" value="Remove share" />
                                 [% ELSE %]
                                     <legend>Editing <em>[% shelf.shelfname |html %]</em></legend>
                                     <input type="hidden" name="op" value="edit" />
-                                    <input type="hidden" name="referer" value="view" />
+                                    <input type="hidden" name="referer" value="[% referer %]" />
                                     <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
                                 [% END %]
                                 <input type="hidden" name="owner" id="owner" value="[% loggedinusernumber %]" />
index 8b66274..2d810cb 100755 (executable)
@@ -90,11 +90,11 @@ if ( $op eq 'add_form' ) {
             push @messages, { type => 'error', code => 'error_on_insert' };
         } else {
             push @messages, { type => 'message', code => 'success_on_insert' };
-            $op = 'view';
+            $op = $referer;
         }
     } else {
         push @messages, { type => 'error', code => 'unauthorized_on_insert' };
-        $op = 'list';
+        $op = $referer;
     }
 } elsif ( $op eq 'edit' ) {
     $shelfnumber = $query->param('shelfnumber');