better todolist 6

final, config
This commit is contained in:
Guy Sandler 2026-04-28 21:42:26 -07:00
parent b5bcd19466
commit a0e26918ad
5 changed files with 392 additions and 349 deletions

View File

@ -1,239 +1,245 @@
{
"better_canvas": {
"message": "Better Canvas"
},
"updates": {
"message": "Updates"
},
"dark_mode": {
"message": "Dark mode"
},
"automatic_dark_mode": {
"message": "Scheduled Dark Mode"
},
"auto_start_time": {
"message": "Start Time"
},
"auto_end_time": {
"message": "End Time"
},
"edit_dark_mode": {
"message": "Dark Mode"
},
"enter_url": {
"message": "Your Canvas url:"
},
"card_grades": {
"message": "Card Grades"
},
"gradient_cards": {
"message": "Gradient Cards"
},
"condensed_cards": {
"message": "Condensed Cards"
},
"disable_color": {
"message": "Disable Color Overlay"
},
"card_assignments": {
"message": "Card Assignments"
},
"card_customization": {
"message": "Cards"
},
"styles": {
"message": "Styles"
},
"useddmm": {
"message": "Use dd/mm"
},
"better_todo": {
"message": "Better todo list"
},
"max_items": {
"message": "Max Items: "
},
"hover_preview": {
"message": "Hover To Preview Details"
},
"hide_completed": {
"message": "Hide Completed"
},
"24hrformat": {
"message": "Use 24 hr Format"
},
"dashboard_notes": {
"message": "Dashboard Notes"
},
"gpa_calculator": {
"message": "GPA Calculator"
},
"gpa_settings": {
"message": "GPA Settings"
},
"grade_hover": {
"message": "Show Only On Hover"
},
"due": {
"message": "Due"
},
"card_colors": {
"message": "Card Colors"
},
"back": {
"message": "Back"
},
"more_options": {
"message": "More Options"
},
"manual_customization": {
"message": "Manual Customization"
},
"background_colors": {
"message": "Background"
},
"text_colors": {
"message": "Text"
},
"full_width": {
"message": "Dashboard Full Width"
},
"report_issue": {
"message": "Report Issue"
},
"themes": {
"message": "Themes"
},
"move_top": {
"message": "Move To Top"
},
"show_past_due": {
"message": "Show Past Due"
},
"relative_due_dates": {
"message": "Relative Due Dates"
},
"enter_multiple": {
"message": "(Enter Multiple With A Comma)"
},
"todo_remind": {
"message": "Todo Reminders"
},
"remlogo": {
"message": "Remove Sidebar Logo"
},
"hide_feedback": {
"message": "Hide Recent Feedback"
},
"tab_icons": {
"message": "Color Coded Tab Icons"
},
"todo_colors": {
"message": "Hide Recent Feedback"
},
"gpa_calc_cumulative": {
"message": "Show Cumulative GPA"
},
"gpa_calc_weighted": {
"message": "Show Weighted GPA"
},
"device_dark": {
"message": "Use Device Dark Mode Settings"
},
"presets": {
"message": "Presets"
},
"dark_lighter": {
"message": "Lighter"
},
"dark_light": {
"message": "Light"
},
"dark_default": {
"message": "Default"
},
"dark_dark": {
"message": "Dark"
},
"dark_darker": {
"message": "Darker"
},
"dark_mint": {
"message": "Mint"
},
"dark_blue": {
"message": "Blue Tint"
},
"dark_burn": {
"message": "Eyeball Burn"
},
"dark_unicorn": {
"message": "Unicorn"
},
"dark_lightmode": {
"message": "Lightmode"
},
"dark_catppuccin": {
"message": "Catppuccin\n By Angel"
},
"dark_sage": {
"message": "Sabia\n By LivDoesDevStuf"
},
"dark_pink": {
"message": "Pink\n By Sayde"
},
"dark_coral": {
"message": "Coral\n By Superchido"
},
"dp_sidebar_text": {
"message": "Sidebar Text"
},
"dp_sidebar": {
"message": "Sidebar"
},
"radio_sidebar_solid": {
"message": "Solid"
},
"radio_sidebar_gradient": {
"message": "Gradient"
},
"radio_sidebar_image": {
"message": "Image"
},
"dp_background_0": {
"message": "Background Main"
},
"dp_background_1": {
"message": "Background Alt"
},
"dp_background_2": {
"message": "Background Other"
},
"dp_borders": {
"message": "Borders"
},
"dp_links": {
"message": "Links"
},
"dp_text_0": {
"message": "Text Main"
},
"dp_text_1": {
"message": "Text Other"
},
"dp_text_2": {
"message": "Text Alt"
},
"dark_mode_fixer": {
"message": "Dark Mode Fixer (Beta)"
},
"dark_mode_fixer_text": {
"message": "This Will Try To Fix Any Dark Mode Gaps On The Current Page."
},
"fix_dm_btn": {
"message": "Go"
},
"fix_dm_text": {
"message": "The Fixer Is Automatically Running On These Pages:"
}
"better_canvas": {
"message": "Better Canvas"
},
"updates": {
"message": "Updates"
},
"dark_mode": {
"message": "Dark mode"
},
"automatic_dark_mode": {
"message": "Scheduled Dark Mode"
},
"auto_start_time": {
"message": "Start Time"
},
"auto_end_time": {
"message": "End Time"
},
"edit_dark_mode": {
"message": "Dark Mode"
},
"enter_url": {
"message": "Your Canvas url:"
},
"card_grades": {
"message": "Card Grades"
},
"gradient_cards": {
"message": "Gradient Cards"
},
"condensed_cards": {
"message": "Condensed Cards"
},
"disable_color": {
"message": "Disable Color Overlay"
},
"card_assignments": {
"message": "Card Assignments"
},
"card_customization": {
"message": "Cards"
},
"styles": {
"message": "Styles"
},
"useddmm": {
"message": "Use dd/mm"
},
"better_todo": {
"message": "Better todo list"
},
"max_items": {
"message": "Max Items: "
},
"hover_preview": {
"message": "Hover To Preview Details"
},
"hide_completed": {
"message": "Hide Completed"
},
"24hrformat": {
"message": "Use 24 hr Format"
},
"dashboard_notes": {
"message": "Dashboard Notes"
},
"gpa_calculator": {
"message": "GPA Calculator"
},
"gpa_settings": {
"message": "GPA Settings"
},
"grade_hover": {
"message": "Show Only On Hover"
},
"due": {
"message": "Due"
},
"card_colors": {
"message": "Card Colors"
},
"back": {
"message": "Back"
},
"more_options": {
"message": "More Options"
},
"manual_customization": {
"message": "Manual Customization"
},
"background_colors": {
"message": "Background"
},
"text_colors": {
"message": "Text"
},
"full_width": {
"message": "Dashboard Full Width"
},
"report_issue": {
"message": "Report Issue"
},
"themes": {
"message": "Themes"
},
"move_top": {
"message": "Move To Top"
},
"show_past_due": {
"message": "Show Past Due"
},
"todo_separate_scrollbar": {
"message": "Separate Scrollbar"
},
"todo_full_height": {
"message": "Force Full Height"
},
"relative_due_dates": {
"message": "Relative Due Dates"
},
"enter_multiple": {
"message": "(Enter Multiple With A Comma)"
},
"todo_remind": {
"message": "Todo Reminders"
},
"remlogo": {
"message": "Remove Sidebar Logo"
},
"hide_feedback": {
"message": "Hide Recent Feedback"
},
"tab_icons": {
"message": "Color Coded Tab Icons"
},
"todo_hide_feedback": {
"message": "Hide Recent Feedback"
},
"gpa_calc_cumulative": {
"message": "Show Cumulative GPA"
},
"gpa_calc_weighted": {
"message": "Show Weighted GPA"
},
"device_dark": {
"message": "Use Device Dark Mode Settings"
},
"presets": {
"message": "Presets"
},
"dark_lighter": {
"message": "Lighter"
},
"dark_light": {
"message": "Light"
},
"dark_default": {
"message": "Default"
},
"dark_dark": {
"message": "Dark"
},
"dark_darker": {
"message": "Darker"
},
"dark_mint": {
"message": "Mint"
},
"dark_blue": {
"message": "Blue Tint"
},
"dark_burn": {
"message": "Eyeball Burn"
},
"dark_unicorn": {
"message": "Unicorn"
},
"dark_lightmode": {
"message": "Lightmode"
},
"dark_catppuccin": {
"message": "Catppuccin\n By Angel"
},
"dark_sage": {
"message": "Sabia\n By LivDoesDevStuf"
},
"dark_pink": {
"message": "Pink\n By Sayde"
},
"dark_coral": {
"message": "Coral\n By Superchido"
},
"dp_sidebar_text": {
"message": "Sidebar Text"
},
"dp_sidebar": {
"message": "Sidebar"
},
"radio_sidebar_solid": {
"message": "Solid"
},
"radio_sidebar_gradient": {
"message": "Gradient"
},
"radio_sidebar_image": {
"message": "Image"
},
"dp_background_0": {
"message": "Background Main"
},
"dp_background_1": {
"message": "Background Alt"
},
"dp_background_2": {
"message": "Background Other"
},
"dp_borders": {
"message": "Borders"
},
"dp_links": {
"message": "Links"
},
"dp_text_0": {
"message": "Text Main"
},
"dp_text_1": {
"message": "Text Other"
},
"dp_text_2": {
"message": "Text Alt"
},
"dark_mode_fixer": {
"message": "Dark Mode Fixer (Beta)"
},
"dark_mode_fixer_text": {
"message": "This Will Try To Fix Any Dark Mode Gaps On The Current Page."
},
"fix_dm_btn": {
"message": "Go"
},
"fix_dm_text": {
"message": "The Fixer Is Automatically Running On These Pages:"
}
}

