diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
index 18bae4629c..89abb4cfcb 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
+++ b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
@@ -2764,3 +2764,14 @@ span.onsite_checkout {
border-radius: 4px;
border : 1px solid #FFF2CE;
}
+
+.branchgriditem {
+ display: table-cell;
+ float: left;
+}
+.branchgridrow {
+ display: table-row;
+}
+.branchselector {
+ display: table;
+}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/branch-selector.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/branch-selector.inc
new file mode 100644
index 0000000000..a5ce6119ba
--- /dev/null
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/branch-selector.inc
@@ -0,0 +1,21 @@
+[%# First check to see if we have anything selected, otherwise we select all %]
+[% selectall = 1 %]
+[% FOREACH branch IN branches;
+ IF branch.selected;
+ selectall = 0;
+ END;
+END %]
+
+
+ [% FOREACH branch IN branches %]
+
+
+ [% branch.branchname %]
+
+ [% IF loop.count() % 4 == 0 && !loop.last() %]
+
+
+ [% END %]
+ [% END %]
+
+
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/help/tools/export.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/help/tools/export.tt
index 0584a3d200..31a64c23dd 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/help/tools/export.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/help/tools/export.tt
@@ -15,7 +15,7 @@
Limit to a bib number range
Limit to a specific item type
- Limit to a specific library
+ Limit to a specific set of libraries
Limit to a call number range
Limit to an acquisition date range
@@ -23,7 +23,7 @@
Next choose what to skip when exporting
By default items will be exported, if you would like to only export bibliographic data, check the 'Don't export items' box
- To limit your export only to items from the library you're logged in as (if you leave the 'Library' field set to 'All') or to the library you selected above check the 'Remove non-local items' box
+ To limit your export only to items from the library you're logged in as, check the 'Remove non-local items' box
You can also choose what fields you don't want to export. This can be handy if you're sharing your data, you can remove all local fields before sending your data to another library
@@ -61,4 +61,4 @@
See the full documentation for Exporting MARC Records in the manual (online).
-[% INCLUDE 'help-bottom.inc' %]
\ No newline at end of file
+[% INCLUDE 'help-bottom.inc' %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt
index 2e8573279b..36a25be257 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/export.tt
@@ -65,16 +65,9 @@ $(document).ready(function() {
- Library:
-
- -- All --
- [% FOREACH branchloo IN branchloop %]
- [% IF ( branchloo.selected ) %][% branchloo.branchname %]
- [% ELSE %]
- [% branchloo.branchname %]
- [% END %]
- [% END %]
-
+ Library:
+ [% INCLUDE 'branch-selector.inc'
+ branches = branchloop %]
From item call number:
diff --git a/tools/export.pl b/tools/export.pl
index f1bbcbb80e..b079e1c319 100755
--- a/tools/export.pl
+++ b/tools/export.pl
@@ -134,13 +134,17 @@ my $limit_ind_branch =
&& !C4::Context->IsSuperLibrarian()
&& C4::Context->userenv->{branch} ) ? 1 : 0;
-my $branch = $query->param("branch") || '';
+my @branch = $query->param("branch");
if ( C4::Context->preference("IndependentBranches")
&& C4::Context->userenv
&& !C4::Context->IsSuperLibrarian() )
{
- $branch = C4::Context->userenv->{'branch'};
+ @branch = ( C4::Context->userenv->{'branch'} );
}
+# if stripping nonlocal items, use loggedinuser's branch
+my $localbranch = C4::Context->userenv->{'branch'};
+
+my %branchmap = map { $_ => 1 } @branch; # for quick lookups
my $backupdir = C4::Context->config('backupdir');
@@ -246,7 +250,7 @@ if ( $op eq "export" ) {
itemstable => $itemstable,
StartingBiblionumber => $StartingBiblionumber,
EndingBiblionumber => $EndingBiblionumber,
- branch => $branch,
+ branch => \@branch,
start_callnumber => $start_callnumber,
end_callnumber => $end_callnumber,
start_accession => $start_accession,
@@ -323,7 +327,6 @@ if ( $op eq "export" ) {
# Someone is trying to mess us up
exit;
}
-
unless (@biblionumbers) {
my $sth = $dbh->prepare($sql_query);
$sth->execute(@sql_params);
@@ -364,14 +367,10 @@ if ( $op eq "export" ) {
my ( $homebranchfield, $homebranchsubfield ) =
GetMarcFromKohaField( 'items.homebranch', '' );
for my $itemfield ( $record->field($homebranchfield) ) {
-
-# if stripping nonlocal items, use loggedinuser's branch if they didn't select one
- $branch = C4::Context->userenv->{'branch'}
- unless $branch;
$record->delete_field($itemfield)
if ( $dont_export_items
- || $itemfield->subfield($homebranchsubfield) ne
- $branch );
+ || $localbranch ne $itemfield->subfield(
+ $homebranchsubfield) );
}
}
}
@@ -472,7 +471,7 @@ else {
push @branchloop,
{
value => $thisbranch,
- selected => $thisbranch eq $branch,
+ selected => %branchmap ? $branchmap{$thisbranch} : 1,
branchname => $branches->{$thisbranch}->{'branchname'},
};
}
@@ -547,14 +546,14 @@ sub construct_query {
my $itemstable = $params->{itemstable};
my $StartingBiblionumber = $params->{StartingBiblionumber};
my $EndingBiblionumber = $params->{EndingBiblionumber};
- my $branch = $params->{branch};
+ my @branch = @{ $params->{branch} };
my $start_callnumber = $params->{start_callnumber};
my $end_callnumber = $params->{end_callnumber};
my $start_accession = $params->{start_accession};
my $end_accession = $params->{end_accession};
my $itemtype = $params->{itemtype};
my $items_filter =
- $branch
+ @branch
|| $start_callnumber
|| $end_callnumber
|| $start_accession
@@ -576,9 +575,9 @@ sub construct_query {
push @sql_params, $EndingBiblionumber;
}
- if ($branch) {
- $sql_query .= " AND homebranch = ? ";
- push @sql_params, $branch;
+ if (@branch) {
+ $sql_query .= " AND homebranch IN (".join(',',map({'?'} @branch)).")";
+ push @sql_params, @branch;
}
if ($start_callnumber) {