View | Details | Raw Unified | Return to bug 3523
Collapse All | Expand All

(-)a/C4/VirtualShelves.pm (-1 / +24 lines)
Lines 47-53 BEGIN { Link Here
47
            &GetBibliosShelves
47
            &GetBibliosShelves
48
	);
48
	);
49
        @EXPORT_OK = qw(
49
        @EXPORT_OK = qw(
50
            &GetShelvesSummary &GetRecentShelves
50
            &GetShelvesSummary &GetRecentShelves &GetAllShelves
51
            &RefreshShelvesSummary &SetShelvesLimit
51
            &RefreshShelvesSummary &SetShelvesLimit
52
        );
52
        );
53
}
53
}
Lines 212-217 sub GetRecentShelves ($$$) { Link Here
212
	return ( \@shelflist, $total );
212
	return ( \@shelflist, $total );
213
}
213
}
214
214
215
=head2 GetAllShelves
216
217
    ($shelflist) = GetAllShelves($owner)
218
219
This function returns a references to an array of hashrefs containing all shelves sorted
220
by the shelf name.
221
222
This function is intended to return a dataset reflecting all the shelves for
223
the submitted parameters.
224
225
=cut
226
227
sub GetAllShelves ($$) {
228
    my ($category,$owner) = @_;
229
    my (@shelflist);
230
    my @params = ($category,$owner);
231
    my $query = "SELECT * FROM virtualshelves WHERE category = ? AND owner = ? ORDER BY shelfname ASC";
232
    my $sth = $dbh->prepare($query);
233
    $sth->execute(@params);
234
    @shelflist = $sth->fetchall_arrayref({});
235
    return ( \@shelflist );
236
}
237
215
=head2 GetShelf
238
=head2 GetShelf
216
239
217
  (shelfnumber,shelfname,owner,category,sortfield) = &GetShelf($shelfnumber);
240
  (shelfnumber,shelfname,owner,category,sortfield) = &GetShelf($shelfnumber);
(-)a/koha-tmpl/opac-tmpl/prog/en/includes/masthead.inc (-1 / +1 lines)
Lines 159-165 Link Here
159
		<!-- /TMPL_IF -->
159
		<!-- /TMPL_IF -->
160
		<!-- TMPL_IF NAME="bartotal" -->
160
		<!-- TMPL_IF NAME="bartotal" -->
161
			<ul class="second-of-type">
161
			<ul class="second-of-type">
162
            <li class="yuimenuitem"><a class="yuimenuitemlabel" href="/cgi-bin/koha/opac-shelves.pl?display=privateshelves">View all <!--TMPL_VAR NAME="bartotal" --> of your lists</a></li>
162
            <li class="yuimenuitem"><a class="yuimenuitemlabel" href="/cgi-bin/koha/opac-shelves.pl?display=privateshelves">View all <!--TMPL_VAR NAME="bartotal" --> of your private lists</a></li>
163
			</ul>
163
			</ul>
164
		<!-- /TMPL_IF -->
164
		<!-- /TMPL_IF -->
165
		<ul class="second-of-type">
165
		<ul class="second-of-type">
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-addbybiblionumber.tmpl (-2 / +13 lines)
Lines 22-31 Link Here
22
        	</li>
22
        	</li>
23
        <!-- /TMPL_LOOP -->
23
        <!-- /TMPL_LOOP -->
24
		</ul>
24
		</ul>
25
		<!-- TMPL_IF NAME="CGIvirtualshelves"-->
25
		<!-- TMPL_IF NAME="existingshelves" -->
26
			<form name="f1" action="/cgi-bin/koha/opac-addbybiblionumber.pl" method="post">
26
			<form name="f1" action="/cgi-bin/koha/opac-addbybiblionumber.pl" method="post">
27
    		<fieldset class="rows"><legend>Select a List</legend>
27
    		<fieldset class="rows"><legend>Select a List</legend>
28
			<ol><li>    <label for="shelfnumber">Add to list:</label> <!-- TMPL_VAR NAME="CGIvirtualshelves" --></li></ol>
28
			<ol><li>    <label for="shelfnumber">Add to list:</label> <select name="shelfnumber" id="shelfnumber">
29
				<!-- TMPL_IF NAME="privatevirtualshelves" --><optgroup label="Private Lists">
30
					<!-- TMPL_LOOP NAME="privatevirtualshelves" -->
31
					<option value="<!-- TMPL_VAR NAME="shelfnumber" -->"><!-- TMPL_VAR NAME="shelfname" --></option>
32
					<!-- /TMPL_LOOP -->
33
				</optgroup><!-- /TMPL_IF -->
34
				<!-- TMPL_IF NAME="publicvirtualshelves" --><optgroup label="Public Lists">
35
					<!-- TMPL_LOOP NAME="publicvirtualshelves" -->
36
					<option value="<!-- TMPL_VAR NAME="shelfnumber" -->"><!-- TMPL_VAR NAME="shelfname" --></option>
37
					<!-- /TMPL_LOOP -->
