Revize 329
Přidáno uživatelem Michal Kliment před asi 15 roky(ů)
freenetis/trunk/kohana/application/models/device.php | ||
---|---|---|
class Device_Model extends ORM {
|
||
|
||
protected $has_many = array('ifaces','ports');
|
||
protected $belongs_to = array('user');
|
||
protected $belongs_to = array('user');
|
||
public $arr_sql = array('id' => 'd.id', 'name' => 'd.name', 'user' => 'concat(users.name,\' \',users.surname)', 'device_type'=>'d.type', 'member_id' => 'users.member_id');
|
||
|
||
public function count_all_devices($filter_values = array())
|
||
{
|
||
$where = '';
|
||
|
||
$where = '';
|
||
|
||
if (count($filter_values) > 0)
|
||
$where .= 'WHERE ';
|
||
$where .= 'WHERE ';
|
||
|
||
foreach($filter_values as $key => $value)
|
||
{
|
||
if($key!='submit')
|
||
{
|
||
foreach($filter_values as $key => $value)
|
||
{
|
||
if($key!='submit')
|
||
{
|
||
if($where!='WHERE ')
|
||
$where .= ' AND ';
|
||
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
|
||
}
|
||
}
|
||
return self::$db->query('SELECT
|
||
$where .= ' AND ';
|
||
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
|
||
}
|
||
}
|
||
$devices = self::$db->query('SELECT
|
||
d.id, IFNULL(f.translated_term, e.value) as type, d.name,
|
||
CONCAT(u.name, \' \', u.surname) AS u_name,
|
||
i.mac, s.name AS segment_name, ip.ip_address
|
||
... | ... | |
LEFT JOIN ifaces i ON d.id = i.device_id
|
||
LEFT JOIN segments s ON s.id = i.segment_id
|
||
LEFT JOIN ip_addresses ip ON i.id = ip.iface_id
|
||
'.$where.'
|
||
ORDER BY '.$order_by.' '.$order_by_direction.'
|
||
LIMIT '.$limit_from.','.$limit_results
|
||
);
|
||
'.$where
|
||
);
|
||
return count($devices);
|
||
} // end of count_all_devices
|
||
|
||
... | ... | |
public function get_all_devices($limit_from = 0, $limit_results = 50, $order_by = 'devices.id', $order_by_direction = 'ASC', $user_id = null, $filters = array())
|
||
{
|
||
if (in_array($order_by, $this->arr_sql))
|
||
$order_by = $this->arr_sql[$order_by];
|
||
$where = '';
|
||
$order_by = $this->arr_sql[$order_by];
|
||
$where = '';
|
||
if(count($filters) > 0)
|
||
$where .= 'WHERE ';
|
||
foreach($filters as $key => $value)
|
||
{
|
||
if($key!='submit')
|
||
{
|
||
$where .= 'WHERE ';
|
||
foreach($filters as $key => $value)
|
||
{
|
||
if($key!='submit')
|
||
{
|
||
if($where!='WHERE ')
|
||
$where .= ' AND ';
|
||
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
|
||
}
|
||
}
|
||
if (isset($user_id))
|
||
{
|
||
if($where=='') $where .= 'WHERE d.user_id='.$user_id.'';
|
||
else $where .= ' AND d.user_id'.$user_id.'';
|
||
}
|
||
$where .= ' AND ';
|
||
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
|
||
}
|
||
}
|
||
if (isset($user_id))
|
||
{
|
||
if($where=='') $where .= 'WHERE d.user_id='.$user_id.'';
|
||
else $where .= ' AND d.user_id'.$user_id.'';
|
||
}
|
||
return self::$db->query('SELECT
|
||
d.id, IFNULL(f.translated_term, e.value) as type, d.name,
|
||
CONCAT(u.name, \' \', u.surname) AS u_name,
|
||
i.mac, s.name AS segment_name, ip.ip_address
|
||
FROM devices d
|
||
JOIN users u ON d.user_id = u.id
|
||
LEFT JOIN enum_types e on d.type = e.id
|
||
LEFT JOIN enum_types e on d.type = e.id
|
||
LEFT JOIN (SELECT * FROM translations WHERE lang = "'.Config::item('locale.lang').'") f on e.value = f.original_term
|
||
LEFT JOIN ifaces i ON d.id = i.device_id
|
||
LEFT JOIN segments s ON s.id = i.segment_id
|
freenetis/trunk/kohana/application/models/member.php | ||
---|---|---|
'members.town', 'members.ZIP_code',
|
||
'members.type as typem', 'members.qos_ceil', 'members.qos_rate',
|
||
'members.entrance_fee', 'members.debt_payment_rate', 'members.entrance_fee_left',
|
||
'members.must_pay_regular_fee', 'members.current_credit',
|
||
'members.entrance_date', 'members.comment',
|
||
'enum_types.value as member_type',
|
||
'users.id', 'member_id',
|
freenetis/trunk/kohana/application/models/job.php | ||
---|---|---|
);
|
||
}
|
||
|
||
public function get_all_works($limit_from = 0, $limit_results = 50, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
return self::$db->query('SELECT j.id, concat(u.name,\' \',u.surname) as user_name, j.description, j.date, j.hours, j.km FROM jobs j
|
||
LEFT JOIN users u ON j.user_id = u.id ORDER BY '.$order_by.' '.$order_by_direction);
|
||
}
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/controllers/welcome.php | ||
---|---|---|
<?php defined('SYSPATH') or die('No direct script access.');
|
||
/**
|
||
* Default Kohana controller.
|
||
*/
|
||
class Welcome_Controller extends Controller {
|
||
|
||
public function index()
|
||
{
|
||
$welcome = new View('welcome');
|
||
$welcome->message = 'This is the default Kohana index page. You can edit <tt>application/controllers/welcome.php</tt> now.';
|
||
$welcome->render(TRUE);
|
||
}
|
||
|
||
}
|
freenetis/trunk/kohana/application/controllers/works.php | ||
---|---|---|
|
||
function index()
|
||
{
|
||
url::redirect(url_lang::base().'works/uncorfirmed');
|
||
url::redirect(url_lang::base().'works/show_all');
|
||
|
||
}
|
||
|
||
function show_all($limit_results = 200, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
|
||
{
|
||
|
||
// gets new selector
|
||
if (is_numeric($this->input->get('record_per_page')))
|
||
$limit_results = (int) $this->input->get('record_per_page');
|
||
|
||
// parameters control
|
||
$allowed_order_type = array('id','user_name','description','date','hours','km');
|
||
if (!in_array(strtolower($order_by), $allowed_order_type)) $order_by = 'id';
|
||
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc') $order_by_direction = 'asc';
|
||
|
||
$work_model = new Job_Model();
|
||
|
||
$total_works = count($work_model->find_all());
|
||
|
||
if (($sql_offset = ($page - 1) * $limit_results) > $total_works)
|
||
$sql_offset = 0;
|
||
|
||
$works = $work_model->get_all_works($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
|
||
|
||
// create grid
|
||
$grid = new Grid(url_lang::base().'works/show_all', '', array(
|
||
//'separator' => '',
|
||
'use_paginator' => true,
|
||
'use_selector' => true,
|
||
'current' => $limit_results, //current selected 'records_per_page' value
|
||
'selector_increace' => 200, // increace
|
||
'selector_min' => 200, // minimum where selector start
|
||
'selector_max_multiplier' => 10,
|
||
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
|
||
'total_items' => $total_works, // use db count query here of course
|
||
'items_per_page' => $limit_results, // it may be handy to set defaults for stuff like this in config/pagination.php
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results
|
||
));
|
||
|
||
$grid->order_field('id')->label(url_lang::lang('texts.Id'));
|
||
$grid->order_field('user_name')->label(url_lang::lang('texts.User'));
|
||
$grid->order_field('description')->label(url_lang::lang('texts.Description'));
|
||
$grid->order_field('date')->label(url_lang::lang('texts.Date'));
|
||
$grid->order_field('hours')->label(url_lang::lang('texts.Hours'));
|
||
$grid->order_field('km')->label(url_lang::lang('texts.km'));
|
||
|
||
$grid->datasource($works);
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.List of all works');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->content = new View('show_all');
|
||
$view->content->headline = url_lang::lang('texts.List of all works');
|
||
$view->content->table = $grid;
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
|
||
function uncorfirmed()
|
||
{
|
||
if (!$this->acl_check_new('Users_Controller', 'work')) Controller::error(1);
|
freenetis/trunk/kohana/application/libraries/MY_Controller.php | ||
---|---|---|
|
||
$acc_menu = '';
|
||
if ($this->acl_check_2D('menu', 'unconfirmed_works'))
|
||
$acc_menu = '<li>'.html::anchor(url_lang::base().'works/uncorfirmed/', url_lang::lang('texts.Unconfirmed works')).'</li>';
|
||
$acc_menu = '<li>'.html::anchor(url_lang::base().'works/show_all', url_lang::lang('texts.Works')).'</li>';
|
||
|
||
if ($this->acl_check_2D('menu', 'unidentified_transfers'))
|
||
$acc_menu .= '<li>'.html::anchor(url_lang::base().'bank_transfers/unidentified_transfers/', url_lang::lang('texts.Unidentified transfers')).'</li>';
|
Také k dispozici: Unified diff
Opraveny mensi chyby, smazan nepotrebny kontroler welcome, mirne upraveny prace...