Lines 59-64
my $referer = $query->param('referer') || $op;
Link Here
|
59 |
my $public = $query->param('public') ? 1 : 0; |
59 |
my $public = $query->param('public') ? 1 : 0; |
60 |
my ( $shelf, $shelfnumber, @messages, $allow_transfer ); |
60 |
my ( $shelf, $shelfnumber, @messages, $allow_transfer ); |
61 |
|
61 |
|
|
|
62 |
# PART1: Perform a few actions |
62 |
if ( $op eq 'add_form' ) { |
63 |
if ( $op eq 'add_form' ) { |
63 |
# Only pass default |
64 |
# Only pass default |
64 |
$shelf = { allow_change_from_owner => 1 }; |
65 |
$shelf = { allow_change_from_owner => 1 }; |
Lines 238-260
if ( $op eq 'add_form' ) {
Link Here
|
238 |
$shelfnumber = $query->param('shelfnumber'); |
239 |
$shelfnumber = $query->param('shelfnumber'); |
239 |
$shelf = Koha::Virtualshelves->find($shelfnumber) if $shelfnumber; |
240 |
$shelf = Koha::Virtualshelves->find($shelfnumber) if $shelfnumber; |
240 |
my $new_owner = $query->param('new_owner'); # is a borrowernumber |
241 |
my $new_owner = $query->param('new_owner'); # is a borrowernumber |
|
|
242 |
my $error_code = $shelf |
243 |
? $shelf->cannot_be_transferred({ by => $loggedinuser, to => $new_owner, interface => 'intranet' }) |
244 |
: 'does_not_exist'; |
241 |
|
245 |
|
242 |
if( $new_owner ) { |
246 |
if( !$new_owner && $error_code eq 'missing_to_parameter' ) { |
|
|
247 |
# show form |
248 |
} elsif( $error_code ) { |
249 |
push @messages, { type => 'error', code => $error_code }; |
250 |
$op = 'list'; |
251 |
} else { |
252 |
$shelf->owner($new_owner)->store; |
243 |
$op = 'list'; |
253 |
$op = 'list'; |
244 |
# First check: shelf found, permission, patron found? |
|
|
245 |
if( !$shelf ) { |
246 |
push @messages, { type => 'alert', code => 'does_not_exist' }; |
247 |
} elsif( !haspermission(C4::Context->userenv->{id}, { lists => 'edit_public_lists' }) ) { |
248 |
push @messages, { type => 'alert', code => 'unauthorized_transfer' }; |
249 |
} elsif( !Koha::Patrons->find($new_owner) ) { |
250 |
push @messages, { type => 'alert', code => 'new_owner_not_found' }; |
251 |
$op = 'transfer'; # find again.. |
252 |
} else { # success |
253 |
$shelf->owner($new_owner)->store; |
254 |
} |
255 |
} |
254 |
} |
256 |
} |
255 |
} |
257 |
|
256 |
|
|
|
257 |
# PART2: After a possible action, further prepare form |
258 |
if ( $op eq 'view' ) { |
258 |
if ( $op eq 'view' ) { |
259 |
$shelfnumber ||= $query->param('shelfnumber'); |
259 |
$shelfnumber ||= $query->param('shelfnumber'); |
260 |
$shelf = Koha::Virtualshelves->find($shelfnumber); |
260 |
$shelf = Koha::Virtualshelves->find($shelfnumber); |
Lines 374-379
if ( $op eq 'view' ) {
Link Here
|
374 |
} |
374 |
} |
375 |
} elsif( $op eq 'list' ) { |
375 |
} elsif( $op eq 'list' ) { |
376 |
$allow_transfer = haspermission( C4::Context->userenv->{id}, { lists => 'edit_public_lists' } ) ? 1 : 0; |
376 |
$allow_transfer = haspermission( C4::Context->userenv->{id}, { lists => 'edit_public_lists' } ) ? 1 : 0; |
|
|
377 |
# this check only serves for button display |
377 |
} |
378 |
} |
378 |
|
379 |
|
379 |
$template->param( |
380 |
$template->param( |
380 |
- |
|
|