1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-09 19:39:57 +00:00
TiddlyWiki5/plugins/tiddlywiki/multiwikiserver/admin-ui/MultiWikiServer Administration.tid

137 lines
4.0 KiB
Plaintext

title: MultiWikiServer Administration
\procedure createBag(name)
\procedure completion-createBag()
\import [subfilter{$:/core/config/GlobalImportFilter}]
<$action-log msg="In completion-createBag"/>
<$action-log/>
\end completion-createBag
<$action-sendmessage
$message="tm-http-request"
url=`/wiki/$(name)$/bags/$(name)$`
method="PUT"
oncompletion=<<completion-createBag>>
/>
\end createBag
\procedure createBagButton(name)
<$button class="">
<$transclude $variable="createBag" name={{$:/state/NewBagName}}/>
{{$:/core/images/new-button}}
</$button><span class="tc-btn-text"><$text text="Create a new bag:"/></span><$edit-text tiddler="$:/state/NewBagName" tag="input"/>
\end createBagButton
\procedure createRecipe(name)
\procedure completion-createRecipe()
\import [subfilter{$:/core/config/GlobalImportFilter}]
<$action-log msg="In completion-createRecipe"/>
<$action-log/>
\end completion-createRecipe
<$action-sendmessage
$message="tm-http-request"
url=`/wiki/$(name)$/recipes/$(name)$`
method="PUT"
oncompletion=<<completion-createRecipe>>
/>
\end createRecipe
\procedure createRecipeButton(name)
<$button class="">
<$transclude $variable="createRecipe" name={{$:/state/NewRecipeName}}/>
{{$:/core/images/new-button}}
</$button><span class="tc-btn-text"><$text text="Create a new recipe:"/></span><$edit-text tiddler="$:/state/NewRecipeName" tag="input"/>
\end createRecipeButton
<!-- Expects currentTiddler to be the title of a bag entity state tiddler -->
\procedure bagPill(element-tag:"span",is-topmost:"no")
\whitespace trim
<$genesis $type=<<element-tag>> class={{{ mws-bag-pill [<is-topmost>match[yes]then[mws-bag-pill-topmost]] +[join[ ]] }}}>
<a class="mws-bag-pill-link" href=`/wiki/${ [{!!bag-name}encodeuricomponent[]] }$/bags/${ [{!!bag-name}encodeuricomponent[]] }$` rel="noopener noreferrer" target="_blank">
<$image
source=`/wiki/${ [{!!bag-name}encodeuricomponent[]] }$/bags/${ [{!!bag-name}encodeuricomponent[]] }$/tiddlers/%24%3A%2Ffavicon.ico`
class="mws-favicon-small"
>
<$image
source="$:/plugins/multiwikiserver/images/missing-favicon.png"
class="mws-favicon-small"
/>
</$image>
<span class="mws-bag-pill-label">
<$text text={{!!bag-name}}/>
</span>
</a>
</$genesis>
\end
<!-- Expects currentTiddler to be the title of a recipe entity state tiddler -->
\procedure wikiCard()
\whitespace trim
<a class="mws-wiki-card" href=`/wiki/${ [{!!recipe-name}encodeuricomponent[]] }$` rel="noopener noreferrer" target="_blank">
<div class="mws-wiki-card-image">
<$image
source=`/wiki/${ [{!!recipe-name}encodeuricomponent[]] }$/recipes/${ [{!!recipe-name}encodeuricomponent[]] }$/tiddlers/%24%3A%2Ffavicon.ico`
class="mws-favicon"
>
<$image
source="$:/plugins/multiwikiserver/images/missing-favicon.png"
class="mws-favicon"
/>
</$image>
</div>
<div class="mws-wiki-card-content">
<div class="mws-wiki-card-header">
<$text text={{!!recipe-name}}/>
</div>
<div class="mws-wiki-card-meta">
<%if [list<currentTiddler>] %>
<ol class="mws-horizontal-list">
<$list filter="[list<currentTiddler>]" counter="counter">
<$transclude $variable="bagPill" is-topmost={{{ [<counter-last>match[yes]] }}} element-tag="li"/>
</$list>
</ol>
<%else%>
(no bags defined)
<%endif%>
</div>
<div class="mws-wiki-card-description">
<$text text={{!!text}}/>
</div>
</div>
</a>
\end
<div class="mws-admin-container">
<h1>Wikis</h1>
<p>
These are the wikis available on this server. Click on a wiki to visit it in a new browser tab.
</p>
<ul class="mws-vertical-list">
<$list filter="[prefix[$:/state/MultiWikiServer/recipes/]]">
<li>
<<wikiCard>>
</li>
</$list>
</ul>
<div>
<<createRecipeButton>>
</div>
<div>
Higher numbered bags take priority if a tiddler with the same title is in more than one bag
</div>
<h1>Bags</h1>
<ul class="mws-vertical-list">
<$list filter="[prefix[$:/state/MultiWikiServer/bags/]]">
<li>
<<bagPill>>
</li>
</$list>
</ul>
<div>
<<createBagButton>>
</div>
</div>