public function action_messages() { $current_page = (int) $this->request->query('page'); $message = $this->request->query('message'); $levels = $this->request->query('levels'); $date_from = $this->request->query('date-from'); $date_to = $this->request->query('date-to'); $limit = $this->request->query('limit'); $from_id = $this->request->query('last_message_id'); $all_matches_before_id = (int) $this->request->query('all_matches_before_id'); if ($current_page < 1) { $current_page = 1; } if (!is_array($levels)) { $levels = array(); } $all_matches_before_id = $from_id ? $all_matches_before_id : 0; $filters = $this->logreader->create_filters($message, $levels, $date_from, $date_to, $limit); $filters_for_autorefresh = $this->logreader->create_filters($message, $levels, $date_from, NULL, $limit); $view = View::factory('logreader/messages'); $view->levels = $this->logreader->get_levels(); $view->filters = $filters; $view->auto_refresh_time = $this->logreader_config->get_auto_refresh_interval(); $offset = ($current_page - 1) * $filters['limit']; $view->messages = $this->logreader->get_messages($filters['date-from'], $filters['date-to'], $filters['limit'], $offset, $filters['message']['text'] && $filters['message']['valid'] ? $filters['message']['text'] : NULL, $filters['levels'], array(), $from_id); $view->all_matches = $view->messages['all_matches']; $view->all_matches_before_id = $view->all_matches - $offset; $view->messages = $view->messages['messages']; $view->current_page = $current_page; $view->auto_refresh_url = LogReader_URL::api_base() . 'messages/?' . $filters_for_autorefresh['query_string']; $uri = LogReader_URL::base() . "?" . $filters['query_string']; $view->pages = LogReader_URL::pager($current_page, ceil(($view->all_matches + $all_matches_before_id) / $filters['limit']), $uri . "&page=%(page)s", $uri); $this->data['html'] = (string) $view; $this->data['all_matches'] = $view->all_matches; }
public function action_index() { $current_page = (int) $this->request->query('page'); $message = $this->request->query('message'); $levels = $this->request->query('levels'); $date_from = $this->request->query('date-from'); $date_to = $this->request->query('date-to'); $limit = $this->request->query('limit'); if ($current_page < 1) { $current_page = 1; } if (!is_array($levels)) { $levels = array(); } $filters = $this->logreader->create_filters($message, $levels, $date_from, $date_to, $limit); $filters_for_autorefresh = $this->logreader->create_filters($message, $levels, $date_from, NULL, $limit); $view = View::factory('logreader/index'); $view->stylesheets = array(LogReader_URL::static_base() . 'css/messages.css'); $view->javascripts = array(LogReader_URL::static_base() . 'js/messages.js'); $view->user = $this->user; $view->is_tester_available = $this->logreader_config->is_tester_available(); $view->content = View::factory('logreader/messages'); $view->content->name = 'messages'; $view->content->levels = $this->logreader->get_levels(); $view->content->filters = $filters; $view->content->auto_refresh_time = $this->logreader_config->get_auto_refresh_interval(); $offset = ($current_page - 1) * $filters['limit']; $view->content->messages = $this->logreader->get_messages($filters['date-from'], $filters['date-to'], $filters['limit'], $offset, $filters['message']['text'] && $filters['message']['valid'] ? $filters['message']['text'] : NULL, $filters['levels'], array(), NULL); $view->content->all_matches = $view->content->messages['all_matches']; $view->content->all_matches_before_id = $view->content->all_matches - $offset; $view->content->messages = $view->content->messages['messages']; $view->content->current_page = $current_page; $view->content->auto_refresh_url = LogReader_URL::api_base() . 'messages/?' . $filters_for_autorefresh['query_string']; $uri = LogReader_URL::base() . "?" . $filters['query_string']; $view->content->pages = LogReader_URL::pager($current_page, ceil($view->content->all_matches / $filters['limit']), $uri . "&page=%(page)s", $uri); $this->response->body($view); }
" target="_blank"><?php print $message['date'] . ' ' . $message['time']; ?> </a></td> <td class="level"><a href="<?php print LogReader_URL::log_message($message['id']); ?> " target="_blank"><span class="label label-<?php print $message['style']; ?> "><?php print $message['level']; ?> </span></a></td> <td class="message"><a href="<?php print LogReader_URL::log_message($message['id']); ?> " target="_blank"><div class="outer"><div><?php print htmlspecialchars($message['type']); ?> - <?php print htmlspecialchars($message['message']); ?> </div></div></a></td> </tr> <?php } ?> <?php } else { ?>
?> js/underscore-min.js"></script> <script src="<?php print LogReader_URL::static_base(); ?> js/jquery-1.11.1.min.js"></script> <script src="<?php print LogReader_URL::static_base(); ?> js/moment.min.js"></script> <script src="<?php print LogReader_URL::static_base(); ?> bootstrap/js/bootstrap.min.js"></script> <script src="<?php print LogReader_URL::static_base(); ?> bootstrap/js/bootstrap-datetimepicker.min.js"></script> <?php if (isset($javascripts) && $javascripts) { foreach ($javascripts as $javascript) { ?> <script src="<?php print $javascript; ?> "></script> <?php } } ?> </body>
/** * Test for getting page urls. * * @dataProvider provider_pager * @test * @covers LogReader_URL::pager * @param mixed $expected Expected result. * @param int $current Current page number. * @param int $total Number of pages. */ public function test_pager($expected, $current, $total) { $this->assertSame($expected, LogReader_URL::pager($current, $total, 'http://example.com/page/%(page)s/', 'http://example.com/')); }
<?php defined('SYSPATH') or die('No direct script access.'); $logreader_config = new LogReader_Config(Kohana::$config->load('kohana-logreader')->as_array()); LogReader_URL::set_configuration($logreader_config); // Set route to LogReader static files if static route is not a remote url if (!Valid::url($logreader_config->get_static_route())) { Route::set('logreader/media', $logreader_config->get_static_route() . '(/<file>)', array('file' => '.+'))->defaults(array('controller' => 'LogReader', 'action' => 'media')); } // Set route to the LogReader API Route::set('logreader/api', $logreader_config->get_route() . '/api(/<action>)')->defaults(array('controller' => 'LogReaderAPI', 'action' => 'index')); // Set route to the LogReader interface to a specific message Route::set('logreader/message', $logreader_config->get_route() . '/message/<message>', array('message' => '[0-9]+'))->defaults(array('controller' => 'LogReader', 'action' => 'message')); // Set route to the LogReader interface Route::set('logreader', $logreader_config->get_route() . '(/<action>)', array('action' => 'about|index'))->defaults(array('controller' => 'LogReader', 'action' => 'index'));