Skip to content

Releases: Matheu46/moodle-local_quicknote

v0.12.0

Choose a tag to compare

@Matheu46 Matheu46 released this 28 Sep 13:31

v0.12.0 (2026-09-28)

  • Bulk Actions in Notes Center:
    • Added multi-select capabilities with individual card checkboxes and "Select all" / "Deselect all" controls.
    • Implemented an atomic bulk deletion external API (delete_notes) with a confirmation modal and automatic screenshot cleanup.
    • Added support for bulk exporting selected notes to PDF and Markdown.
    • Maintained selection state across AJAX pagination and searches using a JavaScript Set.
    • Added a responsive bulk actions toolbar with selected items count and mobile-optimized layout.
  • General Notes (Dashboard & Front Page):
    • Added support for creating and viewing general notes on the Dashboard (/my/) and Front Page (courseid = 0).
    • Added an administrative setting (enable_dashboard and enable_frontpage) to control QuickNote availability on the Dashboard and Front page.
    • Refactored note access validation (util::validate_note_access) to handle system context and courses consistently.
    • Added "General notes" option in Notes Center filters and export routines.
  • UI/UX & Theming:
    • Dynamically adjusted the floating toggle button's vertical position when Moodle's sticky footer is active (.hasstickyfooter), preventing it from overlapping bottom action bars.
    • Modernized sidebar and note component styles with standard Bootstrap 5 CSS variables (--bs-body-bg, --bs-border-color, --bs-tertiary-bg, etc.) for consistent theming and dark mode support.
  • Performance & Lazy Loading:
    • Implemented lazy loading for the sidebar: user notes are now fetched via AJAX only when the drawer is first opened, speeding up initial page loads.
    • Added loading indicator state with draft preservation and auto-focus restoration upon fetch completion.
  • Text Highlighting in Same-Origin Iframes (H5P):
    • Added support for detecting text selections and triggering highlight notes inside same-origin iframes, particularly for mod_hvp (H5P) activities.
    • Implemented a MutationObserver to watch and attach listeners dynamically to newly injected iframes.
    • Added smart button offset positioning relative to the iframe window and viewport.
  • Security & URL Validation:
    • Introduced util::clean_url() to strictly sanitize and validate note URLs, blocking dangerous URI schemes (e.g. javascript:, data:).
    • Improved handling for complex URLs with multiple hash fragments (common in interactive modules and SPAs).
    • Applied URL sanitization across note saving (save_note), PDF/Markdown exports (exporter), and Notes Center rendering.
  • Moodle 5.x Modernization & Code Cleanup:
    • Removed legacy callback local_quicknote_before_standard_top_of_body_html in favor of the Moodle 4.4+ / 5.x Hooks API (before_standard_top_of_body_html_generation).
    • Removed deprecated \core\event\course_updated observer and simplified form hooks to use direct $hook->mform property access.
    • Replaced legacy Bootstrap 4 accessibility class sr-only with Bootstrap 5 visually-hidden.
    • Updated theme styles to use native --bs-primary CSS variables, removing obsolete Bootstrap 4 fallbacks.

0.11.0

Choose a tag to compare

@Matheu46 Matheu46 released this 13 Sep 01:47

What's Changed

Full Changelog: 0.10.0...0.11.0

m45-0.11.0

Choose a tag to compare

@Matheu46 Matheu46 released this 13 Sep 02:13

What's Changed

Full Changelog: 0.10.0...m45-0.11.0

0.10.0

Choose a tag to compare

@Matheu46 Matheu46 released this 30 Aug 21:46

0.10.0 (2026-08-30)

Major contributions and features in this release were ported from a downstream fork by Andreas Giesen (@108design).

  • Permissions & Security:
    • Implemented the local/quicknote:use system capability for granular access control, replacing hardcoded enrollment checks.
  • UI/UX & Accessibility:
    • Implemented SPA-like asynchronous live search with debounce in the Notes Center for a faster, smoother experience.
    • Added auto-growing textareas in the sidebar that dynamically adjust their height based on content.
    • Redesigned Notes Center cards by replacing title badges with Bootstrap card headers and footers for clearer visual separation.
    • Enabled direct note deletion from within the Notes Center.
    • Significantly improved screen reader accessibility (A11y) with reliable aria-live announcements for live search results and native CSS visibility handling for the sidebar drawer.
  • Core & Architecture:
    • Extracted AJAX operations into a dedicated repository.js pattern for improved JS maintainability.
    • Refactored PDF and Markdown export functionality into a dedicated exporter class with improved memory efficiency using get_recordset_sql.
    • Added comprehensive unit tests for the new exporter class.

0.9.2

Choose a tag to compare

@Matheu46 Matheu46 released this 15 Aug 21:33

Full Changelog: 0.9.1...0.9.2

0.9.1

Choose a tag to compare

@Matheu46 Matheu46 released this 12 Aug 00:32

What's Changed

  • Update CI configuration to support PHP 8.1 and 8.3, and expand Moodle… by @Matheu46 in #20
  • Issue #18 by @Matheu46 in #21
  • Remove associated notes and configuration when a course is deleted (f… by @Matheu46 in #22
    • Implemented checks in delete_note, get_notes, and save_note to ensu… by @Matheu46 in #23
  • Issue 24 by @Matheu46 in #25

Full Changelog: 0.9.0...0.9.1

0.9.0

Choose a tag to compare

@Matheu46 Matheu46 released this 06 Aug 00:31

What's Changed

Full Changelog: 0.8.4...0.9.0

0.8.4

Choose a tag to compare

@Matheu46 Matheu46 released this 29 Jul 14:19

What's Changed

Full Changelog: 0.8.3...0.8.4

0.8.3

Choose a tag to compare

@Matheu46 Matheu46 released this 13 Jul 16:21

Full Changelog: 0.8.2...0.8.3

0.8.2

Choose a tag to compare

@Matheu46 Matheu46 released this 07 Jul 16:09

Full Changelog: 0.8.1...0.8.2