Bugzilla – Attachment 12157 Details for
Bug 8034
Enable server print queue selection
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
bug_8034: Restored network printer maintenance and selection
bug8034-Restored-network-printer-maintenance-and-s.patch (text/plain), 48.34 KB, created by
Srdjan Jankovic
on 2012-09-12 01:20:39 UTC
(
hide
)
Description:
bug_8034: Restored network printer maintenance and selection
Filename:
MIME Type:
Creator:
Srdjan Jankovic
Created:
2012-09-12 01:20:39 UTC
Size:
48.34 KB
patch
obsolete
>From cee85fb1b38173d8e327e094cbe74b5054f7c040 Mon Sep 17 00:00:00 2001 >From: Srdjan <srdjan@catalyst.net.nz> >Date: Wed, 12 Sep 2012 13:18:32 +1200 >Subject: [PATCH] bug_8034: Restored network printer maintenance and selection > >This patch is just for restoring printer maintenance and selection, not >for priting itself. It is just a preparation step. > >* Added UsePrintQueues syspref. If set to No, no printer info will be > displayed/used >* Database changes: >- printers table PRIMARY KEY is now printqueue. It is more natural. We > should really have a synthetic id, but printqueue is good enough >- branches.branchprinter is a FOREIGN KEY to printers.printqueue >* Created C4::Auth::get_user_printer() function that will return > appropriate printer. In order of preference: >- session selected >- logged in branch branchprinter >* Moved printer functions to C4::Printer >* Restored printer maint/selection in admin zone UsePrintQueues > permitting >* Restored printer selection in circ/selectbranchprinter.pl > UsePrintQueues permitting > >Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> >--- > C4/Auth.pm | 49 +++++-- > C4/Context.pm | 2 +- > C4/Koha.pm | 40 ------ > C4/Printer.pm | 148 +++++++++++++++++++ > admin/branches.pl | 30 ++-- > admin/printers.pl | 152 ++++++++++---------- > circ/circulation.pl | 12 +- > circ/returns.pl | 8 -- > circ/selectbranchprinter.pl | 49 ++++--- > installer/data/mysql/kohastructure.sql | 16 ++- > installer/data/mysql/sysprefs.sql | 1 + > installer/data/mysql/updatedatabase.pl | 12 ++ > .../intranet-tmpl/prog/en/includes/admin-menu.inc | 1 + > .../intranet-tmpl/prog/en/includes/header.inc | 3 + > .../prog/en/modules/admin/admin-home.tt | 4 +- > .../prog/en/modules/admin/branches.tt | 20 +-- > .../en/modules/admin/preferences/circulation.pref | 6 + > .../prog/en/modules/admin/printers.tt | 33 +---- > .../prog/en/modules/circ/circulation.tt | 2 - > .../prog/en/modules/circ/selectbranchprinter.tt | 5 +- > t/db_dependent/lib/KohaTest/Koha.pm | 2 - > t/db_dependent/lib/KohaTest/Printer.pm | 26 ++++ > 22 files changed, 393 insertions(+), 228 deletions(-) > create mode 100644 C4/Printer.pm > create mode 100644 t/db_dependent/lib/KohaTest/Printer.pm > >diff --git a/C4/Auth.pm b/C4/Auth.pm >index 59c9955..71abfb3 100644 >--- a/C4/Auth.pm >+++ b/C4/Auth.pm >@@ -28,6 +28,7 @@ require Exporter; > use C4::Context; > use C4::Templates; # to get the template > use C4::Branch; # GetBranches >+use C4::Printer qw(GetPrinterDetails); > use C4::VirtualShelves; > use POSIX qw/strftime/; > use List::MoreUtils qw/ any /; >@@ -46,7 +47,8 @@ BEGIN { > $debug = $ENV{DEBUG}; > @ISA = qw(Exporter); > @EXPORT = qw(&checkauth &get_template_and_user &haspermission &get_user_subpermissions); >- @EXPORT_OK = qw(&check_api_auth &get_session &check_cookie_auth &checkpw &get_all_subpermissions &get_user_subpermissions); >+ @EXPORT_OK = qw(&check_api_auth &get_session &check_cookie_auth &checkpw >+ &get_all_subpermissions &get_user_subpermissions &get_user_printer); > %EXPORT_TAGS = ( EditPermissions => [qw(get_all_subpermissions get_user_subpermissions)] ); > $ldap = C4::Context->config('useldapserver') || 0; > $cas = C4::Context->preference('casAuthentication'); >@@ -310,6 +312,9 @@ sub get_template_and_user { > $template->param(dateformat_iso => 1); > } > >+ my $userenv = C4::Context->userenv; >+ my $userenv_branch = $userenv ? $userenv->{"branch"} : undef; >+ > # these template parameters are set the same regardless of $in->{'type'} > $template->param( > "BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1, >@@ -317,9 +322,9 @@ sub get_template_and_user { > GoogleJackets => C4::Context->preference("GoogleJackets"), > OpenLibraryCovers => C4::Context->preference("OpenLibraryCovers"), > KohaAdminEmailAddress => "" . C4::Context->preference("KohaAdminEmailAddress"), >- LoginBranchcode => (C4::Context->userenv?C4::Context->userenv->{"branch"}:"insecure"), >- LoginFirstname => (C4::Context->userenv?C4::Context->userenv->{"firstname"}:"Bel"), >- LoginSurname => C4::Context->userenv?C4::Context->userenv->{"surname"}:"Inconnu", >+ LoginBranchcode => ($userenv?$userenv_branch:"insecure"), >+ LoginFirstname => ($userenv?$userenv->{"firstname"}:"Bel"), >+ LoginSurname => $userenv?$userenv->{"surname"}:"Inconnu", > TagsEnabled => C4::Context->preference("TagsEnabled"), > hide_marc => C4::Context->preference("hide_marc"), > item_level_itypes => C4::Context->preference('item-level_itypes'), >@@ -344,7 +349,7 @@ sub get_template_and_user { > IntranetNav => C4::Context->preference("IntranetNav"), > IntranetmainUserblock => C4::Context->preference("IntranetmainUserblock"), > LibraryName => C4::Context->preference("LibraryName"), >- LoginBranchname => (C4::Context->userenv?C4::Context->userenv->{"branchname"}:"insecure"), >+ LoginBranchname => ($userenv?$userenv->{"branchname"}:"insecure"), > advancedMARCEditor => C4::Context->preference("advancedMARCEditor"), > canreservefromotherbranches => C4::Context->preference('canreservefromotherbranches'), > intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"), >@@ -364,6 +369,14 @@ sub get_template_and_user { > AllowMultipleCovers => C4::Context->preference('AllowMultipleCovers'), > EnableBorrowerFiles => C4::Context->preference('EnableBorrowerFiles'), > ); >+ if ( C4::Context->preference('UsePrintQueues') ) { >+ my $printer = get_user_printer(); >+ my $printer_rec = $printer ? GetPrinterDetails($printer) : {}; >+ $template->param( >+ UsePrintQueues => 1, >+ PrinterName => $printer_rec->{printername}, >+ ); >+ } > } > else { > warn "template type should be OPAC, here it is=[" . $in->{'type'} . "]" unless ( $in->{'type'} eq 'opac' ); >@@ -382,8 +395,8 @@ sub get_template_and_user { > my $opac_name = ''; > if (($opac_search_limit =~ /branch:(\w+)/ && $opac_limit_override) || $in->{'query'}->param('limit') =~ /branch:(\w+)/){ > $opac_name = $1; # opac_search_limit is a branch, so we use it. >- } elsif (C4::Context->preference("SearchMyLibraryFirst") && C4::Context->userenv && C4::Context->userenv->{'branch'}) { >- $opac_name = C4::Context->userenv->{'branch'}; >+ } elsif (C4::Context->preference("SearchMyLibraryFirst") && $userenv_branch) { >+ $opac_name = $userenv_branch > } > $template->param( > opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"), >@@ -393,7 +406,7 @@ sub get_template_and_user { > CalendarFirstDayOfWeek => (C4::Context->preference("CalendarFirstDayOfWeek") eq "Sunday")?0:1, > LibraryName => "" . C4::Context->preference("LibraryName"), > LibraryNameTitle => "" . $LibraryNameTitle, >- LoginBranchname => C4::Context->userenv?C4::Context->userenv->{"branchname"}:"", >+ LoginBranchname => $userenv?$userenv->{"branchname"}:"", > OPACAmazonCoverImages => C4::Context->preference("OPACAmazonCoverImages"), > OPACFRBRizeEditions => C4::Context->preference("OPACFRBRizeEditions"), > OpacHighlightedWords => C4::Context->preference("OpacHighlightedWords"), >@@ -424,7 +437,7 @@ sub get_template_and_user { > RequestOnOpac => C4::Context->preference("RequestOnOpac"), > 'Version' => C4::Context->preference('Version'), > hidelostitems => C4::Context->preference("hidelostitems"), >- mylibraryfirst => (C4::Context->preference("SearchMyLibraryFirst") && C4::Context->userenv) ? C4::Context->userenv->{'branch'} : '', >+ mylibraryfirst => (C4::Context->preference("SearchMyLibraryFirst") && $userenv) ? $userenv_branch : '', > opaclayoutstylesheet => "" . C4::Context->preference("opaclayoutstylesheet"), > opacbookbag => "" . C4::Context->preference("opacbookbag"), > opaccredits => "" . C4::Context->preference("opaccredits"), >@@ -1644,8 +1657,24 @@ sub getborrowernumber { > return 0; > } > >+=head2 get_user_printer >+ >+ $printer = get_user_printer(); >+ >+ Returns printer queue that is to be used for the logged in user >+ >+=cut >+ >+sub get_user_printer { >+ my $userenv = C4::Context->userenv or return; >+ if (my $printer = $userenv->{branchprinter}) { >+ return $printer; >+ } >+ my $branchname = $userenv->{branch} or return; >+ my $branch = GetBranchDetail($branchname) or return; >+ return $branch->{branchprinter}; >+} > >-END { } # module clean-up code here (global destructor) > 1; > __END__ > >diff --git a/C4/Context.pm b/C4/Context.pm >index 0a56aa8..7835497 100644 >--- a/C4/Context.pm >+++ b/C4/Context.pm >@@ -978,7 +978,7 @@ sub userenv { > =head2 set_userenv > > C4::Context->set_userenv($usernum, $userid, $usercnum, $userfirstname, >- $usersurname, $userbranch, $userflags, $emailaddress); >+ $usersurname, $userbranch, $userflags, $emailaddress, $branchprinter); > > Establish a hash of user environment variables. > >diff --git a/C4/Koha.pm b/C4/Koha.pm >index 26106cf..1e1a412 100644 >--- a/C4/Koha.pm >+++ b/C4/Koha.pm >@@ -39,7 +39,6 @@ BEGIN { > @EXPORT = qw( > &slashifyDate > &subfield_is_koha_internal_p >- &GetPrinters &GetPrinter > &GetItemTypes &getitemtypeinfo > &GetCcodes > &GetSupportName &GetSupportList >@@ -600,45 +599,6 @@ sub getImageSets { > return \@imagesets; > } > >-=head2 GetPrinters >- >- $printers = &GetPrinters(); >- @queues = keys %$printers; >- >-Returns information about existing printer queues. >- >-C<$printers> is a reference-to-hash whose keys are the print queues >-defined in the printers table of the Koha database. The values are >-references-to-hash, whose keys are the fields in the printers table. >- >-=cut >- >-sub GetPrinters { >- my %printers; >- my $dbh = C4::Context->dbh; >- my $sth = $dbh->prepare("select * from printers"); >- $sth->execute; >- while ( my $printer = $sth->fetchrow_hashref ) { >- $printers{ $printer->{'printqueue'} } = $printer; >- } >- return ( \%printers ); >-} >- >-=head2 GetPrinter >- >- $printer = GetPrinter( $query, $printers ); >- >-=cut >- >-sub GetPrinter ($$) { >- my ( $query, $printers ) = @_; # get printer for this query from printers >- my $printer = $query->param('printer'); >- my %cookie = $query->cookie('userenv'); >- ($printer) || ( $printer = $cookie{'printer'} ) || ( $printer = '' ); >- ( $printers->{$printer} ) || ( $printer = ( keys %$printers )[0] ); >- return $printer; >-} >- > =head2 getnbpages > > Returns the number of pages to display in a pagination bar, given the number >diff --git a/C4/Printer.pm b/C4/Printer.pm >new file mode 100644 >index 0000000..0990bad >--- /dev/null >+++ b/C4/Printer.pm >@@ -0,0 +1,148 @@ >+#!/usr/bin/perl >+ >+package C4::Printer; >+ >+# Copyright 2012 Catalyst IT >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along >+# with Koha; if not, write to the Free Software Foundation, Inc., >+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >+ >+use strict; >+use warnings; >+ >+use C4::Context; >+ >+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); >+ >+BEGIN { >+ $VERSION = 3.07.00.049; >+ require Exporter; >+ @ISA = qw(Exporter); >+ @EXPORT = qw( >+ ); >+ @EXPORT_OK = qw( >+ &GetPrinters &SearchPrinters &GetPrinterDetails >+ &AddPrinter &UpdatePrinter &DeletePrinter >+ ); >+} >+ >+=head1 NAME >+ >+C4::Printer - functions that deal with printer selection >+ >+=head1 SYNOPSIS >+ >+ use C4::Printer; >+ >+=head1 DESCRIPTION >+ >+This module provides functions to select printer for slips etc. >+ >+TODO: Move SQL from admin/printers.pl to this module >+ >+=head1 FUNCTIONS >+ >+=head2 GetPrinters >+ >+ $printers = &GetPrinters(); >+ @queues = keys %$printers; >+ >+Returns information about existing printer queues. >+ >+C<$printers> is a reference-to-hash whose keys are the print queues >+defined in the printers table of the Koha database. The values are >+references-to-hash, whose keys are the fields in the printers table. >+ >+=cut >+ >+sub GetPrinters { >+ my %printers; >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare("select * from printers"); >+ $sth->execute; >+ while ( my $printer = $sth->fetchrow_hashref ) { >+ $printers{ $printer->{'printqueue'} } = $printer; >+ } >+ return ( \%printers ); >+} >+ >+=head2 SearchPrinters >+ >+ $printers = SearchPrinters( $searchstring ); >+ >+=cut >+ >+sub SearchPrinters { >+ my ($searchstring)=@_; >+ $searchstring .= '%'; >+ return C4::Context->dbh->selectall_arrayref(" >+ SELECT * FROM printers >+ WHERE printername like ? OR printqueue like ? ORDER BY printername >+ ", {Slice => {}}, $searchstring, $searchstring); >+} >+ >+=head2 GetPrinterDetails >+ >+ $printer_rec = GetPrinterDetails( $printqueue ); >+ >+=cut >+ >+sub GetPrinterDetails { >+ my ( $printer ) = @_; >+ my $dbh = C4::Context->dbh; >+ my $printername = $dbh->selectrow_hashref('SELECT * FROM printers WHERE printqueue = ?', undef, $printer); >+ return $printername; >+} >+ >+=head2 AddPrinter >+ >+ AddPrinter( $data ); >+ >+=cut >+ >+sub AddPrinter { >+ my ( $data ) = @_; >+ my $dbh = C4::Context->dbh; >+ $dbh->do("INSERT INTO printers (printername,printqueue,printtype) VALUES (?,?,?)", undef, >+ $data->{printername}, $data->{printqueue}, $data->{printtype}); >+} >+ >+=head2 UpdatePrinter >+ >+ UpdatePrinter( $printqueue, $data ); >+ >+=cut >+ >+sub UpdatePrinter { >+ my ( $printqueue, $data ) = @_; >+ my $dbh = C4::Context->dbh; >+ $dbh->do("UPDATE printers SET printqueue = ?, printername = ?, printtype = ? WHERE printqueue = ?", undef, >+ $data->{printqueue}, $data->{printername}, $data->{printtype}, $printqueue); >+} >+ >+=head2 DeletePrinter >+ >+ DeletePrinter( $printqueue ); >+ >+=cut >+ >+sub DeletePrinter { >+ my ( $printqueue ) = @_; >+ my $dbh = C4::Context->dbh; >+ $dbh->do("DELETE FROM printers WHERE printqueue = ?", undef, >+ $printqueue); >+} >+ >+1; >diff --git a/admin/branches.pl b/admin/branches.pl >index d172ea6..3671f43 100755 >--- a/admin/branches.pl >+++ b/admin/branches.pl >@@ -45,6 +45,7 @@ use C4::Context; > use C4::Output; > use C4::Koha; > use C4::Branch; >+use C4::Printer qw(GetPrinters); > > # Fixed variables > my $script_name = "/cgi-bin/koha/admin/branches.pl"; >@@ -226,12 +227,9 @@ sub default { > > sub editbranchform { > my ($branchcode,$innertemplate) = @_; >- # initiate the scrolling-list to select the printers >- my $printers = GetPrinters(); >- my @printerloop; >+ > my $data; > my $oldprinter = ""; >- > if ($branchcode) { > $data = GetBranchInfo($branchcode); > $data = $data->[0]; >@@ -241,15 +239,21 @@ sub editbranchform { > _branch_to_template($data, $innertemplate); > } > >- foreach my $thisprinter ( keys %$printers ) { >- push @printerloop, { >- value => $thisprinter, >- selected => ( $oldprinter eq $printers->{$thisprinter} ), >- branchprinter => $printers->{$thisprinter}->{'printqueue'}, >- }; >+ if ( C4::Context->preference('UsePrintQueues') ) { >+ # initiate the scrolling-list to select the printers >+ my $printers = GetPrinters(); >+ my @printerloop; >+ foreach my $thisprinter ( keys %$printers ) { >+ push @printerloop, { >+ value => $thisprinter, >+ selected => ( $oldprinter eq $thisprinter ), >+ branchprinter => $printers->{$thisprinter}->{'printername'}, >+ }; >+ } >+ >+ $innertemplate->param( printerloop => \@printerloop ); > } > >- $innertemplate->param( printerloop => \@printerloop ); > # make the checkboxes..... > # > # We export a "categoryloop" array to the template, each element of which >@@ -308,6 +312,7 @@ sub branchinfotable { > > my ($branchcode,$innertemplate) = @_; > my $branchinfo = $branchcode ? GetBranchInfo($branchcode) : GetBranchInfo(); >+ my $printers = GetPrinters(); > my @loop_data = (); > foreach my $branch (@$branchinfo) { > # >@@ -367,6 +372,9 @@ sub branchinfotable { > $row{'branch_name'} = $branch->{'branchname'}; > $row{'branch_code'} = $branch->{'branchcode'}; > $row{'value'} = $branch->{'branchcode'}; >+ if (my $printer = $branch->{'branchprinter'}) { >+ $row{'branchprintername'} = $printers->{$printer}->{'printername'}; >+ } > > push @loop_data, \%row; > } >diff --git a/admin/printers.pl b/admin/printers.pl >index c7e7492..12e42d7 100755 >--- a/admin/printers.pl >+++ b/admin/printers.pl >@@ -7,17 +7,17 @@ > # 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_form >-# - 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_confirm >-# - we delete the record having primkey=$primkey >+# - we delete the record having primkey=$primkey > > > # Copyright 2000-2002 Katipo Communications >@@ -43,19 +43,7 @@ use CGI; > use C4::Context; > use C4::Output; > use C4::Auth; >- >-sub StringSearch { >- my ($searchstring,$type)=@_; # why bother with $type if we don't use it?! >- $searchstring=~ s/\'/\\\'/g; >- my @data=split(' ',$searchstring); >- my $sth = C4::Context->dbh->prepare(" >- SELECT printername,printqueue,printtype from printers >- WHERE (printername like ?) order by printername >- "); >- $sth->execute("$data[0]%"); >- my $data=$sth->fetchall_arrayref({}); >- return (scalar(@$data),$data); >-} >+use C4::Printer qw(GetPrinterDetails SearchPrinters AddPrinter UpdatePrinter DeletePrinter); > > my $input = new CGI; > my $searchfield=$input->param('searchfield'); >@@ -68,83 +56,95 @@ my $op = $input->param('op'); > $searchfield=~ s/\,//g; > > my ($template, $loggedinuser, $cookie) = get_template_and_user({ >- template_name => "admin/printers.tmpl", >- query => $input, >- type => "intranet", >- authnotrequired => 0, >+ template_name => "admin/printers.tmpl", >+ query => $input, >+ type => "intranet", >+ authnotrequired => 0, > flagsrequired => {parameters => 'parameters_remaining_permissions'}, >- debug => 1, >+ debug => 1, > }); > >-$template->param(searchfield => $searchfield, >- script_name => $script_name); >- > #start the page and read in includes > > my $dbh = C4::Context->dbh; >+my $list_printers = 1; > ################## ADD_FORM ################################## > # called by default. Used to create form to add or modify a record > if ($op eq 'add_form') { >- $template->param(add_form => 1); >- #---- if primkey exists, it's a modify action, so read values to modify... >- my $data; >- if ($searchfield) { >- my $sth=$dbh->prepare("SELECT printername,printqueue,printtype from printers where printername=?"); >- $sth->execute($searchfield); >- $data=$sth->fetchrow_hashref; >- } >- >- $template->param(printqueue => $data->{'printqueue'}, >- printtype => $data->{'printtype'}); >- # END $OP eq ADD_FORM >+ $list_printers = 0; >+ $template->param(add_form => 1); >+ #---- if primkey exists, it's a modify action, so read values to modify... >+ my $data; >+ if ($searchfield) { >+ $data=GetPrinterDetails($searchfield); >+ } >+ >+ $template->param( >+ printqueue => $data->{'printqueue'}, >+ printername => $data->{'printername'}, >+ printtype => $data->{'printtype'} >+ ); >+# END $OP eq ADD_FORM > ################## ADD_VALIDATE ################################## > # called by add_form, used to insert/modify data in DB > } elsif ($op eq 'add_validate') { >- $template->param(add_validate => 1); >- if ($input->param('add')){ >- my $sth=$dbh->prepare("INSERT INTO printers (printername,printqueue,printtype) VALUES (?,?,?)"); >- $sth->execute($input->param('printername'),$input->param('printqueue'),$input->param('printtype')); >- } else { >- my $sth=$dbh->prepare("UPDATE printers SET printqueue=?,printtype=? WHERE printername=?"); >- $sth->execute($input->param('printqueue'),$input->param('printtype'),$input->param('printername')); >- } >- # END $OP eq ADD_VALIDATE >+ my $params = $input->Vars; >+ if ($input->param('add')){ >+ AddPrinter($params); >+ } else { >+ UpdatePrinter($searchfield, $params); >+ } >+ $template->param(add_validate => 1); >+ $searchfield = ''; >+# END $OP eq ADD_VALIDATE > ################## DELETE_CONFIRM ################################## > # called by default form, used to confirm deletion of data in DB > } elsif ($op eq 'delete_confirm') { >- $template->param(delete_confirm => 1); >- my $sth=$dbh->prepare("select printername,printqueue,printtype from printers where printername=?"); >- $sth->execute($searchfield); >- my $data=$sth->fetchrow_hashref; >- $template->param(printqueue => $data->{'printqueue'}, >- printtype => $data->{'printtype'}); >- # END $OP eq DELETE_CONFIRM >+ $list_printers = 0; >+ $template->param(delete_confirm => 1); >+ my $data=GetPrinterDetails($searchfield); >+ $template->param( >+ printqueue => $data->{'printqueue'}, >+ printtype => $data->{'printtype'}, >+ ); >+# END $OP eq DELETE_CONFIRM > ################## DELETE_CONFIRMED ################################## > # called by delete_confirm, used to effectively confirm deletion of data in DB > } elsif ($op eq 'delete_confirmed') { >- $template->param(delete_confirmed => 1); >- my $sth=$dbh->prepare("delete from printers where printername=?"); >- $sth->execute($searchfield); >- # END $OP eq DELETE_CONFIRMED >+ # XXX Delete can fail >+ DeletePrinter($searchfield); >+ $template->param(delete_confirmed => 1); >+ $template->param(list_printers => 1); >+ $searchfield = ''; >+# END $OP eq DELETE_CONFIRMED > ################## DEFAULT ########################################### > } else { # DEFAULT >- $template->param(else => 1); >- my ($count,$results)=StringSearch($searchfield,'web'); >- my $max = ($offset+$pagesize < $count) ? $offset+$pagesize : $count; >- my @loop = (@$results)[$offset..$max]; >- >- $template->param(loop => \@loop); >- >- if ($offset>0) { >- $template->param(offsetgtzero => 1, >- prevpage => $offset-$pagesize); >- } >- if ($offset+$pagesize<$count) { >- $template->param(ltcount => 1, >- nextpage => $offset+$pagesize); >- } >- >+ $searchfield ||= $input->param('description') || ""; > } #---- END $OP eq DEFAULT > >+if ($list_printers) { >+ $template->param(list_printers => 1); >+ my $results=SearchPrinters($searchfield); >+ my $count = $results ? scalar(@$results) : 0; >+ my $max = ($offset+$pagesize < $count) ? $offset+$pagesize : $count; >+ my @loop = (@$results)[$offset..$max-1]; >+ >+ $template->param(loop => \@loop); >+ >+ if ($offset>0) { >+ $template->param(offsetgtzero => 1, >+ prevpage => $offset-$pagesize); >+ } >+ if ($offset+$pagesize<$count) { >+ $template->param(ltcount => 1, >+ nextpage => $offset+$pagesize); >+ } >+} >+ >+$template->param( >+ searchfield => $searchfield, >+ script_name => $script_name >+); >+ > output_html_with_http_headers $input, $cookie, $template->output; > >diff --git a/circ/circulation.pl b/circ/circulation.pl >index 78ac1a4..54138ef 100755 >--- a/circ/circulation.pl >+++ b/circ/circulation.pl >@@ -29,7 +29,7 @@ use C4::Print; > use C4::Auth qw/:DEFAULT get_session/; > use C4::Dates qw/format_date/; > use C4::Branch; # GetBranches >-use C4::Koha; # GetPrinter >+use C4::Koha; > use C4::Circulation; > use C4::Overdues qw/CheckBorrowerDebarred/; > use C4::Members; >@@ -67,12 +67,6 @@ if ($branch){ > $session->param('branchname', GetBranchName($branch)); > } > >-my $printer = $query->param('printer'); >-if ($printer){ >- # update our session so the userenv is updated >- $session->param('branchprinter', $printer); >-} >- > if (!C4::Context->userenv && !$branch){ > if ($session->param('branch') eq 'NO_LIBRARY_SET'){ > # no branch set we can't issue >@@ -102,8 +96,6 @@ $findborrower =~ s|,| |g; > my $borrowernumber = $query->param('borrowernumber'); > > $branch = C4::Context->userenv->{'branch'}; >-$printer = C4::Context->userenv->{'branchprinter'}; >- > > # If AutoLocation is not activated, we show the Circulation Parameters to chage settings of librarian > if (C4::Context->preference("AutoLocation") != 1) { >@@ -665,8 +657,6 @@ $template->param( > borrowernumber => $borrowernumber, > branch => $branch, > branchname => GetBranchName($borrower->{'branchcode'}), >- printer => $printer, >- printername => $printer, > firstname => $borrower->{'firstname'}, > surname => $borrower->{'surname'}, > showname => $borrower->{'showname'}, >diff --git a/circ/returns.pl b/circ/returns.pl >index 743bf18..0efa712 100755 >--- a/circ/returns.pl >+++ b/circ/returns.pl >@@ -36,7 +36,6 @@ use C4::Context; > use C4::Auth qw/:DEFAULT get_session/; > use C4::Output; > use C4::Circulation; >-use C4::Print; > use C4::Reserves; > use C4::Biblio; > use C4::Items; >@@ -73,15 +72,10 @@ my ( $template, $librarian, $cookie ) = get_template_and_user( > ##################### > #Global vars > my $branches = GetBranches(); >-my $printers = GetPrinters(); > >-my $printer = C4::Context->userenv ? C4::Context->userenv->{'branchprinter'} : ""; > my $overduecharges = (C4::Context->preference('finesMode') && C4::Context->preference('finesMode') ne 'off'); > > my $userenv_branch = C4::Context->userenv->{'branch'} || ''; >-# >-# Some code to handle the error if there is no branch or printer setting..... >-# > > # Set up the item stack .... > my %returneditems; >@@ -601,9 +595,7 @@ foreach ( sort { $a <=> $b } keys %returneditems ) { > $template->param( > riloop => \@riloop, > genbrname => $branches->{$userenv_branch}->{'branchname'}, >- genprname => $printers->{$printer}->{'printername'}, > branchname => $branches->{$userenv_branch}->{'branchname'}, >- printer => $printer, > errmsgloop => \@errmsgloop, > exemptfine => $exemptfine, > dropboxmode => $dropboxmode, >diff --git a/circ/selectbranchprinter.pl b/circ/selectbranchprinter.pl >index b5adcfc..67034b7 100755 >--- a/circ/selectbranchprinter.pl >+++ b/circ/selectbranchprinter.pl >@@ -23,10 +23,10 @@ use CGI; > > use C4::Context; > use C4::Output; >-use C4::Auth qw/:DEFAULT get_session/; >-use C4::Print; # GetPrinters >+use C4::Auth qw/:DEFAULT get_session get_user_printer/; > use C4::Koha; > use C4::Branch; # GetBranches GetBranchesLoop >+use C4::Printer qw(GetPrinters); > > # this will be the script that chooses branch and printer settings.... > >@@ -56,9 +56,10 @@ my $userenv_printer = C4::Context->userenv->{'branchprinter'} || ''; > my @updated; > > # $session lddines here are doing the updating >-if ($branch and $branches->{$branch}) { >+my $branch_rec = $branch ? $branches->{$branch} : undef; >+if ($branch_rec) { > if (! $userenv_branch or $userenv_branch ne $branch ) { >- my $branchname = GetBranchName($branch); >+ my $branchname = $branch_rec->{branchname}; > $template->param(LoginBranchname => $branchname); # update template for new branch > $template->param(LoginBranchcode => $branch); # update template for new branch > $session->param('branchname', $branchname); # update sesssion in DB >@@ -67,6 +68,8 @@ if ($branch and $branches->{$branch}) { > updated_branch => 1, > old_branch => $userenv_branch, > }; >+ $printer ||= $branch_rec->{branchprinter}; >+ undef $userenv_printer; > } # else branch the same, no update > } else { > $branch = $userenv_branch; # fallback value >@@ -87,7 +90,7 @@ if ($printer) { > }; > } # else printer is the same, no update > } else { >- $printer = $userenv_printer; # fallback value >+ $printer = get_user_printer(); # fallback value > } > > $template->param(updated => \@updated) if (scalar @updated); >@@ -96,21 +99,6 @@ unless ($branches->{$branch}) { > $branch = (keys %$branches)[0]; # if branch didn't really exist, then replace it w/ one that does > } > >-my @printkeys = sort keys %$printers; >-if (scalar(@printkeys) == 1 or not $printers->{$printer}) { >- $printer = $printkeys[0]; # if printer didn't really exist, or there is only 1 anyway, then replace it w/ one that does >-} >- >-my @printerloop; >-foreach ( @printkeys ) { >- next unless ($_); # skip printer if blank. >- push @printerloop, { >- selected => ( $_ eq $printer ), >- name => $printers->{$_}->{'printername'}, >- value => $_, >- }; >-} >- > my @recycle_loop; > foreach ($query->param()) { > $_ or next; # disclude blanks >@@ -133,9 +121,28 @@ if (scalar @updated and not scalar @recycle_loop) { > > $template->param( > referer => $referer, >- printerloop => \@printerloop, > branchloop => GetBranchesLoop($branch), > recycle_loop=> \@recycle_loop, > ); > >+if ( C4::Context->preference('UsePrintQueues') ) { >+ my @printkeys = keys %$printers; >+ if (scalar(@printkeys) == 1 or not $printers->{$printer}) { >+ $printer = $printkeys[0]; # if printer didn't really exist, or there is only 1 anyway, then replace it w/ one that does >+ } >+ >+ my @printerloop; >+ foreach ( @printkeys ) { >+ push @printerloop, { >+ selected => ( $_ eq $printer ), >+ name => $printers->{$_}->{'printername'}, >+ value => $_, >+ }; >+ } >+ >+ $template->param( >+ printerloop => \@printerloop, >+ ); >+} >+ > output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 91d42a2..048a7ea 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -364,10 +364,11 @@ CREATE TABLE `branches` ( -- information about your libraries or branches are st > `branchurl` mediumtext, -- the URL for your library or branch's website > `issuing` tinyint(4) default NULL, -- unused in Koha > `branchip` varchar(15) default NULL, -- the IP address for your library or branch >- `branchprinter` varchar(100) default NULL, -- unused in Koha >+ `branchprinter` varchar(20) default NULL, > `branchnotes` mediumtext, -- notes related to your library or branch > opac_info text, -- HTML that displays in OPAC > PRIMARY KEY (`branchcode`) >+ FOREIGN KEY (branchprinter) REFERENCES printers (printqueue) ON UPDATE CASCADE > ) ENGINE=InnoDB DEFAULT CHARSET=utf8; > > -- >@@ -1570,12 +1571,13 @@ CREATE TABLE `pending_offline_operations` ( > -- Table structure for table `printers` > -- > >-DROP TABLE IF EXISTS `printers`; >-CREATE TABLE `printers` ( >- `printername` varchar(40) NOT NULL default '', >- `printqueue` varchar(20) default NULL, >- `printtype` varchar(20) default NULL, >- PRIMARY KEY (`printername`) >+DROP TABLE IF EXISTS printers; >+CREATE TABLE printers ( >+ printername varchar(40) NOT NULL default '', >+ printqueue varchar(20) NOT NULL, >+ printtype varchar(20) default NULL, >+ PRIMARY KEY (printqueue), >+ UNIQUE (printername) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8; > > -- >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 35f92cc..f21b071 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -366,6 +366,7 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ( > INSERT INTO systempreferences (variable,value,explanation,type) VALUES('EnableBorrowerFiles','0','If enabled, allows librarians to upload and attach arbitrary files to a borrower record.','YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UpdateTotalIssuesOnCirc','0','Whether to update the totalissues field in the biblio on each circ.',NULL,'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UsePrintQueues','0',NULL,NULL,'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacSuppressionByIPRange','','Restrict the suppression to IP adresses outside of the IP range','','free'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('PrefillItem','0','When a new item is added, should it be prefilled with last created item values?','','YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SubfieldsToUseWhenPrefill','','Define a list of subfields to use when prefilling items (separated by space)','','Free'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 25cd367..3649a78 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -5696,6 +5696,18 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > SetVersion($DBversion); > } > >+ >+ >+$DBversion = "3.09.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("ALTER TABLE printers DROP PRIMARY KEY, MODIFY printqueue varchar(20) NOT NULL PRIMARY KEY, ADD UNIQUE (printername)"); >+ $dbh->do("ALTER TABLE branches MODIFY branchprinter varchar(20) NULL, ADD FOREIGN KEY (branchprinter) REFERENCES printers (printqueue) ON UPDATE CASCADE"); >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UsePrintQueues','0',NULL,NULL,'YesNo')"); >+ >+ print "Upgrade to $DBversion done (Add borrowers.default_printqueue and 'UsePrintQueues' syspref)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc >index 72162d3..7da6f1f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc >@@ -59,6 +59,7 @@ > <h5>Additional parameters</h5> > > <ul> >+ [% IF UsePrintQueues %]<li><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></li>[% END %] > [% IF ( NoZebra ) %]<li><a href="/cgi-bin/koha/admin/stopwords.pl">Stop words</a></li>[% END %] > <!-- <li><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></li> --> > <li><a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50 client targets</a></li> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc >index 3d71d45..7d3aa24 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc >@@ -57,6 +57,9 @@ > [% LoginBranchname %] > [% END %] > </strong> >+ [% IF UsePrintQueues && PrinterName %] >+ - [% PrinterName %] >+ [% END %] > [% IF ( IndependantBranches ) %] > [% IF ( CAN_user_management || CAN_user_editcatalogue_edit_catalogue ) %] > ( <a class="toplinks" href="/cgi-bin/koha/circ/selectbranchprinter.pl">Set library</a> ) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt >index 3906c46..d2e0fc5 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt >@@ -101,8 +101,8 @@ > <dl> > [% IF ( NoZebra ) %]<dt><a href="/cgi-bin/koha/admin/stopwords.pl">Stop words</a></dt> > <dd>Words ignored during search.</dd>[% END %] >- <!-- <dt><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></dt> >- <dd>Printers (UNIX paths).</dd> --> >+ [% IF UsePrintQueues %]<dt><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></dt> >+ <dd>Printers (UNIX paths).</dd>[% END %] > <dt><a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50 client targets</a></dt> > <dd>Define which servers to query for MARC data in the integrated Z39.50 client.</dd> > </dl> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt >index 15e8064..bcb918f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt >@@ -143,10 +143,10 @@ tinyMCE.init({ > <li><label for="branchurl">URL</label><input type="text" name="branchurl" id="branchurl" value="[% branchurl |html %]" /></li> > <li><label for="opac_info">OPAC info</label><textarea name="opac_info" id="opac_info">[% opac_info |html %]</textarea></li> > <li><label for="branchip">IP</label><input type="text" name="branchip" id="branchip" value="[% branchip |html %]" /> <span class="hint">Can be entered as a single IP, or a subnet such as 192.168.1.*</span></li> >- <!-- >- <li><label for="branchprinter">Library Printer</label> >+[% IF UsePrintQueues %] >+ <li><label for="branchprinter">Library printer</label> > <select id="branchprinter" name="branchprinter"> >- <option value="">None</option> >+ <option value="">(None)</option> > [% FOREACH printerloo IN printerloop %] > [% IF ( printerloo.selected ) %] > <option value="[% printerloo.value %]" selected="selected">[% printerloo.branchprinter %]</option> >@@ -155,7 +155,7 @@ tinyMCE.init({ > [% END %] > [% END %] > </select></li> >- --> >+[% END %] > <li><label for="branchnotes">Notes</label><input type="text" name="branchnotes" id="branchnotes" value="[% branchnotes |html %]" /></li> > </ol> > </fieldset> >@@ -198,7 +198,9 @@ tinyMCE.init({ > <th>Address</th> > <th>Properties</th> > <th>IP</th> >- <!-- <th>Printer</th> --> >+[% IF UsePrintQueues %] >+ <th>Printer</th> >+[% END %] > <th colspan="2"> </th> > </tr></thead><tbody> > [% FOREACH branche IN branches %] >@@ -250,9 +252,11 @@ tinyMCE.init({ > <td> > [% branche.branchip %] > </td> >- <!-- <td> >- [% branche.branchprinter %] >- </td> --> >+[% IF UsePrintQueues %] >+ <td> >+ [% branche.branchprintername %] >+ </td> >+[% END %] > <td> > <a href="[% branche.action %]?op=edit&branchcode=[% branche.value |url %]">Edit</a> > </td> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index a9ed6f7..23cd7ee 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -110,6 +110,12 @@ Circulation: > yes: Do > no: "Do not" > - update a bibliographic record's total issues count whenever an item is issued (WARNING! This increases server load significantly; if performance is a concern, use the update_totalissues.pl cron job to update the total issues count). >+ - >+ - pref: UsePrintQueues >+ choices: >+ yes: "Use" >+ no: "Don't use" >+ - server print queues. > Checkout Policy: > - > - pref: AllowNotForLoanOverride >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt >index 7dfb80b..06fd229 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/printers.tt >@@ -4,7 +4,7 @@ > [% IF ( add_validate ) %] Printers › Printer added[% END %] > [% IF ( delete_confirm ) %] Printers › Confirm deletion of printer '[% searchfield %]'[% END %] > [% IF ( delete_confirmed ) %] Printers › Printer deleted[% END %] >-[% IF ( else ) %]Printers[% END %]</title> >+[% IF ( list_printers ) %]Printers[% END %]</title> > [% INCLUDE 'doc-head-close.inc' %] > [% IF ( add_form ) %]<script type="text/javascript"> > //<![CDATA[ >@@ -71,7 +71,7 @@ > [% IF ( add_validate ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Printer added[% END %] > [% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Confirm deletion of printer '[% searchfield %]'[% END %] > [% IF ( delete_confirmed ) %] <a href="/cgi-bin/koha/admin/printers.pl">Printers</a> › Printer deleted[% END %] >-[% IF ( else ) %]Printers[% END %]</div> >+[% IF ( list_printers ) %]Printers[% END %]</div> > > <div id="doc3" class="yui-t2"> > >@@ -89,22 +89,17 @@ > <form action="[% script_name %]" name="Aform" method="post"> > <input type="hidden" name="op" value="add_validate" /> > [% IF ( searchfield ) %] >+ <input type="hidden" name="searchfield" value="[% searchfield %]" /> > <input type="hidden" name="add" value="0" /> > [% ELSE %] > <input type="hidden" name="add" value="1" /> > [% END %] > <fieldset class="rows"> >-<ol> [% IF ( searchfield ) %] >- <li> >- <span class="label">Printer name: </span> >- <input type="hidden" name="printername" id="" value="[% searchfield %]" />[% searchfield %] >- </li> >- [% ELSE %] >+<ol> > <li> > <label for="printername">Printer name: </label> >- <input type="text" name="printername" id="printername" size="50" maxlength="50" /> >+ <input type="text" name="printername" id="printername" size="50" maxlength="50" value="[% printername %]" /> > </li> >- [% END %] > <li> > <label for="printqueue">Queue: </label> > <input type="text" name="printqueue" id="printqueue" size="50" maxlength="50" value="[% printqueue %]" /> >@@ -119,13 +114,6 @@ > > [% END %] > >-[% IF ( add_validate ) %] >-<h3>Printer added</h3> >-<form action="[% script_name %]" method="post"> >- <fieldset class="action"> <input type="submit" value="OK" /></fieldset> >-</form> >-[% END %] >- > [% IF ( delete_confirm ) %] > <h3>Confirm deletion of printer <em>[% searchfield %]</em></h3> > <ul> >@@ -151,14 +139,7 @@ > </form> > [% END %] > >-[% IF ( delete_confirmed ) %] >-<h3>Printer deleted</h3> >-<form action="[% script_name %]" method="post"> >- <fieldset class="action"><input type="submit" value="OK" /></fieldset> >-</form> >-[% END %] >- >-[% IF ( else ) %] >+[% IF ( list_printers ) %] > > <div id="toolbar"> > <script type="text/javascript"> >@@ -190,7 +171,7 @@ > <td>[% loo.printername %]</td> > <td>[% loo.printqueue %]</td> > <td>[% loo.printtype %]</td> >- <td><a href="[% loo.script_name %]?op=add_form&searchfield=[% loo.printername %]">Edit</a> <a href="[% loo.script_name %]?op=delete_confirm&searchfield=[% loo.printername %]">Delete</a></td> >+ <td><a href="[% loo.script_name %]?op=add_form&searchfield=[% loo.printqueue %]">Edit</a> <a href="[% loo.script_name %]?op=delete_confirm&searchfield=[% loo.printqueue %]">Delete</a></td> > </tr> > [% END %] > </table>[% ELSE %]<div class="notice">No printers defined.</div>[% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >index 8724e9d..0dc95a8 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt >@@ -457,7 +457,6 @@ No patron matched <span class="ex">[% message %]</span> > <legend>Patron selection</legend> > > <input type="hidden" name="branch" value="[% branch %]" /> >- <input type="hidden" name="printer" value="[% printer %]" /> > <input type="hidden" name="duedatespec" value="[% duedatespec %]" /> > <input type="hidden" name="stickyduedate" value="[% stickyduedate %]" /> > >@@ -515,7 +514,6 @@ No patron matched <span class="ex">[% message %]</span> > </div>[% END %] > <input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrowernumber %]" /> > <input type="hidden" name="branch" value="[% branch %]" /> >- <input type="hidden" name="printer" value="[% printer %]" /> > <input type="hidden" name="print" value="maybe" /> > <input type="hidden" name="debt_confirmed" value="[% debt_confirmed %]" /> > [% IF ( CHARGES ) %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt >index acad21c..e742f81 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/selectbranchprinter.tt >@@ -28,7 +28,7 @@ Updated:<ul> > [% IF ( update.updated_branch ) %] > <li>Library: [% update.old_branch or "?" %] ⇒ [% update.LoginBranchcode or "?" %]</li> > [% ELSIF ( update.updated_printer ) %] >- <!-- FIXME: <li>Printer: [% update.old_printer or "?" %] ⇒ [% update.new_printer or "?" %]</li> --> >+ <li>Printer: [% update.old_printer or "?" %] ⇒ [% update.new_printer or "?" %]</li> > [% ELSE %] > <li>ERROR - unknown</li> > [% END %] >@@ -63,7 +63,6 @@ Updated:<ul> > [% END %] > </select></li> > [% END %] >-<!-- > [% IF ( printerloop ) %] > <li><label for="printer">Choose a network printer:</label> > <select name="printer" id="printer"> >@@ -75,7 +74,7 @@ Updated:<ul> > [% END %] > [% END %] > </select></li> >- [% END %] --> >+ [% END %] > </ol> > </fieldset> > <fieldset class="action"><input type="submit" value="Submit" /></fieldset> >diff --git a/t/db_dependent/lib/KohaTest/Koha.pm b/t/db_dependent/lib/KohaTest/Koha.pm >index 13a145a..0dda47a 100644 >--- a/t/db_dependent/lib/KohaTest/Koha.pm >+++ b/t/db_dependent/lib/KohaTest/Koha.pm >@@ -28,8 +28,6 @@ sub methods : Test( 1 ) { > _getImagesFromDirectory > _getSubdirectoryNames > getImageSets >- GetPrinters >- GetPrinter > getnbpages > getallthemes > getFacets >diff --git a/t/db_dependent/lib/KohaTest/Printer.pm b/t/db_dependent/lib/KohaTest/Printer.pm >new file mode 100644 >index 0000000..4caef06 >--- /dev/null >+++ b/t/db_dependent/lib/KohaTest/Printer.pm >@@ -0,0 +1,26 @@ >+package KohaTest::Printer; >+use base qw( KohaTest ); >+ >+use strict; >+use warnings; >+ >+use Test::More; >+ >+use C4::Printer; >+sub testing_class { 'C4::Printer' } >+ >+sub methods : Test( 1 ) { >+ my $self = shift; >+ my @methods = qw( >+ GetPrinters >+ SearchPrinters >+ GetPrinterDetails >+ AddPrinter >+ UpdatePrinter >+ DeletePrinter >+ ); >+ >+ can_ok( $self->testing_class, @methods ); >+} >+ >+1; >-- >1.7.9.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8034
:
9386
|
9546
|
9787
|
10762
|
11557
|
11995
|
12096
|
12157
|
12161
|
12322
|
13797
|
14357
|
15286
|
17569
|
46414
|
46415