7 Commits
0.1.3 ... main

Author SHA1 Message Date
9794c3b0ef .github/workflows/deploy-to-gh-pages.yml aktualisiert
All checks were successful
Deploy to Github Pages / build (push) Successful in 24s
2025-04-27 16:43:45 +02:00
3a3b729cb7 .github/workflows/deploy-to-gh-pages.yml hinzugefügt
All checks were successful
Deploy to Github Pages / build (push) Successful in 30s
2025-04-22 09:48:25 +02:00
Max
40daf6b447 Update index.html 2025-04-20 03:43:01 +02:00
Max
8a7fa81267 Update README.md 2025-04-20 03:41:40 +02:00
Max P
9171cf0275 Update README.md 2023-12-28 16:18:48 +01:00
d759a573f0 Url to "Abfallkalender" corrected. 2023-12-28 16:18:02 +01:00
c1c5e3461c Version Tag added to pages. 2023-12-28 00:47:56 +01:00
10 changed files with 62 additions and 18 deletions

View File

@@ -0,0 +1,31 @@
name: Deploy to Github Pages
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the
# added or changed files to the repository.
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: pages
folder: docs
clean: true
single-commit: true

View File

@@ -1,5 +1,5 @@
# AbfallAlarm # AbfallAlarm
**AbfallAlarm** ist eine intuitive und benutzerfreundliche WebApp, die darauf abzielt, das Leben der Bürger von Arnsberg zu vereinfachen, indem sie eine zuverlässige Erinnerungsfunktion für den städtischen Abfallkalender bietet. Mit dieser App können Nutzer ihre iCalendar (.ics) Dateien für den Abfallkalender der Stadt Arnsberg hochladen und automatisch Erinnerungen für jeden Abholtermin hinzufügen. [**AbfallAlarm**](https://0xmax42.github.io/AbfallAlarm/) ist eine intuitive und benutzerfreundliche WebApp, die darauf abzielt, das Leben der Bürger von Arnsberg zu vereinfachen, indem sie eine zuverlässige Erinnerungsfunktion für den städtischen Abfallkalender bietet. Mit dieser App können Nutzer ihre iCalendar (.ics) Dateien für den Abfallkalender der Stadt Arnsberg hochladen und automatisch Erinnerungen für jeden Abholtermin hinzufügen.
## Hauptmerkmale ## Hauptmerkmale
- **Einfaches Hochladen**: Benutzer können ihre bestehenden iCalendar-Dateien des Abfallkalenders direkt in die App hochladen. - **Einfaches Hochladen**: Benutzer können ihre bestehenden iCalendar-Dateien des Abfallkalenders direkt in die App hochladen.

View File

@@ -30,4 +30,8 @@ packageJson.version = versionParts.join('.');
// Zurückschreiben der package.json // Zurückschreiben der package.json
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
console.log(`Version updated to ${packageJson.version}`); console.log(`Version updated to ${packageJson.version}`);
// Versionsnummer in Datei schreiben..
const content = `export const version = '${packageJson.version}';\n`;
fs.writeFileSync(path.join(__dirname, 'src', 'version.ts'), content);

View File

@@ -1,2 +1,2 @@
(()=>{"use strict";var e={953:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t,n){this.reminderPrefix="Erinnerung: ",this.icsContent=e,this.reminderDays=t,this.reminderHours=n}modifyEvents(){return this.icsContent.replace(/BEGIN:VEVENT.*?END:VEVENT/gs,(e=>{const t=e.match(/SUMMARY:(.*)\r\n/),n=t?t[1]:"",r=this.createTriggerValue(),o=this.createVAlarmString(this.reminderPrefix+n,r);return e.replace(/END:VEVENT/,o+"END:VEVENT")}))}createVAlarmString(e,t){let n="BEGIN:VALARM\r\n";return n+="ACTION:DISPLAY\r\n",n+=`DESCRIPTION:${e}\r\n`,n+=`TRIGGER:${t}\r\n`,n+="END:VALARM\r\n",n}createTriggerValue(){const e=0===this.reminderHours?0:24-this.reminderHours;let t=this.reminderDays;return 1===t&&(t=0),`-P${t}DT${e}H0M0S`}}},519:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(953));function s(e){!function(){const e=document.getElementById("download-area");e&&e.classList.remove("show-download-area")}();const t=document.getElementById("ical-upload"),n=document.getElementById("reminder-days-select"),r=document.getElementById("reminder-hours-select"),s=parseInt(n.value,10),d=parseInt(r.value,10),i=t.files?t.files[0]:null;if(i){console.log("File uploaded:",i.name);const e=new FileReader;e.onload=e=>{var t;const n=null===(t=e.target)||void 0===t?void 0:t.result;if("string"==typeof n){console.log("File content readable..");const e=new o.default(n,s,d).modifyEvents(),t=function(e){const t=e.lastIndexOf(".");return-1===t?e+" with reminders":e.substring(0,t)+" with reminders"+e.substring(t)}(i.name),r=new Blob([e],{type:"text/calendar"});!function(e,t){const n=document.getElementById("download-area"),r=document.getElementById("download-button");n&&r&&(r.href=t,r.download=e,setTimeout((()=>n.classList.add("show-download-area")),0),document.getElementById("work-button").disabled=!0)}(t,URL.createObjectURL(r))}},e.readAsText(i)}}document.addEventListener("DOMContentLoaded",(()=>{console.log("Loading the WebApp...");const e=document.getElementById("work-button");document.getElementById("ical-upload").addEventListener("change",(()=>{e.disabled=!1})),e.addEventListener("click",s)}))}},t={};!function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}(519)})(); (()=>{"use strict";var e={953:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t,n){this.reminderPrefix="Erinnerung: ",this.icsContent=e,this.reminderDays=t,this.reminderHours=n}modifyEvents(){return this.icsContent.replace(/BEGIN:VEVENT.*?END:VEVENT/gs,(e=>{const t=e.match(/SUMMARY:(.*)\r\n/),n=t?t[1]:"",r=this.createTriggerValue(),o=this.createVAlarmString(this.reminderPrefix+n,r);return e.replace(/END:VEVENT/,o+"END:VEVENT")}))}createVAlarmString(e,t){let n="BEGIN:VALARM\r\n";return n+="ACTION:DISPLAY\r\n",n+=`DESCRIPTION:${e}\r\n`,n+=`TRIGGER:${t}\r\n`,n+="END:VALARM\r\n",n}createTriggerValue(){const e=0===this.reminderHours?0:24-this.reminderHours;let t=this.reminderDays;return 1===t&&(t=0),`-P${t}DT${e}H0M0S`}}},519:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(953)),s=n(412);function d(e){!function(){const e=document.getElementById("download-area");e&&e.classList.remove("show-download-area")}();const t=document.getElementById("ical-upload"),n=document.getElementById("reminder-days-select"),r=document.getElementById("reminder-hours-select"),s=parseInt(n.value,10),d=parseInt(r.value,10),i=t.files?t.files[0]:null;if(i){console.log("File uploaded:",i.name);const e=new FileReader;e.onload=e=>{var t;const n=null===(t=e.target)||void 0===t?void 0:t.result;if("string"==typeof n){console.log("File content readable..");const e=new o.default(n,s,d).modifyEvents(),t=function(e){const t=e.lastIndexOf(".");return-1===t?e+" with reminders":e.substring(0,t)+" with reminders"+e.substring(t)}(i.name),r=new Blob([e],{type:"text/calendar"});!function(e,t){const n=document.getElementById("download-area"),r=document.getElementById("download-button");n&&r&&(r.href=t,r.download=e,setTimeout((()=>n.classList.add("show-download-area")),0),document.getElementById("work-button").disabled=!0)}(t,URL.createObjectURL(r))}},e.readAsText(i)}}document.addEventListener("DOMContentLoaded",(()=>{console.log("Loading the WebApp Version "+s.version+"..."),document.getElementById("footer-version").innerText=`Version: ${s.version}`;const e=document.getElementById("work-button");document.getElementById("ical-upload").addEventListener("change",(()=>{e.disabled=!1})),e.addEventListener("click",d)}))},412:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0,t.version="0.1.5"}},t={};!function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}(519)})();
//# sourceMappingURL=bundle.js.map //# sourceMappingURL=bundle.js.map

