koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha acqui.simpleaddbiblio.pl C4/Biblio.pm koha... [rel_2_2]


From: paul poulain
Subject: [Koha-cvs] koha acqui.simpleaddbiblio.pl C4/Biblio.pm koha... [rel_2_2]
Date: Mon, 19 Jun 2006 13:18:17 +0000

CVSROOT:        /cvsroot/koha
Module name:    koha
Branch:         rel_2_2
Changes by:     paul poulain <tipaul>   06/06/19 13:18:17

Modified files:
        acqui.simple   : addbiblio.pl 
        C4             : Biblio.pm 
        koha-tmpl/intranet-tmpl/default/en/acqui.simple: addbiblio.tmpl 
        koha-tmpl/intranet-tmpl/default/en/authorities: 
                                                        
blinddetail-biblio-search.tmpl 

Log message:
        reverting cloneTag bugs (see joshua mail on koha-devel) :
        * going back to a previous version, with server call to clone a Tag
        * keeping BIG_LOOP in template (just 1 template for every tag)
        I didn't check npl templates, but synch'ing them should not be too hard.
        
        (ps : i've reverted default templates to 1.33.2.23)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/acqui.simple/addbiblio.pl?cvsroot=koha&only_with_tag=rel_2_2&r1=1.52.2.46&r2=1.52.2.47
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Biblio.pm?cvsroot=koha&only_with_tag=rel_2_2&r1=1.115.2.57&r2=1.115.2.58
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/default/en/acqui.simple/addbiblio.tmpl?cvsroot=koha&only_with_tag=rel_2_2&r1=1.33.2.27&r2=1.33.2.28
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/default/en/authorities/blinddetail-biblio-search.tmpl?cvsroot=koha&only_with_tag=rel_2_2&r1=1.6.2.2&r2=1.6.2.3

Patches:
Index: acqui.simple/addbiblio.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/Attic/addbiblio.pl,v
retrieving revision 1.52.2.46
retrieving revision 1.52.2.47
diff -u -b -r1.52.2.46 -r1.52.2.47
--- acqui.simple/addbiblio.pl   14 Jun 2006 21:08:20 -0000      1.52.2.46
+++ acqui.simple/addbiblio.pl   19 Jun 2006 13:18:17 -0000      1.52.2.47
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: addbiblio.pl,v 1.52.2.46 2006/06/14 21:08:20 oleonard Exp $
+# $Id: addbiblio.pl,v 1.52.2.47 2006/06/19 13:18:17 tipaul Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -177,6 +177,7 @@
                        push @authorised_values, $itemtype;
                        $authorised_lib{$itemtype}=$description;
                }
