Compare commits

..
10 Commits
Author SHA1 Message Date
Glenn GoossensandClaude Sonnet 5.5 f140a32199 Move repo to gitea.flw.uantwerpen.be: update install/update/support URLs, bump versions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 13:35:56 +01:00
Glenn GoossensandClaude Opus 5.5 e04ff6c5ff bipp-sneltoetsen: hints below the button instead of above (1.1.1)
Above, the hint covered the header bar on detail pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:17:54 +01:00
Glenn GoossensandClaude Opus 5.5 3b2528d72a bipp-sneltoetsen: Zoeken, Reset, Nieuw, Opslaan, Indienen, Terug (1.1.0)
Ctrl+Z/R/N/S/I/T next to Ctrl+B, one table of label, letter, key.
Hints for all buttons while Ctrl is held. BIPP's own title kept,
shortcut on a line below. AGENTS.md: Claude installs the dev-stub
itself, only the Install click is left, pick the UA Chrome profile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:12:49 +01:00
Glenn GoossensandClaude Sonnet 5.5 6d9ae45a2f select-search: no recent block on Login.aspx, add data-ss-recent=off (1.8.4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 12:40:22 +01:00
Glenn GoossensandClaude Sonnet 5.5 fcecc68c07 bipp-sneltoetsen: Ctrl+B presses Bevestigen, underlined B and hint while Ctrl is held
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 12:36:11 +01:00
Glenn GoossensandClaude Sonnet 5.5 fe1ed96f7f publisher-uaproxy-banner: orange bar while connecting
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:13:13 +02:00
Glenn GoossensandClaude Sonnet 5.5 ebd84ec0d5 publisher-uaproxy-banner: no trailing period in the bar text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:12:09 +02:00
Glenn GoossensandClaude Sonnet 5.5 a548ee9174 publisher-uaproxy-banner: shorter text when uaproxyd is not running
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:11:36 +02:00
Glenn GoossensandClaude Sonnet 5.5 11906d3b6b publisher-uaproxy-banner: bar text is just 'UA proxy down.'
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:11:15 +02:00
Glenn GoossensandClaude Sonnet 5.5 b41790dc56 publisher-uaproxy-banner: shorter bar text, drop the Zotero remark
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:09:46 +02:00
20 changed files with 247 additions and 56 deletions
+13 -3
View File
@@ -21,9 +21,19 @@ De grootte in het dashboard zegt dus in welk spoor een rij zit.
bin/dev-stub bipp-budgetcode
```
De stub gaat meteen naar het klembord. In Tampermonkey neem je het potlood van de bestaande
rij, dan Cmd+A, Cmd+V, Cmd+S. Via de `+`-tab krijg je een tweede rij in plaats van een
bijgewerkte, want Tampermonkey herkent een script aan `@namespace` plus `@name`.
Claude installeert de stub zelf, Glenn plakt niets. Serveer de stub (`--no-copy`) als
`<map>.user.js` vanuit de scratchpad op een vrije poort, open die URL in de Claude-in-Chrome-tab
en Tampermonkey opent zijn installatiepagina. Die pagina (`chrome-extension://`) is voor de
browsertools onbereikbaar, dus de enige stap voor Glenn is daar op **Install** klikken. Stop de
server daarna.
- **Juiste Chrome-profiel.** BIPP en de Tampermonkey-scripts zitten in het profiel **UA**
(Profile 1). Met de Claude-extensie in twee profielen verbindt `list_connected_browsers` met
het profiel dat eerst antwoordt; kies UA met `select_browser`. Of je goed zit, zie je aan de
`History` van het profiel na een bezoek vanuit de tool.
- Een bestaande rij met dezelfde `@namespace` plus `@name` wordt bijgewerkt. Een andere `@name`
geeft een tweede rij die dezelfde file nog eens laadt, dus elke sneltoets dubbel: verwijder
dan eerst de oude rij.
`bin/dev-stub --list` toont de scriptmappen, `--no-copy` slaat het klembord over.
+7 -6
View File
@@ -2,12 +2,13 @@
| toepassing | wat het doet | |
| -------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **BIPP** | zoekveld in dropdowns met veel opties | [installeren](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/select-search/select-search.user.js) |
| **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) |
| **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) |
| **BIPP** | zoekveld in dropdowns met veel opties | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/select-search/select-search.user.js) |
| **BIPP** | budgetcode kiezen en zien in het winkelmandje | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js) |
| **BIPP** | "Inclusief niet-raamcontractartikelen" standaard aan | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js) |
| **BIPP** | budgetverantwoordelijke en aanvrager standaard op jezelf | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js) |
| **BIPP** | Ctrl+letter voor Bevestigen, Zoeken, Opslaan en meer | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js) |
| **iExpense** | alle onkostenrapporten in één doorzoekbare tabel | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/iexpense-search/iexpense-search.user.js) |
| **PeopleSoft** | werkende knop "Downloaden naar Excel" | [installeren](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js) |
## Installatie-instructies
+1 -1
View File
@@ -8,7 +8,7 @@ BIPP verbergt die code vandaag volledig: na *Creëer*, kiezen, *Opslaan* en *Ter
alleen nog `Bekijk`, in het groen, en die kleur blijft ook staan als de code weer leeg is. De
gekozen waarde zit wel al in de pagina, maar alleen als tooltip op die link.
[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js)
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js)
· gebeurt er niets, zie de [installatie-uitleg](../../README.md).
## Gebruik
@@ -1,14 +1,14 @@
// ==UserScript==
// @name BIPP: budgetcode in het winkelmandje
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.7.0
// @version 1.7.1
// @description Zet de budgetcode als dropdown in de winkelmandjerij zelf, onder de grootboekrekening, zodat je niet meer via de aparte pagina Selectie analytische velden moet en de gekozen code ook gewoon ziet staan. Slaat op via een achtergrond-postback en zet de code ook in Interne commentaar.
// @author Glenn Goossens
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/bipp-budgetcode
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/bipp-budgetcode
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetcode/bipp-budgetcode.user.js
// @match https://bipp.biotechpartner.be/web/*
// @grant none
// @run-at document-idle
@@ -2,7 +2,7 @@
Zet in BIPP het filter *Budget verantwoordelijke* op *Aanvraag evalueren* en het filter *Aanvrager* op *Aanvragen* standaard op jezelf in plaats van *Alle*, en start de zoekopdracht.
[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js)
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js)
· gebeurt er niets, zie de [installatie-uitleg](../../README.md).
## Hoe het werkt
@@ -1,14 +1,14 @@
// ==UserScript==
// @name BIPP: budgetverantwoordelijke standaard op de ingelogde gebruiker
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.1.0
// @version 1.1.1
// @description Zet "Budget verantwoordelijke" bij Aanvraag evalueren en "Aanvrager" bij Aanvragen op jezelf in plaats van "Alle" en start de zoekopdracht.
// @author glgoose
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/bipp-budgetverantwoordelijke
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/bipp-budgetverantwoordelijke
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-budgetverantwoordelijke/bipp-budgetverantwoordelijke.user.js
// @match https://bipp.biotechpartner.be/web/*
// @run-at document-idle
// @grant none
+1 -1
View File
@@ -2,7 +2,7 @@
Zet het vinkje *Inclusief niet-raamcontractartikelen* op de zoekpagina van BIPP standaard aan.
[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js)
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js)
· gebeurt er niets, zie de [installatie-uitleg](../../README.md).
## Hoe het werkt
@@ -1,14 +1,14 @@
// ==UserScript==
// @name BIPP: "Inclusief niet-raamcontractartikelen" standaard aan
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.0.0
// @version 1.0.1
// @description Vinkt "Inclusief niet-raamcontractartikelen" aan zodra de zoekpagina laadt.
// @author glgoose
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/bipp-raamcontract
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/bipp-raamcontract
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-raamcontract/bipp-raamcontract.user.js
// @match https://bipp.biotechpartner.be/web/*
// @run-at document-idle
// @grant none
+30
View File
@@ -0,0 +1,30 @@
# bipp-sneltoetsen
Ctrl+letter drukt in BIPP op een knop. De letter is onderstreept, de tooltip toont de sneltoets, en zolang je Ctrl ingedrukt houdt verschijnt de sneltoets onder elke knop die er een heeft.
| toets | knop | waar |
| ------ | ---------- | ------------------------------------------------- |
| Ctrl+B | Bevestigen | Aanvraag evalueren, bestelbon detail |
| Ctrl+Z | Zoeken | Artikelen, Favorietenlijsten, Aanvragen, Bestelbonnen, Ontvangstregistratie |
| Ctrl+R | Reset | idem |
| Ctrl+N | Nieuw | Artikelen, Favorietenlijsten |
| Ctrl+S | Opslaan | Winkelmandje, bestelbon detail |
| Ctrl+I | Indienen | Winkelmandje |
| Ctrl+T | Terug | detailpagina's |
Verwijderen, Annuleren en In wachtstand krijgen bewust geen sneltoets: die zijn niet terug te draaien of komen zelden voor.
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/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/` per sneltoets de eerste zichtbare, actieve knop met dat label. Is er geen, dan doet de toets niets en gaat hij gewoon door naar de browser.
- Op macOS gebruikt Chrome Cmd voor zijn eigen sneltoetsen, dus Ctrl+letter is vrij. In tekstvelden zijn sommige Ctrl-letters Emacs-bindings (Ctrl+B één teken terug, Ctrl+N volgende regel, Ctrl+T letters wisselen): die heb je in BIPP niet meer.
- Zet BIPP zelf al een tooltip op de knop (Bevestigen, Indienen), dan komt de sneltoets op een eigen regel eronder.
- De onderstreping en de hints verschuiven niets: ze staan `position:absolute` buiten de flow. Bij een `<input>` kan de letter niet onderstreept worden met HTML, dus komt er een lijntje onder, berekend uit de lettermaat.
- Pagina's die hun knoppen later opbouwen krijgen tot 15 seconden de tijd.
## Licentie
[GPL-3.0-or-later](../../LICENSE).
@@ -0,0 +1,138 @@
// ==UserScript==
// @name BIPP: sneltoetsen voor knoppen
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.1.2
// @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 onder de knop.
// @author glgoose
// @license GPL-3.0-or-later
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/bipp-sneltoetsen
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/bipp-sneltoetsen/bipp-sneltoetsen.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/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;
}
// <button>: de letter in een <u>. <input> kan geen HTML bevatten, dus daar komt een lijntje onder de letter.
function underline(btn, k) {
if (btn.getAttribute(MARK)) return;
btn.setAttribute(MARK, k.letter);
// BIPP zet soms zelf een title (Bevestigen): dan komt de sneltoets op een eigen regel eronder.
btn.title = btn.title ? btn.title + '\n' + hint(k) : hint(k);
if (btn.tagName === 'BUTTON' && btn.children.length === 0) {
var t = btn.textContent;
var i = t.toLowerCase().indexOf(k.letter);
btn.textContent = '';
btn.appendChild(document.createTextNode(t.slice(0, i)));
var u = document.createElement('u');
u.textContent = t.charAt(i);
btn.appendChild(u);
btn.appendChild(document.createTextNode(t.slice(i + 1)));
return;
}
drawLine(btn, k);
window.addEventListener('resize', function () { drawLine(btn, k); });
}
function drawLine(btn, k) {
var old = btn.nextSibling && btn.nextSibling.getAttribute && btn.nextSibling.getAttribute(MARK + '-line');
if (old) btn.parentNode.removeChild(btn.nextSibling);
var cs = getComputedStyle(btn);
var ctx = document.createElement('canvas').getContext('2d');
ctx.font = cs.fontStyle + ' ' + cs.fontWeight + ' ' + cs.fontSize + ' ' + cs.fontFamily;
var text = btn.value || btn.textContent;
var i = text.toLowerCase().indexOf(k.letter);
var before = ctx.measureText(text.slice(0, i)).width;
var letter = ctx.measureText(text.charAt(i)).width;
var total = ctx.measureText(text).width;
var inner = btn.clientWidth - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight);
var start = parseFloat(cs.paddingLeft) + btn.clientLeft + Math.max(0, (inner - total) / 2);
var line = document.createElement('span');
line.setAttribute(MARK + '-line', '1');
var fs = parseFloat(cs.fontSize);
// position:absolute houdt de lijn buiten de flow, dus er verschuift niets.
line.style.cssText = 'position:absolute;pointer-events:none;height:1px;background:currentColor;color:' + cs.color +
';left:' + (btn.offsetLeft + start + before) + 'px;width:' + letter + 'px;top:' +
(btn.offsetTop + btn.offsetHeight / 2 + fs * 0.55) + 'px';
btn.parentNode.insertBefore(line, btn.nextSibling);
}
var tips = [];
function showTips() {
hideTips();
KEYS.forEach(function (k) {
var btn = findButton(k);
if (!btn) return;
var r = btn.getBoundingClientRect();
var tip = document.createElement('span');
tip.textContent = hint(k);
tip.style.cssText = 'position:absolute;z-index:99999;pointer-events:none;white-space:nowrap;' +
'font:11px ui-monospace,Menlo,Consolas,monospace;background:#1f2937;color:#fff;border-radius:4px;padding:1px 6px;' +
'left:' + (r.left + window.scrollX + r.width / 2) + 'px;top:' + (r.bottom + window.scrollY + 4) + 'px;transform:translateX(-50%)';
document.body.appendChild(tip);
tips.push(tip);
});
}
function hideTips() {
tips.forEach(function (t) { if (t.parentNode) t.parentNode.removeChild(t); });
tips = [];
}
document.addEventListener('keydown', function (e) {
if (e.key === 'Control') { if (!e.repeat) showTips(); return; }
if (!e.ctrlKey || e.metaKey || e.altKey || e.shiftKey) return;
for (var i = 0; i < KEYS.length; i++) {
if (e.code !== KEYS[i].code) continue;
var btn = findButton(KEYS[i]);
if (!btn) return;
e.preventDefault();
hideTips();
btn.click();
return;
}
}, true);
document.addEventListener('keyup', function (e) { if (e.key === 'Control') hideTips(); }, true);
window.addEventListener('blur', hideTips);
// De pagina bouwt de knoppen soms pas na een postback op: probeer het een paar keer.
var tries = 0;
(function init() {
var left = 0;
KEYS.forEach(function (k) {
var btn = findButton(k);
if (btn) underline(btn, k); else left++;
});
if (left && ++tries < 30) setTimeout(init, 500);
})();
})();
+1 -1
View File
@@ -4,7 +4,7 @@ Vervangt op Expenses Home de tabel *Update Expense Reports* door dezelfde tabel
tegelijk. Zoeken en sorteren gebeurt lokaal, dus zonder de trage stap langs de server die OAF
bij elke klik doet.
[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/iexpense-search/iexpense-search.user.js)
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/iexpense-search/iexpense-search.user.js)
· gebeurt er niets, zie de [installatie-uitleg](../../README.md).
## Gebruik
@@ -1,14 +1,14 @@
// ==UserScript==
// @name iExpense: doorzoekbare rapportentabel
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.8.0
// @version 1.8.1
// @description Vervangt "Update Expense Reports" op Expenses Home door dezelfde tabel met alle rijen tegelijk, doorzoekbaar en sorteerbaar zonder server round trips, in een scrollvenster van vaste hoogte zodat de pagina niet verspringt, en zet Notifications bovenaan met Track Submitted onderaan
// @author Glenn Goossens
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/iexpense-search
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/iexpense-search/iexpense-search.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/iexpense-search/iexpense-search.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/iexpense-search
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/iexpense-search/iexpense-search.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/iexpense-search/iexpense-search.user.js
// @match https://ofprd.uantwerpen.be/OA_HTML/*
// @grant none
// @run-at document-idle
+1 -1
View File
@@ -6,7 +6,7 @@ script vangt de klik op en bouwt zelf een `.xlsx` uit wat er in de tabel staat.
De grid-knop van PeopleSoft zelf levert een bestand op dat Excel niet wil of niet goed leest.
Deze aanpak omzeilt de server volledig: wat je op je scherm ziet is wat in het bestand komt.
[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js)
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js)
· gebeurt er niets, zie de [installatie-uitleg](../../README.md).
## Gebruik
@@ -1,14 +1,14 @@
// ==UserScript==
// @name PeopleSoft: werkende "Downloaden naar Excel"
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.1.0
// @version 1.1.1
// @description Vervangt de kapotte PeopleSoft grid-knop "Downloaden naar Excel" door een echte XLSX-export die uit de DOM wordt opgebouwd.
// @author Glenn Goossens
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/peoplesoft-excel-download
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/peoplesoft-excel-download
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/peoplesoft-excel-download/peoplesoft-excel-download.user.js
// @match https://app.psoft.uantwerpen.be/*
// @require https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js
// @grant GM_info
@@ -1,12 +1,12 @@
// ==UserScript==
// @name Algemeen: UA-proxy waarschuwing op uitgeverspagina's
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.0.0
// @version 1.0.1
// @description Rode balk op uitgeverspagina's als de UA-proxy uit staat, met een knop om te verbinden.
// @author glgoose
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/publisher-uaproxy-banner
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/publisher-uaproxy-banner
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @match *://*.tandfonline.com/*
// @match *://*.taylorfrancis.com/*
// @match *://*.sagepub.com/*
@@ -87,9 +87,9 @@
var state = s && s.state;
if (state === 'up' || (s && s.on_ua && state === 'down')) { hide(); return; }
if (!bar) build();
var base = 'UA proxy down: this page loaded without UA access, so a Zotero save gets no PDF.';
var base = 'UA proxy down';
if (!s) {
text.textContent = 'uaproxyd is not running: this page loaded without UA access.';
text.textContent = 'uaproxyd is not running';
btn.disabled = true;
} else if (state === 'connecting') {
text.textContent = s.mfa ? 'Enter ' + s.mfa + ' in the Authenticator app.' : 'Connecting to the UA proxy.';
@@ -99,6 +99,7 @@
btn.disabled = false;
}
btn.textContent = state === 'connecting' ? 'Connecting' : 'Connect';
bar.style.background = state === 'connecting' ? '#b45309' : '#b3261e';
}
function hide() {
+2 -1
View File
@@ -6,7 +6,7 @@ letters, dus "Poule" vinden in "Restaurant Poule & Poulette B.V." lukt niet. Met
Het originele `<select>` blijft de bron van waarheid en wordt enkel verborgen. Het formulier
verstuurt dus exact hetzelfde als voorheen.
[**Installeren**](https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/select-search/select-search.user.js)
[**Installeren**](https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/select-search/select-search.user.js)
· gebeurt er niets, zie de [installatie-uitleg](../../README.md).
## Gebruik
@@ -81,6 +81,7 @@ stil: is de opslag vol of geblokkeerd, dan verdwijnt het recent-blok en werkt de
| | |
|---|---|
| `data-ss-recent-key="..."` | Eigen veldsleutel, in plaats van die uit `name` of `id`. Nodig bij een `<select>` zonder allebei. |
| `data-ss-recent="off"` | Geen recent-blok en niets onthouden voor dit veld, zoeken blijft werken. Op een pagina die op `Login.aspx` eindigt staat dit standaard aan. |
| `data-ss-recent="manual"` | Het blok en `Delete` werken, maar kiezen onthoudt niets. Voor wie pas mag onthouden na een bevestiging van de server. |
| `window.selectSearch.remember(selectOfSleutel, value, label)` | Zet een waarde in recent en tekent het blok opnieuw. |
| `window.selectSearch.forget(selectOfSleutel, value)` | Haalt ze er weer uit. |
File diff suppressed because one or more lines are too long
+10 -5
View File
@@ -1,14 +1,14 @@
// ==UserScript==
// @name BIPP: doorzoekbare dropdowns
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.8.3
// @version 1.8.5
// @description Geeft elke <select> met veel opties een zoekveld met substring-zoeken.
// @author glgoose
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/select-search
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/select-search/select-search.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/select-search/select-search.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/select-search
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/select-search/select-search.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/select-search/select-search.user.js
// @match https://bipp.biotechpartner.be/web/*
// @run-at document-idle
// @grant none
@@ -136,7 +136,12 @@
// BIPP rendert ids als ctl00_..._resultTable_ctl03_interfaceAccountList. Rij 3 en rij 4 zijn
// hetzelfde veld en horen dus één lijst te delen: de rij- en volgnummers gaan eruit. Levert dat
// niets op, dan krijgt die select geen recent-blok en blijft hij gewoon doorzoekbaar.
// Uit op de loginpagina: daar kiest iedereen een participant uit een lange lijst en schuift een
// recent-blok enkel gewoonte-keuzes bovenaan. Zoeken blijft werken. `data-ss-recent="off"` doet
// hetzelfde voor één veld.
function recentKey(select) {
if (select.getAttribute && select.getAttribute('data-ss-recent') === 'off') return '';
if (/\/login\.aspx$/i.test((select.ownerDocument.defaultView || window).location.pathname)) return '';
var expliciet = select.getAttribute && select.getAttribute('data-ss-recent-key');
if (expliciet) return expliciet;
var ruw = select.name || select.id || '';
@@ -120,7 +120,12 @@
// BIPP rendert ids als ctl00_..._resultTable_ctl03_interfaceAccountList. Rij 3 en rij 4 zijn
// hetzelfde veld en horen dus één lijst te delen: de rij- en volgnummers gaan eruit. Levert dat
// niets op, dan krijgt die select geen recent-blok en blijft hij gewoon doorzoekbaar.
// Uit op de loginpagina: daar kiest iedereen een participant uit een lange lijst en schuift een
// recent-blok enkel gewoonte-keuzes bovenaan. Zoeken blijft werken. `data-ss-recent="off"` doet
// hetzelfde voor één veld.
function recentKey(select) {
if (select.getAttribute && select.getAttribute('data-ss-recent') === 'off') return '';
if (/\/login\.aspx$/i.test((select.ownerDocument.defaultView || window).location.pathname)) return '';
var expliciet = select.getAttribute && select.getAttribute('data-ss-recent-key');
if (expliciet) return expliciet;
var ruw = select.name || select.id || '';
@@ -1,14 +1,14 @@
// ==UserScript==
// @name BIPP: doorzoekbare dropdowns
// @namespace https://github.com/glgoose/ua-userscripts
// @version 1.8.3
// @version 1.8.5
// @description Geeft elke <select> met veel opties een zoekveld met substring-zoeken.
// @author glgoose
// @license GPL-3.0-or-later
// @homepageURL https://github.com/glgoose/ua-userscripts/tree/main/scripts/select-search
// @supportURL https://github.com/glgoose/ua-userscripts/issues
// @downloadURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/select-search/select-search.user.js
// @updateURL https://raw.githubusercontent.com/glgoose/ua-userscripts/main/scripts/select-search/select-search.user.js
// @homepageURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/src/branch/main/scripts/select-search
// @supportURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/issues
// @downloadURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/select-search/select-search.user.js
// @updateURL https://gitea.flw.uantwerpen.be/glenn/ua-userscripts/raw/branch/main/scripts/select-search/select-search.user.js
// @match https://bipp.biotechpartner.be/web/*
// @run-at document-idle
// @grant none