From 5050011f290d14b6a62e0342207f3b9c37c12953 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Sat, 4 Jan 2025 19:18:14 +0100 Subject: [PATCH] docs first pages --- docs/calendar.md | 26 ++++ docs/ff-admin.md | 26 +++- docs/member.md | 51 +++++++ docs/newsletter.md | 143 ++++++++++++++++++ docs/protocol.md | 1 + docs/query.md | 1 + docs/role.md | 1 + docs/templating.md | 1 + docs/user.md | 1 + src/components/Footer.vue | 4 +- src/components/Header.vue | 2 +- src/components/UserMenu.vue | 7 +- src/router/index.ts | 2 +- .../admin/club/members/MemberOverview.vue | 4 + src/views/docs/DocPage.vue | 56 ++++++- src/views/docs/View.vue | 8 + 16 files changed, 320 insertions(+), 14 deletions(-) create mode 100644 docs/calendar.md create mode 100644 docs/member.md create mode 100644 docs/newsletter.md create mode 100644 docs/protocol.md create mode 100644 docs/query.md create mode 100644 docs/role.md create mode 100644 docs/templating.md create mode 100644 docs/user.md diff --git a/docs/calendar.md b/docs/calendar.md new file mode 100644 index 0000000..210c1c5 --- /dev/null +++ b/docs/calendar.md @@ -0,0 +1,26 @@ +# Kalender + +Der Kalender bietet eine Möglichkeit der Organisation von Terminen in unterschiedlichen Kategorien. + +Die Kategorien können in den Einstellungen gesetzt werden. Dabei gibt es folgende Einstellungsmöglichkeiten: +- Bezeichnung +- Farbe +- Standard Kalender Auslieferung +- Passphrase + +Die Standard Kalender Auslieferung gibt immer Termine dieser Art in der Öffentlichen Ansicht, als auch in der externen Kalendern an, sofern der Link nicht weiter spezifiziert ist. + +Die Passphrase kann zugangsbeschränkend für Termintypen angewandt werden. + +## öffentlicher Kalender + +Der öffentliche Kalender ist unter dem Pfad `/public/calendar` erreichbar. Dieser Kalender zeigt immer alle Termine an, welche einem Typ mit Standard-Auslieferung zugewiesen sind. + +## WebCal + +Der Kalender kann auch in den Kalender von zum Beispiel Google, Apple und co eingebunden werden, damit die Termine auch direkt im Kalender des Smartphones oder Outlook... verfügbar sind. +Hierfür kann der Link konfiguriert werden. Der Link kann dann so eingestellt werden, dass passwort-geschützte oder nicht standard Typen ausgeliefert werden. Zusätzlich können unter diesen Links auch die Standard-Typen hinzugefügt werden. + +Genutzt werden kann das zum Beispiel, dass Vorstands-Interne Termine oder Mitglieds-Spezifische Termine über einen personalisierten Link ausgegeben werden können. + +Wird der erstellte Link in einem Browser geöffnet, sollte automatisch eine ICS-Datei mit den Terminen heruntergeladen werden, oder die Möglichkeit vorgeschlagen werden, den Link in einen Kalender zu integrieren. \ No newline at end of file diff --git a/docs/ff-admin.md b/docs/ff-admin.md index a6609b6..4d370ca 100644 --- a/docs/ff-admin.md +++ b/docs/ff-admin.md @@ -1 +1,25 @@ -# FF Admin \ No newline at end of file +# FF Admin + +## FF Admin ist eine Verwaltungsoberfläche für die Feuerwehr: + +FF Admin bietet folgende Module: +- Mitgliederverwaltung +- Kalender +- Newsletter-Versand +- Protokolle +- Datenabfrage +- Templating-Engine +- Benutzerverwaltung +- Rollenverwaltung + +
+ +------- +
+ +## Struktur + +FF Admin ist in Verein, Wehr, Einstellungen und Nutzerverwaltung getrennt. +Die den Modulen zugrunde liegenden Daten können in den Einstellungen gesetzt werden. + +Fast alle Daten lassen sich einstellen, damit es keine Einschränkungen in der Auswahl von Werten... gibt. Diese Modularität muss allerdings bei einigen Modulen gesondert eingestellt werden. diff --git a/docs/member.md b/docs/member.md new file mode 100644 index 0000000..71a4d3a --- /dev/null +++ b/docs/member.md @@ -0,0 +1,51 @@ +# Mitgliederverwaltung + +Die Mitgliederverwaltung bietet eine Startansicht, in welcher alle Mitglieder durch Pagination angezeigt werden. Die Suche ermöglicht eine Full-Text-Suche nach Vor- und Nachnamen. + +Ist ein Mitglied ausgewählt, lassen sich innerhalb dessen alle Daten zu einem Mitglied verwalten. +- Allgemeine Daten des Mitglieds +- Mitgliedschaft +- Adressen bzw. Kommunikationswege +- Auszeichnungen +- Qualifikationen +- Vereinsämter + +Jedes dieser Verwaltungsmöglichkeiten benötigt vorher eingestellte Werte, welche dann einem Mitglied hinzugefügt werden können. + +## Allgemeine Daten des Mitglieds + +Die allgemeinen Daten des Mitglieds umfassen die interne Id, Anrede, Vorname, Nachname, Nameaffix und das Geburtsdatum. Diese Daten können über den Stift oben rechts im Eck geändert werden. + +Weiterhin zeigt die Übersicht des Mitglieds auch Informationen zu den Einträgen der übrigen Kategorien. + +## Mitgliedschaft + +Die auswählbaren Mitgliedsarten können in den Einstellungen gesetzt werden. + +Im Mitglied können dann Zeiträume einer bestimmten Mitgliedschafts-Art angelegt werden. Wird ein neuer Zeitraum hinzugefügt, wird ein aktuell laufender Zeitraum mit dem Vortag des neuen Startdatums beendet. +Weiterhin kann bei manuellem setzen des Enddatums ein Grund angegeben werden. + +## Adressen bzw. Kommunikationswege + +Die auswählbaren Kommunikationsarten können in den Einstellungen erstellt werden. Hierfür muss zu jeder Kommunikationsart ausgewählt werden, welche Felder ausgefüllt werden sollen. + +Im Miglied kann dann bei jedem kommunikationstyp gesetzt werden, ob dieser bevorzugt wird, und ob der Newsletter dorthin versandt werden soll. +Ist eine Telefonnummer in der Auswahl enthalten, besteht zusätzlich die Möglichkeit, diesen Kommunikationsweg für den Versand der SMS Alarmierung auszuwählen. + +## Auszeichnungen + +Die auswählbaren Auszeichnungen können in den Einstellungen erstellt werden. + +Im Mitglied können Auszeichnungen mit dem Vergabedatum hinzugefügt werden. Wird eine Annahme verweigert oder Ausgabe verwehrt, kann ein Grund hierfür angegeben werden. + +## Qualifikation + +Die auswählbaren Qualifikationen können in den Einstellungen erstellt werden. + +Im Mitglied können Qualifikationen mit einem Start und Enddatum hinzugefügt werden. Eine Notiz kann auch hinzugefügt werden. Zusätzlich zum Enddatum kann ein Grund für das Ende gesetzt werden. + +## Vereinsämter + +Die auswählbaren Vereinsämter können in den Einstellungen erstellt werden. + +Im Mitglied können Qualifikationen mit einem Start und Enddatum hinzugefügt werden. Eine Notiz kann auch hinzugefügt werden. \ No newline at end of file diff --git a/docs/newsletter.md b/docs/newsletter.md new file mode 100644 index 0000000..5171c80 --- /dev/null +++ b/docs/newsletter.md @@ -0,0 +1,143 @@ +# Newsletter + +Das Newsletter erlaubt den Druck und Versand von Inhalten zum Verein. Zu einem Newsletter können öffentliche Kalendereinträge hinzugefügt werden. + +## Newsletter erstellen + +Ein Newsletter besteht aus Titel und Zusammenfassung, um einen schnelleren Überblick in der Pagination zu erhalten. + +Im Newsletter können Überschrift, Einleitung/Text und Signatur hinzugefügt werden. +Es können Daten ausgewählt werden, welche dann automatisch nach dem Text und vor der Signatur im Standard-Template angezeigt. +Und es können Empfänger über eine Vordefinierte Datenabfrage oder manuelles hinzufügen festgelegt werden. +Im Tab Druck und Versand wird eine Datei mit allen Hinzugefügten Kalendereinträgen angezeigt, wie auch alle erstellten pdfs wie auch eine pdf, die alle anderen pdfs enthält. + +## Versand +In den Einstellungen kann festgelegt werden, welcher Kommunikationstyp wie versandt werden soll. Dies wird zusätzlich nochmals vor dem finalen Versand geprüft. + +Es wird beim Druck unterschieden in Ausgaben mit und ohne Adresse. In der Fußzeile wird dann entweder nur der Name oder auch mit Adresse gedruckt. + +Die Auswahl des Typs Mail versendet nur den Hauptteil des pdfs mit einer ics-Datei im Anhang. + +## Template +Über die Templating-Engine können für den Newsletter abweichende Kopf- und Fußzeilen und ein abweichender Hauptteil festgelegt werden. + +Ein Newsletter-Template erhält folgende Daten: +``` ts +// interface: +{ + title: string; + description: string; + newsletterTitle: string; + newsletterText: string; + newsletterSignatur: string; + dates: Array< + { + title: string; // enthält alternativen Titel bzw. Titel des Kalendereintrags + content: string; // enthält alternative Beschreibung bzw. Beschreibung des Kalendereintrags + starttime: string; + endtime: string; + location: string; + formattedStarttime: string; + formattedFullStarttime: string; + formattedEndtime: string; + formattedFullEndtime: string; + } + >; + recipient: { + firstname: string; + lastname: string; + salutation: Salutation; // (sir | madam | divers | none) + nameaffix: string; + street: string; + streetNumber: string; + streetNumberAdd: string + }; +} + +// beispieldaten + +{ + title: "Beispiel Newsletter Daten", + description: "Zusammenfassung der Demodaten.", + newsletterTitle: "

