Feature #7480
openRecord History (Undo / Redo)
0%
Description
- Es waere gut wenn es in QFQ eine History der Records gaebe.
- Schoen waere auch ein Undo/Redo
Tipp von Marc:
Stackoverflow Frage:
https://stackoverflow.com/questions/12563706/is-there-a-mysql-option-feature-to-track-history-of-changes-to-records
Loesung MYSQL Triggers + history tabellen:
https://stackoverflow.com/a/12657012
Related issues
Updated by Carsten Rose over 5 years ago
- Subject changed from Record (Form) History to Record History
- Target version set to 55
- Ob ein Form eine History anbietet, kann pro Form aktiviert werden.
- Speichert ein Form (Update) einen Record, wird geschaut ob es eine zugehoerige Tabelle XX<tablename> gibt.
- Falls ja wird der History Record gespeichert.
- Falls nein wird geschaut ob fuer das Form 'saveHistory' aktiv ist. Falls ja, wird die Tabelle XX<tablename> angelegt und der History Record gespeichert.
- Der History Record kann aus dem STORE_BEFORE kopiert werden.
- Der Werty der Spalte 'id' wird in 'idOrig' kopiert.
- Zusaetzlich gibt es eine Tabelle 'History' in dem User, IP, Client, Formular, Tablename, <tablename>.id, flagDeleted gespeichert wird.
- Auf jedem Form gibt es ein 'History' Button.
- Mouse Over zeigt die History der letzten 5 Aenderungen an.
- Klick man auf dem Button kommt man auf eine Seite
- in der alle Timestamps aller Aenderungen angezeigt werden und man zwei beliebige vergleichen kann.
- man kann einen Record auswaehlen und wieder herstellen - das From wird anschliessend mit dem Record geladen.
- Wird ein Record geloescht, wird der Record zuvor nach 'XX<tableName>' kopiert und 'history.deleted'=1 gesetzt.
- Auf der History Seite ist ein Trasch vorhanden.
- Dort kann man geloeschte Records wieder herstellen ('id' bleibt erhalten).
- Wurde durch ein Form auch Sub-Records geloescht, bestaende die Moeglichkeit auch solche Records (vor dem Loeschen) zu vermerken und dann wieder zusammen herzustellen.
Updated by Carsten Rose over 5 years ago
- Subject changed from Record History to Record History (Undo / Redo)
Updated by Carsten Rose almost 5 years ago
- Related to Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hat added
Updated by Carsten Rose over 4 years ago
- Assignee set to Carsten Rose
- Target version changed from 55 to next6
- Obige Idee ist zu kompliziert. Es gibt bereits die Tabelle 'FormSubmitLog'.
Neue Idee:
- Jedes Form erhaelt einen Button 'History' (glyphicon-time).
- Ein Klick oeffnet auf der gleichen Seite das gleiche Form im 'showHistory' Mode:
- Der History Button wird gruen dargestellt.
- 100% identische Funktion.
- Zu jedem Feld gibt es ein Symbol mit Popup: wann wer den Inhalt geaendert hat - user,timestamp,value
- Ein weiterer Klick auf den History oeffnet auf der gleichen Seite eine Liste mit allen Aenderungen, seit bestehen des Records.
- Der History Button kann off/disabled/enabled sein.
- Bei der Anzeige der History sollte man konfigirieren koennen:
- Anzeige alle Aenderungen
- Anzeige Aenderungen des aktuellen Users.
- Die Liste der Aenderungen wird bestimmmt via:
- Anhand der 'formId > Primary Tabelle' werden alle Change Records bestimmt.
- Im FormSubmitLog.formData JSON String sind alle Spaltennamen: es sollte sehr einfach moeglich sein pro Spalte die Aenderungen zusammenzustellen.
- Ein Undo koennte aufwendig werden.
- Einfach moeglich sein sollte ein 'Pro Feld Undo': via Javascript wird der alte Inhalt in das aktuelle Feld kopiert.
Updated by Elias Villiger over 4 years ago
MariaDb hat ab Version 10.3 das Feature nativ mit dabei, siehe z.B. https://mariadb.com/kb/en/library/temporal-data-tables/ und https://mariadb.com/resources/blog/automatic-data-versioning-in-mariadb-server-10-3/
Vermutlich haben wir an einigen Stellen noch nicht die Version 10.3 (geolean hat 10.0), aber wäre vielleicht ein Gedanke wert.
Updated by Carsten Rose over 4 years ago
Danke fuer den Hinweis - das war mir nicht bekannt. MariaDB 10.3 ist noch nicht einmal in Ubuntu 18 - man kann es aber nachinstallieren
Updated by Marc Egger over 4 years ago
Gute kurze erklaerung von MariaDB 10.3 versioning:
https://www.percona.com/community-blog/2018/12/14/notes-mariadb-system-versioned-tables/
Updated by Carsten Rose over 4 years ago
- Status changed from New to Some day maybe
Updated by Carsten Rose over 4 years ago
- Status changed from Some day maybe to New
Updated by Carsten Rose about 1 year ago
- Target version changed from next6 to 24.8.0
- Prio Planung set to No
Updated by Carsten Rose 5 months ago
- Related to deleted (Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hat)
Updated by Carsten Rose 5 months ago
- Has duplicate Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hat added
Updated by Zhoujie Li about 2 months ago
- Status changed from In Progress to ToDo
Updated by Carsten Rose 6 days ago
- Related to Feature #12315: Form History (Diffs) / Backups added