View File

@@ -12,7 +12,7 @@
</head> </head>
<body> <body>
<a href="https://github.com/PxaMMaxP/AbfallAlarm" class="github-corner" aria-label="View source on GitHub"><svg <a href="https://github.com/0xmax42/AbfallAlarm" class="github-corner" aria-label="View source on GitHub"><svg
width="80" height="80" viewBox="0 0 250 250" width="80" height="80" viewBox="0 0 250 250"
style="fill:#64CEAA; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"> style="fill:#64CEAA; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path> <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
@@ -46,8 +46,8 @@
hochladen und automatisch Erinnerungen für jeden Abholtermin hinzufügen.</p> hochladen und automatisch Erinnerungen für jeden Abholtermin hinzufügen.</p>
<p>Laden Sie sich bitte zuerst eine entsprechende <b>iCal-Datei</b> von der Stadt Arnsberg herunter: <p>Laden Sie sich bitte zuerst eine entsprechende <b>iCal-Datei</b> von der Stadt Arnsberg herunter:
<a href="https://web.c-trace.de/arnsberg-abfallkalender/(S(ujf4cewvsnomrdo0l5zcrkph))/" <a href="https://abfallkalender.arnsberg.de/" target="_blank">Quelle</a>. Kommen Sie danach zurück und
target="_blank">Quelle</a>. Kommen Sie danach zurück und folgen Sie den Anweisungen unten. folgen Sie den Anweisungen unten.
</p> </p>
</div> </div>
@@ -123,11 +123,13 @@
<!-- Footer Section --> <!-- Footer Section -->
<div id="footer"> <div id="footer">
M. Passarello | <a href="https://github.com/PxaMMaxP" target="_blank">Github Profil</a> 0xMax42 | <a href="https://github.com/0xmax42" target="_blank">Github Profil</a>
<br>
<span id="footer-version"></span>
</div> </div>
</div> </div>
<script src="./bundle.js"></script> <script src="./bundle.js"></script>
</body> </body>
</html> </html>

