// ==UserScript== // @name BIPP: sneltoetsen voor knoppen // @namespace https://github.com/glgoose/ua-userscripts // @version 1.1.0 // @description Ctrl+letter drukt op Bevestigen (B), Zoeken (Z), Reset (R), Nieuw (N), Opslaan (S), Indienen (I) en Terug (T). De letter is onderstreept en bij ingedrukte Ctrl verschijnt de sneltoets boven de knop. // @author glgoose // @license GPL-3.0-or-later // @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/bipp-sneltoetsen // @supportURL https://github.com/glgoose/ua-userscripts/issues // @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js // @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js // @match https://bipp.biotechpartner.be/web/* // @run-at document-idle // @grant none // ==/UserScript== (function () { 'use strict'; // Knoplabel (kleine letters), de letter die onderstreept wordt, en de toets. var KEYS = [ { label: 'bevestigen', letter: 'b', code: 'KeyB' }, { label: 'zoeken', letter: 'z', code: 'KeyZ' }, { label: 'reset', letter: 'r', code: 'KeyR' }, { label: 'nieuw', letter: 'n', code: 'KeyN' }, { label: 'opslaan', letter: 's', code: 'KeyS' }, { label: 'indienen', letter: 'i', code: 'KeyI' }, { label: 'terug', letter: 't', code: 'KeyT' } ]; var MARK = 'data-bipp-sneltoets'; function hint(k) { return 'Ctrl+' + k.letter.toUpperCase(); } function norm(s) { return (s || '').replace(/\s+/g, ' ').trim().toLowerCase(); } function visible(el) { return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length); } // Eerste zichtbare, actieve knop met dit label. Een postback-pagina kan er verborgen kopieën van hebben. function findButton(k) { var btns = document.querySelectorAll('input[type="submit"], input[type="button"], button'); for (var i = 0; i < btns.length; i++) { var b = btns[i]; if (norm(b.value || b.textContent) === k.label && !b.disabled && visible(b)) return b; } return null; } //