diff --git a/system/blueprints/config/scheduler.yaml b/system/blueprints/config/scheduler.yaml
index 2c2eadd9e..b0c38a838 100644
--- a/system/blueprints/config/scheduler.yaml
+++ b/system/blueprints/config/scheduler.yaml
@@ -24,302 +24,90 @@ form:
validate:
type: commalist
- webhook_status_override:
- type: display
- label:
- content: |
-
- markdown: false
-
- status_enhanced:
- type: display
- label:
- content: |
-
-
modern_health:
type: display
label: Health Status
content: |
-
Checking health...
+
Loading...
markdown: false
@@ -329,93 +117,97 @@ form:
label: Active Triggers
content: |
-
Checking triggers...
+
Loading...
diff --git a/system/config/scheduler.yaml b/system/config/scheduler.yaml
index 8868532d2..2129c1b26 100644
--- a/system/config/scheduler.yaml
+++ b/system/config/scheduler.yaml
@@ -12,10 +12,8 @@ status: {}
# Custom scheduled jobs
custom_jobs: {}
-# Modern scheduler features (disabled by default for backward compatibility)
+# Modern scheduler features
modern:
- # Enable modern scheduler features
- enabled: false
# Number of concurrent workers (1 = sequential execution like legacy)
workers: 1
diff --git a/system/src/Grav/Common/Scheduler/Scheduler.php b/system/src/Grav/Common/Scheduler/Scheduler.php
index 4a1963a70..68f957382 100644
--- a/system/src/Grav/Common/Scheduler/Scheduler.php
+++ b/system/src/Grav/Common/Scheduler/Scheduler.php
@@ -598,12 +598,29 @@ class Scheduler
/**
* Check if webhook is enabled
- *
+ *
* @return bool
*/
public function isWebhookEnabled(): bool
{
- return $this->webhookEnabled;
+ // Requires both: the config toggle enabled AND the scheduler-webhook plugin installed
+ if (!$this->webhookEnabled) {
+ return false;
+ }
+
+ $grav = Grav::instance();
+ return (bool) $grav['config']->get('plugins.scheduler-webhook.enabled', false);
+ }
+
+ /**
+ * Check if the scheduler-webhook plugin is installed and enabled
+ *
+ * @return bool
+ */
+ public function isWebhookPluginReady(): bool
+ {
+ $grav = Grav::instance();
+ return (bool) $grav['config']->get('plugins.scheduler-webhook.enabled', false);
}
/**
@@ -1008,7 +1025,7 @@ class Scheduler
'failed_jobs_24h' => 0,
'scheduled_jobs' => count($enabledJobs),
'jobs_due' => $dueJobs,
- 'webhook_enabled' => $this->webhookEnabled,
+ 'webhook_enabled' => $this->isWebhookEnabled(),
'health_check_enabled' => $this->healthEnabled,
'timestamp' => date('c'),
];