list-links-draggable defaults to currentTiddler if tiddler parameter is missing (#9254)

* list-links-draggable if tiddler parameter undefined default to currentTiddler

* update list-links-draggable docs with the new behaviour
This commit is contained in:
Mario Pietsch
2025-10-29 12:17:02 +01:00
committed by GitHub
parent deed8631d8
commit 317104774c
2 changed files with 57 additions and 45 deletions

View File

@@ -24,44 +24,49 @@ tags: $:/tags/Macro
\define list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
\whitespace trim
<span class="tc-links-draggable-list">
<$vars targetTiddler="""$tiddler$""" targetField="""$field$""">
<$genesis $type=<<__type__>> class="$class$">
<$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>>
<$droppable
actions=<<list-links-draggable-drop-actions>>
tag="""$subtype$"""
enable=<<tv-enable-drag-and-drop>>
>
<div class="tc-droppable-placeholder"/>
<div>
<$transclude tiddler="""$itemTemplate$""">
<$link to={{!!title}}>
<$let tv-wikilinks="no">
<$transclude field="caption">
<$view field="title"/>
</$transclude>
</$let>
</$link>
</$transclude>
</div>
</$droppable>
</$list>
<$tiddler tiddler="">
<$droppable
actions=<<list-links-draggable-drop-actions>>
tag="div"
enable=<<tv-enable-drag-and-drop>>
>
<div class="tc-droppable-placeholder">
{{$:/core/images/blank}}
</div>
<div style="height:0.5em;"/>
</$droppable>
</$tiddler>
</$genesis>
</$vars>
</span>
<$set name="_tiddler" value="""$tiddler$""" emptyValue=<<currentTiddler>> >
<$let field-reference={{{ [<_tiddler>] "!!" [[$field$]] +[join[]] }}}
targetTiddler=<<_tiddler>>
targetField="""$field$"""
>
<span class="tc-links-draggable-list">
<$genesis $type=<<__type__>> class="$class$">
<$list filter="[list<field-reference>]" emptyMessage=<<__emptyMessage__>>>
<$droppable
actions=<<list-links-draggable-drop-actions>>
tag="""$subtype$"""
enable=<<tv-enable-drag-and-drop>>
>
<div class="tc-droppable-placeholder"/>
<div>
<$transclude tiddler="""$itemTemplate$""">
<$link to={{!!title}}>
<$let tv-wikilinks="no">
<$transclude field="caption">
<$view field="title"/>
</$transclude>
</$let>
</$link>
</$transclude>
</div>
</$droppable>
</$list>
<$tiddler tiddler="">
<$droppable
actions=<<list-links-draggable-drop-actions>>
tag="div"
enable=<<tv-enable-drag-and-drop>>
>
<div class="tc-droppable-placeholder">
{{$:/core/images/blank}}
</div>
<div style="height:0.5em;"/>
</$droppable>
</$tiddler>
</$genesis>
</span>
</$let>
</$set>
\end
\define list-tagged-draggable-drop-actions(tag)

View File

@@ -9,19 +9,26 @@ The <<.def list-links-draggable>> [[macro|Macros]] renders the ListField of a ti
!! Parameters
;tiddler
; tiddler
: The title of the tiddler containing the list
;field
: <<.from-version 5.4.0>> If the tiddler parameter is not defined it defaults to: <<.var currentTiddler>>
; field
: The name of the field containing the list (defaults to `list`)
;emptyMessage
; emptyMessage
: Optional wikitext to display if there is no output (tiddler is not existed, field is not existed or empty)
;type
; type
: The element tag to use for the list wrapper (defaults to `ul`)
;subtype
; subtype
: The element tag to use for the list items (defaults to `li`)
;class
; class
: Optional space separated classes to add to the wrapper element
;itemTemplate
; itemTemplate
: Optional title of a tiddler to use as the template for rendering list items
If the `itemTemplate` parameter is not provided then the list items are rendered as simple links. Within the `itemTemplate`, the [[currentTiddler Variable]] refers to the current list item.