Compare commits
5 Commits
a7415f5d96
...
a0e81cd277
| Author | SHA1 | Date | |
|---|---|---|---|
| a0e81cd277 | |||
| 81a6001e96 | |||
| 8ad8d672ad | |||
| 797e8c2d90 | |||
| e4f89f6a87 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ node_modules/
|
|||||||
hint-report/
|
hint-report/
|
||||||
.csslintrc
|
.csslintrc
|
||||||
coverage/
|
coverage/
|
||||||
|
tmp/
|
||||||
94
TODO.md
94
TODO.md
@ -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
|
|
||||||
|
|||||||
12
package.json
12
package.json
@ -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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -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
|
||||||
Loading…
Reference in New Issue
Block a user