Bug 25498: Show transfer button for shared lists on OPAC
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 10 Jun 2022 09:42:41 +0000 (09:42 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Tue, 19 Jul 2022 14:25:24 +0000 (11:25 -0300)
Test plan:
Pick or create a shared list.
Verify that OPAC only shows the Transfer button when you are the
owner of a shared list.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt
opac/opac-shelves.pl

index 07f6b7b..3bbd59a 100644 (file)
                                                     [% IF s.is_private AND s.can_be_managed( loggedinusernumber ) AND Koha.Preference('OpacAllowSharingPrivateLists') %]
                                                         <a href="/cgi-bin/koha/opac-shareshelf.pl?op=invite&shelfnumber=[% s.shelfnumber | uri %]" class="sharelist btn btn-link"><i class="fa fa-share" aria-hidden="true"></i> Share</a>
                                                     [% END %]
+                                                    [% IF s.is_shared AND s.can_be_managed( loggedinusernumber ) %]
+                                                        <form action="/cgi-bin/koha/opac-shelves.pl" method="get" class="d-inline">
+                                                            <input type="hidden" name="shelfnumber" value="[% s.shelfnumber | html %]" />
+                                                            <input type="hidden" name="public" value="0" />
+                                                            <input type="hidden" name="op" value="transfer" />
+                                                            <input type="hidden" name="referer" value="list" />
+                                                            <button type="submit" class="btn btn-link transfershelf"> Transfer</button>
+                                                        </form>
+                                                    [% END %]
                                                     [% IF s.is_shared_with( loggedinusernumber ) %]
                                                         <form action="opac-shelves.pl" method="post" id="unshare[% s.shelfnumber | html %]" class="d-inline">
                                                             <input type="hidden" name="op" value="remove_share" />
index 42a8898..5bd342f 100755 (executable)
@@ -89,6 +89,7 @@ $public = 1 if $query->param('public') && $query->param('public') == 1;
 
 my ( $shelf, $shelfnumber, @messages );
 
+# PART 1: Perform a few actions
 if ( $op eq 'add_form' ) {
     # Only pass default
     $shelf = { allow_change_from_owner => 1 };
@@ -255,8 +256,11 @@ if ( $op eq 'add_form' ) {
         push @messages, { type => 'error', code => 'does_not_exist' };
     }
     $op = 'view';
+} elsif( $op eq 'transfer' ) {
+    $op = 'list'; # TODO
 }
 
+# PART 2: After a possible action, view one list or show a number of lists
 if ( $op eq 'view' ) {
     $shelfnumber ||= $query->param('shelfnumber');
     $shelf = Koha::Virtualshelves->find($shelfnumber);
@@ -424,9 +428,7 @@ if ( $op eq 'view' ) {
     } else {
         push @messages, { type => 'error', code => 'does_not_exist' };
     }
-}
-
-if ( $op eq 'list' ) {
+} elsif ( $op eq 'list' ) {
     my $shelves;
     my ( $page, $rows ) = ( $query->param('page') || 1, 20 );
     if ( !$public ) {
@@ -444,6 +446,7 @@ if ( $op eq 'list' ) {
         ),
     );
 }
+
 my $staffuser;
 $staffuser = Koha::Patrons->find( $loggedinuser )->can_patron_change_staff_only_lists if $loggedinuser;
 $template->param(