]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/javascript/backend/catalog/record_type.js
moving conifg/constant hashes into their own files
[Evergreen.git] / Open-ILS / src / javascript / backend / catalog / record_type.js
1 // Constants ...
2 load_lib('phys_char.js');
3 load_lib('fixed_fields.js');
4
5 function recordType (rec) {
6
7         var marcns = new Namespace("http://www.loc.gov/MARC21/slim");
8         var _l = rec.marcns::leader.toString();
9
10         var _t = _l.substr(ff_pos.Type.ldr.BKS.start, ff_pos.Type.ldr.BKS.len);
11         var _b = _l.substr(ff_pos.BLvl.ldr.BKS.start, ff_pos.BLvl.ldr.BKS.len);
12
13         for (var t in rec_type) {
14                 if (_t.match(rec_type[t].Type) && _b.match(rec_type[t].BLvl)) {
15                         return t;
16                 }
17         }
18 }
19
20 function videorecordingFormatName (rec) {
21         var marcns = new Namespace("http://www.loc.gov/MARC21/slim");
22         var _7 = rec.marcns::controlfield.(@tag.match(/007/)).text().toString();
23
24         if (_7.match(/^v/)) {
25                 var _v_e = _7.substr(
26                         physical_characteristics.v.subfields.e.start,
27                         physical_characteristics.v.subfields.e.len
28                 );
29
30                 return physical_characteristics.v.subfields.e.values[ _v_e ];
31         }
32
33         return null;
34 }
35
36 function videorecordingFormatCode (rec) {
37         var marcns = new Namespace("http://www.loc.gov/MARC21/slim");
38         var _7 = rec.marcns::controlfield.(@tag.match(/007/)).text().toString();
39
40         if (_7.match(/^v/)) {
41                 return _7.substr(
42                         physical_characteristics.v.subfields.e.start,
43                         physical_characteristics.v.subfields.e.len
44                 );
45         }
46
47         return null;
48 }
49
50
51 function extractFixedField (rec, field) {
52
53         var marcns = new Namespace("http://www.loc.gov/MARC21/slim");
54         var _l = rec.marcns::leader.toString();
55         var _8 = rec.marcns::controlfield.(@tag.match(/008/)).text().toString();
56         var _6 = rec.marcns::controlfield.(@tag.match(/006/)).text().toString();
57
58         var rtype = recordType(rec);
59
60         var val;
61
62         if (ff_pos[field].ldr) {
63                 if (ff_pos[field].ldr[rtype]) {
64                         val = _l.substr(
65                                 ff_pos[field].ldr[rtype].start,
66                                 ff_pos[field].ldr[rtype].len
67                         );
68                 }
69         } else if (ff_pos[field]._8) {
70                 if (ff_pos[field]._8[rtype]) {
71                         val = _8.substr(
72                                 ff_pos[field]._8[rtype].start,
73                                 ff_pos[field]._8[rtype].len
74                         );
75                 }
76         }
77
78         if (!val && ff_pos[field]._6) {
79                 if (ff_pos[field]._6[rtype]) {
80                         val = _6.substr(
81                                 ff_pos[field]._6[rtype].start,
82                                 ff_pos[field]._6[rtype].len
83                         );
84                 }
85         }
86                 
87         return val;
88 }
89