| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,88 @@ | ||
| /*\ | ||
| title: $:/core/modules/widgets/draggable.js | ||
| type: application/javascript | ||
| module-type: widget | ||
| Draggable widget | ||
| \*/ | ||
| (function(){ | ||
|
|
||
| /*jslint node: true, browser: true */ | ||
| /*global $tw: false */ | ||
| "use strict"; | ||
|
|
||
| var Widget = require("$:/core/modules/widgets/widget.js").widget; | ||
|
|
||
| var DraggableWidget = function(parseTreeNode,options) { | ||
| this.initialise(parseTreeNode,options); | ||
| }; | ||
|
|
||
| /* | ||
| Inherit from the base widget class | ||
| */ | ||
| DraggableWidget.prototype = new Widget(); | ||
|
|
||
| /* | ||
| Render this widget into the DOM | ||
| */ | ||
| DraggableWidget.prototype.render = function(parent,nextSibling) { | ||
| var self = this; | ||
| // Save the parent dom node | ||
| this.parentDomNode = parent; | ||
| // Compute our attributes | ||
| this.computeAttributes(); | ||
| // Execute our logic | ||
| this.execute(); | ||
| // Sanitise the specified tag | ||
| var tag = this.draggableTag; | ||
| if($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) { | ||
| tag = "div"; | ||
| } | ||
| // Create our element | ||
| var domNode = this.document.createElement(tag); | ||
| // Assign classes | ||
| var classes = ["tc-draggable"]; | ||
| if(this.draggableClasses) { | ||
| classes.push(this.draggableClasses); | ||
| } | ||
| domNode.setAttribute("class",classes.join(" ")); | ||
| // Add event handlers | ||
| $tw.utils.makeDraggable({ | ||
| domNode: domNode, | ||
| dragTiddlerFn: function() {return self.getAttribute("tiddler");}, | ||
| dragFilterFn: function() {return self.getAttribute("filter");}, | ||
| widget: this | ||
| }); | ||
| // Insert the link into the DOM and render any children | ||
| parent.insertBefore(domNode,nextSibling); | ||
| this.renderChildren(domNode,null); | ||
| this.domNodes.push(domNode); | ||
| }; | ||
|
|
||
| /* | ||
| Compute the internal state of the widget | ||
| */ | ||
| DraggableWidget.prototype.execute = function() { | ||
| // Pick up our attributes | ||
| this.draggableTag = this.getAttribute("tag","div"); | ||
| this.draggableClasses = this.getAttribute("class"); | ||
| // Make the child widgets | ||
| this.makeChildWidgets(); | ||
| }; | ||
|
|
||
| /* | ||
| Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering | ||
| */ | ||
| DraggableWidget.prototype.refresh = function(changedTiddlers) { | ||
| var changedAttributes = this.computeAttributes(); | ||
| if(changedTiddlers.tag || changedTiddlers["class"]) { | ||
| this.refreshSelf(); | ||
| return true; | ||
| } | ||
| return this.refreshChildren(changedTiddlers); | ||
| }; | ||
|
|
||
| exports.draggable = DraggableWidget; | ||
|
|
||
| })(); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,161 @@ | ||
| /*\ | ||
| title: $:/core/modules/widgets/droppable.js | ||
| type: application/javascript | ||
| module-type: widget | ||
| Droppable widget | ||
| \*/ | ||
| (function(){ | ||
|
|
||
| /*jslint node: true, browser: true */ | ||
| /*global $tw: false */ | ||
| "use strict"; | ||
|
|
||
| var Widget = require("$:/core/modules/widgets/widget.js").widget; | ||
|
|
||
| var DroppableWidget = function(parseTreeNode,options) { | ||
| this.initialise(parseTreeNode,options); | ||
| }; | ||
|
|
||
| /* | ||
| Inherit from the base widget class | ||
| */ | ||
| DroppableWidget.prototype = new Widget(); | ||
|
|
||
| /* | ||
| Render this widget into the DOM | ||
| */ | ||
| DroppableWidget.prototype.render = function(parent,nextSibling) { | ||
| var self = this; | ||
| // Remember parent | ||
| this.parentDomNode = parent; | ||
| // Compute attributes and execute state | ||
| this.computeAttributes(); | ||
| this.execute(); | ||
| var tag = this.parseTreeNode.isBlock ? "div" : "span"; | ||
| if(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) { | ||
| tag = this.droppableTag; | ||
| } | ||
| // Create element and assign classes | ||
| var domNode = this.document.createElement(tag), | ||
| classes = (this["class"] || "").split(" "); | ||
| classes.push("tc-droppable"); | ||
| domNode.className = classes.join(" "); | ||
| // Add event handlers | ||
| $tw.utils.addEventListeners(domNode,[ | ||
| {name: "dragenter", handlerObject: this, handlerMethod: "handleDragEnterEvent"}, | ||
| {name: "dragover", handlerObject: this, handlerMethod: "handleDragOverEvent"}, | ||
| {name: "dragleave", handlerObject: this, handlerMethod: "handleDragLeaveEvent"}, | ||
| {name: "drop", handlerObject: this, handlerMethod: "handleDropEvent"} | ||
| ]); | ||
| // Insert element | ||
| parent.insertBefore(domNode,nextSibling); | ||
| this.renderChildren(domNode,null); | ||
| this.domNodes.push(domNode); | ||
| // Stack of outstanding enter/leave events | ||
| this.currentlyEntered = []; | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.enterDrag = function(event) { | ||
| if(this.currentlyEntered.indexOf(event.target) === -1) { | ||
| this.currentlyEntered.push(event.target); | ||
| } | ||
| // If we're entering for the first time we need to apply highlighting | ||
| $tw.utils.addClass(this.domNodes[0],"tc-dragover"); | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.leaveDrag = function(event) { | ||
| var pos = this.currentlyEntered.indexOf(event.target); | ||
| if(pos !== -1) { | ||
| this.currentlyEntered.splice(pos,1); | ||
| } | ||
| // Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone | ||
| if(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) { | ||
| this.currentlyEntered = []; | ||
| $tw.utils.removeClass(this.domNodes[0],"tc-dragover"); | ||
| } | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.handleDragEnterEvent = function(event) { | ||
| this.enterDrag(event); | ||
| // Tell the browser that we're ready to handle the drop | ||
| event.preventDefault(); | ||
| // Tell the browser not to ripple the drag up to any parent drop handlers | ||
| event.stopPropagation(); | ||
| return false; | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.handleDragOverEvent = function(event) { | ||
| // Check for being over a TEXTAREA or INPUT | ||
| if(["TEXTAREA","INPUT"].indexOf(event.target.tagName) !== -1) { | ||
| return false; | ||
| } | ||
| // Tell the browser that we're still interested in the drop | ||
| event.preventDefault(); | ||
| // Set the drop effect | ||
| event.dataTransfer.dropEffect = this.droppableEffect; | ||
| return false; | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.handleDragLeaveEvent = function(event) { | ||
| this.leaveDrag(event); | ||
| return false; | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.handleDropEvent = function(event) { | ||
| var self = this; | ||
| this.leaveDrag(event); | ||
| // Check for being over a TEXTAREA or INPUT | ||
| if(["TEXTAREA","INPUT"].indexOf(event.target.tagName) !== -1) { | ||
| return false; | ||
| } | ||
| var dataTransfer = event.dataTransfer; | ||
| // Remove highlighting | ||
| $tw.utils.removeClass(this.domNodes[0],"tc-dragover"); | ||
| // Try to import the various data types we understand | ||
| $tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) { | ||
| fieldsArray.forEach(function(fields) { | ||
| self.performActions(fields.title || fields.text,event); | ||
| }); | ||
| }); | ||
| // Tell the browser that we handled the drop | ||
| event.preventDefault(); | ||
| // Stop the drop ripple up to any parent handlers | ||
| event.stopPropagation(); | ||
| return false; | ||
| }; | ||
|
|
||
| DroppableWidget.prototype.performActions = function(title,event) { | ||
| if(this.droppableActions) { | ||
| this.invokeActionString(this.droppableActions,this,event,{actionTiddler: title}); | ||
| } | ||
| }; | ||
|
|
||
| /* | ||
| Compute the internal state of the widget | ||
| */ | ||
| DroppableWidget.prototype.execute = function() { | ||
| this.droppableActions = this.getAttribute("actions"); | ||
| this.droppableEffect = this.getAttribute("effect","copy"); | ||
| this.droppableTag = this.getAttribute("tag"); | ||
| this.droppableClass = this.getAttribute("class"); | ||
| // Make child widgets | ||
| this.makeChildWidgets(); | ||
| }; | ||
|
|
||
| /* | ||
| Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering | ||
| */ | ||
| DroppableWidget.prototype.refresh = function(changedTiddlers) { | ||
| var changedAttributes = this.computeAttributes(); | ||
| if(changedAttributes["class"] || changedAttributes.tag) { | ||
| this.refreshSelf(); | ||
| return true; | ||
| } | ||
| return this.refreshChildren(changedTiddlers); | ||
| }; | ||
|
|
||
| exports.droppable = DroppableWidget; | ||
|
|
||
| })(); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| title: $:/library/sjcl.js/license | ||
| type: text/plain | ||
|
|
||
| SJCL is open. You can use, modify and redistribute it under a BSD | ||
| license or under the GNU GPL, version 2.0. | ||
|
|
||
| --------------------------------------------------------------------- | ||
|
|
||
| http://opensource.org/licenses/BSD-2-Clause | ||
|
|
||
| Copyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at | ||
| Stanford University. All rights reserved. | ||
|
|
||
| Redistribution and use in source and binary forms, with or without | ||
| modification, are permitted provided that the following conditions are | ||
| met: | ||
|
|
||
| 1. Redistributions of source code must retain the above copyright | ||
| notice, this list of conditions and the following disclaimer. | ||
|
|
||
| 2. Redistributions in binary form must reproduce the above copyright | ||
| notice, this list of conditions and the following disclaimer in the | ||
| documentation and/or other materials provided with the distribution. | ||
|
|
||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS | ||
| IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||
| TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | ||
| PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ||
| TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
| PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
| LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
| NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
|
||
| --------------------------------------------------------------------- | ||
|
|
||
| http://opensource.org/licenses/GPL-2.0 | ||
|
|
||
| The Stanford Javascript Crypto Library (hosted here on GitHub) is a | ||
| project by the Stanford Computer Security Lab to build a secure, | ||
| powerful, fast, small, easy-to-use, cross-browser library for | ||
| cryptography in Javascript. | ||
|
|
||
| Copyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at | ||
| Stanford University. | ||
|
|
||
| This program is free software; you can redistribute it and/or modify it | ||
| under the terms of the GNU General Public License as published by the | ||
| Free Software Foundation; either version 2 of the License, or (at your | ||
| option) any later version. | ||
|
|
||
| This program is distributed in the hope that it will be useful, but | ||
| WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | ||
| Public License for more details. | ||
|
|
||
| You should have received a copy of the GNU General Public License along | ||
| with this program; if not, write to the Free Software Foundation, Inc., | ||
| 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| title: $:/core/templates/json-tiddler | ||
|
|
||
| <!-- | ||
|
|
||
| This template is used for saving tiddlers as raw JSON | ||
|
|
||
| --><$text text=<<jsontiddler>>/> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,7 +10,7 @@ tags: $:/tags/AboveStory | |
|
|
||
| <ul> | ||
|
|
||
| <$list filter="[all[system+tiddlers]tag[systemConfig]]"> | ||
|
|
||
| <li> | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,95 @@ | ||
| title: $:/core/ui/Components/plugin-info | ||
|
|
||
| \define lingo-base() $:/language/ControlPanel/Plugins/ | ||
|
|
||
| \define popup-state-macro() | ||
| $(qualified-state)$-$(currentTiddler)$ | ||
| \end | ||
|
|
||
| \define tabs-state-macro() | ||
| $(popup-state)$-$(pluginInfoType)$ | ||
| \end | ||
|
|
||
| \define plugin-icon-title() | ||
| $(currentTiddler)$/icon | ||
| \end | ||
|
|
||
| \define plugin-disable-title() | ||
| $:/config/Plugins/Disabled/$(currentTiddler)$ | ||
| \end | ||
|
|
||
| \define plugin-table-body(type,disabledMessage,default-popup-state) | ||
| <div class="tc-plugin-info-chunk tc-small-icon"> | ||
| <$reveal type="nomatch" state=<<popup-state>> text="yes" default="""$default-popup-state$"""> | ||
| <$button class="tc-btn-invisible tc-btn-dropdown" set=<<popup-state>> setTo="yes"> | ||
| {{$:/core/images/right-arrow}} | ||
| </$button> | ||
| </$reveal> | ||
| <$reveal type="match" state=<<popup-state>> text="yes" default="""$default-popup-state$"""> | ||
| <$button class="tc-btn-invisible tc-btn-dropdown" set=<<popup-state>> setTo="no"> | ||
| {{$:/core/images/down-arrow}} | ||
| </$button> | ||
| </$reveal> | ||
| </div> | ||
| <div class="tc-plugin-info-chunk"> | ||
| <$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>> | ||
| <$transclude tiddler="$:/core/images/plugin-generic-$type$"/> | ||
| </$transclude> | ||
| </div> | ||
| <div class="tc-plugin-info-chunk"> | ||
| <h1> | ||
| ''<$view field="description"><$view field="title"/></$view>'' $disabledMessage$ | ||
| </h1> | ||
| <h2> | ||
| <$view field="title"/> | ||
| </h2> | ||
| <h2> | ||
| <div><em><$view field="version"/></em></div> | ||
| </h2> | ||
| </div> | ||
| \end | ||
|
|
||
| \define plugin-info(type,default-popup-state) | ||
| <$set name="popup-state" value=<<popup-state-macro>>> | ||
| <$reveal type="nomatch" state=<<plugin-disable-title>> text="yes"> | ||
| <$link to={{!!title}} class="tc-plugin-info"> | ||
| <<plugin-table-body type:"$type$" default-popup-state:"""$default-popup-state$""">> | ||
| </$link> | ||
| </$reveal> | ||
| <$reveal type="match" state=<<plugin-disable-title>> text="yes"> | ||
| <$link to={{!!title}} class="tc-plugin-info tc-plugin-info-disabled"> | ||
| <<plugin-table-body type:"$type$" default-popup-state:"""$default-popup-state$""" disabledMessage:"<$macrocall $name='lingo' title='Disabled/Status'/>">> | ||
| </$link> | ||
| </$reveal> | ||
| <$reveal type="match" text="yes" state=<<popup-state>> default="""$default-popup-state$"""> | ||
| <div class="tc-plugin-info-dropdown"> | ||
| <div class="tc-plugin-info-dropdown-body"> | ||
| <$list filter="[all[current]] -[[$:/core]]"> | ||
| <div style="float:right;"> | ||
| <$reveal type="nomatch" state=<<plugin-disable-title>> text="yes"> | ||
| <$button set=<<plugin-disable-title>> setTo="yes" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}> | ||
| <<lingo Disable/Caption>> | ||
| </$button> | ||
| </$reveal> | ||
| <$reveal type="match" state=<<plugin-disable-title>> text="yes"> | ||
| <$button set=<<plugin-disable-title>> setTo="no" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}> | ||
| <<lingo Enable/Caption>> | ||
| </$button> | ||
| </$reveal> | ||
| </div> | ||
| </$list> | ||
| <$reveal type="nomatch" text="" state="!!list"> | ||
| <$set name="tabsList" filter="[<currentTiddler>list[]] contents"> | ||
| <$macrocall $name="tabs" state=<<tabs-state-macro>> tabsList=<<tabsList>> default="readme" template="$:/core/ui/PluginInfo"/> | ||
| </$set> | ||
| </$reveal> | ||
| <$reveal type="match" text="" state="!!list"> | ||
| <<lingo NoInformation/Hint>> | ||
| </$reveal> | ||
| </div> | ||
| </div> | ||
| </$reveal> | ||
| </$set> | ||
| \end | ||
|
|
||
| <$macrocall $name="plugin-info" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| title: $:/core/ui/ControlPanel/Saving/DownloadSaver | ||
| tags: $:/tags/ControlPanel/Saving | ||
| caption: {{$:/language/ControlPanel/Saving/DownloadSaver/Caption}} | ||
|
|
||
| \define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/ | ||
|
|
||
| <<lingo Hint>> | ||
|
|
||
| !! <$link to="$:/config/DownloadSaver/AutoSave"><<lingo AutoSave/Hint>></$link> | ||
|
|
||
| <$checkbox tiddler="$:/config/DownloadSaver/AutoSave" field="text" checked="yes" unchecked="no" default="no"> <<lingo AutoSave/Description>> </$checkbox> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| title: $:/core/ui/ControlPanel/Saving/General | ||
| tags: $:/tags/ControlPanel/Saving | ||
| caption: {{$:/language/ControlPanel/Saving/General/Caption}} | ||
| list-before: | ||
|
|
||
| \define lingo-base() $:/language/ControlPanel/Settings/ | ||
|
|
||
| {{$:/language/ControlPanel/Saving/General/Hint}} | ||
|
|
||
| !! <$link to="$:/config/AutoSave"><<lingo AutoSave/Caption>></$link> | ||
|
|
||
| <<lingo AutoSave/Hint>> | ||
|
|
||
| <$radio tiddler="$:/config/AutoSave" value="yes"> <<lingo AutoSave/Enabled/Description>> </$radio> | ||
|
|
||
| <$radio tiddler="$:/config/AutoSave" value="no"> <<lingo AutoSave/Disabled/Description>> </$radio> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| title: $:/core/ui/ControlPanel/Saving/TiddlySpot | ||
| tags: $:/tags/ControlPanel/Saving | ||
| caption: {{$:/language/ControlPanel/Saving/TiddlySpot/Caption}} | ||
|
|
||
| \define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/ | ||
|
|
||
| \define backupURL() | ||
| http://$(userName)$.tiddlyspot.com/backup/ | ||
| \end | ||
| \define backupLink() | ||
| <$reveal type="nomatch" state="$:/UploadName" text=""> | ||
| <$set name="userName" value={{$:/UploadName}}> | ||
| <$reveal type="match" state="$:/UploadURL" text=""> | ||
| <<backupURL>> | ||
| </$reveal> | ||
| <$reveal type="nomatch" state="$:/UploadURL" text=""> | ||
| <$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>> | ||
| </$reveal> | ||
| </$set> | ||
| </$reveal> | ||
| \end | ||
|
|
||
| <<lingo Description>> | ||
|
|
||
| |<<lingo UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> | | ||
| |<<lingo Password>> |<$password name="upload"/> | | ||
| |<<lingo Backups>> |<<backupLink>> | | ||
|
|
||
| ''<<lingo Advanced/Heading>>'' | ||
|
|
||
| |<<lingo ServerURL>> |<$edit-text tiddler="$:/UploadURL" default="" tag="input"/> | | ||
| |<<lingo Filename>> |<$edit-text tiddler="$:/UploadFilename" default="index.html" tag="input"/> | | ||
| |<<lingo UploadDir>> |<$edit-text tiddler="$:/UploadDir" default="." tag="input"/> | | ||
| |<<lingo BackupDir>> |<$edit-text tiddler="$:/UploadBackupDir" default="." tag="input"/> | | ||
|
|
||
| <<lingo TiddlySpot/Hint>> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| title: $:/core/ui/ControlPanel/Settings/InfoPanelMode | ||
| tags: $:/tags/ControlPanel/Settings | ||
| caption: {{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}} | ||
|
|
||
| \define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/ | ||
| <$link to="$:/config/TiddlerInfo/Mode"><<lingo Hint>></$link> | ||
|
|
||
| <$radio tiddler="$:/config/TiddlerInfo/Mode" value="popup"> <<lingo Popup/Description>> </$radio> | ||
|
|
||
| <$radio tiddler="$:/config/TiddlerInfo/Mode" value="sticky"> <<lingo Sticky/Description>> </$radio> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| title: $:/core/ui/ControlPanel/Toolbars/EditorItemTemplate | ||
|
|
||
| \define config-title() | ||
| $(config-base)$$(currentTiddler)$ | ||
| \end | ||
|
|
||
| <$draggable tiddler=<<currentTiddler>>> | ||
| <$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <span class="tc-icon-wrapper"><$transclude tiddler={{!!icon}}/></span> <$transclude field="caption"/> -- <i class="tc-muted"><$transclude field="description"/></i> | ||
| </$draggable> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| title: $:/core/ui/ControlPanel/Toolbars/ItemTemplate | ||
|
|
||
| \define config-title() | ||
| $(config-base)$$(currentTiddler)$ | ||
| \end | ||
|
|
||
| <$draggable tiddler=<<currentTiddler>>> | ||
| <$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <span class="tc-icon-wrapper"> <$transclude field="caption"/> <i class="tc-muted">-- <$transclude field="description"/></i></span> | ||
| </$draggable> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,16 +1,26 @@ | ||
| title: $:/core/ui/EditTemplate | ||
|
|
||
| \define actions() | ||
| <$action-sendmessage $message="tm-add-tag" $param={{$:/temp/NewTagName}}/> | ||
| <$action-deletetiddler $tiddler="$:/temp/NewTagName"/> | ||
| <$action-sendmessage $message="tm-add-field" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/> | ||
| <$action-deletetiddler $tiddler="$:/temp/newfieldname"/> | ||
| <$action-deletetiddler $tiddler="$:/temp/newfieldvalue"/> | ||
| <$action-sendmessage $message="tm-save-tiddler"/> | ||
| \end | ||
| \define frame-classes() | ||
| tc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ | ||
| \end | ||
| <div class=<<frame-classes>>> | ||
| <$fieldmangler> | ||
| <$set name="storyTiddler" value=<<currentTiddler>>> | ||
| <$keyboard key="((cancel-edit-tiddler))" message="tm-cancel-tiddler"> | ||
| <$keyboard key="((save-tiddler))" actions=<<actions>>> | ||
| <$list filter="[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]" variable="listItem"> | ||
| <$transclude tiddler=<<listItem>>/> | ||
| </$list> | ||
| </$keyboard> | ||
| </$keyboard> | ||
| </$set> | ||
| </$fieldmangler> | ||
| </div> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,18 +1,44 @@ | ||
| title: $:/core/ui/EditTemplate/title | ||
| tags: $:/tags/EditTemplate | ||
|
|
||
| <$edit-text field="draft.title" class="tc-titlebar tc-edit-texteditor" focus="true"/> | ||
|
|
||
| <$vars pattern="""[\|\[\]{}]""" bad-chars="""`| [ ] { }`"""> | ||
|
|
||
| <$list filter="[is[current]regexp:draft.title<pattern>]" variable="listItem"> | ||
|
|
||
| <div class="tc-message-box"> | ||
|
|
||
| {{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}} | ||
|
|
||
| </div> | ||
|
|
||
| </$list> | ||
|
|
||
| </$vars> | ||
|
|
||
| <$reveal state="!!draft.title" type="nomatch" text={{!!draft.of}} tag="div"> | ||
|
|
||
| <$list filter="[{!!draft.title}!is[missing]]" variable="listItem"> | ||
|
|
||
| <div class="tc-message-box"> | ||
|
|
||
| {{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}} | ||
|
|
||
| </div> | ||
|
|
||
| </$list> | ||
|
|
||
| <$list filter="[{!!draft.of}!is[missing]]" variable="listItem"> | ||
|
|
||
| <$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}> | ||
|
|
||
| <$checkbox tiddler="$:/config/RelinkOnRename" field="text" checked="yes" unchecked="no" default="no"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox> | ||
|
|
||
| </$vars> | ||
|
|
||
| </$list> | ||
|
|
||
| </$reveal> | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| title: $:/core/Filters/StoryList | ||
| tags: $:/tags/Filter | ||
| filter: [list[$:/StoryList]] -$:/AdvancedSearch | ||
| description: {{$:/language/Filters/StoryList}} | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,92 @@ | ||
| title: $:/Manager | ||
| icon: $:/core/images/list | ||
| color: #bbb | ||
|
|
||
| \define lingo-base() $:/language/Manager/ | ||
|
|
||
| \define list-item-content-item() | ||
| <div class="tc-manager-list-item-content-item"> | ||
| <$vars state-title="""$:/state/popup/manager/item/$(listItem)$"""> | ||
| <$reveal state=<<state-title>> type="match" text="show" default="show" tag="div"> | ||
| <$button set=<<state-title>> setTo="hide" class="tc-btn-invisible tc-manager-list-item-content-item-heading"> | ||
| {{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field="caption"/> | ||
| </$button> | ||
| </$reveal> | ||
| <$reveal state=<<state-title>> type="nomatch" text="show" default="show" tag="div"> | ||
| <$button set=<<state-title>> setTo="show" class="tc-btn-invisible tc-manager-list-item-content-item-heading"> | ||
| {{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field="caption"/> | ||
| </$button> | ||
| </$reveal> | ||
| <$reveal state=<<state-title>> type="match" text="show" default="show" tag="div" class="tc-manager-list-item-content-item-body"> | ||
| <$transclude tiddler=<<listItem>>/> | ||
| </$reveal> | ||
| </$vars> | ||
| </div> | ||
| \end | ||
|
|
||
| <div class="tc-manager-wrapper"> | ||
| <div class="tc-manager-controls"> | ||
| <div class="tc-manager-control"> | ||
| <<lingo Controls/Show/Prompt>> <$select tiddler="$:/config/Manager/Show" default="tiddlers"> | ||
| <option value="tiddlers"><<lingo Controls/Show/Option/Tiddlers>></option> | ||
| <option value="tags"><<lingo Controls/Show/Option/Tags>></option> | ||
| </$select> | ||
| </div> | ||
| <div class="tc-manager-control"> | ||
| <<lingo Controls/Search/Prompt>> <$edit-text tiddler="$:/config/Manager/Filter" tag="input" default="" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/> | ||
| </div> | ||
| <div class="tc-manager-control"> | ||
| <<lingo Controls/FilterByTag/Prompt>> <$select tiddler="$:/config/Manager/Tag" default=""> | ||
| <option value=""><<lingo Controls/FilterByTag/None>></option> | ||
| <$list filter="[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]" variable="tag"> | ||
| <option value=<<tag>>><$text text=<<tag>>/></option> | ||
| </$list> | ||
| </$select> | ||
| </div> | ||
| <div class="tc-manager-control"> | ||
| <<lingo Controls/Sort/Prompt>> <$select tiddler="$:/config/Manager/Sort" default="title"> | ||
| <optgroup label="Common"> | ||
| <$list filter="title modified modifier created creator created" variable="field"> | ||
| <option value=<<field>>><$text text=<<field>>/></option> | ||
| </$list> | ||
| </optgroup> | ||
| <optgroup label="All"> | ||
| <$list filter="[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created" variable="field"> | ||
| <option value=<<field>>><$text text=<<field>>/></option> | ||
| </$list> | ||
| </optgroup> | ||
| </$select> | ||
| <$checkbox tiddler="$:/config/Manager/Order" field="text" checked="reverse" unchecked="forward" default="forward"> | ||
| <<lingo Controls/Order/Prompt>> | ||
| </$checkbox> | ||
| </div> | ||
| <div class="tc-manager-control"> | ||
| <$checkbox tiddler="$:/config/Manager/System" field="text" checked="" unchecked="system" default="system"> | ||
| {{$:/language/SystemTiddlers/Include/Prompt}} | ||
| </$checkbox> | ||
| </div> | ||
| </div> | ||
| <div class="tc-manager-list"> | ||
| <$list filter="[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]"> | ||
| <$vars transclusion=<<currentTiddler>>> | ||
| <div style="tc-manager-list-item"> | ||
| <$button popup=<<qualify "$:/state/manager/popup">> class="tc-btn-invisible tc-manager-list-item-heading" selectedClass="tc-manager-list-item-heading-selected"> | ||
| <$text text=<<currentTiddler>>/> | ||
| </$button> | ||
| <$reveal state=<<qualify "$:/state/manager/popup">> type="nomatch" text="" default="" tag="div" class="tc-manager-list-item-content tc-popup-handle"> | ||
| <div class="tc-manager-list-item-content-tiddler"> | ||
| <$list filter="[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]" variable="listItem"> | ||
| <<list-item-content-item>> | ||
| </$list> | ||
| </div> | ||
| <div class="tc-manager-list-item-content-sidebar"> | ||
| <$list filter="[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]" variable="listItem"> | ||
| <<list-item-content-item>> | ||
| </$list> | ||
| </div> | ||
| </$reveal> | ||
| </div> | ||
| </$vars> | ||
| </$list> | ||
| </div> | ||
| </div> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| title: $:/Manager/ItemMain/Fields | ||
| tags: $:/tags/Manager/ItemMain | ||
| caption: {{$:/language/Manager/Item/Fields}} | ||
|
|
||
| <table> | ||
| <tbody> | ||
| <$list filter="[all[current]fields[]sort[title]] -text" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> | ||
| </tbody> | ||
| </table> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| title: $:/Manager/ItemMain/RawText | ||
| tags: $:/tags/Manager/ItemMain | ||
| caption: {{$:/language/Manager/Item/RawText}} | ||
|
|
||
| <pre><code><$view/></code></pre> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| title: $:/Manager/ItemMain/WikifiedText | ||
| tags: $:/tags/Manager/ItemMain | ||
| caption: {{$:/language/Manager/Item/WikifiedText}} | ||
|
|
||
| <$transclude mode="block"/> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| title: $:/Manager/ItemSidebar/Colour | ||
| tags: $:/tags/Manager/ItemSidebar | ||
| caption: {{$:/language/Manager/Item/Colour}} | ||
|
|
||
| \define swatch-styles() | ||
| height: 1em; | ||
| background-color: $(colour)$ | ||
| \end | ||
|
|
||
| <$vars colour={{!!color}}> | ||
| <p style=<<swatch-styles>>/> | ||
| </$vars> | ||
| <p> | ||
| <$edit-text field="color" tag="input" type="color"/> / <$edit-text field="color" tag="input" type="text" size="9"/> | ||
| </p> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| title: $:/Manager/ItemSidebar/Icon | ||
| tags: $:/tags/Manager/ItemSidebar | ||
| caption: {{$:/language/Manager/Item/Icon}} | ||
|
|
||
| <p> | ||
| <div class="tc-manager-icon-editor"> | ||
| <$button popup=<<qualify "$:/state/popup/image-picker">> class="tc-btn-invisible"> | ||
| <$transclude tiddler={{!!icon}}> | ||
| {{$:/language/Manager/Item/Icon/None}} | ||
| </$transclude> | ||
| </$button> | ||
| <div class="tc-block-dropdown-wrapper" style="position: static;"> | ||
| <$reveal state=<<qualify "$:/state/popup/image-picker">> type="nomatch" text="" default="" tag="div" class="tc-popup"> | ||
| <div class="tc-block-dropdown tc-popup-keep" style="width: 80%; left: 10%; right: 10%; padding: 0.5em;"> | ||
| <$macrocall $name="image-picker-include-tagged-images" actions=""" | ||
| <$action-setfield $field="icon" $value=<<imageTitle>>/> | ||
| <$action-deletetiddler $tiddler=<<qualify "$:/state/popup/image-picker">>/> | ||
| """/> | ||
| </div> | ||
| </$reveal> | ||
| </div> | ||
| </div> | ||
| </p> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| title: $:/Manager/ItemSidebar/Tags | ||
| tags: $:/tags/Manager/ItemSidebar | ||
| caption: {{$:/language/Manager/Item/Tags}} | ||
|
|
||
| \define tag-checkbox-actions() | ||
| <$action-listops | ||
| $tiddler="$:/config/Manager/RecentTags" | ||
| $subfilter="[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]" | ||
| /> | ||
| \end | ||
|
|
||
| \define tag-picker-actions() | ||
| <<tag-checkbox-actions>> | ||
| <$action-listops | ||
| $tiddler=<<currentTiddler>> | ||
| $field="tags" | ||
| $subfilter="[<tag>] [all[current]tags[]]" | ||
| /> | ||
| \end | ||
|
|
||
| <p> | ||
| <$list filter="[is[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] " variable="tag"> | ||
| <div> | ||
| <$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>> | ||
| <$macrocall $name="tag-pill" tag=<<tag>>/> | ||
| </$checkbox> | ||
| </div> | ||
| </$list> | ||
| </p> | ||
| <p> | ||
| <$macrocall $name="tag-picker" actions=<<tag-picker-actions>>/> | ||
| </p> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| title: $:/Manager/ItemSidebar/Tools | ||
| tags: $:/tags/Manager/ItemSidebar | ||
| caption: {{$:/language/Manager/Item/Tools}} | ||
|
|
||
| <p> | ||
| <$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button> | ||
| </p> | ||
| <p> | ||
| <$button message="tm-edit-tiddler" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button> | ||
| </p> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| title: $:/core/ui/MoreSideBar/Plugins | ||
| tags: $:/tags/MoreSideBar | ||
| caption: {{$:/language/ControlPanel/Plugins/Caption}} | ||
|
|
||
|
|
||
| {{$:/language/ControlPanel/Plugins/Installed/Hint}} | ||
|
|
||
| <<tabs "[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]" "$:/core/ui/MoreSideBar/Plugins/Plugins">> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| title: $:/core/ui/MoreSideBar/Plugins/Languages | ||
| tags: $:/tags/MoreSideBar/Plugins | ||
| caption: {{$:/language/ControlPanel/Plugins/Languages/Caption}} | ||
|
|
||
| <$list filter="[!has[draft.of]plugin-type[language]sort[description]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| title: $:/core/ui/MoreSideBar/Plugins/Plugins | ||
| tags: $:/tags/MoreSideBar/Plugins | ||
| caption: {{$:/language/ControlPanel/Plugins/Plugins/Caption}} | ||
|
|
||
| <$list filter="[!has[draft.of]plugin-type[plugin]sort[description]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| title: $:/core/ui/MoreSideBar/Plugins/Theme | ||
| tags: $:/tags/MoreSideBar/Plugins | ||
| caption: {{$:/language/ControlPanel/Plugins/Themes/Caption}} | ||
|
|
||
| <$list filter="[!has[draft.of]plugin-type[theme]sort[description]]" template="$:/core/ui/PluginListItemTemplate" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| title: $:/core/ui/Buttons/manager | ||
| tags: $:/tags/PageControls | ||
| caption: {{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}} | ||
| description: {{$:/language/Buttons/Manager/Hint}} | ||
|
|
||
| \define manager-button(class) | ||
| <$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class="""$(tv-config-toolbar-class)$ $class$"""> | ||
| <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> | ||
| {{$:/core/images/list}} | ||
| </$list> | ||
| <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> | ||
| <span class="tc-btn-text"><$text text={{$:/language/Buttons/Manager/Caption}}/></span> | ||
| </$list> | ||
| </$button> | ||
| \end | ||
|
|
||
| <$list filter="[list[$:/StoryList]] +[field:title[$:/Manager]]" emptyMessage=<<manager-button>>> | ||
| <<manager-button "tc-selected">> | ||
| </$list> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| title: $:/core/ui/Buttons/print | ||
| tags: $:/tags/PageControls | ||
| caption: {{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}} | ||
| description: {{$:/language/Buttons/Print/Hint}} | ||
|
|
||
| <$button message="tm-print" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>> | ||
| <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> | ||
| {{$:/core/images/print-button}} | ||
| </$list> | ||
| <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> | ||
| <span class="tc-btn-text"><$text text={{$:/language/Buttons/Print/Caption}}/></span> | ||
| </$list> | ||
| </$button> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| title: $:/core/ui/Buttons/timestamp | ||
| tags: $:/tags/PageControls | ||
| caption: {{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}} | ||
| description: {{$:/language/Buttons/Timestamp/Hint}} | ||
|
|
||
| <$reveal type="nomatch" state="$:/config/TimestampDisable" text="yes"> | ||
| <$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>> | ||
| <$action-setfield $tiddler="$:/config/TimestampDisable" $value="yes"/> | ||
| <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> | ||
| {{$:/core/images/timestamp-on}} | ||
| </$list> | ||
| <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> | ||
| <span class="tc-btn-text"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span> | ||
| </$list> | ||
| </$button> | ||
| </$reveal> | ||
| <$reveal type="match" state="$:/config/TimestampDisable" text="yes"> | ||
| <$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>> | ||
| <$action-setfield $tiddler="$:/config/TimestampDisable" $value="no"/> | ||
| <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> | ||
| {{$:/core/images/timestamp-off}} | ||
| </$list> | ||
| <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> | ||
| <span class="tc-btn-text"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span> | ||
| </$list> | ||
| </$button> | ||
| </$reveal> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| title: $:/core/ui/PluginInfo/Default/contents | ||
|
|
||
| \define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/ | ||
| <<lingo Hint>> | ||
| <ul> | ||
| <$list filter="[all[current]plugintiddlers[]sort[title]]" emptyMessage=<<lingo Empty/Hint>>> | ||
| <li> | ||
| <$link to={{!!title}}> | ||
| <$view field="title"/> | ||
| </$link> | ||
| </li> | ||
| </$list> | ||
| </ul> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| title: $:/core/ui/PluginListItemTemplate | ||
|
|
||
| <div class="tc-menu-list-item"> | ||
| <$link to={{!!title}}> | ||
| <$view field="description"> | ||
| <$view field="title"/> | ||
| </$view> | ||
| </$link> | ||
| </div> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,30 +1,15 @@ | ||
| title: $:/core/ui/TagTemplate | ||
|
|
||
| <span class="tc-tag-list-item"> | ||
| <$set name="transclusion" value=<<currentTiddler>>> | ||
| <$macrocall $name="tag-pill-body" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<<qualify "$:/state/popup/tag">> dragFilter='[all[current]tagging[]]' tag='span'"""/> | ||
| <$reveal state=<<qualify "$:/state/popup/tag">> type="popup" position="below" animate="yes" class="tc-drop-down"> | ||
| <$transclude tiddler="$:/core/ui/ListItemTemplate"/> | ||
| <$list filter="[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]" variable="listItem"> | ||
| <$transclude tiddler=<<listItem>>/> | ||
| </$list> | ||
| <hr> | ||
| <$macrocall $name="list-tagged-draggable" tag=<<currentTiddler>>/> | ||
| </$reveal> | ||
| </$set> | ||
| </span> | ||