From 4537b9b7c9eb63bf3b2d5066d6c50e68f7de4956 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 11 Jan 2018 11:19:14 +0100 Subject: [statistics] Add "replace machines" feature (not linked to anywhere yet) --- modules-available/dnbd3/hooks/statistics-machine-replace.inc.php | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 modules-available/dnbd3/hooks/statistics-machine-replace.inc.php (limited to 'modules-available/dnbd3/hooks') diff --git a/modules-available/dnbd3/hooks/statistics-machine-replace.inc.php b/modules-available/dnbd3/hooks/statistics-machine-replace.inc.php new file mode 100644 index 00000000..5e4c4e75 --- /dev/null +++ b/modules-available/dnbd3/hooks/statistics-machine-replace.inc.php @@ -0,0 +1,6 @@ +} + * ('hostname', 'clientip', 'macaddr', 'locationid', 'lastseen'), ('moduleName', 'modeName')} */ public static function getRunMode($machineuuid, $returnData = self::DATA_MACHINE_DATA) { diff --git a/modules-available/runmode/lang/de/messages.json b/modules-available/runmode/lang/de/messages.json index 21b4b6ae..911d48d4 100644 --- a/modules-available/runmode/lang/de/messages.json +++ b/modules-available/runmode/lang/de/messages.json @@ -5,5 +5,6 @@ "machine-not-found": "Rechner {{0}} nicht gefunden", "machine-not-runmode": "Rechner {{0}} hatte keinen speziellen Betriebsmodus aktiviert", "machine-removed": "Rechner {{0}} entfernt", + "machine-still-assigned": "Rechner {{0}} ist noch im Betriebsmodus {{1}}; ignoriert.", "module-hasnt-runmode": "Modul {{0}} bietet keine speziellen Betriebsmodi" } \ No newline at end of file diff --git a/modules-available/runmode/lang/en/messages.json b/modules-available/runmode/lang/en/messages.json index 1985ca66..6d890428 100644 --- a/modules-available/runmode/lang/en/messages.json +++ b/modules-available/runmode/lang/en/messages.json @@ -5,5 +5,6 @@ "machine-not-found": "Client {{0}} not found", "machine-not-runmode": "No special mode of operation configured for client {{0}}", "machine-removed": "Removed client {{0}}", + "machine-still-assigned": "Client {{0}} still set to mode {{1}}, not assigning new mode.", "module-hasnt-runmode": "Module {{0}} doesn't supply any special mode of operation" } \ No newline at end of file diff --git a/modules-available/runmode/page.inc.php b/modules-available/runmode/page.inc.php index e26950d0..b94b8a31 100644 --- a/modules-available/runmode/page.inc.php +++ b/modules-available/runmode/page.inc.php @@ -42,6 +42,14 @@ class Page_RunMode extends Page } $active = 0; foreach ($machines as $machine) { + $oldMode = RunMode::getRunMode($machine, 0); + if ($oldMode !== false) { + $oldModule = RunMode::getModuleConfig($oldMode['module']); + if ($oldModule !== false && (!$oldModule->allowGenericEditor || $oldModule->deleteUrlSnippet !== false)) { + Message::addError('runmode.machine-still-assigned', $machine, $oldMode['module']); + continue; + } + } $ret = RunMode::setRunMode($machine, $module, $modeId, null, null); if ($ret) { $active++; @@ -105,10 +113,6 @@ class Page_RunMode extends Page Message::addError('module-hasnt-runmode', $moduleId); Util::redirect('?do=runmode'); } - if (!$config->allowGenericEditor) { - Message::addError('runmode.cannot-edit-module', $moduleId); - return; - } // Given modeId? $modeId = Request::get('modeid', false, 'string'); if ($modeId !== false) { @@ -170,9 +174,17 @@ class Page_RunMode extends Page { $moduleId = $module->getIdentifier(); $modeName = RunMode::getModeName($moduleId, $modeId); + $redirect = Request::get('redirect', '', 'string'); + if (empty($redirect)) { + $redirect = '?do=runmode'; + } if ($modeName === false) { Message::addError('invalid-modeid', $moduleId, $modeId); - Util::redirect('?do=runmode'); + Util::redirect($redirect); + } + if (!RunMode::getModuleConfig($moduleId)->allowGenericEditor) { + Message::addError('runmode.cannot-edit-module', $module); + Util::redirect($redirect); } Render::addTemplate('machine-selector', [ 'module' => $moduleId, @@ -180,7 +192,7 @@ class Page_RunMode extends Page 'moduleName' => $module->getDisplayName(), 'modeName' => $modeName, 'machines' => json_encode(RunMode::getForMode($module, $modeId, true)), - 'redirect' => Request::get('redirect', '', 'string'), + 'redirect' => $redirect, ]); } diff --git a/modules-available/runmode/templates/module-machine-list.html b/modules-available/runmode/templates/module-machine-list.html index 61bbbad9..283fb393 100644 --- a/modules-available/runmode/templates/module-machine-list.html +++ b/modules-available/runmode/templates/module-machine-list.html @@ -41,8 +41,8 @@ {{/canedit}} {{#deleteUrl}} - - + + {{/deleteUrl}} -- cgit v1.2.3-55-g7522 From eca6f7a4bd6061a4bea6f4e2dab7769aca3a8b18 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 18 Jan 2018 10:52:47 +0100 Subject: [statistics] Move replace-hook to statistics subdir --- modules-available/dnbd3/hooks/statistics-machine-replace.inc.php | 6 ------ modules-available/dnbd3/hooks/statistics/machine-replace.inc.php | 6 ++++++ .../roomplanner/hooks/statistics-machine-replace.inc.php | 7 ------- .../roomplanner/hooks/statistics/machine-replace.inc.php | 7 +++++++ modules-available/runmode/hooks/statistics-machine-replace.inc.php | 6 ------ modules-available/runmode/hooks/statistics/machine-replace.inc.php | 6 ++++++ modules-available/statistics/pages/replace.inc.php | 2 +- modules-available/syslog/hooks/statistics-machine-replace.inc.php | 5 ----- modules-available/syslog/hooks/statistics/machine-replace.inc.php | 5 +++++ 9 files changed, 25 insertions(+), 25 deletions(-) delete mode 100644 modules-available/dnbd3/hooks/statistics-machine-replace.inc.php create mode 100644 modules-available/dnbd3/hooks/statistics/machine-replace.inc.php delete mode 100644 modules-available/roomplanner/hooks/statistics-machine-replace.inc.php create mode 100644 modules-available/roomplanner/hooks/statistics/machine-replace.inc.php delete mode 100644 modules-available/runmode/hooks/statistics-machine-replace.inc.php create mode 100644 modules-available/runmode/hooks/statistics/machine-replace.inc.php delete mode 100644 modules-available/syslog/hooks/statistics-machine-replace.inc.php create mode 100644 modules-available/syslog/hooks/statistics/machine-replace.inc.php (limited to 'modules-available/dnbd3/hooks') diff --git a/modules-available/dnbd3/hooks/statistics-machine-replace.inc.php b/modules-available/dnbd3/hooks/statistics-machine-replace.inc.php deleted file mode 100644 index 5e4c4e75..00000000 --- a/modules-available/dnbd3/hooks/statistics-machine-replace.inc.php +++ /dev/null @@ -1,6 +0,0 @@ -file, $list); } diff --git a/modules-available/syslog/hooks/statistics-machine-replace.inc.php b/modules-available/syslog/hooks/statistics-machine-replace.inc.php deleted file mode 100644 index 6be0dd76..00000000 --- a/modules-available/syslog/hooks/statistics-machine-replace.inc.php +++ /dev/null @@ -1,5 +0,0 @@ -allowGenericEditor) { - Message::addError('runmode.cannot-edit-module', $module); + Message::addError('runmode.cannot-edit-module', $moduleId); Util::redirect($redirect); } Render::addTemplate('machine-selector', [ -- cgit v1.2.3-55-g7522