Bug 39834: Replace some tabs with spaces
In order to remove false positives with the QA script we should replace some tabs with spaces.
There are more but I wanted to make sure no regression would be
introduced
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 492e6814a1)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
parent
975ccc604b
commit
83a96dd270
|
|
@ -457,90 +457,90 @@ C4::Auth - Authenticates Koha users
|
|||
=head1 LDAP Configuration
|
||||
|
||||
This module is specific to LDAP authentication. It requires Net::LDAP package and one or more
|
||||
working LDAP servers.
|
||||
To use it :
|
||||
* Modify ldapserver element in KOHA_CONF
|
||||
* Establish field mapping in <mapping> element.
|
||||
working LDAP servers.
|
||||
To use it :
|
||||
* Modify ldapserver element in KOHA_CONF
|
||||
* Establish field mapping in <mapping> element.
|
||||
|
||||
For example, if your user records are stored according to the inetOrgPerson schema, RFC#2798,
|
||||
the username would match the "uid" field, and the password should match the "userpassword" field.
|
||||
For example, if your user records are stored according to the inetOrgPerson schema, RFC#2798,
|
||||
the username would match the "uid" field, and the password should match the "userpassword" field.
|
||||
|
||||
Make sure that ALL required fields are populated by your LDAP database (and mapped in KOHA_CONF).
|
||||
What are the required fields? Well, in mysql you can check the database table "borrowers" like this:
|
||||
Make sure that ALL required fields are populated by your LDAP database (and mapped in KOHA_CONF).
|
||||
What are the required fields? Well, in mysql you can check the database table "borrowers" like this:
|
||||
|
||||
mysql> show COLUMNS from borrowers;
|
||||
+---------------------+--------------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+---------------------+--------------+------+-----+---------+----------------+
|
||||
| borrowernumber | int(11) | NO | PRI | NULL | auto_increment |
|
||||
| cardnumber | varchar(16) | YES | UNI | NULL | |
|
||||
| surname | mediumtext | NO | | NULL | |
|
||||
| firstname | text | YES | | NULL | |
|
||||
| title | mediumtext | YES | | NULL | |
|
||||
| othernames | mediumtext | YES | | NULL | |
|
||||
| initials | text | YES | | NULL | |
|
||||
| streetnumber | varchar(10) | YES | | NULL | |
|
||||
| streettype | varchar(50) | YES | | NULL | |
|
||||
| address | mediumtext | NO | | NULL | |
|
||||
| address2 | text | YES | | NULL | |
|
||||
| city | mediumtext | NO | | NULL | |
|
||||
| state | mediumtext | YES | | NULL | |
|
||||
| zipcode | varchar(25) | YES | | NULL | |
|
||||
| country | text | YES | | NULL | |
|
||||
| email | mediumtext | YES | | NULL | |
|
||||
| phone | text | YES | | NULL | |
|
||||
| mobile | varchar(50) | YES | | NULL | |
|
||||
| fax | mediumtext | YES | | NULL | |
|
||||
| emailpro | text | YES | | NULL | |
|
||||
| phonepro | text | YES | | NULL | |
|
||||
| B_streetnumber | varchar(10) | YES | | NULL | |
|
||||
| B_streettype | varchar(50) | YES | | NULL | |
|
||||
| B_address | varchar(100) | YES | | NULL | |
|
||||
| B_address2 | text | YES | | NULL | |
|
||||
| B_city | mediumtext | YES | | NULL | |
|
||||
| B_state | mediumtext | YES | | NULL | |
|
||||
| B_zipcode | varchar(25) | YES | | NULL | |
|
||||
| B_country | text | YES | | NULL | |
|
||||
| B_email | text | YES | | NULL | |
|
||||
| B_phone | mediumtext | YES | | NULL | |
|
||||
| dateofbirth | date | YES | | NULL | |
|
||||
| branchcode | varchar(10) | NO | MUL | | |
|
||||
| categorycode | varchar(10) | NO | MUL | | |
|
||||
| dateenrolled | date | YES | | NULL | |
|
||||
| dateexpiry | date | YES | | NULL | |
|
||||
| gonenoaddress | tinyint(1) | YES | | NULL | |
|
||||
| lost | tinyint(1) | YES | | NULL | |
|
||||
| debarred | date | YES | | NULL | |
|
||||
| debarredcomment | varchar(255) | YES | | NULL | |
|
||||
| contactname | mediumtext | YES | | NULL | |
|
||||
| contactfirstname | text | YES | | NULL | |
|
||||
| contacttitle | text | YES | | NULL | |
|
||||
| borrowernotes | mediumtext | YES | | NULL | |
|
||||
| relationship | varchar(100) | YES | | NULL | |
|
||||
| ethnicity | varchar(50) | YES | | NULL | |
|
||||
| ethnotes | varchar(255) | YES | | NULL | |
|
||||
| sex | varchar(1) | YES | | NULL | |
|
||||
| password | varchar(30) | YES | | NULL | |
|
||||
| flags | int(11) | YES | | NULL | |
|
||||
| userid | varchar(30) | YES | MUL | NULL | |
|
||||
| opacnote | mediumtext | YES | | NULL | |
|
||||
| contactnote | varchar(255) | YES | | NULL | |
|
||||
| sort1 | varchar(80) | YES | | NULL | |
|
||||
| sort2 | varchar(80) | YES | | NULL | |
|
||||
| altcontactfirstname | varchar(255) | YES | | NULL | |
|
||||
| altcontactsurname | varchar(255) | YES | | NULL | |
|
||||
| altcontactaddress1 | varchar(255) | YES | | NULL | |
|
||||
| altcontactaddress2 | varchar(255) | YES | | NULL | |
|
||||
| altcontactaddress3 | varchar(255) | YES | | NULL | |
|
||||
| altcontactstate | mediumtext | YES | | NULL | |
|
||||
| altcontactzipcode | varchar(50) | YES | | NULL | |
|
||||
| altcontactcountry | text | YES | | NULL | |
|
||||
| altcontactphone | varchar(50) | YES | | NULL | |
|
||||
| smsalertnumber | varchar(50) | YES | | NULL | |
|
||||
| privacy | int(11) | NO | | 1 | |
|
||||
+---------------------+--------------+------+-----+---------+----------------+
|
||||
66 rows in set (0.00 sec)
|
||||
Where Null="NO", the field is required.
|
||||
mysql> show COLUMNS from borrowers;
|
||||
+---------------------+--------------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+---------------------+--------------+------+-----+---------+----------------+
|
||||
| borrowernumber | int(11) | NO | PRI | NULL | auto_increment |
|
||||
| cardnumber | varchar(16) | YES | UNI | NULL | |
|
||||
| surname | mediumtext | NO | | NULL | |
|
||||
| firstname | text | YES | | NULL | |
|
||||
| title | mediumtext | YES | | NULL | |
|
||||
| othernames | mediumtext | YES | | NULL | |
|
||||
| initials | text | YES | | NULL | |
|
||||
| streetnumber | varchar(10) | YES | | NULL | |
|
||||
| streettype | varchar(50) | YES | | NULL | |
|
||||
| address | mediumtext | NO | | NULL | |
|
||||
| address2 | text | YES | | NULL | |
|
||||
| city | mediumtext | NO | | NULL | |
|
||||
| state | mediumtext | YES | | NULL | |
|
||||
| zipcode | varchar(25) | YES | | NULL | |
|
||||
| country | text | YES | | NULL | |
|
||||
| email | mediumtext | YES | | NULL | |
|
||||
| phone | text | YES | | NULL | |
|
||||
| mobile | varchar(50) | YES | | NULL | |
|
||||
| fax | mediumtext | YES | | NULL | |
|
||||
| emailpro | text | YES | | NULL | |
|
||||
| phonepro | text | YES | | NULL | |
|
||||
| B_streetnumber | varchar(10) | YES | | NULL | |
|
||||
| B_streettype | varchar(50) | YES | | NULL | |
|
||||
| B_address | varchar(100) | YES | | NULL | |
|
||||
| B_address2 | text | YES | | NULL | |
|
||||
| B_city | mediumtext | YES | | NULL | |
|
||||
| B_state | mediumtext | YES | | NULL | |
|
||||
| B_zipcode | varchar(25) | YES | | NULL | |
|
||||
| B_country | text | YES | | NULL | |
|
||||
| B_email | text | YES | | NULL | |
|
||||
| B_phone | mediumtext | YES | | NULL | |
|
||||
| dateofbirth | date | YES | | NULL | |
|
||||
| branchcode | varchar(10) | NO | MUL | | |
|
||||
| categorycode | varchar(10) | NO | MUL | | |
|
||||
| dateenrolled | date | YES | | NULL | |
|
||||
| dateexpiry | date | YES | | NULL | |
|
||||
| gonenoaddress | tinyint(1) | YES | | NULL | |
|
||||
| lost | tinyint(1) | YES | | NULL | |
|
||||
| debarred | date | YES | | NULL | |
|
||||
| debarredcomment | varchar(255) | YES | | NULL | |
|
||||
| contactname | mediumtext | YES | | NULL | |
|
||||
| contactfirstname | text | YES | | NULL | |
|
||||
| contacttitle | text | YES | | NULL | |
|
||||
| borrowernotes | mediumtext | YES | | NULL | |
|
||||
| relationship | varchar(100) | YES | | NULL | |
|
||||
| ethnicity | varchar(50) | YES | | NULL | |
|
||||
| ethnotes | varchar(255) | YES | | NULL | |
|
||||
| sex | varchar(1) | YES | | NULL | |
|
||||
| password | varchar(30) | YES | | NULL | |
|
||||
| flags | int(11) | YES | | NULL | |
|
||||
| userid | varchar(30) | YES | MUL | NULL | |
|
||||
| opacnote | mediumtext | YES | | NULL | |
|
||||
| contactnote | varchar(255) | YES | | NULL | |
|
||||
| sort1 | varchar(80) | YES | | NULL | |
|
||||
| sort2 | varchar(80) | YES | | NULL | |
|
||||
| altcontactfirstname | varchar(255) | YES | | NULL | |
|
||||
| altcontactsurname | varchar(255) | YES | | NULL | |
|
||||
| altcontactaddress1 | varchar(255) | YES | | NULL | |
|
||||
| altcontactaddress2 | varchar(255) | YES | | NULL | |
|
||||
| altcontactaddress3 | varchar(255) | YES | | NULL | |
|
||||
| altcontactstate | mediumtext | YES | | NULL | |
|
||||
| altcontactzipcode | varchar(50) | YES | | NULL | |
|
||||
| altcontactcountry | text | YES | | NULL | |
|
||||
| altcontactphone | varchar(50) | YES | | NULL | |
|
||||
| smsalertnumber | varchar(50) | YES | | NULL | |
|
||||
| privacy | int(11) | NO | | 1 | |
|
||||
+---------------------+--------------+------+-----+---------+----------------+
|
||||
66 rows in set (0.00 sec)
|
||||
Where Null="NO", the field is required.
|
||||
|
||||
=head1 KOHA_CONF and field mapping
|
||||
|
||||
|
|
@ -678,11 +678,11 @@ sprintf()
|
|||
# Using attrs instead of {asn}->attributes
|
||||
# ========================================
|
||||
#
|
||||
# LDAP key: ->{ cn} = ARRAY w/ 3 members.
|
||||
# LDAP key: ->{ cn}->{ sss} = sss
|
||||
# LDAP key: ->{ cn}->{ Steve Smith} = Steve Smith
|
||||
# LDAP key: ->{ cn}->{Steve S. Smith} = Steve S. Smith
|
||||
# LDAP key: ->{ cn} = ARRAY w/ 3 members.
|
||||
# LDAP key: ->{ cn}->{ sss} = sss
|
||||
# LDAP key: ->{ cn}->{ Steve Smith} = Steve Smith
|
||||
# LDAP key: ->{ cn}->{Steve S. Smith} = Steve S. Smith
|
||||
#
|
||||
# LDAP key: ->{ givenname} = ARRAY w/ 1 members.
|
||||
# LDAP key: ->{ givenname}->{Steve} = Steve
|
||||
# LDAP key: ->{ givenname} = ARRAY w/ 1 members.
|
||||
# LDAP key: ->{ givenname}->{Steve} = Steve
|
||||
#
|
||||
|
|
|
|||
|
|
@ -388,18 +388,18 @@ sub GuessAuthTypeCode {
|
|||
'185' => { authtypecode => 'FORM_SUBD' },
|
||||
},
|
||||
|
||||
#200 Personal name 700, 701, 702 4-- with embedded 700, 701, 702 600
|
||||
#200 Personal name 700, 701, 702 4-- with embedded 700, 701, 702 600
|
||||
# 604 with embedded 700, 701, 702
|
||||
#210 Corporate or meeting name 710, 711, 712 4-- with embedded 710, 711, 712 601 604 with embedded 710, 711, 712
|
||||
#215 Territorial or geographic name 710, 711, 712 4-- with embedded 710, 711, 712 601, 607 604 with embedded 710, 711, 712
|
||||
#216 Trademark 716 [Reserved for future use]
|
||||
#220 Family name 720, 721, 722 4-- with embedded 720, 721, 722 602 604 with embedded 720, 721, 722
|
||||
#230 Title 500 4-- with embedded 500 605
|
||||
#240 Name and title (embedded 200, 210, 215, or 220 and 230) 4-- with embedded 7-- and 500 7-- 604 with embedded 7-- and 500 500
|
||||
#245 Name and collective title (embedded 200, 210, 215, or 220 and 235) 4-- with embedded 7-- and 501 604 with embedded 7-- and 501 7-- 501
|
||||
#250 Topical subject 606
|
||||
#260 Place access 620
|
||||
#280 Form, genre or physical characteristics 608
|
||||
#210 Corporate or meeting name 710, 711, 712 4-- with embedded 710, 711, 712 601 604 with embedded 710, 711, 712
|
||||
#215 Territorial or geographic name 710, 711, 712 4-- with embedded 710, 711, 712 601, 607 604 with embedded 710, 711, 712
|
||||
#216 Trademark 716 [Reserved for future use]
|
||||
#220 Family name 720, 721, 722 4-- with embedded 720, 721, 722 602 604 with embedded 720, 721, 722
|
||||
#230 Title 500 4-- with embedded 500 605
|
||||
#240 Name and title (embedded 200, 210, 215, or 220 and 230) 4-- with embedded 7-- and 500 7-- 604 with embedded 7-- and 500 500
|
||||
#245 Name and collective title (embedded 200, 210, 215, or 220 and 235) 4-- with embedded 7-- and 501 604 with embedded 7-- and 501 7-- 501
|
||||
#250 Topical subject 606
|
||||
#260 Place access 620
|
||||
#280 Form, genre or physical characteristics 608
|
||||
#
|
||||
#
|
||||
# Could also be represented with :
|
||||
|
|
|
|||
|
|
@ -245,19 +245,19 @@ The default behavior here in Barcodes should be essentially a more flexible vers
|
|||
|
||||
To add a new barcode format, a developer should:
|
||||
|
||||
create a module in C4/Barcodes/, like C4/Barcodes/my_new_format.pm;
|
||||
add to the $types hashref in this file;
|
||||
add tests under the "t" directory; and
|
||||
edit autoBarcode syspref to include new type.
|
||||
create a module in C4/Barcodes/, like C4/Barcodes/my_new_format.pm;
|
||||
add to the $types hashref in this file;
|
||||
add tests under the "t" directory; and
|
||||
edit autoBarcode syspref to include new type.
|
||||
|
||||
=head2 Adding a new module
|
||||
|
||||
Each new module that needs differing behavior must override these subs:
|
||||
|
||||
new_object
|
||||
initial
|
||||
db_max
|
||||
parse
|
||||
new_object
|
||||
initial
|
||||
db_max
|
||||
parse
|
||||
|
||||
Or else the CLASS subs will be used.
|
||||
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ sub DelBudgetPeriod {
|
|||
## get information about the record that will be deleted
|
||||
my $sth = $dbh->prepare(
|
||||
qq|
|
||||
DELETE
|
||||
DELETE
|
||||
FROM aqbudgetperiods
|
||||
WHERE budget_period_id=? |
|
||||
);
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ sub NormalizeString {
|
|||
=head2 MarcToUTF8Record
|
||||
|
||||
($marc_record, $converted_from, $errors_arrayref) = MarcToUTF8Record($marc_blob,
|
||||
$marc_flavour, [, $source_encoding]);
|
||||
$marc_flavour, [, $source_encoding]);
|
||||
|
||||
Given a MARC blob or a C<MARC::Record>, the MARC flavour, and an
|
||||
optional source encoding, return a C<MARC::Record> that is
|
||||
|
|
|
|||
|
|
@ -4191,10 +4191,11 @@ Missing POD for CheckValidBarcode.
|
|||
sub CheckValidBarcode {
|
||||
my ($barcode) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = qq|SELECT count(*)
|
||||
FROM items
|
||||
WHERE barcode=?
|
||||
|;
|
||||
my $query = q|
|
||||
SELECT count(*)
|
||||
FROM items
|
||||
WHERE barcode=?
|
||||
|;
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute($barcode);
|
||||
my $exist = $sth->fetchrow;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ sub _initialize {
|
|||
"https://contentcafe2.btol.com/ContentCafe/Jacket.aspx?UserID=$user&Password=$pass&Options=Y&Return=T&Type=S&Value=";
|
||||
$agent = "Koha/$VERSION [en] (Linux)";
|
||||
|
||||
#"Mozilla/4.76 [en] (Win98; U)", # if for some reason you want to go stealth, you might prefer this
|
||||
#"Mozilla/4.76 [en] (Win98; U)", # if for some reason you want to go stealth, you might prefer this
|
||||
}
|
||||
|
||||
sub image_url {
|
||||
|
|
|
|||
|
|
@ -731,8 +731,8 @@ sub changeEncoding {
|
|||
if ( lc($format) =~ /^marc$/o ) {
|
||||
|
||||
# if we're converting encoding of an ISO2709 file, we need to roundtrip through XML
|
||||
# because MARC::Record doesn't directly provide us with an encoding method
|
||||
# It's definitely less than idea and should be fixed eventually - kados
|
||||
# because MARC::Record doesn't directly provide us with an encoding method
|
||||
# It's definitely less than idea and should be fixed eventually - kados
|
||||
my $marcxml; # temporary storage of MARCXML scalar
|
||||
( $error, $marcxml ) = marc2marcxml( $record, $to_encoding, $flavour );
|
||||
unless ($error) {
|
||||
|
|
|
|||
|
|
@ -2241,7 +2241,7 @@ sub HasItems {
|
|||
my $query = q|
|
||||
SELECT COUNT(serialitems.itemnumber)
|
||||
FROM serial
|
||||
LEFT JOIN serialitems USING(serialid)
|
||||
LEFT JOIN serialitems USING(serialid)
|
||||
WHERE subscriptionid=? AND serialitems.serialid IS NOT NULL
|
||||
|;
|
||||
my $sth = $dbh->prepare($query);
|
||||
|
|
|
|||
|
|
@ -63,12 +63,12 @@ to take into account.
|
|||
|
||||
foreach (@items) {
|
||||
# These won't format well like this, but here are the fields
|
||||
print $_->{title};
|
||||
print $_->{biblionumber};
|
||||
print $_->{itemnumber};
|
||||
print $_->{browser_normalized_upc};
|
||||
print $_->{browser_normalized_oclc};
|
||||
print $_->{browser_normalized_isbn};
|
||||
print $_->{title};
|
||||
print $_->{biblionumber};
|
||||
print $_->{itemnumber};
|
||||
print $_->{browser_normalized_upc};
|
||||
print $_->{browser_normalized_oclc};
|
||||
print $_->{browser_normalized_isbn};
|
||||
print $_->{browser_normalized_ean};
|
||||
}
|
||||
|
||||
|
|
|
|||
96
C4/Tags.pm
96
C4/Tags.pm
|
|
@ -87,8 +87,8 @@ sub get_filters {
|
|||
return $sth->fetchall_arrayref( {} );
|
||||
}
|
||||
|
||||
# (SELECT count(*) FROM tags_all ) as tags_all,
|
||||
# (SELECT count(*) FROM tags_index ) as tags_index,
|
||||
# (SELECT count(*) FROM tags_all ) as tags_all,
|
||||
# (SELECT count(*) FROM tags_index ) as tags_index,
|
||||
|
||||
=head2 approval_counts
|
||||
|
||||
|
|
@ -98,10 +98,10 @@ Missing POD for approval_counts.
|
|||
|
||||
sub approval_counts {
|
||||
my $query = "SELECT
|
||||
(SELECT count(*) FROM tags_approval WHERE approved= 1) as approved_count,
|
||||
(SELECT count(*) FROM tags_approval WHERE approved=-1) as rejected_count,
|
||||
(SELECT count(*) FROM tags_approval WHERE approved= 0) as unapproved_count
|
||||
";
|
||||
(SELECT count(*) FROM tags_approval WHERE approved= 1) as approved_count,
|
||||
(SELECT count(*) FROM tags_approval WHERE approved=-1) as rejected_count,
|
||||
(SELECT count(*) FROM tags_approval WHERE approved= 0) as unapproved_count
|
||||
";
|
||||
my $sth = C4::Context->dbh->prepare($query);
|
||||
$sth->execute;
|
||||
my $result = $sth->fetchrow_hashref();
|
||||
|
|
@ -261,11 +261,11 @@ sub get_tags { # i.e., from tags_index
|
|||
}
|
||||
}
|
||||
my $query = "
|
||||
SELECT tags_index.term as term,biblionumber,weight,weight_total
|
||||
FROM tags_index
|
||||
LEFT JOIN tags_approval
|
||||
ON tags_index.term = tags_approval.term
|
||||
" . ( $wheres || '' ) . $order . $limit;
|
||||
SELECT tags_index.term as term,biblionumber,weight,weight_total
|
||||
FROM tags_index
|
||||
LEFT JOIN tags_approval
|
||||
ON tags_index.term = tags_approval.term
|
||||
" . ( $wheres || '' ) . $order . $limit;
|
||||
my $sth = C4::Context->dbh->prepare($query);
|
||||
if (@exe_args) {
|
||||
$sth->execute(@exe_args);
|
||||
|
|
@ -332,15 +332,15 @@ sub get_approval_rows { # i.e., from tags_approval
|
|||
}
|
||||
}
|
||||
my $query = "
|
||||
SELECT tags_approval.term AS term,
|
||||
tags_approval.approved AS approved,
|
||||
tags_approval.date_approved AS date_approved,
|
||||
tags_approval.approved_by AS approved_by,
|
||||
tags_approval.weight_total AS weight_total,
|
||||
CONCAT(borrowers.surname, ', ', borrowers.firstname) AS approved_by_name
|
||||
FROM tags_approval
|
||||
LEFT JOIN borrowers
|
||||
ON tags_approval.approved_by = borrowers.borrowernumber ";
|
||||
SELECT tags_approval.term AS term,
|
||||
tags_approval.approved AS approved,
|
||||
tags_approval.date_approved AS date_approved,
|
||||
tags_approval.approved_by AS approved_by,
|
||||
tags_approval.weight_total AS weight_total,
|
||||
CONCAT(borrowers.surname, ', ', borrowers.firstname) AS approved_by_name
|
||||
FROM tags_approval
|
||||
LEFT JOIN borrowers
|
||||
ON tags_approval.approved_by = borrowers.borrowernumber ";
|
||||
$query .= ( $wheres || '' ) . $order . $limit;
|
||||
my $sth = C4::Context->dbh->prepare($query);
|
||||
if (@exe_args) {
|
||||
|
|
@ -599,21 +599,21 @@ sub decrement_weight {
|
|||
|
||||
sub _set_weight_total {
|
||||
my $sth = C4::Context->dbh->prepare( "
|
||||
UPDATE tags_approval
|
||||
SET weight_total=" . (shift) . "
|
||||
WHERE term=?
|
||||
" ); # note: CANNOT use "?" for weight_total (see the args above).
|
||||
UPDATE tags_approval
|
||||
SET weight_total=" . (shift) . "
|
||||
WHERE term=?
|
||||
" ); # note: CANNOT use "?" for weight_total (see the args above).
|
||||
$sth->execute(shift); # just the term
|
||||
}
|
||||
|
||||
sub _set_weight {
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth = $dbh->prepare( "
|
||||
UPDATE tags_index
|
||||
SET weight=" . (shift) . "
|
||||
WHERE term=?
|
||||
AND biblionumber=?
|
||||
" );
|
||||
UPDATE tags_index
|
||||
SET weight=" . (shift) . "
|
||||
WHERE term=?
|
||||
AND biblionumber=?
|
||||
" );
|
||||
$sth->execute(@_);
|
||||
}
|
||||
|
||||
|
|
@ -627,8 +627,8 @@ sub add_tag { # biblionumber,term,[borrowernumber,approvernumber]
|
|||
my $rows =
|
||||
get_tag_rows( { biblionumber => $biblionumber, borrowernumber => $borrowernumber, term => $term, limit => 1 } );
|
||||
my $query = "INSERT INTO tags_all
|
||||
(borrowernumber,biblionumber,term,date_created)
|
||||
VALUES (?,?,?,NOW())";
|
||||
(borrowernumber,biblionumber,term,date_created)
|
||||
VALUES (?,?,?,NOW())";
|
||||
|
||||
if ( scalar @$rows ) {
|
||||
return;
|
||||
|
|
@ -726,10 +726,10 @@ instructions.
|
|||
=head2 Table Structure
|
||||
|
||||
The tables used by tags are:
|
||||
tags_all
|
||||
tags_index
|
||||
tags_approval
|
||||
tags_blacklist
|
||||
tags_all
|
||||
tags_index
|
||||
tags_approval
|
||||
tags_blacklist
|
||||
|
||||
Your first thought may be that this looks a little complicated. It is, but only because
|
||||
it has to be. I'll try to explain.
|
||||
|
|
@ -737,21 +737,21 @@ it has to be. I'll try to explain.
|
|||
tags_all - This table would be all we really need if we didn't care about moderation or
|
||||
performance or tags disappearing when borrowers are removed. Too bad, we do. Otherwise
|
||||
though, it contains all the relevant info about a given tag:
|
||||
tag_id - unique id number for it
|
||||
borrowernumber - user that entered it
|
||||
biblionumber - book record it is attached to
|
||||
term - tag "term" itself
|
||||
language - perhaps used later to influence weighting
|
||||
date_created - date and time it was created
|
||||
tag_id - unique id number for it
|
||||
borrowernumber - user that entered it
|
||||
biblionumber - book record it is attached to
|
||||
term - tag "term" itself
|
||||
language - perhaps used later to influence weighting
|
||||
date_created - date and time it was created
|
||||
|
||||
tags_approval - Since we need to provide moderation, this table is used to track it. If no
|
||||
external dictionary is used, this table is the sole reference for approval and rejection.
|
||||
With an external dictionary, it tracks pending terms and past whitelist/blacklist actions.
|
||||
This could be called an "approved terms" table. See above regarding the External Dictionary.
|
||||
term - tag "term" itself
|
||||
approved - Negative, 0 or positive if tag is rejected, pending or approved.
|
||||
date_approved - date of last action
|
||||
approved_by - staffer performing the last action
|
||||
term - tag "term" itself
|
||||
approved - Negative, 0 or positive if tag is rejected, pending or approved.
|
||||
date_approved - date of last action
|
||||
approved_by - staffer performing the last action
|
||||
weight_total - total occurrence of term in any biblio by any users
|
||||
|
||||
tags_index - This table is for performance, because by far the most common operation will
|
||||
|
|
@ -759,9 +759,9 @@ be fetching tags for a list of search results. We will have a set of biblios, a
|
|||
want ONLY their approved tags and overall weighting. While we could implement a query that
|
||||
would traverse tags_all filtered against tags_approval, the performance implications of
|
||||
trying to calculate that and the "weight" (number of times a tag appears) on the fly are drastic.
|
||||
term - approved term as it appears in tags_approval
|
||||
biblionumber - book record it is attached to
|
||||
weight - number of times tag applied by any user
|
||||
term - approved term as it appears in tags_approval
|
||||
biblionumber - book record it is attached to
|
||||
weight - number of times tag applied by any user
|
||||
|
||||
tags_blacklist - A set of regular expression filters. Unsurprisingly, these should be perl-
|
||||
compatible (PCRE) for your version of perl. Since this is a blacklist, a term will be
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ Makefile.PL - Koha packager and installer
|
|||
|
||||
=head2 CLEANING UP
|
||||
|
||||
make clean
|
||||
make clean
|
||||
|
||||
=head2 CLI PARAMETERS
|
||||
|
||||
|
|
|
|||
|
|
@ -26,17 +26,17 @@ script to administer the budget periods table
|
|||
ALGO :
|
||||
this script use an $op to know what to do.
|
||||
if $op is empty or none of the above values,
|
||||
- the default screen is build (with all records, or filtered datas).
|
||||
- the user can clic on add, modify or delete record.
|
||||
- the default screen is build (with all records, or filtered datas).
|
||||
- the user can clic on add, modify or delete record.
|
||||
if $op=add_form
|
||||
- if primkey exists, this is a modification,so we read the $primkey record
|
||||
- builds the add/modify form
|
||||
- if primkey exists, this is a modification,so we read the $primkey record
|
||||
- builds the add/modify form
|
||||
if $op=add_validate
|
||||
- the user has just send datas, so we create/modify the record
|
||||
- the user has just send datas, so we create/modify the record
|
||||
if $op=delete_confirm
|
||||
- we show the record having primkey=$primkey and ask for deletion validation form
|
||||
- we show the record having primkey=$primkey and ask for deletion validation form
|
||||
if $op=delete_confirmed
|
||||
- we delete the record having primkey=$primkey
|
||||
- we delete the record having primkey=$primkey
|
||||
if $op=duplicate_form
|
||||
- displays the duplication of budget period form (allowing specification of dates)
|
||||
if $op=duplicate_budget
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@ foreach my $field (@fields) {
|
|||
# if tag <10, there's no subfield, use the "@" trick
|
||||
if ( $field->tag() < 10 ) {
|
||||
|
||||
# next if ($tagslib->{$field->tag()}->{'@'}->{tab} ne $tabloop);
|
||||
next if ( $tagslib->{ $field->tag() }->{'@'}->{hidden} );
|
||||
my %subfield_data;
|
||||
$subfield_data{marc_lib} = $tagslib->{ $field->tag() }->{'@'}->{lib};
|
||||
|
|
@ -99,7 +98,6 @@ foreach my $field (@fields) {
|
|||
for my $i ( 0 .. $#subf ) {
|
||||
$subf[$i][0] = "@" unless defined $subf[$i][0];
|
||||
|
||||
# next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab} ne $tabloop);
|
||||
next if ( $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{hidden} );
|
||||
my %subfield_data;
|
||||
$subfield_data{marc_lib} = $tagslib->{ $field->tag() }->{ $subf[$i][0] }->{lib};
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@
|
|||
|
||||
=head1 cataloguing:addbooks.pl
|
||||
|
||||
TODO
|
||||
|
||||
=cut
|
||||
|
||||
use Modern::Perl;
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ while ( my $library = $libraries->next ) {
|
|||
push( @transferloop, \%getransf );
|
||||
}
|
||||
|
||||
# If we have a return of reservloop we put it in the branchloop sequence
|
||||
# If we have a return of reservloop we put it in the branchloop sequence
|
||||
$branchloop{'reserve'} = \@transferloop;
|
||||
}
|
||||
push( @branchesloop, \%branchloop ) if %branchloop;
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ sub cancel {
|
|||
|
||||
my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $itemnumber, $borrowernumber );
|
||||
|
||||
# if the document is not in his homebranch location and there is not reservation after, we transfer it
|
||||
# if the document is not in his homebranch location and there is not reservation after, we transfer it
|
||||
if ( $transfer && !$nextreservinfo && !$item->itemlost ) {
|
||||
ModItemTransfer( $itemnumber, $fbr, $tbr, 'CancelReserve' );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -164,10 +164,11 @@
|
|||
</li>
|
||||
[% END %]
|
||||
<!-- // Removing freight input until shipping can be proplerly handled .
|
||||
<li>
|
||||
<label for="freight">Shipping:</label>
|
||||
<input type="text" size="20" id="freight" name="freight" />
|
||||
</li> -->
|
||||
<li>
|
||||
<label for="freight">Shipping:</label>
|
||||
<input type="text" size="20" id="freight" name="freight" />
|
||||
</li>
|
||||
-->
|
||||
<li>
|
||||
<label for="shipmentdate">Shipment date: </label>
|
||||
<input type="text" id="shipmentdate" name="shipmentdate" maxlength="10" size="10" value="[% shipmentdate_today | html %]" class="flatpickr" />
|
||||
|
|
|
|||
|
|
@ -340,10 +340,11 @@
|
|||
<fieldset class="action">
|
||||
[% IF op != 'cud-saveitem' %]
|
||||
<input type="submit" name="phony_submit" value="phony_submit" id="phony_submit" style="display:none;" onclick="return false;" />
|
||||
<!-- Note : We use here a false submit button because we have several submit buttons and we don't want the user to believe they validated the adding of multiple items
|
||||
when pressing the enter key, while in fact it is the first submit button that is validated, in our case the "add (single) item" button.
|
||||
It is a bit tricky, but necessary in the sake of UI correctness.
|
||||
-->
|
||||
<!-- Note:
|
||||
We use here a false submit button because we have several submit buttons and we do not want the user to believe they validated the adding of multiple items
|
||||
when pressing the enter key, while in fact it is the first submit button that is validated, in our case the "add (single) item" button.
|
||||
It is a bit tricky, but necessary in the sake of UI correctness.
|
||||
-->
|
||||
<span id="addsingle">
|
||||
<input type="submit" name="add_submit" value="Add item" onclick="return Check(this.form)" />
|
||||
<input type="submit" name="add_duplicate_submit" value="Add and duplicate" onclick="return Check(this.form)" />
|
||||
|
|
|
|||
|
|
@ -175,10 +175,12 @@
|
|||
<option value="15">15</option>
|
||||
<option value="20">20</option>
|
||||
<option value="">No limit</option>
|
||||
<!-- <option value ="25">25</option>
|
||||
<option value ="40">40</option>
|
||||
<option value ="50">50</option>
|
||||
<option value ="100">100</option>-->
|
||||
<!--
|
||||
<option value ="25">25</option>
|
||||
<option value ="40">40</option>
|
||||
<option value ="50">50</option>
|
||||
<option value ="100">100</option>
|
||||
-->
|
||||
</select></li
|
||||
>
|
||||
<li
|
||||
|
|
|
|||
|
|
@ -213,10 +213,10 @@
|
|||
<label class="inline" for="basename">Named:</label>
|
||||
<input type="text" name="basename" id="basename" value="Export" />
|
||||
<!--
|
||||
<label for="MIME" class="inline">Into an application:</label>
|
||||
[% CGIextChoice | html %]
|
||||
[% CGIsepChoice | html %]
|
||||
-->
|
||||
<label for="MIME" class="inline">Into an application:</label>
|
||||
[% CGIextChoice | html %]
|
||||
[% CGIsepChoice | html %]
|
||||
-->
|
||||
<input type="hidden" name="report_name" value="[% report_name | html %]" />
|
||||
</li>
|
||||
</ol>
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ if ( $issues == 1 ) {
|
|||
# Inserting missing issue
|
||||
my $insert =
|
||||
"INSERT INTO statistics (datetime, branch, value, type, other, itemnumber, itemtype, borrowernumber)
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
$substh = $dbh->prepare($insert);
|
||||
my $item = Koha::Items->find( $hashref->{'itemnumber'} );
|
||||
my $itemtype = $item->effective_itemtype;
|
||||
|
|
@ -119,7 +119,7 @@ if ( $issues == 1 ) {
|
|||
# Inserting missing renewals
|
||||
my $insert =
|
||||
"INSERT INTO statistics (datetime, branch, value, type, other, itemnumber, itemtype, borrowernumber)
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
$substh = $dbh->prepare($insert);
|
||||
my $item = Koha::Items->find( $hashref->{'itemnumber'} );
|
||||
my $itemtype = $item->effective_itemtype;
|
||||
|
|
@ -164,7 +164,7 @@ if ( $returns == 1 ) {
|
|||
# Inserting missing issue
|
||||
my $insert =
|
||||
"INSERT INTO statistics (datetime, branch, value, type, other, itemnumber, itemtype, borrowernumber)
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
$substh = $dbh->prepare($insert);
|
||||
my $item = Koha::Items->find( $hashref->{'itemnumber'} );
|
||||
my $itemtype = $item->effective_itemtype;
|
||||
|
|
|
|||
|
|
@ -47,15 +47,15 @@ sub SYNTAXERROR_P () { 'syntaxerror-p' }
|
|||
|
||||
sub FILENAME () { 'input' }
|
||||
|
||||
#sub HANDLE () {'handle'}
|
||||
#sub HANDLE () {'handle'}
|
||||
|
||||
#sub READAHEAD () {'readahead'}
|
||||
#sub READAHEAD () {'readahead'}
|
||||
sub LINENUM_START () { 'lc_0' }
|
||||
sub LINENUM () { 'lc' }
|
||||
sub CDATA_MODE_P () { 'cdata-mode-p' }
|
||||
sub CDATA_CLOSE () { 'cdata-close' }
|
||||
|
||||
#sub PCDATA_MODE_P () {'pcdata-mode-p'} # additional submode for CDATA
|
||||
#sub PCDATA_MODE_P () {'pcdata-mode-p'} # additional submode for CDATA
|
||||
sub JS_MODE_P () { 'js-mode-p' } # cdata-mode-p must also be true
|
||||
|
||||
sub ALLOW_CFORMAT_P () { 'allow-cformat-p' }
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ EOF
|
|||
$fmt =~ s/^%/%$n\$/;
|
||||
if ( $type == C4::TmplTokenType::DIRECTIVE ) {
|
||||
|
||||
# $type = "Template::Toolkit Directive";
|
||||
# $type = "Template::Toolkit Directive";
|
||||
$type = $param->string =~ /\[%(.*?)%\]/is ? $1 : 'ERROR';
|
||||
my $name = $param->string =~ /\bname=(["']?)([^\s"']+)\1/is ? $2 : undef;
|
||||
printf $OUTPUT "#. %s: %s\n", $fmt,
|
||||
|
|
@ -473,7 +473,7 @@ The JavaScript must actually define a _ function
|
|||
so that the code remains correct JavaScript.
|
||||
A suitable definition of such a function can be
|
||||
|
||||
function _(s) { return s } // dummy function for gettext
|
||||
function _(s) { return s } // dummy function for gettext
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
|
|
|
|||
|
|
@ -45,24 +45,24 @@ my $cgi = CGI->new;
|
|||
my @services = (
|
||||
'Describe', # Not part of ILS-DI, online API doc
|
||||
|
||||
# Level 1: Basic Discovery Interfaces
|
||||
# 'HarvestBibliographicRecords', # OAI-PMH
|
||||
# 'HarvestExpandedRecords', # OAI-PMH
|
||||
# Level 1: Basic Discovery Interfaces
|
||||
# 'HarvestBibliographicRecords', # OAI-PMH
|
||||
# 'HarvestExpandedRecords', # OAI-PMH
|
||||
'GetAvailability', # FIXME Add bibliographic level
|
||||
|
||||
# 'GoToBibliographicRequestPage' # I don't understant this one
|
||||
# Level 2: Elementary OPAC supplement
|
||||
# 'HarvestAuthorityRecords', # OAI-PMH
|
||||
# 'HarvestHoldingsRecords', # OAI-PMH
|
||||
# 'GoToBibliographicRequestPage' # I don't understant this one
|
||||
# Level 2: Elementary OPAC supplement
|
||||
# 'HarvestAuthorityRecords', # OAI-PMH
|
||||
# 'HarvestHoldingsRecords', # OAI-PMH
|
||||
'GetRecords', # Note that we can use OAI-PMH for this too
|
||||
|
||||
# 'Search', # TODO
|
||||
# 'Scan', # TODO
|
||||
# 'Search', # TODO
|
||||
# 'Scan', # TODO
|
||||
'GetAuthorityRecords',
|
||||
|
||||
# 'OutputRewritablePage', # I don't understant this one
|
||||
# 'OutputIntermediateFormat', # I don't understant this one
|
||||
# Level 3: Elementary OPAC alternative
|
||||
# 'OutputRewritablePage', # I don't understant this one
|
||||
# 'OutputIntermediateFormat', # I don't understant this one
|
||||
# Level 3: Elementary OPAC alternative
|
||||
'LookupPatron',
|
||||
'AuthenticatePatron',
|
||||
'GetPatronInfo',
|
||||
|
|
@ -73,11 +73,11 @@ my @services = (
|
|||
'HoldItem', # FIXME Add dates support
|
||||
'CancelHold',
|
||||
|
||||
# 'RecallItem', # Not supported by Koha
|
||||
# 'CancelRecall', # Not supported by Koha
|
||||
# Level 4: Robust/domain specific discovery platforms
|
||||
# 'SearchCourseReserves', # TODO
|
||||
# 'Explain' # TODO
|
||||
# 'RecallItem', # Not supported by Koha
|
||||
# 'CancelRecall', # Not supported by Koha
|
||||
# Level 4: Robust/domain specific discovery platforms
|
||||
# 'SearchCourseReserves', # TODO
|
||||
# 'Explain' # TODO
|
||||
);
|
||||
|
||||
# List of required arguments
|
||||
|
|
|
|||
|
|
@ -358,15 +358,15 @@ __END__
|
|||
|
||||
=head1 EXAMPLE AJAX POST PARAMETERS
|
||||
|
||||
CGISESSID 7c6288263107beb320f70f78fd767f56
|
||||
newtag396 fire,+<a+href="foobar.html">foobar</a>,+<img+src="foo.jpg"+/>
|
||||
CGISESSID 7c6288263107beb320f70f78fd767f56
|
||||
newtag396 fire,+<a+href="foobar.html">foobar</a>,+<img+src="foo.jpg"+/>
|
||||
|
||||
So this request is trying to add 3 tags to biblio #396. The CGISESSID is the same as that the browser would
|
||||
typically communicate using cookies. If it is valid, the server will split the value of "newtag396" and
|
||||
process the components for addition. In this case the intended tags are:
|
||||
fire
|
||||
<a+href="foobar.html">foobar</a>
|
||||
<img src="foo.jpg" />
|
||||
fire
|
||||
<a+href="foobar.html">foobar</a>
|
||||
<img src="foo.jpg" />
|
||||
|
||||
The first tag is acceptable. The second will be scrubbed of markup, resulting in the tag "foobar".
|
||||
The third tag is all markup, and will be rejected.
|
||||
|
|
@ -374,13 +374,13 @@ The third tag is all markup, and will be rejected.
|
|||
=head1 EXAMPLE AJAX JSON response
|
||||
|
||||
response = {
|
||||
added: 2,
|
||||
deleted: 0,
|
||||
errors: 2,
|
||||
alerts: [
|
||||
KOHA.Tags.tag_message.scrubbed("foobar"),
|
||||
KOHA.Tags.tag_message.scrubbed_all_bad("1"),
|
||||
],
|
||||
added: 2,
|
||||
deleted: 0,
|
||||
errors: 2,
|
||||
alerts: [
|
||||
KOHA.Tags.tag_message.scrubbed("foobar"),
|
||||
KOHA.Tags.tag_message.scrubbed_all_bad("1"),
|
||||
],
|
||||
};
|
||||
|
||||
=cut
|
||||
|
|
|
|||
|
|
@ -282,10 +282,10 @@ sub calculate {
|
|||
my %patrons = ();
|
||||
|
||||
# DATA STRUCTURE is going to look like this:
|
||||
# (2253=> {name=>"John Doe",
|
||||
# allcols=>{MAIN=>12, MEDIA_LIB=>3}
|
||||
# },
|
||||
# )
|
||||
# (2253=> {name=>"John Doe",
|
||||
# allcols=>{MAIN=>12, MEDIA_LIB=>3}
|
||||
# },
|
||||
# )
|
||||
while ( my @data = $dbcalc->fetchrow ) {
|
||||
my ( $row, $rank, $id, $col ) = @data;
|
||||
$col = "zzEMPTY" if ( !defined($col) );
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ sub calculate {
|
|||
my @colfilter;
|
||||
$colfilter[0] = @$filters[0] if ( $column =~ /category/ );
|
||||
|
||||
# $colfilter[0] = @$filters[11] if ($column =~ /sort2/ ) ;
|
||||
# $colfilter[0] = @$filters[11] if ($column =~ /sort2/ ) ;
|
||||
#warn "filtre col ".$colfilter[0]." ".$colfilter[1];
|
||||
|
||||
# loop cols.
|
||||
|
|
@ -189,25 +189,25 @@ sub calculate {
|
|||
while ( my ($celvalue) = $sth2->fetchrow ) {
|
||||
my %cell;
|
||||
|
||||
# my %ft;
|
||||
# warn "coltitle :".$celvalue;
|
||||
# my %ft;
|
||||
# warn "coltitle :".$celvalue;
|
||||
$cell{coltitle} = $celvalue;
|
||||
|
||||
# $ft{totalcol} = 0;
|
||||
# $ft{totalcol} = 0;
|
||||
push @loopcol, \%cell;
|
||||
}
|
||||
|
||||
# warn "fin des titres colonnes";
|
||||
# warn "fin des titres colonnes";
|
||||
}
|
||||
|
||||
my $i = 0;
|
||||
|
||||
# my @totalcol;
|
||||
# my @totalcol;
|
||||
|
||||
#Initialization of cell values.....
|
||||
my @table;
|
||||
|
||||
# warn "init table";
|
||||
# warn "init table";
|
||||
if ($line) {
|
||||
for ( my $i = 1 ; $i <= $line ; $i++ ) {
|
||||
foreach my $col (@loopcol) {
|
||||
|
|
@ -262,7 +262,7 @@ sub calculate {
|
|||
my $dbcalc = $dbh->prepare($strcalc);
|
||||
$dbcalc->execute(@query_args);
|
||||
|
||||
# warn "filling table";
|
||||
# warn "filling table";
|
||||
my $previous_col;
|
||||
$i = 1;
|
||||
while ( my @data = $dbcalc->fetchrow ) {
|
||||
|
|
@ -271,7 +271,7 @@ sub calculate {
|
|||
$i = 1 if ( ($previous_col) and not( $col eq $previous_col ) );
|
||||
$table[$i]->{$col} = $row;
|
||||
|
||||
# warn " $i $col $row";
|
||||
# warn " $i $col $row";
|
||||
$i++;
|
||||
$previous_col = $col;
|
||||
}
|
||||
|
|
@ -311,7 +311,7 @@ sub calculate {
|
|||
$globalline{looprow} = \@looprow;
|
||||
$globalline{loopcol} = \@loopcol;
|
||||
|
||||
# # the foot (totals by borrower type)
|
||||
# # the foot (totals by borrower type)
|
||||
$globalline{loopfooter} = \@loopfooter;
|
||||
$globalline{total} = $grantotal;
|
||||
$globalline{line} = $line;
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ sub calculate {
|
|||
#Initialization of cell values.....
|
||||
my %table;
|
||||
|
||||
# warn "init table";
|
||||
# warn "init table";
|
||||
foreach my $row (@loopline) {
|
||||
foreach my $col (@loopcol) {
|
||||
my $rowtitle = $row->{rowtitle} // '';
|
||||
|
|
@ -415,7 +415,7 @@ sub calculate {
|
|||
my $emptycol;
|
||||
while ( my ( $row, $col, $value ) = $dbcalc->fetchrow ) {
|
||||
|
||||
# warn "filling table $row / $col / $value ";
|
||||
# warn "filling table $row / $col / $value ";
|
||||
$emptycol = 1 if ( !defined($col) );
|
||||
$col = "zzEMPTY" if ( !defined($col) );
|
||||
$row = "zzEMPTY" if ( !defined($row) );
|
||||
|
|
@ -456,10 +456,10 @@ sub calculate {
|
|||
|
||||
$total += $table{$rowtitle}->{$coltitle} || 0;
|
||||
|
||||
# warn "value added ".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
|
||||
# warn "value added ".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
|
||||
}
|
||||
|
||||
# warn "summ for column ".$col->{coltitle}." = ".$total;
|
||||
# warn "summ for column ".$col->{coltitle}." = ".$total;
|
||||
push @loopfooter, { 'totalcol' => $total };
|
||||
}
|
||||
|
||||
|
|
@ -470,7 +470,7 @@ sub calculate {
|
|||
$globalline{looprow} = \@looprow;
|
||||
$globalline{loopcol} = \@loopcol;
|
||||
|
||||
# # the foot (totals by borrower type)
|
||||
# # the foot (totals by borrower type)
|
||||
$globalline{loopfooter} = \@loopfooter;
|
||||
$globalline{total} = $grantotal;
|
||||
$globalline{line} = ($line_attribute_type) ? $line_attribute_type : $line;
|
||||
|
|
|
|||
|
|
@ -282,22 +282,22 @@ sub calculate {
|
|||
push @loopcol, \%cell;
|
||||
}
|
||||
|
||||
# warn "fin des titres colonnes";
|
||||
# warn "fin des titres colonnes";
|
||||
}
|
||||
|
||||
my $i = 0;
|
||||
|
||||
# my @totalcol;
|
||||
# my @totalcol;
|
||||
my $highlighted = -1;
|
||||
|
||||
#Initialization of cell values.....
|
||||
my @table;
|
||||
|
||||
# warn "init table";
|
||||
# warn "init table";
|
||||
for ( my $i = 1 ; $i <= $line ; $i++ ) {
|
||||
foreach my $col (@loopcol) {
|
||||
|
||||
# warn " init table : $row->{rowtitle} / $col->{coltitle} ";
|
||||
# warn " init table : $row->{rowtitle} / $col->{coltitle} ";
|
||||
$table[$i]->{ ( $col->{coltitle} ) ? $col->{coltitle} : "total" }->{'name'} = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -421,7 +421,7 @@ sub calculate {
|
|||
$globalline{looprow} = \@looprow;
|
||||
$globalline{loopcol} = \@loopcol;
|
||||
|
||||
# # the foot (totals by borrower type)
|
||||
# # the foot (totals by borrower type)
|
||||
$globalline{total} = $grantotal;
|
||||
$globalline{line} = $line;
|
||||
$globalline{column} = $column;
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ sub calculate {
|
|||
LEFT JOIN old_issues USING (itemnumber)
|
||||
WHERE issues.itemnumber IS NULL
|
||||
AND old_issues.itemnumber IS NULL
|
||||
";
|
||||
";
|
||||
if ( $filters->[0] ) {
|
||||
$filters->[0] =~ s/\*/%/g;
|
||||
push @exe_args, $filters->[0];
|
||||
|
|
|
|||
|
|
@ -207,10 +207,10 @@ sub calculate {
|
|||
|
||||
my @linefilter;
|
||||
|
||||
# warn "filtres ".@filters[0];
|
||||
# warn "filtres ".@filters[1];
|
||||
# warn "filtres ".@filters[2];
|
||||
# warn "filtres ".@filters[3];
|
||||
# warn "filtres ".@filters[0];
|
||||
# warn "filtres ".@filters[1];
|
||||
# warn "filtres ".@filters[2];
|
||||
# warn "filtres ".@filters[3];
|
||||
$line = "old_issues." . $line if ( $line =~ /branchcode/ ) or ( $line =~ /timestamp/ );
|
||||
if ( $line =~ /itemtype/ ) { $line = $itype; }
|
||||
$linefilter[0] = @$filters[0] if ( $line =~ /timestamp/ );
|
||||
|
|
@ -378,13 +378,13 @@ sub calculate {
|
|||
my %cell;
|
||||
my %ft;
|
||||
|
||||
# warn "coltitle :".$celvalue;
|
||||
# warn "coltitle :".$celvalue;
|
||||
$cell{coltitle} = $celvalue;
|
||||
$ft{totalcol} = 0;
|
||||
push @loopcol, \%cell;
|
||||
}
|
||||
|
||||
# warn "fin des titres colonnes";
|
||||
# warn "fin des titres colonnes";
|
||||
|
||||
my $i = 0;
|
||||
my $highlighted = -1;
|
||||
|
|
@ -394,11 +394,11 @@ sub calculate {
|
|||
my %wgttable;
|
||||
my %cnttable;
|
||||
|
||||
# warn "init table";
|
||||
# warn "init table";
|
||||
foreach my $row (@loopline) {
|
||||
foreach my $col (@loopcol) {
|
||||
|
||||
# warn " init table : $row->{rowtitle} / $col->{coltitle} ";
|
||||
# warn " init table : $row->{rowtitle} / $col->{coltitle} ";
|
||||
$table{ $row->{rowtitle} }->{ $col->{coltitle} } = 0;
|
||||
}
|
||||
$table{ $row->{rowtitle} }->{totalrow} = 0;
|
||||
|
|
@ -440,7 +440,7 @@ sub calculate {
|
|||
my $dbcalc = $dbh->prepare($strcalc);
|
||||
$dbcalc->execute;
|
||||
|
||||
# warn "filling table";
|
||||
# warn "filling table";
|
||||
my $issues_count = 0;
|
||||
my $loanlength;
|
||||
my $emptycol;
|
||||
|
|
@ -448,7 +448,7 @@ sub calculate {
|
|||
while ( my @data = $dbcalc->fetchrow ) {
|
||||
my ( $row, $col, $issuedate, $returndate, $weight ) = @data;
|
||||
|
||||
# warn "filling table $row / $col / $issuedate / $returndate /$weight";
|
||||
# warn "filling table $row / $col / $issuedate / $returndate /$weight";
|
||||
$emptycol = 1 if ( !defined($col) );
|
||||
$col = "zzEMPTY" if ( !defined($col) );
|
||||
$row = "zzEMPTY" if ( !defined($row) );
|
||||
|
|
@ -457,11 +457,11 @@ sub calculate {
|
|||
# and seconds between the two
|
||||
$loanlength = Delta_Days( split( /-/, $issuedate ), split( /-/, $returndate ) );
|
||||
|
||||
# warn "512 Same row and col DateCalc returns :$loanlength with return ". $returndate ."issue ". $issuedate ."weight : ". $weight;
|
||||
# warn "513 row :".$row." column :".$col;
|
||||
# warn "512 Same row and col DateCalc returns :$loanlength with return ". $returndate ."issue ". $issuedate ."weight : ". $weight;
|
||||
# warn "513 row :".$row." column :".$col;
|
||||
$table{$row}->{$col} += $weight * $loanlength;
|
||||
|
||||
# $table{$row}->{totalrow}+=$weight*$loanlength;
|
||||
# $table{$row}->{totalrow}+=$weight*$loanlength;
|
||||
$cnttable{$row}->{$col} = 1;
|
||||
$wgttable{$row}->{$col} += $weight;
|
||||
}
|
||||
|
|
@ -523,7 +523,7 @@ sub calculate {
|
|||
$highlighted = -$highlighted;
|
||||
}
|
||||
#
|
||||
# # warn "footer processing";
|
||||
# # warn "footer processing";
|
||||
foreach my $col (@loopcol) {
|
||||
my $total = 0;
|
||||
my $nbrow = 0;
|
||||
|
|
@ -536,10 +536,10 @@ sub calculate {
|
|||
$nbrow += $cnttable{ ( $row->{rowtitle} eq "NULL" ) ? "zzEMPTY" : $row->{rowtitle} }
|
||||
->{ ( $col->{coltitle} eq "NULL" ) ? "zzEMPTY" : $col->{coltitle} };
|
||||
|
||||
# warn "value added ".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
|
||||
# warn "value added ".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
|
||||
}
|
||||
|
||||
# warn "summ for column ".$col->{coltitle}." = ".$total;
|
||||
# warn "summ for column ".$col->{coltitle}." = ".$total;
|
||||
$total = $total / $nbrow if ($nbrow);
|
||||
push @loopfooter, { 'totalcol' => ($total) ? sprintf( "%.2f", $total ) : 0 };
|
||||
|
||||
|
|
@ -552,7 +552,7 @@ sub calculate {
|
|||
$globalline{looprow} = \@looprow;
|
||||
$globalline{loopcol} = \@loopcol;
|
||||
|
||||
# # the foot (totals by borrower type)
|
||||
# # the foot (totals by borrower type)
|
||||
$globalline{loopfooter} = \@loopfooter;
|
||||
$globalline{total} = $grantotal;
|
||||
$globalline{line} = $line;
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ sub calculate {
|
|||
$strcalc .= "
|
||||
FROM (select * from reserves union select * from old_reserves) reserves
|
||||
LEFT JOIN borrowers USING (borrowernumber)
|
||||
";
|
||||
";
|
||||
$strcalc .= "LEFT JOIN biblio ON reserves.biblionumber=biblio.biblionumber "
|
||||
if ( $linefield =~ /^biblio\./ or $colfield =~ /^biblio\./ or any { $_ =~ /biblio/ } keys %$filters_hashref );
|
||||
$strcalc .= "LEFT JOIN items ON reserves.itemnumber=items.itemnumber "
|
||||
|
|
@ -279,7 +279,7 @@ sub calculate {
|
|||
push @loopcell, {
|
||||
value => ( $$data{$row}{$col}{calculation} or "" ),
|
||||
|
||||
# url_complement=>($urlbase=~/&$/?$urlbase."&":$urlbase)."filter_$linefield=$row&filter_$colfield=$col"
|
||||
# url_complement=>($urlbase=~/&$/?$urlbase."&":$urlbase)."filter_$linefield=$row&filter_$colfield=$col"
|
||||
};
|
||||
}
|
||||
push @looprow, {
|
||||
|
|
@ -308,7 +308,7 @@ sub calculate {
|
|||
$globalline{looprow} = \@looprow;
|
||||
$globalline{loopcol} = \@loopcol;
|
||||
|
||||
# # the foot (totals by borrower type)
|
||||
# # the foot (totals by borrower type)
|
||||
$globalline{loopfooter} = \@loopfooter;
|
||||
$globalline{total} = $grantotal;
|
||||
$globalline{line} = $linefield;
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ if ($do_it) {
|
|||
LEFT JOIN aqbooksellers ON (subscription.aqbooksellerid=aqbooksellers.id )
|
||||
GROUP BY aqbooksellerid, aqbooksellers.name
|
||||
ORDER BY aqbooksellers.name ASC
|
||||
"
|
||||
"
|
||||
);
|
||||
$sth->execute();
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
#
|
||||
# Current maintainer MJR http://mjr.towers.org.uk/
|
||||
#
|
||||
# 2007/11/12 Added DB_PORT and changed other keywords to reflect multi-dbms support. -fbcit
|
||||
# 2007/11/12 Added DB_PORT and changed other keywords to reflect multi-dbms support. -fbcit
|
||||
|
||||
use Modern::Perl;
|
||||
use Sys::Hostname;
|
||||
|
|
@ -29,7 +29,7 @@ rewrite-config.PL - helper for the Koha packager and installer
|
|||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
perl rewrite-config.PL configurationfile
|
||||
perl rewrite-config.PL configurationfile
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
|
|
@ -52,8 +52,8 @@ WEBSERVER_HOST, WEBSERVER_IP, WEBSERVER_PORT, WEBSERVER_PORT_LIBRARIAN, ZEBRA_PA
|
|||
|
||||
To override the guessed hostname and email address, run:
|
||||
|
||||
WEBSERVER_HOST=mysecrethostname.com.invalid \
|
||||
WEBMASTER_EMAIL=webmaster@publichost.com make install
|
||||
WEBSERVER_HOST=mysecrethostname.com.invalid \
|
||||
WEBMASTER_EMAIL=webmaster@publichost.com make install
|
||||
|
||||
Note that if WEBSERVER_HOST does not resolve to an IP address, you will
|
||||
also need to override WEBSERVER_IP.
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ ok(
|
|||
ok( !$error, 'no errors in conversion' );
|
||||
|
||||
#FIXME This test fails
|
||||
# $marcxml =~ s/\n//g;
|
||||
# $marcxml =~ s/v\/ s/v\/s/g; # FIXME: bug in new_from_xml_record!!
|
||||
#\t$marcxml =~ s/\n//g;
|
||||
#\t$marcxml =~ s/v\/ s/v\/s/g; # FIXME: bug in new_from_xml_record!!
|
||||
#is ($marcxml,$marcxml_utf8, 'record matches antitype');
|
||||
|
||||
ok(
|
||||
|
|
@ -109,8 +109,8 @@ ok(
|
|||
ok( !$error, 'no errors in conversion' );
|
||||
|
||||
#FIXME This test fails
|
||||
# $marcxml =~ s/\n//g;
|
||||
# $marcxml =~ s/v\/ s/v\/s/g;
|
||||
#\t$marcxml =~ s/\n//g;
|
||||
#\t$marcxml =~ s/v\/ s/v\/s/g;
|
||||
#is ($marcxml,$marcxml_utf8, 'record matches antitype');
|
||||
|
||||
print "\n2. checking binary MARC21 records with combining characters to MARCXML\n";
|
||||
|
|
|
|||
|
|
@ -22,18 +22,18 @@
|
|||
ALGO :
|
||||
this script use an $op to know what to do.
|
||||
if $op is empty or none of the values listed below,
|
||||
- the default screen is built (with all or filtered (if search string is set) records).
|
||||
- the user can click on add, modify or delete record.
|
||||
- the default screen is built (with all or filtered (if search string is set) records).
|
||||
- the user can click on add, modify or delete record.
|
||||
- filtering is done on the code field
|
||||
if $op=add_form
|
||||
- if primary key (module + code) exists, this is a modification,so we read the required record
|
||||
- builds the add/modify form
|
||||
- if primary key (module + code) exists, this is a modification,so we read the required record
|
||||
- builds the add/modify form
|
||||
if $op=add_validate
|
||||
- the user has just send data, so we create/modify the record
|
||||
- the user has just send data, so we create/modify the record
|
||||
if $op=delete_form
|
||||
- we show the record selected and ask for confirmation
|
||||
- we show the record selected and ask for confirmation
|
||||
if $op=delete_confirm
|
||||
- we delete the designated record
|
||||
- we delete the designated record
|
||||
|
||||
=cut
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue