From 07ba2509391a233c77c245e32c0b68479674e7d8 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Tue, 23 Jul 2013 16:33:07 -0700 Subject: [PATCH] Highlight submit for syntax highlighted textareas --- adminer/static/editing.js | 5 ++++- adminer/static/functions.js | 28 +++++++++++++++++++--------- externals/jush | 2 +- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/adminer/static/editing.js b/adminer/static/editing.js index 5d6c028d..96b39846 100644 --- a/adminer/static/editing.js +++ b/adminer/static/editing.js @@ -30,7 +30,10 @@ function bodyLoad(version) { var tags = document.getElementsByTagName('textarea'); for (var i = 0; i < tags.length; i++) { if (/(^|\s)jush-/.test(tags[i].className)) { - jush.textarea(tags[i]); + var pre = jush.textarea(tags[i]); + if (pre) { + setupSubmitHighlightInput(pre); + } } } } diff --git a/adminer/static/functions.js b/adminer/static/functions.js index 824ba929..506ba054 100644 --- a/adminer/static/functions.js +++ b/adminer/static/functions.js @@ -636,19 +636,26 @@ function setupSubmitHighlight(parent) { for (var key in { input: 1, select: 1, textarea: 1 }) { var inputs = parent.getElementsByTagName(key); for (var i = 0; i < inputs.length; i++) { - if (!/submit|image|file/.test(inputs[i].type)) { - addEvent(inputs[i], 'focus', inputFocus); - addEvent(inputs[i], 'blur', inputBlur); - } + setupSubmitHighlightInput(inputs[i]) } } } +/** Setup submit highlighting for single element +* @param HTMLElement +*/ +function setupSubmitHighlightInput(input) { + if (!/submit|image|file/.test(input.type)) { + addEvent(input, 'focus', inputFocus); + addEvent(input, 'blur', inputBlur); + } +} + /** Highlight default submit button * @this HTMLInputElement */ function inputFocus() { - var submit = findDefaultSubmit(this.form); + var submit = findDefaultSubmit(this); if (submit) { alterClass(submit, 'default', true); } @@ -658,18 +665,21 @@ function inputFocus() { * @this HTMLInputElement */ function inputBlur() { - var submit = findDefaultSubmit(this.form); + var submit = findDefaultSubmit(this); if (submit) { alterClass(submit, 'default'); } } /** Find submit button used by Enter -* @param HTMLFormElement +* @param HTMLElement * @return HTMLInputElement */ -function findDefaultSubmit(form) { - var inputs = form.getElementsByTagName('input'); +function findDefaultSubmit(el) { + if (el.jushTextarea) { + el = el.jushTextarea; + } + var inputs = el.form.getElementsByTagName('input'); for (var i = 0; i < inputs.length; i++) { var input = inputs[i]; if (input.type == 'submit' && !input.style.zIndex) { diff --git a/externals/jush b/externals/jush index 06a7c7d7..12e6421d 160000 --- a/externals/jush +++ b/externals/jush @@ -1 +1 @@ -Subproject commit 06a7c7d73e2d031a493d1f07d37733aba94399f2 +Subproject commit 12e6421d5a02ba8c3e2db2b4080187053b9a4655