Project

General

Profile

Actions

Feature #7480

open

Record History (Undo / Redo)

Added by Carsten Rose over 5 years ago. Updated 6 days ago.

Status:
ToDo
Priority:
Normal
Assignee:
Zhoujie Li
Target version:
Start date:
13.12.2018
Due date:
% Done:

0%

Estimated time:
8.00 h
Discuss:
Prio Planung:
No
Vote:
CR, EN

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

Related to QFQ - Feature #12315: Form History (Diffs) / BackupsNewEnis Nuredini06.04.2021

Actions
Has duplicate QFQ - Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hatRejectedCarsten Rose18.08.2016

Actions
Actions #1

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.
Actions #2

Updated by Carsten Rose over 5 years ago

  • Subject changed from Record History to Record History (Undo / Redo)
Actions #4

Updated by Carsten Rose almost 5 years ago

  • Related to Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hat added
Actions #5

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.
Actions #6

Updated by Carsten Rose over 4 years ago

  • Description updated (diff)
Actions #7

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.

Actions #8

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

Actions #9

Updated by Marc Egger over 4 years ago

Actions #10

Updated by Carsten Rose over 4 years ago

  • Status changed from New to Some day maybe
Actions #11

Updated by Carsten Rose over 4 years ago

  • Status changed from Some day maybe to New
Actions #12

Updated by Carsten Rose about 1 year ago

  • Target version changed from next6 to 24.8.0
  • Prio Planung set to No
Actions #13

Updated by Carsten Rose 5 months ago

  • Related to deleted (Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hat)
Actions #14

Updated by Carsten Rose 5 months ago

  • Has duplicate Feature #2361: Logging wer/wann/wo welches Formular aufgerufen hat added
Actions #16

Updated by Carsten Rose 5 months ago

  • Target version changed from 24.8.0 to CodingWeek2023
Actions #17

Updated by Carsten Rose 5 months ago

  • Category set to 38
Actions #18

Updated by Carsten Rose 5 months ago

  • Category deleted (38)
  • Vote CR added
Actions #19

Updated by Enis Nuredini 5 months ago

  • Vote EN added
Actions #20

Updated by Carsten Rose 5 months ago

  • Status changed from New to Priorize
Actions #21

Updated by Carsten Rose 5 months ago

  • Status changed from Priorize to ToDo
Actions #22

Updated by Carsten Rose 5 months ago

  • Status changed from ToDo to In Progress
Actions #23

Updated by Carsten Rose 5 months ago

  • Estimated time set to 8.00 h
Actions #24

Updated by Carsten Rose 4 months ago

  • Assignee changed from Carsten Rose to Zhoujie Li
Actions #25

Updated by Zhoujie Li about 2 months ago

  • Status changed from In Progress to ToDo
Actions #26

Updated by Carsten Rose 6 days ago

Actions #27

Updated by Carsten Rose 6 days ago

History der letzten Aktionen

  • Angenommen viele Antraege werden in einen anderen Pool verschoben
  • Es waere gut wenn man die Aktion in einer History Line sehen koennte
  • Das koennte zusammen sein mit 'wann wurden welche Daten bearbeitet'
Actions

Also available in: Atom PDF