CI / build (push) Failing after 6m2s
Introduce a Node build system for minified CSS/JS with content hashes, add PWA support, i18n helpers, accessibility improvements, and more translatable strings. Move theme configuration from bookmarks to localStorage, add Playwright tests, and set up CI workflows.
126 lines
6.8 KiB
HTML
126 lines
6.8 KiB
HTML
<!DOCTYPE html>
|
|
<html{if="$language !== 'auto'"} lang="{$language}"{/if}>
|
|
<head>
|
|
{$pageName="pluginsadmin"}
|
|
{include="includes"}
|
|
</head>
|
|
<body>
|
|
{include="page.header"}
|
|
<div id="pluginadmindiv" class="page-pluginadmin container">
|
|
<div class="row">
|
|
<div class="col-md-8 col-md-offset-2">
|
|
<noscript>
|
|
<p>{'You need to enable Javascript to change plugin loading order.'|t}</p>
|
|
</noscript>
|
|
|
|
<h1>{'Plugin administration'|t}</h1>
|
|
<p>{'Drag and drop your plugin to change the order in which they will be called. Uncheck an enabled plugin to disable it and vice-versa.'|t}</p>
|
|
|
|
<form action="{$base_path}/admin/plugins" method="post">
|
|
<input type="hidden" name="token" value="{$token}">
|
|
|
|
<div class="card">
|
|
<div class="card-header">{'Enabled Plugins'|t}</div>
|
|
{if="count($enabledPlugins)==0"}
|
|
<div class="card-body">
|
|
<p class="text-center text-muted">{'No plugin enabled.'|t}</p>
|
|
</div>
|
|
{else}
|
|
<ul id="list-plugin-enabled" class="list-group list-sortable list-checkable" style="margin:0; padding:0; list-style:none;">
|
|
{loop="$enabledPlugins"}
|
|
<li class="list-group-item list-item-sortable" data-line="{$key}" data-order="{$counter}">
|
|
<div class="checkbox-wrapper">
|
|
<input type="checkbox" name="{$key}" id="checkbox-{$key}" checked style="width:auto;">
|
|
</div>
|
|
<input type="hidden" name="order_{$key}" value="{$counter}">
|
|
<div class="list-group-item-content">
|
|
<label for="checkbox-{$key}" class="list-group-item-label" style="cursor:pointer; margin:0;">{function="str_replace('_', ' ', $key)"}</label>
|
|
<div class="list-group-item-sublabel">{$value.description}</div>
|
|
</div>
|
|
<div class="list-sortable-handle mdi mdi-drag"></div>
|
|
</li>
|
|
{/loop}
|
|
</ul>
|
|
{/if}
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header">{'Disabled Plugins'|t}</div>
|
|
{if="count($disabledPlugins)==0"}
|
|
<div class="card-body">
|
|
<p class="text-center text-muted">{'No plugin disabled.'|t}</p>
|
|
</div>
|
|
{else}
|
|
<ul class="list-group list-sortable list-checkable" style="margin:0; padding:0; list-style:none;">
|
|
{loop="$disabledPlugins"}
|
|
<li class="list-group-item list-item-sortable" data-line="{$key}" data-order="{$counter}">
|
|
<div class="checkbox-wrapper">
|
|
<input type="checkbox" id="checkbox-{$key}" name="{$key}" style="width:auto;">
|
|
</div>
|
|
<div class="list-group-item-content">
|
|
<label for="checkbox-{$key}" class="list-group-item-label" style="cursor:pointer; margin:0;">{function="str_replace('_', ' ', $key)"}</label>
|
|
<div class="list-group-item-sublabel">{$value.description}</div>
|
|
</div>
|
|
</li>
|
|
{/loop}
|
|
</ul>
|
|
{/if}
|
|
</div>
|
|
|
|
<div class="card" style="background:transparent; border:none; box-shadow:none; margin-top:-1rem;">
|
|
<div class="card-body" style="padding:0; display:flex; justify-content:space-between; align-items:center;">
|
|
<p class="text-muted" style="margin:0; font-size:0.9rem;">
|
|
{"More plugins available"|t}
|
|
<a href="{$root_path}/doc/html/Community-&-Related-software/#third-party-plugins" target="_blank" rel="noopener">{"in the documentation"|t}</a>.
|
|
</p>
|
|
<button type="submit" class="btn btn-primary">{'Save plugins'|t}</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<form action="{$base_path}/admin/plugins" method="post" style="margin-top:2rem;">
|
|
<input type="hidden" name="token" value="{$token}">
|
|
<div class="card">
|
|
<div class="card-header">{'Plugin Parameters'|t}</div>
|
|
<div class="card-body">
|
|
{if="count($enabledPlugins)==0"}
|
|
<p class="text-center text-muted">{'No plugin enabled.'|t}</p>
|
|
{else}
|
|
{$count=0}
|
|
{loop="$enabledPlugins"}
|
|
{if="count($value.parameters) > 0"}
|
|
{if="$count>0"}
|
|
<hr style="margin: 1.5rem 0; border-top: 1px solid var(--border);">
|
|
{/if}
|
|
{$count=$count+1}
|
|
<h3 style="font-size:1.1rem; margin:0 0 1rem 0; color:var(--primary);">{function="str_replace('_', ' ', $key)"}</h3>
|
|
{loop="$value.parameters"}
|
|
<div class="form-group row">
|
|
<div class="col-sm-4">
|
|
<label class="form-label" for="{$key}" {if="isset($value.desc)"}title="{$value.desc}"{/if}>{function="str_replace('_', ' ', $key)"}</label>
|
|
{if="isset($value.desc)"}<div class="sublabel">{$value.desc}</div>{/if}
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<input type="text" class="form-control" name="{$key}" value="{$value.value}" id="{$key}" {if="isset($value.desc)"}placeholder="{$value.desc}"{/if}>
|
|
</div>
|
|
</div>
|
|
{/loop}
|
|
{/if}
|
|
{/loop}
|
|
{if="$count==0"}
|
|
<p class="text-center text-muted">{'No parameter available.'|t}</p>
|
|
{/if}
|
|
{/if}
|
|
</div>
|
|
<div class="card-footer">
|
|
<button type="submit" name="parameters_form" class="btn btn-primary">{'Save parameters'|t}</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{include="page.footer"}
|
|
</body>
|
|
</html>
|