7 function resetMessage () {
13 * show a successful message.
14 * @param {String} text the text to show.
16 function showMessage(text) {
19 .addClass("alert alert-success")
23 * show an error message.
24 * @param {String} text the text to show.
26 function showError(text) {
29 .addClass("alert alert-danger")
34 * Fetch the content, add it to the JSZip object
35 * and use a jQuery deferred to hold the result.
36 * @param {String} url the url of the content to fetch.
37 * @param {String} filename the filename to use in the JSZip object.
38 * @param {JSZip} zip the JSZip instance.
39 * @return {jQuery.Deferred} the deferred containing the data.
41 function deferredAddZip(url, filename, zip) {
42 var deferred = $.Deferred();
43 JSZipUtils.getBinaryContent(url, function (err, data) {
47 zip.file(filename, data, {binary:true});
48 deferred.resolve(data);
54 if(!JSZip.support.blob) {
55 showError("This demo works only with a recent browser !");
59 var $form = $("#download_form").on("submit", function () {
63 var zip = new JSZip();
66 // find every checked item
67 $(this).find(":checked").each(function () {
69 var url = $this.data("url");
70 var filename = url.replace(/.*\//g, "");
71 deferreds.push(deferredAddZip(url, filename, zip));
74 // when everything has been downloaded, we can trigger the dl
75 $.when.apply($, deferreds).done(function () {
76 var blob = zip.generate({type:"blob"});
79 saveAs(blob, "example.zip");
81 showMessage("done !");
82 }).fail(function (err) {
89 // vim: set shiftwidth=4 softtabstop=4: