Lines 21-26
define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
Link Here
|
21 |
var _authorised_values = defaultFramework.authorised_values; |
21 |
var _authorised_values = defaultFramework.authorised_values; |
22 |
var _frameworks = {}; |
22 |
var _frameworks = {}; |
23 |
var _framework_mappings = {}; |
23 |
var _framework_mappings = {}; |
|
|
24 |
var _framework_kohafields = {}; |
24 |
|
25 |
|
25 |
function _fromXMLStruct( data ) { |
26 |
function _fromXMLStruct( data ) { |
26 |
result = {}; |
27 |
result = {}; |
Lines 48-61
define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
Link Here
|
48 |
|
49 |
|
49 |
$.each( taginfo.subfields, function( i, subfield ) { |
50 |
$.each( taginfo.subfields, function( i, subfield ) { |
50 |
subfields[ subfield[0] ] = subfield[1]; |
51 |
subfields[ subfield[0] ] = subfield[1]; |
|
|
52 |
if ( frameworkcode == '' && subfield[1].kohafield ) { |
53 |
_framework_kohafields[ subfield[1].kohafield ] = [ tagnum, subfield[0] ]; |
54 |
} |
51 |
} ); |
55 |
} ); |
52 |
|
56 |
|
53 |
_framework_mappings[frameworkcode][tagnum] = $.extend( {}, taginfo, { subfields: subfields } ); |
57 |
_framework_mappings[frameworkcode][tagnum] = $.extend( {}, taginfo, { subfields: subfields } ); |
54 |
} ); |
58 |
} ); |
|
|
59 |
|
60 |
console.dir( _framework_kohafields ); |
55 |
} |
61 |
} |
56 |
|
62 |
|
57 |
_importFramework( '', defaultFramework.framework ); |
63 |
_importFramework( '', defaultFramework.framework ); |
58 |
|
64 |
|
|
|
65 |
function _removeBiblionumberFields( record ) { |
66 |
var bibnumTag = KohaBackend.GetSubfieldForKohaField('biblio.biblionumber')[0]; |
67 |
|
68 |
while ( record.removeField(bibnumTag) ); |
69 |
} |
70 |
|
59 |
var KohaBackend = { |
71 |
var KohaBackend = { |
60 |
NOT_EMPTY: {}, // Sentinel value |
72 |
NOT_EMPTY: {}, // Sentinel value |
61 |
|
73 |
|
Lines 72-77
define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
Link Here
|
72 |
return _framework_mappings[frameworkcode][tagnumber]; |
84 |
return _framework_mappings[frameworkcode][tagnumber]; |
73 |
}, |
85 |
}, |
74 |
|
86 |
|
|
|
87 |
GetSubfieldForKohaField: function( kohafield ) { |
88 |
return _framework_kohafields[kohafield]; |
89 |
}, |
90 |
|
75 |
GetRecord: function( id, callback ) { |
91 |
GetRecord: function( id, callback ) { |
76 |
$.get( |
92 |
$.get( |
77 |
'/cgi-bin/koha/svc/bib/' + id |
93 |
'/cgi-bin/koha/svc/bib/' + id |
Lines 85-90
define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
Link Here
|
85 |
}, |
101 |
}, |
86 |
|
102 |
|
87 |
CreateRecord: function( record, callback ) { |
103 |
CreateRecord: function( record, callback ) { |
|
|
104 |
record = record.clone(); |
105 |
_removeBiblionumberFields( record ); |
106 |
|
88 |
$.ajax( { |
107 |
$.ajax( { |
89 |
type: 'POST', |
108 |
type: 'POST', |
90 |
url: '/cgi-bin/koha/svc/new_bib', |
109 |
url: '/cgi-bin/koha/svc/new_bib', |
Lines 98-103
define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
Link Here
|
98 |
}, |
117 |
}, |
99 |
|
118 |
|
100 |
SaveRecord: function( id, record, callback ) { |
119 |
SaveRecord: function( id, record, callback ) { |
|
|
120 |
record = record.clone(); |
121 |
_removeBiblionumberFields( record ); |
122 |
|
101 |
$.ajax( { |
123 |
$.ajax( { |
102 |
type: 'POST', |
124 |
type: 'POST', |
103 |
url: '/cgi-bin/koha/svc/bib/' + id, |
125 |
url: '/cgi-bin/koha/svc/bib/' + id, |
Lines 186-193
define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
Link Here
|
186 |
} ); |
208 |
} ); |
187 |
|
209 |
|
188 |
var seenTags = {}; |
210 |
var seenTags = {}; |
|
|
211 |
var itemTag = KohaBackend.GetSubfieldForKohaField('items.itemnumber')[0]; |
189 |
|
212 |
|
190 |
$.each( record.fields(), function( undef, field ) { |
213 |
$.each( record.fields(), function( undef, field ) { |
|
|
214 |
if ( field.tagnumber() == itemTag ) { |
215 |
errors.push( { type: 'itemTagUnsupported', line: field.sourceLine } ); |
216 |
return; |
217 |
} |
218 |
|
191 |
if ( seenTags[ field.tagnumber() ] && nonRepeatableTags[ field.tagnumber() ] ) { |
219 |
if ( seenTags[ field.tagnumber() ] && nonRepeatableTags[ field.tagnumber() ] ) { |
192 |
errors.push( { type: 'unrepeatableTag', line: field.sourceLine, tag: field.tagnumber() } ); |
220 |
errors.push( { type: 'unrepeatableTag', line: field.sourceLine, tag: field.tagnumber() } ); |
193 |
return; |
221 |
return; |