38
				</optgroup><!-- /TMPL_IF -->
39
			</select></li></ol>
29
 			<!-- TMPL_LOOP NAME="biblios" --> <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" /><!-- /TMPL_LOOP -->
40
 			<!-- TMPL_LOOP NAME="biblios" --> <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" /><!-- /TMPL_LOOP -->
30
    		<input type="hidden" name="modifyshelfcontents" value="1" /></fieldset>
41
    		<input type="hidden" name="modifyshelfcontents" value="1" /></fieldset>
31
    		<fieldset class="action"><input type="submit" value="Save" class="submit" /> <a class="close cancel" href="#">Cancel</a></fieldset>
42
    		<fieldset class="action"><input type="submit" value="Save" class="submit" /> <a class="close cancel" href="#">Cancel</a></fieldset>
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl (-3 / +10 lines)
Lines 105-113 $(document).ready(function(){ Link Here
105
	<!-- /TMPL_IF --><!-- TMPL_IF NAME="virtualshelves" --><!-- TMPL_IF NAME="loggedinusername" --><!-- TMPL_IF NAME="addbarshelves" -->
105
	<!-- /TMPL_IF --><!-- TMPL_IF NAME="virtualshelves" --><!-- TMPL_IF NAME="loggedinusername" --><!-- TMPL_IF NAME="addbarshelves" -->
106
	param1 += "<optgroup label=\""+_("Your Lists:")+"\">";<!-- TMPL_LOOP NAME="addbarshelvesloop" -->
106
	param1 += "<optgroup label=\""+_("Your Lists:")+"\">";<!-- TMPL_LOOP NAME="addbarshelvesloop" -->
107
	param1 += "<option id=\"s<!-- TMPL_VAR NAME="shelfnumber" -->\" value=\"addtolist\"><!-- TMPL_VAR NAME="shelfname" ESCAPE="html"--><\/option>";<!-- /TMPL_LOOP -->
107
	param1 += "<option id=\"s<!-- TMPL_VAR NAME="shelfnumber" -->\" value=\"addtolist\"><!-- TMPL_VAR NAME="shelfname" ESCAPE="html"--><\/option>";<!-- /TMPL_LOOP -->
108
    <!-- TMPL_IF NAME="bartotal" -->param1 += "<option value=\"morelists\">[ "+_("More lists")+" ]<\/option>";<!-- /TMPL_IF -->
108
	param1 += "<\/optgroup>";<!-- /TMPL_IF -->
109
	param1 += "<\/optgroup>";<!-- /TMPL_IF -->
109
	<!-- TMPL_IF NAME="addpubshelves" -->param1 += "<optgroup label=\""+_("Public Lists:")+"\">"<!-- TMPL_LOOP NAME="addpubshelvesloop" -->+"<option id=\"s<!-- TMPL_VAR NAME="shelfnumber" -->\" value=\"addtolist\"><!-- TMPL_VAR NAME="shelfname" ESCAPE="html"--><\/option>"<!-- /TMPL_LOOP --><!-- /TMPL_IF -->
110
	<!-- TMPL_IF NAME="addpubshelves" -->param1 += "<optgroup label=\""+_("Public Lists:")+"\">"<!-- TMPL_LOOP NAME="addpubshelvesloop" -->+"<option id=\"s<!-- TMPL_VAR NAME="shelfnumber" -->\" value=\"addtolist\"><!-- TMPL_VAR NAME="shelfname" ESCAPE="html"--><\/option>";<!-- /TMPL_LOOP --><!-- /TMPL_IF -->
110
	param1 +="<\/optgroup><option value=\"newlist\">[ "+_("New List")+" ]<\/option>"
111
	param1 += "<\/optgroup>";
112
    param1 += "<option value=\"newlist\">[ "+_("New List")+" ]<\/option>";
111
	<!-- /TMPL_IF -->
113
	<!-- /TMPL_IF -->
112
	<!-- /TMPL_IF -->
114
	<!-- /TMPL_IF -->
113
	param1 += "<\/select> <input type=\"submit\" class=\"submit\" value=\""+_("Save")+"\" />";
115
	param1 += "<\/select> <input type=\"submit\" class=\"submit\" value=\""+_("Save")+"\" />";
Lines 153-159 $(document).ready(function(){ Link Here
153
    <!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="TagsEnabled" -->$("#tagsel_span").html("<input id=\"tagsel_tag\" class=\"submit\" type=\"submit\" value=\"Tag\"/>");<!-- /TMPL_IF --><!-- /TMPL_IF -->
155
    <!-- TMPL_IF NAME="opacuserlogin" --><!-- TMPL_IF NAME="TagsEnabled" -->$("#tagsel_span").html("<input id=\"tagsel_tag\" class=\"submit\" type=\"submit\" value=\"Tag\"/>");<!-- /TMPL_IF --><!-- /TMPL_IF -->
154
156
155
	function cartList(){
157
	function cartList(){
156
			if($("#addto").find("option:selected").attr("value") == "addtolist"){
158
		if($("#addto").find("option:selected").attr("value") == "addtolist"){
157
			var shelfnumber = $("#addto").find("option:selected").attr("id").replace("s","");
159
			var shelfnumber = $("#addto").find("option:selected").attr("id").replace("s","");
158
			if (vShelfAdd()) {
160
			if (vShelfAdd()) {
159
			Dopop('/cgi-bin/koha/opac-addbybiblionumber.pl?selectedshelf='+shelfnumber+'&' + vShelfAdd());
161
			Dopop('/cgi-bin/koha/opac-addbybiblionumber.pl?selectedshelf='+shelfnumber+'&' + vShelfAdd());
Lines 164-169 $(document).ready(function(){ Link Here
164
			Dopop('/cgi-bin/koha/opac-addbybiblionumber.pl?newshelf=1&' + vShelfAdd());
166
			Dopop('/cgi-bin/koha/opac-addbybiblionumber.pl?newshelf=1&' + vShelfAdd());
165
			}<!-- TMPL_ELSE --> alert('You must be logged in to create or add to Lists'); <!-- /TMPL_IF -->
167
			}<!-- TMPL_ELSE --> alert('You must be logged in to create or add to Lists'); <!-- /TMPL_IF -->
166
			return false;
168
			return false;
169
        } else if($("#addto").find("option:selected").attr("value") == "morelists"){
170
            <!-- TMPL_IF NAME="loggedinusername" -->if (vShelfAdd()) {
171
            Dopop('/cgi-bin/koha/opac-addbybiblionumber.pl?' + vShelfAdd());
172
            }<!-- TMPL_ELSE --> alert('You must be logged in to create or add to Lists'); <!-- /TMPL_IF -->
173
            return false;
167
		}
174
		}
168
		if($("#addto").find("option:selected").attr("value") == "addtocart" || $("#addto").attr("class") == "addtocart"){
175
		if($("#addto").find("option:selected").attr("value") == "addtocart" || $("#addto").attr("class") == "addtocart"){
169
			addMultiple();
176
			addMultiple();
(-)a/opac/opac-addbybiblionumber.pl (-30 / +19 lines)
Lines 27-33 use warnings; Link Here
27
27
28
use C4::Biblio;
28
use C4::Biblio;
29
use CGI;
29
use CGI;
30
use C4::VirtualShelves qw/:DEFAULT GetRecentShelves RefreshShelvesSummary/;
30
use C4::VirtualShelves qw/:DEFAULT GetAllShelves RefreshShelvesSummary/;
31
use C4::Auth;
31
use C4::Auth;
32
use C4::Output;
32
use C4::Output;
33
use C4::Auth qw/get_session/;
33
use C4::Auth qw/get_session/;
Lines 96-131 else { Link Here
96
				"category$singlecategory" => 1
96
				"category$singlecategory" => 1
97
			);
97
			);
98
	} else {
98
	} else {
99
	# offer choice of shelves
100
	my $limit = 10;
101
    my @shelvesloop;
102
    my %shelvesloop;
103
    #grab each type of shelf, open (type 3) should not be limited by user.
104
    foreach my $shelftype (1,2,3) {
105
        my ($shelflist) = GetRecentShelves($shelftype, $limit, $shelftype == 3 ? undef : $loggedinuser);
106
        for my $shelf (@{ $shelflist->[0] }) {
107
            push(@shelvesloop, $shelf->{shelfnumber});
108
            $shelvesloop{$shelf->{shelfnumber}} = $shelf->{shelfname};
109
        }
110
    }
111
    my $CGIvirtualshelves;
112
    if ( @shelvesloop > 0 ) {
113
        $CGIvirtualshelves = CGI::scrolling_list (
114
            -name     => 'shelfnumber',
115
            -id     => 'shelfnumber',
116
            -values   => \@shelvesloop,
117
            -labels   => \%shelvesloop,
118
            -size     => 1,
119
            -tabindex => '',
120
            -multiple => 0
121
        );
122
99
123
	$template->param (
100
        my $privateshelves = GetAllShelves(1,$loggedinuser);
124
		CGIvirtualshelves       => $CGIvirtualshelves,
101
        my @privateshelves = @{$privateshelves};
125
	);
102
        warn scalar($privateshelves);
126
    }
103
        if(@privateshelves){
127
	}
104
			$template->param (
105
				privatevirtualshelves          => @privateshelves,
106
				existingshelves => 1
107
			);
108
		}
109
        my $publicshelves = GetAllShelves(2,$loggedinuser);
110
        my @publicshelves = @{$publicshelves};
111
        if(@publicshelves){
112
			$template->param (
113
				publicvirtualshelves          => @publicshelves,
114
				existingshelves => 1
115
			);
116
        }
128
117
118
}
129
	my @biblios;
119
	my @biblios;
130
	for my $bib (@biblionumber) {
120
	for my $bib (@biblionumber) {
131
		my $data = GetBiblioData( $bib );
121
		my $data = GetBiblioData( $bib );
132
- 

Return to bug 3523