View File

@ -169,7 +169,8 @@
</div>
</div>
</div>
<div class="option-container">
<div class="option-container" style="display:none">
<!-- TODO: scrapped maybe forever -->
<div class="option" id="remind">
<input type="radio" id="off" name="remind">
<input type="radio" id="on" name="remind">
@ -206,27 +207,26 @@
<span class="option-name" data-i18n="better_todo">Better Todo List</span>
</div>
<div class="sub-options">
<div class="sub-option">
<div class="sub-option" style="display:none;">
<input type="checkbox" id="hover_preview" name="hover_preview">
<label for="hover_preview" class="sub-text" data-i18n="hover_preview">Hover to preview
details</label> <!-- TODO -->
details</label> <!-- TODO: Later -->
</div>
<div class="sub-option">
<input type="checkbox" id="hide_completed" name="hide_completed">
<label for="hide_completed" class="sub-text" data-i18n="hide_completed">Hide
completed</label> <!-- TO REMOVE replace with "own scrollbar" -->
<input type="checkbox" id="todo_separate_scrollbar" name="todo_separate_scrollbar">
<label for="todo_separate_scrollbar" class="sub-text" data-i18n="todo_separate_scrollbar">Separate Scrollbar</label>
</div>
<div class="sub-option">
<input type="checkbox" id="todo_hr24" name="todo_hr24">
<label for="todo_hr24" class="sub-text" data-i18n="24hrformat">Use 24hr format</label> <!-- TODO -->
<label for="todo_hr24" class="sub-text" data-i18n="24hrformat">Use 24hr format</label>
</div>
<div class="sub-option">
<input type="checkbox" id="todo_overdues" name="todo_overdues">
<label for="todo_overdues" class="sub-text" data-i18n="show_past_due">Show past due</label> <!-- TO REMOVE and replace with full height -->
<input type="checkbox" id="todo_full_height" name="todo_full_height">
<label for="todo_full_height" class="sub-text" data-i18n="todo_full_height">Force Full Height</label> <!-- TO REMOVE and replace with full height -->
</div>
<div class="sub-option">
<input type="checkbox" id="todo_hide_feedback" name="todo_hide_feedback">
<label for="todo_hide_feedback" class="sub-text" data-i18n="todo_hide_feedback">Hide Recent Feedback</label> <!-- TO REMOVE and replace with recent feedback -->
<label for="todo_hide_feedback" class="sub-text" data-i18n="todo_hide_feedback">Hide Recent Feedback</label>
</div>
<div style="margin-top: 5px">
<span class="sub-text" data-i18n="max_items">Max items to show: </span><span

