diff options
Diffstat (limited to 'packages')
16 files changed, 1 insertions, 40 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/chat-app-settings.js b/packages/meshbay-hub/src/meshbay_hub/static/chat-app-settings.js index 5a15074..96fc52f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/chat-app-settings.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/chat-app-settings.js @@ -45,14 +45,10 @@ function ChatSettings({ roots, dirs, settings, saveDirectories, transport, signF value=${directory} disabled=${busy || noWritable} onChange=${setDirectory} /> - <div class="app-save-row"> <button class="app-save" disabled=${busy || !dirty} onClick=${() => run(() => transport.setChatDirectory(directory, signFn))}> ${busy ? t('settings_app.saving') : t('settings_app.save')} </button> - ${!busy && !dirty && html` - <span class="app-save-why">${t('settings_app.no_changes')}</span>`} - </div> <div class="settings-row" style="margin-top:12px"> <${ToggleSwitch} checked=${linkPreview} disabled=${busy} diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js index d47762e..d05d3a3 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js @@ -840,7 +840,6 @@ export default { 'folder_tree.read_only_blocked': 'Nur lesen — kein Schreiben möglich', 'settings_app.save': 'Speichern', 'settings_app.saving': 'Wird gespeichert…', - 'settings_app.no_changes': 'Keine Änderungen zu speichern', 'settings_app.disabled_hint': 'Schalten Sie diese App ein, um sie zu konfigurieren.', 'settings_app.video_directories_label': 'Video-Ordner', 'settings_app.video_directories_hint': 'Wo die Filme und Serien dieser Gruppe liegen. Nichts außerhalb erscheint im Videos-Tab.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js index 932aad3..6dbb70f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js @@ -628,7 +628,6 @@ export default { 'folder_tree.read_only_blocked': 'Read-only — cannot be written to', 'settings_app.save': 'Save', 'settings_app.saving': 'Saving…', - 'settings_app.no_changes': 'No changes to save', 'settings_app.disabled_hint': 'Turn this app on to configure it.', 'settings_app.video_directories_label': 'Video folders', 'settings_app.video_directories_hint': 'Where this group\'s films and shows live. Nothing outside them appears in the Videos tab.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js index ca912a4..aa950cc 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js @@ -836,7 +836,6 @@ export default { 'folder_tree.read_only_blocked': 'Solo lectura: no se puede escribir', 'settings_app.save': 'Guardar', 'settings_app.saving': 'Guardando…', - 'settings_app.no_changes': 'Sin cambios que guardar', 'settings_app.disabled_hint': 'Activa esta aplicación para configurarla.', 'settings_app.video_directories_label': 'Carpetas de vídeo', 'settings_app.video_directories_hint': 'Dónde están las películas y series de este grupo. Nada fuera de ellas aparece en la pestaña Vídeos.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js index ccd9e25..daa9f94 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js @@ -854,7 +854,6 @@ export default { 'folder_tree.read_only_blocked': 'Lecture seule — écriture impossible', 'settings_app.save': 'Enregistrer', 'settings_app.saving': 'Enregistrement…', - 'settings_app.no_changes': 'Aucune modification à enregistrer', 'settings_app.disabled_hint': 'Activez cette application pour la configurer.', 'settings_app.video_directories_label': 'Dossiers vidéo', 'settings_app.video_directories_hint': 'Où vivent les films et séries de ce groupe. Rien en dehors n\'apparaît dans l\'onglet Vidéos.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js index c1c3d52..364c26c 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js @@ -850,7 +850,6 @@ export default { 'folder_tree.read_only_blocked': 'Sola lettura: non vi si può scrivere', 'settings_app.save': 'Salva', 'settings_app.saving': 'Salvataggio…', - 'settings_app.no_changes': 'Nessuna modifica da salvare', 'settings_app.disabled_hint': 'Attiva questa applicazione per configurarla.', 'settings_app.video_directories_label': 'Cartelle video', 'settings_app.video_directories_hint': 'Dove si trovano film e serie di questo gruppo. Nulla al di fuori compare nella scheda Video.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js index e5392a3..f778fc4 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js @@ -834,7 +834,6 @@ export default { 'folder_tree.read_only_blocked': '読み取り専用 — 書き込みできません', 'settings_app.save': '保存', 'settings_app.saving': '保存中…', - 'settings_app.no_changes': '保存する変更はありません', 'settings_app.disabled_hint': 'このアプリを有効にすると設定できます。', 'settings_app.video_directories_label': '動画フォルダー', 'settings_app.video_directories_hint': 'このグループの映画や番組がある場所です。それ以外は動画タブに表示されません。', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js index 09e3e8d..6e6842e 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js @@ -852,7 +852,6 @@ export default { 'folder_tree.read_only_blocked': 'Alleen-lezen — kan niet worden beschreven', 'settings_app.save': 'Opslaan', 'settings_app.saving': 'Opslaan…', - 'settings_app.no_changes': 'Geen wijzigingen om op te slaan', 'settings_app.disabled_hint': 'Zet deze app aan om hem in te stellen.', 'settings_app.video_directories_label': 'Videomappen', 'settings_app.video_directories_hint': 'Waar de films en series van deze groep staan. Niets daarbuiten verschijnt op het tabblad Video\'s.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js index 34847e1..c8cbd16 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js @@ -878,7 +878,6 @@ export default { 'folder_tree.read_only_blocked': 'Tylko do odczytu — nie można zapisywać', 'settings_app.save': 'Zapisz', 'settings_app.saving': 'Zapisywanie…', - 'settings_app.no_changes': 'Brak zmian do zapisania', 'settings_app.disabled_hint': 'Włącz tę aplikację, aby ją skonfigurować.', 'settings_app.video_directories_label': 'Foldery wideo', 'settings_app.video_directories_hint': 'Gdzie znajdują się filmy i seriale tej grupy. Nic poza nimi nie pojawi się w zakładce Wideo.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js index fc211c9..6eb2242 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js @@ -837,7 +837,6 @@ export default { 'folder_tree.read_only_blocked': 'Somente leitura — não é possível gravar', 'settings_app.save': 'Salvar', 'settings_app.saving': 'Salvando…', - 'settings_app.no_changes': 'Nenhuma alteração para salvar', 'settings_app.disabled_hint': 'Ative este aplicativo para configurá-lo.', 'settings_app.video_directories_label': 'Pastas de vídeo', 'settings_app.video_directories_hint': 'Onde ficam os filmes e séries deste grupo. Nada fora delas aparece na aba Vídeos.', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js index 9db7cc7..044611e 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js @@ -821,7 +821,6 @@ export default { 'folder_tree.read_only_blocked': '只读 — 无法写入', 'settings_app.save': '保存', 'settings_app.saving': '正在保存…', - 'settings_app.no_changes': '没有需要保存的更改', 'settings_app.disabled_hint': '启用该应用后即可配置。', 'settings_app.video_directories_label': '视频文件夹', 'settings_app.video_directories_hint': '该群组的影片和剧集所在位置。其外的内容不会出现在「视频」标签页。', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/music-app-settings.js b/packages/meshbay-hub/src/meshbay_hub/static/music-app-settings.js index a3b02d9..8ce2ab6 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/music-app-settings.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/music-app-settings.js @@ -38,14 +38,10 @@ function MusicSettings({ roots, dirs, settings, saveDirectories, transport, sign value=${directories} disabled=${busy} onChange=${setDirectories} /> - <div class="app-save-row"> <button class="app-save" disabled=${busy || !dirsDirty} onClick=${() => run(() => saveDirectories(directories))}> ${busy ? t('settings_app.saving') : t('settings_app.save')} </button> - ${!busy && !dirsDirty && html` - <span class="app-save-why">${t('settings_app.no_changes')}</span>`} - </div> <h4 class="app-settings-sub">${t('settings_node.musicbrainz_title')}</h4> <p class="settings-hint">${t('settings_node.musicbrainz_hint')}</p> diff --git a/packages/meshbay-hub/src/meshbay_hub/static/photos-app-settings.js b/packages/meshbay-hub/src/meshbay_hub/static/photos-app-settings.js index a241eea..8656fa5 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/photos-app-settings.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/photos-app-settings.js @@ -32,14 +32,10 @@ function PhotoSettings({ roots, dirs, settings, saveDirectories }) { value=${directories} disabled=${busy} onChange=${setDirectories} /> - <div class="app-save-row"> <button class="app-save" disabled=${busy || !dirty} onClick=${() => run(() => saveDirectories(directories))}> ${busy ? t('settings_app.saving') : t('settings_app.save')} </button> - ${!busy && !dirty && html` - <span class="app-save-why">${t('settings_app.no_changes')}</span>`} - </div> ${msg && html`<p class="settings-hint">${msg}</p>`} </div> `; diff --git a/packages/meshbay-hub/src/meshbay_hub/static/style.css b/packages/meshbay-hub/src/meshbay_hub/static/style.css index bf4e8e1..d1d5732 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/style.css +++ b/packages/meshbay-hub/src/meshbay_hub/static/style.css @@ -1298,8 +1298,6 @@ button:disabled { opacity: 0.5; cursor: not-allowed; } } /* Why it is inert, beside it — a disabled control that explains itself is the difference between "nothing changed" and "this is broken". */ -.app-save-row { display: flex; align-items: center; gap: 10px; margin-top: 8px; } -.app-save-why { font-size: 0.82em; color: var(--text-dim); } .app-settings-sub { margin: 18px 0 4px; font-size: 0.9em; font-weight: 600; diff --git a/packages/meshbay-hub/src/meshbay_hub/static/video-app-settings.js b/packages/meshbay-hub/src/meshbay_hub/static/video-app-settings.js index 86e47ec..5c79bc5 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/video-app-settings.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/video-app-settings.js @@ -56,14 +56,10 @@ function VideoSettings({ roots, dirs, settings, saveDirectories, transport, sign value=${directories} disabled=${busy} onChange=${setDirectories} /> - <div class="app-save-row"> <button class="app-save" disabled=${busy || !dirsDirty} onClick=${() => run(() => saveDirectories(directories))}> ${busy ? t('settings_app.saving') : t('settings_app.save')} </button> - ${!busy && !dirsDirty && html` - <span class="app-save-why">${t('settings_app.no_changes')}</span>`} - </div> <h4 class="app-settings-sub">${t('settings_node.tmdb_title')}</h4> <p class="settings-hint">${t('settings_node.tmdb_hint')}</p> diff --git a/packages/meshbay-hub/tests/test_app_settings_plugin.py b/packages/meshbay-hub/tests/test_app_settings_plugin.py index 8a095af..b8afc23 100644 --- a/packages/meshbay-hub/tests/test_app_settings_plugin.py +++ b/packages/meshbay-hub/tests/test_app_settings_plugin.py @@ -347,21 +347,10 @@ def test_save_is_a_button_and_not_dim_text(pane): f"{pane}'s Save is still styled as dim text") -@pytest.mark.parametrize("pane", sorted(PANE_FLAGS)) -def test_an_inert_save_says_why(pane): - """ - A disabled control that explains itself is the difference between "nothing - changed" and "this is broken". Without it the reader has to know what the - pane counts as a change. - """ - source = (STATIC / pane).read_text(encoding="utf-8") - assert "app-save-why" in source and "settings_app.no_changes" in source - - def test_the_disabled_state_is_visually_distinct(): css = (STATIC / "style.css").read_text(encoding="utf-8") rule = css[css.index(".app-save {"):] - rule = rule[:rule.index(".app-save-row")] + rule = rule[:rule.index("}", rule.index(".app-save:disabled")) + 1] assert "var(--accent)" in rule, "an enabled Save has no fill" disabled = rule[rule.index(".app-save:disabled"):] assert "background: none" in disabled and "--text-dim" in disabled, ( |