From d8a424579b7319ae2e4ca84587063bfdef225a80 Mon Sep 17 00:00:00 2001 From: Noah <74223879+Noah55-maker@users.noreply.github.com> Date: Fri, 27 Sep 2024 16:35:11 -0700 Subject: [PATCH] Added option to show day of the week in the better todo list --- _locales/en/messages.json | 5 ++++- _locales/es/messages.json | 3 +++ html/popup.html | 4 ++++ js/background.js | 1 + js/content.js | 9 ++++++--- js/popup.js | 5 +++-- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 835d6a34..3ad99748 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -57,7 +57,10 @@ "message": "Hide completed" }, "24hrformat": { - "message": "Use 24 hr format" + "message": "Use 24 hour format" + }, + "dayOfWeek": { + "message": "Show day of the week" }, "dashboard_notes": { "message": "Dashboard notes" diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 2c0c0b34..4e0f2e9e 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -59,6 +59,9 @@ "24hrformat": { "message": "Usar formato de 24 horas" }, + "dayOfWeek": { + "message": "Mostrar día de la semana" + }, "dashboard_notes": { "message": "Notas del tablero" }, diff --git a/html/popup.html b/html/popup.html index 6c53823b..21f2e64e 100644 --- a/html/popup.html +++ b/html/popup.html @@ -118,6 +118,10 @@

Better Canvas

+
+ + +
diff --git a/js/background.js b/js/background.js index df215fb2..9813d113 100644 --- a/js/background.js +++ b/js/background.js @@ -37,6 +37,7 @@ chrome.runtime.onInstalled.addListener(function () { "dashboard_notes_text": "", "better_todo": false, "todo_hr24": false, + "todo_dayOfWeek": true, "condensed_cards": false, "custom_cards": {}, "custom_cards_2": {}, diff --git a/js/content.js b/js/content.js index 2075f99c..90c3e59d 100644 --- a/js/content.js +++ b/js/content.js @@ -171,6 +171,7 @@ function applyOptionsChanges(changes) { case ("custom_cards_3"): customizeCards(); break; + case ("todo_dayOfWeek"): case ("todo_hr24"): case ("num_todo_items"): case ("hover_preview"): @@ -701,6 +702,7 @@ function loadBetterTodo() { const maxAssignmentCount = parseInt(options.num_todo_items) + moreAssignmentCount; const maxAnnouncementCount = parseInt(options.num_todo_items) + moreAnnouncementCount; const hr24 = options.todo_hr24; + const dayOfWeek = options.todo_dayOfWeek; const now = new Date(); //const csrfToken = CSRFtoken(); let todoAnnouncements = document.querySelector("#bettercanvas-announcement-list"); @@ -754,7 +756,7 @@ function loadBetterTodo() { let title = makeElement("a", listItem.querySelector(".bettercanvas-todo-item-header"), { "className": "bettercanvas-todoitem-title", "textContent": item.plannable.title }); if (options.todo_colors === true) title.style = "color:" + (options.custom_cards_3?.[item.course_id]?.color || "inherit") + "!important;"; makeElement("p", listItem, { "className": "bettercanvas-todoitem-course", "textContent": item.context_name }); - let format = formatTodoDate(date, item.submissions, hr24); + let format = formatTodoDate(date, item.submissions, hr24, dayOfWeek); let todoDate = makeElement("p", listItem, { "className": "bettercanvas-todoitem-date", "textContent": format.date }); if (format.dueSoon) todoDate.classList.add("bettercanvas-due-soon"); @@ -2068,14 +2070,15 @@ function getRelativeDate(date, short = false) { } const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; -function formatTodoDate(date, submissions, hr24) { +const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; +function formatTodoDate(date, submissions, hr24, dayOfWeek) { let { time, ms } = getRelativeDate(date); let fromNow = ms < 0 ? "in " + time : time + " ago"; let dueSoon = false; if (submissions && submissions.submitted === false && ms >= -21600000) { dueSoon = true; } - return { "dueSoon": dueSoon, "date": months[date.getMonth()] + " " + date.getDate() + " at " + (date.getHours() - (hr24 ? "" : date.getHours() > 12 ? 12 : 0)) + ":" + (date.getMinutes() < 10 ? "0" : "") + date.getMinutes() + (hr24 ? "" : date.getHours() >= 12 ? "pm" : "am") + " (" + fromNow + ")" }; + return { "dueSoon": dueSoon, "date": (dayOfWeek ? days[date.getDay()] + ", " : "") + months[date.getMonth()] + " " + date.getDate() + " at " + (date.getHours() - (hr24 ? "" : date.getHours() > 12 ? 12 : 0)) + ":" + (date.getMinutes() < 10 ? "0" : "") + date.getMinutes() + (hr24 ? "" : date.getHours() >= 12 ? "pm" : "am") + " (" + fromNow + ")" }; } function formatCardDue(date) { diff --git a/js/popup.js b/js/popup.js index b66a0492..c647510d 100644 --- a/js/popup.js +++ b/js/popup.js @@ -1,5 +1,5 @@ const syncedSwitches = ['tab_icons', 'hide_feedback', 'dark_mode', 'remlogo', 'full_width', 'auto_dark', 'assignments_due', 'gpa_calc', 'gradient_cards', 'disable_color_overlay', 'dashboard_grades', 'dashboard_notes', 'better_todo', 'condensed_cards']; -const syncedSubOptions = ['todo_colors', 'device_dark', 'relative_dues', 'card_overdues', 'todo_overdues', 'gpa_calc_prepend', 'auto_dark', 'auto_dark_start', 'auto_dark_end', 'num_assignments', 'assignment_date_format', 'todo_hr24', 'grade_hover', 'hide_completed', 'num_todo_items', 'hover_preview']; +const syncedSubOptions = ['todo_colors', 'device_dark', 'relative_dues', 'card_overdues', 'todo_overdues', 'gpa_calc_prepend', 'auto_dark', 'auto_dark_start', 'auto_dark_end', 'num_assignments', 'assignment_date_format', 'todo_hr24', 'todo_dayOfWeek', 'grade_hover', 'hide_completed', 'num_todo_items', 'hover_preview']; const localSwitches = []; const defaultOptions = { @@ -39,6 +39,7 @@ const defaultOptions = { "dashboard_notes_text": "", "better_todo": false, "todo_hr24": false, + "todo_dayOfWeek": true, "condensed_cards": false, "custom_cards": {}, "custom_cards_2": {}, @@ -181,7 +182,7 @@ function setup() { const menu = { "switches": syncedSwitches, - "checkboxes": ['card_method_date', 'show_updates', 'todo_colors', 'device_dark', 'relative_dues', 'card_overdues', 'todo_overdues', 'gpa_calc_prepend', 'auto_dark', 'assignment_date_format', 'todo_hr24', 'grade_hover', 'hide_completed', 'hover_preview'], + "checkboxes": ['card_method_date', 'show_updates', 'todo_colors', 'device_dark', 'relative_dues', 'card_overdues', 'todo_overdues', 'gpa_calc_prepend', 'auto_dark', 'assignment_date_format', 'todo_hr24', 'todo_dayOfWeek', 'grade_hover', 'hide_completed', 'hover_preview'], "tabs": { "advanced-settings": { "setup": displayAdvancedCards, "tab": ".advanced" }, "gpa-bounds-btn": { "setup": displayGPABounds, "tab": ".gpa-bounds-container" },