diff --git a/bvletools.user.js b/bvletools.user.js index f335ac2b7eecded07d9ff70baf7a53ead46944d3..f0ccb67d0f33f0ff76ac9b9b7cf5bf48dea4a3fd 100644 --- a/bvletools.user.js +++ b/bvletools.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Bromcom VLE Tools // @namespace http://radialbog9.uk/ -// @version 2024-02-04 +// @version 2024-04-23 // @description Bromcom VLE dashboard widget // @author Radialbog9 // @match https://vle.bromcomcloud.com/Home/Dashboard @@ -29,8 +29,8 @@ </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> + <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> */ @@ -48,17 +48,53 @@ 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>"); + + function generateUtilButtonText(id, text) { + var elem = "<span class=\"txtalignCenter\">"; + elem += `<a id="${id}">${text}</a>`; + elem += "</span>"; + elem += "<br />"; + return elem; + } + + $("#widgetsDahsboard .grid-stack") + .append("\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\">\n <div class=\"panel panel-danger shadow grid-stack-item-content ui-draggable-handle\">\n <div class=\"panel-heading\">\n <table>\n <tbody>\n <tr class=\"tableheader\">\n <td><i style=\"font-size:35px; padding-right:5px; padding-left:5px\" class=\"fa fa fa-wrench \"><\/i><\/td>\n <td>\n <h3 class=\"panel-title\">Toolkit<\/h3><h5 class=\"panelSubTitle\">Utilities Toolkit<\/h5>\n <\/td>\n <\/tr>\n <tr><\/tr>\n <\/tbody>\n <\/table>\n <\/div>\n <div id=\"content_RB9Buttons\" style=\"display:block; width: 100%;padding:0px;\" class=\"ifNoDataInWidget\">\n<\/div>\n <\/div><div class=\"ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se\" style=\"z-index: 90; display: none;\"><\/div>\n <\/div>"); - $("#content_RB9Buttons").append("<br /><a onclick=\"alert(userGuidingUserId.split('$')[0]);\">Get User ID</a>"); + //$("#content_RB9Buttons").append("<span class=\"txtalignCenter\"><a id=\"rb9ButtonGetTTWeek\">Get Timetable (This Week)<\/a><\/span>"); + //$("#content_RB9Buttons").append("<br /><a onclick=\"alert(userGuidingUserId.split('$')[0]);\">Get User ID</a>"); + $("#content_RB9Buttons").append(generateUtilButtonText("rb9ButtonGetTTWeek", "Get Timetable (This Week)")); + $("#content_RB9Buttons").append(generateUtilButtonText("rb9ButtonGetTTWeekNext", "Get Timetable (Next Week)")); + $("#content_RB9Buttons").append(generateUtilButtonText("rb9ButtonGetUserId", "Get User ID")); + + $("#rb9ButtonGetUserId").on("click", () => { + var userIdParts = userGuidingUserId.split("$"); + var id_user = userIdParts[0]; + var id_institution = userIdParts[1]; + alert(`User ID: ${id_user}\nInstitution ID: ${id_institution}`); + }); + $("#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() + 6); 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. Len(table) = " + data["table"].length); + }); + }); + + $("#rb9ButtonGetTTWeekNext").on("click", () => { + var now = new Date(); + var today = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 7); // Forward 1 week + var lastSunday = new Date(today.setDate(today.getDate()-today.getDay())); + var nextSaturday = new Date(lastSunday).setDate(lastSunday.getDate() + 6); + 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); @@ -67,5 +103,4 @@ alert("Copied to Clipboard."); }); }); - //}); })();