Commit a0a68dd7 authored by Cédric Le Ninivin's avatar Cédric Le Ninivin

Generate a link to download a zip instead of automatic download

This is to avoid making Crib looking like a spam website and having
browser block the download
parent b043a615
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
<script src="../lib/rsvp.js" type="text/javascript"></script> <script src="../lib/rsvp.js" type="text/javascript"></script>
<script src="../lib/renderjs.js" type="text/javascript"></script> <script src="../lib/renderjs.js" type="text/javascript"></script>
<script src="../lib/jszip.js" type="text/javascript"></script> <script src="../lib/jszip.js" type="text/javascript"></script>
<script src="../lib/FileSaver.js" type="text/javascript"></script>
<script src="../lib/mimetype.js" type="text/javascript"></script> <script src="../lib/mimetype.js" type="text/javascript"></script>
<script src="../lib/webtorrent.min.js" type="text/javascript"></script> <script src="../lib/webtorrent.min.js" type="text/javascript"></script>
<script src="./gadget_global.js" type="text/javascript"></script> <script src="./gadget_global.js" type="text/javascript"></script>
...@@ -23,18 +22,17 @@ ...@@ -23,18 +22,17 @@
<form class="crib-save-to-zip form-inline"> <form class="crib-save-to-zip form-inline">
<h3>Download Zip</h3> <h3>Download Zip</h3>
<div class="info crib-save-to-zip-status" style="display:none; background-color: #dff0d8;"></div> <div class="info crib-save-to-zip-status" style="display:none; background-color: #dff0d8;"></div>
<div class="info crib-save-to-zip-link" style="display:none;">
<p><a href="">Download your zip</a></p>
</div>
<div class="form-group"> <div class="form-group">
<label>Path to Export: <label>Path to Export:
<input class="save-zip-path form-control" <input class="save-zip-path form-control"
name="save-zip-path" name="save-zip-path"
type="text" size="30" value="" type="text" size="30" value=""
placeholder="Leave Empty to Export everything"></label> placeholder="Leave Empty to Export everything"></label>
</div>
<div class="form-group">
<label> to:
<input name="save-zip-id" class="save-zip-id form-control" type="text" size="30" value="cribjs.zip"></label>
</div>
<button name="save-zip-contents" type="submit" class="btn btn-default">Export to Zip</button> <button name="save-zip-contents" type="submit" class="btn btn-default">Export to Zip</button>
</div>
</form> </form>
<form class="crib-load-from-zip form-inline"> <form class="crib-load-from-zip form-inline">
<h3>Import from Zip</h3> <h3>Import from Zip</h3>
......
/*global window, rJS, loopEventListener, RSVP, console, document, saveAs, WebTorrent, /*global window, rJS, loopEventListener, RSVP, console, document, WebTorrent,
File, setInterval, clearInterval, mimeType*/ File, setInterval, clearInterval, mimeType, URL*/
/*jslint nomen: true, indent: 2, maxerr: 3*/ /*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, loopEventListener, JSZip, FileSaver, WebTorrent, (function (window, rJS, loopEventListener, JSZip, WebTorrent,
mimeType) { mimeType) {
"use strict"; "use strict";
...@@ -160,15 +160,16 @@ ...@@ -160,15 +160,16 @@
function saveContentToZIP(gadget, event) { function saveContentToZIP(gadget, event) {
var path_to_save = gadget.props.element var path_to_save = gadget.props.element
.querySelector('form.crib-save-to-zip .save-zip-path').value; .querySelector('form.crib-save-to-zip .save-zip-path').value;
gadget.props.element.querySelector(".crib-save-to-zip-link").style.display = "none";
return prepareZip(gadget, event, {}, path_to_save, logExportZipFile) return prepareZip(gadget, event, {}, path_to_save, logExportZipFile)
.push(function (content) { .push(function (content) {
var application_id = gadget.props.element
.querySelector('form.crib-save-to-zip .save-zip-id').value;
logExportZipFile( logExportZipFile(
gadget, gadget,
"Saved a " + formatSizeUnits(content.size) + " zip file at " + Date() "Saved a " + formatSizeUnits(content.size) + " zip file at " + Date()
); );
return saveAs(content, application_id); gadget.props.element.querySelector(".crib-save-to-zip-link a")
.href = URL.createObjectURL(content);
gadget.props.element.querySelector(".crib-save-to-zip-link").style.display = "";
}) })
.push(console.log, console.log); .push(console.log, console.log);
} }
...@@ -318,11 +319,6 @@ ...@@ -318,11 +319,6 @@
.querySelector('form.crib-save-to-zip .save-zip-path') .querySelector('form.crib-save-to-zip .save-zip-path')
.value = gadget.props.options.zip_download_path; .value = gadget.props.options.zip_download_path;
} }
if (gadget.props.options.zip_name) {
gadget.props.element
.querySelector('form.crib-save-to-zip .save-zip-id')
.value = gadget.props.options.zip_name;
}
if (gadget.props.options.start_zip_download) { if (gadget.props.options.start_zip_download) {
return saveContentToZIP(gadget, undefined); return saveContentToZIP(gadget, undefined);
} }
...@@ -365,4 +361,4 @@ ...@@ -365,4 +361,4 @@
return RSVP.all(promise_list); return RSVP.all(promise_list);
}); });
}); });
}(window, rJS, loopEventListener, JSZip, FileSaver, WebTorrent, mimeType)); }(window, rJS, loopEventListener, JSZip, WebTorrent, mimeType));
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
<script src="../lib/rsvp.js" type="text/javascript"></script> <script src="../lib/rsvp.js" type="text/javascript"></script>
<script src="../lib/renderjs.js" type="text/javascript"></script> <script src="../lib/renderjs.js" type="text/javascript"></script>
<script src="../lib/jszip.js" type="text/javascript"></script> <script src="../lib/jszip.js" type="text/javascript"></script>
<script src="../lib/FileSaver.js" type="text/javascript"></script>
<script src="./gadget_global.js" type="text/javascript"></script> <script src="./gadget_global.js" type="text/javascript"></script>
<!-- Custom --> <!-- Custom -->
......
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