From 7b7d48a06cf30efbe32400dd3d63b2ee878412d4 Mon Sep 17 00:00:00 2001 From: alcatron <27321443+alcatron@users.noreply.github.com> Date: Fri, 16 Oct 2026 23:28:02 +1030 Subject: [PATCH 1/4] Prepare Weathermap 2.0 identification and release notes --- CHANGELOG.md | 40 ++++++++---------------------- INFO | 2 +- locales/po/cacti.pot | 14 +++++------ weathermap-cacti-plugin-editor.php | 2 +- 4 files changed, 20 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eae61f01..719a3950 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,56 +14,38 @@ IMPORTANT NOTE: This version only works on CACTI 1.x++! ## Changes ---- develop --- - -* Add traffic colour presets and optional high-load link pulsing - -* Fix Safari rendering of high-traffic link glows using native SVG filters -* Make configuration saves and repairs atomic; coordinate writes, registration and deletion with destination-directory locks and report failed editor saves - -* Add separate icon and background image upload and management libraries -* Add editable map notes with alignment and sharp text at logical map dimensions -* Fix editor placement reset, destructive action controls and theme contrast -* Reduce gallery preview cards by 20% while preserving generated thumbnail resolution -* Add a searchable node icon picker and bundled enterprise site icons - +--- 2.0-dev --- + +* feature#302: Add traffic colour presets and optional high-load link pulsing +* issue#302: Fix Safari rendering of high-traffic link glows using native SVG filters +* issue#303: Make configuration saves and repairs atomic; coordinate writes, registration and deletion with destination-directory locks and report failed editor saves +* feature#303: Add separate icon and background image upload and management libraries +* feature#301: Add editable map notes with alignment and sharp text at logical map dimensions +* issue#300: Fix editor placement reset, destructive action controls and theme contrast +* feature#305: Reduce gallery preview cards by 20% while preserving generated thumbnail resolution +* feature#304: Add a searchable node icon picker and bundled enterprise site icons +* dev: Update plugin version identification to 2.0 * issue#299: Keep editor picker results open when browsing and allow changing an existing selection - * feature#298: Fit or stretch background images within the map canvas - * feature#297: Allow setting a map title when creating configuration files - * feature#296: Delete unused configuration files with confirmation and protect registered maps - * feature#295: Use a readable landscape preset for new blank maps - * feature#294: Expose bundled fonts and link comment colours in Map Style - * feature#293: Default new graph assignments to Time Graph View - * feature#292: Generate sharper gallery thumbnails by default without enlarging small maps - * issue#291: Improve map selector placement and themed viewer controls - * issue#290: Match editor toolbar colours to Cacti themes and keep pickers visible - * issue#289: Load viewer helpers explicitly before rendering maps - * issue#288: Preserve dynamic editor labels and cycle countdowns - * issue#278: Preserve map and editor navigation context across graph, viewer and management pages - * feature#279: Show larger responsive map preview cards with separated borders and centered titles - * issue#196: Restore cycle countdown, persistent fullscreen exit and reload fallback - * issue#276: Preserve query separators when saving node and link click URLs * feature#276: Simplify node and link editing with readable names, common controls, searchable interface assignment, advanced controls, and clear deletion warnings * issue#277: Allow map duplication when the debug column is absent while preserving its default when present * issue#151: Keep standalone editor controls visible and use theme-aware dialog contrast * issue#275: Load permitted editor picker results in bounded pages, search interface descriptions, and encode graph search terms * issue#274: Fit hover popups to their graph content and close them immediately when leaving map links, preserving graph proportions and meaningful captions - * refactor: On Cacti 1.2.32 and above, defer the editor's jQuery UI dialog (`ui.dialog`) styling to the core theme CSS; the plugin's `.ui-dialog-title`/`.ui-dialog-buttonset` font overrides have been split out of `css/editor.css` into a separate `css/editor-ui-dialog-legacy.css` that is only loaded on earlier Cacti releases * refactor: Relocate the plugin's database schema provisioning (`weathermap_setup_table()`) out of `setup.php` into a dedicated `includes/database.php` module (function move only, no behaviour change) * feature: Add a root `manifest.json` file manifest plus an upgrade-time `weathermap_prune_files()` that removes tombstoned and dev-only paths while protecting whitelisted user data (`configs/`, `output/`) and `.git*`, backed by a `tests/bin/validate-manifest.php` CI gate that fails on manifest drift diff --git a/INFO b/INFO index 696c609e..ec02abd7 100644 --- a/INFO +++ b/INFO @@ -1,6 +1,6 @@ [info] name = weathermap -version = 1.7 +version = 2.0 longname = Weathermap Plugin author = The Cacti Group, Howard Jones email = developers@cacti.net diff --git a/locales/po/cacti.pot b/locales/po/cacti.pot index 18edb16a..a89d7aa5 100644 --- a/locales/po/cacti.pot +++ b/locales/po/cacti.pot @@ -1,17 +1,17 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR The Cacti Group -# This file is distributed under the same license as the Cacti package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Cacti 1.7\n" -"Report-Msgid-Bugs-To: developers@cacti.net\n" -"POT-Creation-Date: 2026-10-15 10:19+1030\n" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-10-16 23:17+1030\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Cacti Developers \n" -"Language-Team: Cacti Developers \n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/weathermap-cacti-plugin-editor.php b/weathermap-cacti-plugin-editor.php index c5dbe434..98f1922c 100644 --- a/weathermap-cacti-plugin-editor.php +++ b/weathermap-cacti-plugin-editor.php @@ -310,7 +310,7 @@ - <?php print __('PHP Weathermap Editor %s', $weathermap_version, 'flowview'); ?> + <?php print __('PHP Weathermap Editor %s', $weathermap_version, 'weathermap'); ?> Date: Fri, 16 Oct 2026 23:30:26 +1030 Subject: [PATCH 2/4] Reference PR #314 in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 719a3950..c3171125 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ IMPORTANT NOTE: This version only works on CACTI 1.x++! * issue#300: Fix editor placement reset, destructive action controls and theme contrast * feature#305: Reduce gallery preview cards by 20% while preserving generated thumbnail resolution * feature#304: Add a searchable node icon picker and bundled enterprise site icons -* dev: Update plugin version identification to 2.0 +* dev#314: Update plugin version identification to 2.0 * issue#299: Keep editor picker results open when browsing and allow changing an existing selection * feature#298: Fit or stretch background images within the map canvas * feature#297: Allow setting a map title when creating configuration files From 4f6fbf86df8fe4f9c146420556cea35199c5a8e3 Mon Sep 17 00:00:00 2001 From: alcatron <27321443+alcatron@users.noreply.github.com> Date: Fri, 16 Oct 2026 23:40:56 +1030 Subject: [PATCH 3/4] Preserve translation template project metadata --- locales/po/cacti.pot | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/locales/po/cacti.pot b/locales/po/cacti.pot index a89d7aa5..33e42882 100644 --- a/locales/po/cacti.pot +++ b/locales/po/cacti.pot @@ -1,17 +1,17 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR The Cacti Group +# This file is distributed under the same license as the Cacti package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-16 23:17+1030\n" +"Project-Id-Version: Cacti 2.0\n" +"Report-Msgid-Bugs-To: developers@cacti.net\n" +"POT-Creation-Date: 2026-10-15 10:19+1030\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"Last-Translator: Cacti Developers \n" +"Language-Team: Cacti Developers \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" From f91bf18e861a71a9dba28f07e73236beb4d979db Mon Sep 17 00:00:00 2001 From: alcatron <27321443+alcatron@users.noreply.github.com> Date: Fri, 16 Oct 2026 23:44:57 +1030 Subject: [PATCH 4/4] Use established changelog categories throughout 2.0-dev --- CHANGELOG.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3171125..5b33c95e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ IMPORTANT NOTE: This version only works on CACTI 1.x++! * issue#300: Fix editor placement reset, destructive action controls and theme contrast * feature#305: Reduce gallery preview cards by 20% while preserving generated thumbnail resolution * feature#304: Add a searchable node icon picker and bundled enterprise site icons -* dev#314: Update plugin version identification to 2.0 +* feature#314: Update plugin version identification to 2.0 * issue#299: Keep editor picker results open when browsing and allow changing an existing selection * feature#298: Fit or stretch background images within the map canvas * feature#297: Allow setting a map title when creating configuration files @@ -46,21 +46,21 @@ IMPORTANT NOTE: This version only works on CACTI 1.x++! * issue#151: Keep standalone editor controls visible and use theme-aware dialog contrast * issue#275: Load permitted editor picker results in bounded pages, search interface descriptions, and encode graph search terms * issue#274: Fit hover popups to their graph content and close them immediately when leaving map links, preserving graph proportions and meaningful captions -* refactor: On Cacti 1.2.32 and above, defer the editor's jQuery UI dialog (`ui.dialog`) styling to the core theme CSS; the plugin's `.ui-dialog-title`/`.ui-dialog-buttonset` font overrides have been split out of `css/editor.css` into a separate `css/editor-ui-dialog-legacy.css` that is only loaded on earlier Cacti releases -* refactor: Relocate the plugin's database schema provisioning (`weathermap_setup_table()`) out of `setup.php` into a dedicated `includes/database.php` module (function move only, no behaviour change) +* issue: On Cacti 1.2.32 and above, defer the editor's jQuery UI dialog (`ui.dialog`) styling to the core theme CSS; the plugin's `.ui-dialog-title`/`.ui-dialog-buttonset` font overrides have been split out of `css/editor.css` into a separate `css/editor-ui-dialog-legacy.css` that is only loaded on earlier Cacti releases +* issue: Relocate the plugin's database schema provisioning (`weathermap_setup_table()`) out of `setup.php` into a dedicated `includes/database.php` module (function move only, no behaviour change) * feature: Add a root `manifest.json` file manifest plus an upgrade-time `weathermap_prune_files()` that removes tombstoned and dev-only paths while protecting whitelisted user data (`configs/`, `output/`) and `.git*`, backed by a `tests/bin/validate-manifest.php` CI gate that fails on manifest drift -* dev: Add xdebug coverage reporting to CI and enforce patch coverage of changed lines -* types: Bring every PHP file to PHPStan level 8 with zero errors, documenting parameter, return and property types throughout the legacy rendering engine without changing runtime behaviour (docblock typing only, so no new TypeErrors on the 1.2.x-era code base) -* bug: `upgrade_mapfiles()` reported the wrong filename (swapped `$objfile`/`$bgfile`) in the BACKGROUND/ICON "file not found on disk" warnings, and the ICON branch reused the BACKGROUND message text and log code -* bug: `viewthumb` requests served the full-size image because the handler compared an undefined `$action` instead of `get_request_var('action')` -* bug: the editor "Make a Copy" action (`newMapCopy()`) silently did nothing because it was missing `global $mapdir` -* bug: `WeatherMapLink::asJSON()` and `WeatherMapNode::asJSON()` emitted the literal text `Array` for `infourl`/`overliburl`/`overlibcaption` instead of indexing the per-direction arrays the way `asJS()` does -* bug: the poller's boost detection passed `'off'` as `read_config_option()`'s `$force` flag (a boolean), forcing an uncached database read every poll cycle -* bug: the SNMPv3 datasource never initialised its timeout/retry/abort-count settings (its `getMapGlobals()` helper was never called); these are now read from the map hints in `ReadData()` -* `WeatherMapBase::get_hint()` now accepts an optional default value, which the SNMPv3 datasource already expected to be honoured -* cleanup: remove permanently-disabled and never-implemented dead code (the php-rrdtool reader stub, the dsstats reverse-conversion block, several `if (1 == 0)` debug toggles, and the no-op metafile dumper) +* feature: Add xdebug coverage reporting to CI and enforce patch coverage of changed lines +* issue: Bring every PHP file to PHPStan level 8 with zero errors, documenting parameter, return and property types throughout the legacy rendering engine without changing runtime behaviour (docblock typing only, so no new TypeErrors on the 1.2.x-era code base) +* issue: `upgrade_mapfiles()` reported the wrong filename (swapped `$objfile`/`$bgfile`) in the BACKGROUND/ICON "file not found on disk" warnings, and the ICON branch reused the BACKGROUND message text and log code +* issue: `viewthumb` requests served the full-size image because the handler compared an undefined `$action` instead of `get_request_var('action')` +* issue: the editor "Make a Copy" action (`newMapCopy()`) silently did nothing because it was missing `global $mapdir` +* issue: `WeatherMapLink::asJSON()` and `WeatherMapNode::asJSON()` emitted the literal text `Array` for `infourl`/`overliburl`/`overlibcaption` instead of indexing the per-direction arrays the way `asJS()` does +* issue: the poller's boost detection passed `'off'` as `read_config_option()`'s `$force` flag (a boolean), forcing an uncached database read every poll cycle +* issue: the SNMPv3 datasource never initialised its timeout/retry/abort-count settings (its `getMapGlobals()` helper was never called); these are now read from the map hints in `ReadData()` +* issue: `WeatherMapBase::get_hint()` now accepts an optional default value, which the SNMPv3 datasource already expected to be honoured +* issue: remove permanently-disabled and never-implemented dead code (the php-rrdtool reader stub, the dsstats reverse-conversion block, several `if (1 == 0)` debug toggles, and the no-op metafile dumper) * security: Add a version-safe CSP nonce (`plugin_weathermap_csp_nonce()`) to every inline `