diff --git a/core/modules/savers/andtidwiki.js b/core/modules/savers/andtidwiki.js index 33e776977..df2b0ceaa 100644 --- a/core/modules/savers/andtidwiki.js +++ b/core/modules/savers/andtidwiki.js @@ -15,24 +15,50 @@ Handles saving changes via the AndTidWiki Android app var AndTidWiki = function(wiki) { }; -AndTidWiki.prototype.save = function(text,method,callback) { - // Get the pathname of this document - var pathname = decodeURIComponent(document.location.toString().split("#")[0]); - // Strip the file:// - if(pathname.indexOf("file://") === 0) { - pathname = pathname.substr(7); +AndTidWiki.prototype.save = function(text,method,callback,options) { + var filename = options && options.variables ? options.variables.filename : null; + if (method === "download") { + // Support download + if (window.twi.saveDownload) { + try { + window.twi.saveDownload(text,filename); + } catch(err) { + if (err.message === "Method not found") { + window.twi.saveDownload(text); + } + } + } else { + var link = document.createElement("a"); + link.setAttribute("href","data:text/plain," + encodeURIComponent(text)); + if (filename) { + link.setAttribute("download",filename); + } + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + } else if (window.twi.saveWiki) { + // Direct save in Tiddloid + window.twi.saveWiki(text); + } else { + // Get the pathname of this document + var pathname = decodeURIComponent(document.location.toString().split("#")[0]); + // Strip the file:// + if(pathname.indexOf("file://") === 0) { + pathname = pathname.substr(7); + } + // Strip any query or location part + var p = pathname.indexOf("?"); + if(p !== -1) { + pathname = pathname.substr(0,p); + } + p = pathname.indexOf("#"); + if(p !== -1) { + pathname = pathname.substr(0,p); + } + // Save the file + window.twi.saveFile(pathname,text); } - // Strip any query or location part - var p = pathname.indexOf("?"); - if(p !== -1) { - pathname = pathname.substr(0,p); - } - p = pathname.indexOf("#"); - if(p !== -1) { - pathname = pathname.substr(0,p); - } - // Save the file - window.twi.saveFile(pathname,text); // Call the callback callback(null); return true; @@ -44,7 +70,7 @@ Information about this saver AndTidWiki.prototype.info = { name: "andtidwiki", priority: 1600, - capabilities: ["save", "autosave"] + capabilities: ["save", "autosave", "download"] }; /*