Update Compass QoL Enhancer to 1.14.0

- Automatically add the currently open learning task's ID to the URL
- Derive tab IDs from their titles if they have an autogenerated one
This commit is contained in:
blankie 2023-09-05 16:22:54 +10:00
parent 2e251efbdf
commit b3558d6fc6
Signed by: blankie
GPG Key ID: CC15FC822C7F61F5
2 changed files with 30 additions and 3 deletions

View File

@ -2,7 +2,7 @@
// @name Compass QoL Enhancer // @name Compass QoL Enhancer
// @namespace blankie-scripts // @namespace blankie-scripts
// @match http*://*.compass.education/* // @match http*://*.compass.education/*
// @version 1.13.2 // @version 1.14.0
// @author blankie // @author blankie
// @description A userscript that adds small but useful features for Compass, such as the ability to close windows by clicking on the background // @description A userscript that adds small but useful features for Compass, such as the ability to close windows by clicking on the background
// @inject-into page // @inject-into page
@ -97,6 +97,27 @@ if (LearningTasksDetailsWidgetNew) {
}; };
} }
// Automatically add (and remove) the currently open learning task to the URL
function handleLearningTaskOpen(window) {
let search = getHashSearch();
search.set("qol_learning_task", window.learningTask.data.id);
history.pushState("", "", `#${search.laxToString()}`);
}
function handleLearningTaskClose() {
let search = getHashSearch();
search.delete("qol_learning_task");
history.pushState("", "", `#${search.laxToString()}`);
}
let LearningTasksSubmissionWidget = getExtClass("Compass.widgets.LearningTasksSubmissionWidget");
if (LearningTasksSubmissionWidget) {
let original = LearningTasksSubmissionWidget.prototype.initComponent;
LearningTasksSubmissionWidget.prototype.initComponent = function() {
original.apply(this, arguments);
handleLearningTaskOpen(this);
this.on("close", handleLearningTaskClose);
}
}
function updateInstanceButton(instanceDetails, instanceButton, offset) { function updateInstanceButton(instanceDetails, instanceButton, offset) {
// Make previous/next session buttons links // Make previous/next session buttons links
let index = instanceDetails.instanceStore.indexOfId(instanceDetails.m_instanceId); let index = instanceDetails.instanceStore.indexOfId(instanceDetails.m_instanceId);
@ -222,6 +243,10 @@ function handleNewCalendarEvent(element, calendar) {
function handlePanelItem(panel, panelItem, isDefault, tabToOpen) { function handlePanelItem(panel, panelItem, isDefault, tabToOpen) {
let panelId = panelItem.itemId || panelItem.id; let panelId = panelItem.itemId || panelItem.id;
// example of panel-<id>: /Organise/Subjects/Subject.aspx
if (panelId.startsWith("panel-")) {
panelId = panelItem.title.toLowerCase().replaceAll(" ", "-");
}
let panelItemHash = getPanelItemHash(panelId, isDefault); let panelItemHash = getPanelItemHash(panelId, isDefault);
// Automatically open tab specified in fragment // Automatically open tab specified in fragment

View File

@ -30,7 +30,7 @@ A userscript that adds small but useful features for Compass. Features include:
- Calendar events now show their end time without having to being hovered - Calendar events now show their end time without having to being hovered
- Tabs are now links (you can refresh pages and the tab will automatically - Tabs are now links (you can refresh pages and the tab will automatically
open. you can also ctrl+click on them) open. you can also ctrl+click on them)
- Files and folders in Resources is now marked clickable ([Link Hints] can now - Files and folders in Resources are now marked clickable ([Link Hints] can now
open them!) open them!)
- File upload buttons now work with [Link Hints] - File upload buttons now work with [Link Hints]
- Links inside lesson plans now open in the parent tab by default instead of - Links inside lesson plans now open in the parent tab by default instead of
@ -38,9 +38,11 @@ A userscript that adds small but useful features for Compass. Features include:
- Ctrl-clicking an activity in a user's learning tasks tab no longer collapses - Ctrl-clicking an activity in a user's learning tasks tab no longer collapses
everything else everything else
- Learning tasks now being links (you can ctrl-click them) - Learning tasks now being links (you can ctrl-click them)
- Opening a learning task will automatically add its ID to the URL
- The previous/next buttons and sessions dropdown are now links (you can now - The previous/next buttons and sessions dropdown are now links (you can now
use [Link Hints] and ctrl-click to open them) use [Link Hints] and ctrl-click to open them)
- News feed items can now be opened by simply clicking on their background - Class and news feed items can now be opened by simply clicking on their
background
- The context menu that only says "Copy" is now suppressed - The context menu that only says "Copy" is now suppressed
- The option to remember logins is unchecked by default - The option to remember logins is unchecked by default
- The dashboard tab in a user's profile no longer points you to #dsb - The dashboard tab in a user's profile no longer points you to #dsb