filter = Filter::fromQueryString(str_replace( 'comment_id', 'comment_internal_id', (string) $this->params )); $query = $this->backend->select()->from('comment', array( 'id' => 'comment_internal_id', 'objecttype' => 'object_type', 'comment' => 'comment_data', 'author' => 'comment_author_name', 'timestamp' => 'comment_timestamp', 'type' => 'comment_type', 'persistent' => 'comment_is_persistent', 'expiration' => 'comment_expiration', 'name' => 'comment_name', 'host_name', 'service_description', 'host_display_name', 'service_display_name' ))->addFilter($this->filter); $this->applyRestriction('monitoring/filter/objects', $query); $this->comments = $query; $this->view->title = $this->translate('Comments'); $this->getTabs()->add( 'comments', array( 'icon' => 'comment-empty', 'label' => $this->translate('Comments') . sprintf(' (%d)', $query->count()), 'title' => $this->translate( 'Display detailed information about multiple 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/delete-all') ->setParams($this->params); } /** * Display the form for removing a comment list */ public function deleteAllAction() { $this->assertPermission('monitoring/command/comment/delete'); $listCommentsLink = Url::fromPath('monitoring/list/comments') ->setQueryString('comment_type=(comment|ack)'); $delCommentForm = new DeleteCommentsCommandForm(); $delCommentForm->setTitle($this->view->translate('Remove all Comments')); $delCommentForm->addDescription(sprintf( $this->translate('Confirm removal of %d comments.'), $this->comments->count() )); $delCommentForm->setComments($this->comments->fetchAll()) ->setRedirectUrl($listCommentsLink) ->handleRequest(); $this->view->delCommentForm = $delCommentForm; $this->view->comments = $this->comments; $this->view->listAllLink = Url::fromPath('monitoring/list/comments') ->setQueryString($this->filter->toQueryString()); } }