Bug 28959: Add virtualshelves.public as a boolean
This patchset moves the 'category' attribute for virtual shelves, that takes values of 1 and 2 (private and public respectively) into a boolean for public. The DBRev is trivial, and the changes to the code are as well. To test: 1. have some known public and private lists 2. Apply this patches 3. Run: $ updatedatabase => SUCCESS: Public lists have public=1, private have public=0 4. Run: $ kshell k$ prove t/db_dependent/Utils/Datatables_Virtualshelves.t \ t/db_dependent/Virtualshelves.t => SUCCESS: Tests pass! 5. Try the feature in staff and OPAC => SUCCESS: All good 6. Sign off :-D Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
d38be59a48
commit
0c72031539
11 changed files with 144 additions and 155 deletions
|
@ -11,12 +11,10 @@ sub search {
|
|||
my $count = $params->{count};
|
||||
my $owner = $params->{owner};
|
||||
my $sortby = $params->{sortby};
|
||||
my $type = $params->{type};
|
||||
my $public = $params->{public} // 1;
|
||||
$public = $public ? 1 : 0;
|
||||
my $dt_params = $params->{dt_params};
|
||||
|
||||
# public is default
|
||||
$type = 2 if not $type or $type != 1;
|
||||
|
||||
# If not logged in user, be carreful and set the borrowernumber to 0
|
||||
# to prevent private lists lack
|
||||
my $loggedinuser = C4::Context->userenv->{'number'} || 0;
|
||||
|
@ -28,7 +26,7 @@ sub search {
|
|||
# FIXME refactore the following queries
|
||||
# We should call Koha::Virtualshelves
|
||||
my $select = q|
|
||||
SELECT vs.shelfnumber, vs.shelfname, vs.owner, vs.category AS type,
|
||||
SELECT vs.shelfnumber, vs.shelfname, vs.owner, vs.public AS public,
|
||||
vs.created_on, vs.lastmodified as modification_time,
|
||||
bo.surname, bo.firstname, vs.sortfield as sortby,
|
||||
count(vc.biblionumber) as count
|
||||
|
@ -45,7 +43,7 @@ sub search {
|
|||
|
||||
my @args;
|
||||
# private
|
||||
if ( $type == 1 ) {
|
||||
if ( !$public ) {
|
||||
my $join_vs .= q|
|
||||
LEFT JOIN virtualshelfshares sh ON sh.shelfnumber = vs.shelfnumber
|
||||
AND sh.borrowernumber = ?
|
||||
|
@ -71,10 +69,10 @@ sub search {
|
|||
push @args, $sortby;
|
||||
}
|
||||
|
||||
push @where_strs, 'category = ?';
|
||||
push @args, $type;
|
||||
push @where_strs, 'public = ?';
|
||||
push @args, $public;
|
||||
|
||||
if ( $type == 1 ) {
|
||||
if ( !$public ) {
|
||||
push @where_strs, '(vs.owner = ? OR sh.borrowernumber = ?)';
|
||||
push @args, $loggedinuser, $loggedinuser;
|
||||
}
|
||||
|
@ -95,7 +93,7 @@ sub search {
|
|||
$limit = "LIMIT $dt_params->{iDisplayStart},$dt_params->{iDisplayLength}";
|
||||
}
|
||||
|
||||
my $group_by = " GROUP BY vs.shelfnumber, vs.shelfname, vs.owner, vs.category,
|
||||
my $group_by = " GROUP BY vs.shelfnumber, vs.shelfname, vs.owner, vs.public,
|
||||
vs.created_on, vs.lastmodified, bo.surname, bo.firstname, vs.sortfield ";
|
||||
|
||||
my $query = join(
|
||||
|
@ -114,9 +112,9 @@ sub search {
|
|||
($iTotalDisplayRecords) = $dbh->selectrow_array( $query, undef, @args );
|
||||
|
||||
# Get the iTotalRecords DataTable variable
|
||||
$query = q|SELECT COUNT(vs.shelfnumber)| . $from_total . q| WHERE category = ?|;
|
||||
$query .= q| AND (vs.owner = ? OR sh.borrowernumber = ?)| if $type == 1;
|
||||
@args = $type == 1 ? ( $loggedinuser, $type, $loggedinuser, $loggedinuser ) : ( $type );
|
||||
$query = q|SELECT COUNT(vs.shelfnumber)| . $from_total . q| WHERE public = ?|;
|
||||
$query .= q| AND (vs.owner = ? OR sh.borrowernumber = ?)| if !$public;
|
||||
@args = !$public ? ( $loggedinuser, $public, $loggedinuser, $loggedinuser ) : ( $public );
|
||||
( $iTotalRecords ) = $dbh->selectrow_array( $query, undef, @args );
|
||||
|
||||
for my $shelf ( @$shelves ) {
|
||||
|
|
|
@ -37,17 +37,10 @@ Koha::Virtualshelf - Koha Virtualshelf Object class
|
|||
|
||||
=head1 API
|
||||
|
||||
=head2 Class Methods
|
||||
=head2 Class methods
|
||||
|
||||
=cut
|
||||
|
||||
=head3 type
|
||||
|
||||
=cut
|
||||
|
||||
our $PRIVATE = 1;
|
||||
our $PUBLIC = 2;
|
||||
|
||||
sub store {
|
||||
my ( $self ) = @_;
|
||||
|
||||
|
@ -72,12 +65,12 @@ sub store {
|
|||
|
||||
sub is_public {
|
||||
my ( $self ) = @_;
|
||||
return $self->category == $PUBLIC;
|
||||
return $self->public;
|
||||
}
|
||||
|
||||
sub is_private {
|
||||
my ( $self ) = @_;
|
||||
return $self->category == $PRIVATE;
|
||||
return !$self->public;
|
||||
}
|
||||
|
||||
sub is_shelfname_valid {
|
||||
|
@ -93,14 +86,14 @@ sub is_shelfname_valid {
|
|||
"virtualshelfshares.borrowernumber" => $self->owner,
|
||||
"me.owner" => $self->owner,
|
||||
};
|
||||
$conditions->{category} = $PRIVATE;
|
||||
$conditions->{public} = 0;
|
||||
}
|
||||
elsif ( $self->is_private and not defined $self->owner ) {
|
||||
$conditions->{owner} = undef;
|
||||
$conditions->{category} = $PRIVATE;
|
||||
$conditions->{public} = 0;
|
||||
}
|
||||
else {
|
||||
$conditions->{category} = $PUBLIC;
|
||||
$conditions->{public} = 1;
|
||||
}
|
||||
|
||||
my $count = Koha::Virtualshelves->search(
|
||||
|
@ -262,6 +255,12 @@ sub can_biblios_be_removed {
|
|||
# Same answer since bug 18228
|
||||
}
|
||||
|
||||
=head2 Internal methods
|
||||
|
||||
=head3 _type
|
||||
|
||||
=cut
|
||||
|
||||
sub _type {
|
||||
return 'Virtualshelve';
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ sub get_private_shelves {
|
|||
|
||||
$self->search(
|
||||
{
|
||||
category => 1,
|
||||
public => 0,
|
||||
-or => {
|
||||
'virtualshelfshares.borrowernumber' => $borrowernumber,
|
||||
'me.owner' => $borrowernumber,
|
||||
|
@ -69,7 +69,7 @@ sub get_public_shelves {
|
|||
|
||||
$self->search(
|
||||
{
|
||||
category => 2,
|
||||
public => 1,
|
||||
},
|
||||
{
|
||||
distinct => 'shelfnumber',
|
||||
|
@ -82,7 +82,7 @@ sub get_public_shelves {
|
|||
sub get_some_shelves {
|
||||
my ( $self, $params ) = @_;
|
||||
my $borrowernumber = $params->{borrowernumber} || 0;
|
||||
my $category = $params->{category} || 1;
|
||||
my $public = $params->{public} || 0;
|
||||
my $add_allowed = $params->{add_allowed};
|
||||
|
||||
my @conditions;
|
||||
|
@ -98,7 +98,7 @@ sub get_some_shelves {
|
|||
]
|
||||
};
|
||||
}
|
||||
if ( $category == 1 ) {
|
||||
if ( !$public ) {
|
||||
push @conditions, {
|
||||
-or =>
|
||||
{
|
||||
|
@ -110,7 +110,7 @@ sub get_some_shelves {
|
|||
|
||||
$self->search(
|
||||
{
|
||||
category => $category,
|
||||
public => $public,
|
||||
( @conditions ? ( -and => \@conditions ) : () ),
|
||||
},
|
||||
{
|
||||
|
@ -132,7 +132,7 @@ sub get_shelves_containing_record {
|
|||
{
|
||||
-or => [
|
||||
{
|
||||
category => 1,
|
||||
public => 0,
|
||||
-or => {
|
||||
'me.owner' => $borrowernumber,
|
||||
-or => {
|
||||
|
@ -140,11 +140,11 @@ sub get_shelves_containing_record {
|
|||
},
|
||||
}
|
||||
},
|
||||
{ category => 2 },
|
||||
{ public => 1 },
|
||||
]
|
||||
};
|
||||
} else {
|
||||
push @conditions, { category => 2 };
|
||||
push @conditions, { public => 1 };
|
||||
}
|
||||
|
||||
return Koha::Virtualshelves->search(
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
[% USE Asset %]
|
||||
[% USE Koha %]
|
||||
[% USE KohaDates %]
|
||||
[% SET PRIVATE = 1 %]
|
||||
[% SET PUBLIC = 2 %]
|
||||
[% SET footerjs = 1 %]
|
||||
[% INCLUDE 'doc-head-open.inc' %]
|
||||
<title>
|
||||
|
@ -66,7 +64,7 @@
|
|||
[% IF shelf AND shelf.is_private %]
|
||||
[% IF op == 'view' OR op == 'edit_form' %]
|
||||
<li>
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PRIVATE | uri %]">Your lists</a>
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&public=0">Your lists</a>
|
||||
</li>
|
||||
[% ELSE %]
|
||||
<li>
|
||||
|
@ -79,7 +77,7 @@
|
|||
[% ELSIF shelf AND shelf.is_public %]
|
||||
[% IF op == 'view' %]
|
||||
<li>
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PUBLIC | uri %]">Public lists</a>
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&public=1">Public lists</a>
|
||||
</li>
|
||||
[% ELSE %]
|
||||
<li>
|
||||
|
@ -352,17 +350,17 @@
|
|||
[% IF shelf.sortfield == "itemcallnumber" %]<option value="itemcallnumber" selected="selected">Call number</option>[% ELSE %]<option value="itemcallnumber">Call number</option>[% END %]
|
||||
[% IF shelf.sortfield == "dateadded" %]<option value="dateadded" selected="selected">Date added</option>[% ELSE %]<option value="dateadded">Date added</option>[% END %]
|
||||
</select></li>
|
||||
<li><label for="category">Category: </label>
|
||||
<select id="category" name="category" onchange="AdjustRemark()">
|
||||
<li><label for="public">Public: </label>
|
||||
<select id="public" name="public" onchange="AdjustRemark()">
|
||||
[% IF shelf.is_private %]
|
||||
<option value="1" selected="selected">Private</option>
|
||||
<option value="0" selected="selected">Private</option>
|
||||
[% ELSE %]
|
||||
<option value="1">Private</option>
|
||||
<option value="0">Private</option>
|
||||
[% END %]
|
||||
[% IF shelf.is_public %]
|
||||
<option value="2" selected="selected">Public</option>
|
||||
<option value="1" selected="selected">Public</option>
|
||||
[% ELSE %]
|
||||
<option value="2">Public</option>
|
||||
<option value="1">Public</option>
|
||||
[% END %]
|
||||
</select></li>
|
||||
|
||||
|
@ -376,10 +374,10 @@
|
|||
[% IF referer == 'view' %]
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber | uri %]" class="cancel">Cancel</a>
|
||||
[% ELSE %]
|
||||
[% IF category == PUBLIC %]
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PUBLIC | uri %]" class="cancel">Cancel</a>
|
||||
[% IF public %]
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&public=1" class="cancel">Cancel</a>
|
||||
[% ELSE %]
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PRIVATE | uri %]" class="cancel">Cancel</a>
|
||||
<a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&public=0" class="cancel">Cancel</a>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</fieldset>
|
||||
|
@ -510,11 +508,7 @@
|
|||
|
||||
[% IF op == 'list' %]
|
||||
$(document).ready(function(){
|
||||
[% IF category == PUBLIC %]
|
||||
var type = [% PUBLIC | html %];
|
||||
[% ELSE %]
|
||||
var type = [% PRIVATE | html %];
|
||||
[% END %]
|
||||
var public = [% public | html %];
|
||||
|
||||
var dtListResults = $("#listresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
|
||||
"aaSorting": [[ 5, "asc" ]],
|
||||
|
@ -522,8 +516,8 @@
|
|||
'sAjaxSource': "/cgi-bin/koha/svc/virtualshelves/search",
|
||||
'fnServerData': function(sSource, aoData, fnCallback) {
|
||||
aoData.push({
|
||||
'name': 'type',
|
||||
'value': type,
|
||||
'name': 'public',
|
||||
'value': public,
|
||||
},{
|
||||
'name': 'shelfname',
|
||||
'value': $("#searchshelfname_filter").val(),
|
||||
|
@ -541,7 +535,7 @@
|
|||
'value': 'vs.shelfname',
|
||||
},{
|
||||
'name': 'is_shared_sorton',
|
||||
'value': 'vs.category',
|
||||
'value': 'vs.public',
|
||||
},{
|
||||
'name': 'owner_sorton',
|
||||
'value': 'vs.owner',
|
||||
|
@ -566,7 +560,7 @@
|
|||
});
|
||||
},
|
||||
'aoColumns':[
|
||||
{ 'mDataProp': 'dt_type' },
|
||||
{ 'mDataProp': 'dt_public' },
|
||||
{ 'mDataProp': 'dt_shelfname' },
|
||||
{ 'mDataProp': 'dt_count' },
|
||||
{ 'mDataProp': 'dt_is_shared' },
|
||||
|
@ -589,7 +583,7 @@
|
|||
dtListResults.fnAddFilters("filter", 750);
|
||||
|
||||
var tabs = $("#tabs").tabs({
|
||||
[% IF category == PUBLIC %]
|
||||
[% IF public %]
|
||||
active: 1,
|
||||
[% ELSE %]
|
||||
active: 0,
|
||||
|
@ -597,10 +591,10 @@
|
|||
activate: function(e, ui) {
|
||||
var active = tabs.tabs("option", "active" );
|
||||
if ( active == 0 ) {
|
||||
type = [% PRIVATE | html %];
|
||||
public = 0;
|
||||
dtListResults.fnDraw();
|
||||
} else if ( active == 1 ) {
|
||||
type = [% PUBLIC | html %];
|
||||
public = 1;
|
||||
dtListResults.fnDraw();
|
||||
}
|
||||
}
|
||||
|
@ -804,12 +798,12 @@
|
|||
}
|
||||
|
||||
function AdjustRemark() {
|
||||
var category = $("#category").val();
|
||||
var public = $("#public").val();
|
||||
var perms = $("#allow_changes_from").val();
|
||||
|
||||
if( perms < 2 ) {
|
||||
$("#anyone_remark").hide();
|
||||
} else if( category==1 ) {
|
||||
} else if( public==0 ) {
|
||||
// If we move to Private (without shares), show Anyone remark
|
||||
// Note: the number of shares is not tested real-time
|
||||
[% IF !shelf.is_shared %]
|
||||
|
@ -817,7 +811,7 @@
|
|||
[% ELSE %]
|
||||
$("#anyone_remark").hide();
|
||||
[% END %]
|
||||
} else { // category==2
|
||||
} else { // public==1
|
||||
$("#anyone_remark").hide();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
"aaData": [
|
||||
[% FOREACH data IN aaData %]
|
||||
{
|
||||
"dt_type":
|
||||
"[% data.type | html %]",
|
||||
"dt_public":
|
||||
"[% data.public | html %]",
|
||||
"dt_shelfname":
|
||||
"<a href='/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% data.shelfnumber | html %]'>[% data.shelfname | html | $To %]</a>",
|
||||
"dt_count":
|
||||
"[% data.count | html %] item(s)",
|
||||
"dt_is_shared":
|
||||
"[% IF data.type == 2 %]Public[% ELSIF data.is_shared %]Shared[% ELSE %]Private[% END %]",
|
||||
"[% IF data.public %]Public[% ELSIF data.is_shared %]Shared[% ELSE %]Private[% END %]",
|
||||
"dt_owner":
|
||||
"<a href='/cgi-bin/koha/members/moremember.pl?borrowernumber=[% data.owner | html %]'>[% data.firstname | html | $To %] [% data.surname | html | $To %]</a>",
|
||||
"dt_sortby":
|
||||
|
@ -35,12 +35,12 @@
|
|||
[%~ SET action_block = '' ~%]
|
||||
[%~ IF can_manage_shelf OR can_delete_shelf ~%]
|
||||
[%~ shelfnumber = shelfnumber | html ~%]
|
||||
[%~ type = type | html ~%]
|
||||
[%~ public = public | html ~%]
|
||||
[%~ IF can_manage_shelf ~%]
|
||||
[%~ action_block = '<form action="shelves.pl" method="get">' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="shelfnumber" value="' _ shelfnumber _ '" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="op" value="edit_form" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="category" value="' _ type _ '" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="public" value="' _ public _ '" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="referer" value="list" />' ~%]
|
||||
[%~ action_block = action_block _ '<button class="editshelf btn btn-default btn-xs"><i class="fa fa-pencil"></i> Edit</button>' ~%]
|
||||
[%~ action_block = action_block _ '</form> ' ~%]
|
||||
|
@ -50,7 +50,7 @@
|
|||
[%~ action_block = action_block _ '<input type="hidden" name="shelves" value="1" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="op" value="delete" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="shelfnumber" value="' _ shelfnumber _ '" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="category" value="' _ type _ '" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="public" value="' _ public _ '" />' ~%]
|
||||
[%~ action_block = action_block _ '<input type="hidden" name="referer" value="list" />' ~%]
|
||||
[%~ action_block = action_block _ '<button type="submit" class="deleteshelf btn btn-default btn-xs"><i class="fa fa-trash"></i> Delete</button>' ~%]
|
||||
[%~ action_block = action_block _ '</form>' ~%]
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
[% USE raw %]
|
||||
[% USE Asset %]
|
||||
[% USE Koha %]
|
||||
[% SET PRIVATE = 1 %]
|
||||
[% SET PUBLIC = 2 %]
|
||||
[% SET TagsShowEnabled = ( ( Koha.Preference( 'TagsEnabled' ) == 1 ) && Koha.Preference('TagsShowOnList') ) %]
|
||||
[% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( Koha.Preference( 'TagsEnabled' ) == 1 ) && Koha.Preference('TagsInputOnList') ) %]
|
||||
|
||||
|
@ -10,7 +8,7 @@
|
|||
<form action="/cgi-bin/koha/opac-shelves.pl" method="post" id="deleteshelf[% shelf.shelfnumber | html %]" class="d-inline">
|
||||
<input type="hidden" name="op" value="delete" />
|
||||
<input type="hidden" name="referer" value="list" />
|
||||
<input type='hidden' name='category' value='[% category | html %]' />
|
||||
<input type='hidden' name='public' value='[% public | html %]' />
|
||||
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
||||
<button type="submit" class="btn btn-link remove deleteshelf" data-shelfnumber="[% shelf.shelfnumber | html %]" data-shelfname="[% shelf.shelfname | html %]" data-shared="[% shelf.is_shared | html %]" data-count="[% contents.count | html %]">
|
||||
<i class="fa fa-remove" aria-hidden="true"></i>
|
||||
|
@ -80,7 +78,7 @@
|
|||
[% IF shelf and shelf.is_private %]
|
||||
[% IF op == 'view' OR op == 'edit_form' %]
|
||||
<li class="breadcrumb-item">
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PRIVATE | uri %]">Your lists</a>
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0">Your lists</a>
|
||||
</li>
|
||||
[% ELSE %]
|
||||
<li class="breadcrumb-item active">
|
||||
|
@ -90,7 +88,7 @@
|
|||
[% ELSIF shelf AND shelf.is_public %]
|
||||
[% IF op == 'view' %]
|
||||
<li class="breadcrumb-item">
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PUBLIC | uri %]">Public lists</a>
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&public=1">Public lists</a>
|
||||
</li>
|
||||
[% ELSE %]
|
||||
<li class="breadcrumb-item active">
|
||||
|
@ -231,21 +229,21 @@
|
|||
<form method="get" action="/cgi-bin/koha/opac-shelves.pl" class="d-inline">
|
||||
<input type="hidden" name="op" value="edit_form" />
|
||||
<input type="hidden" name="referer" value="view" />
|
||||
<input type='hidden' name='category' value='[% shelf.category | html %]' />
|
||||
<input type='hidden' name='public' value='[% shelf.public | html %]' />
|
||||
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
||||
<button type="submit" class="btn btn-link editshelf"><i class="fa fa-fw fa-pencil-square-o" aria-hidden="true"></i> Edit list</button>
|
||||
</form>
|
||||
|
||||
[% PROCESS delete_shelf context = "details" %]
|
||||
|
||||
[% IF category == PRIVATE && Koha.Preference('OpacAllowSharingPrivateLists') %]
|
||||
[% IF !public && Koha.Preference('OpacAllowSharingPrivateLists') %]
|
||||
<a href="/cgi-bin/koha/opac-shareshelf.pl?op=invite&shelfnumber=[% shelf.shelfnumber | uri %]" class="btn btn-link sharelist"><i class="fa fa-fw fa-share" aria-hidden="true"></i> Share list</a>
|
||||
[% END %]
|
||||
[% ELSIF category == PRIVATE # not manageshelf and private means shared %]
|
||||
[% ELSIF !public # not manageshelf and private means shared %]
|
||||
<form action="/cgi-bin/koha/opac-shelves.pl" method="post" id="unshare[% shelf.shelfnumber | html %]" class="d-inline">
|
||||
<input type="hidden" name="op" value="remove_share" />
|
||||
<input type="hidden" name="referer" value="list" />
|
||||
<input type='hidden' name='category' value='[% category | html %]' />
|
||||
<input type='hidden' name='public' value='[% public | html %]' />
|
||||
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
||||
<button type="submit" class="btn btn-link remove remove_share" data-shelfname="[% shelf.shelfname | html %]" data-shelfnumber="[% shelf.shelfnumber | html %]">
|
||||
<i class="fa fa-remove" aria-hidden="true"></i> Remove share
|
||||
|
@ -522,7 +520,7 @@
|
|||
<form method="get" action="/cgi-bin/koha/opac-shelves.pl" class="d-inline">
|
||||
<input type="hidden" name="op" value="edit_form" />
|
||||
<input type="hidden" name="referer" value="view" />
|
||||
<input type="hidden" name="category" value="[% shelf.category | html %]" />
|
||||
<input type="hidden" name="public" value="[% shelf.public | html %]" />
|
||||
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
||||
<button type="submit" class="btn btn-link editshelf"><i class="fa fa-fw fa-pencil-square-o" aria-hidden="true"></i> Edit list</button>
|
||||
</form>
|
||||
|
@ -600,19 +598,19 @@
|
|||
[% END %]
|
||||
</select>
|
||||
</li>
|
||||
[% IF Koha.Preference('OpacAllowPublicListCreation') OR category == PUBLIC %]
|
||||
[% IF Koha.Preference('OpacAllowPublicListCreation') OR public == 1 %]
|
||||
<li>
|
||||
<label for="category">Category:</label>
|
||||
<select name="category" id="category" onchange="AdjustRemark()">
|
||||
<label for="public">Category:</label>
|
||||
<select name="public" id="public" onchange="AdjustRemark()">
|
||||
[% IF shelf.is_private %]
|
||||
<option value="1" selected="selected">Private</option>
|
||||
<option value="0" selected="selected">Private</option>
|
||||
[% ELSE %]
|
||||
<option value="1">Private</option>
|
||||
<option value="0">Private</option>
|
||||
[% END %]
|
||||
[% IF shelf.is_public %]
|
||||
<option value="2" selected="selected">Public</option>
|
||||
<option value="1" selected="selected">Public</option>
|
||||
[% ELSE %]
|
||||
<option value="2">Public</option>
|
||||
<option value="1">Public</option>
|
||||
[% END %]
|
||||
</select>
|
||||
[% IF shelf.is_public AND NOT Koha.Preference('OpacAllowPublicListCreation') %]
|
||||
|
@ -622,8 +620,8 @@
|
|||
[% END %]
|
||||
[% INCLUDE list_permissions %]
|
||||
</ol>
|
||||
[% UNLESS Koha.Preference('OpacAllowPublicListCreation') OR category == PUBLIC %]
|
||||
<input type="hidden" name="category" value="[% PRIVATE | html %]" />
|
||||
[% UNLESS Koha.Preference('OpacAllowPublicListCreation') OR public == 1 %]
|
||||
<input type="hidden" name="public" value="0" />
|
||||
[% END %]
|
||||
</fieldset> <!-- /.rows -->
|
||||
|
||||
|
@ -632,7 +630,7 @@
|
|||
[% IF referer == 'view' %]
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber | uri %]" class="cancel">Cancel</a>
|
||||
[% ELSE %]
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PRIVATE | uri %]" class="cancel">Cancel</a>
|
||||
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0" class="cancel">Cancel</a>
|
||||
[% END %]
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@ -642,26 +640,26 @@
|
|||
<div class="toptabs ui-tabs ui-widget ui-widget-content ui-corner-all">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
||||
[% IF category == PRIVATE %]
|
||||
<li id="privateshelves_tab" class="ui-state-default ui-corner-top ui-tabs-active ui-state-active"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PRIVATE | html %]">Your lists</a></li>
|
||||
[% IF !public %]
|
||||
<li id="privateshelves_tab" class="ui-state-default ui-corner-top ui-tabs-active ui-state-active"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0">Your lists</a></li>
|
||||
[% ELSE %]
|
||||
<li id="privateshelves_tab" class="ui-state-default ui-corner-top"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PRIVATE | html %]">Your lists</a></li>
|
||||
<li id="privateshelves_tab" class="ui-state-default ui-corner-top"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0">Your lists</a></li>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% IF category == PUBLIC %]
|
||||
<li id="publicshelves_tab" class="ui-state-default ui-corner-top ui-tabs-active ui-state-active"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PUBLIC | html %]">Public lists</a></li>
|
||||
[% IF public %]
|
||||
<li id="publicshelves_tab" class="ui-state-default ui-corner-top ui-tabs-active ui-state-active"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=1">Public lists</a></li>
|
||||
[% ELSE %]
|
||||
<li id="publicshelves_tab" class="ui-state-default ui-corner-top"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&category=[% PUBLIC | html %]">Public lists</a></li>
|
||||
<li id="publicshelves_tab" class="ui-state-default ui-corner-top"><a class="ui-tabs-anchor" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=1">Public lists</a></li>
|
||||
[% END %]
|
||||
</ul>
|
||||
|
||||
[% IF category == PRIVATE %]
|
||||
[% IF !public %]
|
||||
<div id="privateshelves" class="ui-tabs-panel ui-widget-content ui-corner-bottom" style="display:block;">
|
||||
[% ELSE %]
|
||||
<div id="publicshelves" class="ui-tabs-panel ui-widget-content ui-corner-bottom" style="display:block;">
|
||||
[% END %]
|
||||
|
||||
[% IF category == PRIVATE || Koha.Preference('OpacAllowPublicListCreation') %]
|
||||
[% IF !public || Koha.Preference('OpacAllowPublicListCreation') %]
|
||||
[% IF loggedinusername %]
|
||||
<div id="toolbar" class="toolbar"><a class="btn btn-link newshelf" href="/cgi-bin/koha/opac-shelves.pl?op=add_form"><i class="fa fa-plus" aria-hidden="true"></i> New list</a></div>
|
||||
[% ELSE %]
|
||||
|
@ -673,9 +671,9 @@
|
|||
|
||||
[% IF shelves.count %]
|
||||
<table class="table">
|
||||
[% IF category == PRIVATE %]
|
||||
[% IF !public %]
|
||||
<caption class="sr-only">Your lists</caption>
|
||||
[% ELSIF category == PUBLIC %]
|
||||
[% ELSIF public %]
|
||||
<caption class="sr-only">Public lists</caption>
|
||||
[% END %]
|
||||
<thead>
|
||||
|
@ -703,7 +701,7 @@
|
|||
[% IF 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="category" value="[% s.category | html %]" />
|
||||
<input type="hidden" name="public" value="[% s.public | html %]" />
|
||||
<input type="hidden" name="op" value="edit_form" />
|
||||
<input type="hidden" name="referer" value="list" />
|
||||
<button type="submit" class="btn btn-link editshelf"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit</button>
|
||||
|
@ -719,7 +717,7 @@
|
|||
<form action="opac-shelves.pl" method="post" id="unshare[% s.shelfnumber | html %]" class="d-inline">
|
||||
<input type="hidden" name="op" value="remove_share" />
|
||||
<input type="hidden" name="referer" value="list" />
|
||||
<input type='hidden' name='category' value='[% category | html %]' />
|
||||
<input type='hidden' name='public' value='[% public | html %]' />
|
||||
<input type="hidden" name="shelfnumber" value="[% s.shelfnumber | html %]" />
|
||||
<button type="submit" class="btn btn-link remove remove_share"
|
||||
data-shelfname="[% s.shelfname | html %]" data-shelfnumber="[% s.shelfnumber | html %]"><i class="fa fa-remove" aria-hidden="true"></i> Remove share</button>
|
||||
|
@ -732,7 +730,7 @@
|
|||
</table> <!-- /.table -->
|
||||
<div class="pages">[% pagination_bar | $raw %]</div>
|
||||
[% ELSE %]
|
||||
[% IF category == PUBLIC %]
|
||||
[% IF public %]
|
||||
<p>No public lists.</p>
|
||||
[% ELSIF loggedinusernumber %]
|
||||
<p>No private lists.</p>
|
||||
|
@ -1031,17 +1029,17 @@ function sortMenu( sorting_form ){
|
|||
}
|
||||
|
||||
function AdjustRemark() {
|
||||
var category;
|
||||
if( $("#category").length > 0 ) {
|
||||
category = $("#category").val();
|
||||
var public;
|
||||
if( $("#public").length > 0 ) {
|
||||
public = $("#public").val();
|
||||
} else {
|
||||
category = "[% category | html %]";
|
||||
public = "[% public | html %]";
|
||||
}
|
||||
var perms = $("#allow_changes_from").val();
|
||||
|
||||
if( perms < 2 ) {
|
||||
$("#anyone_remark").hide();
|
||||
} else if( category==1 ) {
|
||||
} else if( public==0 ) {
|
||||
// If we move to Private (without shares), show Anyone remark
|
||||
// Note: the number of shares is not tested real-time
|
||||
[% IF !shelf.is_shared %]
|
||||
|
|
|
@ -83,8 +83,8 @@ if (C4::Context->preference("BakerTaylorEnabled")) {
|
|||
}
|
||||
|
||||
my $referer = $query->param('referer') || $op;
|
||||
my $category = 1;
|
||||
$category = 2 if $query->param('category') && $query->param('category') == 2;
|
||||
my $public = 0;
|
||||
$public = 1 if $query->param('public') && $query->param('public') == 1;
|
||||
|
||||
my ( $shelf, $shelfnumber, @messages );
|
||||
|
||||
|
@ -96,7 +96,7 @@ if ( $op eq 'add_form' ) {
|
|||
$shelf = Koha::Virtualshelves->find($shelfnumber);
|
||||
|
||||
if ( $shelf ) {
|
||||
$category = $shelf->category;
|
||||
$public = $shelf->public;
|
||||
my $patron = Koha::Patrons->find( $shelf->owner );
|
||||
$template->param( owner => $patron, );
|
||||
unless ( $shelf->can_be_managed( $loggedinuser ) ) {
|
||||
|
@ -113,7 +113,7 @@ if ( $op eq 'add_form' ) {
|
|||
$shelf = Koha::Virtualshelf->new(
|
||||
{ shelfname => scalar $query->param('shelfname'),
|
||||
sortfield => scalar $query->param('sortfield'),
|
||||
category => $category,
|
||||
public => $public,
|
||||
allow_change_from_owner => $allow_changes_from > 0,
|
||||
allow_change_from_others => $allow_changes_from == ANYONE,
|
||||
owner => scalar $loggedinuser,
|
||||
|
@ -147,7 +147,7 @@ if ( $op eq 'add_form' ) {
|
|||
my $allow_changes_from = $query->param('allow_changes_from');
|
||||
$shelf->allow_change_from_owner( $allow_changes_from > 0 );
|
||||
$shelf->allow_change_from_others( $allow_changes_from == ANYONE );
|
||||
$shelf->category( $category );
|
||||
$shelf->public( $public );
|
||||
eval { $shelf->store };
|
||||
|
||||
if ($@) {
|
||||
|
@ -259,7 +259,7 @@ if ( $op eq 'view' ) {
|
|||
$shelf = Koha::Virtualshelves->find($shelfnumber);
|
||||
if ( $shelf ) {
|
||||
if ( $shelf->can_be_viewed( $loggedinuser ) ) {
|
||||
$category = $shelf->category;
|
||||
$public = $shelf->public;
|
||||
|
||||
# Sortfield param may still include sort order with :asc or :desc, but direction overrides it
|
||||
my( $sortfield, $direction );
|
||||
|
@ -424,7 +424,7 @@ if ( $op eq 'view' ) {
|
|||
if ( $op eq 'list' ) {
|
||||
my $shelves;
|
||||
my ( $page, $rows ) = ( $query->param('page') || 1, 20 );
|
||||
if ( $category == 1 ) {
|
||||
if ( !$public ) {
|
||||
$shelves = Koha::Virtualshelves->get_private_shelves({ page => $page, rows => $rows, borrowernumber => $loggedinuser, });
|
||||
} else {
|
||||
$shelves = Koha::Virtualshelves->get_public_shelves({ page => $page, rows => $rows, });
|
||||
|
@ -435,7 +435,7 @@ if ( $op eq 'list' ) {
|
|||
shelves => $shelves,
|
||||
pagination_bar => pagination_bar(
|
||||
q||, $pager->last_page - $pager->first_page + 1,
|
||||
$page, "page", { op => 'list', category => $category, }
|
||||
$page, "page", { op => 'list', public => $public, }
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -445,7 +445,7 @@ $template->param(
|
|||
referer => $referer,
|
||||
shelf => $shelf,
|
||||
messages => \@messages,
|
||||
category => $category,
|
||||
public => $public,
|
||||
print => scalar $query->param('print') || 0,
|
||||
listsview => 1,
|
||||
);
|
||||
|
|
|
@ -22,7 +22,7 @@ my ($template, $user, $cookie) = get_template_and_user({
|
|||
my $shelfname = $input->param('shelfname');
|
||||
my $count = $input->param('count');
|
||||
my $owner = $input->param('owner');
|
||||
my $type = $input->param('type');
|
||||
my $public = $input->param('public');
|
||||
my $sortby = $input->param('sortby');
|
||||
|
||||
# variable information for DataTables (id)
|
||||
|
@ -36,10 +36,10 @@ foreach (grep {$_ =~ /^mDataProp/} keys %dt_params) {
|
|||
my $results = C4::Utils::DataTables::VirtualShelves::search(
|
||||
{
|
||||
shelfname => $shelfname,
|
||||
count => $count,
|
||||
owner => $owner,
|
||||
type => $type,
|
||||
sortby => $sortby,
|
||||
count => $count,
|
||||
owner => $owner,
|
||||
public => $public,
|
||||
sortby => $sortby,
|
||||
dt_params => \%dt_params,
|
||||
}
|
||||
);
|
||||
|
|
|
@ -87,7 +87,7 @@ $john_smith{borrowernumber} = Koha::Patron->new( \%john_smith )->store->borrower
|
|||
my $shelf1 = Koha::Virtualshelf->new(
|
||||
{
|
||||
shelfname => 'my first private list (empty)',
|
||||
category => 1, # private
|
||||
public => 0,
|
||||
sortfield => 'author',
|
||||
owner => $john_doe{borrowernumber},
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ my $shelf1 = Koha::Virtualshelf->new(
|
|||
my $shelf2 = Koha::Virtualshelf->new(
|
||||
{
|
||||
shelfname => 'my second private list',
|
||||
category => 1, # private
|
||||
public => 0,
|
||||
sortfield => 'title',
|
||||
owner => $john_doe{borrowernumber},
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ $shelf2->add_biblio( $biblionumber5, $john_doe{borrowernumber} );
|
|||
my $shelf3 = Koha::Virtualshelf->new(
|
||||
{
|
||||
shelfname => 'The first public list',
|
||||
category => 2, # public
|
||||
public => 1,
|
||||
sortfield => 'author',
|
||||
owner => $jane_doe{borrowernumber},
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ $shelf3->add_biblio( $biblionumber8, $jane_doe{borrowernumber} );
|
|||
my $shelf4 = Koha::Virtualshelf->new(
|
||||
{
|
||||
shelfname => 'my second public list',
|
||||
category => 2, # public
|
||||
public => 1,
|
||||
sortfield => 'title',
|
||||
owner => $jane_doe{borrowernumber},
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ $shelf3->add_biblio( $biblionumber12, $jane_doe{borrowernumber} );
|
|||
my $shelf5 = Koha::Virtualshelf->new(
|
||||
{
|
||||
shelfname => 'my third private list',
|
||||
category => 1, # private
|
||||
public => 0,
|
||||
sortfield => 'title',
|
||||
owner => $jane_doe{borrowernumber},
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ for my $i ( 6 .. 15 ) {
|
|||
Koha::Virtualshelf->new(
|
||||
{
|
||||
shelfname => "another public list $i",
|
||||
category => 2,
|
||||
public => 1,
|
||||
owner => $john_smith{borrowernumber},
|
||||
}
|
||||
)->store;
|
||||
|
@ -188,7 +188,7 @@ t::lib::Mocks::mock_userenv({ patron => $john_doe_patron });
|
|||
$search_results = C4::Utils::DataTables::VirtualShelves::search({
|
||||
shelfname => "ist",
|
||||
dt_params => \%dt_params,
|
||||
type => 1,
|
||||
public => 0,
|
||||
});
|
||||
|
||||
is( $search_results->{ iTotalRecords }, 2,
|
||||
|
@ -203,7 +203,7 @@ is( @{ $search_results->{ shelves } }, 2,
|
|||
# Search by type only
|
||||
$search_results = C4::Utils::DataTables::VirtualShelves::search({
|
||||
dt_params => \%dt_params,
|
||||
type => 2,
|
||||
public => 1,
|
||||
});
|
||||
is( $search_results->{ iTotalRecords }, 12,
|
||||
"There should be 12 public shelves in total" );
|
||||
|
@ -218,7 +218,7 @@ is( @{ $search_results->{ shelves } }, 10,
|
|||
$search_results = C4::Utils::DataTables::VirtualShelves::search({
|
||||
owner => "jane",
|
||||
dt_params => \%dt_params,
|
||||
type => 2,
|
||||
public => 1,
|
||||
});
|
||||
is( $search_results->{ iTotalRecords }, 12,
|
||||
"There should be 12 public shelves in total" );
|
||||
|
@ -234,7 +234,7 @@ $search_results = C4::Utils::DataTables::VirtualShelves::search({
|
|||
owner => "smith",
|
||||
shelfname => "public list 1",
|
||||
dt_params => \%dt_params,
|
||||
type => 2,
|
||||
public => 1,
|
||||
});
|
||||
is( $search_results->{ iTotalRecords }, 12,
|
||||
"There should be 12 public shelves in total" );
|
||||
|
|
|
@ -34,7 +34,7 @@ subtest 'CRUD' => sub {
|
|||
my $shelf = Koha::Virtualshelf->new({
|
||||
shelfname => "my first shelf",
|
||||
owner => $patron->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
|
||||
|
@ -61,7 +61,7 @@ subtest 'CRUD' => sub {
|
|||
$shelf = Koha::Virtualshelf->new({
|
||||
shelfname => "my first shelf",
|
||||
owner => $patron->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
};
|
||||
|
@ -77,7 +77,7 @@ subtest 'CRUD' => sub {
|
|||
$shelf = Koha::Virtualshelf->new({
|
||||
shelfname => "my first shelf",
|
||||
owner => $another_patron->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
$number_of_shelves = Koha::Virtualshelves->search->count;
|
||||
|
@ -109,14 +109,14 @@ subtest 'Sharing' => sub {
|
|||
my $shelf_to_share = Koha::Virtualshelf->new({
|
||||
shelfname => "my first shelf",
|
||||
owner => $patron_wants_to_share->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
|
||||
my $shelf_not_to_share = Koha::Virtualshelf->new({
|
||||
shelfname => "my second shelf",
|
||||
owner => $patron_wants_to_share->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
|
||||
|
@ -186,7 +186,7 @@ subtest 'Shelf content' => sub {
|
|||
my $shelf = Koha::Virtualshelf->new(
|
||||
{ shelfname => "my first shelf",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
lastmodified => $dt_yesterday,
|
||||
}
|
||||
)->store;
|
||||
|
@ -263,7 +263,7 @@ subtest 'Shelf permissions' => sub {
|
|||
my $public_shelf = Koha::Virtualshelf->new(
|
||||
{ shelfname => "my first shelf",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 2,
|
||||
public => 1,
|
||||
allow_change_from_owner => 0,
|
||||
allow_change_from_others => 0,
|
||||
}
|
||||
|
@ -307,7 +307,7 @@ subtest 'Shelf permissions' => sub {
|
|||
my $private_shelf = Koha::Virtualshelf->new(
|
||||
{ shelfname => "my first shelf",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
allow_change_from_owner => 0,
|
||||
allow_change_from_others => 0,
|
||||
}
|
||||
|
@ -363,31 +363,31 @@ subtest 'Get shelves' => sub {
|
|||
my $private_shelf1_1 = Koha::Virtualshelf->new({
|
||||
shelfname => "private shelf 1 for patron 1",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
my $private_shelf1_2 = Koha::Virtualshelf->new({
|
||||
shelfname => "private shelf 2 for patron 1",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
my $private_shelf2_1 = Koha::Virtualshelf->new({
|
||||
shelfname => "private shelf 1 for patron 2",
|
||||
owner => $patron2->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
my $public_shelf1_1 = Koha::Virtualshelf->new({
|
||||
shelfname => "public shelf 1 for patron 1",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 2,
|
||||
public => 1,
|
||||
}
|
||||
)->store;
|
||||
my $public_shelf1_2 = Koha::Virtualshelf->new({
|
||||
shelfname => "public shelf 2 for patron 1",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 2,
|
||||
public => 1,
|
||||
}
|
||||
)->store;
|
||||
|
||||
|
@ -419,19 +419,19 @@ subtest 'Get shelves containing biblios' => sub {
|
|||
my $shelf1 = Koha::Virtualshelf->new(
|
||||
{ shelfname => "my first shelf",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
my $shelf2 = Koha::Virtualshelf->new(
|
||||
{ shelfname => "my x second shelf", # 'x' to make it sorted after 'third'
|
||||
owner => $patron2->{borrowernumber},
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
)->store;
|
||||
my $shelf3 = Koha::Virtualshelf->new(
|
||||
{ shelfname => "my third shelf",
|
||||
owner => $patron1->{borrowernumber},
|
||||
category => 2,
|
||||
public => 1,
|
||||
}
|
||||
)->store;
|
||||
|
||||
|
|
|
@ -52,9 +52,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
|||
}
|
||||
);
|
||||
|
||||
my $op = $query->param('op') || 'list';
|
||||
my $referer = $query->param('referer') || $op;
|
||||
my $category = $query->param('category') || 1;
|
||||
my $op = $query->param('op') || 'list';
|
||||
my $referer = $query->param('referer') || $op;
|
||||
my $public = $query->param('public') ? 1 : 0;
|
||||
my ( $shelf, $shelfnumber, @messages );
|
||||
|
||||
if ( $op eq 'add_form' ) {
|
||||
|
@ -65,7 +65,7 @@ if ( $op eq 'add_form' ) {
|
|||
$shelf = Koha::Virtualshelves->find($shelfnumber);
|
||||
|
||||
if ( $shelf ) {
|
||||
$category = $shelf->category;
|
||||
$public = $shelf->public;
|
||||
my $patron = Koha::Patrons->find( $shelf->owner )->unblessed;
|
||||
$template->param( owner => $patron, );
|
||||
unless ( $shelf->can_be_managed( $loggedinuser ) ) {
|
||||
|
@ -81,7 +81,7 @@ if ( $op eq 'add_form' ) {
|
|||
$shelf = Koha::Virtualshelf->new(
|
||||
{ shelfname => scalar $query->param('shelfname'),
|
||||
sortfield => scalar $query->param('sortfield'),
|
||||
category => scalar $query->param('category'),
|
||||
public => $public,
|
||||
allow_change_from_owner => $allow_changes_from > 0,
|
||||
allow_change_from_others => $allow_changes_from == ANYONE,
|
||||
owner => scalar $query->param('owner'),
|
||||
|
@ -113,7 +113,7 @@ if ( $op eq 'add_form' ) {
|
|||
my $allow_changes_from = $query->param('allow_changes_from');
|
||||
$shelf->allow_change_from_owner( $allow_changes_from > 0 );
|
||||
$shelf->allow_change_from_others( $allow_changes_from == ANYONE );
|
||||
$shelf->category( scalar $query->param('category') );
|
||||
$shelf->public( scalar $query->param('public') );
|
||||
eval { $shelf->store };
|
||||
|
||||
if ($@) {
|
||||
|
@ -310,14 +310,14 @@ if ( $op eq 'view' ) {
|
|||
{
|
||||
borrowernumber => $loggedinuser,
|
||||
add_allowed => 1,
|
||||
category => 1,
|
||||
public => 0,
|
||||
}
|
||||
);
|
||||
my $some_public_shelves = Koha::Virtualshelves->get_some_shelves(
|
||||
{
|
||||
borrowernumber => $loggedinuser,
|
||||
add_allowed => 1,
|
||||
category => 2,
|
||||
public => 1,
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -356,7 +356,7 @@ $template->param(
|
|||
referer => $referer,
|
||||
shelf => $shelf,
|
||||
messages => \@messages,
|
||||
category => $category,
|
||||
public => $public,
|
||||
print => scalar $query->param('print') || 0,
|
||||
csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ],
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue