Source of file MaintenanceLockExtension.php
Size: 1,762 Bytes - Last Modified: 2021-12-23T10:50:08+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/MaintenanceLockExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | <?php namespace Symbiote\QueuedJobs\Extensions; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\DataExtension; use SilverStripe\SiteConfig\SiteConfig; use Symbiote\QueuedJobs\Services\QueuedJobService; /** * Class MaintenanceLockExtension * Adds a maintenance lock UI to SiteConfig * * @property SiteConfig|$this owner * @package Symbiote\QueuedJobs\Extensions */ class MaintenanceLockExtension extends DataExtension { /** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if (!QueuedJobService::config()->get('lock_file_enabled')) { return; } $fields->addFieldsToTab('Root.QueueSettings', [ $lockField = CheckboxField::create( 'MaintenanceLockEnabled', _t(__CLASS__ . '.LOCK_ENABLED', 'Maintenance Lock Enabled'), QueuedJobService::singleton()->isMaintenanceLockActive() ), ]); $lockField->setDescription( _t( __CLASS__ . '.LOCK_DESCRIPTION', 'Enable maintenance lock to prevent new queued jobs from being started' ) ); } /** * @param bool $value */ public function saveMaintenanceLockEnabled($value) { if (!QueuedJobService::config()->get('lock_file_enabled')) { return; } if ($value && !QueuedJobService::singleton()->isMaintenanceLockActive()) { QueuedJobService::singleton()->enableMaintenanceLock(); } if (!$value && QueuedJobService::singleton()->isMaintenanceLockActive()) { QueuedJobService::singleton()->disableMaintenanceLock(); } } } |