First version for Omeka Classic, the counterpart of the Resource Versioning 1.0.2 module for Omeka S.
- A JSON snapshot of every item, collection and file is kept on every create, update and delete, through Omeka's record hooks, so every path is covered: the admin forms, batch edit, the REST API, CSV Import and other importers, background jobs and scripts. The snapshot holds the element texts by element set and element, in order, with their HTML flags; tags, item type, collection, public and featured flags and owner; an item's files in order; a file's item, original filename and alt text.
- Saves that change nothing are skipped (hash comparison); one snapshot and one insert per save. A record older than the plugin gets a baseline version, its state before its first recorded edit. A deleted record's last state is kept, tags included.
- Saves made in one batch edit, or in one background job, share a batch key, listed under Bulk Operations.
- A Version History panel on admin item, collection and file pages, and Resource Versions in the admin menu: every version with filters, bulk operations, the batch rollback wizard, and retention.
- A structured diff between any two versions, or a version and the record now, with live names for item types, collections, users and files, and a line-by-line view of the snapshots.
- Restore sets exactly a version's element texts, tags, flags, item type and collection through Omeka's own replace-and-save path, and is recorded as a version. Files are never changed; the owner only when the setting allows it; references to what no longer exists are dropped with a warning.
- A deleted item or collection can be recreated from any of its versions, under a new number; a recreated collection takes back its items. (The Omeka S module cannot undelete.)
- Batch rollback of a bulk operation, or of one person's edits in a time window, with a preview, as a background job that can also recreate the records the operation deleted. Rollbacks and prunes are listed with their progress and result, since Omeka Classic has no jobs page.
- Retention by count per record and by age, with a prune job.
- Permissions on the Classic roles: researchers and contributors view every history, contributors restore their own records, admins restore anything and roll back batches, super users prune and configure.
- Restores, recreations, rollbacks and prunes are reported to Audit Trail through the
audit_trail_loghook.