<!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>