diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 80ea274..07f1099 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} benotete Aufgabe(n) ohne Fälligkeitsdatum werden nicht angezeigt." }, + "heatmap_exclude_courses": { + "message": "Kurse ausschließen" + }, "ga_line_title": { "message": "Gesamtnote im Zeitverlauf" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "Keine Vorschau verfügbar" }, - "privacy": { - "message": "Datenschutz" + "dev_tools": { + "message": "Entwickler-Tools" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} erledigt" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0218944..effa7cc 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1292,8 +1292,8 @@ "preview_unavailable": { "message": "No preview available" }, - "privacy": { - "message": "Privacy" + "dev_tools": { + "message": "Dev tools" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} done" @@ -2027,6 +2027,9 @@ "heatmap_widget": { "message": "Heatmap" }, + "heatmap_exclude_courses": { + "message": "Exclude courses" + }, "widget_short_heatmap": { "message": "Heatmap" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 68fedba..32c2ab7 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} tarea(s) calificada(s) sin fecha de entrega no mostrada(s)." }, + "heatmap_exclude_courses": { + "message": "Excluir cursos" + }, "ga_line_title": { "message": "Nota general a lo largo del tiempo" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "No hay vista previa disponible" }, - "privacy": { - "message": "Privacidad" + "dev_tools": { + "message": "Herramientas de desarrollo" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} hechas" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 21bfdc3..da79f23 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} devoir(s) noté(s) sans date d'échéance non affiché(s)." }, + "heatmap_exclude_courses": { + "message": "Exclure des cours" + }, "ga_line_title": { "message": "Note globale au fil du temps" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "Aucun aperçu disponible" }, - "privacy": { - "message": "Confidentialité" + "dev_tools": { + "message": "Outils de développement" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} terminés" diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 4d2b2f0..d12eae1 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} consegna/e valutata/e senza data di scadenza non mostrata/e." }, + "heatmap_exclude_courses": { + "message": "Escludi corsi" + }, "ga_line_title": { "message": "Voto complessivo nel tempo" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "Nessuna anteprima disponibile" }, - "privacy": { - "message": "Privacy" + "dev_tools": { + "message": "Strumenti per sviluppatori" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} completati" diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 886d26a..6cdab9b 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "期限のない評価済み課題{{COUNT}}件は表示されていません。" }, + "heatmap_exclude_courses": { + "message": "除外するコース" + }, "ga_line_title": { "message": "総合評価の推移" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "プレビューを利用できません" }, - "privacy": { - "message": "プライバシー" + "dev_tools": { + "message": "開発者ツール" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} 完了" diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 737b2ba..d53dcfb 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} trabalho(s) avaliado(s) sem data de entrega não apresentado(s)." }, + "heatmap_exclude_courses": { + "message": "Excluir disciplinas" + }, "ga_line_title": { "message": "Nota global ao longo do tempo" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "Pré-visualização indisponível" }, - "privacy": { - "message": "Privacidade" + "dev_tools": { + "message": "Ferramentas de programador" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} concluídos" diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index f3944f8..a525ec3 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} оценённых заданий без срока не показано." }, + "heatmap_exclude_courses": { + "message": "Исключить курсы" + }, "ga_line_title": { "message": "Итоговая оценка во времени" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "Предпросмотр недоступен" }, - "privacy": { - "message": "Конфиденциальность" + "dev_tools": { + "message": "Инструменты разработчика" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} выполнено" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 7db89cb..92045c6 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} betygsatt(a) uppgift(er) utan förfallodatum visas inte." }, + "heatmap_exclude_courses": { + "message": "Exkludera kurser" + }, "ga_line_title": { "message": "Totalt betyg över tid" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "Ingen förhandsvisning tillgänglig" }, - "privacy": { - "message": "Integritet" + "dev_tools": { + "message": "Utvecklarverktyg" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} klara" diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index d805ba5..49c5d60 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "{{COUNT}} 项有评分但无截止日期的作业未显示。" }, + "heatmap_exclude_courses": { + "message": "排除课程" + }, "ga_line_title": { "message": "总评成绩变化" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "没有可用的预览" }, - "privacy": { - "message": "隐私" + "dev_tools": { + "message": "开发者工具" }, "progress_done": { "message": "{{DONE}}/{{TOTAL}} 已完成" diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index bcac043..7750b26 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -611,6 +611,9 @@ "ga_heatmap_undated": { "message": "有 {{COUNT}} 項已評分作業沒有到期日,因此未顯示。" }, + "heatmap_exclude_courses": { + "message": "排除課程" + }, "ga_line_title": { "message": "總成績變化" }, @@ -1283,8 +1286,8 @@ "preview_unavailable": { "message": "無法提供預覽" }, - "privacy": { - "message": "隱私" + "dev_tools": { + "message": "開發人員工具" }, "progress_done": { "message": "已完成 {{DONE}}/{{TOTAL}}" diff --git a/css/popup.css b/css/popup.css index 0f26ae6..c5e808f 100644 --- a/css/popup.css +++ b/css/popup.css @@ -91,16 +91,22 @@ h2 {margin-top: 20px;font-weight:600} .custom-tf-row input {flex:none;width:58px;font-size:12px;background:var(--inputbg);border:none;padding:6px;color:#e2e2e2;border-radius:6px;font-family:inherit;text-align:right;box-sizing:border-box;color-scheme:dark;} .custom-tf-row input::-webkit-outer-spin-button, .custom-tf-row input::-webkit-inner-spin-button {opacity:1;} .todo-more-options {margin-top: 7px;} -.celebration-multiselect {position:relative;} -.celebration-multiselect-btn {display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;background:var(--inputbg);color:#e2e2e2;border:none;border-radius:7px;padding:6px 8px;font-family:inherit;width:100%;box-sizing:border-box;margin-top:2px;margin-bottom:6px;cursor:pointer;text-align:left;} -.celebration-multiselect-btn svg {flex:none;transition:transform .15s ease;} -.celebration-multiselect.open .celebration-multiselect-btn svg {transform:rotate(-180deg);} -.celebration-multiselect-menu {display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:#1e1e1e;border-radius:7px;padding:5px 0;max-height:180px;overflow-y:auto;box-shadow:0 6px 18px rgba(0,0,0,.45);} -.celebration-multiselect.open .celebration-multiselect-menu {display:block;} -.celebration-multiselect.flip-up .celebration-multiselect-menu {top:auto;bottom:calc(100% + 4px);} -.celebration-option {display:flex;align-items:center;gap:7px;padding:5px 10px;font-size:12px;color:#e2e2e2;cursor:pointer;white-space:nowrap;user-select:none;} -.celebration-option:hover {background:#2e2e2e;color:#fff;} -.celebration-option input {accent-color:#56caf0;cursor:pointer;margin:0;} +/* Checkbox dropdown shared by todo celebrations and the heatmap's course filter. */ +.cr-multiselect {position:relative;} +.cr-multiselect-btn {display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;background:var(--inputbg);color:#e2e2e2;border:none;border-radius:7px;padding:6px 8px;font-family:inherit;width:100%;box-sizing:border-box;margin-top:2px;margin-bottom:6px;cursor:pointer;text-align:left;} +/* the current selection stays on one line; the menu is where long names wrap */ +.cr-multiselect-btn > span {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.cr-multiselect-btn svg {flex:none;transition:transform .15s ease;} +.cr-multiselect.open .cr-multiselect-btn svg {transform:rotate(-180deg);} +/* grows past a narrow trigger (widget cards) instead of clipping the labels */ +.cr-multiselect-menu {display:none;position:absolute;top:calc(100% + 4px);left:0;right:auto;z-index:60;background:#1e1e1e;border-radius:7px;padding:5px 0;max-height:200px;overflow-y:auto;overflow-x:hidden;box-shadow:0 6px 18px rgba(0,0,0,.45);box-sizing:border-box;width:max-content;min-width:100%;max-width:min(320px, calc(100vw - 32px));} +.cr-multiselect.open .cr-multiselect-menu {display:block;} +.cr-multiselect.flip-up .cr-multiselect-menu {top:auto;bottom:calc(100% + 4px);} +.cr-multiselect-option {display:flex;align-items:flex-start;gap:7px;padding:5px 10px;font-size:12px;line-height:1.3;color:#e2e2e2;cursor:pointer;user-select:none;} +.cr-multiselect-option:hover {background:#2e2e2e;color:#fff;} +.cr-multiselect-option span {overflow-wrap:anywhere;} +.cr-multiselect-option input {accent-color:#56caf0;cursor:pointer;margin:1px 0 0;} +.cr-multiselect-empty {padding:6px 10px;font-size:12px;line-height:1.3;color:#9aa3ab;} #todo_celebration_amount {font-size:12px;background:var(--inputbg);color:#e2e2e2;border:none;border-radius:7px;padding:6px 8px;font-family:inherit;width:100%;box-sizing:border-box;margin-top:2px;margin-bottom:6px;color-scheme:dark;} #todo_celebration_amount option {background:#1e1e1e;color:#e2e2e2;} #todo_celebration_amount option:checked, diff --git a/html/popup.html b/html/popup.html index 41b730e..e303d15 100644 --- a/html/popup.html +++ b/html/popup.html @@ -349,12 +349,12 @@
Email is still available at sandlerguy5@gmail.com for private matters.