Bug 6351: Unable to delete branch-specific circulation rule
[koha.git] / authorities / authorities.pl
index 9eb205d..d4f1601 100755 (executable)
 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 use strict;
+use warnings;
 use CGI;
 use C4::Auth;
 use C4::Output;
@@ -36,8 +37,14 @@ use vars qw( $is_a_modif );
 my $itemtype; # created here because it can be used in build_authorized_values_list sub
 our($authorised_values_sth,$is_a_modif,$usedTagsLib,$mandatory_z3950);
 
+=head1 FUNCTIONS
+
+=over
+
 =item build_authorized_values_list
 
+builds list, depending on authorised value...
+
 =cut
 
 sub build_authorized_values_list ($$$$$$$) {
@@ -46,7 +53,6 @@ sub build_authorized_values_list ($$$$$$$) {
     my @authorised_values;
     my %authorised_lib;
 
-    # builds list, depending on authorised value...
 
     #---- branch
     if ( $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "branches" ) {
@@ -110,7 +116,9 @@ sub build_authorized_values_list ($$$$$$$) {
 
 
 =item create_input
+
 builds the <input ...> entry for a subfield.
+
 =cut
 
 sub create_input {
@@ -129,8 +137,11 @@ sub create_input {
     }
 
     # if there is no value provided but a default value in parameters, get it
-    unless ($value) {
+    if ($value eq '') {
         $value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
+        if (!defined $value) {
+            $value = q{};
+        }
 
         # get today date & replace YYYY, MM, DD if provided in the default value
         my ( $year, $month, $day ) = Today();
@@ -180,13 +191,13 @@ sub create_input {
     elsif ( $tagslib->{$tag}->{$subfield}->{authtypecode} ) {
         $subfield_data{marc_value} =
     "<input type=\"text\"
-                        id=\"".$subfield_data{id}."\"
-                        name=\"".$subfield_data{id}."\"
-    value=\"$value\"
-    class=\"input_marceditor\"
-    tabindex=\"1\"                     
-        readonly=\"readonly\" \/>
-    <a href=\"#\" class=\"buttonDot\"
+            id=\"".$subfield_data{id}."\"
+            name=\"".$subfield_data{id}."\"
+            value=\"$value\"
+            class=\"input_marceditor readonly\"
+            tabindex=\"1\"
+            readonly=\"readonly\" \/>
+        <a href=\"#\" class=\"buttonDot\"
         onclick=\"openAuth(this.parentNode.getElementsByTagName('input')[1].id,'".$tagslib->{$tag}->{$subfield}->{authtypecode}."'); return false;\" tabindex=\"1\" title=\"Tag Editor\">...</a>
     ";
     # it's a plugin field
@@ -306,7 +317,7 @@ sub format_indicator {
 
 =item CreateKey
 
-    Create a random value to set it into the input name
+Create a random value to set it into the input name
 
 =cut
 
@@ -351,7 +362,7 @@ sub build_tabs ($$$$$) {
 
             # if MARC::Record is not empty =>use it as master loop, then add missing subfields that should be in the tab.
             # if MARC::Record is empty => use tab as master loop.
-            if ( $record ne -1 && ( $record->field($tag) || $tag eq '000' ) ) {
+            if ( $record != -1 && ( $record->field($tag) || $tag eq '000' ) ) {
                 my @fields;
                 if ( $tag ne '000' ) {
                                 @fields = $record->field($tag);
@@ -515,6 +526,11 @@ sub build_hidden_data () {
     }
 }
 
+=back
+
+=cut
+
+
 # ======================== 
 #          MAIN 
 #=========================
@@ -529,7 +545,9 @@ my $linkid=$input->param('linkid');
 my $authtypecode = $input->param('authtypecode');
 
 my $dbh = C4::Context->dbh;
-$authtypecode = &GetAuthTypeCode($authid) if !$authtypecode;
+if(!$authtypecode) {
+  $authtypecode = $authid? &GetAuthTypeCode($authid): '';
+}
 
 my ($template, $loggedinuser, $cookie)
     = get_template_and_user({template_name => "authorities/authorities.tmpl",
@@ -552,7 +570,7 @@ if ($authid) {
     ($oldauthnumtagfield,$oldauthnumtagsubfield) = &GetAuthMARCFromKohaField("auth_header.authid",$authtypecode);
     ($oldauthtypetagfield,$oldauthtypetagsubfield) = &GetAuthMARCFromKohaField("auth_header.authtypecode",$authtypecode);
 }
-
+$op ||= q{};
 #------------------------------------------------------------------------------------------------------------------------------
 if ($op eq "add") {
 #------------------------------------------------------------------------------------------------------------------------------
@@ -577,7 +595,8 @@ if ($op eq "add") {
         }    
     }
 
-    my ($duplicateauthid,$duplicateauthvalue) = FindDuplicateAuthority($record,$authtypecode) if ($op eq "add") && (!$is_a_modif);
+    my ($duplicateauthid,$duplicateauthvalue);
+     ($duplicateauthid,$duplicateauthvalue) = FindDuplicateAuthority($record,$authtypecode) if ($op eq "add") && (!$is_a_modif);
     my $confirm_not_duplicate = $input->param('confirm_not_duplicate');
     # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate)
     if (!$duplicateauthid or $confirm_not_duplicate) {
@@ -626,9 +645,8 @@ $template->param(authid                       => $authid,
 my $authtypes = getauthtypes;
 my @authtypesloop;
 foreach my $thisauthtype (keys %$authtypes) {
-    my $selected = 1 if $thisauthtype eq $authtypecode;
     my %row =(value => $thisauthtype,
-                selected => $selected,
+                selected => $thisauthtype eq $authtypecode,
                 authtypetext => $authtypes->{$thisauthtype}{'authtypetext'},
             );
     push @authtypesloop, \%row;