6
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "abfallalarm", "name": "abfallalarm",
"version": "0.1.2", "version": "0.1.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "abfallalarm", "name": "abfallalarm",
"version": "0.1.2", "version": "0.1.3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"fs-extra": "^11.2.0", "fs-extra": "^11.2.0",
@@ -4008,4 +4008,4 @@
} }
} }
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"name": "abfallalarm", "name": "abfallalarm",
"displayName": "AbfallAlarm", "displayName": "AbfallAlarm",
"version": "0.1.3", "version": "0.1.5",
"description": "AbfallAlarm ist eine intuitive und benutzerfreundliche WebApp, die darauf abzielt, das Leben der Bürger von Arnsberg zu vereinfachen, indem sie eine zuverlässige Erinnerungsfunktion für den städtischen Abfallkalender bietet.", "description": "AbfallAlarm ist eine intuitive und benutzerfreundliche WebApp, die darauf abzielt, das Leben der Bürger von Arnsberg zu vereinfachen, indem sie eine zuverlässige Erinnerungsfunktion für den städtischen Abfallkalender bietet.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"build:patch": "webpack --config webpack.config.js --mode production && npm run bump-version patch && npm run copy-release && npm run zip-release", "build:patch": "npm run bump-version patch && webpack --config webpack.config.js --mode production && npm run copy-release && npm run zip-release",
"build:minor": "webpack --config webpack.config.js --mode production && npm run bump-version minor && npm run copy-release && npm run zip-release", "build:minor": "npm run copy-release && webpack --config webpack.config.js --mode production && npm run zip-release",
"build:major": "webpack --config webpack.config.js --mode production && npm run bump-version major && npm run copy-release && npm run zip-release", "build:major": "npm run bump-version major && webpack --config webpack.config.js --mode production && npm run copy-release && npm run zip-release",
"bump-version": "node bump-version.js", "bump-version": "node bump-version.js",
"copy-release": "node copy-release-docs.js", "copy-release": "node copy-release-docs.js",
"zip-release": "node zip-release.js", "zip-release": "node zip-release.js",

View File

@@ -46,8 +46,8 @@
hochladen und automatisch Erinnerungen für jeden Abholtermin hinzufügen.</p> hochladen und automatisch Erinnerungen für jeden Abholtermin hinzufügen.</p>
<p>Laden Sie sich bitte zuerst eine entsprechende <b>iCal-Datei</b> von der Stadt Arnsberg herunter: <p>Laden Sie sich bitte zuerst eine entsprechende <b>iCal-Datei</b> von der Stadt Arnsberg herunter:
<a href="https://web.c-trace.de/arnsberg-abfallkalender/(S(ujf4cewvsnomrdo0l5zcrkph))/" <a href="https://abfallkalender.arnsberg.de/" target="_blank">Quelle</a>. Kommen Sie danach zurück und
target="_blank">Quelle</a>. Kommen Sie danach zurück und folgen Sie den Anweisungen unten. folgen Sie den Anweisungen unten.
</p> </p>
</div> </div>
@@ -124,6 +124,8 @@
<!-- Footer Section --> <!-- Footer Section -->
<div id="footer"> <div id="footer">
M. Passarello | <a href="https://github.com/PxaMMaxP" target="_blank">Github Profil</a> M. Passarello | <a href="https://github.com/PxaMMaxP" target="_blank">Github Profil</a>
<br>
<span id="footer-version"></span>
</div> </div>
</div> </div>

View File

@@ -1,9 +1,13 @@
// main.ts // main.ts
import IcsModifier from './IcsModifier'; import IcsModifier from './IcsModifier';
import { version } from './version';
// Event listener for DOMContentLoaded to initialize the application // Event listener for DOMContentLoaded to initialize the application
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
console.log('Loading the WebApp...'); console.log('Loading the WebApp Version ' + version + '...');
const versionTag = document.getElementById('footer-version') as HTMLSpanElement;
versionTag.innerText = `Version: ${version}`;
const workButton = document.getElementById('work-button') as HTMLButtonElement; const workButton = document.getElementById('work-button') as HTMLButtonElement;
const fileInput = document.getElementById('ical-upload') as HTMLInputElement; const fileInput = document.getElementById('ical-upload') as HTMLInputElement;

1
src/version.ts Normal file
View File

@@ -0,0 +1 @@
export const version = '0.1.5';