]> git.joonet.de Git - adminer.git/commitdiff
AdminerSqlGemini: Highlight button
authorJakub Vrana <jakub@vrana.cz>
Tue, 25 Mar 2025 06:13:43 +0000 (07:13 +0100)
committerJakub Vrana <jakub@vrana.cz>
Tue, 25 Mar 2025 06:33:30 +0000 (07:33 +0100)
adminer/static/functions.js
plugins/sql-gemini.php

index 506c3406568f7c5b6ebf06629828c22f993513c3..f0ff7436340e2f654a516442465cca3652db0941 100644 (file)
@@ -773,7 +773,7 @@ function setupSubmitHighlight(parent) {
 * @param HTMLElement
 */
 function setupSubmitHighlightInput(input) {
-       if (!/submit|image|file/.test(input.type)) {
+       if (!/submit|button|image|file/.test(input.type)) {
                addEvent(input, 'focus', inputFocus);
                addEvent(input, 'blur', inputBlur);
        }
@@ -783,6 +783,7 @@ function setupSubmitHighlightInput(input) {
 * @this HTMLInputElement
 */
 function inputFocus() {
+       console.log('functions');
        alterClass(findDefaultSubmit(this), 'default', true);
 }
 
index 449c751acfa994307a6906b8eb9c00b291a7eb18..ef51675c4091e607a6dafeab93866abdd5983783 100644 (file)
@@ -55,7 +55,8 @@ class AdminerSqlGemini {
                ?>
 <p><input type='button' value='Gemini'>
 <script <?php echo Adminer\nonce(); ?>>
-const gemini = qsl('input');
+const geminiText = qsl('textarea');
+const geminiButton = qsl('input');
 
 function setSqlareaValue(value) {
        qs('textarea.sqlarea').value = value;
@@ -63,18 +64,28 @@ function setSqlareaValue(value) {
        qs('pre.sqlarea').oninput(); // syntax highlighting
 }
 
-gemini.onclick = () => {
+geminiButton.onclick = () => {
        setSqlareaValue('-- Just a sec...'); // this is the phrase used by Google Gemini
        ajax(
                '',
                req => setSqlareaValue(req.responseText),
-               'gemini=' + encodeURIComponent(this.form['gemini'].value)
+               'gemini=' + encodeURIComponent(geminiText.value)
        );
-}
+};
+
+geminiText.onfocus = event => {
+       alterClass(findDefaultSubmit(geminiText), 'default');
+       alterClass(geminiButton, 'default', true);
+       event.stopImmediatePropagation();
+};
+
+geminiText.onblur = () => {
+       alterClass(geminiButton, 'default');
+};
 
-qsl('textarea').onkeydown = event => {
+geminiText.onkeydown = event => {
        if (isCtrl(event) && (event.keyCode == 13 || event.keyCode == 10)) {
-               gemini.onclick();
+               geminiButton.onclick();
                event.stopPropagation();
        }
 };