$value = $default_source unless $value;
}
else {
+ my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
$authorised_values_sth->execute(
- $tagslib->{$tag}->{$subfield}->{authorised_value} );
+ $tagslib->{$tag}->{$subfield}->{authorised_value},
+ $branch_limit ? $branch_limit : (),
+ );
push @authorised_values, ""
unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
$authorised_lib{$value} = $lib;
}
}
+ $authorised_values_sth->finish;
return CGI::scrolling_list(
-name => "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield,
-values => \@authorised_values,
# it's a thesaurus / authority field
}
elsif ( $tagslib->{$tag}->{$subfield}->{authtypecode} ) {
- if (C4::Context->preference("BiblioAddsAuthorities")) {
+ # when authorities auto-creation is allowed, do not set readonly
+ my $is_readonly = !C4::Context->preference("BiblioAddsAuthorities");
$subfield_data{marc_value} =
"<input type=\"text\"
id=\"".$subfield_data{id}."\"
class=\"input_marceditor readonly\"
tabindex=\"1\"
size=\"67\"
- maxlength=\"".$subfield_data{maxlength}."\"
- \/>
+ maxlength=\"".$subfield_data{maxlength}."\"".
+ ($is_readonly ? "readonly=\"readonly\"" : "").
+ "\/>
<span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot\"
- onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\"><img src=\"/intranet-tmpl/prog/img/edit-tag.png\" alt=\"Tag Editor\" /></a></span>
- ";
- } else {
- $subfield_data{marc_value} =
- "<input type=\"text\"
- id=\"".$subfield_data{id}."\"
- name=\"".$subfield_data{id}."\"
- value=\"$value\"
- class=\"input_marceditor readonly\"
- tabindex=\"1\"
- size=\"67\"
- maxlength=\"".$subfield_data{maxlength}."\"
- readonly=\"readonly\"
- \/><span class=\"subfield_controls\"><a href=\"#\" class=\"buttonDot\"
- onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\"><img src=\"/intranet-tmpl/prog/img/edit-tag.png\" alt=\"Tag Editor\" /></a></span>
+ onclick=\"openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."','biblio'); return false;\" tabindex=\"1\" title=\"Tag Editor\"><img src=\"/intranet-tmpl/prog/img/edit-tag.png\" alt=\"Tag Editor\" /></a></span>
";
- }
# it's a plugin field
}
elsif ( $tagslib->{$tag}->{$subfield}->{'value_builder'} ) {
my @loop_data = ();
my $tag;
- my $authorised_values_sth = $dbh->prepare(
- "select authorised_value,lib
- from authorised_values
- where category=? order by lib"
- );
-
+ my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : "";
+ my $query = "SELECT authorised_value, lib
+ FROM authorised_values";
+ $query .= qq{ LEFT JOIN authorised_values_branches ON ( id = av_id )} if $branch_limit;
+ $query .= " WHERE category = ?";
+ $query .= " AND ( branchcode = ? OR branchcode IS NULL )" if $branch_limit;
+ $query .= " GROUP BY lib ORDER BY lib, lib_opac";
+ my $authorised_values_sth = $dbh->prepare( $query );
+
# in this array, we will push all the 10 tabs
# to avoid having 10 tabs in the template : they will all be in the same BIG_LOOP
my @BIG_LOOP;
};
}
}
+ $authorised_values_sth->finish;
$template->param( BIG_LOOP => \@BIG_LOOP );
}