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

(-)a/C4/AuthoritiesMarc.pm (-2 / +2 lines)
Lines 478-484 sub GetTagsLabels { Link Here
478
        $res->{$tag}->{repeatable} = $repeatable;
478
        $res->{$tag}->{repeatable} = $repeatable;
479
  }
479
  }
480
  $sth=      $dbh->prepare(
480
  $sth=      $dbh->prepare(
481
"SELECT tagfield,tagsubfield,liblibrarian,libopac,tab, mandatory, repeatable,authorised_value,frameworkcode as authtypecode,value_builder,kohafield,seealso,hidden,isurl,defaultvalue, display_order
481
"SELECT tagfield,tagsubfield,liblibrarian,libopac,tab, mandatory, repeatable,authorised_value,value_builder,kohafield,seealso,hidden,isurl,defaultvalue, display_order
482
FROM auth_subfield_structure 
482
FROM auth_subfield_structure 
483
WHERE authtypecode=? 
483
WHERE authtypecode=? 
484
ORDER BY tagfield, display_order, tagsubfield"
484
ORDER BY tagfield, display_order, tagsubfield"
Lines 497-503 ORDER BY tagfield, display_order, tagsubfield" Link Here
497
497
498
    while (
498
    while (
499
        ( $tag,         $subfield,   $liblibrarian,   , $libopac,      $tab,
499
        ( $tag,         $subfield,   $liblibrarian,   , $libopac,      $tab,
500
        $mandatory,     $repeatable, $authorised_value, $authtypecode,
500
        $mandatory,     $repeatable, $authorised_value,
501
        $value_builder, $kohafield,  $seealso,          $hidden,
501
        $value_builder, $kohafield,  $seealso,          $hidden,
502
        $isurl,         $defaultvalue, $display_order )
502
        $isurl,         $defaultvalue, $display_order )
503
        = $sth->fetchrow
503
        = $sth->fetchrow
(-)a/authorities/merge.pl (-15 / +13 lines)
Lines 31-36 use Koha::MetadataRecord::Authority; Link Here
31
my $input  = CGI->new;
31
my $input  = CGI->new;
32
my @authid = $input->multi_param('authid');
32
my @authid = $input->multi_param('authid');
33
my $merge  = $input->param('merge');
33
my $merge  = $input->param('merge');
34
my $authtypecode = $input->param('authtypecode');
34
35
35
my @errors;
36
my @errors;
36
37
Lines 52-63 if ($merge) { Link Here
52
    my $record   = TransformHtmlToMarc($input, 0);
53
    my $record   = TransformHtmlToMarc($input, 0);
53
    my $recordid1   = $input->param('recordid1') // q{};
54
    my $recordid1   = $input->param('recordid1') // q{};
54
    my $recordid2   = $input->param('recordid2') // q{};
55
    my $recordid2   = $input->param('recordid2') // q{};
55
    my $typecode = $input->param('frameworkcode');
56
56
57
    # Some error checking
57
    # Some error checking
58
    if( $recordid1 eq $recordid2 ) {
58
    if( $recordid1 eq $recordid2 ) {
59
        push @errors, { code => 'DESTRUCTIVE_MERGE' };
59
        push @errors, { code => 'DESTRUCTIVE_MERGE' };
60
    } elsif( !$typecode || !Koha::Authority::Types->find($typecode) ) {
60
    } elsif( !$authtypecode || !Koha::Authority::Types->find($authtypecode) ) {
61
        push @errors, { code => 'WRONG_FRAMEWORK' };
61
        push @errors, { code => 'WRONG_FRAMEWORK' };
62
    } elsif( scalar $record->fields == 0 ) {
62
    } elsif( scalar $record->fields == 0 ) {
63
        push @errors, { code => 'EMPTY_MARC' };
63
        push @errors, { code => 'EMPTY_MARC' };
Lines 75-81 if ($merge) { Link Here
75
75
76
    # Modifying the reference record
76
    # Modifying the reference record
77
    # This triggers a merge for the biblios attached to $recordid1
77
    # This triggers a merge for the biblios attached to $recordid1
78
    ModAuthority( $recordid1, $record, $typecode );
78
    ModAuthority( $recordid1, $record, $authtypecode );
79
79
80
    # Now merge for biblios attached to $recordid2
80
    # Now merge for biblios attached to $recordid2
81
    my $MARCfrom = GetAuthority( $recordid2 );
81
    my $MARCfrom = GetAuthority( $recordid2 );
Lines 129-147 else { Link Here
129
129
130
        if ($mergereference ) {
130
        if ($mergereference ) {
131
131
132
            my $framework;
133
            if ( $recordObj1->authtypecode ne $recordObj2->authtypecode && $mergereference ne 'breeding' ) {
132
            if ( $recordObj1->authtypecode ne $recordObj2->authtypecode && $mergereference ne 'breeding' ) {
134
                $framework = $input->param('frameworkcode');
135
            }
133
            }
136
            else {
134
            else { # overwrite authtypecode parameter
137
                $framework = $recordObj1->authtypecode;
135
                $authtypecode = $recordObj1->authtypecode;
138
            }
136
            }
139
            if ($mergereference eq 'breeding') {
137
            if ($mergereference eq 'breeding') {
140
                $mergereference = $authid[0];
138
                $mergereference = $authid[0];
141
            }
139
            }
142
140
143
            # Getting MARC Structure
141
            # Getting MARC Structure
144
            my $tagslib = GetTagsLabels( 1, $framework );
142
            my $tagslib = GetTagsLabels( 1, $authtypecode );
145
            foreach my $field ( keys %$tagslib ) {
143
            foreach my $field ( keys %$tagslib ) {
146
                if ( defined $tagslib->{$field}->{'tab'} && $tagslib->{$field}->{'tab'} eq ' ' ) {
144
                if ( defined $tagslib->{$field}->{'tab'} && $tagslib->{$field}->{'tab'} eq ' ' ) {
147
                    $tagslib->{$field}->{'tab'} = 0;
145
                    $tagslib->{$field}->{'tab'} = 0;
Lines 162-175 else { Link Here
162
                {
160
                {
163
                    recordid => $mergereference,
161
                    recordid => $mergereference,
164
                    record => $recordObj1->record,
162
                    record => $recordObj1->record,
165
                    frameworkcode => $recordObj1->authtypecode,
163
                    authtypecode => $recordObj1->authtypecode,
166
                    display => $recordObj1->createMergeHash($tagslib),
164
                    display => $recordObj1->createMergeHash($tagslib),
167
                    reference => 1,
165
                    reference => 1,
168
                },
166
                },
169
                {
167
                {
170
                    recordid => $notreference,
168
                    recordid => $notreference,
171
                    record => $recordObj2->record,
169
                    record => $recordObj2->record,
172
                    frameworkcode => $recordObj2->authtypecode,
170
                    authtypecode => $recordObj2->authtypecode,
173
                    display => $recordObj2->createMergeHash($tagslib),
171
                    display => $recordObj2->createMergeHash($tagslib),
174
                },
172
                },
175
            );
173
            );
Lines 178-185 else { Link Here
178
            $template->param(
176
            $template->param(
179
                recordid1        => $mergereference,
177
                recordid1        => $mergereference,
180
                recordid2        => $notreference,
178
                recordid2        => $notreference,
181
                records        => \@records,
179
                records          => \@records,
182
                framework      => $framework,
180
                authtypecode     => $authtypecode,
183
            );
181
            );
184
        }
182
        }
185
        else {
183
        else {
Lines 195-203 else { Link Here
195
            if ( $recordObj1->authtypecode ne $recordObj2->authtypecode ) {
193
            if ( $recordObj1->authtypecode ne $recordObj2->authtypecode ) {
196
                my $authority_types = Koha::Authority::Types->search( { authtypecode => { '!=' => '' } }, { order_by => ['authtypetext'] } );
194
                my $authority_types = Koha::Authority::Types->search( { authtypecode => { '!=' => '' } }, { order_by => ['authtypetext'] } );
197
                $template->param(
195
                $template->param(
198
                    frameworkselect => $authority_types->unblessed,
196
                    authority_types => $authority_types->unblessed,
199
                    frameworkcode1  => $recordObj1->authtypecode,
197
                    authtypecode1  => $recordObj1->authtypecode,
200
                    frameworkcode2  => $recordObj2->authtypecode,
198
                    authtypecode2  => $recordObj2->authtypecode,
201
                );
199
                );
202
            }
200
            }
203
        }
201
        }
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt (-14 / +13 lines)
Lines 70-88 div#result { margin-top: 1em; } Link Here
70
    <fieldset class="rows">
70
    <fieldset class="rows">
71
    <legend>Merge reference</legend>
71
    <legend>Merge reference</legend>
72
    <ol>
72
    <ol>
73
    <li class="radio"><input type="radio" value="[% recordid1 | uri %]" checked="checked" id="mergereference1" name="mergereference" onclick="changeFramework('[% frameworkcode1 | html %]')" /><label for="mergereference1">[% title1 | html %] [% FOREACH subtitl1 IN subtitle1 %] [% subtitl1 | html %][% END %] (<a href="/cgi-bin/koha/authorities/detail.pl?authid=[% recordid1 | uri %]" title="MARC" class="preview-merge-reference" target="_blank">[% recordid1 | html %][% IF frameworklabel1 %] &mdash; [% frameworklabel1 | html %][% END %]</a>)</label></li>
73
    <li class="radio"><input type="radio" value="[% recordid1 | uri %]" checked="checked" id="mergereference1" name="mergereference" onclick="changeFramework('[% authtypecode1 | html %]')" /><label for="mergereference1">[% title1 | html %] [% FOREACH subtitl1 IN subtitle1 %] [% subtitl1 | html %][% END %] (<a href="/cgi-bin/koha/authorities/detail.pl?authid=[% recordid1 | uri %]" title="MARC" class="preview-merge-reference" target="_blank">[% recordid1 | html %]</a>)</label></li>
74
    <li class="radio"><input type="radio" value="[% recordid2 | uri %]" id="mergereference2" name="mergereference" onclick="changeFramework('[% frameworkcode2 | html %]')" /><label for="mergereference2">[% title2 | html %] [% FOREACH subtitl2 IN subtitle2 %] [% subtitl2 | html %][% END %] (<a href="/cgi-bin/koha/authorities/detail.pl?authid=[% recordid2 | uri %]" title="MARC" class="preview-merge-reference" target="_blank">[% recordid2 | html %][% IF frameworklabel2 %] &mdash; [% frameworklabel2 | html %][% END %]</a>)</label></li>
74
    <li class="radio"><input type="radio" value="[% recordid2 | uri %]" id="mergereference2" name="mergereference" onclick="changeFramework('[% authtypecode2 | html %]')" /><label for="mergereference2">[% title2 | html %] [% FOREACH subtitl2 IN subtitle2 %] [% subtitl2 | html %][% END %] (<a href="/cgi-bin/koha/authorities/detail.pl?authid=[% recordid2 | uri %]" title="MARC" class="preview-merge-reference" target="_blank">[% recordid2 | html %]</a>)</label></li>
75
75
76
    [% IF frameworkselect %]
76
    [% IF authority_types %]
77
          <li><label for="frameworkcode">Using framework:</label>
77
          <li><label for="authtypecode">Using framework:</label>
78
                      <select name="frameworkcode" id="frameworkcode">
78
                      <select name="authtypecode" id="authtypecode">
79
                                      [% FOREACH frameworkcodeloo IN frameworkselect %]
79
                                      [% FOREACH authtypecodeloo IN authority_types %]
80
                                          [% IF frameworkcodeloo.authtypecode == frameworkcode1 %]
80
                                          [% IF authtypecodeloo.authtypecode == authtypecode1 %]
81
                                              <option value="[% frameworkcodeloo.authtypecode | html %]" selected="selected">
81
                                              <option value="[% authtypecodeloo.authtypecode | html %]" selected="selected">
82
                                          [% ELSE %]
82
                                          [% ELSE %]
83
                                              <option value="[% frameworkcodeloo.authtypecode | html %]">
83
                                              <option value="[% authtypecodeloo.authtypecode | html %]">
84
                                          [% END %]
84
                                          [% END %]
85
                                           [% frameworkcodeloo.authtypetext | html %]
85
                                           [% authtypecodeloo.authtypetext | html %]
86
                                           </option>
86
                                           </option>
87
                                      [% END %]
87
                                      [% END %]
88
                      </select></li>
88
                      </select></li>
Lines 111-117 div#result { margin-top: 1em; } Link Here
111
<input type="hidden" name="recordid1" value="[% recordid1 | html %]" />
111
<input type="hidden" name="recordid1" value="[% recordid1 | html %]" />
112
<input type="hidden" name="recordid2" value="[% recordid2 | html %]" />
112
<input type="hidden" name="recordid2" value="[% recordid2 | html %]" />
113
<input type="hidden" name="mergereference" value="[% mergereference | html %]" />
113
<input type="hidden" name="mergereference" value="[% mergereference | html %]" />
114
<input type="hidden" name="frameworkcode" value="[% framework | html %]" />
114
<input type="hidden" name="authtypecode" value="[% authtypecode | html %]" />
115
115
116
<fieldset class="action"><input type="submit" name="merge" value="Merge" /></fieldset>
116
<fieldset class="action"><input type="submit" name="merge" value="Merge" /></fieldset>
117
</form>
117
</form>
Lines 135-141 div#result { margin-top: 1em; } Link Here
135
    $(document).ready(function(){
135
    $(document).ready(function(){
136
        // Getting marc structure via ajax
136
        // Getting marc structure via ajax
137
        tagslib = [];
137
        tagslib = [];
138
        $.getJSON("/cgi-bin/koha/authorities/merge_ajax.pl", {frameworkcode : "[% framework | html %]" }, function(json) {
138
        $.getJSON("/cgi-bin/koha/authorities/merge_ajax.pl", {authtypecode : "[% authtypecode | html %]" }, function(json) {
139
            tagslib = json;
139
            tagslib = json;
140
            rebuild_target($("#tabs"), $("#resultul"));
140
            rebuild_target($("#tabs"), $("#resultul"));
141
        });
141
        });
142
- 

Return to bug 2222