diff --git a/bvletools.user.js b/bvletools.user.js new file mode 100644 index 0000000000000000000000000000000000000000..f428ff8149e8d53ae5011f37c07051a76063e304 --- /dev/null +++ b/bvletools.user.js @@ -0,0 +1,69 @@ +// ==UserScript== +// @name Bromcom VLE Tools +// @namespace http://radialbog9.uk/ +// @version 2024-02-04 +// @description Bromcom VLE dashboard widget +// @author Radialbog9 +// @match https://vle.bromcomcloud.com/Home/Dashboard +// @downloadURL https://git.rb9.xyz/TheJoeCoder/bromcom-vle-to-ics/-/raw/main/bvletools.user.js +// @updateURL https://git.rb9.xyz/TheJoeCoder/bromcom-vle-to-ics/-/raw/main/bvletools.user.js +// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== +// @require https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js +// @grant none +// ==/UserScript== + +/* + +<div class="grid-stack-item ui-draggable ui-resizable ui-resizable-autohide ui-resizable-disabled" id="gs_RB9Buttons" data-color="danger" data-gs-id="gs_RB9Buttons" data-gs-x="8" data-gs-y="2" data-gs-width="4" data-gs-height="2" data-gs-no-resize="yes"> + <div class="panel panel-danger shadow grid-stack-item-content ui-draggable-handle"> + <div class="panel-heading"> + <table> + <tbody> + <tr class="tableheader"> + <td><i style="font-size:35px; padding-right:5px; padding-left:5px" class="fa fa fa-wrench "></i></td> + <td> + <h3 class="panel-title">Toolkit</h3><h5 class="panelSubTitle">Utilities Toolkit</h5> + </td> + </tr> + <tr></tr> + </tbody> + </table> + </div> + <div id="content_RB9Buttons" style="display:block; width: 100%;padding:0px;" class="ifNoDataInWidget"> +<span class="txtalignCenter"><a id="rb9ButtonGetTTWeek">Get Timetable (This Week)</a></span> +</div> + </div><div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90; display: none;"></div> + </div> +*/ + +(function() { + 'use strict'; + function formatDate(date) { + var d = new Date(date), + month = '' + (d.getMonth() + 1), + day = '' + d.getDate(), + year = d.getFullYear(); + + if (month.length < 2) {month = '0' + month;} + if (day.length < 2) {day = '0' + day;} + + return [year, month, day].join('-'); + } + addEventListener("load", (e) => { + $("#widgetsDahsboard .grid-stack").append("\r\n<div class=\"grid-stack-item ui-draggable ui-resizable ui-resizable-autohide ui-resizable-disabled\" id=\"gs_RB9Buttons\" data-color=\"danger\" data-gs-id=\"gs_RB9Buttons\" data-gs-x=\"8\" data-gs-y=\"2\" data-gs-width=\"4\" data-gs-height=\"2\" data-gs-no-resize=\"yes\">\r\n <div class=\"panel panel-danger shadow grid-stack-item-content ui-draggable-handle\">\r\n <div class=\"panel-heading\">\r\n <table>\r\n <tbody>\r\n <tr class=\"tableheader\">\r\n <td><i style=\"font-size:35px; padding-right:5px; padding-left:5px\" class=\"fa fa fa-wrench \"><\/i><\/td>\r\n <td>\r\n <h3 class=\"panel-title\">Toolkit<\/h3><h5 class=\"panelSubTitle\">Utilities Toolkit<\/h5>\r\n <\/td>\r\n <\/tr>\r\n <tr><\/tr>\r\n <\/tbody>\r\n <\/table>\r\n <\/div>\r\n <div id=\"content_RB9Buttons\" style=\"display:block; width: 100%;padding:0px;\" class=\"ifNoDataInWidget\">\r\n<span class=\"txtalignCenter\"><a id=\"rb9ButtonGetTTWeek\">Get Timetable (This Week)<\/a><\/span>\r\n<\/div>\r\n <\/div><div class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\" style=\"z-index: 90; display: none;\"><\/div>\r\n <\/div>"); + $("#rb9ButtonGetTTWeek").on("click", () => { + var now = new Date(); + var today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); + var lastSunday = new Date(today.setDate(today.getDate()-today.getDay())); + var nextSaturday = new Date(lastSunday).setDate(lastSunday.getDate() + 7); + var url = "https://vle.bromcomcloud.com/Timetable/GetTimeTable?WeekStartDate=" + formatDate(lastSunday) + "&weekEndDate=" + formatDate(nextSaturday) + "&type=1&id=0"; + $.ajax({url: url, method: "POST", dataType: "json"}) + .done((data) => { + var data_str = JSON.stringify(data); + console.log(data_str); + navigator.clipboard.writeText(data_str); + alert("Copied to Clipboard."); + }); + }); + }); +})();