# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
-use strict;
-use warnings;
+use Modern::Perl;
use CGI qw ( -utf8 );
-use URI::Escape;
-use C4::Auth;
+use URI::Escape qw( uri_escape_utf8 );
+use POSIX qw( ceil );
use C4::Context;
-use C4::Auth;
-use C4::Output;
-use C4::AuthoritiesMarc;
-use C4::Acquisition;
-use C4::Koha;
-use C4::Biblio;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_and_exit pagination_bar output_html_with_http_headers );
+use C4::AuthoritiesMarc qw( DelAuthority );
use C4::Search::History;
use Koha::Authority::Types;
use Koha::SearchEngine::Search;
use Koha::SearchEngine::QueryBuilder;
use Koha::Token;
+use Koha::Z3950Servers;
-my $query = new CGI;
+my $query = CGI->new;
my $dbh = C4::Context->dbh;
my $op = $query->param('op') || '';
my $authtypecode = $query->param('authtypecode') || '';
template_name => "authorities/authorities-home.tt",
query => $query,
type => 'intranet',
- authnotrequired => 0,
flagsrequired => { catalogue => 1 },
- debug => 1,
}
);
- die "Wrong CSRF token" unless Koha::Token->new->check_csrf({
- session_id => scalar $query->cookie('CGISESSID'),
- token => scalar $query->param('csrf_token'),
- });
+ output_and_exit( $query, $cookie, $template, 'wrong_csrf_token' )
+ unless Koha::Token->new->check_csrf({
+ session_id => scalar $query->cookie('CGISESSID'),
+ token => scalar $query->param('csrf_token'),
+ });
DelAuthority({ authid => $authid });
my $startfrom = $query->param('startfrom') || 1;
my $resultsperpage = $query->param('resultsperpage') || 20;
+ my $offset = ( $startfrom - 1 ) * $resultsperpage + 1;
my $builder = Koha::SearchEngine::QueryBuilder->new(
{ index => $Koha::SearchEngine::AUTHORITIES_INDEX } );
[$marclist], [$and_or], [$excluding], [$operator],
[$value], $authtypecode, $orderby
);
- my $offset = ( $startfrom - 1 ) * $resultsperpage + 1;
- my ( $results, $total ) =
- $searcher->search_auth_compat( $search_query, $offset,
- $resultsperpage );
- #my ( $results, $total ) = SearchAuthorities(
- # [$marclist], [$and_or],
- # [$excluding], [$operator],
- # [$value], ( $startfrom - 1 ) * $resultsperpage,
- # $resultsperpage, $authtypecode,
- # $orderby
- #);
-
+ my ( $results, $total ) = $searcher->search_auth_compat(
+ $search_query, $offset, $resultsperpage
+ );
( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
template_name => "authorities/searchresultlist.tt",
query => $query,
type => 'intranet',
- authnotrequired => 0,
flagsrequired => { catalogue => 1 },
- debug => 1,
}
);
+ $template->param( search_query => $search_query ) if C4::Context->preference('DumpSearchQueryTemplate');
$template->param(
csrf_token => Koha::Token->new->generate_csrf({
session_id => scalar $query->cookie('CGISESSID'),
$template->param( result => $results ) if $results;
+ my $max_result_window = $searcher->max_result_window;
+ my $hits_to_paginate = ($max_result_window && $max_result_window < $total) ? $max_result_window : $total;
+
$template->param(
pagination_bar => pagination_bar(
- $base_url, int( $total / $resultsperpage ) + 1,
+ $base_url, ceil( $hits_to_paginate / $resultsperpage ),
$startfrom, 'startfrom'
),
- total => $total,
- from => $from,
- to => $to,
- isEDITORS => $authtypecode eq 'EDITORS',
+ total => $total,
+ hits_to_paginate => $hits_to_paginate,
+ from => $from,
+ to => $to,
+ isEDITORS => $authtypecode eq 'EDITORS',
);
}
template_name => "authorities/authorities-home.tt",
query => $query,
type => 'intranet',
- authnotrequired => 0,
flagsrequired => { catalogue => 1 },
- debug => 1,
}
);
}
-my $schema = Koha::Database->new()->schema();
-my $servers = $schema->resultset('Z3950server')->search(
- {
- recordtype => 'authority',
- servertype => ['zed', 'sru'],
- },
- { result_class => 'DBIx::Class::ResultClass::HashRefInflator',
- order_by => ['rank', 'servername'],
- },
+my $servers = Koha::Z3950Servers->search(
+ {
+ recordtype => 'authority',
+ servertype => ['zed', 'sru'],
+ },
);
$template->param(