*/
function selectQuery($query) {
global $jush, $token;
- return "<form action='" . h(ME) . "sql=' method='post'><p><span>"
+ return "<form action='" . h(ME) . "sql=' method='post'><p><span onclick=\"return !selectEditSql(event, this, '" . lang('Execute') . "');\">"
. "<code class='jush-$jush'>" . h(str_replace("\n", " ", $query)) . "</code>"
- . " <a href='" . h(ME) . "sql=" . urlencode($query) . "' onclick=\"return !selectEditSql(event, this.parentNode, '" . lang('Execute') . "');\">" . lang('Edit') . "</a>"
+ . " <a href='" . h(ME) . "sql=" . urlencode($query) . "'>" . lang('Edit') . "</a>"
. "</span><input type='hidden' name='token' value='$token'></p></form>\n"; // </p> - required for IE9 inline edit
}
* @param MouseEvent
* @param HTMLSpanElement
* @param string
-* @return boolean
*/
function selectEditSql(event, el, label) {
- if (isCtrl(event) || event.altKey) {
- return false;
+ var a = parentTag(event.target || event.srcElement, 'a');
+ if (!isCtrl(event) || (a && a.href)) {
+ return;
}
var sql = el.firstChild;
var input = document.createElement('input');
/** Get parent node with specified tag name.
* @param HTMLElement
- * @param string
+ * @param string regular expression
* @return HTMLElement
*/
function parentTag(el, tag) {
var re = new RegExp('^' + tag + '$', 'i');
- while (!re.test(el.tagName)) {
+ while (el && !re.test(el.tagName)) {
el = el.parentNode;
}
return el;
Adminer 3.6.4-dev:
Display pagination on a fixed position
-Display select SQL edit form inline
+Display SQL edit form on Ctrl+click on the select query
Recover original view, trigger, routine if creating fails
Allow loading more data with inline edit (bug #3605531)
Stay on the same page after deleting rows (bug #3605845)