From b92baf957705b3b4d6beda2e55a00afeb32ec439 Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Tue, 17 Mar 2026 07:30:12 +0530 Subject: [PATCH 1/4] feat: add list view toggle to chart library with user meta persistence Adds a grid/list view toggle to the Visualizer library page. List view renders charts in a WP-style table. The selected view is saved to user meta so it persists across visits without a redirect. - List view: WP table layout, no canvas rendering, tooltips on actions - Shortcode cell is clickable to copy to clipboard with visual feedback - View preference saved via update_user_meta() with allowlist validation - 10 Playwright e2e tests covering toggle, persistence, and table content --- classes/Visualizer/Render/Library.php | 185 +++++++++++----- css/library.css | 294 ++++++++++++++++++++++++++ js/library.js | 23 ++ tests/e2e/specs/library-view.spec.js | 146 +++++++++++++ 4 files changed, 595 insertions(+), 53 deletions(-) create mode 100644 tests/e2e/specs/library-view.spec.js diff --git a/classes/Visualizer/Render/Library.php b/classes/Visualizer/Render/Library.php index 5a59d7fb1..b1d4c9802 100644 --- a/classes/Visualizer/Render/Library.php +++ b/classes/Visualizer/Render/Library.php @@ -28,6 +28,13 @@ */ class Visualizer_Render_Library extends Visualizer_Render { + /** + * Cached result of _isListView() to avoid repeat DB reads per request. + * + * @var bool|null + */ + private $_list_view_cached = null; + /** * Renders library page. * @@ -78,6 +85,8 @@ private function getDisplayForm() { echo '
+ + ' . $this->_getViewToggleHTML() . '