// ==UserScript== // @name Canvas Experience (CX) Tools // @namespace https://siteadmin.instructure.com/ // @namespace https://instructure.my.salesforce.com/* // @version 2025032402 // @description Trying to take over the world! "Canvas Experience (CX) Tools" // @author Daniel Gilogley, Zoe Bogner and Christopher McAvaney // @match https://*.test.instructure.com/* // @match https://*.beta.instructure.com/* // @match https://*.instructure.com/* // @match https://*.security.instructure.com/* // @match https://s3.amazonaws.com/SSL_Assets/APAC/ticketpage.html* // @match https://instructure.my.salesforce.com/* // @exclude https://siteadmin*instructure.com/* // @exclude https://reports.instructure.com/* // @exclude https://gerrit.instructure.com/* // @exclude https://identity.instructure.com/* // @grant GM_getValue // @grant GM_setValue // @grant GM_getResourceText // @grant GM_addStyle // @run-at document-idle // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @resource customCSS https://raw.githubusercontent.com/clmcavaney/CX-Tools/master/canvasBetter.css // @icon https://www.google.com/s2/favicons?sz=64&domain=instructure.com // ==/UserScript== if (typeof jQuery == 'undefined' || typeof jQuery === undefined || typeof jQuery === null) { var headTag = document.getElementsByTagName("head")[0]; var jqTag = document.createElement('script'); jqTag.type = 'text/javascript'; jqTag.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'; headTag.appendChild(jqTag); jqTag.onload = myJQueryCode; } else { myJQueryCode(); } function myJQueryCode() { // global variables var domain = 'https://' + document.location.hostname; var userToken = getItem('token'); var token = userToken; var _cx_tools_on = false; var _cx_tools_version = '2025032402'; // If on an instructure page if (document.location.hostname.indexOf('instructure.com') >= 0) { $(document).ready(function() { var cssTxt = GM_getResourceText("customCSS"); GM_addStyle(cssTxt); //add the settings link $('#menu > li:last').after('

| Old SIS ID / Canvas ID | New SIS ID | Console Log |
|---|---|---|
| | | |
Acknowledgements:
"User ID" and "Login ID" are the only required fields.
Multiple users can be specified and each users details can be comma separated or new line separated.
| First Name | Last Name | User ID | Login ID | Email Address |
|---|---|---|---|---|
| | | |
|
| | | |
View all courses');
if(document.location.pathname.toLowerCase() === "/courses/" + ENV.course_id){
_cx_tools_on = true;
//If on the homepage of the course
//Settings link above the options on RHS
$('#course_show_secondary > div.course-options > a.btn.button-sidebar-wide.course-home-sub-navigation-lti:last').before('
Course Settings');
//Undelete option
$('#course_show_secondary > div.course-options > a.btn.button-sidebar-wide.course-home-sub-navigation-lti:last').before('
Undelete Course Content');
}
}
if ( document.location.pathname.match(re_perms) !== null ) {
_cx_tools_on = true;
// change each header to be no longer than 18 characters followed by an ellipses - but only call the function once the table has been loaded
waitForKeyElements("table.ic-permissions__table", fix_permission_header);
}
// Turn on ribbon if a page has modification through the CX Tools
if (_cx_tools_on == true) {
// put the banner div after the body
$('body').prepend('
CX Tools ON
NO ACCESS TOKEN CONFIGURED