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

(-)a/Koha/MetadataRecord.pm (+14 lines)
Lines 117-122 sub createMergeHash { Link Here
117
    }
117
    }
118
}
118
}
119
119
120
=head2 createMergeHashAuth
121
122
Create a hash for use when merging authority records. At the moment the only
123
metadata schema supported is MARC.
124
125
=cut
126
127
sub createMergeHashAuth {
128
    my ($self, $tagslib) = @_;
129
    if ($self->schema =~ m/marc/) {
130
        return Koha::Util::MARC::createMergeHashAuth($self->record, $tagslib);
131
    }
132
}
133
120
sub getKohaField {
134
sub getKohaField {
121
    my ($self, $kohafield) = @_;
135
    my ($self, $kohafield) = @_;
122
136
(-)a/Koha/Util/MARC.pm (+82 lines)
Lines 26-31 Koha::Util::MARC - utility class with routines for working with MARC records Link Here
26
26
27
=head1 METHODS
27
=head1 METHODS
28
28
29
=head2 createMergeHashAuth
30
31
Create a hash to use when merging authority records
32
33
=cut
34
35
sub createMergeHashAuth {
36
    my ( $record, $tagslib ) = @_;
37
38
    return unless $record;
39
40
    my @array;
41
    my @fields = $record->fields();
42
43
    foreach my $field (@fields) {
44
        my $fieldtag = $field->tag();
45
        if ( $fieldtag < 10 ) {
46
            if ( !defined($tagslib)
47
                || $tagslib->{$fieldtag}->{'@'}->{'tab'} >= 0 )
48
            {
49
                push @array,
50
                  {
51
                    field => [
52
                        {
53
                            tag   => $fieldtag,
54
                            key   => _createKey(),
55
                            value => $field->data(),
56
                        }
57
                    ]
58
                  };
59
            }
60
        }
61
        else {
62
            my @subfields = $field->subfields();
63
            my @subfield_array;
64
            foreach my $subfield (@subfields) {
65
                if (
66
                    !defined($tagslib)
67
                    || (   defined $tagslib->{$fieldtag}
68
                        && defined $tagslib->{$fieldtag}->{ @$subfield[0] }
69
                        && defined $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'}
70
                        && $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'} >= 0 )
71
                  )
72
                {
73
                    push @subfield_array,
74
                      {
75
                        subtag => @$subfield[0],
76
                        subkey => _createKey(),
77
                        value  => @$subfield[1],
78
                      };
79
                }
80
81
            }
82
83
            if (
84
                (
85
                    !defined($tagslib) || ( defined $tagslib->{$fieldtag}
86
                        && defined $tagslib->{$fieldtag}->{'tab'}
87
                        && $tagslib->{$fieldtag}->{'tab'} >= 0 )
88
                )
89
                && @subfield_array
90
              )
91
            {
92
                push @array,
93
                  {
94
                    field => [
95
                        {
96
                            tag        => $fieldtag,
97
                            key        => _createKey(),
98
                            indicator1 => $field->indicator(1),
99
                            indicator2 => $field->indicator(2),
100
                            subfield   => [@subfield_array],
101
                        }
102
                    ]
103
                  };
104
            }
105
106
        }
107
    }
108
    return [@array];
109
}
110
29
=head2 createMergeHash
111
=head2 createMergeHash
30
112
31
Create a hash to use when merging MARC records
113
Create a hash to use when merging MARC records
(-)a/authorities/merge.pl (-2 / +2 lines)
Lines 133-140 else { Link Here
133
133
134
            # Creating a loop for display
134
            # Creating a loop for display
135
135
136
            my @record1 = $recordObj1->createMergeHash($tagslib);
136
            my @record1 = $recordObj1->createMergeHashAuth($tagslib);
137
            my @record2 = $recordObj2->createMergeHash($tagslib);
137
            my @record2 = $recordObj2->createMergeHashAuth($tagslib);
138
138
139
            # Parameters
139
            # Parameters
140
            $template->param(
140
            $template->param(
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/merge-auth.inc (+91 lines)
Line 0 Link Here
1
[% BLOCK sourcetab %]
2
    <div id="tabrecord[% recordnumber %]">
3
    [% IF ( records ) %]
4
5
        <div class="record">
6
        <ul id="ulrecord[% recordnumber %]">
7
        [% FOREACH record IN records %]
8
            [% FOREACH field IN record.field %]
9
            <li id="k[% field.key %]">
10
                [% IF (defaultrecord) %]
11
                    <input type="checkbox" checked="checked" class="fieldpick" id="rec_[% recordnumber %]_[% field.key %]" />
12
                [% ELSE %]
13
                    <input type="checkbox" class="fieldpick" id="rec_[% recordnumber %]_[% field.key %]" />
14
                [% END %]
15
                <span class="field">[% field.tag %]</span>
16
17
                <input type="hidden" name="tag_[% field.tag %]_indicator1_[% field.key %]" value="[% field.indicator1 %]" />
18
                <input type="hidden" name="tag_[% field.tag %]_indicator2_[% field.key %]" value="[% field.indicator2 %]" />
19
                [% IF ( field.value ) %] / [% field.value %]
20
                <input type="hidden" name="tag_[% field.tag %]_code_00_[% field.key %]" value="00" />
21
                <input type="hidden" name="tag_[% field.tag %]_subfield_00_[% field.key %]" value="[% field.value %]" />
22
                [% END %]
23
24
                [% IF ( field.subfield ) %]
25
                <ul>
26
                    [% FOREACH subfiel IN field.subfield %]
27
                    <li id="k[% subfiel.subkey %]">
28
                        [% IF (defaultrecord) %]
29
                            <input type="checkbox" checked="checked" class="subfieldpick" id="rec_[% recordnumber %]_[% subfiel.subkey %]" />
30
                        [% ELSE %]
31
                            <input type="checkbox" class="subfieldpick" id="rec_[% recordnumber %]_[% subfiel.subkey %]" />
32
                        [% END %]
33
                        <span class="subfield">[% subfiel.subtag %]</span> / [% subfiel.value %]
34
                    <input type="hidden" name="tag_[% subfiel.tag %]_code_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.subtag %]" />
35
                    <input type="hidden" name="tag_[% subfiel.tag %]_subfield_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.value |html%]" />
36
                    </li>
37
                    [% END %]
38
                </ul>
39
                [% END %]
40
            [% END %]
41
            </li>
42
        [% END %]
43
        </ul>
44
        </div><!-- /div.record -->
45
    [% END %]
46
    </div><!-- /div#tabrecord[% recordnumber %] -->
47
[% END %]
48
[% BLOCK mergesource %]
49
<div id="tabs" class="toptabs">
50
<h2>Source records</h2>
51
    <ul>
52
    <li><a href="#tabrecord1">[% recordid1 %]</a></li>
53
    <li><a href="#tabrecord2">[% recordid2 %]</a></li>
54
    </ul>
55
    [% PROCESS sourcetab records=record1 recordnumber=1 defaultrecord=1 %]
56
    [% PROCESS sourcetab records=record2 recordnumber=2 defaultrecord=0 %]
57
</div> <!-- // #tabs -->
58
[% END %]
59
[% BLOCK mergetarget %]
60
<div id="result">
61
    <h2>Destination record</h2>
62
    <div style="border:1px solid #E8E8E8;padding:1em;margin-top:2em;">
63
        <ul id="resultul">
64
        [% FOREACH record IN record1 %]
65
            [% FOREACH field IN record.field %]<li id="k[% field.key %]">
66
                <span class="field">[% field.tag %]</span>
67
                <input type="hidden" name="tag_[% field.tag %]_indicator1_[% field.key %]" value="[% field.indicator1 %]" />
68
                <input type="hidden" name="tag_[% field.tag %]_indicator2_[% field.key %]" value="[% field.indicator2 %]" />
69
                [% IF ( field.value ) %] /
70
                    [% field.value %]
71
                    <input type="hidden" name="tag_[% field.tag %]_code_00_[% field.key %]" value="00" />
72
                    <input type="hidden" name="tag_[% field.tag %]_subfield_00_[% field.key %]" value="[% field.value |html%]" />
73
                [% END %]
74
75
                [% IF ( field.subfield ) %]
76
                    <ul>
77
                        [% FOREACH subfiel IN field.subfield %]
78
                            <li id="k[% subfiel.subkey %]">
79
                                <span class="subfield">[% subfiel.subtag %]</span> / [% subfiel.value %]
80
                                <input type="hidden" name="tag_[% subfiel.tag %]_code_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.subtag %]" />
81
                                <input type="hidden" name="tag_[% subfiel.tag %]_subfield_[% subfiel.subtag %]_[% subfiel.key %]_[% subfiel.subkey %]" value="[% subfiel.value |html%]" />
82
                            </li>
83
                        [% END %]
84
                    </ul>
85
                [% END %]
86
            </li>[% END %]
87
        [% END %]
88
        </ul>
89
    </div>
90
</div> <!-- // #result -->
91
[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt (-2 / +1 lines)
Lines 1-4 Link Here
1
[% PROCESS 'merge-record.inc' %]
1
[% PROCESS 'merge-auth.inc' %]
2
[% INCLUDE 'doc-head-open.inc' %]
2
[% INCLUDE 'doc-head-open.inc' %]
3
<title>Koha &rsaquo; Cataloging &rsaquo; Merging records</title>
3
<title>Koha &rsaquo; Cataloging &rsaquo; Merging records</title>
4
[% INCLUDE 'greybox.inc' %]
4
[% INCLUDE 'greybox.inc' %]
5
- 

Return to bug 15358