mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-16 14:54:51 +00:00
1c23059204
* First pass at dynamic loading/unloading * Show warning for changes to plugins containing JS modules * Use $:/config/RegisterPluginType/* for configuring whether a plugin type is automatically registered Where "registered" means "the constituent shadows are loaded". * Fix the info plugin The previous mechanism re-read all plugin info during startup * Don't prettify JSON in the plugin library * Indicate in plugin library whether a plugin requires reloading * Display the highlighted plugin name in the plugin chooser And if there's no name field fall back to the part of the title after the final slash.
128 lines
4.9 KiB
Plaintext
128 lines
4.9 KiB
Plaintext
title: $:/core/ui/ControlPanel/Modals/AddPlugins
|
|
subtitle: {{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}
|
|
|
|
\define install-plugin-button()
|
|
<$button>
|
|
<$action-sendmessage $message="tm-load-plugin-from-library" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>
|
|
<$list filter="[<assetInfo>get[original-title]get[version]]" variable="installedVersion" emptyMessage="""{{$:/language/ControlPanel/Plugins/Install/Caption}}""">
|
|
{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}
|
|
</$list>
|
|
<$reveal stateTitle=<<assetInfo>> stateField="contains-javascript" type="match" text="yes">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>
|
|
</$button>
|
|
\end
|
|
|
|
\define popup-state-macro()
|
|
$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$
|
|
\end
|
|
|
|
\define display-plugin-info(type)
|
|
<$set name="popup-state" value=<<popup-state-macro>>>
|
|
<div class="tc-plugin-info">
|
|
<div class="tc-plugin-info-chunk tc-small-icon">
|
|
<$reveal type="nomatch" state=<<popup-state>> text="yes">
|
|
<$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">
|
|
<$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">
|
|
<$list filter="[<assetInfo>has[icon]]" emptyMessage="""<$transclude tiddler="$:/core/images/plugin-generic-$type$"/>""">
|
|
<img src={{$(assetInfo)$!!icon}}/>
|
|
</$list>
|
|
</div>
|
|
<div class="tc-plugin-info-chunk">
|
|
<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field="description"/></h1>
|
|
<h2><$view tiddler=<<assetInfo>> field="original-title"/></h2>
|
|
<div><em><$view tiddler=<<assetInfo>> field="version"/></em></div>
|
|
</div>
|
|
<div class="tc-plugin-info-chunk">
|
|
<<install-plugin-button>>
|
|
</div>
|
|
</div>
|
|
<$reveal type="match" text="yes" state=<<popup-state>>>
|
|
<div class="tc-plugin-info-dropdown">
|
|
<div class="tc-plugin-info-dropdown-message">
|
|
<$list filter="[<assetInfo>get[original-title]get[version]]" variable="installedVersion" emptyMessage="""{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}""">
|
|
<em>
|
|
{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}
|
|
</em>
|
|
</$list>
|
|
</div>
|
|
<div class="tc-plugin-info-dropdown-body">
|
|
<$transclude tiddler=<<assetInfo>> field="readme" mode="block"/>
|
|
</div>
|
|
</div>
|
|
</$reveal>
|
|
</$set>
|
|
\end
|
|
|
|
\define load-plugin-library-button()
|
|
<$button class="tc-btn-big-green">
|
|
<$action-sendmessage $message="tm-load-plugin-library" url={{!!url}} infoTitlePrefix="$:/temp/RemoteAssetInfo/"/>
|
|
{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}
|
|
</$button>
|
|
\end
|
|
|
|
\define display-server-assets(type)
|
|
{{$:/language/Search/Search}}: <$edit-text tiddler="""$:/temp/RemoteAssetSearch/$(currentTiddler)$""" default="" type="search" tag="input"/>
|
|
<$reveal state="""$:/temp/RemoteAssetSearch/$(currentTiddler)$""" type="nomatch" text="">
|
|
<$button class="tc-btn-invisible">
|
|
<$action-setfield $tiddler="""$:/temp/RemoteAssetSearch/$(currentTiddler)$""" $field="text" $value=""/>
|
|
{{$:/core/images/close-button}}
|
|
</$button>
|
|
</$reveal>
|
|
<div class="tc-plugin-library-listing">
|
|
<$list filter="[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]" variable="assetInfo">
|
|
<<display-plugin-info "$type$">>
|
|
</$list>
|
|
</div>
|
|
\end
|
|
|
|
\define display-server-connection()
|
|
<$list filter="[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]" variable="connectionTiddler" emptyMessage=<<load-plugin-library-button>>>
|
|
|
|
<<tabs "[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]" "$:/core/ui/ControlPanel/Plugins/Add/Plugins">>
|
|
|
|
</$list>
|
|
\end
|
|
|
|
\define close-library-button()
|
|
<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>
|
|
<$button class='tc-btn-big-green'>
|
|
<$action-sendmessage $message="tm-unload-plugin-library" url={{!!url}}/>
|
|
{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}
|
|
<$action-deletetiddler $filter="[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]"/>
|
|
</$button>
|
|
</$reveal>
|
|
\end
|
|
|
|
\define plugin-library-listing()
|
|
<$list filter="[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]">
|
|
<div class="tc-plugin-library">
|
|
|
|
!! <$link><$transclude field="caption"><$view field="title"/></$transclude></$link>
|
|
|
|
//<$view field="url"/>//
|
|
|
|
<$transclude/>
|
|
|
|
<$set name=PluginLibraryURL value={{!!url}}>
|
|
<<close-library-button>>
|
|
</$set>
|
|
|
|
<<display-server-connection>>
|
|
</div>
|
|
</$list>
|
|
\end
|
|
|
|
\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]
|
|
|
|
<div>
|
|
<<plugin-library-listing>>
|
|
</div>
|