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

(-)a/cataloguing/additem.pl (-10 / +38 lines)
Lines 41-46 use MARC::File::XML; Link Here
41
use URI::Escape;
41
use URI::Escape;
42
42
43
our $dbh = C4::Context->dbh;
43
our $dbh = C4::Context->dbh;
44
our $building_plugin={};
45
    #hashref { record => .., subfieldid => .., }
46
    #used in building the new cataloging plugins (without redefinitions)
47
    #plugin script should add function and javascript to hash
44
48
45
sub find_value {
49
sub find_value {
46
    my ($tagfield,$insubfield,$record) = @_;
50
    my ($tagfield,$insubfield,$record) = @_;
Lines 241-259 sub generate_subfield_form { Link Here
241
        elsif ( $subfieldlib->{value_builder} ) {
245
        elsif ( $subfieldlib->{value_builder} ) {
242
                # opening plugin
246
                # opening plugin
243
                my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $subfieldlib->{'value_builder'};
247
                my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $subfieldlib->{'value_builder'};
244
                if (do $plugin) {
248
                my ( $function_name, $javascript ) = _new_plugin_builder( $plugin, $temp, $subfield_data{id} ); #no tabno passed for items
245
                    my $extended_param = plugin_parameters( $dbh, $temp, $tagslib, $subfield_data{id}, $loop_data );
249
                if( $function_name ) {
246
                    my ( $function_name, $javascript ) = plugin_javascript( $dbh, $temp, $tagslib, $subfield_data{id}, $loop_data );
250
                    my $change = index($javascript, 'function Change') > -1 ?
247
		    my $change = index($javascript, 'function Change') > -1 ?
251
                        "return Change$function_name($subfield_data{random}, '$subfield_data{id}');" :
248
		        "return Change$function_name($subfield_data{random}, '$subfield_data{id}');" :
252
                        'return 1;';
249
		        'return 1;';
250
                    $subfield_data{marc_value} = qq[<input type="text" $attributes
253
                    $subfield_data{marc_value} = qq[<input type="text" $attributes
251
                        onfocus="Focus$function_name($subfield_data{random}, '$subfield_data{id}');"
254
                        onfocus="Focus$function_name($subfield_data{random}, '$subfield_data{id}');"
252
			onchange=" $change"
255
                        onchange=" $change"
253
                         onblur=" Blur$function_name($subfield_data{random}, '$subfield_data{id}');" />
256
                        onblur=" Blur$function_name($subfield_data{random}, '$subfield_data{id}');" />
254
                        <a href="#" class="buttonDot" onclick="Clic$function_name('$subfield_data{id}'); return false;" title="Tag Editor">...</a>
257
                        <a href="#" class="buttonDot" onclick="Clic$function_name('$subfield_data{id}'); return false;" title="Tag Editor">...</a>
255
                        $javascript];
258
                        $javascript];
256
                } else {
259
                }
260
                else {
257
                    warn "Plugin Failed: $plugin";
261
                    warn "Plugin Failed: $plugin";
258
                    $subfield_data{marc_value} = "<input type=\"text\" $attributes />"; # supply default input form
262
                    $subfield_data{marc_value} = "<input type=\"text\" $attributes />"; # supply default input form
259
                }
263
                }
Lines 280-285 sub generate_subfield_form { Link Here
280
        return \%subfield_data;
284
        return \%subfield_data;
281
}
285
}
282
286
287
sub _new_plugin_builder {
288
    my ($plugin, $record, $subfieldid) = @_;
289
290
    $building_plugin = {
291
        record     => $record,
292
        subfieldid => $subfieldid,
293
    };
294
    do $plugin || return;
295
296
    #first, try the new way without redefines using building_plugin hash
297
    if( defined $building_plugin->{function} &&
298
            defined $building_plugin->{javascript} ) {
299
        return ($building_plugin->{function},
300
            $building_plugin->{javascript} );
301
    }
302
303
    #arriving here, we try the old way with redefines: we are PHASING this OUT
304
    #next call is of no use, commented
305
    #my $extended_param = plugin_parameters( $dbh, $rec, $tagslib, $subfield_data{id}, $tabloop );
306
    my ( $function_name, $javascript ) = plugin_javascript( undef, $record, undef, $subfieldid ); #no tabno passed for items, same for tagslib
307
        #first param was dbh, not needed: use C4::Context->dbh in plugin
308
    return ( $function_name, $javascript );
309
        #caller tests if function_name is defined
310
}
311
283
# Removes some subfields when prefilling items
312
# Removes some subfields when prefilling items
284
# This function will remove any subfield that is not in the SubfieldsToUseWhenPrefill syspref
313
# This function will remove any subfield that is not in the SubfieldsToUseWhenPrefill syspref
285
sub removeFieldsForPrefill {
314
sub removeFieldsForPrefill {
286
- 

Return to bug 10480