From 84c110647b84fc29fb8443d088c710ba8ecf42fe Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 21 Mar 2019 13:48:57 +0100 Subject: [sysconfig] Remember last modified date, show as tooltip --- .../sysconfig/inc/configmodule.inc.php | 26 ++++++++++++++++------ modules-available/sysconfig/inc/configtgz.inc.php | 10 +++++---- 2 files changed, 25 insertions(+), 11 deletions(-) (limited to 'modules-available/sysconfig/inc') diff --git a/modules-available/sysconfig/inc/configmodule.inc.php b/modules-available/sysconfig/inc/configmodule.inc.php index b6db9c4f..cc6b31f5 100644 --- a/modules-available/sysconfig/inc/configmodule.inc.php +++ b/modules-available/sysconfig/inc/configmodule.inc.php @@ -15,6 +15,10 @@ abstract class ConfigModule private $moduleArchive = false; private $moduleTitle = false; private $moduleStatus = false; + /** + * @var int + */ + private $dateline = 0; private $currentVersion = 0; /** * @var false|array Data of module, false if not initialized @@ -110,6 +114,7 @@ abstract class ConfigModule $instance->moduleId = $dbRow['moduleid']; $instance->moduleTitle = $dbRow['title']; $instance->moduleStatus = $dbRow['status']; + $instance->dateline = $dbRow['dateline']; if ($instance->moduleVersion() > $instance->currentVersion) { $instance->markFailed(); } @@ -140,9 +145,9 @@ abstract class ConfigModule public static function getAll($moduleType = false) { if ($moduleType === false) { - $ret = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath, contents, version, status FROM configtgz_module"); + $ret = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath, contents, version, status, dateline FROM configtgz_module"); } else { - $ret = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath, contents, version, status FROM configtgz_module " + $ret = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath, contents, version, status, dateline FROM configtgz_module " . " WHERE moduletype = :moduletype", array('moduletype' => $moduleType)); } if ($ret === false) @@ -290,13 +295,14 @@ abstract class ConfigModule return false; $this->moduleTitle = $title; // Insert - Database::exec("INSERT INTO configtgz_module (title, moduletype, filepath, contents, version, status) " - . " VALUES (:title, :type, '', :contents, :version, :status)", array( + Database::exec("INSERT INTO configtgz_module (title, moduletype, filepath, contents, version, status, dateline) " + . " VALUES (:title, :type, '', :contents, :version, :status, :now)", array( 'title' => $title, 'type' => $this->moduleType(), 'contents' => json_encode($this->moduleData), 'version' => 0, - 'status' => 'MISSING' + 'status' => 'MISSING', + 'now' => time(), )); $this->moduleId = Database::lastInsertId(); if (!is_numeric($this->moduleId)) @@ -324,12 +330,13 @@ abstract class ConfigModule if (!$this->validateConfig()) return false; // Update - Database::exec("UPDATE configtgz_module SET title = :title, contents = :contents, status = :status " + Database::exec("UPDATE configtgz_module SET title = :title, contents = :contents, status = :status, dateline = :now " . " WHERE moduleid = :moduleid LIMIT 1", array( 'moduleid' => $this->moduleId, 'title' => $title, 'contents' => json_encode($this->moduleData), - 'status' => 'OUTDATED' + 'status' => 'OUTDATED', + 'now' => time(), )); return true; } @@ -463,6 +470,11 @@ abstract class ConfigModule )) !== false; } + public function dateline_s() + { + return Util::prettyTime($this->dateline); + } + ################# Callbacks ############## /** diff --git a/modules-available/sysconfig/inc/configtgz.inc.php b/modules-available/sysconfig/inc/configtgz.inc.php index 7b042cdb..374cb5e0 100644 --- a/modules-available/sysconfig/inc/configtgz.inc.php +++ b/modules-available/sysconfig/inc/configtgz.inc.php @@ -75,10 +75,11 @@ class ConfigTgz $this->modules[] = $row; } // Update name - Database::exec("UPDATE configtgz SET title = :title, status = :status WHERE configid = :configid LIMIT 1", array( + Database::exec("UPDATE configtgz SET title = :title, status = :status, dateline = :now WHERE configid = :configid LIMIT 1", array( 'configid' => $this->configId, 'title' => $title, - 'status' => 'OUTDATED' + 'status' => 'OUTDATED', + 'now' => time(), )); return true; } @@ -277,10 +278,11 @@ class ConfigTgz do { $instance->file = CONFIG_TGZ_LIST_DIR . '/config-' . Util::sanitizeFilename($instance->configTitle) . '-' . mt_rand() . '-' . time() . '.tgz'; } while (file_exists($instance->file)); - Database::exec("INSERT INTO configtgz (title, filepath, status) VALUES (:title, :filepath, :status)", array( + Database::exec("INSERT INTO configtgz (title, filepath, status, dateline) VALUES (:title, :filepath, :status, :now)", array( 'title' => $instance->configTitle, 'filepath' => $instance->file, - 'status' => 'MISSING' + 'status' => 'MISSING', + 'now' => time(), )); $instance->configId = Database::lastInsertId(); $instance->modules = array(); -- cgit v1.2.3-55-g7522