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