diff --git a/modules/pi_control/pages/console.php b/modules/pi_control/pages/console.php
index 91e5698..a90b17c 100644
--- a/modules/pi_control/pages/console.php
+++ b/modules/pi_control/pages/console.php
@@ -266,7 +266,9 @@ $runs = $pdo->query(
-
+
diff --git a/public/assets/js/app.js b/public/assets/js/app.js
index 10f2134..073c79a 100755
--- a/public/assets/js/app.js
+++ b/public/assets/js/app.js
@@ -266,8 +266,21 @@
const consoleNotice = document.querySelector('[data-console-notice]');
const tokenEl = document.querySelector('[data-console-token]');
if (consoleForm) {
+ const presetSelect = consoleForm.querySelector('select[name="terminal_preset_id"]');
+ const commandTextarea = consoleForm.querySelector('textarea[name="terminal_command_text"]');
+ if (presetSelect && commandTextarea) {
+ presetSelect.addEventListener('change', () => {
+ const opt = presetSelect.selectedOptions[0];
+ const cmd = opt && opt.dataset && opt.dataset.command ? opt.dataset.command : '';
+ if (cmd) {
+ commandTextarea.value = cmd;
+ }
+ });
+ }
+
const submitOpen = async () => {
const formData = new FormData(consoleForm);
+ if (presetSelect) formData.set('terminal_preset_id', '');
const url = new URL(window.location.href);
url.searchParams.set('open_console_json', '1');
const res = await fetch(url.toString(), { method: 'POST', body: formData, cache: 'no-store' });
@@ -287,6 +300,7 @@
const submitRun = async () => {
const formData = new FormData(consoleForm);
+ if (presetSelect) formData.set('terminal_preset_id', '');
const url = new URL(window.location.href);
url.searchParams.set('run_command_json', '1');
const res = await fetch(url.toString(), { method: 'POST', body: formData, cache: 'no-store' });