diff --git a/bas-search.user.js b/bas-search.user.js new file mode 100644 index 0000000..2bb2e67 --- /dev/null +++ b/bas-search.user.js @@ -0,0 +1,56 @@ +// ==UserScript== +// @name BAS Quick Search +// @namespace http://tampermonkey.net/ +// @version 1.4 +// @description Show a textbox on "/" key press and redirect to NTNU search on Enter key press. Supports group search with "g:" prefix and accounts if you use no prefix or "a:" prefix. +// @author Your Name +// @match https://bas.ntnu.no/* +// @grant none +// ==/UserScript== + +(function() { + 'use strict'; + + // Create and style the input box + const inputBox = document.createElement('input'); + inputBox.type = 'text'; + inputBox.style.position = 'fixed'; + inputBox.style.top = '10px'; + inputBox.style.left = '50%'; + inputBox.style.transform = 'translateX(-50%)'; + inputBox.style.zIndex = '10000'; + inputBox.style.display = 'none'; + inputBox.style.padding = '5px'; + inputBox.style.fontSize = '16px'; + document.body.appendChild(inputBox); + + // Show the input box when "/" is pressed + document.addEventListener('keydown', function(event) { + if (event.key === '/') { + event.preventDefault(); + inputBox.style.display = 'block'; + inputBox.focus(); + } + }); + + // Redirect to the search URL when Enter is pressed + inputBox.addEventListener('keydown', function(event) { + if (event.key === 'Enter') { + const searchQuery = inputBox.value.trim(); + let url; + if (searchQuery.toLowerCase().startsWith('g:')) { + const groupName = searchQuery.substring(2).trim(); + url = `https://bas.ntnu.no/group/search/?name=${encodeURIComponent(groupName)}`; + } else { + const accountName = searchQuery.toLowerCase().startsWith('a:') ? searchQuery.substring(2).trim() : searchQuery; + url = `https://bas.ntnu.no/account/search/?name=${encodeURIComponent(accountName)}`; + } + window.location.href = url; + } + }); + + // Hide the input box when it loses focus + inputBox.addEventListener('blur', function() { + inputBox.style.display = 'none'; + }); +})(); \ No newline at end of file