* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 * @author Icinga Development Team */ // {{{ICINGA_LICENSE_HEADER}}} namespace Monitoring\Form\Command; use \Icinga\Web\Form\Element\Note; use \Icinga\Protocol\Commandpipe\Comment; /** * Form for adding comment commands */ class CommentForm extends CommandForm { /** * Create the form's elements */ protected function create() { $this->addElement( new Note( array( 'name' => 'commanddescription', 'value' => t('This command is used to add a comment to hosts or services.') ) ) ); $this->addElement($this->createAuthorField()); $this->addElement( 'textarea', 'comment', array( 'label' => t('Comment'), 'rows' => 4, 'required' => true ) ); $this->addElement( new Note( array( 'name' => 'commentnote', 'value' => t( 'If you work with other administrators, you may find it useful to share information ' . 'about a host or service that is having problems if more than one of you may be working on ' . 'it. Make sure you enter a brief description of what you are doing.' ) ) ) ); $this->addElement( 'checkbox', 'persistent', array( 'label' => t('Persistent'), 'value' => true ) ); $this->addElement( new Note( array( 'name' => 'persistentnote', 'value' => t( 'If you uncheck this option, the comment will automatically be deleted the next time ' . 'Icinga is restarted.' ) ) ) ); $this->setSubmitLabel(t('Post comment')); parent::create(); } /** * Create comment from request data * * @return \Icinga\Protocol\Commandpipe\Comment */ public function getComment() { return new Comment($this->getAuthorName(), $this->getValue('comment'), $this->getValue('persistent')); } }