[Koha-patches] [PATCH] BZ4019 : Lists Merge Issue

matthias.meusburger at biblibre.com matthias.meusburger at biblibre.com
Thu Dec 31 11:42:15 CET 2009


From: Matthias Meusburger <matthias.meusburger at biblibre.com>

Removes deprecated virtualshelves/merge.pl as well as the link to it.
Records merging is done by selecting two records from a list's content.
---
 .../prog/en/modules/virtualshelves/shelves.tmpl    |    1 -
 virtualshelves/merge.pl                            |  137 --------------------
 2 files changed, 0 insertions(+), 138 deletions(-)
 delete mode 100755 virtualshelves/merge.pl

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tmpl
index 5a808bd..d0998c8 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tmpl
@@ -346,7 +346,6 @@ function placeHold () {
             <!-- TMPL_IF NAME="mine" -->
 				<form action="merge.pl" method="get">
 					<input type="hidden" name="shelf" value="<!-- TMPL_VAR NAME="shelf" -->" />
-					<input type="submit" class="editshelf" value="Merge" />
 				</form>
 				<form action="shelves.pl" method="get">
 					<input type="hidden" name="shelfnumber" value="<!-- TMPL_VAR NAME="shelf" -->" />
diff --git a/virtualshelves/merge.pl b/virtualshelves/merge.pl
deleted file mode 100755
index bff5aa7..0000000
--- a/virtualshelves/merge.pl
+++ /dev/null
@@ -1,137 +0,0 @@
-#! /usr/bin/perl
-# vim: enc=utf-8 fdm=marker fdn=1 sw=4
-use utf8;
-use strict;
-use warnings;
-use Devel::SimpleTrace;
-use Storable qw< freeze thaw >;
-use C4::Auth;
-use C4::Context;
-use C4::Biblio;
-use C4::VirtualShelves;
-use YAML;
-use CGI;
-
-sub debug { print STDERR @_,"\n" }
-
-# Global values {{{
-my $query   = CGI->new;
-my $sessionID = (checkauth($query))[2];
-my $session = C4::Auth::get_session( $sessionID );
-
-my ( $template, $user, $cookie ) = get_template_and_user {
-    qw(
-    template_name virtualshelves/merge.tmpl
-    type intranet
-    authnotrequired 0
-    )
-    , query => $query
-    , flagsrequired => {}
-};
-# }}}
-# Functions {{{
-
-sub render {
-    use C4::Output;
-    $template->param( session => $sessionID ); 
-    output_html_with_http_headers $query, $cookie, $template->output;
-}
-
-sub maybe_lost {
-    $template->param( maybe_lost => 1 );
-    render; exit;
-}
-
-sub fields_to_merge { $session->param('fields_to_merge') }
-
-# global values ... but only for nextid
-
-my $selection_id = 0;
-sub nextid { $selection_id++ }
-
-sub prepare_subfield { { key => $$_[0], value => $$_[1]  } }
-
-sub prepare_field {
-    my $ready = {
-	field => freeze($_)
-	, from => shift
-	, tag => $_->tag 
-	, id => nextid
-    };
-
-    if ( $_->is_control_field ) {
-	$$ready{control} = 1;
-    } else {
-	$$ready{subfields} = [ map prepare_subfield, $_->subfields ]
-    };
-
-    $ready;
-}
-
-sub fields_by_tag { $$a{tag} cmp $$b{tag} }
-
-sub build_records {
-    my $newbiblio = MARC::Record->new;
-    my $items = MARC::Record->new;
-    my ( $selected_fields ) = @_;
-    my $stored_fields = $session->param('fields');
-    my $kept_biblio   = $stored_fields->[0]->{id};
-    my %biblio_to_delete;
-
-    for ( @$stored_fields  ) {
-	my $from = $$_{from};
-	$biblio_to_delete{ $from } = 1;
-
-	if ( $$_{tag} eq '995' ) {
-	    if ( $from != $kept_biblio ) {
-		$items->append_fields( thaw $$_{field} )
-	    }
-	} else {
-	    if ( exists $$selected_fields{ $$_{id} } ) {
-		$newbiblio->append_fields( thaw $$_{field} )
-	    }
-	}
-    }
-    delete $biblio_to_delete{ $kept_biblio };
-    ( $newbiblio, $kept_biblio, $items, [ values %biblio_to_delete ] );
-}
-
-sub clear_session { (shift)->clear([qw< fields shelf >]) }
-
-# }}}
-# the controller {{{
-
-if ( my %field_selection = map { $_ => 1 } $query->param('selected_field') ) {
-    my ($record, $number, $items, $delete ) = build_records( \%field_selection );
-    ModBiblio( $record, $number, GetFrameworkCode( $number ));
-    AddItems( $items, $number );
-    for ( @$delete ) {
-	if ( my $error = DelBiblio($_) ) {
-	    die $error
-	}
-    }
-} else {
-    my $shelf = $query->param('shelf') or maybe_lost;
-    if ( my @records = C4::VirtualShelves::each_biblionumbers {
-	    { id => $_, record => GetMarcBiblio($_) }
-	} $shelf
-    ) {
-	my @fields = sort {fields_by_tag} map {
-	    my ( $id , $record ) = @$_{qw< id record >};
-	    map { prepare_field($id) } $record->fields;
-	} @records;
-	my @store = ( fields => \@fields ); 
-
-	for ($session) {
-	    clear_session($_);
-	    $_->param(@store, shelf => $shelf );
-	}
-	$template->param(@store);
-    } else {
-	die "GET LOST ?";
-    }
-}
-
-render;
-
-# }}}
-- 
1.6.3.3




More information about the Koha-patches mailing list