diff --git a/dist/feca_mailshots_plugin-0.1.100.zip b/dist/feca_mailshots_plugin-0.1.100.zip new file mode 100644 index 0000000..0ad49b7 Binary files /dev/null and b/dist/feca_mailshots_plugin-0.1.100.zip differ diff --git a/dist/feca_mailshots_plugin-0.1.96.zip b/dist/feca_mailshots_plugin-0.1.96.zip new file mode 100644 index 0000000..bd03770 Binary files /dev/null and b/dist/feca_mailshots_plugin-0.1.96.zip differ diff --git a/dist/feca_mailshots_plugin-1.0.0.zip b/dist/feca_mailshots_plugin-1.0.0.zip new file mode 100644 index 0000000..0703fcb Binary files /dev/null and b/dist/feca_mailshots_plugin-1.0.0.zip differ diff --git a/docs/ui_review_2026-04-23.md b/docs/ui_review_2026-04-23.md new file mode 100644 index 0000000..6ad00e7 --- /dev/null +++ b/docs/ui_review_2026-04-23.md @@ -0,0 +1,55 @@ +# UI Design Review (2026-04-23) + +Reviewed against [`requirements/ui_design.md`](../requirements/ui_design.md). + +## Summary + +The plugin has improved control alignment/spacing and better internal scrolling on key pages (notably Review Recipients and Download PDF), but several global UI design requirements are still only partially implemented. + +## Implemented / Largely Implemented + +- WordPress admin-page navigation model is used across the plugin. +- Destructive actions use confirmation and red-link/button treatment in most CRUD lists. +- Modal editors generally use `Save` / `Quit` and preserve draft state on validation failure. +- Control label/control alignment and spacing were improved on pages with filter/selection controls. +- Long-running feedback is present for Download PDF (progress panel shown on submit). +- Review Recipients provides: + - full-page recipient inspection + - filter across fields + - sort-by + direction controls + - internal scroll region with sticky header row + - row highlight selection. + +## Gaps + +1. **Standard Page Region Consistency (global)** +- Requirement expects consistent context/information/statistics/actions/data pane structure where applicable. +- Current pages use ad-hoc inline layouts with inconsistent region structure and styling. + +2. **Multi-pane data area splitters** +- Draggable splitters with persisted ratios are not implemented. +- No per-page split-ratio persistence exists. + +3. **Default table behavior: column resizing + persistence** +- User-resizable column widths (including Firefox) are not implemented as a shared table behavior. +- Persisted widths per table are not implemented. + +4. **Resize stability requirements** +- Because column-resize behavior is not implemented, the associated non-reload stability guarantees are also not yet implemented/tested. + +5. **Long-operation progress coverage** +- Download PDF has progress feedback, but this is not consistently applied to all operations that may exceed 1s (for example some validate/preview/run flows depending on dataset size). + +6. **Horizontal scrolling policy** +- Requirement says avoid horizontal scrolling when content width can be adjusted. +- Review Recipients intentionally uses horizontal scroll for wide datasets; this is acceptable for usability, but should be documented as an explicit page-level exception to avoid ambiguity. + +## Recommended Next Steps + +1. Introduce a shared admin UI layout helper (PHP render helpers + shared CSS class contract) for pane regions. +2. Introduce a shared table component for: +- edge-drag resize +- width persistence +- sort dropdown + direction wiring where needed. +3. Add a reusable progress-status helper for long-running form/API actions. +4. Add explicit requirement note for Review Recipients horizontal-scroll exception. diff --git a/feca_mailshots_plugin/feca_mailshots_plugin.php b/feca_mailshots_plugin/feca_mailshots_plugin.php index 7ae4147..6199bce 100644 --- a/feca_mailshots_plugin/feca_mailshots_plugin.php +++ b/feca_mailshots_plugin/feca_mailshots_plugin.php @@ -3,7 +3,7 @@ * Plugin Name: FECA Mailshots * Plugin URI: https://fenedge.co.uk/ * Description: FECA mailshots plugin. - * Version: 0.1.93 + * Version: 1.0.0 * Requires at least: 6.0 * Requires PHP: 7.4 * Author: FECA diff --git a/feca_mailshots_plugin/readme.txt b/feca_mailshots_plugin/readme.txt index 4f09b6e..ff16e49 100644 --- a/feca_mailshots_plugin/readme.txt +++ b/feca_mailshots_plugin/readme.txt @@ -3,9 +3,8 @@ Contributors: feca Requires at least: 6.0 Tested up to: 6.5 Requires PHP: 7.4 -Stable tag: 0.0.0 +Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Barebones plugin scaffold. - diff --git a/feca_mailshots_plugin/src/Admin/AdminRequestHelpers.php b/feca_mailshots_plugin/src/Admin/AdminRequestHelpers.php index ccca06e..db3bb59 100644 --- a/feca_mailshots_plugin/src/Admin/AdminRequestHelpers.php +++ b/feca_mailshots_plugin/src/Admin/AdminRequestHelpers.php @@ -6,6 +6,109 @@ namespace FecaMailshots\Admin; trait AdminRequestHelpers { + private function renderAdminUiStyles(): string + { + return ''; + } + private function requestMethod(): string { $method = isset($_SERVER['REQUEST_METHOD']) ? (string) $_SERVER['REQUEST_METHOD'] : 'GET'; @@ -170,8 +273,8 @@ trait AdminRequestHelpers if ($result === null || !empty($result['ok']) || empty($result['errors']) || !is_array($result['errors'])) { return ''; } - $html = '
'; - $html .= 'Please fix the following: