filter = Filter::fromQueryString(str_replace( 'comment_id', 'comment_internal_id', (string)$this->params )); $this->comments = $this->backend->select()->from('comment', array( 'id' => 'comment_internal_id', 'objecttype' => 'comment_objecttype', 'comment' => 'comment_data', 'author' => 'comment_author_name', 'timestamp' => 'comment_timestamp', 'type' => 'comment_type', 'persistent' => 'comment_is_persistent', 'expiration' => 'comment_expiration', 'host_name', 'service_description', 'host_display_name', 'service_display_name' ))->addFilter($this->filter)->getQuery()->fetchAll(); if (false === $this->comments) { throw new Zend_Controller_Action_Exception($this->translate('Comment not found')); } $this->getTabs()->add( 'comments', array( 'title' => $this->translate( 'Display detailed information about multiple comments.' ), 'icon' => 'comment', 'label' => $this->translate('Comments'), 'url' =>'monitoring/comments/show' ) )->activate('comments'); } /** * Display the detail view for a comment list */ public function showAction() { $this->view->comments = $this->comments; $this->view->listAllLink = Url::fromPath('monitoring/list/comments') ->setQueryString($this->filter->toQueryString()); $this->view->removeAllLink = Url::fromPath('monitoring/comments/remove-all') ->setParams($this->params); } /** * Display the form for removing a comment list */ public function removeAllAction() { $this->assertPermission('monitoring/command/comment/delete'); $this->view->comments = $this->comments; $this->view->listAllLink = Url::fromPath('monitoring/list/comments') ->setQueryString($this->filter->toQueryString()); $delCommentForm = new DeleteCommentsCommandForm(); $delCommentForm->setTitle($this->view->translate('Remove all Comments')); $delCommentForm->addDescription(sprintf( $this->translate('Confirm removal of %d comments.'), count($this->comments) )); $delCommentForm->setObjects($this->comments) ->setRedirectUrl(Url::fromPath('monitoring/list/downtimes')) ->handleRequest(); $this->view->delCommentForm = $delCommentForm; } }