|
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 |
- |
|
|