From fcecc68c07c6773a12438c82ca1d0a67877d6f75 Mon Sep 17 00:00:00 2001 From: Glenn Goossens <48956933+glgoose@users.noreply.github.com> Date: Mon, 26 Oct 2026 12:36:11 +0100 Subject: [PATCH] bipp-sneltoetsen: Ctrl+B presses Bevestigen, underlined B and hint while Ctrl is held Co-Authored-By: Claude Sonnet 5.5 --- README.md | 1 + scripts/bipp-sneltoetsen/README.md | 17 +++ .../bipp-sneltoetsen/bipp-sneltoetsen.user.js | 115 ++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 scripts/bipp-sneltoetsen/README.md create mode 100644 scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js diff --git a/README.md b/README.md index 9ecd3ea..fb09965 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ | **BIPP** | budgetcode kiezen en zien in het winkelmandje | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js) | | **BIPP** | "Inclusief niet-raamcontractartikelen" standaard aan | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js) | | **BIPP** | budgetverantwoordelijke en aanvrager standaard op jezelf | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js) | +| **BIPP** | Ctrl+B voor Bevestigen, met zichtbare hint | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js) | | **iExpense** | alle onkostenrapporten in één doorzoekbare tabel | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/iexpense-search/iexpense-search.user.js) | | **PeopleSoft** | werkende knop "Downloaden naar Excel" | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js) | diff --git a/scripts/bipp-sneltoetsen/README.md b/scripts/bipp-sneltoetsen/README.md new file mode 100644 index 0000000..5e83ff7 --- /dev/null +++ b/scripts/bipp-sneltoetsen/README.md @@ -0,0 +1,17 @@ +# bipp-sneltoetsen + +Ctrl+B drukt in BIPP op *Bevestigen*. Op de knop is de B onderstreept, de tooltip toont *Ctrl+B*, en zolang je Ctrl ingedrukt houdt verschijnt *Ctrl+B* boven de knop. + +[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js) +· gebeurt er niets, zie de [installatie-uitleg](../../README.md). + +## Hoe het werkt + +- Het script zoekt op elke pagina onder `/web/` de eerste zichtbare, actieve knop met het label *Bevestigen*. Is er geen, dan doet Ctrl+B niets. +- Ctrl+B werkt ook in tekstvelden. Op macOS betekent het daar normaal "cursor één teken terug" (Emacs-binding), die je dan niet meer hebt. +- De onderstreping en de hint verschuiven niets: ze staan `position:absolute` buiten de flow. Bij een `` kan de letter niet onderstreept worden met HTML, dus komt er een lijntje over, berekend uit de lettermaat. +- Pagina's die hun knoppen later opbouwen krijgen tot 15 seconden de tijd. + +## Licentie + +[GPL-3.0-or-later](../../LICENSE). diff --git a/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js b/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js new file mode 100644 index 0000000..5c91c01 --- /dev/null +++ b/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js @@ -0,0 +1,115 @@ +// ==UserScript== +// @name BIPP: sneltoets Ctrl+B voor Bevestigen +// @namespace https://github.com/glgoose/ua-userscripts +// @version 1.0.0 +// @description Ctrl+B drukt op Bevestigen. De B in de knop is onderstreept en bij ingedrukte Ctrl verschijnt Ctrl+B 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'; + + var LABEL = 'bevestigen'; + var HINT = 'Ctrl+B'; + var MARK = 'data-bipp-sneltoets'; + + 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() { + 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) === LABEL && !b.disabled && visible(b)) return b; + } + return null; + } + + //