View | Details | Raw Unified | Return to bug 8643
Collapse All | Expand All

(-)a/C4/Biblio.pm (-5 / +7 lines)
Lines 1118-1140 sub GetMarcStructure { Link Here
1118
    #     my ($total) = $sth->fetchrow;
1118
    #     my ($total) = $sth->fetchrow;
1119
    #     $frameworkcode = "" unless ( $total > 0 );
1119
    #     $frameworkcode = "" unless ( $total > 0 );
1120
    my $sth = $dbh->prepare(
1120
    my $sth = $dbh->prepare(
1121
        "SELECT tagfield,liblibrarian,libopac,mandatory,repeatable 
1121
        "SELECT tagfield,liblibrarian,libopac,mandatory,repeatable,important
1122
        FROM marc_tag_structure 
1122
        FROM marc_tag_structure 
1123
        WHERE frameworkcode=? 
1123
        WHERE frameworkcode=? 
1124
        ORDER BY tagfield"
1124
        ORDER BY tagfield"
1125
    );
1125
    );
1126
    $sth->execute($frameworkcode);
1126
    $sth->execute($frameworkcode);
1127
    my ( $liblibrarian, $libopac, $tag, $res, $tab, $mandatory, $repeatable );
1127
    my ( $liblibrarian, $libopac, $tag, $res, $tab, $mandatory, $repeatable, $important );
1128
1128
1129
    while ( ( $tag, $liblibrarian, $libopac, $mandatory, $repeatable ) = $sth->fetchrow ) {
1129
    while ( ( $tag, $liblibrarian, $libopac, $mandatory, $repeatable, $important ) = $sth->fetchrow ) {
1130
        $res->{$tag}->{lib}        = ( $forlibrarian or !$libopac ) ? $liblibrarian : $libopac;
1130
        $res->{$tag}->{lib}        = ( $forlibrarian or !$libopac ) ? $liblibrarian : $libopac;
1131
        $res->{$tag}->{tab}        = "";
1131
        $res->{$tag}->{tab}        = "";
1132
        $res->{$tag}->{mandatory}  = $mandatory;
1132
        $res->{$tag}->{mandatory}  = $mandatory;
1133
        $res->{$tag}->{important}  = $important;
1133
        $res->{$tag}->{repeatable} = $repeatable;
1134
        $res->{$tag}->{repeatable} = $repeatable;
1134
    }
1135
    }
1135
1136
1136
    $sth = $dbh->prepare(
1137
    $sth = $dbh->prepare(
1137
        "SELECT tagfield,tagsubfield,liblibrarian,libopac,tab,mandatory,repeatable,authorised_value,authtypecode,value_builder,kohafield,seealso,hidden,isurl,link,defaultvalue,maxlength
1138
        "SELECT tagfield,tagsubfield,liblibrarian,libopac,tab,mandatory,repeatable,authorised_value,authtypecode,value_builder,kohafield,seealso,hidden,isurl,link,defaultvalue,maxlength,important
1138
         FROM   marc_subfield_structure 
1139
         FROM   marc_subfield_structure 
1139
         WHERE  frameworkcode=? 
1140
         WHERE  frameworkcode=? 
1140
         ORDER BY tagfield,tagsubfield
1141
         ORDER BY tagfield,tagsubfield
Lines 1158-1170 sub GetMarcStructure { Link Here
1158
    while (
1159
    while (
1159
        (   $tag,          $subfield,      $liblibrarian, $libopac, $tab,    $mandatory, $repeatable, $authorised_value,
1160
        (   $tag,          $subfield,      $liblibrarian, $libopac, $tab,    $mandatory, $repeatable, $authorised_value,
1160
            $authtypecode, $value_builder, $kohafield,    $seealso, $hidden, $isurl,     $link,       $defaultvalue,
1161
            $authtypecode, $value_builder, $kohafield,    $seealso, $hidden, $isurl,     $link,       $defaultvalue,
1161
            $maxlength
1162
            $maxlength, $important
1162
        )
1163
        )
1163
        = $sth->fetchrow
1164
        = $sth->fetchrow
1164
      ) {
1165
      ) {
1165
        $res->{$tag}->{$subfield}->{lib}              = ( $forlibrarian or !$libopac ) ? $liblibrarian : $libopac;
1166
        $res->{$tag}->{$subfield}->{lib}              = ( $forlibrarian or !$libopac ) ? $liblibrarian : $libopac;
1166
        $res->{$tag}->{$subfield}->{tab}              = $tab;
1167
        $res->{$tag}->{$subfield}->{tab}              = $tab;
1167
        $res->{$tag}->{$subfield}->{mandatory}        = $mandatory;
1168
        $res->{$tag}->{$subfield}->{mandatory}        = $mandatory;
1169
        $res->{$tag}->{$subfield}->{important}        = $important;
1168
        $res->{$tag}->{$subfield}->{repeatable}       = $repeatable;
1170
        $res->{$tag}->{$subfield}->{repeatable}       = $repeatable;
1169
        $res->{$tag}->{$subfield}->{authorised_value} = $authorised_value;
1171
        $res->{$tag}->{$subfield}->{authorised_value} = $authorised_value;
1170
        $res->{$tag}->{$subfield}->{authtypecode}     = $authtypecode;
1172
        $res->{$tag}->{$subfield}->{authtypecode}     = $authtypecode;
(-)a/admin/marc_subfields_structure.pl (-3 / +21 lines)
Lines 228-233 if ( $op eq 'add_form' ) { Link Here
228
            -label    => '',
228
            -label    => '',
229
            -id       => "mandatory$i"
229
            -id       => "mandatory$i"
230
        );
230
        );
231
        $row_data{important} = CGI::checkbox(
232
            -name     => "important$i",
233
            -checked  => $data->{'important'} ? 'checked' : '',
234
            -value    => 1,
235
            -label    => '',
236
            -id       => "important$i"
237
        );
231
        $row_data{hidden} = CGI::escapeHTML( $data->{hidden} );
238
        $row_data{hidden} = CGI::escapeHTML( $data->{hidden} );
232
        $row_data{isurl}  = CGI::checkbox(
239
        $row_data{isurl}  = CGI::checkbox(
233
            -name     => "isurl$i",
240
            -name     => "isurl$i",
Lines 279-284 if ( $op eq 'add_form' ) { Link Here
279
            -value    => 1,
286
            -value    => 1,
280
            -label    => ''
287
            -label    => ''
281
        );
288
        );
289
        $row_data{important} = CGI::checkbox(
290
            -name     => "important$i",
291
            -id       => "important$i",
292
            -checked  => '',
293
            -value    => 1,
294
            -label    => ''
295
        );
282
        $row_data{isurl} = CGI::checkbox(
296
        $row_data{isurl} = CGI::checkbox(
283
            -name     => "isurl$i",
297
            -name     => "isurl$i",
284
            -id       => "isurl$i",
298
            -id       => "isurl$i",
Lines 327-337 elsif ( $op eq 'add_validate' ) { Link Here
327
#                                     values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
341
#                                     values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
328
#     );
342
#     );
329
    my $sth_insert = $dbh->prepare(qq{
343
    my $sth_insert = $dbh->prepare(qq{
330
        insert into marc_subfield_structure (tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,seealso,authorised_value,authtypecode,value_builder,hidden,isurl,frameworkcode, link,defaultvalue,maxlength)
344
        insert into marc_subfield_structure (tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,important,kohafield,tab,seealso,authorised_value,authtypecode,value_builder,hidden,isurl,frameworkcode, link,defaultvalue,maxlength)
331
        values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
345
        values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
332
    });
346
    });
333
    my $sth_update = $dbh->prepare(qq{
347
    my $sth_update = $dbh->prepare(qq{
334
        update marc_subfield_structure set tagfield=?, tagsubfield=?, liblibrarian=?, libopac=?, repeatable=?, mandatory=?, kohafield=?, tab=?, seealso=?, authorised_value=?, authtypecode=?, value_builder=?, hidden=?, isurl=?, frameworkcode=?,  link=?, defaultvalue=?, maxlength=?
348
        update marc_subfield_structure set tagfield=?, tagsubfield=?, liblibrarian=?, libopac=?, repeatable=?, mandatory=?, important=?, kohafield=?, tab=?, seealso=?, authorised_value=?, authtypecode=?, value_builder=?, hidden=?, isurl=?, frameworkcode=?,  link=?, defaultvalue=?, maxlength=?
335
        where tagfield=? and tagsubfield=? and frameworkcode=?
349
        where tagfield=? and tagsubfield=? and frameworkcode=?
336
    });
350
    });
337
    my @tagsubfield       = $input->param('tagsubfield');
351
    my @tagsubfield       = $input->param('tagsubfield');
Lines 357-362 elsif ( $op eq 'add_validate' ) { Link Here
357
        my $libopac          = $libopac[$i];
371
        my $libopac          = $libopac[$i];
358
        my $repeatable       = $input->param("repeatable$i") ? 1 : 0;
372
        my $repeatable       = $input->param("repeatable$i") ? 1 : 0;
359
        my $mandatory        = $input->param("mandatory$i") ? 1 : 0;
373
        my $mandatory        = $input->param("mandatory$i") ? 1 : 0;
374
        my $important        = $input->param("important$i") ? 1 : 0;
360
        my $kohafield        = $kohafield[$i];
375
        my $kohafield        = $kohafield[$i];
361
        my $tab              = $tab[$i];
376
        my $tab              = $tab[$i];
362
        my $seealso          = $seealso[$i];
377
        my $seealso          = $seealso[$i];
Lines 379-384 elsif ( $op eq 'add_validate' ) { Link Here
379
                        $libopac,
394
                        $libopac,
380
                        $repeatable,
395
                        $repeatable,
381
                        $mandatory,
396
                        $mandatory,
397
                        $important,
382
                        $kohafield,
398
                        $kohafield,
383
                        $tab,
399
                        $tab,
384
                        $seealso,
400
                        $seealso,
Lines 405-410 elsif ( $op eq 'add_validate' ) { Link Here
405
                        $libopac,
421
                        $libopac,
406
                        $repeatable,
422
                        $repeatable,
407
                        $mandatory,
423
                        $mandatory,
424
                        $important,
408
                        $kohafield,
425
                        $kohafield,
409
                        $tab,
426
                        $tab,
410
                        $seealso,
427
                        $seealso,
Lines 484-489 else { # DEFAULT Link Here
484
        $row_data{kohafield}        = $results->[$i]{'kohafield'};
501
        $row_data{kohafield}        = $results->[$i]{'kohafield'};
485
        $row_data{repeatable}       = $results->[$i]{'repeatable'};
502
        $row_data{repeatable}       = $results->[$i]{'repeatable'};
486
        $row_data{mandatory}        = $results->[$i]{'mandatory'};
503
        $row_data{mandatory}        = $results->[$i]{'mandatory'};
504
        $row_data{important}        = $results->[$i]{'important'};
487
        $row_data{tab}              = $results->[$i]{'tab'};
505
        $row_data{tab}              = $results->[$i]{'tab'};
488
        $row_data{seealso}          = $results->[$i]{'seealso'};
506
        $row_data{seealso}          = $results->[$i]{'seealso'};
489
        $row_data{authorised_value} = $results->[$i]{'authorised_value'};
507
        $row_data{authorised_value} = $results->[$i]{'authorised_value'};
(-)a/admin/marctagstructure.pl (-5 / +13 lines)
Lines 96-102 if ($op eq 'add_form') { Link Here
96
	#---- if primkey exists, it's a modify action, so read values to modify...
96
	#---- if primkey exists, it's a modify action, so read values to modify...
97
	my $data;
97
	my $data;
98
	if ($searchfield) {
98
	if ($searchfield) {
99
		$sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where tagfield=? and frameworkcode=?");
99
        $sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value, important from marc_tag_structure where tagfield=? and frameworkcode=?");
100
		$sth->execute($searchfield,$frameworkcode);
100
		$sth->execute($searchfield,$frameworkcode);
101
		$data=$sth->fetchrow_hashref;
101
		$data=$sth->fetchrow_hashref;
102
	}
102
	}
Lines 128-133 if ($op eq 'add_form') { Link Here
128
			libopac => $data->{'libopac'},
128
			libopac => $data->{'libopac'},
129
            repeatable => $data->{'repeatable'},
129
            repeatable => $data->{'repeatable'},
130
            mandatory => $data->{'mandatory'},
130
            mandatory => $data->{'mandatory'},
131
            important => $data->{'important'},
131
			authorised_value => $authorised_value,
132
			authorised_value => $authorised_value,
132
			frameworkcode => $frameworkcode,
133
			frameworkcode => $frameworkcode,
133
    );  # FIXME: move checkboxes to presentation layer
134
    );  # FIXME: move checkboxes to presentation layer
Lines 140-162 if ($op eq 'add_form') { Link Here
140
	my $libopac          = $input->param('libopac');
141
	my $libopac          = $input->param('libopac');
141
	my $repeatable       = $input->param('repeatable') ? 1 : 0;
142
	my $repeatable       = $input->param('repeatable') ? 1 : 0;
142
	my $mandatory        = $input->param('mandatory')  ? 1 : 0;
143
	my $mandatory        = $input->param('mandatory')  ? 1 : 0;
144
    my $important        = $input->param('important')  ? 1 : 0;
143
	my $authorised_value = $input->param('authorised_value');
145
	my $authorised_value = $input->param('authorised_value');
144
    unless (C4::Context->config('demo')) {
146
    unless (C4::Context->config('demo')) {
145
        if ($input->param('modif')) {
147
        if ($input->param('modif')) {
146
            $sth = $dbh->prepare(
148
            $sth = $dbh->prepare(
147
            "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,authorised_value=? WHERE frameworkcode=? AND tagfield=?"
149
            "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,important=?, authorised_value=? WHERE frameworkcode=? AND tagfield=?"
148
            );
150
            );
149
            $sth->execute(  $liblibrarian,
151
            $sth->execute(  $liblibrarian,
150
                            $libopac,
152
                            $libopac,
151
                            $repeatable,
153
                            $repeatable,
152
                            $mandatory,
154
                            $mandatory,
155
                            $important,
153
                            $authorised_value,
156
                            $authorised_value,
154
                            $frameworkcode,
157
                            $frameworkcode,
155
                            $tagfield
158
                            $tagfield
156
            );
159
            );
157
        } else {
160
        } else {
158
            $sth = $dbh->prepare(
161
            $sth = $dbh->prepare(
159
            "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,frameworkcode) values (?,?,?,?,?,?,?)"
162
            "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,frameworkcode,important) values (?,?,?,?,?,?,?,?)"
160
            );
163
            );
161
            $sth->execute($tagfield,
164
            $sth->execute($tagfield,
162
                          $liblibrarian,
165
                          $liblibrarian,
Lines 164-170 if ($op eq 'add_form') { Link Here
164
                          $repeatable,
167
                          $repeatable,
165
                          $mandatory,
168
                          $mandatory,
166
                          $authorised_value,
169
                          $authorised_value,
167
                          $frameworkcode
170
                          $frameworkcode,
171
                          $important
168
            );
172
            );
169
        }
173
        }
170
	}
174
	}
Lines 232-237 if ($op eq 'add_form') { Link Here
232
		              marc_tag_structure.libopac as mts_libopac,
236
		              marc_tag_structure.libopac as mts_libopac,
233
		              marc_tag_structure.repeatable as mts_repeatable,
237
		              marc_tag_structure.repeatable as mts_repeatable,
234
		              marc_tag_structure.mandatory as mts_mandatory,
238
		              marc_tag_structure.mandatory as mts_mandatory,
239
                      marc_tag_structure.important as mts_important,
235
		              marc_tag_structure.authorised_value as mts_authorized_value,
240
		              marc_tag_structure.authorised_value as mts_authorized_value,
236
		              marc_subfield_structure.*
241
		              marc_subfield_structure.*
237
                FROM marc_tag_structure 
242
                FROM marc_tag_structure 
Lines 253-258 if ($op eq 'add_form') { Link Here
253
			$row_data{liblibrarian}     = $results[$i]->{'mts_liblibrarian'};
258
			$row_data{liblibrarian}     = $results[$i]->{'mts_liblibrarian'};
254
			$row_data{repeatable}       = $results[$i]->{'mts_repeatable'};
259
			$row_data{repeatable}       = $results[$i]->{'mts_repeatable'};
255
			$row_data{mandatory}        = $results[$i]->{'mts_mandatory'};
260
			$row_data{mandatory}        = $results[$i]->{'mts_mandatory'};
261
            $row_data{important}        = $results[$i]->{'mts_important'};
256
			$row_data{authorised_value} = $results[$i]->{'mts_authorised_value'};
262
			$row_data{authorised_value} = $results[$i]->{'mts_authorised_value'};
257
			$row_data{subfield_link} = "marc_subfields_structure.pl?op=add_form&tagfield=".$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
263
			$row_data{subfield_link} = "marc_subfields_structure.pl?op=add_form&tagfield=".$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
258
			$row_data{edit}          = "$script_name?op=add_form&searchfield="            .$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
264
			$row_data{edit}          = "$script_name?op=add_form&searchfield="            .$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
Lines 266-271 if ($op eq 'add_form') { Link Here
266
				$subfield_data{kohafield}        = $results[$j]->{'kohafield'};
272
				$subfield_data{kohafield}        = $results[$j]->{'kohafield'};
267
				$subfield_data{repeatable}       = $results[$j]->{'repeatable'};
273
				$subfield_data{repeatable}       = $results[$j]->{'repeatable'};
268
				$subfield_data{mandatory}        = $results[$j]->{'mandatory'};
274
				$subfield_data{mandatory}        = $results[$j]->{'mandatory'};
275
                $subfield_data{important}        = $results[$j]->{'important'};
269
				$subfield_data{tab}              = $results[$j]->{'tab'};
276
				$subfield_data{tab}              = $results[$j]->{'tab'};
270
				$subfield_data{seealso}          = $results[$j]->{'seealso'};
277
				$subfield_data{seealso}          = $results[$j]->{'seealso'};
271
				$subfield_data{authorised_value} = $results[$j]->{'authorised_value'};
278
				$subfield_data{authorised_value} = $results[$j]->{'authorised_value'};
Lines 292-297 if ($op eq 'add_form') { Link Here
292
			$row_data{liblibrarian}     = $results->[$i]{'liblibrarian'};
299
			$row_data{liblibrarian}     = $results->[$i]{'liblibrarian'};
293
			$row_data{repeatable}       = $results->[$i]{'repeatable'};
300
			$row_data{repeatable}       = $results->[$i]{'repeatable'};
294
			$row_data{mandatory}        = $results->[$i]{'mandatory'};
301
			$row_data{mandatory}        = $results->[$i]{'mandatory'};
302
            $row_data{important}        = $results->[$i]{'important'};
295
			$row_data{authorised_value} = $results->[$i]{'authorised_value'};
303
			$row_data{authorised_value} = $results->[$i]{'authorised_value'};
296
			$row_data{subfield_link}    = "marc_subfields_structure.pl?tagfield="          .$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
304
			$row_data{subfield_link}    = "marc_subfields_structure.pl?tagfield="          .$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
297
			$row_data{edit}             = "$script_name?op=add_form&searchfield="      .$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
305
			$row_data{edit}             = "$script_name?op=add_form&searchfield="      .$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
Lines 325-331 output_html_with_http_headers $input, $cookie, $template->output; Link Here
325
sub StringSearch  {
333
sub StringSearch  {
326
	my ($searchstring,$frameworkcode)=@_;
334
	my ($searchstring,$frameworkcode)=@_;
327
	my $sth = C4::Context->dbh->prepare("
335
	my $sth = C4::Context->dbh->prepare("
328
    SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value
336
    SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,important
329
     FROM  marc_tag_structure
337
     FROM  marc_tag_structure
330
     WHERE (tagfield >= ? and frameworkcode=?)
338
     WHERE (tagfield >= ? and frameworkcode=?)
331
    ORDER BY tagfield
339
    ORDER BY tagfield
(-)a/cataloguing/addbiblio.pl (-2 / +7 lines)
Lines 326-331 sub create_input { Link Here
326
        marc_lib_plain => $tagslib->{$tag}->{$subfield}->{lib}, 
326
        marc_lib_plain => $tagslib->{$tag}->{$subfield}->{lib}, 
327
        tag_mandatory  => $tagslib->{$tag}->{mandatory},
327
        tag_mandatory  => $tagslib->{$tag}->{mandatory},
328
        mandatory      => $tagslib->{$tag}->{$subfield}->{mandatory},
328
        mandatory      => $tagslib->{$tag}->{$subfield}->{mandatory},
329
        important      => $tagslib->{$tag}->{$subfield}->{important},
329
        repeatable     => $tagslib->{$tag}->{$subfield}->{repeatable},
330
        repeatable     => $tagslib->{$tag}->{$subfield}->{repeatable},
330
        kohafield      => $tagslib->{$tag}->{$subfield}->{kohafield},
331
        kohafield      => $tagslib->{$tag}->{$subfield}->{kohafield},
331
        index          => $index_tag,
332
        index          => $index_tag,
Lines 339-351 sub create_input { Link Here
339
        $subfield_data{z3950_mandatory} = $mandatory_z3950->{$tag.$subfield};
340
        $subfield_data{z3950_mandatory} = $mandatory_z3950->{$tag.$subfield};
340
    }
341
    }
341
    # Subfield is hidden depending of hidden and mandatory flag, and is always
342
    # Subfield is hidden depending of hidden and mandatory flag, and is always
342
    # shown if it contains anything or if its field is mandatory.
343
    # shown if it contains anything or if its field is mandatory or important.
343
    my $tdef = $tagslib->{$tag};
344
    my $tdef = $tagslib->{$tag};
344
    $subfield_data{visibility} = "display:none;"
345
    $subfield_data{visibility} = "display:none;"
345
        if $tdef->{$subfield}->{hidden} % 2 == 1 &&
346
        if $tdef->{$subfield}->{hidden} % 2 == 1 &&
346
           $value eq '' &&
347
           $value eq '' &&
347
           !$tdef->{$subfield}->{mandatory} &&
348
           !$tdef->{$subfield}->{mandatory} &&
348
           !$tdef->{mandatory};
349
           !$tdef->{mandatory} &&
350
           !$tdef->{$subfield}->{important} &&
351
           !$tdef->{important};
349
    # expand all subfields of 773 if there is a host item provided in the input
352
    # expand all subfields of 773 if there is a host item provided in the input
350
    $subfield_data{visibility} ="" if ($tag eq 773 and $cgi->param('hostitemnumber'));
353
    $subfield_data{visibility} ="" if ($tag eq 773 and $cgi->param('hostitemnumber'));
351
354
Lines 634-639 sub build_tabs { Link Here
634
                            tag_lib       => $tagslib->{$tag}->{lib},
637
                            tag_lib       => $tagslib->{$tag}->{lib},
635
                            repeatable       => $tagslib->{$tag}->{repeatable},
638
                            repeatable       => $tagslib->{$tag}->{repeatable},
636
                            mandatory       => $tagslib->{$tag}->{mandatory},
639
                            mandatory       => $tagslib->{$tag}->{mandatory},
640
                            important       => $tagslib->{$tag}->{important},
637
                            subfield_loop => \@subfields_data,
641
                            subfield_loop => \@subfields_data,
638
                            fixedfield    => $tag < 10?1:0,
642
                            fixedfield    => $tag < 10?1:0,
639
                            random        => CreateKey,
643
                            random        => CreateKey,
Lines 680-685 sub build_tabs { Link Here
680
                        tag_lib          => $tagslib->{$tag}->{lib},
684
                        tag_lib          => $tagslib->{$tag}->{lib},
681
                        repeatable       => $tagslib->{$tag}->{repeatable},
685
                        repeatable       => $tagslib->{$tag}->{repeatable},
682
                        mandatory       => $tagslib->{$tag}->{mandatory},
686
                        mandatory       => $tagslib->{$tag}->{mandatory},
687
                        important       => $tagslib->{$tag}->{important},
683
                        indicator1       => $indicator1,
688
                        indicator1       => $indicator1,
684
                        indicator2       => $indicator2,
689
                        indicator2       => $indicator2,
685
                        subfield_loop    => \@subfields_data,
690
                        subfield_loop    => \@subfields_data,
(-)a/installer/data/mysql/kohastructure.sql
Lines 2-8 Link Here
2
--
2
--
3
-- Host: localhost    Database: koha30test
3
-- Host: localhost    Database: koha30test
4
-- ------------------------------------------------------
4
-- ------------------------------------------------------
(-)Server version (-11 / +12 lines)
Lines 1376-1381 CREATE TABLE `marc_subfield_structure` ( Link Here
1376
  `libopac` varchar(255) NOT NULL default '',
1376
  `libopac` varchar(255) NOT NULL default '',
1377
  `repeatable` tinyint(4) NOT NULL default 0,
1377
  `repeatable` tinyint(4) NOT NULL default 0,
1378
  `mandatory` tinyint(4) NOT NULL default 0,
1378
  `mandatory` tinyint(4) NOT NULL default 0,
1379
  `important` tinyint(4) NOT NULL DEFAULT '0',
1379
  `kohafield` varchar(40) default NULL,
1380
  `kohafield` varchar(40) default NULL,
1380
  `tab` tinyint(1) default NULL,
1381
  `tab` tinyint(1) default NULL,
1381
  `authorised_value` varchar(20) default NULL,
1382
  `authorised_value` varchar(20) default NULL,
Lines 1407-1412 CREATE TABLE `marc_tag_structure` ( Link Here
1407
  `mandatory` tinyint(4) NOT NULL default 0,
1408
  `mandatory` tinyint(4) NOT NULL default 0,
1408
  `authorised_value` varchar(10) default NULL,
1409
  `authorised_value` varchar(10) default NULL,
1409
  `frameworkcode` varchar(4) NOT NULL default '',
1410
  `frameworkcode` varchar(4) NOT NULL default '',
1411
  `important` tinyint(4) NOT NULL DEFAULT '0',
1410
  PRIMARY KEY  (`frameworkcode`,`tagfield`)
1412
  PRIMARY KEY  (`frameworkcode`,`tagfield`)
1411
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1413
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1412
1414
Lines 2174-2183 CREATE TABLE `suggestions` ( -- purchase suggestions Link Here
2174
   branchcode VARCHAR(10) default NULL, -- foreign key linking the suggested branch to the branches table
2176
   branchcode VARCHAR(10) default NULL, -- foreign key linking the suggested branch to the branches table
2175
   collectiontitle text default NULL, -- collection name for the suggested item
2177
   collectiontitle text default NULL, -- collection name for the suggested item
2176
   itemtype VARCHAR(30) default NULL, -- suggested item type 
2178
   itemtype VARCHAR(30) default NULL, -- suggested item type 
2177
	quantity SMALLINT(6) default NULL, -- suggested quantity to be purchased
2179
    quantity SMALLINT(6) default NULL, -- suggested quantity to be purchased
2178
	currency VARCHAR(3) default NULL, -- suggested currency for the suggested price
2180
    currency VARCHAR(3) default NULL, -- suggested currency for the suggested price
2179
	price DECIMAL(28,6) default NULL, -- suggested price
2181
    price DECIMAL(28,6) default NULL, -- suggested price
2180
	total DECIMAL(28,6) default NULL, -- suggested total cost (price*quantity updated for currency)
2182
    total DECIMAL(28,6) default NULL, -- suggested total cost (price*quantity updated for currency)
2181
  PRIMARY KEY  (`suggestionid`),
2183
  PRIMARY KEY  (`suggestionid`),
2182
  KEY `suggestedby` (`suggestedby`),
2184
  KEY `suggestedby` (`suggestedby`),
2183
  KEY `managedby` (`managedby`)
2185
  KEY `managedby` (`managedby`)
Lines 2475-2486 CREATE TABLE `permissions` ( Link Here
2475
2477
2476
DROP TABLE IF EXISTS `serialitems`;
2478
DROP TABLE IF EXISTS `serialitems`;
2477
CREATE TABLE `serialitems` (
2479
CREATE TABLE `serialitems` (
2478
	`itemnumber` int(11) NOT NULL,
2480
    `itemnumber` int(11) NOT NULL,
2479
	`serialid` int(11) NOT NULL,
2481
    `serialid` int(11) NOT NULL,
2480
	UNIQUE KEY `serialitemsidx` (`itemnumber`),
2482
    UNIQUE KEY `serialitemsidx` (`itemnumber`),
2481
	KEY `serialitems_sfk_1` (`serialid`),
2483
    KEY `serialitems_sfk_1` (`serialid`),
2482
	CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE,
2484
    CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE,
2483
	CONSTRAINT `serialitems_sfk_2` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE
2485
    CONSTRAINT `serialitems_sfk_2` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE
2484
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2486
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2485
2487
2486
--
2488
--
Lines 3430-3433 CREATE TABLE IF NOT EXISTS `misc_files` ( -- miscellaneous files attached to rec Link Here
3430
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
3432
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
3431
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
3433
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
3432
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
3434
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
3433
(-)a/installer/data/mysql/updatedatabase.pl (+8 lines)
Lines 8603-8608 if ( CheckVersion($DBversion) ) { Link Here
8603
    SetVersion($DBversion);
8603
    SetVersion($DBversion);
8604
}
8604
}
8605
8605
8606
$DBversion = "XXX";
8607
if ( CheckVersion($DBversion) ) {
8608
    $dbh->do("ALTER TABLE `marc_subfield_structure` ADD COLUMN `important` TINYINT(4) NOT NULL DEFAULT 0  AFTER `mandatory`");
8609
    $dbh->do("ALTER TABLE `marc_tag_structure` ADD COLUMN `important` TINYINT(4) NOT NULL DEFAULT 0  AFTER `frameworkcode`");
8610
    print "Upgrade to $DBversion done (Bug 8643 - Add important constraint to marc subfields)\n";
8611
    SetVersion($DBversion);
8612
}
8613
8606
=head1 FUNCTIONS
8614
=head1 FUNCTIONS
8607
8615
8608
=head2 TableExists($table)
8616
=head2 TableExists($table)
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt (+2 lines)
Lines 229-234 function populateHiddenCheckboxes(tab) { Link Here
229
                		<li><label for="libopac[% loo.row %]">Text for OPAC: </label><input type="text" id="libopac[% loo.row %]" name="libopac" value="[% loo.libopac %]" size="40" maxlength="80" /></li>
229
                		<li><label for="libopac[% loo.row %]">Text for OPAC: </label><input type="text" id="libopac[% loo.row %]" name="libopac" value="[% loo.libopac %]" size="40" maxlength="80" /></li>
230
                		<li><label for="repeatable[% loo.row %]">Repeatable: </label>[% loo.repeatable %]</li>
230
                		<li><label for="repeatable[% loo.row %]">Repeatable: </label>[% loo.repeatable %]</li>
231
                		<li><label for="mandatory[% loo.row %]">Mandatory: </label>[% loo.mandatory %]</li>
231
                		<li><label for="mandatory[% loo.row %]">Mandatory: </label>[% loo.mandatory %]</li>
232
                        <li><label for="important[% loo.row %]">Important: </label>[% loo.important %]</li>
232
                        <li><label for="tab[% loo.row %]">Managed in tab: </label>
233
                        <li><label for="tab[% loo.row %]">Managed in tab: </label>
233
                            <select name="tab" tabindex="" size="1" id="[% loo.tab.id %]">
234
                            <select name="tab" tabindex="" size="1" id="[% loo.tab.id %]">
234
                            [%- IF ( loo.tab.default ==  -1 ) -%]
235
                            [%- IF ( loo.tab.default ==  -1 ) -%]
Lines 412-417 function populateHiddenCheckboxes(tab) { Link Here
412
            [% IF ( loo.kohafield ) %] | Koha field: [% loo.kohafield %], [% END %]
413
            [% IF ( loo.kohafield ) %] | Koha field: [% loo.kohafield %], [% END %]
413
            [% IF ( loo.repeatable ) %]Repeatable, [% ELSE %]Not repeatable,[% END %]
414
            [% IF ( loo.repeatable ) %]Repeatable, [% ELSE %]Not repeatable,[% END %]
414
            [% IF ( loo.mandatory ) %]Mandatory, [% ELSE %]Not mandatory,[% END %]
415
            [% IF ( loo.mandatory ) %]Mandatory, [% ELSE %]Not mandatory,[% END %]
416
            [% IF ( loo.important ) %]Important, [% ELSE %]Not important,[% END %]
415
            [% IF ( loo.seealso ) %] | See Also: [% loo.seealso %],[% END %]
417
            [% IF ( loo.seealso ) %] | See Also: [% loo.seealso %],[% END %]
416
            [% IF ( loo.hidden ) %]hidden,[% END %]
418
            [% IF ( loo.hidden ) %]hidden,[% END %]
417
            [% IF ( loo.isurl ) %]is a URL,[% END %]
419
            [% IF ( loo.isurl ) %]is a URL,[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marctagstructure.tt (-1 / +11 lines)
Lines 92-97 $(document).ready(function() { Link Here
92
            <input type="checkbox" name="mandatory" id="mandatory" value="1" />
92
            <input type="checkbox" name="mandatory" id="mandatory" value="1" />
93
        [% END %]
93
        [% END %]
94
    </li>
94
    </li>
95
    <li><label for="important">Important: </label>
96
        [% IF ( important ) %]
97
            <input type="checkbox" name="important" id="important" value="1" checked="checked" />
98
        [% ELSE %]
99
            <input type="checkbox" name="important" id="important" value="1" />
100
        [% END %]
101
    </li>
95
    <li><label for="authorised_value">Authorized value: </label>[% authorised_value %] (if you select a value here, the indicators will be limited to the authorized value list)</li>
102
    <li><label for="authorised_value">Authorized value: </label>[% authorised_value %] (if you select a value here, the indicators will be limited to the authorized value list)</li>
96
</ol></fieldset> 
103
</ol></fieldset> 
97
    <fieldset class="action">
104
    <fieldset class="action">
Lines 173-178 $(document).ready(function() { Link Here
173
        <th>Lib</th>
180
        <th>Lib</th>
174
        <th>Repeatable</th>
181
        <th>Repeatable</th>
175
        <th>Mandatory</th>
182
        <th>Mandatory</th>
183
        <th>Important</th>
176
        <th>Auth value</th>
184
        <th>Auth value</th>
177
        <th>Subfields</th>
185
        <th>Subfields</th>
178
        <th>Edit</th>
186
        <th>Edit</th>
Lines 187-192 $(document).ready(function() { Link Here
187
            <td>[% loo.liblibrarian %]</td>
195
            <td>[% loo.liblibrarian %]</td>
188
            <td>[% IF ( loo.repeatable ) %]Yes[% ELSE %]No[% END %]</td>
196
            <td>[% IF ( loo.repeatable ) %]Yes[% ELSE %]No[% END %]</td>
189
            <td>[% IF ( loo.mandatory ) %]Yes[% ELSE %]No[% END %]</td>
197
            <td>[% IF ( loo.mandatory ) %]Yes[% ELSE %]No[% END %]</td>
198
            <td>[% IF ( loo.important ) %]Yes[% ELSE %]No[% END %]</td>
190
            <td>[% loo.authorised_value %]</td>
199
            <td>[% loo.authorised_value %]</td>
191
            <td><a href="[% loo.subfield_link %]">subfields</a></td>
200
            <td><a href="[% loo.subfield_link %]">subfields</a></td>
192
            <td><a href="[% loo.edit %]">Edit</a></td>
201
            <td><a href="[% loo.edit %]">Edit</a></td>
Lines 197-203 $(document).ready(function() { Link Here
197
            <td colspan="7">
206
            <td colspan="7">
198
                [% FOREACH subfield IN loo.subfields %]
207
                [% FOREACH subfield IN loo.subfields %]
199
                    <p>	Tab:[% subfield.tab %] | $[% subfield.tagsubfield %]
208
                    <p>	Tab:[% subfield.tab %] | $[% subfield.tagsubfield %]
200
                            [% subfield.liblibrarian %] [% IF ( subfield.kohafield ) %][% subfield.kohafield %][% END %][% IF ( subfield.repeatable ) %], repeatable[% END %][% IF ( subfield.mandatory ) %], Mandatory[% END %][% IF ( subfield.seealso ) %], See [% subfield.seealso %][% END %][% IF ( subfield.authorised_value ) %], [% subfield.authorised_value %][% END %][% IF ( subfield.authtypecode ) %], [% subfield.authtypecode %][% END %][% IF ( subfield.value_builder ) %], [% subfield.value_builder %][% END %]
209
                            [% subfield.liblibrarian %] [% IF ( subfield.kohafield ) %][% subfield.kohafield %][% END %][% IF ( subfield.repeatable ) %], repeatable[% END %][% IF ( subfield.mandatory ) %], Mandatory[% END %][% IF ( subfield.important ) %], Important[% END %][% IF ( subfield.seealso ) %], See [% subfield.seealso %][% END %][% IF ( subfield.authorised_value ) %], [% subfield.authorised_value %][% END %][% IF ( subfield.authtypecode ) %], [% subfield.authtypecode %][% END %][% IF ( subfield.value_builder ) %], [% subfield.value_builder %][% END %]
201
                    </p>
210
                    </p>
202
                [% END %]
211
                [% END %]
203
            </td>
212
            </td>
Lines 210-215 $(document).ready(function() { Link Here
210
        <td>[% loo.liblibrarian %]</td>
219
        <td>[% loo.liblibrarian %]</td>
211
        <td>[% IF ( loo.repeatable ) %]Yes[% ELSE %]No[% END %]</td>
220
        <td>[% IF ( loo.repeatable ) %]Yes[% ELSE %]No[% END %]</td>
212
        <td>[% IF ( loo.mandatory ) %]Yes[% ELSE %]No[% END %]</td>
221
        <td>[% IF ( loo.mandatory ) %]Yes[% ELSE %]No[% END %]</td>
222
        <td>[% IF ( loo.important ) %]Yes[% ELSE %]No[% END %]</td>
213
        <td>[% loo.authorised_value %]</td>
223
        <td>[% loo.authorised_value %]</td>
214
        <td><a href="[% loo.subfield_link %]">Subfields</a></td>
224
        <td><a href="[% loo.subfield_link %]">Subfields</a></td>
215
        <td><a href="[% loo.edit %]">Edit</a></td>
225
        <td><a href="[% loo.edit %]">Edit</a></td>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt (-3 / +117 lines)
Lines 222-228 function AreMandatoriesNotOk(){ Link Here
222
    var flag=0;
222
    var flag=0;
223
    var tabflag= new Array();  
223
    var tabflag= new Array();  
224
    [% FOREACH BIG_LOO IN BIG_LOOP %]
224
    [% FOREACH BIG_LOO IN BIG_LOOP %]
225
    	[% FOREACH innerloo IN BIG_LOO.innerloop %]
225
        [% FOREACH innerloo IN BIG_LOO.innerloop %]
226
	        [% IF ( innerloo.mandatory ) %]
226
	        [% IF ( innerloo.mandatory ) %]
227
    	    	mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
227
    	    	mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
228
        	[% END %]
228
        	[% END %]
Lines 308-314 function AreMandatoriesNotOk(){ Link Here
308
    	
308
    	
309
    	if(isempty){
309
    	if(isempty){
310
    		flag = 1;
310
    		flag = 1;
311
                StrAlert += "\t* " + _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]) + "\n";
311
            StrAlert += "\t* " + _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]) + "\n";
312
    	}
312
    	}
313
    	
313
    	
314
    }
314
    }
Lines 327-332 function AreMandatoriesNotOk(){ Link Here
327
function Check(){
327
function Check(){
328
    var StrAlert = AreMandatoriesNotOk();
328
    var StrAlert = AreMandatoriesNotOk();
329
    if( ! StrAlert ){
329
    if( ! StrAlert ){
330
        var StrWarning = AreImportantsNotOk();
331
        if (StrWarning){
332
            var r=confirm(StrWarning);
333
            if (! r){
334
                return false;
335
            }
336
        }
330
        document.f.submit();
337
        document.f.submit();
331
        return true;
338
        return true;
332
    } else {
339
    } else {
Lines 336-341 function Check(){ Link Here
336
}
343
}
337
344
338
/** 
345
/** 
346
 * check if mandatory subfields are written
347
 */
348
function AreImportantsNotOk(){
349
    var importants = new Array();
350
    var importantsfields = new Array();
351
    var tab = new Array();
352
    var label = new Array();
353
    var flag=0;
354
    var tabflag= new Array();
355
    [% FOREACH BIG_LOO IN BIG_LOOP %]
356
    [% FOREACH innerloo IN BIG_LOO.innerloop %]
357
        [% IF ( innerloo.important ) %]
358
           importantsfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]"));
359
        [% END %]
360
        [% FOREACH subfield_loo IN innerloo.subfield_loop %]
361
            [% IF ( subfield_loo.important ) %]importants.push("[% subfield_loo.id %]");
362
                tab.push("[% subfield_loo.number %]");
363
                label.push("[% subfield_loo.marc_lib %]");
364
                [% END %]
365
            [% END %]
366
        [% END %]
367
    [% END %]
368
    var StrWarning = _("A few important fields are not filled:");
369
    StrWarning += "\n\n";
370
    for(var i=0,len=importants.length; i<len ; i++){
371
        var tag=importants[i].substr(4,3);
372
        var subfield=importants[i].substr(17,1);
373
        var tagnumber=importants[i].substr(19,importants[i].lastIndexOf("_")-19);
374
        tabflag[tag+subfield+tagnumber]=new Array();
375
        tabflag[tag+subfield+tagnumber][0]=0;
376
        if( ! document.getElementById(importants[i]).value){
377
            tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
378
            document.getElementById(importants[i]).setAttribute('class','subfield_not_filled');
379
            document.getElementById(importants[i]).focus();
380
            tabflag[tag+subfield+tagnumber][1]=label[i];
381
            tabflag[tag+subfield+tagnumber][2]=tab[i];
382
        } else {
383
            tabflag[tag+subfield+tagnumber][0] = 1;
384
        }
385
    }
386
    for (var tagsubfieldid in tabflag){
387
      if (tabflag[tagsubfieldid][0]==0){
388
        var tag=tagsubfieldid.substr(0,3);
389
        var subfield=tagsubfieldid.substr(3,1);
390
        StrWarning += "\t* "+_("tag ")+tag+_(" subfield ")+subfield+" "+tabflag[tagsubfieldid][1]+_(" in tab ")+tabflag[tagsubfieldid][2]+"\n";
391
        //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
392
        flag=1;
393
      }
394
    }
395
396
    /* Check for mandatories field(not subfields) */
397
    for(var i=0,len=importantsfields.length; i<len; i++){
398
        isempty  = true;
399
        arr      = importantsfields[i];
400
        divid    = "tag_" + arr[0] + "_" + arr[1];
401
        varegexp = new RegExp("^tag_" + arr[0] + "_code_");
402
403
        if(parseInt(arr[0]) >= 10){
404
           elem = document.getElementById(divid);
405
           eleminputs = elem.getElementsByTagName('input');
406
           for(var j=0,len2=eleminputs.length; j<len2; j++){
407
408
              if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
409
                 inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
410
411
                   for( var k=0; k<len2; k++){
412
                        if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
413
                            isempty = false
414
                        }
415
                    }
416
417
                    elemselect = elem.getElementsByTagName('select');
418
                    for( var k=0; k<elemselect.length; k++){
419
                        if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
420
                           isempty = false
421
                        }
422
                    }
423
              }
424
           }
425
426
           elemtextareas = elem.getElementsByTagName('textarea');
427
           for(var j=0,len2=elemtextareas.length; j<len2; j++){
428
                // this bit assumes that the only textareas in this context would be for subfields
429
               if (elemtextareas[j].value) {
430
                   isempty = false;
431
               }
432
           }
433
       }else{
434
          isempty = false;
435
       }
436
437
       if(isempty){
438
          flag = 1;
439
          StrWarning += _("\t* Field ") + arr[0] + _(" is important, at least one of its subfields should be filled.") + "\n";
440
       }
441
    }
442
443
    StrWarning += "\n" + _("Are you sure you want to save?");
444
445
    if(flag){
446
        return StrWarning;
447
    } else {
448
        return flag;
449
    }
450
}
451
452
/**
339
 * check if z3950 mandatories are set or not
453
 * check if z3950 mandatories are set or not
340
 */
454
 */
341
function GetZ3950Terms(){
455
function GetZ3950Terms(){
Lines 606-611 function Changefwk(FwkList) { Link Here
606
                    [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
720
                    [% IF ( subfield_loo.mandatory ) %]<span class="subfield subfield_mandatory">[% ELSE %]<span class="subfield">[% END %]
607
                        [% subfield_loo.marc_lib_plain %]
721
                        [% subfield_loo.marc_lib_plain %]
608
                        [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
722
                        [% IF ( subfield_loo.mandatory ) %]<span class="mandatory_marker" title="This field is mandatory">*</span>[% END %]
723
                        [% IF ( subfield_loo.important ) %]<span style="color:black" title="This field is important">*</span>[% END %]
609
                    </span>
724
                    </span>
610
                    </label>
725
                    </label>
611
                [% END %]
726
                [% END %]
612
- 

Return to bug 8643