+               $value=$itemtype unless ($value);
 
        #---- "true" authorised value
        } else {
@@ -202,7 +203,7 @@
  builds the <input ...> entry for a subfield.
 =cut
 sub create_input () {
-       my 
($tag,$subfield,$value,$i,$tabloop,$rec,$authorised_values_sth,$firstsubfield) 
= @_;
+       my ($tag,$subfield,$value,$i,$tabloop,$rec,$authorised_values_sth) = @_;
        # must be encoded as utf-8 before it reaches the editor
         #use Encode;
         #$value = encode('utf-8', $value);
@@ -211,21 +212,20 @@
        my %subfield_data;
        $subfield_data{tag}=$tag;
        $subfield_data{subfield}=$subfield;
-       $subfield_data{marc_lib}=$tagslib->{$tag}->{$subfield}->{lib};
+       $subfield_data{marc_lib}="<span 
id=\"error$i\">".$tagslib->{$tag}->{$subfield}->{lib}."</span>";
        $subfield_data{marc_lib_plain}=$tagslib->{$tag}->{$subfield}->{lib};
        $subfield_data{tag_mandatory}=$tagslib->{$tag}->{mandatory};
        $subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
        $subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
        $subfield_data{kohafield}=$tagslib->{$tag}->{$subfield}->{kohafield};
        $subfield_data{index} = $i;
-       $subfield_data{firstsubfield} = $firstsubfield?1:0;
        $subfield_data{visibility} = "display:none" unless 
(($tagslib->{$tag}->{$subfield}->{hidden}%2==0) or $value ne ''); #check parity
        # it's an authorised field
        if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
                $subfield_data{marc_value}= build_authorized_values_list($tag, 
$subfield, $value, $dbh,$authorised_values_sth);
        # it's a thesaurus / authority field
        } elsif ($tagslib->{$tag}->{$subfield}->{authtypecode}) {
-               $subfield_data{marc_value}="<input 
onblur=\"this.className='addbiblioInput';\" 
onfocus=\"this.className='addbiblioInputFocus';\" tabindex=\"1\" type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"70\" maxlength=\"255\" DISABLE 
READONLY> <a href=# style=\"cursor: help;\" 
onClick=\"openAuth('tag$tag','$tagslib->{$tag}->{$subfield}->{authtypecode}',this.parentNode.parentNode)\">...</a>";
+               $subfield_data{marc_value}="<input type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"67\" maxlength=\"255\" DISABLE 
READONLY> <a 
href=\"javascript:Dopop('../authorities/auth_finder.pl?authtypecode=".$tagslib->{$tag}->{$subfield}->{authtypecode}."&index=$i',$i)\">...</a>";
        # it's a plugin field
        } elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
                # opening plugin. Just check wether we are on a developper 
computer on a production one
@@ -238,18 +238,18 @@
                require $plugin;
                my $extended_param = 
plugin_parameters($dbh,$rec,$tagslib,$i,$tabloop);
                my ($function_name,$javascript) = 
plugin_javascript($dbh,$rec,$tagslib,$i,$tabloop);
-               $subfield_data{marc_value}="<input tabindex=\"1\" type=\"text\" 
name=\"field_value\"  value=\"$value\" size=\"70\" maxlength=\"255\" 
onfocus=\"Focus$function_name($i)\" onblur=\"Blur$function_name($i); \"> <a  
style=\"cursor: help;\" href=\"javascript:Clic$function_name($i)\">...</a> 
$javascript";
+               $subfield_data{marc_value}="<input tabindex=\"1\" type=\"text\" 
name=\"field_value\"  value=\"$value\" size=\"70\" maxlength=\"255\" 
OnFocus=\"javascript:Focus$function_name($i)\" 
OnBlur=\"javascript:Blur$function_name($i); \"> <a  style=\"cursor: help;\" 
href=\"javascript:Clic$function_name($i)\">...</a> $javascript";
        # it's an hidden field
        } elsif  ($tag eq '') {
-               $subfield_data{marc_value}="<input class=\"addbiblioInput\" 
onblur=\"this.className='addbiblioInput';\" 
onfocus=\"this.className='addbiblioInputFocus';\" tabindex=\"1\" 
type=\"hidden\" name=\"field_value\" value=\"$value\">";
+               $subfield_data{marc_value}="<input 
onblur=\"this.style.backgroundColor='#ffffff';\" 
onfocus=\"this.style.backgroundColor='#ffff00'; \" tabindex=\"1\" 
type=\"hidden\" name=\"field_value\" value=\"$value\">";
        } elsif  ($tagslib->{$tag}->{$subfield}->{'hidden'}) {
-               $subfield_data{marc_value}="<input class=\"addbiblioInput\" 
onblur=\"this.className='addbiblioInput';\" 
onfocus=\"this.className='addbiblioInputFocus';\" tabindex=\"1\" type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"70\" maxlength=\"255\" >";
+               $subfield_data{marc_value}="<input 
onblur=\"this.style.backgroundColor='#ffffff';\" 
onfocus=\"this.style.backgroundColor='#ffff00'; \" tabindex=\"1\" type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"70\" maxlength=\"255\" >";
        # it's a standard field
        } else {
                if (length($value) >100) {
                        $subfield_data{marc_value}="<textarea tabindex=\"1\" 
name=\"field_value\" cols=\"40\" rows=\"5\" >$value</textarea>";
                } else {
-                       $subfield_data{marc_value}="<input 
class=\"addbiblioInput\" onblur=\"this.className='addbiblioInput';\" 
onfocus=\"this.className='addbiblioInputFocus';\" tabindex=\"1\" type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"70\">"; #"
+                       $subfield_data{marc_value}="<input 
onblur=\"this.style.backgroundColor='#ffffff';\" 
onfocus=\"this.style.backgroundColor='#ffff00'; \" tabindex=\"1\" type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"70\">"; #"
                }
        }
        return \%subfield_data;
