Skip to content

SideNotes 2.1.0

Choose a tag to compare

@7maram7 7maram7 released this 24 Jun 00:31
· 14 commits to main since this release
f794ee7

SideNotes 2.1.0

Internal, staff-only notes for Omeka Classic Items and Collections. This release rebuilds the admin interface to match Omeka's native admin theme and adds a real note-management workflow on top of the original 1.0.0 foundation, along with several bug and security fixes.

Upgrading: Replace the SideNotes folder in omeka/plugins/ with this version and go to Plugins → Upgrade next to Side Notes. Existing notes are preserved.

Added

  • Dedicated Notes browse page (admin navigation → Notes) with separate Item Notes and Collection Notes tabs.
  • Sortable columns for Created and Modified dates, using Omeka's native sort controls.
  • Recent-notes dashboard panels for Items and Collections.
  • Author and timestamp tracking — each note records who created and last edited it, and when.
  • Working Delete action on the browse page (POST + CSRF-protected, with a confirmation prompt).
  • Configuration options: note preview length, number of recent notes on the dashboard, and timestamp format.

Changed

  • Admin UI now matches the native Omeka admin theme. The browse page uses Omeka's own table styling, sortable headers, section-nav tabs, and action-links; the dashboard and sidebar panels use the native panel / recent-row markup. Custom CSS was removed so the plugin inherits the active theme (no hardcoded colors).
  • Server-side validation of configuration values (clamped to safe ranges; timestamp format restricted to the supported set).

Fixed

  • Double-escaped record titles — titles containing characters like & displayed as & on the dashboard and browse page. Now escaped exactly once.
  • Recent-notes dashboard query could fail because the row limit was bound as a string (LIMIT '10'). The limit is now applied correctly.

Security

  • Delete requests require POST and a valid per-session CSRF token.
  • Browse sorting uses a strict column/direction whitelist; all queries remain parameterized and all output is escaped.

Compatibility

  • Omeka Classic 2.0+ (tested on 3.1.2). Requires PHP 5.6+.

Known follow-ups

See CODE_REVIEW.md for recommended next steps: role-based access control for the Notes page and delete, cleanup of orphaned notes when a record is deleted, and pagination for very large note sets.


Full changes: see CHANGELOG.md. Previous release: v1.0.0 (2025-07-25).