Revize 399
Přidáno uživatelem Jiří Sviták před asi 15 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'administration' => 'Administrace',
|
||
'administration of additional contacts' => 'Přidávání/editace dalších kontaktních informací',
|
||
'administration of members registrations' => 'Administrace přihlášek členů',
|
||
'admins' => 'Správci',
|
||
'admin' => 'Správce',
|
||
'admin has been successfully removed from this device' => 'Správce byl úspěšně odebrán od tohoto zařízení.',
|
||
'admins' => 'Správci',
|
||
'amount' => 'Částka',
|
||
'antenna' => 'Anténa',
|
||
'applicant' => 'Čekatel na členství',
|
||
... | ... | |
'display member' => 'Zobraz člena',
|
||
'display user' => 'Zobraz uživatele',
|
||
'do transfer' => 'Proveď transakci',
|
||
'do you want to deduct this member\'s entrance fee' => 'Chcete strhnout vstupní příspěvek tohoto člena',
|
||
'do you want to delete this device' => 'Chcete smazat toto zařízení',
|
||
'do you want to delete this interface' => 'Chcete smazat toto rozhraní',
|
||
'do you want to delete this ip address' => 'Chcete smazat tuto IP adresu',
|
||
... | ... | |
'email' => 'E-mail',
|
||
'end membership' => 'Ukončit členství',
|
||
'engineer' => 'Technik',
|
||
'engineer has been successfully removed from this device' => 'Technik byl úspěšně odebrán od tohoto zařízení.',
|
||
'engineers' => 'Technici',
|
||
'entrance date' => 'Datum vstupu',
|
||
'entrance_date' => 'Datum vstupu',
|
||
... | ... | |
'fill in at least one from prices' => 'Vyplňte alespoň jednu z cen.',
|
||
'filter' => 'Filtrovat',
|
||
'finances' => 'Finance',
|
||
'first engineer cannot be removed from this device' => 'První technik nemůže být odebrán od tohoto zařízení.',
|
||
'former member' => 'Bývalý člen',
|
||
'frequence' => 'Frekvence',
|
||
'from/to' => 'Od/komu',
|
freenetis/trunk/kohana/application/models/menu.php | ||
---|---|---|
<?php
|
||
class Menu_Model extends ORM {
|
||
|
||
public function field_exists($master)
|
||
{
|
||
return (bool) self::$db->where('master_id', $master)->count_records('menus');
|
||
}
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/models/bank_fee.php | ||
---|---|---|
<?php
|
||
class Bank_fee_Model extends ORM {
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/models/work.php | ||
---|---|---|
<?php
|
||
class Work_Model extends ORM {
|
||
|
||
function get_works($id)
|
||
{
|
||
$query = $this->db->from("works")->where("user_id", $id)->get();
|
||
|
||
return (count($query) > 0) ? $query : 0;
|
||
}
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/models/login.php | ||
---|---|---|
<?php
|
||
class Login_Model extends Model {
|
||
|
||
public function __construct()
|
||
{
|
||
parent::__construct(); //will load database library into $this->db, you can leave it out if you don't need it
|
||
}
|
||
|
||
function get_where($id)
|
||
{
|
||
$query = $this->db->getwhere('users', array('id_member'=>$id));
|
||
return $query;
|
||
}
|
||
|
||
function get_user($id)
|
||
{
|
||
// $this->db->select('name');
|
||
|
||
$query = $this->db->getwhere('users', array('ID' => $id),1);
|
||
$row = $query->result_array(FALSE);
|
||
return $row[0];
|
||
}
|
||
|
||
function Edit($id, $data){
|
||
$this->db->where('ID', $id);
|
||
$result = $this->db->update('users', $data);
|
||
// Return
|
||
if($result){
|
||
return false;
|
||
} else {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/models/port_belongs_to_vlan.php | ||
---|---|---|
<?php
|
||
class Port_belongs_to_vlan_Model extends ORM {
|
||
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/models/device.php | ||
---|---|---|
|
||
}
|
||
|
||
public function get_device_names($device_name)
|
||
{
|
||
return self::$db->query("SELECT id, name as device_name FROM devices WHERE name LIKE '" . $device_name . "%' GROUP BY name");
|
||
}
|
||
public function get_device_names($device_name)
|
||
{
|
||
return self::$db->query("SELECT id, name as device_name FROM devices WHERE name LIKE '" . $device_name . "%' GROUP BY name");
|
||
}
|
||
|
||
/**
|
||
* @author Jiri Svitak
|
||
* Function deletes relations from pivot table.
|
||
* @param $port_id
|
||
* @return unknown_type
|
||
*/
|
||
public function delete_from_pivot_table($device_id)
|
||
{
|
||
self::$db->query("
|
||
DELETE FROM device_engineers
|
||
WHERE device_id = $device_id
|
||
");
|
||
self::$db->query("
|
||
DELETE FROM device_admins
|
||
WHERE device_id = $device_id
|
||
");
|
||
}
|
||
|
||
}
|
||
|
freenetis/trunk/kohana/application/controllers/menu.php | ||
---|---|---|
<?php
|
||
class Menu_Controller extends Controller {
|
||
|
||
private $myMenu;
|
||
public $arr;
|
||
|
||
function index()
|
||
{
|
||
|
||
|
||
//verze 1
|
||
//echo $this->sestav_menu(0);
|
||
|
||
//verze 2
|
||
$this->myMenu = '';
|
||
$model = new Menu_Model;
|
||
$i = 0;
|
||
foreach($model->find_all() as $menu){
|
||
$arr[$i]['name'] = $menu->name;
|
||
$arr[$i]['url'] = $menu->url;
|
||
$arr[$i]['id'] = $menu->id;
|
||
$arr[$i]['master_id'] = $menu->master_id;
|
||
$i++;
|
||
}
|
||
$myMenu = $this->sestav_menu2($arr,0);
|
||
echo str_replace('<ul></ul>', '', $myMenu);
|
||
|
||
}
|
||
|
||
function sestav_menu2($arr,$master)
|
||
{
|
||
|
||
$this->myMenu .= '<ul>';
|
||
|
||
foreach ($arr as $ind=>$val) {
|
||
//echo $ind."<br>";
|
||
if ($val['master_id'] == $master) {
|
||
$this->myMenu .= '<li>';
|
||
$this->myMenu .= html::anchor(url_lang::base().$val['url'], $val['name']).' '.$val['id'];
|
||
unset($arr[$ind]);
|
||
$this->sestav_menu2($arr,$val['id']);
|
||
$this->myMenu .= '</li>';
|
||
}
|
||
}
|
||
$this->myMenu .= '</ul>';
|
||
|
||
return $this->myMenu;
|
||
}
|
||
|
||
function sestav_menu($master)
|
||
{
|
||
$model = new Menu_Model;
|
||
|
||
if ($model->field_exists($master)) $this->myMenu .= '<ul>';
|
||
foreach($model->find_all_by_master_id($master) as $menu){
|
||
$this->myMenu .= '<li>';
|
||
$this->myMenu .= $menu->name;
|
||
$this->sestav_menu($menu->id);
|
||
$this->myMenu .= '</li>';
|
||
}
|
||
if ($model->field_exists($master)) $this->myMenu .= '</ul>';
|
||
|
||
return $this->myMenu;
|
||
}
|
||
}
|
||
?>
|
freenetis/trunk/kohana/application/controllers/members.php | ||
---|---|---|
{
|
||
if (isset($member_id))
|
||
{
|
||
|
||
if(!$this->acl_check_view(get_class($this),'members',$member_id))
|
||
Controller::Error(1);
|
||
|
||
$model_members = new Member_Model();
|
||
$member_data = $model_members->get_member($member_id)->current();
|
||
|
||
$model_translation = new Translation_Model();
|
||
$member_type = $model_translation->get_translation($member_data->member_type);
|
||
|
||
$model_contacts = new Contact_Model();
|
||
$contacts = $model_contacts->find_all_by_user_id($member_data->id);
|
||
|
||
$enum_type_model = new Enum_type_Model();
|
||
|
||
// get balance of member's analytic account
|
||
$model_accounts = new Account_Model();
|
||
$account = $model_accounts->where('member_id', $member_id)->find();
|
||
$account_balance = $account->get_account_balance($account->id);
|
||
|
||
$arr_contact_types = array();
|
||
foreach($contacts as $i => $contact) {
|
||
foreach($contacts as $i => $contact)
|
||
{
|
||
$arr_contact_types[$i] = $enum_type_model->get_value($contact->type);
|
||
}
|
||
|
||
// users
|
||
$model_users = new User_Model();
|
||
$users = $model_users->orderby($order_by,$order_by_direction)->find_all_by_member_id($member_id);
|
||
|
||
$user_grid = new Grid(url_lang::base().'members', null,array(
|
||
'separator' => '<br /><br />',
|
||
'use_paginator' => false,
|
||
... | ... | |
$user_grid->action_field('id') ->label(url_lang::lang('texts.Password'))->url(url_lang::base().'users/change_password')->action(url_lang::lang('texts.Edit'));
|
||
if ($this->acl_check_edit('Users_Controller', 'application_password', $member_id))
|
||
$user_grid->action_field('id') ->label(url_lang::lang('texts.Application password'))->url(url_lang::base().'users/change_application_password')->action(url_lang::lang('texts.Edit'));
|
||
|
||
$user_grid->datasource($users);
|
||
|
||
// membership interrupts
|
||
$mi_model = new Membership_interrupt_Model();
|
||
$mis = $mi_model->where('member_id', $member_id)->orderby('from')->find_all();
|
||
... | ... | |
if ($this->acl_check_delete(get_class($this), 'membership_interrupts', $member_id))
|
||
$mi_grid->action_field('id') ->label(url_lang::lang('texts.Membership interrupts'))->url(url_lang::base().'membership_interrupts/delete')->action(url_lang::lang('texts.Delete'));
|
||
$mi_grid->datasource($mis);
|
||
|
||
// member has only one analytic account
|
||
// he should be able to add project accounts
|
||
// he should be able to see his bank accounts
|
||
/*
|
||
$acc_model = new Account_Model();
|
||
$accs = $acc_model->where('member_id', $member_id)->find_all();
|
||
$acc_grid = new Grid(url_lang::base().'members', null, array(
|
||
'separator' => '<br /><br />',
|
||
'use_paginator' => false,
|
||
'use_selector' => false,
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'variables' => $member_id.'/'
|
||
));
|
||
// adding account, to do - access rights
|
||
//if ($this->acl_check_new(get_class($this), 'accounts', $member_id))
|
||
$acc_grid->add_new_button(url_lang::base().'accounts/add_credit_account/'.$member_id, url_lang::lang('texts.Add new credit account'));
|
||
$acc_grid->field('id')->label('ID');
|
||
$acc_grid->field('name')->label(url_lang::lang('texts.Account name'));
|
||
$acc_grid->field('comment')->label(url_lang::lang('texts.Comment'));
|
||
// to do - access rights
|
||
//if ($this->acl_check_edit(get_class($this), 'membership_interrupts', $member_id))
|
||
$acc_grid->action_field('id')->label(url_lang::lang('texts.Transfers'))->url(url_lang::base().'money_transfers/show_by_account')->action(url_lang::lang('texts.Show'));
|
||
//if ($this->acl_check_delete(get_class($this), 'membership_interrupts', $member_id))
|
||
$acc_grid->action_field('id') ->label(url_lang::lang('texts.Account'))->url(url_lang::base().'accounts/delete')->action(url_lang::lang('texts.Delete'));
|
||
$acc_grid->datasource($accs);
|
||
*/
|
||
|
||
// view for this
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = new View('members/show');
|
||
... | ... | |
$view->content->users = $user_grid;
|
||
$view->content->mis = $mi_grid;
|
||
$view->content->account_balance = $account_balance;
|
||
|
||
// bank and projects accounts should be here
|
||
//$view->content->accs = $acc_grid;
|
||
|
||
foreach($member_data as $key=>$val)
|
||
{
|
||
// IE dont render TD border if content is NULL, so we must put nbsp into empty fields.
|
||
... | ... | |
$view->content->contacts = $contacts;
|
||
$view->content->message = $this->session->get_once('message');
|
||
$view->render(TRUE);
|
||
|
||
}
|
||
else
|
||
{
|
||
... | ... | |
{
|
||
if (!$this->acl_check_new(get_class($this),'members'))
|
||
Controller::error(1);
|
||
|
||
$enum_types = new Enum_type_Model();
|
||
$types = $enum_types->get_values(Enum_type_Model::$member_type_id);
|
||
//$types[0] = '----- '.url_lang::lang('texts.select type').' -----';
|
||
... | ... | |
unset($types[$enum_types->get_type_id('Former member')]);
|
||
// regular member by default
|
||
$type_id = $enum_types->get_type_id('Regular member');
|
||
|
||
// entrance fee
|
||
$fee_model = new Fee_Model();
|
||
$fee = $fee_model->get_by_date_type(date('Y-m-d'), 'entrance fee');
|
||
... | ... | |
$entrance_fee = $fee->fee;
|
||
else
|
||
$entrance_fee = 0;
|
||
|
||
// form
|
||
$form = new Forge(url_lang::base().'members/add', '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Basic information'));
|
||
$form->input('title1')->label(url_lang::lang('texts.pre title').':')
|
||
->rules('length[3,40]');
|
||
... | ... | |
$member_model = new Member_Model();
|
||
$members = $member_model->get_all_members_to_export();
|
||
// set content header
|
||
header('Content-type: application/csv');
|
||
header('Content-type: application/csv; charset=UTF-8');
|
||
$filename = url_lang::lang('texts.Members').'.csv';
|
||
header('Content-Disposition: attachment; filename="'.$filename.'"');
|
||
$first = true;
|
freenetis/trunk/kohana/application/controllers/device_engineers.php | ||
---|---|---|
class Device_engineers_Controller extends Controller
|
||
{
|
||
/**
|
||
* Adds engineer to device (creates association between engineer and device).
|
||
* Adds engineer to device (creates relation between engineer and device).
|
||
* @return unknown_type
|
||
*/
|
||
function add()
|
||
{
|
||
$ssDevice_id = $this->session->get('ssDevice_id');
|
||
$form = new Forge(url_lang::base()."device_engineers/add/", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
|
||
if ($ssDevice_id)
|
||
{
|
||
$device = new Device_Model($ssDevice_id);
|
||
$form->dropdown('device_id')->label(url_lang::lang('texts.Device name'))->options(array($ssDevice_id => $device->name))->rules('required');
|
||
}
|
||
else
|
||
{
|
||
$device_model = new Device_Model();
|
||
$devices = $device_model->select(array('id','name'))->orderby('name')->find_all();
|
||
$arr_devices[0] = '----- '.url_lang::lang('texts.select device').' -----';
|
||
foreach ($devices as $device)
|
||
{
|
||
$arr_devices[$device->id] = $device->name;
|
||
}
|
||
$form->dropdown('device_id')->label(url_lang::lang('texts.Device name'))->options($arr_devices)->rules('required');
|
||
}
|
||
|
||
|
||
$user_model = new User_Model();
|
||
$Device_engineer_Model = new Device_engineer_Model();
|
||
if($ssDevice_id)
|
||
$engineers = $Device_engineer_Model->find_all_by_device_id($ssDevice_id);
|
||
else
|
||
$engineers = array();
|
||
|
||
$users = $user_model->find_all();
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
foreach($users as $user)
|
||
{
|
||
$clause = 1;
|
||
... | ... | |
if($clause == 1)
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required');
|
||
|
||
asort($arr_users, SORT_LOCALE_STRING);
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
// form
|
||
$form = new Forge(url_lang::base()."device_engineers/add/", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.Engineer'))->options($arr_users)->rules('required')->selected(0);
|
||
$form->submit('submit')->value(url_lang::lang('texts.Save'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
... | ... | |
$form_data = $form->as_array();
|
||
|
||
$device_engineer = new Device_engineer_Model();
|
||
|
||
foreach($form_data as $key => $value)
|
||
$device_engineer->user_id = $form_data['user_id'];
|
||
$device_engineer->device_id = $ssDevice_id;
|
||
unset($form_data);
|
||
if ($device_engineer->save())
|
||
{
|
||
$device_engineer->$key = htmlspecialchars($value);
|
||
}
|
||
|
||
$device_id = $form_data['device_id'];
|
||
|
||
unset($form_data);
|
||
|
||
if ($device_engineer->save()) {
|
||
$this->session->set_flash('message', url_lang::lang('texts.New device engineer has been successfully saved.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_id);
|
||
exit;
|
||
url::redirect(url_lang::base().'devices/show/'.$ssDevice_id);
|
||
}
|
||
|
||
}
|
||
|
||
if ($ssDevice_id) $link_back = html::anchor(url_lang::base().'devices/show/'.$ssDevice_id, url_lang::lang('texts.Back to device parameters'));
|
||
// else $link_back = html::anchor(url_lang::base().'ifaces/show_all/', url_lang::lang('texts.Back to interfaces list'));
|
||
|
||
$link_back = html::anchor(url_lang::base().'devices/show/'.$ssDevice_id, url_lang::lang('texts.Back to device parameters'));
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.Add new device engineer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->link_back = $link_back;
|
||
$view->content->headline = url_lang::lang('texts.Add new device engineer');
|
||
$view->footer = new View('base/footer');
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.Add new device engineer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->link_back = $link_back;
|
||
$view->content->headline = url_lang::lang('texts.Add new device engineer');
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Removes engineer association from device.
|
||
* Removes engineer relation from device.
|
||
* @param $id id of association
|
||
* @return unknown_type
|
||
*/
|
||
function remove($id = null)
|
||
function remove($rel_id = null)
|
||
{
|
||
// // access rights
|
||
//if (!$this->acl_check_new(get_class($this),'translations'))
|
||
// Controller::error(1);
|
||
if (isset($id))
|
||
if (isset($rel_id))
|
||
{
|
||
$ssDevice_id = $this->session->get('ssDevice_id');
|
||
$linkback = url_lang::base()."devices/show/$ssDevice_id";
|
||
$device_engineer_model = new Device_engineer_Model();
|
||
$device_engineer_model->find($id, FALSE)->delete($id);
|
||
$relations = $device_engineer_model->get_device_engineers($ssDevice_id);
|
||
if ((count($relations) > 1 && $rel_id == $relations->current()->id) || count($relations) == 1)
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.First engineer cannot be removed from this device.'));
|
||
url::redirect($linkback);
|
||
}
|
||
$device_engineer_model->find($rel_id, FALSE)->delete($rel_id);
|
||
if ($device_engineer_model->save())
|
||
{
|
||
url::redirect(url_lang::base().'devices/show/'.$this->session->get('ssDevice_id'));
|
||
$this->session->set_flash('message', url_lang::lang('texts.Engineer has been successfully removed from this device.'));
|
||
url::redirect($linkback);
|
||
}
|
||
else
|
||
{
|
freenetis/trunk/kohana/application/controllers/device_admins.php | ||
---|---|---|
function add()
|
||
{
|
||
$ssDevice_id = $this->session->get('ssDevice_id');
|
||
|
||
|
||
$form = new Forge(url_lang::base()."device_admins/add/", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
|
||
|
||
if ($ssDevice_id)
|
||
{
|
||
$device = new Device_Model($ssDevice_id);
|
||
$form->dropdown('device_id')->label(url_lang::lang('texts.Device name'))->options(array($ssDevice_id => $device->name))->rules('required');
|
||
}
|
||
|
||
else
|
||
{
|
||
|
||
$device_model = new Device_Model();
|
||
$devices = $device_model->select(array('id','name'))->orderby('name')->find_all();
|
||
$arr_devices[0] = '----- '.url_lang::lang('texts.select device').' -----';
|
||
foreach ($devices as $device) {
|
||
$arr_devices[$device->id] = $device->name;
|
||
}
|
||
$form->dropdown('device_id')->label(url_lang::lang('texts.Device name'))->options($arr_devices)->rules('required');
|
||
}
|
||
|
||
$user_model = new User_Model();
|
||
|
||
$device_admin_model = new Device_admin_Model();
|
||
|
||
if($ssDevice_id)
|
||
$admins = $device_admin_model->find_all_by_device_id($ssDevice_id);
|
||
else $admins = array();
|
||
|
||
$users = $user_model->find_all();
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
foreach($users as $user)
|
||
{
|
||
$clause = 1;
|
||
... | ... | |
if($clause == 1)
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required');
|
||
asort($arr_users, SORT_LOCALE_STRING);
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
// form
|
||
$form = new Forge(url_lang::base()."device_admins/add/", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.admin').':')->options($arr_users)->rules('required')->selected(0);
|
||
$form->submit('submit')->value(url_lang::lang('texts.Save'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
// validation
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
$device_admin = new Device_admin_Model();
|
||
|
||
foreach($form_data as $key => $value)
|
||
$device_admin->user_id = $form_data['user_id'];
|
||
$device_admin->device_id = $ssDevice_id;
|
||
unset($form_data);
|
||
if ($device_admin->save())
|
||
{
|
||
$device_admin->$key = htmlspecialchars($value);
|
||
}
|
||
|
||
$device_id = $form_data['device_id'];
|
||
|
||
unset($form_data);
|
||
|
||
if ($device_admin->save()) {
|
||
$this->session->set_flash('message', url_lang::lang('texts.New device admin has been successfully saved.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_id);
|
||
exit;
|
||
url::redirect(url_lang::base().'devices/show/'.$ssDevice_id);
|
||
}
|
||
|
||
}
|
||
|
||
if ($ssDevice_id) $link_back = html::anchor(url_lang::base().'devices/show/'.$ssDevice_id, url_lang::lang('texts.Back to device parameters'));
|
||
// else $link_back = html::anchor(url_lang::base().'ifaces/show_all/', url_lang::lang('texts.Back to interfaces list'));
|
||
|
||
$link_back = html::anchor(url_lang::base().'devices/show/'.$ssDevice_id, url_lang::lang('texts.Back to device parameters'));
|
||
$view = new View('template');
|
||
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.Add new device admin');
|
||
$view->header->menu = Controller::render_menu();
|
||
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->link_back = $link_back;
|
||
$view->content->headline = url_lang::lang('texts.Add new device admin');
|
||
|
||
|
||
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
} // end of add
|
||
|
||
/**
|
||
* Function edits device admins.
|
||
* @param $device_admin_id
|
||
* @return unknown_type
|
||
*/
|
||
function edit($device_admin_id = null)
|
||
{
|
||
$ssDevice_id = $this->session->get('ssDevice_id');
|
||
|
||
$device_admin = new Device_admin_Model($device_admin_id);
|
||
|
||
if (!isset($device_admin_id) || $device_admin->id == 0) {
|
||
Controller::warning(1);
|
||
}
|
||
|
||
$form = new Forge(url_lang::base()."device_admins/edit/".$device_admin_id, '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
|
||
|
||
$device = new Device_Model($device_admin->device_id);
|
||
$form->dropdown('device_id')->label(url_lang::lang('texts.Device name'))->options(array($device->id => $device->name))->rules('required');
|
||
|
||
$user_model = new User_Model();
|
||
|
||
$admins = $device_admin->find_all_by_device_id($ssDevice_id);
|
||
|
||
|
||
|
||
$users = $user_model->find_all();
|
||
$arr_users = array();
|
||
foreach($users as $user)
|
||
{
|
||
$clause = 1;
|
||
foreach($admins as $admin)
|
||
if($admin->user->id == $user->id)
|
||
$clause = 0;
|
||
if($user->id == $device_admin->user_id)
|
||
$clause = 1;
|
||
if($clause == 1)
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required')->selected($device_admin->user_id);
|
||
$form->submit('submit')->value(url_lang::lang('texts.update'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
// validaiton
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
$device_admin = new Device_admin_Model($device_admin_id);
|
||
foreach($form_data as $key => $value)
|
||
{
|
||
$device_admin->$key = htmlspecialchars($value);
|
||
}
|
||
$device_id = $form_data['device_id'];
|
||
unset($form_data);
|
||
if ($device_admin->save())
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device admin has been successfully updated.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_id);
|
||
}
|
||
|
||
}
|
||
if ($ssDevice_id) $link_back = html::anchor(url_lang::base().'devices/show/'.$ssDevice_id, url_lang::lang('texts.Back to device parameters'));
|
||
// else $link_back = html::anchor(url_lang::base().'ifaces/show_all/', url_lang::lang('texts.Back to interfaces list'));
|
||
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.Edit device admin');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->link_back = $link_back;
|
||
$view->content->headline = url_lang::lang('texts.Edit device admin');
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
} // end of edit
|
||
|
||
|
||
/**
|
||
* Removes admin association from device.
|
||
* Removes admin relation from device.
|
||
* @param $id id of association
|
||
* @return unknown_type
|
||
*/
|
||
... | ... | |
$device_admin_model->find($id, FALSE)->delete($id);
|
||
if ($device_admin_model->save())
|
||
{
|
||
url::redirect(url_lang::base().'devices/show/'.$this->session->get('ssDevice_id'));
|
||
$this->session->set_flash('message', url_lang::lang('texts.Admin has been successfully removed from this device.'));
|
||
}
|
||
else
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - it is not possible to remove admin.'));
|
||
}
|
||
url::redirect(url_lang::base().'devices/show/'.$this->session->get('ssDevice_id'));
|
||
}
|
||
else
|
||
{
|
freenetis/trunk/kohana/application/controllers/devices.php | ||
---|---|---|
$grid->field('surname')->label(url_lang::lang('texts.Surname'));
|
||
$grid->field('login')->label(url_lang::lang('texts.Username'));
|
||
// engineer cannot be removed if there is only one left
|
||
if (count($de) > 1)
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Remove')) ->url(url_lang::base().'device_engineers/remove')->action(url_lang::lang('texts.Remove'))->class('center');
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Remove')) ->url(url_lang::base().'device_engineers/remove')->action(url_lang::lang('texts.Remove'))->class('center');
|
||
$grid->datasource($de);
|
||
$grid_device_engineers = $grid;
|
||
unset($grid);
|
||
... | ... | |
$grid->field('surname')->label(url_lang::lang('texts.surname'));
|
||
$grid->field('login')->label(url_lang::lang('texts.username'));
|
||
// admin cannot be removed if there is only one left
|
||
if (count($da) > 1)
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Remove')) ->url(url_lang::base().'device_admins/remove')->action(url_lang::lang('texts.Remove'))->class('center');
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Remove')) ->url(url_lang::base().'device_admins/remove')->action(url_lang::lang('texts.Remove'))->class('center');
|
||
$grid->datasource($da);
|
||
$grid_device_admins = $grid;
|
||
unset($grid);
|
||
... | ... | |
|
||
if (!$this->acl_check_new(get_class($this),'devices',$ssMember_id))
|
||
Controller::error(1);
|
||
|
||
$form = new Forge(url_lang::base()."devices/add", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
|
||
// user of device
|
||
$user_model = new User_Model;
|
||
|
||
if($ssMember_id)
|
||
{
|
||
$member = new Member_Model($ssMember_id);
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all_by_member_id($ssMember_id);
|
||
$selected = $users->current()->id;
|
||
}
|
||
else
|
||
{
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
$selected = 0;
|
||
}
|
||
|
||
|
||
foreach ($users as $user) {
|
||
foreach ($users as $user)
|
||
{
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
|
||
asort($arr_users, SORT_LOCALE_STRING);
|
||
// list of engineers
|
||
$engineers = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
$arr_engineers[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
|
||
foreach ($engineers as $engineer) {
|
||
foreach ($engineers as $engineer)
|
||
{
|
||
$arr_engineers[$engineer->id] = $engineer->surname.' '.$engineer->name.' - '.$engineer->login;
|
||
}
|
||
asort($arr_engineers);
|
||
|
||
asort($arr_engineers, SORT_LOCALE_STRING);
|
||
// types of device
|
||
$enum_type_model = new Enum_type_Model();
|
||
$types = $enum_type_model->get_values(Enum_type_Model::$device_type_id);
|
||
$types[0] = '----- '.url_lang::lang('texts.select type').' -----';
|
||
asort($types);
|
||
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required');
|
||
|
||
// forge form
|
||
$form = new Forge(url_lang::base()."devices/add", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required')->selected($selected);
|
||
$form->input('name')->label(url_lang::lang('texts.Device name').':')->rules('required|length[3,250]');
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type'))->options($types)->rules('required');
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')->options($types)->rules('required');
|
||
$form->checkbox('PPPoE_logging_in')->label(url_lang::lang('texts.PPPoE'))->value('1');
|
||
$form->input('login')->label(url_lang::lang('texts.username').':')->rules('length[0,250]');
|
||
$form->input('password')->label(url_lang::lang('texts.password').':')->rules('length[0,250]');
|
||
... | ... | |
$form->input('location_address')->label(url_lang::lang('texts.location address').':')->rules('length[3,254]');
|
||
$form->input('location_details')->label(url_lang::lang('texts.location details').':')->rules('length[3,254]');
|
||
$form->textarea('comment')->label(url_lang::lang('texts.comment').':')->rules('length[0,254]');
|
||
$form->dropdown('first_engineer_id')->label(url_lang::lang('texts.engineer').' 1:')->options($arr_engineers)->rules('required')->selected($this->session->get('user_id'));
|
||
$form->dropdown('second_engineer_id')->label(url_lang::lang('texts.engineer').' 2:')->options($arr_engineers);
|
||
|
||
$form->dropdown('first_engineer_id')->label(url_lang::lang('texts.engineer').':')->options($arr_engineers)->rules('required')->selected($this->session->get('user_id'));
|
||
$form->submit('submit')->value(url_lang::lang('texts.Save'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
|
||
//----- validate form and save data -----------------------------------
|
||
// validation
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
$device_model = new Device_Model();
|
||
|
||
$engineers_data[] = $form_data["first_engineer_id"];
|
||
if($form_data["second_engineer_id"]>0) $engineers_data[] = $form_data["second_engineer_id"];
|
||
|
||
// device
|
||
$device_model = new Device_Model();
|
||
$device_model->user_id = htmlspecialchars($form_data["user_id"]);
|
||
$device_model->name = htmlspecialchars($form_data["name"]);
|
||
$device_model->type = htmlspecialchars($form_data["type"]);
|
||
... | ... | |
$device_model->location_address = htmlspecialchars($form_data["location_address"]);
|
||
$device_model->location_details = htmlspecialchars($form_data["location_details"]);
|
||
$device_model->comment = htmlspecialchars($form_data["comment"]);
|
||
|
||
$device_saved = $device_model->save();
|
||
|
||
$device_engineer_saved = TRUE;
|
||
|
||
// saves device engineers
|
||
foreach($engineers_data as $engineer_data) {
|
||
$device_engineer_model = new Device_engineer_Model();
|
||
$device_engineer_model->device_id = $device_model->id;
|
||
$device_engineer_model->user_id = $engineer_data;
|
||
$device_engineer_saved = $device_engineer_saved && $device_engineer_model->save();
|
||
}
|
||
|
||
// device engineer
|
||
$device_engineer_model = new Device_engineer_Model();
|
||
$device_engineer_model->device_id = $device_model->id;
|
||
$device_engineer_model->user_id = $form_data['first_engineer_id'];
|
||
$device_engineer_saved = $device_engineer_model->save();
|
||
|
||
unset($form_data);
|
||
if ($device_saved && $device_engineer_saved)
|
||
{
|
||
... | ... | |
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
} // end of add
|
||
|
||
/**
|
||
* Function edits device.
|
||
* @param $device_id
|
||
* @return unknown_type
|
||
*/
|
||
function edit($device_id = null)
|
||
{
|
||
$device = new Device_Model($device_id);
|
||
|
||
if (!isset($device_id) || $device->id == 0) {
|
||
Controller::warning(1);
|
||
}
|
||
|
||
if (!$this->acl_check_edit(get_class($this),'devices',$device->user->member_id)) Controller::error(1);
|
||
|
||
$form = new Forge(url_lang::base()."devices/edit/".$device_id, '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
|
||
$user_model = new User_Model;
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
foreach ($users as $user) {
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
|
||
$enum_type_model = new Enum_type_Model();
|
||
$types = $enum_type_model->get_values(Enum_type_Model::$device_type_id);
|
||
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required')->selected($device->user_id);
|
||
$form->input('name')->label(url_lang::lang('texts.Device name').':')->rules('required|length[3,250]')->value($device->name);
|
||
$form->dropdown('type')->label(url_lang::lang('texts.type'))->options($types)->rules('required')->selected($device->type);
|
||
$form->checkbox('PPPoE_logging_in')->label(url_lang::lang('texts.PPPoE'))->value('1')->checked($device->PPPoE_logging_in);
|
||
$form->input('login')->label(url_lang::lang('texts.username').':')->rules('length[0,250]')->value($device->login);
|
||
$form->input('password')->label(url_lang::lang('texts.password').':')->rules('length[0,250]')->value($device->password);
|
||
$form->input('GPS')->label(url_lang::lang('texts.GPS').':')->rules('length[3,100]')->value($device->GPS);
|
||
$form->input('location_address')->label(url_lang::lang('texts.location address').':')->rules('length[3,254]')->value($device->location_address);
|
||
$form->input('location_details')->label(url_lang::lang('texts.location details').':')->rules('length[3,254]')->value($device->location_details);
|
||
$form->textarea('comment')->label(url_lang::lang('texts.comment').':')->rules('length[0,254]')->value($device->comment);
|
||
$form->submit('submit')->value(url_lang::lang('texts.update'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
// validation
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
// saves device changes
|
||
$device_model = new Device_Model();
|
||
$device_model->find_by_id($device_id);
|
||
foreach($form_data as $key => $value)
|
||
{
|
||
$device_model->$key = htmlspecialchars($value);
|
||
}
|
||
$device_model_saved = $device_model->save();
|
||
|
||
unset($form_data);
|
||
|
||
if ($device_model_saved )
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device has been successfully updated.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_model->id);
|
||
exit;
|
||
}
|
||
} // end of validation
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->link_back = html::anchor(url_lang::base().'devices/show_all/', url_lang::lang('texts.Back to devices list'));
|
||
$view->content->headline = url_lang::lang('texts.Edit device').': '.$device->name;
|
||
$view->footer = new View('base/footer');
|
||
$view->header->title = url_lang::lang('texts.Edit device');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
} // end of function edit
|
||
|
||
/**
|
||
* Function deletes device including its interfaces
|
||
* @param $device_id
|
||
* @return unknown_type
|
||
*/
|
||
function delete($device_id)
|
||
{
|
||
if (isset($device_id))
|
||
{
|
||
$member_id = $this->session->get('ssMember_id');
|
||
if ($member_id)
|
||
$linkback = url_lang::base()."devices/show_by_member/$member_id";
|
||
else
|
||
$linkback = url_lang::base()."devices/show_all";
|
||
$device = new Device_Model($device_id);
|
||
if (!$device->id)
|
||
url::redirect($linkback);
|
||
if (!$this->acl_check_delete('Devices_Controller', 'devices', $device->user->member_id))
|
||
Controller::error(1);
|
||
$ifaces = $device->find_related_ifaces();
|
||
$ports = $device->find_related_ports();
|
||
if (count($ifaces) == 0 && count($ports) == 0)
|
||
{
|
||
if ($device->delete())
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device has been successfully deleted.'));
|
||
else
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant delete device.'));
|
||
}
|
||
else
|
||
{
|
||
if (count($ifaces) != 0)
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device still has at least one interface.'));
|
||
else
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device still has at least one port.'));
|
||
}
|
||
url::redirect($linkback);
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Adds whole device. It means it creates new device, new interface assigned to this device
|
||
* and new ip address assigned to this interface.
|
||
* @return unknown_type
|
||
... | ... | |
// access rights
|
||
if (!$this->acl_check_new(get_class($this),'devices',$ssMember_id))
|
||
Controller::error(1);
|
||
|
||
$form = new Forge(url_lang::base()."devices/add_whole", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Device'));
|
||
|
||
$user_model = new User_Model;
|
||
|
||
// enum types for device
|
||
$enum_type_model = new Enum_type_Model();
|
||
$types = $enum_type_model->get_values(Enum_type_Model::$device_type_id);
|
||
$types[0] = '----- '.url_lang::lang('texts.select type').' -----';
|
||
asort($types);
|
||
|
||
// enum types for wireless setting
|
||
$arr_modes = $enum_type_model->get_values(Enum_type_Model::$mode_type_id);
|
||
$arr_modes[0] = '----- '.url_lang::lang('texts.select').' -----';
|
||
... | ... | |
$arr_polarizations = $enum_type_model->get_values(Enum_type_Model::$polarization_type_id);
|
||
$arr_polarizations[0] = '----- '.url_lang::lang('texts.select').' -----';
|
||
asort($arr_polarizations);
|
||
|
||
// subnets
|
||
$subnet_model = new Subnet_Model();
|
||
$subnets = $subnet_model
|
||
->select("id","name","network_address as net_str",
|
||
... | ... | |
$arr_subnets_masks, SORT_NUMERIC, SORT_ASC,
|
||
$arr_subnets_ids, SORT_NUMERIC, SORT_ASC,
|
||
$arr_subnets_netnames, SORT_STRING, SORT_ASC);
|
||
|
||
// segments
|
||
$segment_model = new Segment_Model();
|
||
$segments = $segment_model->select(array('id','name'))->orderby('name')->find_all();
|
||
$arr_segments[0] = '----- '.url_lang::lang('texts.select segment').' -----';
|
||
... | ... | |
{
|
||
$arr_segments[$segment->id] = $segment->name;
|
||
}
|
||
|
||
// form
|
||
// forge form
|
||
$form = new Forge(url_lang::base()."devices/add_whole", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->group('')->label(url_lang::lang('texts.Device'));
|
||
$user_model = new User_Model;
|
||
// javascript is on
|
||
if ($this->setting->use_javascript)
|
||
{
|
||
$username = '';
|
||
// finding member
|
||
if($ssMember_id)
|
||
{
|
||
$user = $user_model->where('member_id',$ssMember_id)->find();
|
||
$username = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
$form->input('user')->label(url_lang::lang('texts.user'))->rules('required')->callback(array($this,'exist_user'))->value($username);
|
||
}
|
||
else
|
||
{
|
||
// javascript is off
|
||
// finding member
|
||
if($ssMember_id)
|
||
{
|
||
//$member = new Member_Model($ssMember_id);
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all_by_member_id($ssMember_id);
|
||
}
|
||
else
|
||
{
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
}
|
||
|
||
foreach ($users as $user)
|
||
{
|
||
$arr_users[$user->surname.' '.$user->name.' - '.$user->login] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users, SORT_LOCALE_STRING);
|
||
|
||
$form->dropdown('user')->label(url_lang::lang('texts.user'))->rules('required')->options($arr_users);
|
||
}
|
||
|
||
if ($this->setting->use_javascript)
|
||
{
|
||
$username = '';
|
||
// finding member
|
||
if($ssMember_id)
|
||
{
|
||
$user = $user_model->where('member_id',$ssMember_id)->find();
|
||
$username = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
$form->input('user')->label(url_lang::lang('texts.user').':')->rules('required')->callback(array($this,'exist_user'))->value($username);
|
||
}
|
||
else
|
||
{
|
||
// javascript is off
|
||
// finding member
|
||
if($ssMember_id)
|
||
{
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all_by_member_id($ssMember_id);
|
||
}
|
||
else
|
||
{
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
}
|
||
foreach ($users as $user)
|
||
{
|
||
$arr_users[$user->surname.' '.$user->name.' - '.$user->login] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users, SORT_LOCALE_STRING);
|
||
$form->dropdown('user')->label(url_lang::lang('texts.user').':')->rules('required')->options($arr_users);
|
||
}
|
||
$form->input('name')->label(url_lang::lang('texts.Device name').':')->rules('required|length[2,250]');
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type'))->options($types)->rules('required');
|
||
$form->checkbox('PPPoE_logging_in')->label(url_lang::lang('texts.PPPoE'))->value('1');
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')->options($types)->rules('required');
|
||
$form->checkbox('PPPoE_logging_in')->label(url_lang::lang('texts.PPPoE').':')->value('1');
|
||
$form->input('login')->label(url_lang::lang('texts.username').':')->rules('length[0,250]');
|
||
$form->input('password')->label(url_lang::lang('texts.password').':')->rules('length[0,250]');
|
||
$form->input('GPS')->label(url_lang::lang('texts.GPS').':')->rules('length[3,100]');
|
||
$form->input('location_address')->label(url_lang::lang('texts.location address').':')->rules('length[3,254]');
|
||
$form->input('location_details')->label(url_lang::lang('texts.location details').':')->rules('length[3,254]');
|
||
$form->textarea('comment')->label(url_lang::lang('texts.comment').':')->rules('length[0,254]');
|
||
|
||
// javascript is on
|
||
if ($this->setting->use_javascript)
|
||
{
|
||
$engineer_name = $this->session->get('user_surname').' '.$this->session->get('user_name').' - '.$this->session->get('member_login');
|
||
$form->input('first_engineer')->label(url_lang::lang('texts.engineer').' 1:')->rules('required')->callback(array($this,'exist_user'))->value($engineer_name);
|
||
$form->input('second_engineer')->label(url_lang::lang('texts.engineer').' 2:')->callback(array($this,'exist_user'));
|
||
}
|
||
else
|
||
{
|
||
// javascript is off
|
||
$engineers = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
|
||
foreach ($engineers as $engineer)
|
||
{
|
||
$arr_engineers[$engineer->surname.' '.$engineer->name.' - '.$engineer->login] = $engineer->surname.' '.$engineer->name.' - '.$engineer->login;
|
||
}
|
||
|
||
$arr_engineers[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
|
||
asort($arr_engineers);
|
||
|
||
$form->dropdown('first_engineer')->label(url_lang::lang('texts.engineer').' 1:')->options($arr_engineers)->rules('required')->selected($this->session->get('user_surname').' '.$this->session->get('user_name').' - '.$this->session->get('member_login'));
|
||
$form->dropdown('second_engineer')->label(url_lang::lang('texts.engineer').' 2:')->options($arr_engineers);
|
||
}
|
||
|
||
|
||
|
||
|
||
//$form->dropdown('second_engineer_id')->label(url_lang::lang('texts.engineer').' 2:')->options($arr_engineers)->selected(0);
|
||
// javascript is on
|
||
if ($this->setting->use_javascript)
|
||
{
|
||
$engineer_name = $this->session->get('user_surname').' '.$this->session->get('user_name').' - '.$this->session->get('member_login');
|
||
$form->input('first_engineer')->label(url_lang::lang('texts.engineer').':')->rules('required')->callback(array($this,'exist_user'))->value($engineer_name);
|
||
}
|
||
else
|
||
{
|
||
// javascript is off
|
||
$engineers = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
foreach ($engineers as $engineer)
|
||
{
|
||
$arr_engineers[$engineer->surname.' '.$engineer->name.' - '.$engineer->login] = $engineer->surname.' '.$engineer->name.' - '.$engineer->login;
|
||
}
|
||
$arr_engineers[0] = '----- '.url_lang::lang('texts.select user').' -----';
|
||
asort($arr_engineers, SORT_LOCALE_STRING);
|
||
$form->dropdown('first_engineer')->label(url_lang::lang('texts.engineer').':')->options($arr_engineers)->rules('required')->selected($this->session->get('user_surname').' '.$this->session->get('user_name').' - '.$this->session->get('member_login'));
|
||
}
|
||
// adding interface
|
||
$form->group('')->label(url_lang::lang('texts.Interface'));
|
||
$form->input('MAC')->label(url_lang::lang('texts.MAC').':')->rules('required|length[3,250]');
|
||
$form->dropdown('segment_id')->label(url_lang::lang('texts.Segment name'))->options($arr_segments)->rules('required');
|
||
$form->dropdown('segment_id')->label(url_lang::lang('texts.Segment name').':')->options($arr_segments)->rules('required');
|
||
// wireless settings of interface
|
||
$form->checkbox('add_wireless')->label(url_lang::lang('texts.Save wireless setting'))->value(1);
|
||
$form->dropdown('wmode')->label(url_lang::lang('texts.Mode').':')->options($arr_modes)->callback(array($this, 'valid_mode'));
|
||
... | ... | |
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
|
||
// device model
|
||
$device_model = new Device_Model();
|
||
$engineers_data[] = $form_data["first_engineer"];
|
||
if(isset($form_data["second_engineer"]) && $form_data["second_engineer"] != '')
|
||
$engineers_data[] = $form_data["second_engineer"];
|
||
|
||
$user_model = new User_Model();
|
||
$user = $user_model->get_users(htmlspecialchars($form_data["user"]))->current();
|
||
|
||
$user_model = new User_Model();
|
||
$user = $user_model->get_users(htmlspecialchars($form_data["user"]))->current();
|
||
$device_model->user_id = $user->id;
|
||
$device_model->name = htmlspecialchars($form_data["name"]);
|
||
$device_model->type = htmlspecialchars($form_data["type"]);
|
||
//$device_model->description = htmlspecialchars($form_data["description"]);
|
||
$device_model->PPPoE_logging_in = htmlspecialchars($form_data["PPPoE_logging_in"]);
|
||
$device_model->login = htmlspecialchars($form_data["login"]);
|
||
$device_model->password = htmlspecialchars($form_data["password"]);
|
||
... | ... | |
$device_model->location_address = htmlspecialchars($form_data["location_address"]);
|
||
$device_model->location_details = htmlspecialchars($form_data["location_details"]);
|
||
$device_model->comment = htmlspecialchars($form_data["comment"]);
|
||
// model save
|
||
$device_saved = $device_model->save();
|
||
|
||
// device engineer model
|
||
$device_engineer_saved = TRUE;
|
||
foreach($engineers_data as $engineer_data)
|
||
{
|
||
$device_engineer = new Device_engineer_Model();
|
||
$device_engineer->device_id = $device_model->id;
|
||
|
||
$user = $user_model->get_users($engineer_data)->current();
|
||
|
||
$device_engineer->user_id = $user->id;
|
||
$device_engineer_saved = $device_engineer_saved && $device_engineer->save();
|
||
}
|
||
$device_engineer = new Device_engineer_Model();
|
||
$device_engineer->device_id = $device_model->id;
|
||
$user = $user_model->get_users($form_data['first_engineer'])->current();
|
||
$device_engineer->user_id = $user->id;
|
||
$device_engineer_saved = $device_engineer->save();
|
||
|
||
// interface model
|
||
$iface_model = new Iface_Model();
|
||
... | ... | |
$iface_model->segment_id = $form_data["segment_id"];
|
||
$iface_model->MAC = htmlspecialchars($form_data["MAC"]);
|
||
$iface_model->name = $device_model->name;
|
||
//$iface_model->comment = NULL;
|
||
// iface save
|
||
$iface_model_saved = $iface_model->save();
|
||
|
||
// wireless setting of interface
|
||
... | ... | |
$ip_address_model->subnet_id = $form_data['subnet_id'];
|
||
$ip_address_model->IP_address = $form_data['IP_address'];
|
||
$ip_address_model->dhcp = NULL;
|
||
// ip address save
|
||
$ip_address_saved = $ip_address_model->save();
|
||
|
||
unset($form_data);
|
||
... | ... | |
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device has been successfully saved.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_model->id);
|
||
exit;
|
||
}
|
||
} // end of validation
|
||
|
||
}
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = new View('form');
|
||
... | ... | |
if($ssMember_id)
|
||
{
|
||
$view->content->link_back = html::anchor(url_lang::base().'devices/show_by_member/'.$ssMember_id, url_lang::lang('texts.Back to devices list of this member'));
|
||
//$view->content->headline = url_lang::lang('texts.Add new whole device for member').' '.$member->name;
|
||
$view->content->headline = '';
|
||
$member = new Member_Model($ssMember_id);
|
||
$view->content->headline = url_lang::lang('texts.Add new whole device for member').' '.$member->name;
|
||
}
|
||
else
|
||
{
|
||
... | ... | |
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
} // end of function add_whole
|
||
|
||
/**
|
||
* Function edits device.
|
||
* @param $device_id
|
||
* @return unknown_type
|
||
*/
|
||
function edit($device_id = null)
|
||
{
|
||
$device = new Device_Model($device_id);
|
||
|
||
if (!isset($device_id) || $device->id == 0) {
|
||
Controller::warning(1);
|
||
}
|
||
|
||
if (!$this->acl_check_edit(get_class($this),'devices',$device->user->member_id)) Controller::error(1);
|
||
|
||
$form = new Forge(url_lang::base()."devices/edit/".$device_id, '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
function get_device_names()
|
||
{
|
||
$q = strtolower($this->input->get('q'));
|
||
$form->group('')->label(url_lang::lang('texts.Basic data'));
|
||
|
||
$user_model = new User_Model;
|
||
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
|
||
foreach ($users as $user) {
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
|
||
$enum_type_model = new Enum_type_Model();
|
||
$types = $enum_type_model->get_values(Enum_type_Model::$device_type_id);
|
||
|
||
if (!$q) return;
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required')->selected($device->user_id);
|
||
$form->input('name')->label(url_lang::lang('texts.Device name').':')->rules('required|length[3,250]')->value($device->name);
|
||
$form->dropdown('type')->label(url_lang::lang('texts.type'))->options($types)->rules('required')->selected($device->type);
|
||
$form->checkbox('PPPoE_logging_in')->label(url_lang::lang('texts.PPPoE'))->value('1')->checked($device->PPPoE_logging_in);
|
||
$form->input('login')->label(url_lang::lang('texts.username').':')->rules('length[0,250]')->value($device->login);
|
||
$form->input('password')->label(url_lang::lang('texts.password').':')->rules('length[0,250]')->value($device->password);
|
||
$form->input('GPS')->label(url_lang::lang('texts.GPS').':')->rules('length[3,100]')->value($device->GPS);
|
||
$form->input('location_address')->label(url_lang::lang('texts.location address').':')->rules('length[3,254]')->value($device->location_address);
|
||
$form->input('location_details')->label(url_lang::lang('texts.location details').':')->rules('length[3,254]')->value($device->location_details);
|
||
$form->textarea('comment')->label(url_lang::lang('texts.comment').':')->rules('length[0,254]')->value($device->comment);
|
||
$form->submit('submit')->value(url_lang::lang('texts.update'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
// validation
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
// saves device changes
|
||
$device_model = new Device_Model();
|
||
$device_model->find_by_id($device_id);
|
||
foreach($form_data as $key => $value)
|
||
{
|
||
$device_model->$key = htmlspecialchars($value);
|
||
}
|
||
$device_model_saved = $device_model->save();
|
||
|
||
unset($form_data);
|
||
|
||
if ($device_model_saved )
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device has been successfully updated.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_model->id);
|
||
}
|
||
} // end of validation
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->link_back = html::anchor(url_lang::base().'devices/show_all/', url_lang::lang('texts.Back to devices list'));
|
||
$view->content->headline = url_lang::lang('texts.Edit device').': '.$device->name;
|
||
$view->footer = new View('base/footer');
|
||
$view->header->title = url_lang::lang('texts.Edit device');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
} // end of function edit
|
||
|
||
/**
|
||
* Function deletes device including its interfaces
|
||
* @param $device_id
|
||
* @return unknown_type
|
||
*/
|
||
function delete($device_id)
|
||
{
|
||
if (isset($device_id))
|
||
{
|
||
$member_id = $this->session->get('ssMember_id');
|
||
if ($member_id)
|
||
$linkback = url_lang::base()."devices/show_by_member/$member_id";
|
||
else
|
||
$linkback = url_lang::base()."devices/show_all";
|
||
$device = new Device_Model($device_id);
|
||
if (!$device->id)
|
||
url::redirect($linkback);
|
||
if (!$this->acl_check_delete('Devices_Controller', 'devices', $device->user->member_id))
|
||
Controller::error(1);
|
||
$ifaces = $device->find_related_ifaces();
|
||
$ports = $device->find_related_ports();
|
||
if (count($ifaces) == 0 && count($ports) == 0)
|
||
{
|
||
// it deletes relations from pivot tables
|
||
$device->delete_from_pivot_table($device->id);
|
||
if ($device->delete())
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device has been successfully deleted.'));
|
||
else
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - cant delete device.'));
|
||
}
|
||
else
|
||
{
|
||
if (count($ifaces) != 0)
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device still has at least one interface.'));
|
||
else
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device still has at least one port.'));
|
||
}
|
||
url::redirect($linkback);
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);
|
||
}
|
||
}
|
||
|
||
function get_device_names()
|
||
{
|
||
$q = strtolower($this->input->get('q'));
|
||
|
||
$device_model = new Device_Model();
|
||
$device_names = $device_model->get_device_names($q);
|
||
if (!$q) return;
|
||
|
||
foreach ($device_names as $device_name) echo $device_name->device_name."\n";
|
||
}
|
||
$device_model = new Device_Model();
|
||
$device_names = $device_model->get_device_names($q);
|
||
|
||
function exist_user($input)
|
||
{
|
||
$user_model = new User_Model();
|
||
$users = $user_model->get_users($input->value);
|
||
if (count($users)==0)
|
||
{
|
||
$input->add_error('required', url_lang::lang('texts.User not found.'));
|
||
}
|
||
else if (count($users)>1)
|
||
{
|
||
$input->add_error('required', url_lang::lang('texts.You must specify user\'s name.'));
|
||
}
|
||
}
|
||
foreach ($device_names as $device_name) echo $device_name->device_name."\n";
|
||
}
|
||
|
||
function exist_user($input)
|
||
{
|
||
if ($input->value)
|
||
{
|
||
$user_model = new User_Model();
|
||
$users = $user_model->get_users($input->value);
|
||
if (count($users)==0)
|
||
{
|
||
$input->add_error('required', url_lang::lang('texts.User not found.'));
|
||
}
|
||
else if (count($users)>1)
|
||
{
|
||
$input->add_error('required', url_lang::lang('texts.You must specify user\'s name.'));
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Function checks validity of ip address.
|
||
* @param $input ip address to validate
|
freenetis/trunk/kohana/application/libraries/Grid.php | ||
---|---|---|
protected $url_array_ofset = 0;
|
||
protected $query_string;
|
||
|
||
private $first_add_button;
|
||
|
||
public function __construct($base_uri, $title, $config = NULL, $template = FALSE)
|
Také k dispozici: Unified diff
Promazany stare soubory. Uprava spravy techniku a spravcu zarizeni, opravy chyb.