Skip to content
This repository was archived by the owner on May 7, 2025. It is now read-only.

Commit c2f8613

Browse files
committed
revert 04b2c1c
#285 library book detail in Internet Explorer (XPath lib)
1 parent 2bf10d2 commit c2f8613

File tree

1 file changed

+46
-74
lines changed

1 file changed

+46
-74
lines changed

src/js/PackageParser.js

+46-74
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,54 @@
1-
define(['jquery', 'jxpath'], function($, JXPath){
2-
var resolver = function( prefix ) {
1+
define(['jath'], function(Jath){
2+
Jath.resolver = function( prefix ) {
33
var mappings = {
44
def: "http://www.idpf.org/2007/opf",
55
dc: "http://purl.org/dc/elements/1.1/"
66
};
77
return mappings[ prefix ];
8-
};
8+
}
99

10-
PackageParser = {
11-
parsePackageDom : function(data){
12-
13-
var jsonObj = {
10+
var jathTemplate = {
1411

15-
metadata: {
16-
id: $.xpath(data, "//def:metadata/dc:identifier", resolver).text(),
17-
epub_version: $.xpath(data, "//def:package/@version", resolver).val(),
18-
title: $.xpath(data, "//def:metadata/dc:title", resolver).text(),
19-
author: $.xpath(data, "//def:metadata/dc:creator", resolver).text(),
20-
publisher: $.xpath(data, "//def:metadata/dc:publisher", resolver).text(),
21-
description: $.xpath(data, "//def:metadata/dc:description", resolver).text(),
22-
rights: $.xpath(data, "//def:metadata/dc:rights", resolver).text(),
23-
language: $.xpath(data, "//def:metadata/dc:language", resolver).text(),
24-
pubdate: $.xpath(data, "//def:metadata/dc:date", resolver).text(),
25-
modified_date: $.xpath(data, "//def:metadata/def:meta[@property='dcterms:modified']", resolver).text(),
26-
layout: $.xpath(data, "//def:metadata/def:meta[@property='rendition:layout']", resolver).text(),
27-
spread: $.xpath(data, "//def:metadata/def:meta[@property='rendition:spread']", resolver).text(),
28-
orientation: $.xpath(data, "//def:metadata/def:meta[@property='rendition:orientation']", resolver).text(),
29-
ncx: $.xpath(data, "//def:spine/@toc", resolver).val(),
30-
page_prog_dir: $.xpath(data, "//def:spine/@page-progression-direction", resolver).val(),
31-
active_class: $.xpath(data, "//def:metadata/def:meta[@property='media:active-class']", resolver).text()
32-
}
33-
/* UNUSED
34-
manifest:
35-
(function() {
36-
var array = [];
37-
$.xpath(data, "//def:item", resolver).each(function(item) {
38-
array.push({
39-
id: $.xpath(item, "@id", resolver).val(),
40-
href: $.xpath(item, "@href", resolver).val(),
41-
media_type: $.xpath(item, "@media-type", resolver).val(),
42-
properties: $.xpath(item, "@properties", resolver).val(),
43-
media_overlay: $.xpath(item, "@media-overlay", resolver).val()
44-
});
45-
});
46-
return array;
47-
})(),
48-
49-
spine:
50-
(function() {
51-
var array = [];
52-
$.xpath(data, "//def:itemref", resolver).each(function(item) {
53-
array.push({
54-
idref: $.xpath(item, "@idref", resolver).val(),
55-
properties: $.xpath(item, "@properties", resolver).val(),
56-
linear: $.xpath(item, "@linear", resolver).val()
57-
});
58-
});
59-
return array;
60-
})(),
61-
62-
bindings:
63-
(function() {
64-
var array = [];
65-
$.xpath(data, "//def:bindings/def:mediaType", resolver).each(function(item) {
66-
array.push({
67-
handler: $.xpath(item, "@handler", resolver).val(),
68-
media_type: $.xpath(item, "@media-type", resolver).val()
69-
});
70-
});
71-
return array;
72-
})()
73-
*/
74-
};
75-
76-
jsonObj = jsonObj.metadata;
12+
metadata: {
13+
id: "//def:metadata/dc:identifier",
14+
epub_version: "//def:package/@version",
15+
title: "//def:metadata/dc:title",
16+
author: "//def:metadata/dc:creator",
17+
publisher: "//def:metadata/dc:publisher",
18+
description: "//def:metadata/dc:description",
19+
rights: "//def:metadata/dc:rights",
20+
language: "//def:metadata/dc:language",
21+
pubdate: "//def:metadata/dc:date",
22+
modified_date: "//def:metadata/def:meta[@property='dcterms:modified']",
23+
layout: "//def:metadata/def:meta[@property='rendition:layout']",
24+
spread: "//def:metadata/def:meta[@property='rendition:spread']",
25+
orientation: "//def:metadata/def:meta[@property='rendition:orientation']",
26+
ncx: "//def:spine/@toc",
27+
page_prog_dir: "//def:spine/@page-progression-direction",
28+
active_class: "//def:metadata/def:meta[@property='media:active-class']"
29+
},
30+
31+
manifest: [ "//def:item", {
32+
id: "@id",
33+
href: "@href",
34+
media_type: "@media-type",
35+
properties: "@properties",
36+
media_overlay: "@media-overlay"
37+
} ],
38+
39+
spine: [ "//def:itemref", { idref: "@idref", properties: "@properties", linear: "@linear" } ],
7740

78-
//console.debug(JSON.stringify(jsonObj));
79-
41+
bindings: ["//def:bindings/def:mediaType", {
42+
handler: "@handler",
43+
media_type: "@media-type"
44+
} ]
45+
46+
};
47+
48+
PackageParser = {
49+
parsePackageDom : function(data){
50+
var jsonObj = Jath.parse(jathTemplate, data);
51+
jsonObj = jsonObj.metadata;
8052
jsonObj.coverHref = PackageParser.getCoverHref(data);
8153
return jsonObj;
8254
},
@@ -114,6 +86,6 @@ define(['jquery', 'jxpath'], function($, JXPath){
11486
// seems like there isn't one, thats ok...
11587
return null;
11688
},
117-
}
118-
return PackageParser;
119-
})
89+
}
90+
return PackageParser;
91+
})

0 commit comments

Comments
 (0)