From 3a67fdb76895003edd7b017a107a773b4a118187 Mon Sep 17 00:00:00 2001 From: Jermolene <jeremy@osmosoft.com> Date: Sat, 30 Aug 2014 20:44:26 +0100 Subject: [PATCH] Obeisance to JSHint for core modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are still some warnings about making functions in a loop, but I’ll fix those as a separate pull request because the fixes are more than typographic errors. --- core/modules/commands/build.js | 2 +- core/modules/commands/server.js | 12 ++--- core/modules/deserializers.js | 2 +- core/modules/filters/is.js | 2 +- core/modules/filters/plugintiddlers.js | 12 ++--- core/modules/filters/shadowsource.js | 4 +- core/modules/filters/sort.js | 2 +- core/modules/info/platform.js | 2 +- .../parsers/wikiparser/rules/commentblock.js | 4 +- .../parsers/wikiparser/rules/commentinline.js | 4 +- .../rules/filteredtranscludeblock.js | 2 +- .../rules/filteredtranscludeinline.js | 2 +- .../wikiparser/rules/hardlinebreaks.js | 5 +- .../parsers/wikiparser/rules/quoteblock.js | 5 +- .../modules/parsers/wikiparser/rules/table.js | 9 ++-- .../wikiparser/rules/transcludeblock.js | 25 ++++----- .../wikiparser/rules/transcludeinline.js | 23 ++++---- .../parsers/wikiparser/rules/typedblock.js | 2 +- .../parsers/wikiparser/rules/wikilink.js | 2 +- core/modules/parsers/wikiparser/wikiparser.js | 6 +-- core/modules/saver-handler.js | 2 +- core/modules/savers/andtidwiki.js | 2 +- core/modules/savers/tiddlyfox.js | 6 +-- core/modules/savers/twedit.js | 36 ++++++------- core/modules/startup/favicon.js | 2 +- core/modules/startup/render.js | 2 +- core/modules/startup/story.js | 4 +- core/modules/storyviews/classic.js | 2 +- core/modules/storyviews/pop.js | 2 +- core/modules/storyviews/zoomin.js | 2 +- core/modules/syncer.js | 10 ++-- core/modules/upgraders/plugins.js | 4 +- core/modules/upgraders/themetweaks.js | 4 +- core/modules/utils/dom/modal.js | 2 +- core/modules/utils/fakedom.js | 38 +++++++------- core/modules/utils/filesystem.js | 4 +- core/modules/utils/parsetree.js | 6 +-- core/modules/utils/pluginmaker.js | 7 +-- core/modules/widgets/dropzone.js | 2 +- core/modules/widgets/edit-bitmap.js | 4 +- core/modules/widgets/fields.js | 2 +- core/modules/widgets/link.js | 2 +- core/modules/widgets/list.js | 2 +- core/modules/widgets/navigator.js | 5 +- core/modules/widgets/reveal.js | 2 +- core/modules/widgets/tiddler.js | 2 +- core/modules/widgets/widget.js | 7 ++- core/modules/wiki.js | 52 ++++++++++--------- 48 files changed, 173 insertions(+), 169 deletions(-) diff --git a/core/modules/commands/build.js b/core/modules/commands/build.js index 6d6e04548..8471119d7 100644 --- a/core/modules/commands/build.js +++ b/core/modules/commands/build.js @@ -26,7 +26,7 @@ Command.prototype.execute = function() { // Get the build targets defined in the wiki var buildTargets = $tw.boot.wikiInfo.build; if(!buildTargets) { - return "No build targets defined" + return "No build targets defined"; } // Loop through each of the specified targets var targets; diff --git a/core/modules/commands/server.js b/core/modules/commands/server.js index e724aa53f..edbb1f1ca 100644 --- a/core/modules/commands/server.js +++ b/core/modules/commands/server.js @@ -78,7 +78,7 @@ SimpleServer.prototype.findMatchingRoute = function(request,state) { }; SimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) { - var header = request.headers["authorization"] || "", + var header = request.headers.authorization || "", token = header.split(/\s+/).pop() || "", auth = $tw.utils.base64Decode(token), parts = auth.split(/:/), @@ -89,7 +89,7 @@ SimpleServer.prototype.checkCredentials = function(request,incomingUsername,inco } else { return "DENIED"; } -} +}; SimpleServer.prototype.listen = function(port,host) { var self = this; @@ -167,8 +167,8 @@ var Command = function(params,commander,callback) { delete fields.fields; } // Remove any revision field - if(fields["revision"]) { - delete fields["revision"]; + if(fields.revision) { + delete fields.revision; } state.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title})); var changeCount = state.wiki.getChangeCount(title).toString(); @@ -237,7 +237,7 @@ var Command = function(params,commander,callback) { tiddlerFields[name] = tiddler.getFieldString(name); } }); - tiddlerFields["revision"] = state.wiki.getChangeCount(title); + tiddlerFields.revision = state.wiki.getChangeCount(title); tiddlerFields.type = tiddlerFields.type || "text/vnd.tiddlywiki"; tiddlers.push(tiddlerFields); }); @@ -265,7 +265,7 @@ var Command = function(params,commander,callback) { tiddlerFields.fields[name] = value; } }); - tiddlerFields["revision"] = state.wiki.getChangeCount(title); + tiddlerFields.revision = state.wiki.getChangeCount(title); tiddlerFields.type = tiddlerFields.type || "text/vnd.tiddlywiki"; response.writeHead(200, {"Content-Type": "application/json"}); response.end(JSON.stringify(tiddlerFields),"utf8"); diff --git a/core/modules/deserializers.js b/core/modules/deserializers.js index 5e3fce42e..ba31c5314 100644 --- a/core/modules/deserializers.js +++ b/core/modules/deserializers.js @@ -109,7 +109,7 @@ exports["text/html"] = function(text,fields) { if(sysMatch) { results.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields)); } - return results + return results; } else { // Check whether we've got an encrypted file var encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text); diff --git a/core/modules/filters/is.js b/core/modules/filters/is.js index fc45a62f9..d27d00907 100644 --- a/core/modules/filters/is.js +++ b/core/modules/filters/is.js @@ -20,7 +20,7 @@ function getIsFilterOperators() { $tw.modules.applyMethods("isfilteroperator",isFilterOperators); } return isFilterOperators; -}; +} /* Export our filter function diff --git a/core/modules/filters/plugintiddlers.js b/core/modules/filters/plugintiddlers.js index 84d641587..9845e8ce8 100644 --- a/core/modules/filters/plugintiddlers.js +++ b/core/modules/filters/plugintiddlers.js @@ -18,12 +18,12 @@ Export our filter function exports.plugintiddlers = function(source,operator,options) { var results = []; source(function(tiddler,title) { - var pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerData(title,{tiddlers:[]}); - if(pluginInfo) { - $tw.utils.each(pluginInfo.tiddlers,function(fields,title) { - results.push(title); - }); - } + var pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerData(title,{tiddlers:[]}); + if(pluginInfo) { + $tw.utils.each(pluginInfo.tiddlers,function(fields,title) { + results.push(title); + }); + } }); results.sort(); return results; diff --git a/core/modules/filters/shadowsource.js b/core/modules/filters/shadowsource.js index 88ae4132e..f16e2bcc7 100644 --- a/core/modules/filters/shadowsource.js +++ b/core/modules/filters/shadowsource.js @@ -19,9 +19,9 @@ exports.shadowsource = function(source,operator,options) { var results = []; source(function(tiddler,title) { var source = options.wiki.getShadowSource(title); - if(source) { + if(source) { $tw.utils.pushTop(results,source); - } + } }); results.sort(); return results; diff --git a/core/modules/filters/sort.js b/core/modules/filters/sort.js index 408de81eb..f993825df 100644 --- a/core/modules/filters/sort.js +++ b/core/modules/filters/sort.js @@ -45,6 +45,6 @@ var prepare_results = function (source) { results.push(title); }); return results; -} +}; })(); diff --git a/core/modules/info/platform.js b/core/modules/info/platform.js index f084d6c00..9f6097f74 100644 --- a/core/modules/info/platform.js +++ b/core/modules/info/platform.js @@ -13,7 +13,7 @@ Initialise basic platform $:/info/ tiddlers "use strict"; exports.getInfoTiddlerFields = function() { - var mapBoolean = function(value) {return value ? "yes" : "no"}, + var mapBoolean = function(value) {return value ? "yes" : "no";}, infoTiddlerFields = []; // Basics infoTiddlerFields.push({title: "$:/info/browser", text: mapBoolean(!!$tw.browser)}); diff --git a/core/modules/parsers/wikiparser/rules/commentblock.js b/core/modules/parsers/wikiparser/rules/commentblock.js index cb1bd1a93..84ee897ba 100644 --- a/core/modules/parsers/wikiparser/rules/commentblock.js +++ b/core/modules/parsers/wikiparser/rules/commentblock.js @@ -23,8 +23,8 @@ exports.types = {block: true}; exports.init = function(parser) { this.parser = parser; - this.matchRegExp = /\<!--/mg; - this.endMatchRegExp = /--\>/mg; + this.matchRegExp = /<!--/mg; + this.endMatchRegExp = /-->/mg; }; exports.findNextMatch = function(startPos) { diff --git a/core/modules/parsers/wikiparser/rules/commentinline.js b/core/modules/parsers/wikiparser/rules/commentinline.js index fd9c6a10e..6e697e6c0 100644 --- a/core/modules/parsers/wikiparser/rules/commentinline.js +++ b/core/modules/parsers/wikiparser/rules/commentinline.js @@ -23,8 +23,8 @@ exports.types = {inline: true}; exports.init = function(parser) { this.parser = parser; - this.matchRegExp = /\<!--/mg; - this.endMatchRegExp = /--\>/mg; + this.matchRegExp = /<!--/mg; + this.endMatchRegExp = /-->/mg; }; exports.findNextMatch = function(startPos) { diff --git a/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js b/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js index 5a863a42a..7ab4801bf 100644 --- a/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js +++ b/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js @@ -56,7 +56,7 @@ exports.parse = function() { node.attributes.style = {type: "string", value: style}; } if(classes) { - node.attributes["itemClass"] = {type: "string", value: classes.split(".").join(" ")}; + node.attributes.itemClass = {type: "string", value: classes.split(".").join(" ")}; } return [node]; }; diff --git a/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js b/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js index abda75f95..029fd6802 100644 --- a/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js +++ b/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js @@ -55,7 +55,7 @@ exports.parse = function() { node.attributes.style = {type: "string", value: style}; } if(classes) { - node.attributes["itemClass"] = {type: "string", value: classes.split(".").join(" ")}; + node.attributes.itemClass = {type: "string", value: classes.split(".").join(" ")}; } return [node]; }; diff --git a/core/modules/parsers/wikiparser/rules/hardlinebreaks.js b/core/modules/parsers/wikiparser/rules/hardlinebreaks.js index 7573a5501..c278686b4 100644 --- a/core/modules/parsers/wikiparser/rules/hardlinebreaks.js +++ b/core/modules/parsers/wikiparser/rules/hardlinebreaks.js @@ -34,7 +34,8 @@ exports.init = function(parser) { exports.parse = function() { var reEnd = /(""")|(\r?\n)/mg, - tree = []; + tree = [], + match; // Move past the match this.parser.pos = this.matchRegExp.lastIndex; do { @@ -42,7 +43,7 @@ exports.parse = function() { tree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false})); // Redo the terminator match reEnd.lastIndex = this.parser.pos; - var match = reEnd.exec(this.parser.source); + match = reEnd.exec(this.parser.source); if(match) { this.parser.pos = reEnd.lastIndex; // Add a line break if the terminator was a line break diff --git a/core/modules/parsers/wikiparser/rules/quoteblock.js b/core/modules/parsers/wikiparser/rules/quoteblock.js index 8f83c57e8..71b689680 100644 --- a/core/modules/parsers/wikiparser/rules/quoteblock.js +++ b/core/modules/parsers/wikiparser/rules/quoteblock.js @@ -55,7 +55,6 @@ exports.parse = function() { classes.push.apply(classes, this.parser.parseClasses()); this.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true}); var cite = this.parser.parseInlineRun(/(\r?\n)/mg); - // before handling the cite, parse the body of the quote var tree= this.parser.parseBlocks(reEndString); // If we got a cite, put it before the text @@ -66,10 +65,9 @@ exports.parse = function() { children: cite }); } - // Parse any optional cite this.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true}); - var cite = this.parser.parseInlineRun(/(\r?\n)/mg); + cite = this.parser.parseInlineRun(/(\r?\n)/mg); // If we got a cite, push it if(cite.length > 0) { tree.push({ @@ -78,7 +76,6 @@ exports.parse = function() { children: cite }); } - // Return the blockquote element return [{ type: "element", diff --git a/core/modules/parsers/wikiparser/rules/table.js b/core/modules/parsers/wikiparser/rules/table.js index eb830b855..fb72f6890 100644 --- a/core/modules/parsers/wikiparser/rules/table.js +++ b/core/modules/parsers/wikiparser/rules/table.js @@ -27,7 +27,8 @@ var processRow = function(prevColumns) { tree = [], col = 0, colSpanCount = 1, - prevCell; + prevCell, + vAlign; // Match a single cell cellRegExp.lastIndex = this.parser.pos; var cellMatch = cellRegExp.exec(this.parser.source); @@ -38,7 +39,7 @@ var processRow = function(prevColumns) { if(last) { last.rowSpanCount++; $tw.utils.addAttributeToParseTreeNode(last.element,"rowspan",last.rowSpanCount); - var vAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,"valign","center"); + vAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,"valign","center"); $tw.utils.addAttributeToParseTreeNode(last.element,"valign",vAlign); if(colSpanCount > 1) { $tw.utils.addAttributeToParseTreeNode(last.element,"colspan",colSpanCount); @@ -74,8 +75,8 @@ var processRow = function(prevColumns) { // For ordinary cells, step beyond the opening `|` this.parser.pos++; // Look for a space at the start of the cell - var spaceLeft = false, - vAlign = null; + var spaceLeft = false; + vAlign = null; if(this.parser.source.substr(this.parser.pos).search(/^\^([^\^]|\^\^)/) === 0) { vAlign = "top"; } else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) { diff --git a/core/modules/parsers/wikiparser/rules/transcludeblock.js b/core/modules/parsers/wikiparser/rules/transcludeblock.js index 6cfb472fc..1a5df1e06 100644 --- a/core/modules/parsers/wikiparser/rules/transcludeblock.js +++ b/core/modules/parsers/wikiparser/rules/transcludeblock.js @@ -41,19 +41,20 @@ exports.parse = function() { isBlock: true }; // Prepare the tiddler widget + var tr, targetTitle, targetField, targetIndex, tiddlerNode; if(textRef) { - var tr = $tw.utils.parseTextReference(textRef), - targetTitle = tr.title, - targetField = tr.field, - targetIndex = tr.index, - tiddlerNode = { - type: "tiddler", - attributes: { - tiddler: {type: "string", value: targetTitle} - }, - isBlock: true, - children: [transcludeNode] - }; + tr = $tw.utils.parseTextReference(textRef); + targetTitle = tr.title; + targetField = tr.field; + targetIndex = tr.index; + tiddlerNode = { + type: "tiddler", + attributes: { + tiddler: {type: "string", value: targetTitle} + }, + isBlock: true, + children: [transcludeNode] + }; } if(template) { transcludeNode.attributes.tiddler = {type: "string", value: template}; diff --git a/core/modules/parsers/wikiparser/rules/transcludeinline.js b/core/modules/parsers/wikiparser/rules/transcludeinline.js index 66f16bb4b..dbf39bfb6 100644 --- a/core/modules/parsers/wikiparser/rules/transcludeinline.js +++ b/core/modules/parsers/wikiparser/rules/transcludeinline.js @@ -38,18 +38,19 @@ exports.parse = function() { attributes: {} }; // Prepare the tiddler widget + var tr, targetTitle, targetField, targetIndex, tiddlerNode; if(textRef) { - var tr = $tw.utils.parseTextReference(textRef), - targetTitle = tr.title, - targetField = tr.field, - targetIndex = tr.index, - tiddlerNode = { - type: "tiddler", - attributes: { - tiddler: {type: "string", value: targetTitle} - }, - children: [transcludeNode] - }; + tr = $tw.utils.parseTextReference(textRef); + targetTitle = tr.title; + targetField = tr.field; + targetIndex = tr.index; + tiddlerNode = { + type: "tiddler", + attributes: { + tiddler: {type: "string", value: targetTitle} + }, + children: [transcludeNode] + }; } if(template) { transcludeNode.attributes.tiddler = {type: "string", value: template}; diff --git a/core/modules/parsers/wikiparser/rules/typedblock.js b/core/modules/parsers/wikiparser/rules/typedblock.js index 561733b91..4195e57e5 100644 --- a/core/modules/parsers/wikiparser/rules/typedblock.js +++ b/core/modules/parsers/wikiparser/rules/typedblock.js @@ -68,7 +68,7 @@ exports.parse = function() { var widgetNode = this.parser.wiki.makeWidget(parser), container = $tw.fakeDocument.createElement("div"); widgetNode.render(container,null); - var text = renderType === "text/html" ? container.innerHTML : container.textContent; + text = renderType === "text/html" ? container.innerHTML : container.textContent; return [{ type: "element", tag: "pre", diff --git a/core/modules/parsers/wikiparser/rules/wikilink.js b/core/modules/parsers/wikiparser/rules/wikilink.js index f4b543896..886a42d4e 100644 --- a/core/modules/parsers/wikiparser/rules/wikilink.js +++ b/core/modules/parsers/wikiparser/rules/wikilink.js @@ -27,7 +27,7 @@ var textPrimitives = { upperLetter: "[A-Z\u00c0-\u00d6\u00d8-\u00de\u0150\u0170]", lowerLetter: "[a-z0-9\u00df-\u00f6\u00f8-\u00ff\u0151\u0171]", anyLetter: "[A-Za-z0-9\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]", - blockPrefixLetters: "[A-Za-z0-9\-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]" + blockPrefixLetters: "[A-Za-z0-9-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]" }; textPrimitives.unWikiLink = "~"; diff --git a/core/modules/parsers/wikiparser/wikiparser.js b/core/modules/parsers/wikiparser/wikiparser.js index 6b23198c0..19a3522fa 100644 --- a/core/modules/parsers/wikiparser/wikiparser.js +++ b/core/modules/parsers/wikiparser/wikiparser.js @@ -100,7 +100,7 @@ Get the next match out of an array of parse rule instances */ WikiParser.prototype.findNextMatch = function(rules,startPos) { // Find the best matching rule by finding the closest match position - var matchingRule = undefined, + var matchingRule, matchingRulePos = this.sourceLength; // Step through each rule for(var t=0; t<rules.length; t++) { @@ -308,7 +308,7 @@ WikiParser.prototype.parseClasses = function() { while(match && match.index === this.pos) { this.pos = match.index + match[0].length; classNames.push(match[1]); - var match = classRegExp.exec(this.source); + match = classRegExp.exec(this.source); } return classNames; }; @@ -345,7 +345,7 @@ WikiParser.prototype.amendRules = function(type,names) { processRuleArray(this.pragmaRules); processRuleArray(this.blockRules); processRuleArray(this.inlineRules); -} +}; exports["text/vnd.tiddlywiki"] = WikiParser; diff --git a/core/modules/saver-handler.js b/core/modules/saver-handler.js index b03ce976c..9fb0266a4 100644 --- a/core/modules/saver-handler.js +++ b/core/modules/saver-handler.js @@ -74,7 +74,7 @@ function SaverHandler(options) { }); // Set up our beforeunload handler window.addEventListener("beforeunload",function(event) { - var confirmationMessage = undefined; + var confirmationMessage; if(self.isDirty()) { confirmationMessage = $tw.language.getString("UnsavedChangesWarning"); event.returnValue = confirmationMessage; // Gecko diff --git a/core/modules/savers/andtidwiki.js b/core/modules/savers/andtidwiki.js index 584db5d62..33e776977 100644 --- a/core/modules/savers/andtidwiki.js +++ b/core/modules/savers/andtidwiki.js @@ -32,7 +32,7 @@ AndTidWiki.prototype.save = function(text,method,callback) { pathname = pathname.substr(0,p); } // Save the file - window.twi.saveFile(pathname,text) + window.twi.saveFile(pathname,text); // Call the callback callback(null); return true; diff --git a/core/modules/savers/tiddlyfox.js b/core/modules/savers/tiddlyfox.js index 6f06d72bf..a729e26e3 100644 --- a/core/modules/savers/tiddlyfox.js +++ b/core/modules/savers/tiddlyfox.js @@ -21,7 +21,7 @@ TiddlyFoxSaver.prototype.save = function(text,method,callback) { // Get the pathname of this document var pathname = document.location.toString().split("#")[0]; // Replace file://localhost/ with file:/// - if(pathname.indexOf("file://localhost/") == 0) { + if(pathname.indexOf("file://localhost/") === 0) { pathname = "file://" + pathname.substr(16); } // Windows path file:///x:/blah/blah --> x:\blah\blah @@ -32,10 +32,10 @@ TiddlyFoxSaver.prototype.save = function(text,method,callback) { } else if(pathname.indexOf("file://///") === 0) { pathname = "\\\\" + unescape(pathname.substr(10)).replace(/\//g,"\\"); // Mac/Unix local path file:///path/path --> /path/path - } else if(pathname.indexOf("file:///") == 0) { + } else if(pathname.indexOf("file:///") === 0) { pathname = unescape(pathname.substr(7)); // Mac/Unix local path file:/path/path --> /path/path - } else if(pathname.indexOf("file:/") == 0) { + } else if(pathname.indexOf("file:/") === 0) { pathname = unescape(pathname.substr(5)); // Otherwise Windows networth path file://server/share/path/path --> \\server\share\path\path } else { diff --git a/core/modules/savers/twedit.js b/core/modules/savers/twedit.js index 48b3ffbbc..33d748f67 100644 --- a/core/modules/savers/twedit.js +++ b/core/modules/savers/twedit.js @@ -38,25 +38,25 @@ TWEditSaver.prototype.save = function(text,method,callback) { } // Error handler var errorHandler = function(event) { - // Error - callback("Error saving to TWEdit: " + event.target.error.code); - }; + // Error + callback("Error saving to TWEdit: " + event.target.error.code); + }; // Get the file system - window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) { - // Now we've got the filesystem, get the fileEntry - fileSystem.root.getFile(pathname, {create: true}, function(fileEntry) { - // Now we've got the fileEntry, create the writer - fileEntry.createWriter(function(writer) { - writer.onerror = errorHandler; - writer.onwrite = function() { - callback(null); - }; - writer.position = 0; - writer.write(text); - },errorHandler); - }, errorHandler); - }, errorHandler); - return true; + window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) { + // Now we've got the filesystem, get the fileEntry + fileSystem.root.getFile(pathname, {create: true}, function(fileEntry) { + // Now we've got the fileEntry, create the writer + fileEntry.createWriter(function(writer) { + writer.onerror = errorHandler; + writer.onwrite = function() { + callback(null); + }; + writer.position = 0; + writer.write(text); + },errorHandler); + }, errorHandler); + }, errorHandler); + return true; }; /* diff --git a/core/modules/startup/favicon.js b/core/modules/startup/favicon.js index 7794dec25..0d1792ea7 100644 --- a/core/modules/startup/favicon.js +++ b/core/modules/startup/favicon.js @@ -38,6 +38,6 @@ function setFavicon() { var faviconLink = document.getElementById("faviconLink"); faviconLink.setAttribute("href","data:" + tiddler.fields.type + ";base64," + tiddler.fields.text); } -}; +} })(); diff --git a/core/modules/startup/render.js b/core/modules/startup/render.js index 865c7f5d8..8e1dafd71 100644 --- a/core/modules/startup/render.js +++ b/core/modules/startup/render.js @@ -19,7 +19,7 @@ exports.after = ["story"]; exports.synchronous = true; // Default story and history lists -var PAGE_TITLE_TITLE = "$:/core/wiki/title" +var PAGE_TITLE_TITLE = "$:/core/wiki/title"; var PAGE_STYLESHEET_TITLE = "$:/core/ui/PageStylesheet"; var PAGE_TEMPLATE_TITLE = "$:/core/ui/PageTemplate"; diff --git a/core/modules/startup/story.js b/core/modules/startup/story.js index 90bb9003d..6c7258485 100644 --- a/core/modules/startup/story.js +++ b/core/modules/startup/story.js @@ -48,7 +48,7 @@ exports.startup = function() { $tw.locationHash = hash; openStartupTiddlers({defaultToCurrentStory: true}); } - },false) + },false); // Listen for the tm-browser-refresh message $tw.rootWidget.addEventListener("tm-browser-refresh",function(event) { window.location.reload(true); @@ -157,7 +157,7 @@ function updateLocationHash(options) { } // Assemble the location hash if(options.updateAddressBar === "permalink") { - $tw.locationHash = "#" + encodeURIComponent(targetTiddler) + $tw.locationHash = "#" + encodeURIComponent(targetTiddler); } else { $tw.locationHash = "#" + encodeURIComponent(targetTiddler) + ":" + encodeURIComponent($tw.utils.stringifyList(storyList)); } diff --git a/core/modules/storyviews/classic.js b/core/modules/storyviews/classic.js index ceb54ee47..a600fe326 100644 --- a/core/modules/storyviews/classic.js +++ b/core/modules/storyviews/classic.js @@ -16,7 +16,7 @@ var easing = "cubic-bezier(0.645, 0.045, 0.355, 1)"; // From http://easings.net/ var ClassicStoryView = function(listWidget) { this.listWidget = listWidget; -} +}; ClassicStoryView.prototype.navigateTo = function(historyInfo) { var listElementIndex = this.listWidget.findListItem(0,historyInfo.title); diff --git a/core/modules/storyviews/pop.js b/core/modules/storyviews/pop.js index 51c014da6..b94a23df2 100644 --- a/core/modules/storyviews/pop.js +++ b/core/modules/storyviews/pop.js @@ -14,7 +14,7 @@ Animates list insertions and removals var PopStoryView = function(listWidget) { this.listWidget = listWidget; -} +}; PopStoryView.prototype.navigateTo = function(historyInfo) { var listElementIndex = this.listWidget.findListItem(0,historyInfo.title); diff --git a/core/modules/storyviews/zoomin.js b/core/modules/storyviews/zoomin.js index 46afb354a..51463e83b 100644 --- a/core/modules/storyviews/zoomin.js +++ b/core/modules/storyviews/zoomin.js @@ -86,7 +86,7 @@ ZoominListView.prototype.navigateTo = function(historyInfo) { ]); // Transform the previous tiddler out of the way and then hide it if(prevCurrentTiddler && prevCurrentTiddler !== targetElement) { - var scale = zoomBounds.width / sourceBounds.width; + scale = zoomBounds.width / sourceBounds.width; x = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale; y = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale; $tw.utils.setStyle(prevCurrentTiddler,[ diff --git a/core/modules/syncer.js b/core/modules/syncer.js index ba736f677..7d5880d1e 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -20,7 +20,7 @@ wiki: wiki to be synced function Syncer(options) { var self = this; this.wiki = options.wiki; - this.syncadaptor = options.syncadaptor + this.syncadaptor = options.syncadaptor; // Make a logger this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "")); // Compile the dirty tiddler filter @@ -40,7 +40,7 @@ function Syncer(options) { if($tw.browser) { // Set up our beforeunload handler window.addEventListener("beforeunload",function(event) { - var confirmationMessage = undefined; + var confirmationMessage; if(self.isDirty()) { confirmationMessage = $tw.language.getString("UnsavedChangesWarning"); event.returnValue = confirmationMessage; // Gecko @@ -94,10 +94,10 @@ Syncer.prototype.readTiddlerInfo = function() { $tw.utils.each(tiddlers,function(title) { var tiddler = self.wiki.getTiddler(title); self.tiddlerInfo[title] = { - revision: tiddler.fields["revision"], + revision: tiddler.fields.revision, adaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler), changeCount: self.wiki.getChangeCount(title) - } + }; }); }; @@ -329,7 +329,7 @@ Syncer.prototype.enqueueSyncTask = function(task) { revision: null, adaptorInfo: {}, changeCount: -1 - } + }; } // Bail if this is a save and the tiddler is already at the changeCount that the server has if(task.type === "save" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) { diff --git a/core/modules/upgraders/plugins.js b/core/modules/upgraders/plugins.js index 91948ff73..d770ea29a 100644 --- a/core/modules/upgraders/plugins.js +++ b/core/modules/upgraders/plugins.js @@ -36,10 +36,10 @@ exports.upgrade = function(wiki,titles,tiddlers) { $tw.utils.each(titles,function(title) { var incomingTiddler = tiddlers[title]; // Check if we're dealing with a plugin - if(incomingTiddler && incomingTiddler["plugin-type"] && incomingTiddler["version"]) { + if(incomingTiddler && incomingTiddler["plugin-type"] && incomingTiddler.version) { // Upgrade the incoming plugin if we've got a newer version in the upgrade library var libraryTiddler = getLibraryTiddler(title); - if(libraryTiddler && libraryTiddler["plugin-type"] && libraryTiddler["version"]) { + if(libraryTiddler && libraryTiddler["plugin-type"] && libraryTiddler.version) { if($tw.utils.checkVersions(libraryTiddler.version,incomingTiddler.version)) { tiddlers[title] = libraryTiddler; messages[title] = $tw.language.getString("Import/Upgrader/Plugins/Upgraded",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}}); diff --git a/core/modules/upgraders/themetweaks.js b/core/modules/upgraders/themetweaks.js index 8a15271e4..86ddc0f7e 100644 --- a/core/modules/upgraders/themetweaks.js +++ b/core/modules/upgraders/themetweaks.js @@ -51,10 +51,10 @@ exports.upgrade = function(wiki,titles,tiddlers) { tiddlers[mappedTitle] = { title: mappedTitle, text: tiddlerData[index] - } + }; messages[mappedTitle] = $tw.language.getString("Import/Upgrader/ThemeTweaks/Created",{variables: { from: title + "##" + index - }}) + }}); } } } diff --git a/core/modules/utils/dom/modal.js b/core/modules/utils/dom/modal.js index a27f84024..1c4e30c1c 100644 --- a/core/modules/utils/dom/modal.js +++ b/core/modules/utils/dom/modal.js @@ -93,7 +93,7 @@ Modal.prototype.display = function(title,options) { }); // Setup the link if present if(options.downloadLink) { - modalLink.href = options.downloadLink + modalLink.href = options.downloadLink; modalLink.appendChild(document.createTextNode("Right-click to save changes")); modalBody.appendChild(modalLink); } diff --git a/core/modules/utils/fakedom.js b/core/modules/utils/fakedom.js index 3904f95b0..dd36369a2 100755 --- a/core/modules/utils/fakedom.js +++ b/core/modules/utils/fakedom.js @@ -19,7 +19,7 @@ var bumpSequenceNumber = function(object) { if(sequenceNumber !== null) { object.sequenceNumber = sequenceNumber++; } -} +}; var TW_TextNode = function(text) { bumpSequenceNumber(this); @@ -79,7 +79,7 @@ TW_Element.prototype.insertBefore = function(node,nextSibling) { } else { this.appendChild(node); } -} +}; TW_Element.prototype.removeChild = function(node) { var p = this.children.indexOf(node); @@ -93,9 +93,9 @@ TW_Element.prototype.hasChildNodes = function() { }; Object.defineProperty(TW_Element.prototype, "firstChild", { - get: function() { - return this.children[0]; - } + get: function() { + return this.children[0]; + } }); TW_Element.prototype.addEventListener = function(type,listener,useCapture) { @@ -106,22 +106,22 @@ Object.defineProperty(TW_Element.prototype, "className", { get: function() { return this.attributes["class"] || ""; }, - set: function(value) { - this.attributes["class"] = value; - } + set: function(value) { + this.attributes["class"] = value; + } }); Object.defineProperty(TW_Element.prototype, "value", { get: function() { - return this.attributes["value"] || ""; + return this.attributes.value || ""; }, - set: function(value) { - this.attributes["value"] = value; - } + set: function(value) { + this.attributes.value = value; + } }); Object.defineProperty(TW_Element.prototype, "outerHTML", { - get: function() { + get: function() { var output = [],attr,a,v; output.push("<",this.tag); if(this.attributes) { @@ -143,7 +143,7 @@ Object.defineProperty(TW_Element.prototype, "outerHTML", { output.push("</",this.tag,">"); } return output.join(""); - } + } }); Object.defineProperty(TW_Element.prototype, "innerHTML", { @@ -162,10 +162,10 @@ Object.defineProperty(TW_Element.prototype, "innerHTML", { return b.join(""); } }, - set: function(value) { - this.isRaw = true; - this.rawHTML = value; - } + set: function(value) { + this.isRaw = true; + this.rawHTML = value; + } }); Object.defineProperty(TW_Element.prototype, "textContent", { @@ -193,7 +193,7 @@ Object.defineProperty(TW_Element.prototype, "formattedTextContent", { b.push("\n"); } if(this.tag === "li") { - b.push("* ") + b.push("* "); } $tw.utils.each(this.children,function(node) { b.push(node.formattedTextContent); diff --git a/core/modules/utils/filesystem.js b/core/modules/utils/filesystem.js index db7e5e26a..d0fe34645 100644 --- a/core/modules/utils/filesystem.js +++ b/core/modules/utils/filesystem.js @@ -41,7 +41,7 @@ exports.copyDirectory = function(srcPath,dstPath) { if(err) { return err; } - }; + } } }; copy(srcPath,dstPath); @@ -70,7 +70,7 @@ exports.copyFile = function(srcPath,dstPath) { fs.closeSync(srcFile); fs.closeSync(dstFile); return null; -} +}; /* Remove trailing path separator diff --git a/core/modules/utils/parsetree.js b/core/modules/utils/parsetree.js index dc811c727..26c7f9a1b 100644 --- a/core/modules/utils/parsetree.js +++ b/core/modules/utils/parsetree.js @@ -41,9 +41,9 @@ exports.addClassToParseTreeNode = function(node,classString) { exports.addStyleToParseTreeNode = function(node,name,value) { node.attributes = node.attributes || {}; - node.attributes["style"] = node.attributes["style"] || {type: "string", value: ""}; - if(node.attributes["style"].type === "string") { - node.attributes["style"].value += name + ":" + value + ";"; + node.attributes.style = node.attributes.style || {type: "string", value: ""}; + if(node.attributes.style.type === "string") { + node.attributes.style.value += name + ":" + value + ";"; } }; diff --git a/core/modules/utils/pluginmaker.js b/core/modules/utils/pluginmaker.js index eadef8e43..c3ef000b0 100644 --- a/core/modules/utils/pluginmaker.js +++ b/core/modules/utils/pluginmaker.js @@ -24,15 +24,16 @@ exports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) { throw "No such tiddler as " + title; } // Extract the JSON + var jsonPluginTiddler; try { - var jsonPluginTiddler = JSON.parse(pluginTiddler.fields.text); + jsonPluginTiddler = JSON.parse(pluginTiddler.fields.text); } catch(e) { throw "Cannot parse plugin tiddler " + title + "\nError: " + e; } // Get the list of tiddlers var tiddlers = Object.keys(jsonPluginTiddler.tiddlers); // Add the additional tiddlers - $tw.utils.pushTop(tiddlers,additionalTiddlers) + $tw.utils.pushTop(tiddlers,additionalTiddlers); // Remove any excluded tiddlers for(var t=tiddlers.length-1; t>=0; t--) { if(excludeTiddlers.indexOf(tiddlers[t]) !== -1) { @@ -75,6 +76,6 @@ exports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) { $tw.rootWidget.dispatchEvent({type: "tw-auto-save-wiki"}); // Return a heartwarming confirmation return "Plugin " + title + " successfully saved"; -} +}; })(); diff --git a/core/modules/widgets/dropzone.js b/core/modules/widgets/dropzone.js index 30f1ddb5c..edda8fa50 100644 --- a/core/modules/widgets/dropzone.js +++ b/core/modules/widgets/dropzone.js @@ -126,7 +126,7 @@ DropZoneWidget.prototype.importData = function(dataTransfer) { return; } } - }; + } }; DropZoneWidget.prototype.importDataTypes = [ diff --git a/core/modules/widgets/edit-bitmap.js b/core/modules/widgets/edit-bitmap.js index f73734cca..11728bea0 100644 --- a/core/modules/widgets/edit-bitmap.js +++ b/core/modules/widgets/edit-bitmap.js @@ -120,7 +120,7 @@ EditBitmapWidget.prototype.loadCanvas = function() { self.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT); // Set the width and height input boxes self.updateSize(); - } + }; // Get the current bitmap into an image object currImage.src = "data:" + tiddler.fields.type + ";base64," + tiddler.fields.text; }; @@ -135,7 +135,7 @@ EditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) { ctx.fillStyle = "#fff"; ctx.fillRect(0,0,canvas.width,canvas.height); } -} +}; /* ** Update the input boxes with the actual size of the canvas diff --git a/core/modules/widgets/fields.js b/core/modules/widgets/fields.js index aaa9761b6..511b6f7d5 100755 --- a/core/modules/widgets/fields.js +++ b/core/modules/widgets/fields.js @@ -78,7 +78,7 @@ FieldsWidget.prototype.execute = function() { row = row.replace("$name$",fieldName); row = row.replace("$value$",value); row = row.replace("$encoded_value$",$tw.utils.htmlEncode(value)); - text.push(row) + text.push(row); } } } diff --git a/core/modules/widgets/link.js b/core/modules/widgets/link.js index 0be1dbef0..60d3edd7d 100755 --- a/core/modules/widgets/link.js +++ b/core/modules/widgets/link.js @@ -35,7 +35,7 @@ LinkWidget.prototype.render = function(parent,nextSibling) { this.execute(); // Get the value of the tv-wikilinks configuration macro var wikiLinksMacro = this.getVariable("tv-wikilinks"), - useWikiLinks = wikiLinksMacro ? !(wikiLinksMacro.trim() === "no") : true; + useWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== "no") : true; // Render the link if required if(useWikiLinks) { this.renderLink(parent,nextSibling); diff --git a/core/modules/widgets/list.js b/core/modules/widgets/list.js index fd3b26dd9..0138e0837 100755 --- a/core/modules/widgets/list.js +++ b/core/modules/widgets/list.js @@ -44,7 +44,7 @@ ListWidget.prototype.render = function(parent,nextSibling) { // Construct the storyview var StoryView = this.storyViews[this.storyViewName]; if(StoryView && !this.document.isTiddlyWikiFakeDom) { - this.storyview = new StoryView(this) + this.storyview = new StoryView(this); } else { this.storyview = null; } diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js index e8edc321b..dcc0b0594 100755 --- a/core/modules/widgets/navigator.js +++ b/core/modules/widgets/navigator.js @@ -283,9 +283,10 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) { Generate a title for the draft of a given tiddler */ NavigatorWidget.prototype.generateDraftTitle = function(title) { - var c = 0; + var c = 0, + draftTitle; do { - var draftTitle = "Draft " + (c ? (c + 1) + " " : "") + "of '" + title + "'"; + draftTitle = "Draft " + (c ? (c + 1) + " " : "") + "of '" + title + "'"; c++; } while(this.wiki.tiddlerExists(draftTitle)); return draftTitle; diff --git a/core/modules/widgets/reveal.js b/core/modules/widgets/reveal.js index b2229631a..66a87f1af 100755 --- a/core/modules/widgets/reveal.js +++ b/core/modules/widgets/reveal.js @@ -41,7 +41,7 @@ RevealWidget.prototype.render = function(parent,nextSibling) { $tw.utils.addClass(domNode,"tc-popup"); // Make sure that clicks don't dismiss popups within the revealed content } if(!this.isOpen) { - domNode.setAttribute("hidden","true") + domNode.setAttribute("hidden","true"); } this.domNodes.push(domNode); }; diff --git a/core/modules/widgets/tiddler.js b/core/modules/widgets/tiddler.js index fcc4fabf1..6a86940c0 100755 --- a/core/modules/widgets/tiddler.js +++ b/core/modules/widgets/tiddler.js @@ -44,7 +44,7 @@ TiddlerWidget.prototype.execute = function() { this.setVariable("missingTiddlerClass",(this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? "tc-tiddler-exists" : "tc-tiddler-missing"); this.setVariable("shadowTiddlerClass",this.wiki.isShadowTiddler(this.tiddlerTitle) ? "tc-tiddler-shadow" : ""); this.setVariable("systemTiddlerClass",this.wiki.isSystemTiddler(this.tiddlerTitle) ? "tc-tiddler-system" : ""); - this.setVariable("tiddlerTagClasses",this.getTagClasses()) + this.setVariable("tiddlerTagClasses",this.getTagClasses()); // Construct the child widgets this.makeChildWidgets(); }; diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 9424dd6d8..d0f23c96d 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -171,7 +171,7 @@ Widget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) else for(var i=0; i<actualParams.length; ++i) { args.push(actualParams[i].value); } - return macro.run.apply(this,args) + return macro.run.apply(this,args); } else { return defaultValue; } @@ -289,7 +289,7 @@ Construct the widget object for a parse tree node Widget.prototype.makeChildWidget = function(parseTreeNode) { var WidgetClass = this.widgetClasses[parseTreeNode.type]; if(!WidgetClass) { - WidgetClass = this.widgetClasses["text"]; + WidgetClass = this.widgetClasses.text; parseTreeNode = {type: "text", text: "Undefined widget '" + parseTreeNode.type + "'"}; } return new WidgetClass(parseTreeNode,{ @@ -357,8 +357,7 @@ Widget.prototype.addEventListener = function(type,handler) { } else { // The handler is a function this.eventListeners[type] = function(event) { return handler.call(self,event); - } - + }; } }; diff --git a/core/modules/wiki.js b/core/modules/wiki.js index f8d3c8323..1c6263da9 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -158,7 +158,7 @@ exports.getSizeOfTiddlerEventQueue = function() { exports.clearTiddlerEventQueue = function() { this.changedTiddlers = Object.create(null); - this.changeCount = Object.create(null) + this.changeCount = Object.create(null); }; exports.getChangeCount = function(title) { @@ -176,12 +176,12 @@ Generate an unused title from the specified base exports.generateNewTitle = function(baseTitle,options) { options = options || {}; var c = 0, - title = baseTitle; + title = baseTitle; while(this.tiddlerExists(title) || this.isShadowTiddler(title)) { title = baseTitle + (options.prefix || " ") + (++c); - }; + } return title; }; @@ -461,7 +461,7 @@ exports.getTagMap = function() { for(var index=0; index<tagArray.length; index++) { var tag = tagArray[index]; if($tw.utils.hop(tags,tag)) { - tags[tag].push(title) + tags[tag].push(title); } else { tags[tag] = [title]; } @@ -600,7 +600,7 @@ exports.getTiddlerData = function(titleOrTiddler,defaultData) { var tiddler = titleOrTiddler, data; if(!(tiddler instanceof $tw.Tiddler)) { - tiddler = this.getTiddler(tiddler) + tiddler = this.getTiddler(tiddler); } if(tiddler && tiddler.fields.text) { switch(tiddler.fields.type) { @@ -683,7 +683,7 @@ exports.getGlobalCache = function(cacheName,initializer) { exports.clearGlobalCache = function() { this.globalCache = Object.create(null); -} +}; // Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it exports.getCacheForTiddler = function(title,cacheName,initializer) { @@ -691,18 +691,18 @@ exports.getCacheForTiddler = function(title,cacheName,initializer) { // Temporarily disable caching so that tweakParseTreeNode() works return initializer(); - this.caches = this.caches || Object.create(null); - var caches = this.caches[title]; - if(caches && caches[cacheName]) { - return caches[cacheName]; - } else { - if(!caches) { - caches = Object.create(null); - this.caches[title] = caches; - } - caches[cacheName] = initializer(); - return caches[cacheName]; - } +// this.caches = this.caches || Object.create(null); +// var caches = this.caches[title]; +// if(caches && caches[cacheName]) { +// return caches[cacheName]; +// } else { +// if(!caches) { +// caches = Object.create(null); +// this.caches[title] = caches; +// } +// caches[cacheName] = initializer(); +// return caches[cacheName]; +// } }; // Clear all caches associated with a particular tiddler @@ -793,16 +793,16 @@ var tweakParser = function(parser) { exports.parseText = function(type,text,options) { var parser = this.old_parseText(type,text,options); if(parser) { - tweakParser(parser) - }; + tweakParser(parser); + } return parser; }; exports.parseTiddler = function(title,options) { var parser = this.old_parseTiddler(title,options); if(parser) { - tweakParser(parser) - }; + tweakParser(parser); + } return parser; }; @@ -961,7 +961,9 @@ Options available: */ exports.search = function(text,options) { options = options || {}; - var self = this,t; + var self = this, + t, + invert = !!options.invert; // Convert the search string into a regexp for each term var terms, searchTermsRegExps, flags = options.caseSensitive ? "" : "i"; @@ -1011,7 +1013,7 @@ exports.search = function(text,options) { var results = [], source = options.source || this.each; source(function(tiddler,title) { - if(!!searchTiddler(title) === !options.invert) { + if(searchTiddler(title) !== options.invert) { results.push(title); } }); @@ -1060,7 +1062,7 @@ exports.readFiles = function(files,callback) { callback(result); } }); - }; + } return files.length; };