NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Firefly Timetable
// @namespace https://elizabethcollege.fireflycloud.net/*
// @version 1.0
// @description try to add back the better timetable
// @author Kieran Aslett
// @match https://elizabethcollege.fireflycloud.net/*
// @grant none
// @copyright 2019, Nooble9781 (https://openuserjs.org/users/Nooble9781)
// @license MIT
// ==/UserScript==
(function () {
window.onload = function () {
if (window.location.href == "https://elizabethcollege.fireflycloud.net/student-dashboard") {
let jquery = document.createElement("script");
jquery.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js';
document.head.appendChild(jquery);
let style = document.createElement("style");
style.innerHTML = '#cTimetable .ff_container-dashboard-section__main {overflow-x: auto; white-space: nowrap; } div.tttable { text-align: center; width:100%; border: 1px solid black; border-collapse: collapse;}.divTable.tttable .divTableCell, .divTable.tttable .divTableHead { width: 16.66667%; border: 1px solid black;}.divTable.tttable .divTableBody .divTableCell { font-size: 13px; border: 1px solid black;}.divTable.tttable .divTableHead { font-size: 15px; font-weight: bold; color: #444; background: #e6e6e6}.divTable{ display: table; }.divTableRow { display: table-row; }.divTableHeading { display: table-header-group;}.divTableCell, .divTableHead { display: table-cell;}.divTableHeading { display: table-header-group;}.divTableBody { display: table-row-group;}';
document.head.appendChild(style);
let dom = document.createElement("div");
dom.id = "cTimetable";
dom.innerHTML = '<br><div class="ff_container-dashboard-section ff_container-dashboard-section--tasks"><div class="ff__container-dashboard-section__dialog"></div><header class="ff_container-dashboard-section__header"><h2 class="ff_container-dashboard-section__title">Timetable</h2></header><div class="ff_container-dashboard-section__main"><br><div class="divTable tttable"><div class="divTableHeading"><div class="divTableRow"><div class="divTableHead"></div><div class="divTableHead">Monday</div><div class="divTableHead">Tuesday</div><div class="divTableHead">Wednesday</div><div class="divTableHead">Thursday</div><div class="divTableHead">Friday</div></div></div><div class="divTableBody"><div class="divTableRow"><div class="divTableHead">Registration</div><div class="divTableCell"><!--Mon R--></div><div class="divTableCell"><!--Tue R--></div><div class="divTableCell"><!--Wed R--></div><div class="divTableCell"><!--Thu R--></div><div class="divTableCell"><!--Fri R--></div></div><div class="divTableRow"><div class="divTableHead">Period 1</div><div class="divTableCell"><!--Mon Period 1--></div><div class="divTableCell"><!--Tue Period 1--></div><div class="divTableCell"><!--Wed Period 1--></div><div class="divTableCell"><!--Thu Period 1--></div><div class="divTableCell"><!--Fri Period 1--></div></div><div class="divTableRow"><div class="divTableHead">Period 2</div><div class="divTableCell"><!--Mon Period 2--></div><div class="divTableCell"><!--Tue Period 2--></div><div class="divTableCell"><!--Wed Period 2--></div><div class="divTableCell"><!--Thu Period 2--></div><div class="divTableCell"><!--Fri Period 2--></div></div><div class="divTableRow"><div class="divTableHead">Assembly</div><div class="divTableCell"><!--Mon Assembly--></div><div class="divTableCell"><!--Tue Assembly--></div><div class="divTableCell"><!--Wed Assembly--></div><div class="divTableCell"><!--Thu Assembly--></div><div class="divTableCell"><!--Fri Assembly--></div></div><div class="divTableRow"><div class="divTableHead">Break</div><div class="divTableCell">Break</div><div class="divTableCell">Break</div><div class="divTableCell">Break</div><div class="divTableCell">Break</div><div class="divTableCell">Break</div></div><div class="divTableRow"><div class="divTableHead">Period 3</div><div class="divTableCell"><!--Mon Period 3--></div><div class="divTableCell"><!--Tue Period 3--></div><div class="divTableCell"><!--Wed Period 3--></div><div class="divTableCell"><!--Thu Period 3--></div><div class="divTableCell"><!--Fri Period 3--></div></div><div class="divTableRow"><div class="divTableHead">Period 4</div><div class="divTableCell"><!--Mon Period 4--></div><div class="divTableCell"><!--Tue Period 4--></div><div class="divTableCell"><!--Wed Period 4--></div><div class="divTableCell"><!--Thu Period 4--></div><div class="divTableCell"><!--Fri Period 4--></div></div><div class="divTableRow"><div class="divTableHead">Lunch</div><div class="divTableCell">Lunch</div><div class="divTableCell">Lunch</div><div class="divTableCell">Lunch</div><div class="divTableCell">Lunch</div><div class="divTableCell">Lunch</div></div><div class="divTableRow"><div class="divTableHead">Period 5</div><div class="divTableCell"><!--Mon Period 5--></div><div class="divTableCell"><!--Tue Period 5--></div><div class="divTableCell"><!--Wed Period 5--></div><div class="divTableCell"><!--Thu Period 5--></div><div class="divTableCell"><!--Fri Period 5--></div></div><div class="divTableRow"><div class="divTableHead">Period 6</div><div class="divTableCell"><!--Mon Period 6--></div><div class="divTableCell"><!--Tue Period 6--></div><div class="divTableCell"><!--Wed Period 6--></div><div class="divTableCell"><!--Thu Period 6--></div><div class="divTableCell"><!--Fri Period 6--></div></div><div class="divTableRow"><div class="divTableHead">Period 7</div><div class="divTableCell"><!--Mon Period 7--></div><div class="divTableCell"><!--Tue Period 7--></div><div class="divTableCell"><!--Wed Period 7--></div><div class="divTableCell"><!--Thu Period 7--></div><div class="divTableCell"><!--Fri Period 7--></div></div></div></div><br></div><footer class="ff_container-dashboard-section__footer"><a href="/planner" class="ff_container-dashboard-section__more-link">View your full planner</a></footer></div><br>';
var subjectCalendar = undefined;
var daysC = document.getElementById("ffComponent_176064").getElementsByClassName("ff-calendar-days");
var periods = {
"08:25": "R",
"08:30": "Period 1",
"09:30": "Period 2",
"10:20": "Assembly",
"11:00": "Period 3",
"11:45": "Period 4",
"13:35": "Period 5",
"14:25": "Period 6",
"15:15": "Period 7",
}
for (let y = 0; y < daysC.length; y++) {
subjectCalendar = daysC[y].getElementsByClassName("ff-calendar-day-hasevents");
for (let i = 0; i < subjectCalendar.length; i++) {
let events = subjectCalendar[i];
let eventsData = events.getElementsByClassName("ff-calendar-event-data");
let eventsTime = events.getElementsByClassName("ff-calendar-event-time");
let day = subjectCalendar[i].getElementsByClassName("ff-calendar-day-name")[0].innerHTML;
for (let j = 0; j < eventsData.length; j++) {
let subject = eventsData[j].getElementsByClassName("ff-calendar-event-subject")[0].textContent;
let location = eventsData[j].getElementsByClassName("ff-calendar-event-location")[0].textContent;
let timeStart = eventsTime[j].getElementsByClassName("dtstart")[0].textContent;
dom.innerHTML = dom.innerHTML.toString().replace(("<!--" + day + " " + periods[timeStart] + "-->").toString(), (subject + "<br><i>" + location + "</i>").toString());
}
}
}
$(".ff_container-dashboard-section--tasks:first").after(dom)
}
document.getElementById("section-header").getElementsByClassName("section-image")[0].src = "https://github.com/NoobleMcScrunchkin/ducky/raw/master/eksDee.png";
document.getElementsByClassName("ff-page-meta-last-updated-by")[0].textContent = "Last updated by Henry Partington";
var day = new Date().getDate();
var month = new Date().getMonth() + 1;
var year = new Date().getFullYear();
document.getElementsByClassName("ff-page-meta-last-updated-on")[0].textContent = "Last updated on " + day + "/" + month + "/" + year;
let test = document.getElementsByClassName("ff_module-task-todo__meta");
for (let el in test) {
test[el].textContent = "Henry Partington";
}
}
})();