Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 399

Přidáno uživatelem Jiří Sviták před asi 15 roky(ů)

Promazany stare soubory. Uprava spravy techniku a spravcu zarizeni, opravy chyb.

Zobrazit rozdíly:

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)
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff