From 0fdfbc482ca39a674a9a0f037277d65dc135bd6a Mon Sep 17 00:00:00 2001 From: Jermolene Date: Sun, 11 Jan 2015 14:20:34 +0000 Subject: [PATCH 1/3] Add nwsaveas and param attributes to browse widget These are for TiddlyDesktop, and only work under node-webkit --- core/modules/widgets/browse.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/modules/widgets/browse.js b/core/modules/widgets/browse.js index dd830be62..195bda8d6 100644 --- a/core/modules/widgets/browse.js +++ b/core/modules/widgets/browse.js @@ -42,10 +42,13 @@ BrowseWidget.prototype.render = function(parent,nextSibling) { if(this.tooltip) { domNode.setAttribute("title",this.tooltip); } + if(this.nwsaveas) { + domNode.setAttribute("nwsaveas",this.nwsaveas); + } // Add a click event handler domNode.addEventListener("change",function (event) { if(self.message) { - self.dispatchEvent({type: self.message, param: event.target.files}); + self.dispatchEvent({type: self.message, param: self.param, files: event.target.files}); } else { self.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) { self.dispatchEvent({type: "tm-import-tiddlers", param: JSON.stringify(tiddlerFieldsArray)}); @@ -65,7 +68,9 @@ Compute the internal state of the widget BrowseWidget.prototype.execute = function() { this.browseMultiple = this.getAttribute("multiple"); this.message = this.getAttribute("message"); + this.param = this.getAttribute("param"); this.tooltip = this.getAttribute("tooltip"); + this.nwsaveas = this.getAttribute("nwsaveas"); }; /* From 3bbbda0819aaa82e230dde9367f9aa28ad3aecea Mon Sep 17 00:00:00 2001 From: Jermolene Date: Sun, 11 Jan 2015 14:21:31 +0000 Subject: [PATCH 2/3] Allow callers of the bootprefix to determine browser status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This gives us finer control under node-webkit of whether the core thinks we’re running under the browser or node. --- boot/bootprefix.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/boot/bootprefix.js b/boot/bootprefix.js index bff9a2aa2..ae0712d4e 100644 --- a/boot/bootprefix.js +++ b/boot/bootprefix.js @@ -20,9 +20,15 @@ $tw = $tw || Object.create(null); $tw.boot = $tw.boot || Object.create(null); // Detect platforms -$tw.browser = typeof(window) !== "undefined" ? {} : null; -$tw.node = typeof(process) === "object" ? {} : null; -$tw.nodeWebKit = $tw.node && global.window && global.window.nwDispatcher ? {} : null; +if(!("browser" in $tw)) { + $tw.browser = typeof(window) !== "undefined" ? {} : null; +} +if(!("node" in $tw)) { + $tw.node = typeof(process) === "object" ? {} : null; +} +if(!("nodeWebKit" in $tw)) { + $tw.nodeWebKit = $tw.node && global.window && global.window.nwDispatcher ? {} : null; +} // Set default boot tasks $tw.boot.tasks = { From b768dc332b2d5d7ac1f731953cafb5fd1b30dad9 Mon Sep 17 00:00:00 2001 From: Jermolene Date: Sun, 11 Jan 2015 15:00:54 +0000 Subject: [PATCH 3/3] Refactor edition-info handling Introducing new filters that can be used under Node.js --- core/modules/commands/editions.js | 31 ++---------- core/modules/filters/editiondescription.js | 31 ++++++++++++ core/modules/filters/editions.js | 30 ++++++++++++ core/modules/utils/edition-info.js | 48 +++++++++++++++++++ .../FilterOperator editiondescription.tid | 10 ++++ .../tiddlers/FilterOperator editions.tid | 8 ++++ 6 files changed, 131 insertions(+), 27 deletions(-) create mode 100644 core/modules/filters/editiondescription.js create mode 100644 core/modules/filters/editions.js create mode 100644 core/modules/utils/edition-info.js create mode 100644 editions/prerelease/tiddlers/FilterOperator editiondescription.tid create mode 100644 editions/prerelease/tiddlers/FilterOperator editions.tid diff --git a/core/modules/commands/editions.js b/core/modules/commands/editions.js index 271b62e71..cc802b9f5 100644 --- a/core/modules/commands/editions.js +++ b/core/modules/commands/editions.js @@ -23,35 +23,12 @@ var Command = function(params,commander) { }; Command.prototype.execute = function() { - var fs = require("fs"), - path = require("path"), - self = this; - // Enumerate the edition paths - var editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar), - editions = {}; - for(var editionIndex=0; editionIndex