3 <head>{
include="includes"}
</head>
6 {
include="page.header"}
12 <li>You need to enable Javascript to change plugin loading order.
</li>
15 <div class=
"clear"></div>
18 <div id=
"pluginsadmin">
19 <form action=
"{$base_path}/admin/plugins" method=
"POST">
20 <section id=
"enabled_plugins">
21 <h1>Enabled Plugins
</h1>
24 {
if="count($enabledPlugins)==
0"}
25 <p>No plugin enabled.
</p>
27 <table id=
"plugin_table">
30 <th class=
"center">Disable
</th>
31 <th class=
"center">Order
</th>
37 {
loop="$enabledPlugins"}
38 <tr data-line=
"{$key}" data-order=
"{$counter}">
39 <td class=
"center"><input type=
"checkbox" name=
"{$key}" id=
"{$key}" checked=
"checked"></td>
41 <a href=
"#" class=
"arrow"
42 onclick=
"return orderUp(this.parentNode.parentNode.getAttribute('data-order'));">
45 <a href=
"#" class=
"arrow"
46 onclick=
"return orderDown(this.parentNode.parentNode.getAttribute('data-order'));">
49 <input type=
"hidden" name=
"order_{$key}" value=
"{$counter}">
51 <td><label for=
"{$key}">{
function="str_replace('_', ' ', $key)"}
</label></td>
52 <td><label for=
"{$key}">{$value.description}
</label></td>
61 <section id=
"disabled_plugins">
62 <h1>Disabled Plugins
</h1>
65 {
if="count($disabledPlugins)==
0"}
66 <p>No plugin disabled.
</p>
70 <th class=
"center">Enable
</th>
74 {
loop="$disabledPlugins"}
76 <td class=
"center"><input type=
"checkbox" name=
"{$key}" id=
"{$key}"></td>
77 <td><label for=
"{$key}">{
function="str_replace('_', ' ', $key)"}
</label></td>
78 <td><label for=
"{$key}">{$value.description}
</label></td>
86 <input type=
"submit" value=
"Save"/>
89 <input type=
"hidden" name=
"token" value=
"{$token}">
92 <form action=
"{$base_path}/admin/plugins" method=
"POST">
93 <section id=
"plugin_parameters">
94 <h1>Enabled Plugin Parameters
</h1>
97 {
if="count($enabledPlugins)==
0"}
98 <p>No plugin enabled.
</p>
100 {
loop="$enabledPlugins"}
101 {
if="count($value.parameters)
> 0"}
102 <div class="plugin_parameters
">
103 <h2>{function="str_replace('_', ' ', $key)"}
</h2>
104 {
loop="$value.parameters"}
105 <div class=
"plugin_parameter">
106 <div class=
"float_label">
108 <code>{$key}
</code><br>
109 {
if="isset($value.desc)"}
114 <div class=
"float_input">
115 <input name=
"{$key}" value=
"{$value.value}" id=
"{$key}"/>
124 <input type=
"submit" name=
"parameters_form" value=
"Save"/>
128 <input type=
"hidden" name=
"token" value=
"{$token}">
132 {
include="page.footer"}
136 * Change the position counter of a row.
138 * @param elem Element Node to change.
139 * @param toPos int New position.
141 function changePos(elem, toPos) {
142 var elemName = elem.getAttribute('data-line');
144 elem.setAttribute('data-order', toPos);
145 var hiddenInput = document.querySelector('[
name="order_' + elemName + '"]');
146 hiddenInput.setAttribute('value', toPos);
150 * Move a row up or down.
152 * @param pos Element Node to move.
153 * @param move int Move: +
1 (down) or -
1 (up)
155 function changeOrder(pos, move) {
156 var newpos = parseInt(pos) + move;
157 var lines = document.querySelectorAll('[
data-order="' + pos + '"]');
158 var changelines = document.querySelectorAll('[
data-order="' + newpos + '"]');
160 // If we go down reverse lines to preserve the rows order
162 lines = [].slice.call(lines).reverse();
165 for (var i =
0; i < lines.length; i++) {
166 var parent = changelines[
0].parentNode;
167 changePos(lines[i], newpos);
168 changePos(changelines[i], parseInt(pos));
169 var changeItem = move <
0 ? changelines[
0] : changelines[changelines.length -
1].nextSibling;
170 parent.insertBefore(lines[i], changeItem);
175 * Move a row up in the table.
177 * @param pos int row counter.
181 function orderUp(pos) {
185 changeOrder(pos, -
1);
190 * Move a row down in the table.
192 * @param pos int row counter.
196 function orderDown(pos) {
197 var lastpos = document.querySelector('[data-order]:last-child').getAttribute('data-order');
198 if (pos == lastpos) {
202 changeOrder(pos, +
1);