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