예제 #1
0
 public function action_index()
 {
     $msg = $this->request->param('msg');
     if ($this->request->param('sort')) {
         $sort = $this->request->param('sort');
     } else {
         $sort = 'room_name';
     }
     if ($this->request->param('order')) {
         $order = $this->request->param('order');
     } else {
         $order = 'DESC';
     }
     $filters = array('filter_room_name' => $this->request->param('filter_room_name'), 'filter_number' => $this->request->param('filter_number'), 'filter_location' => $this->request->param('filter_location'));
     $total = Model_Room::rooms_total($filters);
     $count = $total;
     $pagination = Pagination::factory(array('total_items' => $count, 'items_per_page' => 5));
     $filters = array_merge($filters, array('sort' => $sort, 'order' => $order, 'limit' => $pagination->items_per_page, 'offset' => $pagination->offset));
     $rooms = Model_Room::rooms($filters);
     $sorting = new Sort(array('Name' => 'room_name', 'Number' => 'room_number', 'Location' => 'name', 'Action' => ''));
     $url = 'room/index';
     if ($this->request->param('filter_room_name')) {
         $url .= '/filter_room_name/' . $this->request->param('filter_room_name');
         $filter = $this->request->param('filter_room_name');
         $filter_select = 'filter_room_name';
     }
     if ($this->request->param('filter_number')) {
         $url .= '/filter_number/' . $this->request->param('filter_number');
         $filter = $this->request->param('filter_number');
         $filter_select = 'filter_number';
     }
     if ($this->request->param('filter_location')) {
         $url .= '/filter_location/' . $this->request->param('filter_location');
         $filter = $this->request->param('filter_location');
         $filter_select = 'filter_location';
     }
     $sorting->set_link($url);
     $sorting->set_order($order);
     $sorting->set_sort($sort);
     $heading = $sorting->render();
     $links = array('add_room' => Html::anchor('/room/add/', 'Create a Room', array('class' => 'createButton l')), 'locations' => Html::anchor('/location', 'Locations', array('class' => 'pageAction l')), 'delete' => URL::site('/room/delete/'));
     $table = array('heading' => $heading, 'data' => $rooms);
     // Render the pagination links
     $pagination = $pagination->render();
     $filter_room_name = $this->request->param('filter_room_name');
     $filter_url = URL::site('room/index');
     $view = View::factory('room/list')->bind('links', $links)->bind('table', $table)->bind('count', $count)->bind('pagination', $pagination)->bind('filter', $filter)->bind('filter_select', $filter_select)->bind('filter_url', $filter_url)->bind('msg', $msg);
     Breadcrumbs::add(array('System', Url::site('system')));
     Breadcrumbs::add(array('Room', Url::site('room')));
     $this->content = $view;
 }