Compare commits

...

5 Commits

6 changed files with 72 additions and 52 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ node_modules/
hint-report/ hint-report/
.csslintrc .csslintrc
coverage/ coverage/
tmp/

94
TODO.md
View File

@ -75,25 +75,36 @@
- x add modal geht bei enter key nicht zu -> liegt daran, dass ich nicht mehr .modal("hide") verwende - x add modal geht bei enter key nicht zu -> liegt daran, dass ich nicht mehr .modal("hide") verwende
- ich könnt's umstellen, aber will ich das? - ich könnt's umstellen, aber will ich das?
- nicht mehr aktuell - nicht mehr aktuell
### open ### open
- im Chromium sind die Slider für Damage im #combatant-modal ungestylet - dafür sorgen, dass lange Namen nicht das Design sprengen -> https://www.design-fluide.com/09-12-2018/how-to-break-long-words-in-an-html-or-css-table/
- Seite für größere Screens anpassen (Schrift, Buttons, Icons skalieren) - Design
- media queries - im Chromium sind die Slider für Damage im #combatant-modal ungestylet
- nicht px benutzen, sondern vw/vh/vmin/vmax -> muss aber schauen, ob FF4And das unterstützt - augmented-ui Fallstricke:
- clamp(minsize, relsize, maxsize) - --aug-[b|t|][l|r|] fkt. nur sicher mit Werten in px; em, rem, % etc. fkt. idR nicht
- auch mgl.: calc(0.75em + 1vw) (macht den Vergrößerungseffekt für große Viewports irrelevant) - --aug-border-* fkt. nicht mit Wert 0, es muss 0px sein
- Tabellenbreite begrenzen? - Seite für größere Screens anpassen (Schrift, Buttons, Icons skalieren)
- make color scheme friendly for people with red green bindness (Felix) - Breakpoints: 600px, 1200px
- see here: https://venngage.com/tools/accessible-color-palette-generator - Elementbreite begrenzen
- tests - viewport width <= 600px: 100%
- weiß: ghostwhite, white, lightgrey - viewport width > 600px: (100-x/24)% mit x = vWidth-600px
- gelb: gold, yellow, orange - viewport widht > 1200: 75%
- grün: lawngreen, lime, greenyellow
- rot: orangered, red, darkred - nicht px benutzen, sondern vw/vh/vmin/vmax -> muss aber schauen, ob FF4And das unterstützt
- im FP3T Tor Browser kann ich rauszoomen, bis ich die ganzen damage monitors und action menus sehe -> verhindern! - clamp(minsize, relsize, maxsize)
- action-menu und damage-monitor sliden jetzt nicht mehr rein, sondern bleiben an Ort und Stelle - auch mgl.: calc(0.75em + 1vw) (macht den Vergrößerungseffekt für große Viewports irrelevant)
- das sollte die Sache verhindern - make color scheme friendly for people with red green bindness (Felix)
- see here: https://venngage.com/tools/accessible-color-palette-generator
- Favicon nicht vergessen!!
- tests
- weiß: ghostwhite, white, lightgrey
- gelb: gold, yellow, orange
- grün: lawngreen, lime, greenyellow
- rot: orangered, red, darkred
- im FP3T Tor Browser kann ich rauszoomen, bis ich die ganzen damage monitors und action menus sehe -> verhindern!
- action-menu und damage-monitor sliden jetzt nicht mehr rein, sondern bleiben an Ort und Stelle
- das sollte die Sache verhindern
- warum fkt. das Ganze nicht als Webapp? - warum fkt. das Ganze nicht als Webapp?
- Firefox (android) sieht die Seite nicht als installable an - Firefox (android) sieht die Seite nicht als installable an
- Webmanifest ist aber da und scheint auch in Ordnung zu sein (sagt Firefox on Linux) - Webmanifest ist aber da und scheint auch in Ordnung zu sein (sagt Firefox on Linux)
@ -107,6 +118,30 @@
## Feature Requests ## Feature Requests
- Seite als Web App auf FF4And installable machen
- mal sehen …
- Seite auch mal im Chrome checken
- -moz-… mit -webkit-… ergänzen
- Animationen? Transitions?
- deployment: dist/* soll direkt auf hermes hochgeladen werden
- x warum sind im dist/-Folder immer zwei Versionen der gleichen Datei? -> lag an parcel-reporter-static-file-copy
- HTML soll nicht in eine Zeile umgedingst werden, das sieht doch nicht aus
- bootstrap, jquery, font auch lokal vorhalten
- x font
- docstrings
- parcel soll aus dem HTML code nicht die Newlines rausnehmen -> macht er das überhaupt noch?
- falls ja: .htmlnanorc anlegen, s. https://parceljs.org/languages/html/#minification und https://htmlnano.netlify.app/modules#collapsewhitespace
- nicetohave: Wenn ich rea editiere, könnte sich die ini automatisch anpassen -> da müsste ich aber die Würfelergebnisse für speichern
- nicetohave: Anzeige, wieviele Aktionen einer hat u.d wieviele davon schon verbraucht sind
- Sache mit dem ServiceWorker mal richtig angehen
- x progressive web app
- x Service Worker einrichten, um die Dateien lokal zu cachen
- x lief nicht mit Parcel pur, brauchte Paket "serve" -> npx serve dist/
-> mittlerweile geht's doch
- x parcel bindet sw.js nicht automatisch mit ein, ich muss es nach dist/ hardverlinken
- und die File-list in sw.js darf nur Files enthalten, die auch geladen werden können; sobald einer 404 ergibt, schlägt der gesamte Cache-Vorgang fehl
- geht
- x nochmal wg. Daten wie name, dice, rea, true-ini und damage-x: - x nochmal wg. Daten wie name, dice, rea, true-ini und damage-x:
- Verwalte sie jetzt komplett mit der data-* API; verwende dafür ausschließlich .attr() als Getter/Setter - Verwalte sie jetzt komplett mit der data-* API; verwende dafür ausschließlich .attr() als Getter/Setter
- Füge die Werte aus dem Attribut per CSS direkt ins Element ein (::after und content). - Füge die Werte aus dem Attribut per CSS direkt ins Element ein (::after und content).
@ -136,32 +171,7 @@
- zumindest modal.js muss ich einzeln laden - zumindest modal.js muss ich einzeln laden
- aber sonst brauch ich es glaube ich nicht - aber sonst brauch ich es glaube ich nicht
- x dependencies lokal einbinden - x dependencies lokal einbinden
- x progressive web app
- x Service Worker einrichten, um die Dateien lokal zu cachen
- x lief nicht mit Parcel pur, brauchte Paket "serve" -> npx serve dist/
-> mittlerweile geht's doch
- x parcel bindet sw.js nicht automatisch mit ein, ich muss es nach dist/ hardverlinken
- und die File-list in sw.js darf nur Files enthalten, die auch geladen werden können; sobald einer 404 ergibt, schlägt der gesamte Cache-Vorgang fehl
- geht
- x dafür sorgen, dass die Seite erst dann aufgebaut wird, wenn die CSS-Files geladen sind, damit man nicht den ungestylten Krams sieht -> passt schon - x dafür sorgen, dass die Seite erst dann aufgebaut wird, wenn die CSS-Files geladen sind, damit man nicht den ungestylten Krams sieht -> passt schon
- x CSS aufräumen - x CSS aufräumen
- Variablen für Farben, Filter etc. - Variablen für Farben, Filter etc.
- installability (PWA) auf android noch ungetestet
- Seite auch mal im Chrome checken
- -moz-… mit -webkit-… ergänzen
- noch mehr Design
- Seite für größere Screens anpassen
- Schrift, Buttons, Icons skalieren
- em und % statt px
- Tabellenbreite begrenzen
- Animationen? Transitions?
- deployment: dist/* soll direkt auf hermes hochgeladen werden
- warum sind im dist/-Folder immer zwei Versionen der gleichen Datei?
- HTML soll nicht in eine Zeile umgedingst werden, das sieht doch nicht aus
- bootstrap, jquery, font auch lokal vorhalten
- docstrings
- parcel soll aus dem HTML code nicht die Newlines rausnehmen -> macht er das überhaupt noch?
- falls ja: .htmlnanorc anlegen, s. https://parceljs.org/languages/html/#minification und https://htmlnano.netlify.app/modules#collapsewhitespace
- nicetohave: Wenn ich rea editiere, könnte sich die ini automatisch anpassen -> da müsste ich aber die Würfelergebnisse für speichern
- nicetohave: Anzeige, wieviele Aktionen einer hat u.d wieviele davon schon verbraucht sind

View File

@ -6,7 +6,7 @@
"author": { "author": {
"name": "Eclipse2049", "name": "Eclipse2049",
"email": "eclipse@unterdemradar.de", "email": "eclipse@unterdemradar.de",
"url": "https://unterdemradar.de" "url": "https://git.unterdemradar.de"
}, },
"homepage": "https://unterdemradar.de/sr2ini/", "homepage": "https://unterdemradar.de/sr2ini/",
"license": "ISC", "license": "ISC",
@ -37,7 +37,9 @@
"keywords": [ "keywords": [
"Shadowrun", "Shadowrun",
"Initiative tracker", "Initiative tracker",
"sr2e" "sr2",
"rpg",
"cyberpunk"
], ],
"jest": { "jest": {
"setupFiles": [ "setupFiles": [
@ -46,9 +48,13 @@
}, },
"type": "module", "type": "module",
"dependencies": { "dependencies": {
"@parcel/service-worker": "^2.8.3",
"augmented-ui": "^2.0.0", "augmented-ui": "^2.0.0",
"bootstrap": "^5.2.3", "bootstrap": "^5.2.3",
"jquery": "^3.6.3" "jquery": "^3.6.3"
},
"comments": {
"dependencies": {
"@parcel/service-worker": "^2.8.3"
}
} }
} }

View File

@ -1,7 +1,9 @@
/* *****************
// Register Service Worker // Register Service Worker
/*if ("serviceWorker" in navigator) { if (navigator && navigator.serviceWorker) {
navigator.serviceWorker.register( navigator.serviceWorker.register(
new URL("./service-worker.js"), { type: "module" } new URL("service-worker.js", import.meta.url),
{type: "module"}
).then( (registration) => { ).then( (registration) => {
console.log('ServiceWorker registration successful with scope: ', registration.scope); console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, (err) => { }, (err) => {
@ -9,7 +11,8 @@
}); });
} else { } else {
console.error("Service workers are not supported."); console.error("Service workers are not supported.");
}*/ }
***************** */
/* /*
@ -350,7 +353,7 @@ function addCombatant() {
$tr.find("button.remove-button").on("click", handleRemoveButtonClick); $tr.find("button.remove-button").on("click", handleRemoveButtonClick);
$tr.find(".damage-stun, .damage-physical").on("click", handleDamageLevelClick); $tr.find(".damage-stun, .damage-physical").on("click", handleDamageLevelClick);
// append row to table and sort // append row to table and sort
$(".combatants-table").append($tr); $("#combatants-table").append($tr);
sortTable(); sortTable();
} }
@ -458,7 +461,7 @@ function sortTable() {
// sort rows and append them in new order // sort rows and append them in new order
let $rows = $(".combatant-row").toArray().sort(whoGoesFirst); let $rows = $(".combatant-row").toArray().sort(whoGoesFirst);
for (let i = 0; i < $rows.length; i++) { for (let i = 0; i < $rows.length; i++) {
$(".combatants-table").append($rows[i]); $("#combatants-table").append($rows[i]);
$($rows[i]).css("z-index", 50-i).css("position", "relative"); $($rows[i]).css("z-index", 50-i).css("position", "relative");
} }
return; return;

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -13,7 +13,7 @@ console.log("[Service Worker] Install");
self.addEventListener("install", e => e.waitUntil(install())); self.addEventListener("install", e => e.waitUntil(install()));
// fetch content // fetch content
/*self.addEventListener('fetch', (e) => { self.addEventListener('fetch', (e) => {
e.respondWith((async () => { e.respondWith((async () => {
const r = await caches.match(e.request); const r = await caches.match(e.request);
console.log(`[Service Worker] Fetching resource: ${e.request.url}`); console.log(`[Service Worker] Fetching resource: ${e.request.url}`);
@ -26,7 +26,7 @@ self.addEventListener("install", e => e.waitUntil(install()));
cache.put(e.request, response.clone()); cache.put(e.request, response.clone());
return response; return response;
})()); })());
});*/ });
// activate: clear outdated files from cache // activate: clear outdated files from cache