From f66ab8dae2f3d0418759f81a3a64dc9517a62449 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 15:17:31 +0200 Subject: Adding upstream version 1.10.2. Signed-off-by: Daniel Baumann --- application/forms/SyncCheckForm.php | 69 +++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 application/forms/SyncCheckForm.php (limited to 'application/forms/SyncCheckForm.php') diff --git a/application/forms/SyncCheckForm.php b/application/forms/SyncCheckForm.php new file mode 100644 index 0000000..8fb3bd0 --- /dev/null +++ b/application/forms/SyncCheckForm.php @@ -0,0 +1,69 @@ +rule = $rule; + return $this; + } + + public function setup() + { + $this->submitLabel = false; + $this->addElement('submit', 'submit', array( + 'label' => $this->translate('Check for changes'), + 'decorators' => array('ViewHelper') + )); + } + + public function onSuccess() + { + if ($this->rule->checkForChanges()) { + $this->notifySuccess( + $this->translate(('This Sync Rule would apply new changes')) + ); + $sum = [ + DirectorActivityLog::ACTION_CREATE => 0, + DirectorActivityLog::ACTION_MODIFY => 0, + DirectorActivityLog::ACTION_DELETE => 0 + ]; + + // TODO: Preview them? Like "hosta, hostb and 4 more would be... + foreach ($this->rule->getExpectedModifications() as $object) { + if ($object->shouldBeRemoved()) { + $sum[DirectorActivityLog::ACTION_DELETE]++; + } elseif (! $object->hasBeenLoadedFromDb()) { + $sum[DirectorActivityLog::ACTION_CREATE]++; + } elseif ($object->hasBeenModified()) { + $sum[DirectorActivityLog::ACTION_MODIFY]++; + } + } + + /** + if ($sum['modify'] === 1) { + $html .= $this->translate('One object would be modified' + } elseif ($sum['modify'] > 1) { + } + */ + $html = '
' . print_r($sum, 1) . '
'; + + $this->addHtml($html); + } elseif ($this->rule->get('sync_state') === 'in-sync') { + $this->notifySuccess( + $this->translate('Nothing would change, this rule is still in sync') + ); + } else { + $this->addError($this->translate('Checking this sync rule failed')); + } + } +} -- cgit v1.2.3