Commit 1fa142a2 authored by Alain Takoudjou's avatar Alain Takoudjou

erp5_web_mynij_search: zip index data on import and export

Use JSzip to compress data exported to reduce size of downloaded/uploaded file
parent 5e3869bc
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<script src="rsvp.js" type="text/javascript"></script> <script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script> <script src="renderjs.js" type="text/javascript"></script>
<script src="flexsearch.js" type="text/javascript"></script> <script src="flexsearch.js" type="text/javascript"></script>
<script src="jszip.min.js" type="text/javascript"></script>
<script src="action_mynij_search_import_export_index.js" type="text/javascript"></script> <script src="action_mynij_search_import_export_index.js" type="text/javascript"></script>
</head> </head>
<body> <body>
......
(function (window, rJS, RSVP, jIO, File, Blob, document) { (function (window, rJS, RSVP, jIO, File, Blob, document, JSZip) {
"use strict"; "use strict";
rJS(window) rJS(window)
.declareAcquiredMethod("notifySubmitting", "notifySubmitting") .declareAcquiredMethod("notifySubmitting", "notifySubmitting")
...@@ -109,7 +109,8 @@ ...@@ -109,7 +109,8 @@
file_dict, file_dict,
file_blob, file_blob,
link, link,
url; url,
zip_file;
file_dict = { file_dict = {
name: index_name, name: index_name,
...@@ -120,8 +121,16 @@ ...@@ -120,8 +121,16 @@
page: result page: result
}; };
file_blob = new Blob([JSON.stringify(file_dict)], {type : "application/json"}); zip_file = new JSZip();
return gadget.downloadBlob(index_id + ".mynij", file_blob); zip_file.file(index_id + ".json", JSON.stringify(file_dict));
zip_file.generateAsync({
type : "blob",
compression: "DEFLATE",
compressionOptions: {level: 9}
})
.then(function (ziped) {
return gadget.downloadBlob(index_id + ".zip", ziped);
});
}); });
}) })
...@@ -149,11 +158,15 @@ ...@@ -149,11 +158,15 @@
.push(function () { .push(function () {
return jIO.util.dataURItoBlob(dataurl); return jIO.util.dataURItoBlob(dataurl);
}) })
.push(function (file_blob) { .push(function (data) {
return jIO.util.readBlobAsText(file_blob, "application/json"); var zip = new JSZip();
return zip.loadAsync(data)
.then(function(data){
return zip.file(Object.keys(data.files)[0]).async("string");
}) })
.push(function (evt) { .then(function(data){
index_dict = JSON.parse(evt.target.result); index_dict = JSON.parse(data);
//console.log(data);
doc.title = index_dict.name; doc.title = index_dict.name;
doc.links = index_dict.links; doc.links = index_dict.links;
doc.status = "built"; doc.status = "built";
...@@ -162,6 +175,7 @@ ...@@ -162,6 +175,7 @@
index_id, index_id,
index_dict, index_dict,
{}); {});
});
}) })
.push(function () { .push(function () {
return gadget.putIndexPage(index_dict.page); return gadget.putIndexPage(index_dict.page);
...@@ -334,4 +348,4 @@ ...@@ -334,4 +348,4 @@
}); });
}); });
}(window, rJS, RSVP, jIO, File, Blob, document)); }(window, rJS, RSVP, jIO, File, Blob, document, JSZip));
\ No newline at end of file \ No newline at end of file
...@@ -10,3 +10,4 @@ web_page_module/rss-parser.min.js.map ...@@ -10,3 +10,4 @@ web_page_module/rss-parser.min.js.map
web_page_module/webtorrent_min_js web_page_module/webtorrent_min_js
web_site_module/mynij_search web_site_module/mynij_search
web_site_module/mynij_search/** web_site_module/mynij_search/**
web_page_module/jszip_min_js
\ No newline at end of file
...@@ -10,3 +10,4 @@ web_page_module/rss-parser.min.js.map ...@@ -10,3 +10,4 @@ web_page_module/rss-parser.min.js.map
web_page_module/webtorrent_min_js web_page_module/webtorrent_min_js
web_site_module/mynij_search web_site_module/mynij_search
web_site_module/mynij_search/** web_site_module/mynij_search/**
web_page_module/jszip_min_js
\ No newline at end of file
...@@ -4,6 +4,7 @@ web_page_module/gadget_erp5_mynij_** ...@@ -4,6 +4,7 @@ web_page_module/gadget_erp5_mynij_**
web_page_module/gadget_erp5_page_mynij_** web_page_module/gadget_erp5_page_mynij_**
web_page_module/gadget_mynij_** web_page_module/gadget_mynij_**
web_page_module/gadget_officejs_mynij_** web_page_module/gadget_officejs_mynij_**
web_page_module/jszip_min_js
web_page_module/mynij-** web_page_module/mynij-**
web_page_module/mynij_** web_page_module/mynij_**
web_page_module/rss-parser.min.js.map web_page_module/rss-parser.min.js.map
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment