mirror of
https://github.com/GuySandler/CanvasRefined.git
synced 2026-06-21 01:49:54 +02:00
better todolist 6
final, config
This commit is contained in:
parent
b5bcd19466
commit
a0e26918ad
@ -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:"
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
169
js/content.js
169
js/content.js
@ -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" });
|
||||
|
||||
60
js/popup.js
60
js/popup.js
@ -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}}`));
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user