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

(-)a/C4/RFID.pm (+172 lines)
Line 0 Link Here
1
package C4::RFID;
2
3
# Copyright 2008-2009 TTLLP software.coop
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along with
17
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
18
# Suite 330, Boston, MA  02111-1307 USA
19
#
20
# These are helper functions for reading and writing RFID tags like
21
# http://64.233.183.104/search?q=cache:0CdhriqgCJIJ:www.bs.dk/standards/RFID%2520Data%2520Model%2520for%2520Libraries.pdf
22
23
use vars qw($VERSION);
24
$VERSION='0.02';
25
26
use Digest::CRC qw(crcccitt_hex);
27
use C4::Context;
28
require Exporter;
29
@ISA = qw(Exporter);
30
@EXPORT_OK = qw(ReadBarcode WriteBarcode CheckinBarcode CheckoutBarcode MakeTag ParseTag);
31
32
BEGIN {
33
    if (C4::Context->preference('RFIDEnabled') eq 'TRF7960-SSL') {
34
        require RFID::TRF7960::Reader::SSL;
35
    }
36
# This may go OO later to support multiple reader types
37
}
38
39
# This has various assumptions hardcoded in from our
40
# first application.  Sorry.
41
42
sub ReadBarcode {
43
    my ($checkedin) = @_;
44
    my $reader = RFID::TRF7960::Reader::SSL->new(
45
        PeerAddr=> $ENV{'REMOTE_ADDR'}.':9443',
46
        Timeout=>5
47
    );
48
    my @tags = $reader->readtags();
49
    if ($checkedin == 1) {
50
        while ((@tags) && (scalar($tags[0]->get('afi')) ne '9E')) {
51
            shift(@tags);
52
        }
53
    }
54
    if (@tags) {
55
        $tags[0]->get('length');
56
        my $tagdata = ParseTag(scalar($tags[0]->get('data')));
57
        return $tagdata->{barcode};
58
    } else {
59
        return 0;
60
    }
61
}
62
63
sub WriteBarcode {
64
    my ($barcode) = @_;
65
    my $reader = RFID::TRF7960::Reader::SSL->new(
66
        PeerAddr=> $ENV{'REMOTE_ADDR'}.':9443',
67
        Timeout=>5
68
    );
69
    my @tags = $reader->readtags();
70
    # overwrite the first and only tag we see...
71
    if (scalar(@tags) == 1) {
72
        $tags[0]->get('length');
73
        $reader->writetag($tags[0],'9E','00',MakeTag(barcode=>$barcode));
74
        return 1;
75
    } else {
76
        return 0;
77
    }
78
}
79
80
sub ischeckedin {
81
    my ($barcode) = @_;
82
    my $tagdata;
83
    my $reader = RFID::TRF7960::Reader::SSL->new(
84
        PeerAddr=> $ENV{'REMOTE_ADDR'}.':9443',
85
        Timeout=>5
86
    );
87
    my @tags = $reader->readtags();
88
    foreach my $tag (@tags) {
89
        $tag->get('length');
90
        $tagdata = ParseTag(scalar($tag->get('data')));
91
        if ($tagdata->{barcode} eq $barcode) {
92
            return (scalar($tag->get('afi')) eq '9E');
93
        }
94
    }
95
    return -1;
96
}
97
98
sub CheckinBarcode {
99
    my ($barcode) = @_;
100
    my $tagdata;
101
    my $reader = RFID::TRF7960::Reader::SSL->new(
102
        PeerAddr=> $ENV{'REMOTE_ADDR'}.':9443',
103
        Timeout=>5
104
    );
105
    my @tags = $reader->readtags();
106
    foreach my $tag (@tags) {
107
        if ($barcode) {
108
            $tag->get('length');
109
            $tagdata = ParseTag(scalar($tag->get('data')));
110
            if ($tagdata->{barcode} eq $barcode) {
111
                $reader->writeafi($tag,'9E');
112
            }
113
        } else {
114
            $reader->writeafi($tag,'9E');
115
        }
116
    }
117
    return 1;
118
}
119
120
sub CheckoutBarcode {
121
    my ($barcode) = @_;
122
    my $tagdata;
123
    my $reader = RFID::TRF7960::Reader::SSL->new(
124
        PeerAddr=> $ENV{'REMOTE_ADDR'}.':9443',
125
        Timeout=>5
126
    );
127
    my @tags = $reader->readtags();
128
    foreach my $tag (@tags) {
129
        if ($barcode) {
130
            $tag->get('length');
131
            $tagdata = ParseTag(scalar($tag->get('data')));
132
            if ($tagdata->{barcode} eq $barcode) {
133
                $reader->writeafi($tag,'9D');
134
            }
135
        } else {
136
            $reader->writeafi($tag,'9D');
137
        }
138
    }
139
    return 1;
140
}
141
142
sub MakeTag {
143
    my %p = @_;
144
    my $start =
145
        chr((($p{version}||1)<<4)+($p{status}||1))
146
        .chr($p{parts}||1)
147
        .chr($p{ordinal}||1)
148
        .$p{barcode}.("\0"x(16-length($p{barcode})));
149
    my $end =
150
        ($p{country}||'GB')
151
        .($p{library}||"\cb12345678");
152
    return($start
153
        .pack('H*',crcccitt_hex($start.$end."\0\0"))
154
        .$end);    
155
}
156
157
sub ParseTag {
158
    my $data = shift;
159
    my $barcode = substr($data,3,16);
160
    $barcode =~ s/\0+$//;
161
    return {
162
        'version'=>(ord(substr($data,0,1))>>4),
163
        'status'=>(ord(substr($data,0,1))&15),
164
        'parts'=>ord(substr($data,1,1)),
165
        'ordinal'=>ord(substr($data,2,1)),
166
        'barcode'=>$barcode,
167
        'country'=>substr($data,21,2),
168
        'library'=>substr($data,23,9),
169
    };
170
}
171
172
1;
(-)a/admin/systempreferences.pl (+1 lines)
Lines 183-188 $tabsysprefs{IntranetmainUserblock} = "StaffClient"; Link Here
183
$tabsysprefs{viewMARC}                = "StaffClient";
183
$tabsysprefs{viewMARC}                = "StaffClient";
184
$tabsysprefs{viewLabeledMARC}         = "StaffClient";
184
$tabsysprefs{viewLabeledMARC}         = "StaffClient";
185
$tabsysprefs{viewISBD}                = "StaffClient";
185
$tabsysprefs{viewISBD}                = "StaffClient";
186
$tabsysprefs{RFIDEnabled}             = "StaffClient";
186
187
187
# Patrons
188
# Patrons
188
$tabsysprefs{autoMemberNum}                = "Patrons";
189
$tabsysprefs{autoMemberNum}                = "Patrons";
(-)a/catalogue/moredetail.pl (+2 lines)
Lines 1-6 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
# Copyright 2000-2003 Katipo Communications
3
# Copyright 2000-2003 Katipo Communications
4
#           2008-2009 TTLLP software.coop
4
#
5
#
5
# This file is part of Koha.
6
# This file is part of Koha.
6
#
7
#
Lines 131-136 $template->param(biblioitemnumber => $bi); Link Here
131
$template->param(itemnumber => $itemnumber);
132
$template->param(itemnumber => $itemnumber);
132
$template->param(ONLY_ONE => 1) if ( $itemnumber && $count != @items );
133
$template->param(ONLY_ONE => 1) if ( $itemnumber && $count != @items );
133
$template->param(z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)));
134
$template->param(z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)));
135
$template->param(RFID => 1) if (C4::Context->preference('RFIDEnabled'));
134
136
135
output_html_with_http_headers $query, $cookie, $template->output;
137
output_html_with_http_headers $query, $cookie, $template->output;
136
138
(-)a/catalogue/writetag.pl (+31 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2008-2009 TTLLP software.coop
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along with
17
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
18
# Suite 330, Boston, MA  02111-1307 USA
19
20
21
use strict;
22
use CGI;
23
use C4::Context;
24
use C4::RFID qw(WriteBarcode);
25
26
my $query=new CGI;
27
28
# Both of these calls are a bit unsafe and could be improved
29
WriteBarcode($query->param('code'));
30
print $query->redirect($query->referer());
31
(-)a/circ/circulation.pl (-25 / +57 lines)
Lines 4-9 Link Here
4
# script to execute issuing of books
4
# script to execute issuing of books
5
5
6
# Copyright 2000-2002 Katipo Communications
6
# Copyright 2000-2002 Katipo Communications
7
#           2008-2009 TTLLP software.coop
7
#
8
#
8
# This file is part of Koha.
9
# This file is part of Koha.
9
#
10
#
Lines 43-48 use Date::Calc qw( Link Here
43
  Date_to_Days
44
  Date_to_Days
44
);
45
);
45
46
47
BEGIN {
48
	if (C4::Context->preference('RFIDEnabled')) {
49
		require C4::RFID;
50
		import C4::RFID qw/ReadBarcode CheckoutBarcode/;
51
	}
52
}
46
53
47
#
54
#
48
# PARAMETERS READING
55
# PARAMETERS READING
Lines 113-118 if (C4::Context->preference("DisplayClearScreenButton")) { Link Here
113
my $barcode        = $query->param('barcode') || '';
120
my $barcode        = $query->param('barcode') || '';
114
$barcode =~  s/^\s*|\s*$//g; # remove leading/trailing whitespace
121
$barcode =~  s/^\s*|\s*$//g; # remove leading/trailing whitespace
115
122
123
my $rfid = 0;
124
if (C4::Context->preference('RFIDEnabled') && $query->param('rfid')) {
125
	$barcode = ReadBarcode(1);
126
	$rfid = 1;
127
}
128
116
$barcode = barcodedecode($barcode) if( $barcode && C4::Context->preference('itemBarcodeInputFilter'));
129
$barcode = barcodedecode($barcode) if( $barcode && C4::Context->preference('itemBarcodeInputFilter'));
117
my $stickyduedate  = $query->param('stickyduedate') || $session->param('stickyduedate');
130
my $stickyduedate  = $query->param('stickyduedate') || $session->param('stickyduedate');
118
my $duedatespec    = $query->param('duedatespec')   || $session->param('stickyduedate');
131
my $duedatespec    = $query->param('duedatespec')   || $session->param('stickyduedate');
Lines 293-323 if ($barcode) { Link Here
293
            );
306
            );
