Skip to content

Instantly share code, notes, and snippets.

@bfritscher
Last active August 17, 2022 17:03
Show Gist options
  • Save bfritscher/4fc93ce96d58b2df01f334e10f1493b8 to your computer and use it in GitHub Desktop.
Save bfritscher/4fc93ce96d58b2df01f334e10f1493b8 to your computer and use it in GitHub Desktop.
cyberlearn fix
// ==UserScript==
// @name cyberlearn fix
// @namespace ig.he-arc.ch
// @match https://cyberlearn.hes-so.ch/*
// @grant none
// @version 1.0
// @author Boris Fritscher
// @description 8/16/2022, 10:49:56 AM
// ==/UserScript==
// remove ad links
const lis = [...document.querySelectorAll(".primary-navigation .moremenu ul li")]
if(lis.length > 4) {
for(let i=1; i <=3; i++){
lis[lis.length-(i+1)].remove();
}
}
//remove help
const btCircle = document.getElementById("bt_circle")
if (btCircle) {
btCircle.remove();
}
function addMenuItems(el, classification) {
return new Promise((resolve, reject) => {
require(['core_course/repository'], (repo) => repo.getEnrolledCoursesByTimelineClassification(classification, 0, 0, 'fullname').then((res) => {
res.courses.forEach(course => {
const li = document.createElement('li');
li.innerHTML = `<a href="${course.viewurl}" class="dropdown-item">${course.fullnamedisplay}</a>`;
el.append(li);
})
resolve();
}));
})
}
function addHeader(el, name) {
const h6 = document.createElement('h6');
h6.classList.add('dropdown-header');
h6.textContent = name;
el.append(h6);
}
function addDivider(el) {
const div = document.createElement('div');
div.classList.add('dropdown-divider');
el.append(div);
}
async function createCoursesMenu () {
const div = document.createElement('div');
div.classList.add('dropdown', 'dropdown');
div.innerHTML = '<a href="#" data-toggle="dropdown" class="btn dropdown-toggle">courses</a>';
const ul = document.createElement('ul');
ul.classList.add('dropdown-menu', 'dropdown-menu-right');
div.append(ul);
document.getElementById("usernavigation").prepend(div);
addHeader(ul, 'In Progress');
await addMenuItems(ul, 'inprogress');
addDivider(ul);
addHeader(ul, 'Future')
await addMenuItems(ul, 'future');
addDivider(ul);
addHeader(ul, 'Past')
await addMenuItems(ul, 'past');
}
createCoursesMenu();
const style = document.createElement("style");
style.innerText = `
#page.drawers {
padding: 0 3rem;
}
.content h3 {
border-bottom: 2px solid #00609c;
margin-top: 0.5rem;
}
.content h4 {
font-style: italic;
font-size: 1rem;
margin-top: 0.5rem;
}
.course-content ul.ctopics li.section.main .content .sectionhead {
background-color: rgb(32 46 54 / 80%);
}
.course-content ul.ctopics li.section.main.current .content .sectionhead {
background-color: rgba(0, 124, 183, 1.0);
}
.course-content ul.ctopics li.section .content .toggle span.the_toggle h3.sectionname,
.course-content ul.ctopics li.section .content.sectionhidden h3.sectionname {
border: none;
}
.activityiconcontainer ,
.activitytitle .activityiconcontainer {
width: 24px;
height: 24px;
}
.activityiconcontainer .activityicon,
.activityiconcontainer .icon {
height: 16px;
width: 16px;
}
.course-content ul.ctopics li.section .content .toggle span.the_toggle h3.sectionname,
.course-content ul.ctopics li.section .content.sectionhidden h3.sectionname {
margin-top: 0;
margin-bottom: 0;
text-align: left;
}
`;
document.head.append(style);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment