Update Compass QoL Enhancer to 1.16.0
- Slightly more elegantly suppress the barebones CKEditor context menu - Workaround https://github.com/lydell/LinkHints/issues/86
This commit is contained in:
parent
a2b8370309
commit
eb1a4ab0a3
|
@ -2,7 +2,7 @@
|
|||
// @name Compass QoL Enhancer
|
||||
// @namespace blankie-scripts
|
||||
// @match http*://*.compass.education/*
|
||||
// @version 1.15.0
|
||||
// @version 1.16.0
|
||||
// @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
|
||||
// @inject-into page
|
||||
|
@ -86,7 +86,7 @@ if (NewsfeedItemWidget) {
|
|||
this.newsItemTextContainer.events.afterrender = true;
|
||||
// Expand news feed items by clicking on them
|
||||
this.on("afterrender", function() {
|
||||
this.el.on("click", handleNewsItemClick.bind(this), undefined, {single: true});
|
||||
this.el.on("click", handleNewsItemClick.bind(this), this.el, {single: true});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,6 @@ if (LearningTasksSubmissionWidget) {
|
|||
}
|
||||
}
|
||||
|
||||
// Make session previous/next button links
|
||||
function updateInstanceButton(instanceDetails, instanceButton, offset) {
|
||||
// Make previous/next session buttons links
|
||||
let index = instanceDetails.instanceStore.indexOfId(instanceDetails.m_instanceId);
|
||||
|
@ -367,7 +366,7 @@ function handleCKEditor(instance) {
|
|||
|
||||
function handleCKEditorLink(element) {
|
||||
// Make links inside lesson plans open in the parent instead of a new tab
|
||||
if (element.target !== "_blank" && element.target) {
|
||||
if (element.target === "_parent") {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -462,17 +461,26 @@ for (let element of document.querySelectorAll("#productNavBar a[target='_blank']
|
|||
element.removeAttribute("target");
|
||||
}
|
||||
|
||||
// Suppress that annoying barebones context menu that only has Copy
|
||||
// why is it not obvious that you can just hold ctrl or shift to suppress it???
|
||||
// i know it's compass' fault but i'm still frustrated
|
||||
// unsafeWindow.CKEDITOR may not be set if you're on the login page, for example
|
||||
if (unsafeWindow.CKEDITOR) {
|
||||
let originalOn = unsafeWindow.CKEDITOR.dom.domObject.prototype.on;
|
||||
unsafeWindow.CKEDITOR.dom.domObject.prototype.on = function(type, listener) {
|
||||
// https://stackoverflow.com/a/10815581
|
||||
if (type !== "contextmenu") {
|
||||
return originalOn.apply(this, arguments);
|
||||
// Suppress that annoying barebones context menu that only has Copy
|
||||
unsafeWindow.CKEDITOR.plugins.load("contextmenu", function() {
|
||||
unsafeWindow.CKEDITOR.plugins.contextMenu.prototype.addTarget = function() {};
|
||||
});
|
||||
|
||||
// Workaround https://github.com/lydell/LinkHints/issues/86
|
||||
CKEDITOR.dom.document.prototype.write = function(data) {
|
||||
this.$.documentElement.innerHTML = data;
|
||||
for (let script of this.$.documentElement.querySelectorAll("script")) {
|
||||
// script.cloneNode() makes it not execute for some reason
|
||||
let scriptClone = document.createElement("script");
|
||||
for (let attr of script.attributes) {
|
||||
scriptClone.setAttribute(attr.name, attr.value);
|
||||
}
|
||||
scriptClone.innerText = script.innerText;
|
||||
script.replaceWith(scriptClone);
|
||||
}
|
||||
this.$.dispatchEvent(new Event("DOMContentLoaded"));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ Hacky script to disable the client-side file limit per tab
|
|||
|
||||
## Compass QoL Enhancer
|
||||
|
||||
A userscript that adds small but useful features for Compass. Features include:
|
||||
A userscript that adds small but useful features for Compass. Features are:
|
||||
- The ability to close windows by clicking on the background
|
||||
- Calendar events now being links (they work with [Link Hints] now! you can
|
||||
also ctrl+click on "standard classes", events, and learning tasks)
|
||||
|
@ -46,6 +46,8 @@ A userscript that adds small but useful features for Compass. Features include:
|
|||
- 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
|
||||
- Workaround a [Link Hints bug](https://github.com/lydell/LinkHints/issues/86)
|
||||
that prevents it from seeing links inside lesson plans and such
|
||||
- The option to remember logins is unchecked by default
|
||||
- The dashboard tab in a user's profile no longer points you to #dsh
|
||||
|
||||
|
|
Loading…
Reference in New Issue