koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] koha/cataloguing addbiblio.pl


From: Joshua Ferraro
Subject: [Koha-cvs] koha/cataloguing addbiblio.pl
Date: Sun, 02 Apr 2006 19:12:01 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         
Changes by:     Joshua Ferraro <address@hidden> 06/04/02 19:12:01

Modified files:
        cataloguing    : addbiblio.pl 

Log message:
        syncing with rel_2_2, adding visibility handling

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/cataloguing/addbiblio.pl.diff?tr1=1.12&tr2=1.13&r1=text&r2=text

Patches:
Index: koha/cataloguing/addbiblio.pl
diff -u koha/cataloguing/addbiblio.pl:1.12 koha/cataloguing/addbiblio.pl:1.13
--- koha/cataloguing/addbiblio.pl:1.12  Sat Apr  1 23:06:22 2006
+++ koha/cataloguing/addbiblio.pl       Sun Apr  2 19:12:01 2006
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: addbiblio.pl,v 1.12 2006/04/01 23:06:22 kados Exp $
+# $Id: addbiblio.pl,v 1.13 2006/04/02 19:12:01 kados Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -31,6 +31,7 @@
 use C4::Koha; # XXX subfield_is_koha_internal_p
 use HTML::Template;
 use MARC::File::USMARC;
+use MARC::File::XML;
 
 use vars qw( $tagslib);
 use vars qw( $authorised_values_sth);
@@ -169,17 +170,19 @@
        $subfield_data{tag}=$tag;
        $subfield_data{subfield}=$subfield;
        $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{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 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>";
+               $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\" DISABLE READONLY> <a  style=\"cursor: help;\" 
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
@@ -192,18 +195,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 type=\"text\" 
name=\"field_value\"  value=\"$value\" size=\"67\" maxlength=\"255\" 
OnFocus=\"javascript:Focus$function_name($i)\" 
OnBlur=\"javascript:Blur$function_name($i)\" /> <a 
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 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 type=\"text\" 
name=\"field_value\" value=\"$value\" size=\"70\" maxlength=\"255\" DISABLE 
READONLY />";
+               $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 
name=\"field_value\" cols=\"70\" rows=\"5\" >$value</textarea>";
                } else {
-                       $subfield_data{marc_value}="<input 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;
@@ -264,6 +267,7 @@
                                                next if (length $subfield !=1);
                                                next if 
($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
                                                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));
                                                $i++;
@@ -275,6 +279,10 @@
                                                $tag_data{repeatable} = 
$tagslib->{$tag}->{repeatable};
                                                $tag_data{indicator} = 
$record->field($tag)->indicator(1). $record->field($tag)->indicator(2) if 
($tag>=10);
                                                $tag_data{subfield_loop} = 
address@hidden;
+                                               if ($tag<10) {
+                                                                               
                        $tag_data{fixedfield} = 1;
+                                            }
+
                                                push (@loop_data, \%tag_data);
                                        }
 # If there is more than 1 field, add an empty hidden field as separator.
@@ -286,6 +294,9 @@
                                                $tag_data{tag_lib} = '';
                                                $tag_data{indicator} = '';
                                                $tag_data{subfield_loop} = 
address@hidden;
+                                               if ($tag<10) {
+                                                    $tag_data{fixedfield} = 1;
+                                                                               
        }
                                                push (@loop_data, \%tag_data);
                                                $i++;
                                        }
@@ -295,6 +306,7 @@
                                my @subfields_data;
                                foreach my $subfield (sort(keys 
%{$tagslib->{$tag}})) {
                                        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));
                                        $i++;
@@ -306,6 +318,10 @@
                                        $tag_data{repeatable} = 
$tagslib->{$tag}->{repeatable};
                                        $tag_data{indicator} = $indicator;
                                        $tag_data{subfield_loop} = 
address@hidden;
+                                       $tag_data{tagfirstsubfield} = 
$tag_data{subfield_loop}[0];
+                                       if ($tag<10) {
+                        $tag_data{fixedfield} = 1;
+                    }
                                        push (@loop_data, \%tag_data);
                                }
                        }
@@ -460,16 +476,16 @@
 } elsif ($op eq "addfield") {
 
#------------------------------------------------------------------------------------------------------------------------------
        my $addedfield = $input->param('addfield_field');
+       my $tagaddfield_subfield = $input->param('addfield_subfield');
        my @tags = $input->param('tag');
        my @subfields = $input->param('subfield');
        my @values = $input->param('field_value');
-       # build indicator hash.
        my @ind_tag = $input->param('ind_tag');
        my @indicator = $input->param('indicator');
        my $xml = 
MARChtml2xml(address@hidden,address@hidden,address@hidden,address@hidden,address@hidden);
-        my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
+    my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
        # adding an empty field
-       my $field = MARC::Field->new("$addedfield",'','','a'=> "");
+       my $field = 
MARC::Field->new("$addedfield",'','','$tagaddfield_subfield' => "");
        $record->append_fields($field);
        build_tabs ($template, $record, $dbh,$encoding);
        build_hidden_data;
@@ -499,9 +515,9 @@
        }
        #FIXME: it's kind of silly to go from MARC::Record to MARC::File::XML 
and then back again just to fix the encoding
        eval {
-    my $uxml = $record->as_xml;
-    my $urecord = MARC::Record::new_from_xml($uxml, 'UTF-8'); 
-       $record = $urecord;
+       my $uxml = $record->as_xml;
+       my $urecord = MARC::Record::new_from_xml($uxml, 'UTF-8'); 
+               $record = $urecord;
        };
        build_tabs ($template, $record, $dbh,$encoding);
        build_hidden_data;




reply via email to

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