@@ -272,7 +272,6 @@
 # loop through each tab 0 through 9
        for (my $tabloop = 0; $tabloop <= 9; $tabloop++) {
                my @loop_data = ();
-# loop through each tag
                foreach my $tag (sort(keys (%{$tagslib}))) {
                        my $indicator;
        # if MARC::Record is not empty => use it as master loop, then add 
missing subfields that should be in the tab.
@@ -297,7 +296,7 @@
                                                }
                                                next if 
($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
                                                next if 
($tagslib->{$tag}->{$subfield}->{kohafield} eq 'biblio.biblionumber');
-                                               push(@subfields_data, 
&create_input($tag,$subfield,$value,$i,$tabloop,$record,$authorised_values_sth,$#subfields_data>=0?0:1));
+                                               push(@subfields_data, 
&create_input($tag,$subfield,$value,$i,$tabloop,$record,$authorised_values_sth));
                                                $i++;
                                        } else {
                                                my 
@subfields=$field->subfields();
@@ -306,7 +305,7 @@
                                                        my 
$value=$subfields[$subfieldcount][1];
                                                        next if (length 
$subfield !=1);
                                                        next if 
($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
-                                                       push(@subfields_data, 
&create_input($tag,$subfield,$value,$i,$tabloop,$record,$authorised_values_sth,$#subfields_data>=0?0:1));
+                                                       push(@subfields_data, 
&create_input($tag,$subfield,$value,$i,$tabloop,$record,$authorised_values_sth));
                                                        $i++;
                                                }
                                        }
@@ -317,7 +316,7 @@
                                                next if ($tag<10);
                                                next if 
(($tagslib->{$tag}->{$subfield}->{hidden}<=-4) or 
($tagslib->{$tag}->{$subfield}->{hidden}>=5) ); #check for visibility flag
                                                next if 
(defined($field->subfield($subfield)));
-                                               push(@subfields_data, 
&create_input($tag,$subfield,'',$i,$tabloop,$record,$authorised_values_sth,$#subfields_data>=0?0:1));
+                                               push(@subfields_data, 
&create_input($tag,$subfield,'',$i,$tabloop,$record,$authorised_values_sth));
                                                $i++;
                                        }
                                        if ($#subfields_data >= 0) {
@@ -337,7 +336,7 @@
                                        if ($#fields >=1 && $#loop_data >=0 && 
$loop_data[$#loop_data]->{'tag'} eq $tag) {
                                                my @subfields_data;
                                                my %tag_data;
-                                               push(@subfields_data, 
&create_input('','','',$i,$tabloop,$record,$authorised_values_sth),$#subfields_data>=0?0:1);
+                                               push(@subfields_data, 
&create_input('','','',$i,$tabloop,$record,$authorised_values_sth));
                                                $tag_data{tag} = '';
                                                $tag_data{tag_lib} = '';
                                                $tag_data{indicator} = '';
@@ -356,7 +355,7 @@
                                        next if (length $subfield !=1);
                                        next if 
(($tagslib->{$tag}->{$subfield}->{hidden}<=-5) or 
($tagslib->{$tag}->{$subfield}->{hidden}>=4) ); #check for visibility flag
                                        next if 
($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
-                                       push(@subfields_data, 
&create_input($tag,$subfield,'',$i,$tabloop,$record,$authorised_values_sth,$#subfields_data>=0?0:1));
+                                       push(@subfields_data, 
&create_input($tag,$subfield,'',$i,$tabloop,$record,$authorised_values_sth));
                                        $i++;
                                }
                                if ($#subfields_data >= 0) {
@@ -500,16 +499,14 @@
        # build indicator hash.
        my @ind_tag = $input->param('ind_tag');
        my @indicator = $input->param('indicator');
-       my @firstsubfields = $input->param('firstsubfield');
-#      use Data::Dumper;
-#      warn "DUMP PL : ".Dumper(@tags);
-       my $record;
        if (C4::Context->preference('TemplateEncoding') eq "iso-8859-1") {
-               $record = 
MARChtml2marc($dbh,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden);
+               $record = 
MARChtml2marc($dbh,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden);
        } else {
                my $xml = 
MARChtml2xml(address@hidden,address@hidden,address@hidden,address@hidden,address@hidden);
                
$record=MARC::Record->new_from_xml($xml,C4::Context->preference('TemplateEncoding'),C4::Context->preference('marcflavour'));
        }
+       #warn $record->as_formatted;
+       #warn "IN ADDBIB";
        # check for a duplicate
        my ($duplicatebiblionumber,$duplicatebibid,$duplicatetitle) = 
FindDuplicate($record) if ($op eq "addbiblio") && (!$is_a_modif);
        my $confirm_not_duplicate = $input->param('confirm_not_duplicate');
@@ -586,7 +583,6 @@
                $bibid = "";
                $oldbiblionumber= "";
        }
-#      warn "REC : ".$record->as_formatted;
        build_tabs ($template, $record, $dbh,$encoding);
        build_hidden_data;
        $template->param(

Index: C4/Biblio.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Biblio.pm,v
retrieving revision 1.115.2.57
retrieving revision 1.115.2.58
diff -u -b -r1.115.2.57 -r1.115.2.58
--- C4/Biblio.pm        17 Jun 2006 16:26:32 -0000      1.115.2.57
+++ C4/Biblio.pm        19 Jun 2006 13:18:17 -0000      1.115.2.58
@@ -26,7 +26,7 @@
 use vars qw($VERSION @ISA @EXPORT);
 
 # set the version for version checking
-$VERSION = do { my @v = '$Revision: 1.115.2.57 $' =~ /\d+/g;
+$VERSION = do { my @v = '$Revision: 1.115.2.58 $' =~ /\d+/g;
                     shift(@v) . "." . join("_", map {sprintf "%03d", $_ } @v); 
};
 
 @ISA = qw(Exporter);
@@ -1041,7 +1041,7 @@
     return $record;
 }
 sub MARChtml2xml {
-       my ($tags,$subfields,$values,$firstsubfields,$indicator,$ind_tag) = @_; 
       
+       my ($tags,$subfields,$values,$indicator,$ind_tag) = @_;        
        use MARC::File::XML;
        my $xml= 
MARC::File::XML::header(C4::Context->preference('TemplateEncoding'),C4::Context->preference('marcflavour'));
 
        #$xml =~ s/UTF-8/ISO-8859-1/;
@@ -1056,8 +1056,8 @@
                @$values[$i] =~ s/>/&gt;/g;
                @$values[$i] =~ s/"/&quot;/g;
                @$values[$i] =~ s/'/&apos;/g;
-               if (@$firstsubfields[$i]){
-                       $j++ unless (@$firstsubfields[$i]); address@hidden eq 
"");
+               if ((@$tags[$i] ne $prevtag)){
+                       $j++ unless (@$tags[$i] eq "");
                        #warn 
"IND:".substr(@$indicator[$j],0,1).substr(@$indicator[$j],1,1)." 
"address@hidden;
                        if (!$first){
                        $xml.="</datafield>\n";
@@ -1108,25 +1108,17 @@
        #warn $xml;
        return $xml;
 }
-
 sub MARChtml2marc {
-       my ($dbh,$rtags,$rsubfields,$rvalues,$rfirstsubfields,%indicators) = @_;
-# rtag : a reference to the list of tags (same for every subfield of a given 
tag
-# rsubfields : a reference to the list of subfield codes
-# rvalues : a reference to the list of subfield values
-# rfirstsubfields : a reference to a list, each entry containing 0 or 1. 0 
means that the corresponding subfield it NOT the 1st of the tag, 1 meaning it 
is.
-# this last list is useful to detect a new repeated tag.
-
+       my ($dbh,$rtags,$rsubfields,$rvalues,%indicators) = @_;
        my $prevtag = -1;
        my $record = MARC::Record->new();
 #      my %subfieldlist=();
        my $prevvalue; # if tag <10
        my $field; # if tag >=10
-       # parses each entry of the list
        for (my $i=0; $i< @$rtags; $i++) {
-       # if it is the 1st subfield of a field, save the previous field
-               if (@$rfirstsubfields[$i]) {
-                     # if it is <10, just create the value
+               # rebuild MARC::Record
+#                      warn "0=>"address@hidden@$rsubfields[$i]." = 
"address@hidden": ";
+               if (@$rtags[$i] ne $prevtag) {
                        if ($prevtag < 10) {
                                if ($prevvalue) {
                                        if (($prevtag ne '000') && ($prevvalue 
ne "")) {
@@ -1135,13 +1127,11 @@
                                                $record->leader($prevvalue);
                                        }
                                }
-                       # if it is >=10, create the complete MARC field
                        } else {
                                if (($field) && ($field ne "")) {
                                        $record->add_fields($field);
                                }
                        }
-                       # now undefine the previous field to create a new blank 
one.
                        address@hidden'  ';
                    # skip blank tags, I hope this works 
                    if (@$rtags[$i] eq ''){
@@ -1162,7 +1152,7 @@
 #                      warn "1=>"address@hidden@$rsubfields[$i]." = 
"address@hidden": ".$field->as_formatted;
                        }
                        $prevtag = @$rtags[$i];
-               } else { # it is not the 1st subfield, store the value or 
append the subfield
+               } else {
                        if (@$rtags[$i] <10) {
                                address@hidden;
                        } else {
@@ -1170,7 +1160,7 @@
                                        if ($field) {
                                                
$field->add_subfields(@$rsubfields[$i] => @$rvalues[$i]);
                                        } else {
-                                       $field = MARC::Field->new( (sprintf 
"%03s",@$rtags[$i]), substr(address@hidden,0,1)." 
",substr(address@hidden,1,1)."  ", @$rsubfields[$i] => @$rvalues[$i]);
+                                       $field = MARC::Field->new( (sprintf 
"%03s",@$rtags[$i]), substr(address@hidden,0,1),substr(address@hidden,1,1), 
@$rsubfields[$i] => @$rvalues[$i]);
                                        }
 #                      warn "2=>"address@hidden@$rsubfields[$i]." = 
"address@hidden": ".$field->as_formatted;
                                }
@@ -1180,7 +1170,10 @@
        }
        #}
        # the last has not been included inside the loop... do it now !
+       #use Data::Dumper;
+       #warn Dumper($field->{_subfields});
        $record->add_fields($field) if (($field) && $field ne "");
+       #warn "HTML2MARC=".$record->as_formatted;
        return $record;
 }
 
@@ -2845,7 +2838,6 @@
 
 sub DisplayISBN {
        my ($isbn)address@hidden;
-       return "" unless $isbn;
        my $seg1;
        if(substr($isbn, 0, 1) <=7) {
                $seg1 = substr($isbn, 0, 1);
@@ -3016,27 +3008,15 @@
 
 =cut
 
-# $Id: Biblio.pm,v 1.115.2.57 2006/06/17 16:26:32 kados Exp $
+# $Id: Biblio.pm,v 1.115.2.58 2006/06/19 13:18:17 tipaul Exp $
 # $Log: Biblio.pm,v $
-# Revision 1.115.2.57  2006/06/17 16:26:32  kados
-# possible fix for a bug introduced in the latest series of commits:
-# the new firstsubfield setting was causing MARChtml2xml to completely
-# mangle the record (as in, no data ended up in the XML). More testing
-# will reveal whether this is actually a fix for that or not ...
-#
-# Revision 1.115.2.56  2006/06/14 15:39:46  tipaul
-# just reindenting
-#
-# Revision 1.115.2.55  2006/06/12 10:33:54  tipaul
-# [IMPORTANT]
-#
-# when cloning a tag, there was a problem to detect the tag change when 
rebuilding the XML/MARC record :
-# the test was done on an empty field.
-# with the new CloneTag sub, this empty field was quite tricky to create on 
the fly.
-# so i've added on each subfield a <input name="firstsubfield"> saying wether 
the subfield is the 1st or not.
-# Thus, when a tag is cloned, it is cloned properly.
+# Revision 1.115.2.58  2006/06/19 13:18:17  tipaul
+# reverting cloneTag bugs (see joshua mail on koha-devel) :
+# * going back to a previous version, with server call to clone a Tag
+# * keeping BIG_LOOP in template (just 1 template for every tag)
+# I didn't check npl templates, but synch'ing them should not be too hard.
 #
-# HTML2marc and well as HTML2xml have been modified, but PLEASE DOUBLE CHECK 
my work
+# (ps : i've reverted default templates to 1.33.2.23)
 #
 # Revision 1.115.2.54  2006/06/02 15:36:18  tipaul
 # - fixing a small bug in html2marc, when the 1st subfield of a field was 
empty, the 2nd could not be filled as the MARC::Field had not been created.

Index: koha-tmpl/intranet-tmpl/default/en/acqui.simple/addbiblio.tmpl
===================================================================
RCS file: 
/cvsroot/koha/koha/koha-tmpl/intranet-tmpl/default/en/acqui.simple/addbiblio.tmpl,v
retrieving revision 1.33.2.27
retrieving revision 1.33.2.28
diff -u -b -r1.33.2.27 -r1.33.2.28
--- koha-tmpl/intranet-tmpl/default/en/acqui.simple/addbiblio.tmpl      14 Jun 
2006 21:05:59 -0000      1.33.2.27
+++ koha-tmpl/intranet-tmpl/default/en/acqui.simple/addbiblio.tmpl      19 Jun 
2006 13:18:17 -0000      1.33.2.28
@@ -23,14 +23,13 @@
 
 <! -- RESET PAGINATION -->
 <!-- TMPL_LOOP name="BIG_LOOP" -->
-    <!-- hide every tab except the 1st -->
-    <!-- TMPL_IF name="number" -->
+<!-- hide every tab except the 1st -->
+<!-- TMPL_IF name="number" -->
         <div name="<!-- TMPL_VAR name="number" -->XX" id="<!-- TMPL_VAR 
name="number" -->XX" class="tab" style="visibility:hidden">
-    <!-- TMPL_ELSE -->
+<!-- TMPL_ELSE -->
         <div name="<!-- TMPL_VAR name="number" -->XX" id="<!-- TMPL_VAR 
name="number" -->XX" class="tab" style="visibility:visible">
-    <!-- /TMPL_IF -->
-    
-    <!-- TMPL_UNLESS name="number" -->
+<!-- /TMPL_IF -->
+<!-- TMPL_UNLESS name="number" -->
         <!-- show duplicate warning on tab 0 only -->
         <!-- TMPL_IF name="duplicatebiblionumber" -->
                     <div class="error">
@@ -43,7 +42,6 @@
                     </div>
         <!-- /TMPL_IF -->
     <!-- /TMPL_UNLESS -->
-    
     <!-- TMPL_LOOP NAME="innerloop" -->
                <div style=";" id="tag<!-- TMPL_VAR name="tag"-->">
         <!-- TMPL_IF name="tag" -->
@@ -58,10 +56,9 @@
             <!-- TMPL_UNLESS NAME="advancedMARCEditor" -->
             <!-- TMPL_VAR NAME="tag_lib" -->
             <!-- /TMPL_UNLESS -->
-            <!-- TMPL_IF name="repeatable" --><a 
href="javascript:cloneTag('tag<!-- TMPL_VAR NAME="tag" -->')">+</a><!-- 
/TMPL_IF -->
+            <!-- TMPL_IF name="repeatable" --><a 
href="javascript:AddField('<!-- TMPL_VAR NAME="tag" -->')">+</a><!-- /TMPL_IF 
-->
         </p>
         <!-- /TMPL_IF -->
-        
         <!-- TMPL_LOOP NAME="subfield_loop" -->
             <!-- TMPL_IF NAME="visibility" -->
                 <a tabindex="1" style="color: grey; font-size: 80%; cursor: 
se-resize;" id="label<!-- TMPL_VAR name="index" -->" 
onclick="unHideSubfield('subfield<!-- TMPL_VAR NAME="tag" --><!-- TMPL_VAR 
name="index" -->','label<!-- TMPL_VAR name="index" -->')">
@@ -90,7 +87,7 @@
                     <a style="cursor: crosshair; color: grey; font-size: 80%;" 
onclick="cloneSubfield('subfield<!-- TMPL_VAR NAME="tag" --><!-- TMPL_VAR 
name="index" -->')">+</a>
                 <!-- /TMPL_IF -->
                 <input type="hidden" name="tag" value="<!-- TMPL_VAR 
NAME="tag" -->"/>
-                <input type="hidden" name="firstsubfield" value="<!-- TMPL_VAR 
NAME="firstsubfield" -->" size="2" maxlength="1"/>
+                <input type="hidden" name="subfieldYYY" value="<!-- TMPL_VAR 
NAME="subfield" -->" size="2" maxlength="1"/>
                 <input type="hidden" name="mandatory" value="<!-- TMPL_VAR 
NAME="mandatory" -->"/>
                 <input type="hidden" name="kohafield" value="<!-- TMPL_VAR 
NAME="kohafield" -->"/>
                 <input type="hidden" name="tag_mandatory" value="<!-- TMPL_VAR 
NAME="tag_mandatory" -->"/>
@@ -228,7 +225,6 @@
        var total_errors = total_missing_mandatory_tags + 
total_missing_mandatory_subfields;
        var alertString2;
        if (total_errors!=0) {
-        document.body.style.cursor ="default";
                alertString2  = _("Form not submitted because of the following 
problem(s)");
                alertString2 += 
"\n------------------------------------------------------------------------------------\n";
                alertString2 += "\n- "+ total_missing_mandatory_tags +_(" 
mandatory tags empty");
@@ -298,17 +294,17 @@
 
 function openAuth(tagid,authtype,X) {
 //     defaultid=document.getElementById(subfieldid);
+//     alert("X"+X);
     Y=X.parentNode.getAttribute("id");
+//     alert("tagid"+Y);
        newin=window.open("../authorities/auth_finder.pl?authtypecode="+  
authtype+ "&tagid="+Y, "value 
builder",'width=550,height=550,toolbar=false,scrollbars=yes');
 }
 
 
-function cloneTag(index) {
- var original = document.getElementById(index);
- var clone = original.cloneNode(true);
- // OK, now rename the id of the 
- clone.setAttribute("id", index + index);
- original.parentNode.insertBefore( clone, original.nextSibling);
+function AddField(field) {
+       document.forms['f'].op.value = "addfield";
+       document.forms['f'].addfield_field.value=field;
+       document.f.submit();
 }
 
 function cloneSubfield(index) {

Index: 
koha-tmpl/intranet-tmpl/default/en/authorities/blinddetail-biblio-search.tmpl
===================================================================
RCS file: 
/cvsroot/koha/koha/koha-tmpl/intranet-tmpl/default/en/authorities/blinddetail-biblio-search.tmpl,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -u -b -r1.6.2.2 -r1.6.2.3
--- 
koha-tmpl/intranet-tmpl/default/en/authorities/blinddetail-biblio-search.tmpl   
    7 Apr 2006 11:39:43 -0000       1.6.2.2
+++ 
koha-tmpl/intranet-tmpl/default/en/authorities/blinddetail-biblio-search.tmpl   
    19 Jun 2006 13:18:17 -0000      1.6.2.3
@@ -3,45 +3,48 @@
 <body>
 <script language="JavaScript" type="text/javascript">
 
-function go() {
-       var tagid = '<!-- TMPL_VAR NAME="tagid" -->';
-//     alert("I"+tagid);
-       var whichtag = opener.opener.document.getElementById(tagid);
-       // parses all the fields of this tag (every id)
-       whichsubfields=whichtag.getElementsByTagName("div");
-       subfieldcode='';
-       for(var i=0; i<whichsubfields.length;i++) {
-               // get every <input>
-               change_value=whichsubfields[i].getElementsByTagName("input");
-               for(j=0;j<change_value.length;j++) {
-                       // if this <input> if the subfield code, store if for 
future use !
-                       if (change_value[j].getAttribute("name") == 'subfield') 
{
-                               
subfieldcode=subfield_value=change_value[j].value;
-//                             alert("subfieldcode ="+subfieldcode);
-                       }
-                       // if this <input> is for field_value => replace it by 
the correct value
-                       if (change_value[j].getAttribute("name") == 
'field_value') {
-                               // empty any previous value, except if we are 
facing a $4 (UNIMARC specific, does not exist in MARC21)
-                               if (subfieldcode !=4) {
-                                       change_value[j].value ='';
-                               }
-                               // if we are on the $9 replace by authid
-                               if (subfieldcode=='9') {
-//                                             alert("subfield 9 valeur <!-- 
TMPL_VAR NAME="authid" -->");
-                                       change_value[j].value = "<!-- TMPL_VAR 
NAME="authid" -->";
+function go()
+{
+var index_start = <!-- TMPL_VAR NAME="index" -->;
+var whichfield = opener.opener.document.f.tag[index_start].value;
+i=index_start
+// go forward, until reaching the end of the field.
+while (i<opener.opener.document.f.field_value.length) {
+       if (opener.opener.document.f.tag[i].value == whichfield && 
opener.opener.document.f.subfield[i].value == '9') {
+               opener.opener.document.f.field_value[i].value = "<!-- TMPL_VAR 
NAME="authid" -->";
                                }
-                               // otherwise, build the loop for all subfields 
to replace
                                <!-- TMPL_LOOP NAME="0XX" -->
                                        <!-- TMPL_LOOP NAME="subfield" -->
-                                               if (subfieldcode == '<!-- 
TMPL_VAR NAME="marc_subfield" -->') {
-//                                             alert("subfield"+subfieldcode+" 
valeur <!-- TMPL_VAR NAME="marc_value" -->");
-                                                       change_value[j].value = 
"<!-- TMPL_VAR NAME="marc_value" -->";
+                       if (opener.opener.document.f.tag[i].value == whichfield 
&& opener.opener.document.f.subfield[i].value == '<!-- TMPL_VAR 
NAME="marc_subfield" -->') 
+                       {
+                               opener.opener.document.f.field_value[i].value = 
"<!-- TMPL_VAR NAME="marc_value" -->";
                                                }
                                        <!-- /TMPL_LOOP -->
                                <!-- /TMPL_LOOP -->
+       if (opener.opener.document.f.tag[i].value != whichfield) {
+               i=opener.opener.document.f.field_value.length;
                        }
+       i++;
+}
+// go backward until the beginning of the field
+i=index_start
+while (i>=0) {
+       if (opener.opener.document.f.tag[i].value == whichfield && 
opener.opener.document.f.subfield[i].value == '9') {
+               opener.opener.document.f.field_value[i].value = "<!-- TMPL_VAR 
NAME="authid">";
                }
+       <!-- TMPL_LOOP NAME="0XX" -->
+               <!-- TMPL_LOOP NAME="subfield" -->
+                       if (opener.opener.document.f.tag[i].value == whichfield 
&& opener.opener.document.f.subfield[i].value == '<!-- TMPL_VAR 
NAME="marc_subfield" -->') 
+                       {
+                               opener.opener.document.f.field_value[i].value = 
"<!-- TMPL_VAR NAME="marc_value" -->";
        }
+               <!-- /TMPL_LOOP -->
+       <!-- /TMPL_LOOP -->
+       if (opener.opener.document.f.tag[i].value != whichfield) {
+               i=0;
+       }
+       i--;
+}
        opener.close();
        self.close();
        return false;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]