Files
rangerhq-logbook/CHANGELOG.md
T
ranger 71df974a93 ux: make the "No notes found" empty-state notice dismissible
The inline notice on the My Notes page rendered with class="notice
notice-info" but no is-dismissible modifier, so WordPress's core
common.js never attached an X close button. Users had no way to
clear the empty-state message for the current view.

Audited every notice the plugin emits while I was in there — the
migration notice and the settings_errors() calls were already
correctly dismissible AND only fired in their intended state. The
empty-state notice was the only laggard. All four notice paths now
share the same contract: dismissible by the user, AND only rendered
when the underlying state warrants it.

Dismissal is per-page-load (WP core's default behavior — clicking X
hides the element for the current view only). Cross-page-load
persistence would need user_meta or a transient and isn't built
yet; flagged in the changelog for a future enhancement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:51:39 +01:00

8.9 KiB

Changelog

All notable changes to A-WP-Notes are documented here. Format: Keep a Changelog 1.1.0 — versioning: SemVer.


[Unreleased]

Fixed — Empty-state notice ("No notes found") now dismissible

The "No active notes found" / "No completed notes found" inline notice on the My Notes page rendered with class="notice notice-info" but no is-dismissible modifier, so WordPress's core common.js never attached an X close button to it. Users couldn't clear the message for the current view. Adding is-dismissible is the only change — WP core handles the X button render + click-to-hide automatically. Dismissal is per-page-load (the message reappears on next refresh if the list is still empty); persistence across reloads would need user_meta tracking and isn't built yet.

Notice inventory after this fix — every notice the plugin emits is now both dismissible AND only fires in its intended state:

Notice Class Fires when
"No active/completed notes found" notice notice-info is-dismissible List is empty
Migration prompt notice notice-info is-dismissible wp_notes_migration_completed option is unset
Settings save / import errors / import success rendered by core settings_errors() (auto-dismissible since WP 4.2) Only on form submission events

Changed — Removed duplicate smiley-face button on the emoji picker

The "Add emoji" formatting option rendered two clickable elements stacked: the "Click to add emoji" text input AND a separate button beside it with a smiley-face dashicon. Both opened the same dropdown picker — visually duplicated and slightly confusing. The standalone button has been removed; clicking the input itself still opens the picker (the JS already wired both targets to the same handler). Keyboard navigation (Enter/Space to toggle, Escape to close) follows focus to the input instead of the now-gone button. Orphaned .emoji-picker-button CSS rule deleted.

Changed — Menu labels: "Create WP Note" → "My Notes", "About WP Notes" → "About"

  • "Create WP Note" submenu renamed to "My Notes" (both in the WP Notes parent menu and the Tools → quick-access shortcut). The page is the central dashboard — create form + active list + completed list + edit + restore — so "Create" was misleadingly narrow. "My Notes" matches the WP-native Posts → All Posts pattern.
  • "About WP Notes" submenu renamed to just "About". The WP Notes brand is already carried by the parent menu, so the submenu can be plain-spoken.
  • About page H1 trimmed to match the Tier-1 style on the main page: <h1>About</h1> + version chip instead of the old "Welcome to WP Notes About Page v3.0.2" mouthful. Same wp-heading-inline + page-title-action + wp-header-end recipe.
  • Removed a redundant nested <div id="header"> with display: none on the About page — it was dead markup leftover from an older layout.

Changed — Banner moved to About page (side-by-side intro)

  • Banner image removed from the Create-Note page. It was the first thing under the page title and took up significant vertical space before the user even saw the textarea. The Create-Note page is for doing, not for reading-about.
  • Banner added to the top of the About page in a new side-by-side row: banner image on the left (capped at 320px wide, not full-bleed), and a short intro paragraph + "Go to WP Notes →" CTA on the right. Stacks vertically on narrow screens via flex-wrap. Lives inside its own .wp-notes-about-intro block so it doesn't interact with the rest of the About page's nested toggles.
  • .wp-notes-header-banner / .wp-notes-banner-img CSS removed from wp-notes-styles.php — no longer used.

Changed — Tier 1 UX cleanup

