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" },