RaPla-Middleware-LinkGen/scripts.js
2021-10-09 15:29:18 +02:00

99 lines
3.1 KiB
JavaScript

"use strict";
$(document).ready(function () {
$('#submitBtn').click(function () {
generateLink();
});
$('#full-link').click(function () {
let element = $('#full-link');
let text = element.text()
copyToClipboard(text);
element.text('Copied!');
setTimeout(function () {
element.text(text);
}, 2000);
});
});
function copyToClipboard(text) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val(text).select();
document.execCommand("copy");
$temp.remove();
}
function generateLink() {
let selectedCourseFromPicker = $('#coursename').val().toString();
let raplaUser = '';
let raplaFile = '';
if (selectedCourseFromPicker === '-1') {
let providedRaPlaLink = $('#raplalink').val().toString();
if(providedRaPlaLink !== '') {
const url = new URL(providedRaPlaLink);
raplaUser = url.searchParams.get('user');
raplaFile = url.searchParams.get('file');
} else {
$('#full-link').text('Please provide either a course or a RaPla Link!');
return;
}
} else {
let courseInfo = courseLinks[selectedCourseFromPicker];
raplaUser = courseInfo.user;
raplaFile = courseInfo.file;
}
let showBlockers = $('#hideBlockers').is(':checked') ? 0 : 1;
let selectedElectiveModule = $('#wahlmodul').val().toString();
let selectedProfileModule = $('#profilmodul').val().toString();
let base_url = 'https://api.plutodev.de/rapla-middleware'
base_url += '?user=' + raplaUser;
base_url += '&file=' + raplaFile;
base_url += '&blockers=' + showBlockers;
base_url += '&wahl=' + selectedElectiveModule;
base_url += '&pflicht=' + selectedProfileModule;
$('#full-link').text(base_url);
}
let courseLinks = {
'TINF19B1': {user: 'freudenmann', file: 'TINF19B1'},
'TINF19B2': {user: 'braun', file: 'TINF19B2'},
'TINF19B3': {user: 'vollmer', file: 'tinf19b3'},
'TINF19B4': {user: 'eisenbiegler', file: 'TINF19B4'},
'TINF19B5': {user: 'strand', file: 'TINF19B5'},
'TINF20B1': {user: 'freudenmann', file: 'TINF20B1'},
'TINF20B2': {user: 'braun', file: 'TINF20B2'},
'TINF20B3': {user: 'vollmer', file: 'tinf20b3'},
'TINF20B4': {user: 'eisenbiegler', file: 'TINF20B4'},
'TINF20B5': {user: 'strand', file: 'TINF20B5'}
}
/* Toggle Dark-Mode */
const toggleDarkMode = () => {
let element = document.body;
let navElement = document.getElementById('raplalinkcontainer--nav');
let colorModeToggleIcon = document.getElementById('colorModeToggleIcon');
let submitButton = document.getElementById('submitBtn');
element.classList.toggle("body--dark-mode");
navElement.classList.toggle("nav--dark-mode");
submitButton.classList.toggle("submitButton--dark-mode");
if (colorModeToggleIcon.classList.contains("fa-moon")) {
colorModeToggleIcon.classList.remove("fa-moon");
colorModeToggleIcon.classList.add("fa-sun");
} else {
colorModeToggleIcon.classList.remove("fa-sun");
colorModeToggleIcon.classList.add("fa-moon");
}
}