Form Wizard » History » Version 15
Zhoujie Li, 02.04.2024 17:06
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 | *Multiform erweitern* |
||
49 | * add row 8h + 2 ~ |
||
50 | ** logic javascript 4h |
||
51 | ** button rendern 2h PHP |
||
52 | ** Template auf hidden stellen, damit man auch ohne Record neue Row hizufügen zu können. 3h PHP |
||
53 | 14 | Zhoujie Li | ** add button aufrufen mit form.parameter.multiFormAddRow = 1 1h PHP |
54 | 13 | Zhoujie Li | ** unit test 1.5h PHP |
55 | * delete row 8h + 2~ |
||
56 | ** Zeile kann nicht gelöscht werden wenn der record schon vorhanden ist. 1h PHP |
||
57 | ** Zeile die id = 0 sind werden clientseitig gelöscht falls es nicht gespeichert ist, wird nach der page reload wiederhergestellt. 1.5h |
||
58 | ** button rendern 2h PHP |
||
59 | ** logic javascript 3h |
||
60 | ** unit test 1.5 PHP |
||
61 | |||
62 | |||
63 | *Formwizard* |
||
64 | * struktur aufbauen 1h QFQ |
||
65 | 15 | Zhoujie Li | ** name,label,native... |
66 | * Datenbanktabelle Auslesen und Struktur Erkennen. 9h QFQ |
||
67 | 1 | Zhoujie Li | ** Die existierende FormElement werden nicht nochmals neue erstellt 1h |
68 | 13 | Zhoujie Li | ** Automatisches Auslesen und Anzeigen der Struktur von Tabellen aus einer Datenbank 1.5h |
69 | 15 | Zhoujie Li | ** Felder werden basierend auf den Datentypen in der Datenbanktabelle generiert. sql1 query 6h |
70 | 1 | Zhoujie Li | * Form erweitern um auf FormWizard zuzugreifen. 1.5h QFQ |
71 | 15 | Zhoujie Li | * Check box process row per default aus falls eine Formelement schon existiert wird es gecheckt |
72 | 13 | Zhoujie Li | * Speichern 6h QFQ |
73 | ** slaveId logic |
||
74 | 15 | Zhoujie Li | ** neue pill hizufügen per textInput 2h JS |