[Koha-cvs] koha/cataloguing addbiblio.pl

Joshua Ferraro jmf at kados.org
Sun Apr 2 21:12:01 CEST 2006


CVSROOT:	/sources/koha
Module name:	koha
Branch: 	
Changes by:	Joshua Ferraro <kados at savannah.gnu.org>	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} = \@subfields_data;
+						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} = \@subfields_data;
+						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} = \@subfields_data;
+					$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(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
-        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;





More information about the Koha-cvs mailing list