Changeset 3344781
- Timestamp:
- 08/14/2025 04:20:54 PM (6 months ago)
- Location:
- chatbot-ai-free-models
- Files:
-
- 2 edited
-
tags/1.6.2/js/chatbot-admin.js (modified) (3 diffs)
-
trunk/js/chatbot-admin.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
chatbot-ai-free-models/tags/1.6.2/js/chatbot-admin.js
r3344146 r3344781 88 88 }); 89 89 90 // --- GESTIONE CAMPO API KEY (MOSTRA/NASCONDI E LARGHEZZA AUTOMATICA) --- 91 92 // Seleziona gli elementi una sola volta 90 // --- GESTIONE CAMPO API KEY (Versione Definitiva) --- 91 93 92 const apiKeyField = $('#chatbot_api_key_field'); 94 93 95 // Controlla se il campo esiste prima di procedere96 94 if (apiKeyField.length > 0) { 97 95 98 // Crea l'elemento 'span'per misurare il testo99 $('body').append('<span id="api_key_ruler" style="position:absolute; top:-9999px; left:-9999px; white-space:nowrap; font: inherit;"></span>');96 // Crea un unico "righello" invisibile per misurare il testo 97 $('body').append('<span id="api_key_ruler" style="position:absolute; top:-9999px; left:-9999px; white-space:nowrap;"></span>'); 100 98 const apiKeyRuler = $('#api_key_ruler'); 101 99 const apiKeyContainer = apiKeyField.closest('.newcodebyte-password-field'); 102 100 103 101 const adjustApiKeyFieldWidth = function() { 104 // Copia gli stili di font dall'input allo span di misurazione102 // Copia gli stili di font esatti dall'input al nostro "righello" 105 103 apiKeyRuler.css({ 106 104 'font-size': apiKeyField.css('font-size'), … … 110 108 }); 111 109 112 let textToMeasure = apiKeyField.val(); 110 // Misura SEMPRE la larghezza del testo reale, ignorando i pallini 111 apiKeyRuler.text(apiKeyField.val()); 113 112 114 // Simula la larghezza dei pallini se il campo è di tipo password 115 if (apiKeyField.attr('type') === 'password') { 116 textToMeasure = '•'.repeat(textToMeasure.length); 117 } 113 // Calcola la larghezza necessaria per il testo visibile + spazio per l'icona 114 const requiredWidth = apiKeyRuler.outerWidth() + 5; 118 115 119 apiKeyRuler.text(textToMeasure); 120 121 // Calcola la nuova larghezza: larghezza del testo + spazio per l'icona 122 const newWidth = apiKeyRuler.outerWidth() + 40; 123 124 // Applica la nuova larghezza al contenitore, con un minimo per non essere troppo stretto 125 apiKeyContainer.width(Math.max(250, newWidth)); 116 // Applica la larghezza calcolata, con un minimo di 250px 117 apiKeyContainer.width(Math.max(250, requiredWidth)); 126 118 }; 127 119 128 // Esegui la funzione al caricamento della pagina, quando si scrive e quando si clicca l'occhio120 // Aggiusta la larghezza al caricamento e ogni volta che l'utente scrive 129 121 adjustApiKeyFieldWidth(); 130 122 apiKeyField.on('input', adjustApiKeyFieldWidth); 131 123 124 // Gestisce il click sull'occhio. NON deve più ricalcolare la larghezza. 132 125 $('.toggle-api-key').on('click', function() { 133 126 const fieldType = apiKeyField.attr('type'); … … 140 133 $(this).removeClass('dashicons-hidden').addClass('dashicons-visibility'); 141 134 } 142 143 adjustApiKeyFieldWidth();144 135 }); 145 136 } -
chatbot-ai-free-models/trunk/js/chatbot-admin.js
r3344146 r3344781 88 88 }); 89 89 90 // --- GESTIONE CAMPO API KEY (MOSTRA/NASCONDI E LARGHEZZA AUTOMATICA) --- 91 92 // Seleziona gli elementi una sola volta 90 // --- GESTIONE CAMPO API KEY (Versione Definitiva) --- 91 93 92 const apiKeyField = $('#chatbot_api_key_field'); 94 93 95 // Controlla se il campo esiste prima di procedere96 94 if (apiKeyField.length > 0) { 97 95 98 // Crea l'elemento 'span'per misurare il testo99 $('body').append('<span id="api_key_ruler" style="position:absolute; top:-9999px; left:-9999px; white-space:nowrap; font: inherit;"></span>');96 // Crea un unico "righello" invisibile per misurare il testo 97 $('body').append('<span id="api_key_ruler" style="position:absolute; top:-9999px; left:-9999px; white-space:nowrap;"></span>'); 100 98 const apiKeyRuler = $('#api_key_ruler'); 101 99 const apiKeyContainer = apiKeyField.closest('.newcodebyte-password-field'); 102 100 103 101 const adjustApiKeyFieldWidth = function() { 104 // Copia gli stili di font dall'input allo span di misurazione102 // Copia gli stili di font esatti dall'input al nostro "righello" 105 103 apiKeyRuler.css({ 106 104 'font-size': apiKeyField.css('font-size'), … … 110 108 }); 111 109 112 let textToMeasure = apiKeyField.val(); 110 // Misura SEMPRE la larghezza del testo reale, ignorando i pallini 111 apiKeyRuler.text(apiKeyField.val()); 113 112 114 // Simula la larghezza dei pallini se il campo è di tipo password 115 if (apiKeyField.attr('type') === 'password') { 116 textToMeasure = '•'.repeat(textToMeasure.length); 117 } 113 // Calcola la larghezza necessaria per il testo visibile + spazio per l'icona 114 const requiredWidth = apiKeyRuler.outerWidth() + 5; 118 115 119 apiKeyRuler.text(textToMeasure); 120 121 // Calcola la nuova larghezza: larghezza del testo + spazio per l'icona 122 const newWidth = apiKeyRuler.outerWidth() + 40; 123 124 // Applica la nuova larghezza al contenitore, con un minimo per non essere troppo stretto 125 apiKeyContainer.width(Math.max(250, newWidth)); 116 // Applica la larghezza calcolata, con un minimo di 250px 117 apiKeyContainer.width(Math.max(250, requiredWidth)); 126 118 }; 127 119 128 // Esegui la funzione al caricamento della pagina, quando si scrive e quando si clicca l'occhio120 // Aggiusta la larghezza al caricamento e ogni volta che l'utente scrive 129 121 adjustApiKeyFieldWidth(); 130 122 apiKeyField.on('input', adjustApiKeyFieldWidth); 131 123 124 // Gestisce il click sull'occhio. NON deve più ricalcolare la larghezza. 132 125 $('.toggle-api-key').on('click', function() { 133 126 const fieldType = apiKeyField.attr('type'); … … 140 133 $(this).removeClass('dashicons-hidden').addClass('dashicons-visibility'); 141 134 } 142 143 adjustApiKeyFieldWidth();144 135 }); 145 136 }
Note: See TracChangeset
for help on using the changeset viewer.