294
            $blocker = 1;
307
            $blocker = 1;
295
        }
308
        }
296
    if( !$blocker ){
309
    
297
        my $confirm_required = 0;
310
  if ($issueconfirmed && $noerror) {
298
    	unless($issueconfirmed){
311
    # we have no blockers for issuing and any issues needing confirmation have been resolved
299
            #  Get the item title for more information
312
        AddIssue( $borrower, $barcode, $datedue, $cancelreserve );
300
            my $getmessageiteminfo  = GetBiblioFromItemNumber(undef,$barcode);
313
        $inprocess = 1;
301
		    $template->param( itemhomebranch => $getmessageiteminfo->{'homebranch'} );
314
	if ($rfid) {
302
315
		CheckoutBarcode();
303
		    # pass needsconfirmation to template if issuing is possible and user hasn't yet confirmed.
316
	}
304
       	    foreach my $needsconfirmation ( keys %$question ) {
317
    }
305
       	        $template->param(
318
  elsif ($issueconfirmed){	# FIXME: Do something? Or is this to *intentionally* do nothing?
306
       	            $needsconfirmation => $$question{$needsconfirmation},
319
  }
307
       	            getTitleMessageIteminfo => $getmessageiteminfo->{'title'},
320
  else {
308
       	            NEEDSCONFIRMATION  => 1
321
        my $noquestion = 1;
309
       	        );
322
#         Get the item title for more information
310
       	        $confirm_required = 1;
323
    	my $getmessageiteminfo  = GetBiblioFromItemNumber(undef,$barcode);
311
       	    }
324
		if ($noerror) {
312
		}
325
			# only pass needsconfirmation to template if issuing is possible 
313
        unless($confirm_required) {
326
        	foreach my $needsconfirmation ( keys %$question ) {
314
            AddIssue( $borrower, $barcode, $datedue, $cancelreserve );
327
        	    $template->param(
315
			$inprocess = 1;
328
        	        $needsconfirmation => $$question{$needsconfirmation},
316
            if($globalduedate && ! $stickyduedate && $duedatespec_allow ){
329
        	        getTitleMessageIteminfo => $getmessageiteminfo->{'title'},
317
                $duedatespec = $globalduedate->output();
330
        	        NEEDSCONFIRMATION  => 1
318
                $stickyduedate = 1;
331
        	    );
319
            }
332
        	    $noquestion = 0;
320
		}
333
        	}
334
			# Because of the weird conditional structure (empty elsif block),
335
			# if we reached here, $issueconfirmed must be false.
336
			# Also, since we moved inside the if ($noerror) conditional,
337
			# this old chunky conditional can be simplified:
338
   		    # if ( $noerror && ( $noquestion || $issueconfirmed ) ) {
339
			if ($noquestion) {
340
				AddIssue( $borrower, $barcode, $datedue );
341
				$inprocess = 1;
342
				if ($rfid) {
343
					CheckoutBarcode();
344
				}
345
			}
346
   	    }
347
		$template->param(
348
			 itemhomebranch => $getmessageiteminfo->{'homebranch'} ,	             
349
			 duedatespec => $duedatespec,
350
        );
321
    }
351
    }
