// ==UserScript==
// @name studentportalen-extended
// @namespace http://ventureinto.space
// @version 0.4
// @user-agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:22.0) Gecko/20130328 Firefox/22.0
// @description Add missing functionality to studenportalen.liu.se
// @author Nils Eriksson niler851@student.liu.se
// @match https://www3.student.liu.se/portal/studieresultat/resultat*
// @grant GM_getResourceText
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @require http://code.jquery.com/jquery-2.1.4.min.js
// @require https://cdn.firebase.com/js/client/2.3.1/firebase.js
// @resource bootcss https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
// @downloadURL none
// ==/UserScript==
/* set up FireBASE */
var myFirebaseRef = new Firebase("https://studentportalen-data.firebaseio.com/");
var getAllCourseData = function(){
var fireCourses = myFirebaseRef.child("courses");
fireCourses.on("value", function(snapshot) {
var courses = snapshot.val();
$('.course-row').each(function(i, row){
var rowID = $(row).attr('id').replace('*','');
if(rowID in courses){
var level = courses[rowID].level
$(row).find('.'+level).attr('selected',true);
}
});
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
}();
var updateCourseLevel = function(course ,level){
var fireCourses = myFirebaseRef.child("courses");
fireCourses.child(course).set({ "level": level});
}
/* END OF FIREBASE */
$("head").prepend('');
console.debug('start: add CSS');
var bootcss = GM_getResourceText('bootcss');
GM_addStyle(bootcss);
console.debug('done: add CSS');
var studiehandbokenBase = "http://kdb-5.liu.se/liu/lith/studiehandboken/svkursplan.lasso?&k_budget_year=2015&k_kurskod="
//// VIEW ////
/*
Create area for grade info
*/
$("form").append("
Snitt
");
$("#snitt").append("
Viktat:
");
$("#snitt").append("
Oviktat:
");
$("#snitt").append("
Välj alla
");
$("#snitt").append("");
/*
Give the table of courses a id
*/
$("table.resultlist > tbody").attr('id','grade-table');
//var createLevelBox = function(selectedLevel){
var levelBox ='\
\
\
';
/**
MODIFY THE TABLE OF GRADES
-Add new header "Selected"
-Add checkbox for all courses
-Add plus minus sign next to grades to se the impact
of rasing them
**/
(function expandTableOfGrades(){
$("#grade-table").children().each(function(){
var row = rowType(this);
if( row.numericGrade || row.letterGrade){
if(row.numericGrade){
$(this).prepend("