"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 = $(""); $("#linkModal").append($temp); $temp.val(text).select(); document.execCommand("copy"); $temp.remove(); } function generateLink() { // Clear paragraph $('#full-link').text(''); 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 { $('#linkModalTitle').text('Oh No!'); $('#raplalinkcontainer--link').text('Please provide either a course or a RaPla Link!'); $('#raplalinkcontainer--closeButton').text('Gonna Do that!'); 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; $('#linkModalTitle').text('Your RaPla Link 🥳 '); $('#raplalinkcontainer--link').text('Here is the link that you can use for importing RaPla into your iCloud etc. calendar (click to copy)'); $('#full-link').text(base_url); $('#raplalinkcontainer--closeButton').text('Thank you for using'); } 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'} } /** * Calculates, in which semester the given course currently is * @param course The course to calculate the semester for * @returns {number} The number of the semester they are in */ function calculateSemester(course) { let yearRegex = new RegExp('[a-zA-Z]*([0-9]{2})B[0-9]'); let match = yearRegex.exec(course); let startYear = '20'; if (match !== null) { startYear += match[1]; } let currentYear = new Date().getFullYear(); let yearDifference = currentYear - startYear; let semesters = yearDifference * 2 + 1; return semesters; } /* 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"); /* Dialog */ let modalContents = document.getElementsByClassName('modal-toggle') for (let content of modalContents) { content.classList.toggle("modal--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"); } }