diff --git a/CHANGELOG.md b/CHANGELOG.md
index 112d251e..533d73f0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,29 @@ accepts both, but the store flags the old spelling as deprecated
## Unreleased
+### Web UI: four more tabs are ES-module pages (stage 2)
+
+- Rotation, Operation History, Config Editor and Backup & Restore follow the
+ Cache tab (#703): each partial's inline `
diff --git a/web_interface/templates/v3/partials/durations.html b/web_interface/templates/v3/partials/durations.html
index 5c47266f..1c569605 100644
--- a/web_interface/templates/v3/partials/durations.html
+++ b/web_interface/templates/v3/partials/durations.html
@@ -1,5 +1,8 @@
{% import 'v3/partials/_macros.html' as ui %}
-
+{# No inline script: static/v3/js/pages/durations.js starts the rotation-order
+ list. The page registry (static/v3/js/core/registry.js) starts it when this
+ root appears and stops it when the partial is swapped away. #}
+
Rotation & Durations
Set the order plugins rotate on the display and how long each screen is shown. Durations are in seconds.
+{# No inline script: static/v3/js/pages/operation-history.js runs this page.
+ The page registry (static/v3/js/core/registry.js) starts it when this root
+ appears and stops it when the partial is swapped away. #}
+
Operation History
View history of plugin operations and configuration changes for debugging and auditing.
@@ -39,12 +42,12 @@
-
@@ -81,307 +84,12 @@
Showing 0 to 0 of 0 operations
+{# No inline script: static/v3/js/pages/raw-json.js runs this page. Its buttons
+ name an action and an editor (data-action, data-editor) for one delegated
+ listener. The page registry (static/v3/js/core/registry.js) starts it when
+ this root appears and stops it when the partial is swapped away. #}
+
@@ -8,17 +12,17 @@
{{ main_config_path }}
-
Format JSON
-
Validate JSON
-
Save
@@ -59,17 +63,17 @@
{{ secrets_config_path }}
-
Format JSON
-
Validate JSON
-
Save
@@ -101,218 +105,3 @@