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')) ); $html = ''; $sum = array('create' => 0, 'modify' => 0, 'delete' => 0); // TODO: Preview them? Like "hosta, hostb and 4 more would be... foreach ($this->rule->getExpectedModifications() as $object) { if ($object->shouldBeRemoved()) { $sum['delete']++; } elseif (! $object->hasBeenLoadedFromDb()) { $sum['create']++; } elseif ($object->hasBeenModified()) { $sum['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->sync_state === 'in-sync') { $this->setSuccessMessage( $this->translate('Nothing would change, this rule is still in sync') ); parent::onSuccess(); } else { $this->addError($this->translate('Checking this sync rule failed')); } } }