2 Commits
0.1.2 ... 0.1.4

Author SHA1 Message Date
d22acff11f Version Tag added. 2023-12-28 00:44:20 +01:00
09962d8720 Bug in the reminder fixed:
The reminder was entered one day too early.
2023-12-28 00:36:15 +01:00
8 changed files with 22 additions and 7 deletions

View File

@@ -31,3 +31,7 @@ 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;return`-P${this.reminderDays}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.3"}},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

@@ -61,7 +61,6 @@
<label for="reminder-days-select">Tage vor Abfuhr erinnern:</label> <label for="reminder-days-select">Tage vor Abfuhr erinnern:</label>
<select id="reminder-days-select"> <select id="reminder-days-select">
<!-- Options for days --> <!-- Options for days -->
<option value="0">Am Tag selbst</option>
<option value="1" selected>1 Tag</option> <option value="1" selected>1 Tag</option>
<option value="2">2 Tage</option> <option value="2">2 Tage</option>
<option value="3">3 Tage</option> <option value="3">3 Tage</option>
@@ -125,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,7 +1,7 @@
{ {
"name": "abfallalarm", "name": "abfallalarm",
"displayName": "AbfallAlarm", "displayName": "AbfallAlarm",
"version": "0.1.2", "version": "0.1.4",
"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": {

View File

@@ -61,7 +61,6 @@
<label for="reminder-days-select">Tage vor Abfuhr erinnern:</label> <label for="reminder-days-select">Tage vor Abfuhr erinnern:</label>
<select id="reminder-days-select"> <select id="reminder-days-select">
<!-- Options for days --> <!-- Options for days -->
<option value="0">Am Tag selbst</option>
<option value="1" selected>1 Tag</option> <option value="1" selected>1 Tag</option>
<option value="2">2 Tage</option> <option value="2">2 Tage</option>
<option value="3">3 Tage</option> <option value="3">3 Tage</option>
@@ -125,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

@@ -51,7 +51,11 @@ export default class IcsModifier {
const hoursUntilMidnight = this.reminderHours === 0 ? 0 : 24 - this.reminderHours; const hoursUntilMidnight = this.reminderHours === 0 ? 0 : 24 - this.reminderHours;
// Use reminderDays directly as daysPart // Use reminderDays directly as daysPart
const daysPart = this.reminderDays; let daysPart = this.reminderDays;
// daysPart is 1 set to 0
if (daysPart === 1) {
daysPart = 0;
}
// Create the trigger string // Create the trigger string
const trigger = `-P${daysPart}DT${hoursUntilMidnight}H0M0S`; const trigger = `-P${daysPart}DT${hoursUntilMidnight}H0M0S`;

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.4';