Bugzilla – Attachment 5734 Details for
Bug 6210
Choose framework on Merge
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] bug_6210: Select framework if merging two records with different frameworks
SIGNED-OFF-bug6210-Select-framework-if-merging-two.patch (text/plain), 8.78 KB, created by
Nicole C. Engard
on 2011-10-06 12:49:24 UTC
(
hide
)
Description:
[SIGNED-OFF] bug_6210: Select framework if merging two records with different frameworks
Filename:
MIME Type:
Creator:
Nicole C. Engard
Created:
2011-10-06 12:49:24 UTC
Size:
8.78 KB
patch
obsolete
>From 4495b0a178be1aea8297a275537f5f4618b5884c Mon Sep 17 00:00:00 2001 >From: Srdjan Jankovic <srdjan@catalyst.net.nz> >Date: Thu, 6 Oct 2011 19:54:35 +1300 >Subject: [PATCH] [SIGNED-OFF] bug_6210: Select framework if merging two records with different frameworks > >Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> >--- > cataloguing/merge.pl | 134 ++++++++++++-------- > .../prog/en/modules/cataloguing/merge.tt | 32 +++++- > 2 files changed, 108 insertions(+), 58 deletions(-) > >diff --git a/cataloguing/merge.pl b/cataloguing/merge.pl >index c97ca7a..7a4f61e 100755 >--- a/cataloguing/merge.pl >+++ b/cataloguing/merge.pl >@@ -26,6 +26,7 @@ use C4::Auth; > use C4::Items; > use C4::Biblio; > use C4::Serials; >+use C4::Koha; > > my $input = new CGI; > my @biblionumber = $input->param('biblionumber'); >@@ -104,77 +105,98 @@ if ($merge) { > push @errors, $error if ($error); > } > >- # Errors >- my @errors_loop = map{{error => $_}}@errors; >- > # Parameters > $template->param( >- errors => \@errors_loop, > result => 1, > biblio1 => $input->param('biblio1') > ); > >- > #------------------------- > # Show records to merge > #------------------------- > } else { >- > my $mergereference = $input->param('mergereference'); > my $biblionumber = $input->param('biblionumber'); > >- my $data1 = GetBiblioData($biblionumber[0]); >- my $data2 = GetBiblioData($biblionumber[1]); >- >- # Ask the user to choose which record will be the kept >- if (not $mergereference) { >- $template->param( >- choosereference => 1, >- biblio1 => $biblionumber[0], >- biblio2 => $biblionumber[1], >- title1 => $data1->{'title'}, >- title2 => $data2->{'title'} >- ); >- } else { >- >- if (scalar(@biblionumber) != 2) { >- push @errors, "An unexpected number of records was provided for merging. Currently only two records at a time can be merged."; >- } >- >- # Checks if both records use the same framework >- my $frameworkcode1 = &GetFrameworkCode($biblionumber[0]); >- my $frameworkcode2 = &GetFrameworkCode($biblionumber[1]); >- my $framework; >- if ($frameworkcode1 ne $frameworkcode2) { >- push @errors, "The records selected for merging are using different frameworks. Currently merging is only available for records using the same framework."; >- } else { >- $framework = $frameworkcode1; >- } >- >- # Getting MARC Structure >- my $tagslib = GetMarcStructure(1, $framework); >- >- my $notreference = ($biblionumber[0] == $mergereference) ? $biblionumber[1] : $biblionumber[0]; >- >- # Creating a loop for display >- my @record1 = _createMarcHash(GetMarcBiblio($mergereference), $tagslib); >- my @record2 = _createMarcHash(GetMarcBiblio($notreference), $tagslib); >- >- # Errors >- my @errors_loop = map{{error => $_}}@errors; >- >- # Parameters >- $template->param( >- errors => \@errors_loop, >- biblio1 => $mergereference, >- biblio2 => $notreference, >- mergereference => $mergereference, >- record1 => @record1, >- record2 => @record2, >- framework => $framework >- ); >+ if (scalar(@biblionumber) != 2) { >+ push @errors, "An unexpected number of records was provided for merging. Currently only two records at a time can be merged."; >+ } >+ else { >+ my $data1 = GetBiblioData($biblionumber[0]); >+ my $data2 = GetBiblioData($biblionumber[1]); >+ >+ # Checks if both records use the same framework >+ my $frameworkcode1 = &GetFrameworkCode($biblionumber[0]); >+ my $frameworkcode2 = &GetFrameworkCode($biblionumber[1]); >+ >+ if ($mergereference) { >+ >+ my $framework; >+ if ($frameworkcode1 ne $frameworkcode2) { >+ $framework = $input->param('frameworkcode') >+ or push @errors, "Famework not selected."; >+ } else { >+ $framework = $frameworkcode1; >+ } >+ >+ # Getting MARC Structure >+ my $tagslib = GetMarcStructure(1, $framework); >+ >+ my $notreference = ($biblionumber[0] == $mergereference) ? $biblionumber[1] : $biblionumber[0]; >+ >+ # Creating a loop for display >+ my @record1 = _createMarcHash(GetMarcBiblio($mergereference), $tagslib); >+ my @record2 = _createMarcHash(GetMarcBiblio($notreference), $tagslib); >+ >+ # Parameters >+ $template->param( >+ biblio1 => $mergereference, >+ biblio2 => $notreference, >+ mergereference => $mergereference, >+ record1 => @record1, >+ record2 => @record2, >+ framework => $framework >+ ); >+ } >+ else { >+ >+ # Ask the user to choose which record will be the kept >+ $template->param( >+ choosereference => 1, >+ biblio1 => $biblionumber[0], >+ biblio2 => $biblionumber[1], >+ title1 => $data1->{'title'}, >+ title2 => $data2->{'title'} >+ ); >+ if ($frameworkcode1 ne $frameworkcode2) { >+ my $frameworks = getframeworks; >+ my @frameworkselect; >+ foreach my $thisframeworkcode ( keys %$frameworks ) { >+ my %row = ( >+ value => $thisframeworkcode, >+ frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'}, >+ ); >+ if ($frameworkcode1 eq $thisframeworkcode){ >+ $row{'selected'} = 1; >+ } >+ push @frameworkselect, \%row; >+ } >+ $template->param( >+ frameworkselect => \@frameworkselect, >+ frameworkcode1 => $frameworkcode1, >+ frameworkcode2 => $frameworkcode2, >+ ); >+ } >+ } > } > } >+ >+if (@errors) { >+ # Errors >+ my @errors_loop = map{{error => $_}}@errors; >+ $template->param( errors => \@errors_loop ); >+} >+ > output_html_with_http_headers $input, $cookie, $template->output; > exit; > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/merge.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/merge.tt >index 0d8a84c..de14f24 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/merge.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/merge.tt >@@ -161,6 +161,10 @@ $(document).ready(function(){ > > }); > >+function changeFramework(fw) { >+ $("#Frameworks").val(fw); >+} >+ > //]]> > </script> > </head> >@@ -194,10 +198,34 @@ $(document).ready(function(){ > <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post"> > <fieldset class="rows"> > <legend>Merge reference</legend> >+ <table> >+ <tr> >+ <td style="border-width: 0px; text-align: left"> > <ol> >- <li class="radio"><input type="radio" value="[% biblio1 %]" checked="checked" id="mergereference1" name="mergereference" /><label style="float:none" for="mergereference1">[% title1 %] ([% biblio1 %])</label></li> >- <li class="radio"><input type="radio" value="[% biblio2 %]" id="mergereference2" name="mergereference" /><label style="float:none" for="mergereference2">[% title2 %] ([% biblio2 %])</label></li> >+ <li class="radio"><input type="radio" value="[% biblio1 %]" checked="checked" id="mergereference1" name="mergereference" onclick="changeFramework('[% frameworkcode1 %]')" /><label style="float:none" for="mergereference1">[% title1 %] ([% biblio1 %])</label></li> >+ <li class="radio"><input type="radio" value="[% biblio2 %]" id="mergereference2" name="mergereference" onclick="changeFramework('[% frameworkcode2 %]')" /><label style="float:none" for="mergereference2">[% title2 %] ([% biblio2 %])</label></li> > </ol> >+ </td> >+ <td style="border-width: 0px"> >+ [% IF frameworkselect %] >+ <label style="float:none" for="frameworkcode">Framework:</label><br> >+ <select name="frameworkcode" id="Frameworks"> >+ <option value="Default">Default</option> >+ [% FOREACH frameworkcodeloo IN frameworkselect %] >+ [% IF ( frameworkcodeloo.selected ) %] >+ <option value="[% frameworkcodeloo.value %]" selected="selected"> >+ [% ELSE %] >+ <option value="[% frameworkcodeloo.value %]"> >+ [% END %] >+ [% frameworkcodeloo.frameworktext %] >+ </option> >+ [% END %] >+ </select> >+ [% END %] >+ </td> >+ </tr> >+ </table> >+ > <input type="hidden" name="biblionumber" value="[% biblio1 %]" /> > <input type="hidden" name="biblionumber" value="[% biblio2 %]" /> > <fieldset class="action"><input type="submit" value="Next" /></fieldset> >-- >1.7.2.3
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 6210
:
5731
|
5734
|
5759
|
6245
|
6302
|
6858
|
6889
|
7311
|
7321
|
7327