123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <!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="?do=save_pluginadmin" 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">Disable</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">Enable</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>
- </form>
- <form action="?do=save_pluginadmin" 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>
- </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>
|