$select[""] = array();
foreach ($select as $key => $val) {
$val = $_GET["columns"][$key];
- $column = select_input(" name='columns[$i][col]' onchange='" . ($key !== "" ? "selectFieldChange" : "selectAddRow") . ".call(this);'", $columns, $val["col"]);
- echo "<div>" . ($functions || $grouping ? "<select name='columns[$i][fun]' onchange='helpClose();" . ($key !== "" ? "" : " this.nextSibling.nextSibling.onchange();") . "'"
+ $column = select_input(
+ " name='columns[$i][col]'",
+ $columns,
+ $val["col"],
+ ($key !== "" ? "selectFieldChange" : "selectAddRow")
+ );
+ echo "<div>" . ($functions || $grouping ? "<select name='columns[$i][fun]'"
. on_help("getTarget(event).value && getTarget(event).value.replace(/ |\$/, '(') + ')'", 1) . ">" . optionlist(array(-1 => "") + array_filter(array(lang('Functions') => $functions, lang('Aggregation') => $grouping)), $val["fun"]) . "</select>"
+ . script("qsl('select').onchange = function () { helpClose();" . ($key !== "" ? "" : " this.nextSibling.nextSibling.nextSibling.onchange();") . " };", "")
. "($column)" : $column) . "</div>\n";
$i++;
}
}
$_GET["where"] = (array) $_GET["where"];
reset($_GET["where"]);
- $change_next = "this.nextSibling.onchange();";
+ $change_next = "this.parentNode.firstChild.onchange();";
for ($i = 0; $i <= count($_GET["where"]); $i++) {
list(, $val) = each($_GET["where"]);
if (!$val || ("$val[col]$val[val]" != "" && in_array($val["op"], $this->operators))) {
- echo "<div>" . select_input(" name='where[$i][col]' onchange='$change_next'", $columns, $val["col"], "", "(" . lang('anywhere') . ")");
+ echo "<div>" . select_input(
+ " name='where[$i][col]'",
+ $columns,
+ $val["col"],
+ ($val ? "selectFieldChange" : "selectAddRow"),
+ "(" . lang('anywhere') . ")"
+ );
echo html_select("where[$i][op]", $this->operators, $val["op"], $change_next);
- echo "<input type='search' name='where[$i][val]' value='" . h($val["val"]) . "' onchange='" . ($val ? "selectFieldChange" : "selectAddRow") . ".call(this);' onkeydown='selectSearchKeydown.call(this, event);' onsearch='selectSearchSearch.call(this);'></div>\n";
+ echo "<input type='search' name='where[$i][val]' value='" . h($val["val"]) . "'>";
+ echo script("mixin(qsl('input'), {onchange: function () { $change_next }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});", "");
+ echo "</div>\n";
}
}
echo "</div></fieldset>\n";
$i++;
}
}
- echo "<div>" . select_input(" name='order[$i]' onchange='selectAddRow.call(this);'", $columns);
+ echo "<div>" . select_input(" name='order[$i]'", $columns, "", "selectAddRow");
echo checkbox("desc[$i]", 1, false, lang('descending')) . "</div>\n";
echo "</div></fieldset>\n";
}
}
if (!support("table")) {
echo "<tr>"
- . "<th><input name='field_keys[]' onkeyup='keyupChange.call(this);' onchange='fieldChange.call(this);' value=''>" // needs empty value for keyupChange()
+ . "<th><input name='field_keys[]' value=''>" // needs empty value for keyupChange()
+ . script("mixin(qsl('input'), {onkeyup: keyupChange, onchange: fieldChange});")
. "<td class='function'>" . html_select("field_funs[]", $adminer->editFunctions(array("null" => isset($_GET["select"]))))
. "<td><input name='field_vals[]'>"
. "\n"
echo "<input type='submit' value='" . lang('Save') . "'>\n";
if (!isset($_GET["select"])) {
echo "<input type='submit' name='insert' value='" . ($update
- ? lang('Save and continue edit') . "' onclick='return !ajaxForm(this.form, \"" . lang('Saving') . '...", this)'
+ ? lang('Save and continue edit')
: lang('Save and insert next')
) . "' title='Ctrl+Shift+Enter'>\n";
+ echo ($update ? script("qsl('input').onclick = function () { return !ajaxForm(this.form, '" . lang('Saving') . "...', this); };") : "");
}
}
echo ($update ? "<input type='submit' name='delete' value='" . lang('Delete') . "'>" . confirm() . "\n"
*/
function selectAddRow() {
var field = this;
+ var row = cloneNode(field.parentNode);
field.onchange = selectFieldChange;
field.onchange();
- var row = cloneNode(field.parentNode);
var selects = qsa('select', row);
for (var i=0; i < selects.length; i++) {
selects[i].name = selects[i].name.replace(/[a-z]\[\d+/, '$&1');
var origEls = qsa(selector, el);
var cloneEls = qsa(selector, el2);
for (var i=0; i < origEls.length; i++) {
- if (origEls[i].onchange) {
- cloneEls[i].onchange = origEls[i].onchange;
+ for (var key in {onchange: 1, onkeydown: 1, onsearch: 1}) {
+ if (origEls[i][key]) {
+ cloneEls[i][key] = origEls[i][key];
+ }
}
}
setupSubmitHighlight(el2);