diff --git a/core/modules/filters/plugintiddlers.js b/core/modules/filters/plugintiddlers.js index 9845e8ce8..abb20f8f9 100644 --- a/core/modules/filters/plugintiddlers.js +++ b/core/modules/filters/plugintiddlers.js @@ -19,7 +19,7 @@ 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) { + if(pluginInfo && pluginInfo.tiddlers) { $tw.utils.each(pluginInfo.tiddlers,function(fields,title) { results.push(title); }); diff --git a/core/modules/savers/upload.js b/core/modules/savers/upload.js index bb426ed26..897496b6a 100644 --- a/core/modules/savers/upload.js +++ b/core/modules/savers/upload.js @@ -64,7 +64,11 @@ UploadSaver.prototype.save = function(text,method,callback) { } } }; - http.send(data); + try { + http.send(data); + } catch(ex) { + return callback("Error:" + ex); + } $tw.notifier.display("$:/language/Notifications/Save/Starting"); return true; }; diff --git a/core/modules/storyviews/classic.js b/core/modules/storyviews/classic.js index a600fe326..1474d4512 100644 --- a/core/modules/storyviews/classic.js +++ b/core/modules/storyviews/classic.js @@ -25,6 +25,10 @@ ClassicStoryView.prototype.navigateTo = function(historyInfo) { } var listItemWidget = this.listWidget.children[listElementIndex], targetElement = listItemWidget.findFirstDomNode(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + return; + } // Scroll the node into view this.listWidget.dispatchEvent({type: "tm-scroll", target: targetElement}); }; @@ -32,6 +36,10 @@ ClassicStoryView.prototype.navigateTo = function(historyInfo) { ClassicStoryView.prototype.insert = function(widget) { var targetElement = widget.findFirstDomNode(), duration = $tw.utils.getAnimationDuration(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + return; + } // Get the current height of the tiddler var computedStyle = window.getComputedStyle(targetElement), currMarginBottom = parseInt(computedStyle.marginBottom,10), @@ -62,7 +70,15 @@ ClassicStoryView.prototype.insert = function(widget) { ClassicStoryView.prototype.remove = function(widget) { var targetElement = widget.findFirstDomNode(), - duration = $tw.utils.getAnimationDuration(); + duration = $tw.utils.getAnimationDuration(), + removeElement = function() { + widget.removeChildDomNodes(); + }; + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + removeElement(); + return; + } // Get the current height of the tiddler var currWidth = targetElement.offsetWidth, computedStyle = window.getComputedStyle(targetElement), @@ -70,9 +86,7 @@ ClassicStoryView.prototype.remove = function(widget) { currMarginTop = parseInt(computedStyle.marginTop,10), currHeight = targetElement.offsetHeight + currMarginTop; // Remove the dom nodes of the widget at the end of the transition - setTimeout(function() { - widget.removeChildDomNodes(); - },duration); + setTimeout(removeElement,duration); // Animate the closure $tw.utils.setStyle(targetElement,[ {transition: "none"}, diff --git a/core/modules/storyviews/pop.js b/core/modules/storyviews/pop.js index b94a23df2..1896633f4 100644 --- a/core/modules/storyviews/pop.js +++ b/core/modules/storyviews/pop.js @@ -23,6 +23,10 @@ PopStoryView.prototype.navigateTo = function(historyInfo) { } var listItemWidget = this.listWidget.children[listElementIndex], targetElement = listItemWidget.findFirstDomNode(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + return; + } // Scroll the node into view this.listWidget.dispatchEvent({type: "tm-scroll", target: targetElement}); }; @@ -30,6 +34,10 @@ PopStoryView.prototype.navigateTo = function(historyInfo) { PopStoryView.prototype.insert = function(widget) { var targetElement = widget.findFirstDomNode(), duration = $tw.utils.getAnimationDuration(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + return; + } // Reset once the transition is over setTimeout(function() { $tw.utils.setStyle(targetElement,[ @@ -55,13 +63,19 @@ PopStoryView.prototype.insert = function(widget) { PopStoryView.prototype.remove = function(widget) { var targetElement = widget.findFirstDomNode(), - duration = $tw.utils.getAnimationDuration(); + duration = $tw.utils.getAnimationDuration(), + removeElement = function() { + if(targetElement.parentNode) { + widget.removeChildDomNodes(); + } + }; + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + removeElement(); + return; + } // Remove the element at the end of the transition - setTimeout(function() { - if(targetElement.parentNode) { - widget.removeChildDomNodes(); - } - },duration); + setTimeout(removeElement,duration); // Animate the closure $tw.utils.setStyle(targetElement,[ {transition: "none"}, diff --git a/core/modules/storyviews/zoomin.js b/core/modules/storyviews/zoomin.js index 51463e83b..0ae8e8f46 100644 --- a/core/modules/storyviews/zoomin.js +++ b/core/modules/storyviews/zoomin.js @@ -26,6 +26,10 @@ var ZoominListView = function(listWidget) { // Make all the tiddlers position absolute, and hide all but the top (or first) one $tw.utils.each(this.listWidget.children,function(itemWidget,index) { var domNode = itemWidget.findFirstDomNode(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(domNode instanceof Element)) { + return; + } if(targetTiddler !== itemWidget.parseTreeNode.itemTitle || (!targetTiddler && index)) { domNode.style.display = "none"; } else { @@ -43,6 +47,10 @@ ZoominListView.prototype.navigateTo = function(historyInfo) { } var listItemWidget = this.listWidget.children[listElementIndex], targetElement = listItemWidget.findFirstDomNode(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + return; + } // Make the new tiddler be position absolute and visible so that we can measure it $tw.utils.setStyle(targetElement,[ {position: "absolute"}, @@ -121,6 +129,10 @@ function findTitleDomNode(widget,targetClass) { ZoominListView.prototype.insert = function(widget) { var targetElement = widget.findFirstDomNode(); + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + return; + } // Make the newly inserted node position absolute and hidden $tw.utils.setStyle(targetElement,[ {display: "none"}, @@ -130,7 +142,15 @@ ZoominListView.prototype.insert = function(widget) { ZoominListView.prototype.remove = function(widget) { var targetElement = widget.findFirstDomNode(), - duration = $tw.utils.getAnimationDuration(); + duration = $tw.utils.getAnimationDuration(), + removeElement = function() { + widget.removeChildDomNodes(); + }; + // Abandon if the list entry isn't a DOM element (it might be a text node) + if(!(targetElement instanceof Element)) { + removeElement(); + return; + } // Set up the tiddler that is being closed $tw.utils.setStyle(targetElement,[ {position: "absolute"}, @@ -170,10 +190,7 @@ ZoominListView.prototype.remove = function(widget) { {opacity: "0"}, {zIndex: "0"} ]); - setTimeout(function() { - // Delete the DOM node when the transition is over - widget.removeChildDomNodes(); - },duration); + setTimeout(removeElement,duration); // Now the tiddler we're going back to if(toWidgetDomNode) { $tw.utils.setStyle(toWidgetDomNode,[ diff --git a/core/modules/wiki.js b/core/modules/wiki.js index 1f4bed260..e9df6b68c 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -570,7 +570,7 @@ exports.sortByList = function(array,listTitle) { exports.getSubTiddler = function(title,subTiddlerTitle) { var bundleInfo = this.getPluginInfo(title) || this.getTiddlerData(title); - if(bundleInfo) { + if(bundleInfo && bundleInfo.tiddlers) { var subTiddler = bundleInfo.tiddlers[subTiddlerTitle]; if(subTiddler) { return new $tw.Tiddler(subTiddler); diff --git a/core/ui/MoreSideBar/Tags.tid b/core/ui/MoreSideBar/Tags.tid index 3ea7e54e6..1ba364617 100644 --- a/core/ui/MoreSideBar/Tags.tid +++ b/core/ui/MoreSideBar/Tags.tid @@ -22,6 +22,6 @@ caption: {{$:/language/SideBar/Tags/Caption}} ----- +
{{$:/core/ui/UntaggedTemplate}} <$count filter="[untagged[]!is[system]] -[tags[]]"/> diff --git a/editions/de-AT/tiddlers/beispiele/Erstellen von Notizen.tid b/editions/de-AT/tiddlers/beispiele/Erstellen von Notizen.tid index 5113413e8..02773f0e0 100644 --- a/editions/de-AT/tiddlers/beispiele/Erstellen von Notizen.tid +++ b/editions/de-AT/tiddlers/beispiele/Erstellen von Notizen.tid @@ -33,6 +33,6 @@ Dieser Tiddler ist mit [[Was kann TiddlyWiki]] getaggt. Dadurch wird er automati !! ~WikiLinks -Wie sie oben in der "Brainstorming" Liste sehen können, verwende ich dort WikiLinks. Auf diese Weise werden aus den Wörtern automatisch Links erstellt. Der Vorteil hier ist, das der Schreibfluss nicht durch das tippen von `[[]]` unterbrochen wird. +Wie Sie oben in der "Brainstorming" Liste sehen können, verwende ich dort WikiLinks. Auf diese Weise werden aus den Wörtern automatisch Links erstellt. Der Vorteil hier ist, das der Schreibfluss nicht durch das tippen von `[[]]` unterbrochen wird. diff --git a/editions/de-AT/tiddlers/beispiele/Ideensammlung.tid b/editions/de-AT/tiddlers/beispiele/Ideensammlung.tid index 8fd55a734..82b5c5b0d 100644 --- a/editions/de-AT/tiddlers/beispiele/Ideensammlung.tid +++ b/editions/de-AT/tiddlers/beispiele/Ideensammlung.tid @@ -6,7 +6,7 @@ tags: [[Was kann TiddlyWiki]] [[Transklusion in WikiText]] title: Ideensammlung type: text/vnd.tiddlywiki -Weil ich zu faul bin um hier das gleiche zu schreiben wie in [[Erstellen von Notizen]] [[transkludiere|Transklusion]] ich es mit: `{{Erstellen von Notizen}}`. Wenn sie sehen wollen wie das genau geht, dann öffnen sie diesen Tiddler im Edit Modus oder sehen sich [[Transklusion in WikiText]] genau an! +Weil ich zu faul bin um hier das gleiche zu schreiben wie in [[Erstellen von Notizen]] [[transkludiere|Transklusion]] ich es mit: `{{Erstellen von Notizen}}`. Wenn Sie sehen wollen wie das genau geht, dann öffnen Sie diesen Tiddler im Edit Modus oder sehen sich [[Transklusion in WikiText]] genau an! --- diff --git a/editions/de-AT/tiddlers/beispiele/ReiterEins.tid b/editions/de-AT/tiddlers/beispiele/ReiterEins.tid index 8ce65e231..20f0c2c8e 100644 --- a/editions/de-AT/tiddlers/beispiele/ReiterEins.tid +++ b/editions/de-AT/tiddlers/beispiele/ReiterEins.tid @@ -6,4 +6,4 @@ tags: TabsMakro title: ReiterEins type: text/vnd.tiddlywiki -ReiterEins: Wenn sie im rechten Menü den Reiter "Mehr: System" auswählen, dann können sie die [[Status Tiddler]]: `$:state/tab1-########` sehen. Wenn sie diese öffnen, dann sehen sie, welcher Reiter gerade aktiv ist. \ No newline at end of file +ReiterEins: Wenn Sie im rechten Menü den Reiter "Mehr: System" auswählen, dann können Sie die [[Status Tiddler]]: `$:state/tab1-########` sehen. Wenn Sie diese öffnen, dann sehen Sie, welcher Reiter gerade aktiv ist. \ No newline at end of file diff --git a/editions/de-AT/tiddlers/beispiele/Was kann TiddlyWiki.tid b/editions/de-AT/tiddlers/beispiele/Was kann TiddlyWiki.tid index f40345883..3a3d500a7 100644 --- a/editions/de-AT/tiddlers/beispiele/Was kann TiddlyWiki.tid +++ b/editions/de-AT/tiddlers/beispiele/Was kann TiddlyWiki.tid @@ -18,4 +18,4 @@ type: text/vnd.tiddlywiki * Da ~TiddlyWiki eine einzelne Datei ist, ist es sehr einfach sie mit anderen zu teilen. zB: Per mail verschicken --- fertig. * Erstellen einer lokalen Wissensdatenbank mit mehreren vernetzten ~TiddlyWiki Dateien. -Weitere interessante Anwendungsmöglichkeiten finden sie unter [[Community]] und auf http://tiddlywiki.com \ No newline at end of file +Weitere interessante Anwendungsmöglichkeiten finden Sie unter [[Community]] und auf http://tiddlywiki.com \ No newline at end of file diff --git a/editions/de-AT/tiddlers/bilder/Bilder Gallerie Beispiel.tid b/editions/de-AT/tiddlers/bilder/Bilder Gallerie Beispiel.tid index 4855c72dd..fab8a9bb0 100644 --- a/editions/de-AT/tiddlers/bilder/Bilder Gallerie Beispiel.tid +++ b/editions/de-AT/tiddlers/bilder/Bilder Gallerie Beispiel.tid @@ -6,7 +6,7 @@ tags: [[Was kann TiddlyWiki]] title: Bilder Gallerie Beispiel type: text/vnd.tiddlywiki -Hier ist ein Beispiel, wie mit dem ListWidget und dem TranscludeWidget eine einfache Bildergalerie erstellt werden kann. Bearbeiten sie diesen Tiddler, um zu sehen, wie! +Hier ist ein Beispiel, wie mit dem ListWidget und dem TranscludeWidget eine einfache Bildergalerie erstellt werden kann. Bearbeiten Sie diesen Tiddler, um zu sehen, wie!