322
    
352
    
323
    # FIXME If the issue is confirmed, we launch another time GetMemberIssuesAndFines, now display the issue count after issue 
353
    # FIXME If the issue is confirmed, we launch another time GetMemberIssuesAndFines, now display the issue count after issue 
Lines 706-709 $template->param( Link Here
706
    dateformat                => C4::Context->preference("dateformat"),
736
    dateformat                => C4::Context->preference("dateformat"),
707
    DHTMLcalendar_dateformat  => C4::Dates->DHTMLcalendar(),
737
    DHTMLcalendar_dateformat  => C4::Dates->DHTMLcalendar(),
708
);
738
);
739
$template->param(RFID => 1) if (C4::Context->preference('RFIDEnabled'));
740
709
output_html_with_http_headers $query, $cookie, $template->output;
741
output_html_with_http_headers $query, $cookie, $template->output;
(-)a/circ/returns.pl (-1 / +16 lines)
Lines 3-8 Link Here
3
# Copyright 2000-2002 Katipo Communications
3
# Copyright 2000-2002 Katipo Communications
4
#           2006 SAN-OP
4
#           2006 SAN-OP
5
#           2007 BibLibre, Paul POULAIN
5
#           2007 BibLibre, Paul POULAIN
6
#           2008-2009 TTLLP software.coop
6
#
7
#
7
# This file is part of Koha.
8
# This file is part of Koha.
8
#
9
#
Lines 43-48 use C4::Items; Link Here
43
use C4::Members;
44
use C4::Members;
44
use C4::Branch; # GetBranches GetBranchName
45
use C4::Branch; # GetBranches GetBranchName
45
use C4::Koha;   # FIXME : is it still useful ?
46
use C4::Koha;   # FIXME : is it still useful ?
47
BEGIN {
48
	if (C4::Context->preference('RFIDEnabled')) {
49
		require C4::RFID;
50
		import C4::RFID qw/ReadBarcode CheckinBarcode/;
51
	}
52
}
46
53
47
my $query = new CGI;
54
my $query = new CGI;
48
55
Lines 163-169 my $exemptfine = $query->param('exemptfine'); Link Here
163
my $dropboxmode = $query->param('dropboxmode');
170
my $dropboxmode = $query->param('dropboxmode');
164
my $dotransfer  = $query->param('dotransfer');
171
my $dotransfer  = $query->param('dotransfer');
165
my $calendar    = C4::Calendar->new( branchcode => $userenv_branch );
172
my $calendar    = C4::Calendar->new( branchcode => $userenv_branch );
166
	#dropbox: get last open day (today - 1)