Sehr geehrtes Feuerwehrmitglied

", + newsletterText: "

zu folgenden Terminen möchten wir recht herzlich zur Teilnahme einladen:

", + newsletterSignatur: "

Mit freundlichen Grüßen

...

", + dates: [ + { + title: "Termin 1", + content: "

Beschreibung eines Termins

", + starttime: new Date(), + formattedStarttime: "Montag 20. Januar", + formattedFullStarttime: "Montag 20. Januar um 19:00", + endtime: new Date(), + formattedEndtime: "Montag 20. Januar", + formattedFullEndtime: "Montag 20. Januar um 21:00", + location: "Feuerwehrhaus", + }, + ], + recipient: { + firstname: "Julian", + lastname: "Krauser", + salutation: "sir", + nameaffix: "", + street: "Straße", + streetNumber: "Hausnummer", + streetNumberAdd: "Adresszusatz", + }, +} + +``` + +Das Template ist als HTML definiert und beinhaltet Platzhalter, welche durch `handlebarsjs` ausgetauscht werden. +``` html + + + + + + Newsletter + + +

{{{newsletterTitle}}}

+

{{{newsletterText}}}

+
+ {{#each dates}} +
+

{{this.formattedStarttime}}: {{this.title}}

+ {{{this.content}}} +
+
+ {{/each}} +
+
+

{{{newsletterSignatur}}}

+ + + + + +
+ {{recipient.lastname}}, {{recipient.firstname}}{{#if recipient.street}},{{/if}} {{recipient.street}} + {{recipient.streetNumber}} {{recipient.streetNumberAdd}} +
+ +``` \ No newline at end of file diff --git a/docs/protocol.md b/docs/protocol.md new file mode 100644 index 0000000..53c838f --- /dev/null +++ b/docs/protocol.md @@ -0,0 +1 @@ +# Protokoll \ No newline at end of file diff --git a/docs/query.md b/docs/query.md new file mode 100644 index 0000000..181d59c --- /dev/null +++ b/docs/query.md @@ -0,0 +1 @@ +# Query Builder & Query Store \ No newline at end of file diff --git a/docs/role.md b/docs/role.md new file mode 100644 index 0000000..cdb4705 --- /dev/null +++ b/docs/role.md @@ -0,0 +1 @@ +# Rollenverwaltung \ No newline at end of file diff --git a/docs/templating.md b/docs/templating.md new file mode 100644 index 0000000..25697bc --- /dev/null +++ b/docs/templating.md @@ -0,0 +1 @@ +# Templating Engine \ No newline at end of file diff --git a/docs/user.md b/docs/user.md new file mode 100644 index 0000000..2aa013d --- /dev/null +++ b/docs/user.md @@ -0,0 +1 @@ +# Benutzerverwaltung \ No newline at end of file diff --git a/src/components/Footer.vue b/src/components/Footer.vue index bc4de6d..6788002 100644 --- a/src/components/Footer.vue +++ b/src/components/Footer.vue @@ -1,6 +1,6 @@