View File

@ -39,6 +39,7 @@ chrome.runtime.onInstalled.addListener(function () {
"dashboard_notes_text": "",
"better_todo": false,
"todo_hr24": false,
"todo_separate_scrollbar": false,
"condensed_cards": false,
"custom_cards": {},
"custom_cards_2": {},
@ -46,7 +47,7 @@ chrome.runtime.onInstalled.addListener(function () {
"custom_assignments": [],
"custom_assignments_overflow": ["custom_assignments"],
"grade_hover": false,
"hide_completed": false,
// "hide_completed": false,
"num_todo_items": 10,
"custom_font": { "link": "", "family": "" },
"hover_preview": true,
@ -67,7 +68,7 @@ chrome.runtime.onInstalled.addListener(function () {
"D-": { "cutoff": 60, "gpa": .7 },
"F": { "cutoff": 0, "gpa": 0 }
},
"todo_overdues": false,
// "todo_overdues": false,
"card_overdues": false,
"relative_dues": false,
"hide_feedback": false,
@ -75,9 +76,10 @@ chrome.runtime.onInstalled.addListener(function () {
"assignment_states": {},
"tab_icons": false,
"todo_hide_feedback": false,
"todo_full_height": false,
"device_dark": false,
"cumulative_gpa": { "name": "Cumulative GPA", "hidden": false, "weight": "dnc", "credits": 999, "gr": 3.21 },
"show_updates": false,
// "show_updates": false,
"card_method_date": false,
"card_method_dashboard": true,
"card_limit": 25,
@ -85,8 +87,8 @@ chrome.runtime.onInstalled.addListener(function () {
"reminders": [],
"reminder_count": 1,
"multi_remind": false,
"scheduledReminder": false,
"scheduledReminderTime": { "hour": "09", "minute": "00" },
// "scheduledReminder": false,
// "scheduledReminderTime": { "hour": "09", "minute": "00" },
"id": "",
"new_browser": null,
"gpa_calc_cumulative": false,

View File

@ -188,38 +188,38 @@ function showExampleReminder() {
example.querySelector(".bettercanvas-reminder-due").textContent = "This notification will pop up in other pages to remind you of incomplete assignments that are due in less than 6 hours." /*It will notify again at 2 hours if the 'Remind 2x' option is on."*/;
}
async function ScheduledReminderCheck() {
let date = new Date();
let currentHour = date.getHours();
let currentMinute = date.getMinutes();
if (options.scheduledReminderTime) {
let [hour, minute] = options.scheduledReminderTime.split(":");
if (parseInt(hour) == currentHour && parseInt(minute) == currentMinute) {
const container = document.getElementById("bettercanvas-reminders") || makeElement("div", document.body, { "id": "bettercanvas-reminders" });
container.style.display = "flex";
container.textContent = "";
const storage = await chrome.storage.sync.get("reminders");
const now = (new Date()).getTime();
storage["reminders"].forEach(reminder => {
if (reminder.d >= now) {
createReminder(reminder, container);
}
});
}
}
}
// async function ScheduledReminderCheck() {
// let date = new Date();
// let currentHour = date.getHours();
// let currentMinute = date.getMinutes();
// if (options.scheduledReminderTime) {
// let [hour, minute] = options.scheduledReminderTime.split(":");
// if (parseInt(hour) == currentHour && parseInt(minute) == currentMinute) {
// const container = document.getElementById("bettercanvas-reminders") || makeElement("div", document.body, { "id": "bettercanvas-reminders" });
// container.style.display = "flex";
// container.textContent = "";
// const storage = await chrome.storage.sync.get("reminders");
// const now = (new Date()).getTime();
// storage["reminders"].forEach(reminder => {
// if (reminder.d >= now) {
// createReminder(reminder, container);
// }
// });
// }
// }
// }
function toggleScheduledReminders() {
clearInterval(reminderCheck);
if (options.scheduledReminder !== true) return;
ScheduledReminderCheck();
reminderCheck = setInterval(ScheduledReminderCheck, 60000);
}
// function toggleScheduledReminders() {
// clearInterval(reminderCheck);
// if (options.scheduledReminder !== true) return;
// ScheduledReminderCheck();
// reminderCheck = setInterval(ScheduledReminderCheck, 60000);
// }
isDomainCanvasPage();
function isDomainCanvasPage() {
chrome.storage.sync.get(['custom_domain', 'dark_mode', 'dark_preset', 'device_dark', 'remind', 'scheduledReminder', 'scheduledReminderTime'], result => {
chrome.storage.sync.get(['custom_domain', 'dark_mode', 'dark_preset', 'device_dark', 'remind'/*, 'scheduledReminder', 'scheduledReminderTime'*/], result => {
options = result;
if (result.custom_domain.length && result.custom_domain[0] !== "") {
for (let i = 0; i < result.custom_domain.length; i++) {
@ -232,14 +232,14 @@ function isDomainCanvasPage() {
// if the code reaches this point, its not a canvas page so run the reminders
setTimeout(reminderWatch, 2000);
setInterval(reminderWatch, 60000);
toggleScheduledReminders();
// toggleScheduledReminders();
// turn the reminders on/off if the option is changed
chrome.storage.onChanged.addListener((changes) => {
Object.keys(changes).forEach(key => {
if (key === "remind") reminderWatch();
if (key === "scheduledReminder" || key === "scheduledReminderTime") {
options[key] = changes[key].newValue;
toggleScheduledReminders();
// toggleScheduledReminders();
}
})
})
@ -255,7 +255,7 @@ function startExtension() {
chrome.storage.sync.get(null, result => {
options = { ...options, ...result };
toggleAutoDarkMode();
toggleScheduledReminders();
// toggleScheduledReminders();
getApiData();
checkDashboardReady();
loadCustomFont();
@ -263,7 +263,7 @@ function startExtension() {
changeFavicon();
updateReminders();
applyCustomBackground();
//getClassAverages();
setTimeout(() => document.getElementById("footer").remove(), 800);
@ -335,10 +335,12 @@ function applyOptionsChanges(changes) {
customizeCards();
break;
case "todo_hr24":
case "todo_separate_scrollbar":
case "num_todo_items":
case "hover_preview":
case "todo_overdues":
// case "todo_overdues":
case "todo_hide_feedback":
case "todo_full_height":
case "custom_cards_3":
moreAnnouncementCount = 0;
moreAssignmentCount = 0;
@ -367,16 +369,16 @@ function applyOptionsChanges(changes) {
case "custom_styles":
applyAestheticChanges();
break;
case "show_updates":
showUpdateMsg();
break;
// case "show_updates":
// showUpdateMsg();
// break;
case "remind":
showExampleReminder();
break;
case "scheduledReminder":
case "scheduledReminderTime":
toggleScheduledReminders();
break;
// case "scheduledReminder":
// case "scheduledReminderTime":
// toggleScheduledReminders();
// break;
case "imageSize":
case "cardRoundness":
case "cardSpacing":
@ -409,7 +411,7 @@ function applyCustomBackground() {
backdrop-filter: blur(10px) !important;
border-radius: 5px;
}
#right-side-wrapper {
#right-side-wrapper {
background: color-mix(in srgb, var(--bcbackground-0) 45%, transparent) !important;
backdrop-filter: blur(10px) !important;
border-radius: 5px;
@ -836,7 +838,7 @@ function convertToDueDate(dueAt) {
final = "due ";
let date = new Date(dueAt);
final += date.toLocaleString("en-US", { month: "short", day: "numeric" });
final += " at " + date.toLocaleString("en-US", { hour: "numeric", minute: "numeric", hour12: true });
final += " at " + date.toLocaleString("en-US", { hour: "numeric", minute: "numeric", hour12: !options.todo_hr24 });
return final;
}
function updateIndicator(element) {
@ -1001,6 +1003,34 @@ async function createTodoSections(location) {
if (betterTodoFilter == "completed") {
populateAssignments(true);
}
const feedbackElement = document.querySelector(".recent_feedback");
if (feedbackElement) {
if (options.todo_hide_feedback == true) {
feedbackElement.style.display = "none";
} else {
feedbackElement.style.display = "block";
}
}
const sidebar = document.getElementById("right-side-wrapper");
if (options.todo_full_height) {
sidebar.style.minHeight = "100vh";
} else {
sidebar.style.minHeight = "";
}
if (options.todo_separate_scrollbar) {
sidebar.style.position = "sticky";
sidebar.style.top = "0";
sidebar.style.height = "100vh";
sidebar.style.overflowY = "auto";
} else {
sidebar.style.position = "";
sidebar.style.top = "";
sidebar.style.height = "";
sidebar.style.overflowY = "";
// maybe invisible scrollbar?
}
});
}
@ -1133,9 +1163,6 @@ function populateAssignments(iscompleted = false) {
isExpanded = !isExpanded;
})
}
if (options.todo_hide_feedback) {
document.querySelector(".recent_feedback").remove();
}
}
function populateAnnouncements() {
@ -1734,27 +1761,27 @@ function autoDarkModeCheck() {
}
}
async function ScheduledReminderCheck() {
let date = new Date();
let currentHour = date.getHours();
let currentMinute = date.getMinutes();
if (options.scheduledReminderTime) {
let [hour, minute] = options.scheduledReminderTime.split(":");
if (parseInt(hour) == currentHour && parseInt(minute) == currentMinute) {
const container = document.getElementById("bettercanvas-reminders") || makeElement("div", document.body, { "id": "bettercanvas-reminders" });
container.style.display = "flex";
container.textContent = "";
const storage = await chrome.storage.sync.get("reminders");
const now = (new Date()).getTime();
storage["reminders"].forEach(reminder => {
if (reminder.d >= now) {
createReminder(reminder, container);
}
});
}
}
// async function ScheduledReminderCheck() {
// let date = new Date();
// let currentHour = date.getHours();
// let currentMinute = date.getMinutes();
// if (options.scheduledReminderTime) {
// let [hour, minute] = options.scheduledReminderTime.split(":");
// if (parseInt(hour) == currentHour && parseInt(minute) == currentMinute) {
// const container = document.getElementById("bettercanvas-reminders") || makeElement("div", document.body, { "id": "bettercanvas-reminders" });
// container.style.display = "flex";
// container.textContent = "";
// const storage = await chrome.storage.sync.get("reminders");
// const now = (new Date()).getTime();
// storage["reminders"].forEach(reminder => {
// if (reminder.d >= now) {
// createReminder(reminder, container);
// }
// });
// }
// }
}
// }
function toggleAutoDarkMode() {
clearInterval(timeCheck);
@ -1763,12 +1790,12 @@ function toggleAutoDarkMode() {
timeCheck = setInterval(autoDarkModeCheck, 60000);
}
function toggleScheduledReminders() {
clearInterval(reminderCheck);
if (options.scheduled_reminders === false) return; //TODO: add it to the options thing
ScheduledReminderCheck();
reminderCheck = setInterval(ScheduledReminderCheck, 60000);
}
// function toggleScheduledReminders() {
// clearInterval(reminderCheck);
// if (options.scheduled_reminders === false) return; //TODO: add it to the options thing
// ScheduledReminderCheck();
// reminderCheck = setInterval(ScheduledReminderCheck, 60000);
// }
let iframeObserver;
function runiframeChecker() {
@ -2496,7 +2523,7 @@ function showUpdateMsg() {
return;
}
// first creation
// first creation
div = makeElement("div", el, { "id": "bettercanvas-update-msg" });
makeElement("p", div, { "textContent": options.update_msg });
const close = makeElement("button", div, { "id": "bettercanvas-update-close", "textContent": "Close" });

View File

@ -1,10 +1,11 @@
const syncedSwitches = ['remind', '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_hide_feedback",
"todo_full_height",
"device_dark",
"relative_dues",
"card_overdues",
"todo_overdues",
// "todo_overdues",
"gpa_calc_prepend",
"auto_dark",
"auto_dark_start",
@ -12,12 +13,13 @@ const syncedSubOptions = [
"num_assignments",
"assignment_date_format",
"todo_hr24",
"todo_separate_scrollbar",
"grade_hover",
"hide_completed",
// "hide_completed",
"num_todo_items",
"hover_preview",
"scheduledReminder",
"scheduledReminderTime",
// "scheduledReminder",
// "scheduledReminderTime",
"customCardStyles",
"imageSize",
"cardRoundness",
@ -68,6 +70,7 @@ const defaultOptions = {
"dashboard_notes_text": "",
"better_todo": false,
"todo_hr24": false,
"todo_separate_scrollbar": false,
"condensed_cards": false,
"custom_cards": {},
"custom_cards_2": {},
@ -75,7 +78,7 @@ const defaultOptions = {
"custom_assignments": [],
"custom_assignments_overflow": ["custom_assignments"],
"grade_hover": false,
"hide_completed": false,
// "hide_completed": false,
"num_todo_items": 10,
"custom_font": { "link": "", "family": "" },
"hover_preview": true,
@ -96,7 +99,7 @@ const defaultOptions = {
"D-": { "cutoff": 60, "gpa": .7 },
"F": { "cutoff": 0, "gpa": 0 }
},
"todo_overdues": false,
// "todo_overdues": false,
"card_overdues": false,
"relative_dues": false,
"hide_feedback": false,
@ -104,14 +107,15 @@ const defaultOptions = {
"assignment_states": {},
"tab_icons": false,
"todo_hide_feedback": false,
"todo_full_height": false,
"device_dark": false,
"cumulative_gpa": { "name": "Cumulative GPA", "hidden": false, "weight": "dnc", "credits": 999, "gr": 3.21 },
"show_updates": false,
// "show_updates": false,
"card_method_date": false,
"card_method_dashboard": true,
"card_limit": 25,
"scheduledReminder": false,
"scheduledReminderTime": { "hour": "09", "minute": "00" },
// "scheduledReminder": false,
// "scheduledReminderTime": { "hour": "09", "minute": "00" },
"imageSize": 100,
"cardRoundness": 5,
"cardSpacing": 0,
@ -196,14 +200,14 @@ function setupAutoDarkInput(initial, time) {
});
}
function setupScheduledReminderInput(initial) {
let el = document.querySelector('#scheduledReminderTime');
el.value = initial.hour + ":" + initial.minute;
el.addEventListener('change', function () {
let timeinput = { "hour": this.value.split(':')[0], "minute": this.value.split(':')[1] };
chrome.storage.sync.set({ scheduledReminderTime: timeinput });
});
}
// function setupScheduledReminderInput(initial) {
// let el = document.querySelector('#scheduledReminderTime');
// el.value = initial.hour + ":" + initial.minute;
// el.addEventListener('change', function () {
// let timeinput = { "hour": this.value.split(':')[0], "minute": this.value.split(':')[1] };
// chrome.storage.sync.set({ scheduledReminderTime: timeinput });
// });
// }
function setupCardLimitSlider(initial) {
let el = document.querySelector("#card_limit");
@ -282,20 +286,22 @@ function setup() {
"browser_show_likes",
"gpa_calc_weighted",
"gpa_calc_cumulative",
/*'card_method_date',*/ "show_updates",
// /*'card_method_date',*/ "show_updates",
"todo_hide_feedback",
"todo_full_height",
"device_dark",
"relative_dues",
"card_overdues",
"todo_overdues",
// "todo_overdues",
"gpa_calc_prepend",
"auto_dark",
"assignment_date_format",
"todo_hr24",
"todo_separate_scrollbar",
"grade_hover",
"hide_completed",
// "hide_completed",
"hover_preview",
"scheduledReminder",
// "scheduledReminder",
"customCardStyles",
],
tabs: {
@ -357,10 +363,10 @@ function setup() {
identifier: "custom_styles",
setup: (initial) => setupCustomStyle(initial),
},
{
identifier: "scheduledReminderTime",
setup: (initial) => setupScheduledReminderInput(initial),
},
// {
// identifier: "scheduledReminderTime",
// setup: (initial) => setupScheduledReminderInput(initial),
// },
{
identifier: "imageSize",
setup: (initial) => setupImageSizeInput(initial),
@ -410,7 +416,9 @@ function setup() {
chrome.storage.sync.get(menu.checkboxes, sync => {
menu.checkboxes.forEach(option => {
document.querySelector("#" + option).addEventListener("change", function (e) {
const checkbox = document.querySelector("#" + option);
if (!checkbox) {console.log(option); return;}
checkbox.addEventListener("change", function (e) {
let status = this.checked;
chrome.storage.sync.set(JSON.parse(`{"${option}": ${status}}`));
});