diff --git a/locales/en.json b/locales/en.json index 2605fc5..2dc5931 100644 --- a/locales/en.json +++ b/locales/en.json @@ -43,6 +43,8 @@ "personal_epg_label": "EPG URL (XMLTV) *", "personal_epg_m3u_label": "M3U URL", "personal_epg_optional": "optional", + "personal_epg_m3u_enabled": "This instance allows a personal M3U playlist.", + "personal_epg_m3u_disabled": "The administrator of this instance has disabled personal M3U playlists.", "cancel": "Cancel", "apply": "Apply", "setup_already_done": "Configuration already done. Use your admin key to access setup again.", @@ -52,4 +54,4 @@ "fav_remove": "Remove from favorites", "update_available": "↑ Update available:", "update_title": "Click to download the latest version" -} \ No newline at end of file +} diff --git a/locales/es.json b/locales/es.json index e4331cb..3f84350 100644 --- a/locales/es.json +++ b/locales/es.json @@ -43,6 +43,8 @@ "personal_epg_label": "URL EPG (XMLTV) *", "personal_epg_m3u_label": "URL M3U", "personal_epg_optional": "opcional", + "personal_epg_m3u_enabled": "Esta instancia permite una lista M3U personal.", + "personal_epg_m3u_disabled": "El administrador de esta instancia ha desactivado las listas M3U personales.", "cancel": "Cancelar", "apply": "Aplicar", "setup_already_done": "Configuración ya realizada. Usa tu clave de administrador para volver al setup.", @@ -52,4 +54,4 @@ "fav_remove": "Quitar de favoritos", "update_available": "↑ Actualizacion disponible:", "update_title": "Haz clic para descargar la ultima version" -} \ No newline at end of file +} diff --git a/locales/fr.json b/locales/fr.json index 46cb8fe..0094539 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -43,6 +43,8 @@ "personal_epg_label": "URL EPG (XMLTV) *", "personal_epg_m3u_label": "URL M3U", "personal_epg_optional": "optionnel", + "personal_epg_m3u_enabled": "Cette instance autorise l'ajout d'une playlist M3U personnelle.", + "personal_epg_m3u_disabled": "L'administrateur de cette instance a désactivé l'ajout d'une playlist M3U personnelle.", "cancel": "Annuler", "apply": "Appliquer", "setup_already_done": "Configuration déjà effectuée. Utilisez votre clé admin pour accéder à nouveau au setup.", @@ -52,4 +54,4 @@ "fav_remove": "Retirer des favoris", "update_available": "↑ Mise a jour disponible :", "update_title": "Cliquez pour telecharger la derniere version" -} \ No newline at end of file +} diff --git a/src/css/modals.css b/src/css/modals.css index ae82e04..f67416f 100644 --- a/src/css/modals.css +++ b/src/css/modals.css @@ -25,6 +25,13 @@ } .modal-field input:focus { border-color: var(--accent); } .modal-field input::placeholder { color: var(--text-dim); opacity: 0.4; } + .modal-field-note { + margin-top: 6px; font-size: 11px; line-height: 1.45; opacity: 0.82; + color: var(--text-dim); + } + .modal-field-note.is-disabled { + color: #ffb0a5; opacity: 1; + } .modal-actions { display: flex; gap: 10px; margin-top: 20px; justify-content: flex-end; } .modal-btn-cancel { background: none; border: 1px solid var(--border-bright); color: var(--text-dim); diff --git a/src/js/sources.js b/src/js/sources.js index 2f6b328..0beda05 100644 --- a/src/js/sources.js +++ b/src/js/sources.js @@ -36,7 +36,11 @@ function openPersonalEpgModal() { m3uInput.disabled = !ALLOW_PERSONAL_M3U; } if (m3uHint) { - m3uHint.style.display = ALLOW_PERSONAL_M3U ? '' : 'none'; + m3uHint.textContent = ALLOW_PERSONAL_M3U + ? (m3uHint.dataset.enabledText ?? '') + : (m3uHint.dataset.disabledText ?? ''); + m3uHint.classList.toggle('is-disabled', !ALLOW_PERSONAL_M3U); + m3uHint.style.display = ''; } modal.classList.add('visible'); } diff --git a/src/tpl/modals.php b/src/tpl/modals.php index cf4318a..a29e186 100644 --- a/src/tpl/modals.php +++ b/src/tpl/modals.php @@ -29,7 +29,7 @@