diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Service/StatusService.php | 27 | ||||
-rw-r--r-- | lib/Settings/AdminSettings.php | 14 |
2 files changed, 39 insertions, 2 deletions
diff --git a/lib/Service/StatusService.php b/lib/Service/StatusService.php index a15f30c76..69a621e3c 100644 --- a/lib/Service/StatusService.php +++ b/lib/Service/StatusService.php @@ -16,6 +16,9 @@ namespace OCA\News\Service; use OCA\News\AppInfo\Application; use OCP\IConfig; use OCP\IDBConnection; +use OCP\BackgroundJob\IJobList; +use OCP\Util; +use OCA\News\Cron\UpdaterJob; class StatusService { @@ -25,14 +28,18 @@ class StatusService private $appName; /** @var IDBConnection */ private $connection; + /** @var IJobList */ + private $jobList; public function __construct( IConfig $settings, - IDBConnection $connection + IDBConnection $connection, + IJobList $jobList ) { $this->settings = $settings; $this->connection = $connection; $this->appName = Application::NAME; + $this->jobList = $jobList; } /** @@ -76,4 +83,22 @@ class StatusService ] ]; } + + /** + * Get last update time + */ + public function getUpdateTime(): int + { + + $time = 0; + + [$major, $minor, $micro] = Util::getVersion(); + + if ($major >= 26) { + $myJobList = $this->jobList->getJobsIterator(UpdaterJob::class, 1, 0); + $time = $myJobList->current()->getLastRun(); + } + + return $time; + } } diff --git a/lib/Settings/AdminSettings.php b/lib/Settings/AdminSettings.php index c29b5d46c..5e4e83920 100644 --- a/lib/Settings/AdminSettings.php +++ b/lib/Settings/AdminSettings.php @@ -3,6 +3,7 @@ namespace OCA\News\Settings; use OCA\News\AppInfo\Application; +use OCA\News\Service\StatusService; use OCP\AppFramework\Http\TemplateResponse; use OCP\IConfig; use OCP\Settings\ISettings; @@ -17,11 +18,14 @@ class AdminSettings implements ISettings private $config; /** @var IInitialState */ private $initialState; + /** @var StatusService */ + private $service; - public function __construct(IConfig $config, IInitialState $initialState) + public function __construct(IConfig $config, IInitialState $initialState, StatusService $service) { $this->config = $config; $this->initialState = $initialState; + $this->service = $service; } public function getForm() @@ -33,6 +37,14 @@ class AdminSettings implements ISettings (string)Application::DEFAULT_SETTINGS[$setting] )); } + + if ($this->service->isCronProperlyConfigured()) { + $lastUpdate = $this->service->getUpdateTime(); + } else { + $lastUpdate = 0; + } + + $this->initialState->provideInitialState("lastCron", $lastUpdate); return new TemplateResponse(Application::NAME, 'admin', []); } |