173
174
if (C4::Context->preference('RFIDEnabled') && $query->param('rfid')) {
175
	$barcode = ReadBarcode();
176
}
177
167
my $today       = C4::Dates->new();
178
my $today       = C4::Dates->new();
168
my $today_iso   = $today->output('iso');
179
my $today_iso   = $today->output('iso');
169
my $dropboxdate = $calendar->addDate($today, -1);
180
my $dropboxdate = $calendar->addDate($today, -1);
Lines 198-203 if ($barcode) { Link Here
198
#
209
#
199
    ( $returned, $messages, $issueinformation, $borrower ) =
210
    ( $returned, $messages, $issueinformation, $borrower ) =
200
      AddReturn( $barcode, $userenv_branch, $exemptfine, $dropboxmode);     # do the return
211
      AddReturn( $barcode, $userenv_branch, $exemptfine, $dropboxmode);     # do the return
212
    if (C4::Context->preference('RFIDEnabled') && ($query->param('rfid')||ReadBarcode())) {
213
	CheckinBarcode();
214
    }
201
215
202
    # get biblio description
216
    # get biblio description
203
    my $biblio = GetBiblioFromItemNumber($itemnumber);
217
    my $biblio = GetBiblioFromItemNumber($itemnumber);
Lines 542-547 $template->param( Link Here
542
    dropboxdate	   => $dropboxdate->output(),
556
    dropboxdate	   => $dropboxdate->output(),
543
    overduecharges => $overduecharges,
557
    overduecharges => $overduecharges,
544
);
558
);
559
$template->param(RFID => 1) if (C4::Context->preference('RFIDEnabled'));
545
560
546
# actually print the page!
561
# actually print the page!
547
output_html_with_http_headers $query, $cookie, $template->output;
562
output_html_with_http_headers $query, $cookie, $template->output;
(-)a/installer/data/mysql/en/mandatory/sysprefs.sql (-1 / +2 lines)
Lines 84-89 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES Link Here
84
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacuserlogin',1,'Enable or disable display of user login features',NULL,'YesNo');
84
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacuserlogin',1,'Enable or disable display of user login features',NULL,'YesNo');
85
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('patronimages',0,'Enable patron images for the Staff Client',NULL,'YesNo');
85
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('patronimages',0,'Enable patron images for the Staff Client',NULL,'YesNo');
86
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('printcirculationslips',1,'If ON, enable printing circulation receipts','','YesNo');
86
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('printcirculationslips',1,'If ON, enable printing circulation receipts','','YesNo');
87
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RFIDEnabled','','If set, use that type of RFID::Reader on all circulation or cataloguing staff clients','|TRF7960-SSL','Choice');
87
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RequestOnOpac',1,'If ON, globally enables patron holds on OPAC',NULL,'YesNo');
88
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RequestOnOpac',1,'If ON, globally enables patron holds on OPAC',NULL,'YesNo');
88
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReservesMaxPickUpDelay',7,'Define the Maximum delay to pick up an item on hold','','Integer');
89
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReservesMaxPickUpDelay',7,'Define the Maximum delay to pick up an item on hold','','Integer');
89
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReturnBeforeExpiry',0,'If ON, checkout will be prevented if returndate is after patron card expiry',NULL,'YesNo');
90
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReturnBeforeExpiry',0,'If ON, checkout will be prevented if returndate is after patron card expiry',NULL,'YesNo');
Lines 258-261 INSERT INTO `systempreferences` ( `variable` , `value` , `options` , `explanatio Link Here
258
INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('HidePatronName', '0', '', 'If this is switched on, patron''s cardnumber will be shown instead of their name on the holds and catalog screens', 'YesNo');
259
INSERT INTO systempreferences (variable,value,options,explanation,type)VALUES('HidePatronName', '0', '', 'If this is switched on, patron''s cardnumber will be shown instead of their name on the holds and catalog screens', 'YesNo');
259
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACSearchForTitleIn','<li><a  href="http://worldcat.org/search?q={TITLE}" target="_blank">Other Libraries (WorldCat)</a></li>\n<li><a href="http://www.scholar.google.com/scholar?q={TITLE}" target="_blank">Other Databases (Google Scholar)</a></li>\n<li><a href="http://www.bookfinder.com/search/?author={AUTHOR}&amp;title={TITLE}&amp;st=xl&amp;ac=qr" target="_blank">Online Stores (Bookfinder.com)</a></li>','Enter the HTML that will appear in the \'Search for this title in\' box on the detail page in the OPAC.  Enter {TITLE}, {AUTHOR}, or {ISBN} in place of their respective variables in the URL. Leave blank to disable \'More Searches\' menu.','70|10','Textarea');
260
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACSearchForTitleIn','<li><a  href="http://worldcat.org/search?q={TITLE}" target="_blank">Other Libraries (WorldCat)</a></li>\n<li><a href="http://www.scholar.google.com/scholar?q={TITLE}" target="_blank">Other Databases (Google Scholar)</a></li>\n<li><a href="http://www.bookfinder.com/search/?author={AUTHOR}&amp;title={TITLE}&amp;st=xl&amp;ac=qr" target="_blank">Online Stores (Bookfinder.com)</a></li>','Enter the HTML that will appear in the \'Search for this title in\' box on the detail page in the OPAC.  Enter {TITLE}, {AUTHOR}, or {ISBN} in place of their respective variables in the URL. Leave blank to disable \'More Searches\' menu.','70|10','Textarea');
260
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACPatronDetails','1','If OFF the patron details tab in the OPAC is disabled.','','YesNo');
261
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACPatronDetails','1','If OFF the patron details tab in the OPAC is disabled.','','YesNo');
261
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACFinesTab','1','If OFF the patron fines tab in the OPAC is disabled.','','YesNo');
262
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACFinesTab','1','If OFF the patron fines tab in the OPAC is disabled.','','YesNo');
(-)a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql (+1 lines)
Lines 102-107 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES Link Here
102
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacuserlogin', '1', 'si ce paramètre est activé, les adhérents peuvent s''identifier à l''OPAC. Sinon seule la consultation anonyme est possible', '', 'YesNo');
102
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacuserlogin', '1', 'si ce paramètre est activé, les adhérents peuvent s''identifier à l''OPAC. Sinon seule la consultation anonyme est possible', '', 'YesNo');
103
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('patronimages', 'jpg', 'Ce paramètre permet d''activer la gestion des photos des adhérents. Mettre une extension d''image (jpg) pour activer la chose', '', 'free');
103
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('patronimages', 'jpg', 'Ce paramètre permet d''activer la gestion des photos des adhérents. Mettre une extension d''image (jpg) pour activer la chose', '', 'free');
104
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('printcirculationslips', '1', 'Active ou non l''impression de tickets de circulation', '', 'free');
104
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('printcirculationslips', '1', 'Active ou non l''impression de tickets de circulation', '', 'free');
105
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RFIDEnabled','','Si défini, utiliser ce type de lecteur RFID sur toutes les interfaces professionnelles de circulation et de catalogage','|TRF7960-SSL','Choice');
105
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReadingHistory', '0', 'Active ou non l''affichage de l''historique de lecture ', NULL, 'YesNo');
106
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReadingHistory', '0', 'Active ou non l''affichage de l''historique de lecture ', NULL, 'YesNo');
106
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReceiveBackIssues', '5', 'Ce paramètre définit le nombre d''anciens bulletins à afficher lorsque l''on bulletine', '', '');
107
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ReceiveBackIssues', '5', 'Ce paramètre définit le nombre d''anciens bulletins à afficher lorsque l''on bulletine', '', '');
107
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RequestOnOpac', '1', 'Active ou non les réservations à l''OPAC', '', 'YesNo');
108
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RequestOnOpac', '1', 'Active ou non les réservations à l''OPAC', '', 'YesNo');
(-)a/installer/data/mysql/updatedatabase.pl (+8 lines)
Lines 5-10 Link Here
5
# This script checks for required updates to the database.
5
# This script checks for required updates to the database.
6
6
7
# Part of the Koha Library Software www.koha.org
7
# Part of the Koha Library Software www.koha.org
8
# Copyright 2008-2009 TTLLP software.coop
8
# Licensed under the GPL.
9
# Licensed under the GPL.
9
10
10
# Bugs/ToDo:
11
# Bugs/ToDo:
Lines 2644-2649 if (C4::Context->preference("Version") < TransformToNum($DBversion)) { Link Here
2644
    print "Upgrade to $DBversion done (Added primary keys to language tables)\n";
2645
    print "Upgrade to $DBversion done (Added primary keys to language tables)\n";
2645
}
2646
}
2646
2647
2648
$DBversion = 'XXX';
2649
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
2650
    $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RFIDEnabled','','If set, use that type of RFID::Reader on all circulation or cataloguing staff clients','|TRF7960-SSL','Choice');");
2651
    SetVersion ($DBversion);
2652
    print "Upgrade to $DBversion done (Add RFIDEnabled syspref)\n";
2653
}
2654
2647
=item DropAllForeignKeys($table)
2655
=item DropAllForeignKeys($table)
2648
2656
2649
  Drop all foreign keys of the table $table
2657
  Drop all foreign keys of the table $table
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-search.inc (+1 lines)
Lines 75-80 YAHOO.util.Event.onContentReady("header_search", function() { Link Here
75
    <form method="post" action="/cgi-bin/koha/circ/returns.pl">
75
    <form method="post" action="/cgi-bin/koha/circ/returns.pl">
76
        <input name="barcode" id="ret_barcode" size="40" />
76
        <input name="barcode" id="ret_barcode" size="40" />
77
        <input value="Submit" class="submit" type="submit" />
77
        <input value="Submit" class="submit" type="submit" />
78
        <!-- TMPL_IF NAME="RFID" --><input value="Scan RFID Tag" name="rfid" class="submit" type="submit" /><!-- /TMPL_IF -->
78
    </form>
79
    </form>
79
</div>
80
</div>
80
	<!-- /TMPL_IF -->
81
	<!-- /TMPL_IF -->
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tmpl (-1 / +2 lines)
Lines 41-47 Link Here
41
    <!-- /TMPL_IF -->
41
    <!-- /TMPL_IF -->
42
    <!-- TMPL_LOOP NAME="ITEM_DATA" -->
42
    <!-- TMPL_LOOP NAME="ITEM_DATA" -->
43
    <div class="yui-g">
43
    <div class="yui-g">
44
        <h3 id="item<!-- TMPL_VAR NAME="itemnumber" -->">Barcode <!-- TMPL_VAR NAME="barcode" -->  <!-- TMPL_IF name="notforloantext" --><!-- TMPL_VAR name="notforloantext" --> <!-- /TMPL_IF --></h3>
44
        <h3 id="item<!-- TMPL_VAR NAME="itemnumber" -->">Barcode <!-- TMPL_VAR NAME="barcode" -->  <!-- TMPL_IF name="notforloantext" --><!-- TMPL_VAR name="notforloantext" --> <!-- /TMPL_IF -->
45
                    <form action="writetag.pl" method="get"><input type="hidden" name="code" value="<!-- TMPL_VAR NAME="barcode" -->" /><!-- TMPL_IF name="RFID" --><input type="submit" class="submit" value="Set RFID Tag" /><!-- /TMPL_IF --></form></h3>
45
        <div class="listgroup"><h4>Item Information <!-- TMPL_IF NAME="CAN_user_editcatalogue" --><!-- TMPL_UNLESS name="nomod" --><a href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber"-->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->">[Edit Items]</a><!-- /TMPL_IF --><!-- /TMPL_UNLESS --></h4>
46
        <div class="listgroup"><h4>Item Information <!-- TMPL_IF NAME="CAN_user_editcatalogue" --><!-- TMPL_UNLESS name="nomod" --><a href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&amp;biblionumber=<!-- TMPL_VAR NAME="biblionumber"-->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->">[Edit Items]</a><!-- /TMPL_IF --><!-- /TMPL_UNLESS --></h4>
46
            <ol class="bibliodetails">
47
            <ol class="bibliodetails">
47
            <li><span class="label">Home Library:</span> <!-- TMPL_VAR NAME="homebranchname" -->&nbsp;</li>
48
            <li><span class="label">Home Library:</span> <!-- TMPL_VAR NAME="homebranchname" -->&nbsp;</li>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl (+1 lines)
Lines 269-274 No patron matched <span class="ex"><!-- TMPL_VAR name="message" --></span> Link Here
269
	<div class="hint">Enter item barcode:</div>
269
	<div class="hint">Enter item barcode:</div>
270
270
271
	<input type="text" name="barcode" id="barcode" class="barcode focus" size="14" /> <input type="submit" value="Check Out" />
271
	<input type="text" name="barcode" id="barcode" class="barcode focus" size="14" /> <input type="submit" value="Check Out" />
272
    <!-- TMPL_IF NAME="RFID" --><input type="submit" name="rfid" value="Check Out RFID Tag" /><!-- /TMPL_IF -->
272
273
273
    <!-- TMPL_IF NAME="SpecifyDueDate" --><div class="date-select">
274
    <!-- TMPL_IF NAME="SpecifyDueDate" --><div class="date-select">
274
        <div class="hint">Specify Due Date:</div>
275
        <div class="hint">Specify Due Date:</div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl (+1 lines)
Lines 301-306 function Dopop(link) { Link Here
301
			<input name="barcode" id="barcode" size="14" class="focus"/>
301
			<input name="barcode" id="barcode" size="14" class="focus"/>
302
			<!-- /TMPL_IF -->
302
			<!-- /TMPL_IF -->
303
            <input type="submit" class="submit" value="Submit" />
303
            <input type="submit" class="submit" value="Submit" />
304
            <!-- TMPL_IF NAME="RFID" --><input type="submit" class="submit" name="rfid" value="Scan RFID Tag" /><!-- /TMPL_IF -->
304
            <!-- TMPL_LOOP Name="inputloop" -->
305
            <!-- TMPL_LOOP Name="inputloop" -->
305
                <input type="hidden" name="ri-<!-- TMPL_VAR Name="counter" -->" value="<!-- TMPL_VAR Name="barcode" -->" />
306
                <input type="hidden" name="ri-<!-- TMPL_VAR Name="counter" -->" value="<!-- TMPL_VAR Name="barcode" -->" />
306
                <input type="hidden" name="dd-<!-- TMPL_VAR Name="counter" -->" value="<!-- TMPL_VAR Name="duedate" -->" />
307
                <input type="hidden" name="dd-<!-- TMPL_VAR Name="counter" -->" value="<!-- TMPL_VAR Name="duedate" -->" />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tmpl (-1 / +5 lines)
Lines 65-71 Link Here
65
65
66
    <!-- TMPL_IF NAME="CAN_user_tools_inventory" -->
66
    <!-- TMPL_IF NAME="CAN_user_tools_inventory" -->
67
    <dt><a href="/cgi-bin/koha/tools/inventory.pl">Inventory/stocktaking</a></dt>
67
    <dt><a href="/cgi-bin/koha/tools/inventory.pl">Inventory/stocktaking</a></dt>
68
    <dd>Perform inventory (stocktaking) of your catalog</dd>
68
    <dd>Perform inventory (stocktaking) of your catalogue</dd>
69
    <!-- TMPL_IF name="RFID" -->
70
    <dt><a href="/cgi-bin/koha/tools/rfidtags.pl">RFID Bulk Tagger</a></dt>
71
    <dd>Write barcodes to RFID tags quickly</dd>
72
    <!-- /TMPL_IF -->
69
    <!-- /TMPL_IF -->
73
    <!-- /TMPL_IF -->
70
	
74
	
71
	</dl>
75
	</dl>
(-)a/opac/opac-detail.pl (+2 lines)
Lines 1-6 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
# Copyright 2000-2002 Katipo Communications
3
# Copyright 2000-2002 Katipo Communications
4
#           2008-2009 TTLLP software.coop
4
#
5
#
5
# This file is part of Koha.
6
# This file is part of Koha.
6
#
7
#
Lines 549-554 if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->pref Link Here
549
	$template->param(TagLoop => get_tags({biblionumber=>$biblionumber, approved=>1,
550
	$template->param(TagLoop => get_tags({biblionumber=>$biblionumber, approved=>1,
550
								'sort'=>'-weight', limit=>$tag_quantity}));
551
								'sort'=>'-weight', limit=>$tag_quantity}));
551
}
552
}
553
$template->param(RFID => 1) if (C4::Context->preference('RFIDEnabled'));
552
554
553
#Search for title in links
555
#Search for title in links
554
if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){
556
if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){
(-)a/tools/tools-home.pl (-1 / +3 lines)
Lines 1-5 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
# Copyright 2008-2009 TTLLP software.coop
4
3
# This file is part of Koha.
5
# This file is part of Koha.
4
#
6
#
5
# Koha is free software; you can redistribute it and/or modify it under the
7
# Koha is free software; you can redistribute it and/or modify it under the
Lines 31-35 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
31
        debug           => 1,
33
        debug           => 1,
32
    }
34
    }
33
);
35
);
36
$template->param(RFID => 1) if (C4::Context->preference('RFIDEnabled'));
34
37
35
output_html_with_http_headers $query, $cookie, $template->output;
38
output_html_with_http_headers $query, $cookie, $template->output;
36
- 

Return to bug 2244