diff --git a/docker/routlin-dash/app/config_utils.py b/docker/routlin-dash/app/config_utils.py
index d0f0eec..75940a7 100644
--- a/docker/routlin-dash/app/config_utils.py
+++ b/docker/routlin-dash/app/config_utils.py
@@ -4,6 +4,7 @@ from flask import session
CONFIGS_DIR = '/routlin_location'
DATA_DIR = '/data'
+WWW_DIR = '/www'
ACCOUNTS_FILE = f'{DATA_DIR}/authorized_accounts.json'
CONFIG_FILE = f'{CONFIGS_DIR}/config.json'
DASHBOARD_QUEUE = f'{CONFIGS_DIR}/.dashboard-queue'
diff --git a/docker/routlin-dash/app/view_page.py b/docker/routlin-dash/app/view_page.py
index 9e31e3d..fc4b1cd 100644
--- a/docker/routlin-dash/app/view_page.py
+++ b/docker/routlin-dash/app/view_page.py
@@ -4,7 +4,7 @@ import json, re, subprocess, os, sys, html as html_mod
import sanitize
import validation as validate
from datetime import datetime, timezone
-from config_utils import config_hash, get_pending_entries, get_dashboard_pending, get_dashboard_done, load_snapshot_for_uuid, load_all_snapshots, get_done_timestamps, queue_command, _find_cmd_in_queues, _entry_ts_from_queue, _apply_changes_immediately, _seconds_until_next_run, _format_timing, _is_locked, _lock_mtime, WEB_APP_DISPLAY_NAME, CONFIGS_DIR, DATA_DIR
+from config_utils import config_hash, get_pending_entries, get_dashboard_pending, get_dashboard_done, load_snapshot_for_uuid, load_all_snapshots, get_done_timestamps, queue_command, _find_cmd_in_queues, _entry_ts_from_queue, _apply_changes_immediately, _seconds_until_next_run, _format_timing, _is_locked, _lock_mtime, WEB_APP_DISPLAY_NAME, CONFIGS_DIR, DATA_DIR, WWW_DIR
bp = Blueprint('view_page', __name__)
@@ -56,6 +56,14 @@ def _load_css():
return ''
+def _load_icon(name):
+ try:
+ with open(f'{WWW_DIR}/icons/{name}.svg') as f:
+ return f.read().strip()
+ except Exception:
+ return ''
+
+
# Shell helper ======================================================
def _run(cmd):
@@ -672,9 +680,10 @@ def collect_tokens():
tokens['PENDING_ACTIONS_HTML'] = pending_html
tokens['NO_PENDING'] = 'true' if not pending_items else ''
tokens['APPLY_WARNING'] = (
- ''
- 'Applying actions will temporarily disrupt connections as network services are restarted.'
- ''
+ f''
+ f'{_load_icon("arrow-right")}'
+ f'Applying actions will temporarily disrupt connections as network services are restarted.'
+ f''
if pending_items else ''
)
done_ts_map = get_done_timestamps()
diff --git a/docker/routlin-dash/docker-compose.yml b/docker/routlin-dash/docker-compose.yml
index 72b4fd5..228b375 100644
--- a/docker/routlin-dash/docker-compose.yml
+++ b/docker/routlin-dash/docker-compose.yml
@@ -8,6 +8,7 @@ services:
- "25327:25327"
volumes:
- ./data:/data
+ - ./www:/www
- $HOME/routlin:/routlin_location
- /sys/class/net:/sys/class/net:ro
- /sys/devices:/sys/devices:ro