207 lines
5.8 KiB
HTML
207 lines
5.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>{include="includes"}</head>
|
|
<body>
|
|
<div id="pageheader">
|
|
{include="page.header"}
|
|
</div>
|
|
|
|
<noscript>
|
|
<div>
|
|
<ul class="errors">
|
|
<li>You need to enable Javascript to change plugin loading order.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="clear"></div>
|
|
</noscript>
|
|
|
|
<div id="pluginsadmin">
|
|
<form action="{$base_path}/admin/plugins" method="POST">
|
|
<section id="enabled_plugins">
|
|
<h1>Enabled Plugins</h1>
|
|
|
|
<div>
|
|
{if="count($enabledPlugins)==0"}
|
|
<p>No plugin enabled.</p>
|
|
{else}
|
|
<table id="plugin_table">
|
|
<thead>
|
|
<tr>
|
|
<th class="center">Enabled</th>
|
|
<th class="center">Order</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{loop="$enabledPlugins"}
|
|
<tr data-line="{$key}" data-order="{$counter}">
|
|
<td class="center"><input type="checkbox" name="{$key}" id="{$key}" checked="checked"></td>
|
|
<td class="center">
|
|
<a href="#" class="arrow"
|
|
onclick="return orderUp(this.parentNode.parentNode.getAttribute('data-order'));">
|
|
▲
|
|
</a>
|
|
<a href="#" class="arrow"
|
|
onclick="return orderDown(this.parentNode.parentNode.getAttribute('data-order'));">
|
|
▼
|
|
</a>
|
|
<input type="hidden" name="order_{$key}" value="{$counter}">
|
|
</td>
|
|
<td><label for="{$key}">{function="str_replace('_', ' ', $key)"}</label></td>
|
|
<td><label for="{$key}">{$value.description}</label></td>
|
|
</tr>
|
|
{/loop}
|
|
</tbody>
|
|
</table>
|
|
{/if}
|
|
</div>
|
|
</section>
|
|
|
|
<section id="disabled_plugins">
|
|
<h1>Disabled Plugins</h1>
|
|
|
|
<div>
|
|
{if="count($disabledPlugins)==0"}
|
|
<p>No plugin disabled.</p>
|
|
{else}
|
|
<table>
|
|
<tr>
|
|
<th class="center">Enabled</th>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
{loop="$disabledPlugins"}
|
|
<tr>
|
|
<td class="center"><input type="checkbox" name="{$key}" id="{$key}"></td>
|
|
<td><label for="{$key}">{function="str_replace('_', ' ', $key)"}</label></td>
|
|
<td><label for="{$key}">{$value.description}</label></td>
|
|
</tr>
|
|
{/loop}
|
|
</table>
|
|
{/if}
|
|
</div>
|
|
|
|
<div class="center">
|
|
<input type="submit" value="Save"/>
|
|
</div>
|
|
</section>
|
|
<input type="hidden" name="token" value="{$token}">
|
|
</form>
|
|
|
|
<form action="{$base_path}/admin/plugins" method="POST">
|
|
<section id="plugin_parameters">
|
|
<h1>Enabled Plugin Parameters</h1>
|
|
|
|
<div>
|
|
{if="count($enabledPlugins)==0"}
|
|
<p>No plugin enabled.</p>
|
|
{else}
|
|
{loop="$enabledPlugins"}
|
|
{if="count($value.parameters) > 0"}
|
|
<div class="plugin_parameters">
|
|
<h2>{function="str_replace('_', ' ', $key)"}</h2>
|
|
{loop="$value.parameters"}
|
|
<div class="plugin_parameter">
|
|
<div class="float_label">
|
|
<label for="{$key}">
|
|
<code>{$key}</code><br>
|
|
{if="isset($value.desc)"}
|
|
{$value.desc}
|
|
{/if}
|
|
</label>
|
|
</div>
|
|
<div class="float_input">
|
|
<input name="{$key}" value="{$value.value}" id="{$key}"/>
|
|
</div>
|
|
</div>
|
|
{/loop}
|
|
</div>
|
|
{/if}
|
|
{/loop}
|
|
{/if}
|
|
<div class="center">
|
|
<input type="submit" name="parameters_form" value="Save"/>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<input type="hidden" name="token" value="{$token}">
|
|
</form>
|
|
|
|
</div>
|
|
{include="page.footer"}
|
|
|
|
<script>
|
|
/**
|
|
* Change the position counter of a row.
|
|
*
|
|
* @param elem Element Node to change.
|
|
* @param toPos int New position.
|
|
*/
|
|
function changePos(elem, toPos) {
|
|
var elemName = elem.getAttribute('data-line');
|
|
|
|
elem.setAttribute('data-order', toPos);
|
|
var hiddenInput = document.querySelector('[name="order_' + elemName + '"]');
|
|
hiddenInput.setAttribute('value', toPos);
|
|
}
|
|
|
|
/**
|
|
* Move a row up or down.
|
|
*
|
|
* @param pos Element Node to move.
|
|
* @param move int Move: +1 (down) or -1 (up)
|
|
*/
|
|
function changeOrder(pos, move) {
|
|
var newpos = parseInt(pos) + move;
|
|
var lines = document.querySelectorAll('[data-order="' + pos + '"]');
|
|
var changelines = document.querySelectorAll('[data-order="' + newpos + '"]');
|
|
|
|
// If we go down reverse lines to preserve the rows order
|
|
if (move > 0) {
|
|
lines = [].slice.call(lines).reverse();
|
|
}
|
|
|
|
for (var i = 0; i < lines.length; i++) {
|
|
var parent = changelines[0].parentNode;
|
|
changePos(lines[i], newpos);
|
|
changePos(changelines[i], parseInt(pos));
|
|
var changeItem = move < 0 ? changelines[0] : changelines[changelines.length - 1].nextSibling;
|
|
parent.insertBefore(lines[i], changeItem);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Move a row up in the table.
|
|
*
|
|
* @param pos int row counter.
|
|
*
|
|
* @returns false
|
|
*/
|
|
function orderUp(pos) {
|
|
if (pos == 0) {
|
|
return false;
|
|
}
|
|
changeOrder(pos, -1);
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Move a row down in the table.
|
|
*
|
|
* @param pos int row counter.
|
|
*
|
|
* @returns false
|
|
*/
|
|
function orderDown(pos) {
|
|
var lastpos = document.querySelector('[data-order]:last-child').getAttribute('data-order');
|
|
if (pos == lastpos) {
|
|
return false;
|
|
}
|
|
|
|
changeOrder(pos, +1);
|
|
return false;
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|