Project

General

Profile

Form Wizard » History » Version 18

Zhoujie Li, 03.04.2024 08:51

1 2 Zhoujie Li
h1. Form Wizard
2 3 Zhoujie Li
3 5 Zhoujie Li
h2. Skizze
4 4 Zhoujie Li
5 7 Zhoujie Li
!clipboard-202312141454-ndbms.png!
6 8 Zhoujie Li
!clipboard-202312141455-gkid6.png!
7 7 Zhoujie Li
8 3 Zhoujie Li
h2. Funktionbeschreibung
9
10
* Datenbanktabelle Auslesen und Struktur Erkennen:
11
** Automatisches Auslesen und Anzeigen der Struktur von Tabellen aus einer Datenbank.
12
* Automatische Input-Felder
13
** Felder werden basierend auf den Datentypen in der Datenbanktabelle generiert (z.B. wird für 'VARCHAR' standardmässig ein Text verwendet, Datetime => datetime).
14
* Anpassbare Formularfelder
15
** Die Art der Felder (Text, Dropdown, etc.) über ein Dropdown-Menü anpassbar.
16
** Für alle type, die eine sql1 benötigen, wird automatisch ein neues Eingabefeld für diese Abfrage hinzugefügt.
17
* Zusätzliche Felder
18 1 Zhoujie Li
** Manuelle Hinzufügung von Feldern, die nicht direkt mit der Datenbanktabelle verbunden sind (wie 'Pill', 'Action').
19 7 Zhoujie Li
** Variante 1: Bei Auswahl eines Containers (z.B. 'Pill') erhält jedes Formularelement ein zusätzliches Dropdown-Menü zur Auswahl des entsprechenden Containers.
20
** Variante 2: Man kann in das Pillfeld eine neue Pill generieren zur suche werden TypeAhead 
21 12 Zhoujie Li
** TypeAhead für existierende Felder
22 3 Zhoujie Li
* Lösch/disable funktion
23
** Jedes Formularelement kann über einen "Delete"-Button entfernt werden.
24
** Checkbox damit man den Formelement disable zu können.
25
* Tooltipps
26 1 Zhoujie Li
** Nützliche Informationen zu bestimmten Formularelemente.
27 7 Zhoujie Li
28
h2. Multi Form
29
30 9 Zhoujie Li
Für die Implementierung des Form Wizard haben wir Gedanken gemacht, und sind dabei auf das QFQ Multi Form gestossen, da es viele ähnliche Eigenschaften aufweist. Um das Multi Form jedoch als geeigneten Stoff für eine IPA zu qualifizieren, muss es entsprechend erweitert werden.
31
32
* Flexibilität bei der Datensatz-Identifikation: 
33
** Aktuell benötigt das Multi Form eine ID, die nur für existierende Tabellen mit Datensätzen funktioniert. 
34
** Es soll so erweitert werden, dass es auch ohne vorhandene Datensätze (ID 0) nutzbar ist.
35
* Dynamisches Update:
36
** Das Multi Form soll dynamisch auf Änderungen reagieren können, z.B. wenn im Form Wizard der Klassentyp auf 'Container' geändert wird und daraufhin der Typ automatisch im Dropdown-Menü angepasst wird.
37 10 Zhoujie Li
* Neuer 'Create'-Button:
38 1 Zhoujie Li
** Dieser Button soll das Erstellen neuer Formelemente ermöglichen, ähnlich wie bestehende Formularelemente.
39 10 Zhoujie Li
* Delete-Button zur Datensatzlöschung: 
40
** Eine Funktion zum Löschen von Datensätzen direkt aus dem Multi Form.
41
* Drag and Drop function:
42
** Ermöglicht es, beispielsweise ein Pill-Formularelement per Drag-and-Drop dem zugehörigen Pill-Bereich zuzuordnen.
43 13 Zhoujie Li
44
h2. Grobe Zeit einschätzung
45
46
Implementierung:
47
48 16 Zhoujie Li
*Multiform erweitern* 24h~
49
* add row 10h + 2h ~
50 17 Zhoujie Li
** Logik in JavaScript implementieren (4 Stunden)
51
** Button rendern logic PHP (2 Stunden)
52
** Template auf 'hidden' setzen, um das Hinzufügen neuer Zeilen auch ohne vorhandene records zu ermöglichen (4 Stunden in PHP)
53
** Add Button kann Aufgeruft werden mit form.parameter.multiFormAddRow = 1 (1.5 Stunden in PHP)
54
** unit test (2h PHP)
55 16 Zhoujie Li
* delete row 8 + 2~
56
** Zeile kann nicht gelöscht werden wenn der record schon vorhanden ist. 2h PHP
57
** Zeile die id = 0 sind werden clientseitig gelöscht, falls es nicht gespeichert wurde. 2h
58 13 Zhoujie Li
** button rendern 2h PHP
59
** logic javascript 3h
60
** unit test 1.5 PHP 
61
 
62
63 17 Zhoujie Li
*Formwizard* (16h) ~
64 15 Zhoujie Li
* struktur aufbauen 1h QFQ
65
** name,label,native...
66 18 Zhoujie Li
* Datenbanktabelle Auslesen und Struktur Erkennen. 8h QFQ
67 13 Zhoujie Li
** Die existierende FormElement werden nicht nochmals neue erstellt 1h
68 17 Zhoujie Li
** Automatisches Auslesen und Anzeigen der Struktur von Tabellen aus einer Datenbank 1h 
69 1 Zhoujie Li
** Felder werden basierend auf den Datentypen in der Datenbanktabelle generiert. sql1 query 6h 
70 16 Zhoujie Li
* Form erweitern um auf FormWizard zuzugreifen. 2h QFQ
71
* Speichern 4h QFQ/JS
72 17 Zhoujie Li
** slaveId logic before save ...etc 2h QFQ
73
** neue pill hizufügen per textInput 1h JS