blob: 33d54615623bd6acc4e0f907ee86caaed5a89013 [file] [log] [blame]
Akrond4b000b2018-01-28 18:33:14 +01001define(['util'], function () {
2
3 /*
Akron30ee5142015-06-26 01:50:14 +02004 author, editor title, subTitle textSigle
5 in corpusAuthor (corpusEditor), corpusTitle, corpusSubTitle, corpusSigle
6 in docAuthor (docEditor), docTitle, docSubTitle, docSigle
7 publisher
8 reference
9 creationDate
10 foundries
11 keywords
12 textClass
13 textColumn
14 textDomain
15 textType
16 textTypeArt
17 textTypeRef
18 language
19 license
20 pages
21 pubDate
22 layerInfo
23 tokenSource
24 biblEditionStatement
25 fileEditionStatement
26*/
Akronbd342982018-01-25 18:01:46 +010027
28 // Localization values
Akron0b489ad2018-02-02 16:49:32 +010029 const loc = KorAP.Locale;
Akronbd342982018-01-25 18:01:46 +010030 loc.METADATA = loc.METADATA || 'Metadata';
31
Akron24866cf2018-01-23 20:22:01 +010032 return {
33
34 /**
35 * Create new match object
36 */
37 create : function (match) {
38 return Object.create(this)._init(match);
39 },
40
41 /**
42 * Initialize object
43 */
44 _init : function (match) {
45 this._match = match;
46 this.opened = false;
47 return this;
48 },
49
50 /**
51 * Get match object
52 */
53 match : function () {
54 return this._match;
55 },
56
57 /**
58 * Create match reference view.
59 */
60 element : function (metaInfo) {
61 if (this._element !== undefined)
62 return this._element;
63
Akronbd342982018-01-25 18:01:46 +010064 var metaTable = document.createElement('div');
Akron24866cf2018-01-23 20:22:01 +010065 metaTable.classList.add('metatable');
66
Akron8b592d42018-01-26 18:33:06 +010067 /*
Akronbd342982018-01-25 18:01:46 +010068 var header = metaTable.appendChild(
69 document.createElement('h6')
70 );
71
72 header.appendChild(
73 document.createElement('div')
74 ).appendChild(
75 document.createTextNode(loc.METADATA)
76 );
Akron8b592d42018-01-26 18:33:06 +010077 */
Akronbd342982018-01-25 18:01:46 +010078
Akron0b489ad2018-02-02 16:49:32 +010079 var metaDL = metaTable.addE('dl');
Akronbd342982018-01-25 18:01:46 +010080
Akron24866cf2018-01-23 20:22:01 +010081 this._element = metaTable;
82
83 // TODO: Meta fields should be separated
84 var keys = Object.keys(metaInfo);
85 for (var i in keys.sort()) {
86 var k = keys[i];
87 if (k !== "UID" &&
88 k !== "corpusID" &&
89 k !== "docID" &&
90 k !== "textID" &&
Akron8b592d42018-01-26 18:33:06 +010091 /*
Akron24866cf2018-01-23 20:22:01 +010092 k !== "corpusSigle" &&
93 k !== "docSigle" &&
Akron8b592d42018-01-26 18:33:06 +010094 */
Akron24866cf2018-01-23 20:22:01 +010095 k !== "layerInfos") {
96
97 var metaL = document.createElement('div');
Akron0b489ad2018-02-02 16:49:32 +010098 metaL.addE('dt').addT(k);
99 metaL.addE('dd').addT(metaInfo[k]);
Akron24866cf2018-01-23 20:22:01 +0100100
Akronbd342982018-01-25 18:01:46 +0100101 metaDL.appendChild(metaL);
Akron24866cf2018-01-23 20:22:01 +0100102 };
103 };
104
105 return this._element;
106 }
107 };
Akron30ee5142015-06-26 01:50:14 +0200108});