Single pass through wp_notes_page_callback() to remove the layout debt that had built up over previous releases. Functionality is unchanged; the page is shorter, has one H1, and stops contradicting itself.

  • Single H1 on the page — was five (Welcome to WP Notes, Welcome to WP Notes v3.0.2, About WP Notes, What WP Notes Offers, What's New in WP Notes v3.0.2). Now: just WP Notes with the version chip alongside. Accessibility + SEO.
  • "Welcome / About" content collapsed from THREE on-page surfaces (a dismissible top notice + a nested toggle + a manual "Show Welcome Message" button) down to a single one-line description that links to the dedicated About page where the long copy already lives.
  • Duplicate "Toggle Welcome Section" buttons removed. Both outer and inner toggle buttons had the same label but different targets — genuinely confusing. Both gone.
  • "What's New v3.0.0" embedded changelog block removed. It was hard-coded to v3.0.0 while the plugin reports v3.0.2 — the embed was lying. The real history lives in CHANGELOG.md now.
  • "Buy me a coffee" button moved from page header to page footer — promo content should not be the first thing under the page title. Now sits at the bottom of the notes lists, centred, where footer items belong.
  • Invalid HTML cleaned up<li> tags outside <ul>, <p> tags wrapping <div> / <ul>. Was in the deleted welcome blob, so resolved by removal.
  • Dead bulk-action UI removed — both the per-row checkboxes and the "Select all" header column in wp_notes_display_notes() and wp_notes_list_table() were rendered but nothing acted on the selection. Removed both, with an inline comment marking the spot for when real bulk-actions get wired up. Edit-form colspan adjusted (64) to match the new column count.
  • Inline <style> and <script> blocks for the dismissed about-box (~80 lines of localStorage-based dismiss tracking and show/hide logic) deleted along with the about-box itself — WordPress's own notice notice-info is-dismissible and the user-meta dismissal API are the correct path if a banner needs to return.
  • toggleSection() JS helper removed — no toggles remain on the page after the welcome-blob deletion.

Fixed (PHP 8.2 deprecation)

  • ${size}px{$size}px in the dashboard list-table render. ${var} string interpolation is deprecated in PHP 8.2 and will hard-error in PHP 9.

Notes

  • The dedicated About page (Settings → WP Notes → About WP Notes) is unchanged and still renders wp_notes_about_page() from inc/wp-notes-about.php. All the long welcome/about copy lives there — exactly where it belongs.
  • Banner image still renders, in its own bordered container at the top of the page. Moved out of the deleted nested toggle so it actually shows.
  • Storage model is unchanged — notes still live in wp_options under wp_notes / wp_done_notes. The UX cleanup is purely presentational.

Fixed

  • "Add New Note" sidebar submenu opening the WordPress post editor. The plugin registered a wp_note custom post type with show_ui => true and show_in_menu => 'wp-notes', which caused WordPress to auto-inject "All Notes" and "Add New" submenus under the WP Notes admin menu. The "Add New" submenu routed to post-new.php?post_type=wp_note — the standard WordPress post editor — but the live plugin stores notes in wp_options (get_option('wp_notes')), not as CPT posts. Saving in the post editor wrote to the wrong storage and the new note never appeared in the WP Notes list. Discovered 2026-05-25.

    Fixed by setting show_ui and show_in_menu to false on the wp_note CPT, and show_ui / show_admin_column / show_in_rest to false on the wp_note_category taxonomy. The CPT and taxonomy remain registered so wp_notes_migrate_to_cpt() can still use wp_insert_post() if/when the migration is run. The form on the actual WP Notes page (the one that POSTs to the same admin page) continues to work unchanged.

Notes

  • The plugin currently uses two storage models: the active one is wp_options (key wp_notes, with completed notes in wp_done_notes). The CPT + meta storage is the target of an unfinished migration; the helper wp_notes_migrate_to_cpt() is defined but unused by the live UI. Until that migration is completed, hiding the CPT from the admin UI prevents users from accidentally writing to the wrong store.

[3.0.2] — 2025-05-10 (last released version, baseline)

The v3 "without all the crap" release. Trimmed from the v1.1.5 feature-creep era which had bolted on:

  • AI chat (multiple variants)
  • AI personalities
  • Journal mode
  • Speedtest
  • Tamagotchi (yes, really)
  • Backup
  • And more

v3 strips back to the essentials:

  • Notes list (in wp_options)
  • Create note form (color, size, font, emoji)
  • Admin bar quick-access menu
  • Settings page
  • Import / Export
  • About page
  • Update checker

This baseline entry exists for historical context; future releases should keep adding entries above and remove this note once a real changelog history accrues.