Revize 198
Přidáno uživatelem Jiří Sviták před více než 15 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'entrance fee' => 'Vstupní příspěvek',
|
||
'entrance fee left' => 'Nedoplatek vstupního příspěvku',
|
||
'enumerations' => 'Výčty',
|
||
'error - cant add new account.' => 'Chyba: nelze vytvořit účet.',
|
||
'error - cant add new member.' => 'Chyba: nelze vytvořit člena.',
|
||
'error - cant add new user.' => 'Chyba: nelze vytvořit uživatele.',
|
||
'error - cant add new work.' => 'Chyba: nelze přidat novou práci.',
|
||
'error - cant delete user.' => 'Chyba: nelze smazat uživatele.',
|
||
'error - cant delete work.' => 'Chyba: nelze smazat práci.',
|
||
'error - cant do the transfer.' => 'Chyba: nelze provést transakci.',
|
||
'error - cant change password' => 'Chyba: nelze změnit heslo',
|
||
'error - cant update account.' => 'Chyba: nelze upravit účet.',
|
||
'error - cant update aditional contacts.' => 'Chyba: nelze upravit další kontakty.',
|
||
'error - cant update member.' => 'Chyba: nelze upravit člena.',
|
||
'error - cant update user.' => 'Chyba: nelze upravit uživatele.',
|
||
'error - cant update work.' => 'Chyba: nelze upravit práci.',
|
||
'error - cant add new account.' => 'Chyba - nelze vytvořit účet.',
|
||
'error - cant add new member.' => 'Chyba - nelze vytvořit člena.',
|
||
'error - cant add new user.' => 'Chyba - nelze vytvořit uživatele.',
|
||
'error - cant add new work.' => 'Chyba - nelze přidat novou práci.',
|
||
'error - cant delete user.' => 'Chyba - nelze smazat uživatele.',
|
||
'error - cant delete work.' => 'Chyba - nelze smazat práci.',
|
||
'error - cant do the transfer.' => 'Chyba - nelze provést transakci.',
|
||
'error - cant change password' => 'Chyba - nelze změnit heslo',
|
||
'error - cant update account.' => 'Chyba - nelze upravit účet.',
|
||
'error - cant update aditional contacts.' => 'Chyba - nelze upravit další kontakty.',
|
||
'error - cant update member.' => 'Chyba - nelze upravit člena.',
|
||
'error - cant update user.' => 'Chyba - nelze upravit uživatele.',
|
||
'error - cant update work.' => 'Chyba - nelze upravit práci.',
|
||
'error - it is not possible to remove admin.' => 'Chyba - nelze odebrat správce zařízení.',
|
||
'error - it is not possible to remove engineer.' => 'Chyba - nelze odebrat technika zařízení.',
|
||
'error: parameter ID is required!' => 'Chyba: parametr ID je povinný!',
|
||
'error' => 'Chyba',
|
||
'fee' => 'Poplatek',
|
||
... | ... | |
'netmask' => 'Maska',
|
||
'network address' => 'Síťová adresa',
|
||
'networks' => 'Síť',
|
||
'new device admin was successfully saved.' => 'Nový správce zařízení byl úspěšně uložen.',
|
||
'new device admin has been successfully saved.' => 'Nový správce zařízení byl úspěšně uložen.',
|
||
'new device engineer has been successfully saved.' => 'Nový technik zařízení byl úspěšně uložen.',
|
||
'new member' => 'Nový člen',
|
||
'new password' => 'Nové heslo',
|
||
'new transfer' => 'Nová transakce',
|
freenetis/trunk/kohana/application/controllers/members.php | ||
---|---|---|
<?php
|
||
class Members_Controller extends Controller {
|
||
class Members_Controller extends Controller
|
||
{
|
||
protected $member_id= false;
|
||
protected $user_id= false;
|
||
|
||
|
||
/**
|
||
* Redirects default member address to show_all function.
|
||
* @return unknown_type
|
||
*/
|
||
function index()
|
||
{
|
||
url::redirect(url_lang::base().'members/show_all');
|
||
}
|
||
|
||
/**
|
||
* Shows list of all members.
|
||
* @param $limit_results
|
||
* @param $order_by
|
||
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
function show_all($limit_results = 500, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
|
||
|
||
|
||
|
||
if (!$this->acl_check_view(get_class($this),'members')) Controller::Error(1);
|
||
// get new selector
|
||
if (is_numeric($this->input->get('record_per_page'))) $limit_results = (int) $this->input->get('record_per_page');
|
||
// checks access control
|
||
if (!$this->acl_check_view(get_class($this),'members'))
|
||
Controller::Error(1);
|
||
// gets new selector
|
||
if (is_numeric($this->input->get('record_per_page')))
|
||
$limit_results = (int) $this->input->get('record_per_page');
|
||
|
||
// parameters control
|
||
$allowed_order_type = array('name', 'street', 'street_number', 'town', 'ZIP_code', 'qos_ceil', 'qos_rate', 'entrance_fee', 'debt_payment_rate', 'entrance_fee_left', 'must_pay_regular_fee', 'current_credit', 'entrance_date', 'comment');
|
||
if (!in_array(strtolower($order_by),$allowed_order_type)) $order_by = 'id';
|
||
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc') $order_by_direction = 'asc';
|
||
if (!in_array(strtolower($order_by), $allowed_order_type))
|
||
$order_by = 'id';
|
||
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc')
|
||
$order_by_direction = 'asc';
|
||
|
||
// to do - comment
|
||
$data['title'] = url_lang::lang('texts.Association members');
|
||
$data['heading'] = url_lang::lang('texts.Association members');
|
||
|
||
// creates member model
|
||
$model_members = new Member_Model();
|
||
|
||
|
||
// creates fields for filtering members
|
||
$filter=new Table_Form(url_lang::base()."members/show_all", "get", array(
|
||
new Table_Form_Item('text','name','Name'),
|
||
new Table_Form_Item('text','town','Town'),
|
||
... | ... | |
)
|
||
);
|
||
|
||
// unknown... what's this? to do - comment
|
||
$url_array = explode('/', trim(url::current(), '/'));
|
||
$sql_offset = (isset($url_array[7])) ? (int) ($url_array[7] - 1) * $limit_results : 0;
|
||
|
||
// gets members from database
|
||
$query = $model_members->get_all_members($sql_offset, (int)$limit_results, $order_by, $order_by_direction, $filter->values());
|
||
$total_members = $query->count();
|
||
|
||
... | ... | |
foreach ($this->input->get() as $key=>$value) $arr_gets[] = $key.'='.$value;
|
||
$query_string = '?'.implode('&',$arr_gets);
|
||
|
||
// to do - comment this
|
||
// $query = $model_members
|
||
// -> like($filter->values())
|
||
// -> orderby($order_by, $order_by_direction)
|
||
// -> limit($limit_results, $sql_offset)
|
||
// -> find_all();
|
||
// $query = $model_members->get_all_members();
|
||
|
||
|
||
|
||
|
||
// $query = $model_members->get_all_members();
|
||
|
||
// creates grid to view members
|
||
$grid = new Grid(url_lang::base().'members', url_lang::lang('texts.List of all members'),array(
|
||
//'separator' => '<br />-----------',
|
||
//'use_paginator' => false,
|
||
//'use_selector' => false,
|
||
'current' => $limit_results, // current selected 'records_per_page' value
|
||
'selector_increace' => 200, // increace
|
||
'selector_min' => 200, // minimum where selector start
|
||
'selector_increace' => 500, // increace
|
||
'selector_min' => 500, // minimum where selector start
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::item('locale.lang').'/members/show_all/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
|
||
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
|
||
... | ... | |
'query_string' => $query_string
|
||
));
|
||
|
||
if ($this->acl_check_new(get_class($this), 'members'))
|
||
$grid->add_new_button(url_lang::base().'members/add', url_lang::lang('texts.Add new member'));
|
||
//$grid->order_field('member_id')->label('ID');
|
||
$grid->order_field('id')->label('ID');
|
||
$grid->order_field('registration')->label(url_lang::lang('texts.Reg'))->bool(array(url_lang::lang('texts.No'),url_lang::lang('texts.Yes')))->class('center');
|
||
$grid->order_field('name')->label(url_lang::lang('texts.Name'));
|
||
//$grid->order_field('surname')->label(url_lang::lang('texts.Surname'));
|
||
//$grid->order_field('login')->label(url_lang::lang('texts.Username'));
|
||
//$grid->order_field('email')->label('E-mail');
|
||
$grid->order_field('street')->label(url_lang::lang('texts.Street'));
|
||
$grid->order_field('street_number')->label(url_lang::lang('texts.Street number'));
|
||
//$grid->order_field('phone')->label(url_lang::lang('texts.Phone'));
|
||
$grid->order_field('town')->label(url_lang::lang('texts.Town'));
|
||
if ($this->acl_check_view(get_class($this), 'members'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Member')) ->url(url_lang::base().'members/show') ->action(url_lang::lang('texts.Show'));
|
||
if ($this->acl_check_edit(get_class($this), 'members'))
|
||
//if ($this->acl_check_2D('freenetis', 'edit_all'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Member')) ->url(url_lang::base().'members/edit') ->action(url_lang::lang('texts.Edit'));
|
||
|
||
// if ($this->acl_check_2D('freenetis', 'delete_all'))
|
||
// $grid->action_field('member_id') ->label(url_lang::lang('texts.Delete')) ->url(url_lang::base().'members/delete') ->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.delete_member').'\');"');
|
||
$grid->datasource( $query );
|
||
|
||
if ($this->acl_check_new(get_class($this), 'members'))
|
||
$grid->add_new_button(url_lang::base().'members/add', url_lang::lang('texts.Add new member'));
|
||
if ($this->acl_check_new(get_class($this), 'members'))
|
||
$grid->add_new_button(url_lang::base().'members/xls_export', url_lang::lang('texts.Export members to xls file'));
|
||
$grid->order_field('id')->label('ID');
|
||
$grid->order_field('registration')->label(url_lang::lang('texts.Reg'))->bool(array(url_lang::lang('texts.No'),url_lang::lang('texts.Yes')))->class('center');
|
||
$grid->order_field('name')->label(url_lang::lang('texts.Name'));
|
||
//$grid->order_field('surname')->label(url_lang::lang('texts.Surname'));
|
||
//$grid->order_field('login')->label(url_lang::lang('texts.Username'));
|
||
//$grid->order_field('email')->label('E-mail');
|
||
$grid->order_field('street')->label(url_lang::lang('texts.Street'));
|
||
$grid->order_field('street_number')->label(url_lang::lang('texts.Street number'));
|
||
//$grid->order_field('phone')->label(url_lang::lang('texts.Phone'));
|
||
$grid->order_field('town')->label(url_lang::lang('texts.Town'));
|
||
if ($this->acl_check_view(get_class($this), 'members'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Show')) ->url(url_lang::base().'members/show') ->action(url_lang::lang('texts.Show'));
|
||
if ($this->acl_check_edit(get_class($this), 'members'))
|
||
//if ($this->acl_check_2D('freenetis', 'edit_all'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'members/edit') ->action(url_lang::lang('texts.Edit'));
|
||
//if ($this->acl_check_2D('freenetis', 'delete_all'))
|
||
//$grid->action_field('member_id') ->label(url_lang::lang('texts.Delete')) ->url(url_lang::base().'members/delete') ->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.delete_member').'\');"');
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
// $view->content = new View('content', $data);
|
||
$view->content = $filter->view . $grid;
|
||
// sets grid source of data
|
||
$grid->datasource($query);
|
||
|
||
// creates view
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
// $view->content = new View('content', $data);
|
||
$view->content = $filter->view . $grid;
|
||
//$view->content = new View('pokus');
|
||
//$view->content->total = $total_members;
|
||
//$view->content->sql_offset = $sql_offset;
|
||
//$view->content->limit_results = $limit_results;
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.List of all members');
|
||
//$view->content->heading = "Úprava uživatele ".$data['row']['name']." ".$data['row']['surname'];
|
||
//$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
|
||
}
|
||
$view->footer = new View('base/footer');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->header->title = url_lang::lang('texts.List of all members');
|
||
//$view->content->heading = "Úprava uživatele ".$data['row']['name']." ".$data['row']['surname'];
|
||
//$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
} // end of show_all function
|
||
|
||
/**
|
||
* Shows list of users assigned to current member.
|
||
* @param $member_id id of member to whom are users assigned to
|
||
* @param $order_by sorting column
|
||
* @param $order_by_direction sorting direction
|
||
* @return unknown_type
|
||
*/
|
||
function users($member_id = NULL, $order_by = 'member_id', $order_by_direction = 'ASC')
|
||
{
|
||
if (isset($member_id))
|
||
{
|
||
if ($member_id == $_SESSION['member_id'])
|
||
{
|
||
if (!$this->acl_check_2D('freenetis', 'view_own')) Controller::error(1);
|
||
if (!$this->acl_check_2D('freenetis', 'view_own'))
|
||
Controller::error(1);
|
||
}
|
||
else
|
||
{
|
||
if (!$this->acl_check_2D('freenetis', 'view_all')) Controller::error(1);
|
||
if (!$this->acl_check_2D('freenetis', 'view_all'))
|
||
Controller::error(1);
|
||
}
|
||
|
||
$model_users = new User_Model();
|
||
$users = $model_users->orderby($order_by,$order_by_direction)->find_all_by_member_id($member_id);
|
||
|
||
$grid = new Grid(url_lang::base().'members/users/', url_lang::lang('texts.My users'),array(
|
||
'separator' => '<br /><br />',
|
||
'use_paginator' => false,
|
||
'use_selector' => false,
|
||
'separator' => '<br /><br />',
|
||
'use_paginator' => false,
|
||
'use_selector' => false,
|
||
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'variables' => $member_id.'/'
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'variables' => $member_id.'/'
|
||
|
||
));
|
||
));
|
||
|
||
if ($this->acl_check_2D('freenetis', 'new_own'))
|
||
$grid->add_new_button(url_lang::base().'users/add/'.$member_id, url_lang::lang('texts.Add new user'));
|
||
... | ... | |
$grid->action_field('id') ->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'users/delete')->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.delete_user').'\');"');;
|
||
$grid->datasource( $users );
|
||
|
||
// creates view
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->content = $grid;
|
||
$view->footer = new View('base/footer');
|
||
|
||
$view->header->title = url_lang::lang('texts.My users');
|
||
$view->header = new View('base/header');
|
||
$view->content = $grid;
|
||
$view->footer = new View('base/footer');
|
||
$view->header->title = url_lang::lang('texts.My users');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
else
|
||
{
|
||
Controller::warning(1);
|
||
}
|
||
|
||
} // end of users function
|
||
|
||
|
||
/**
|
||
* Shows details of member.
|
||
* @param $member_id id of member to show
|
||
* @param $order_by sorting column
|
||
* @param $order_by_direction sorting direction
|
||
* @return unknown_type
|
||
*/
|
||
function show($member_id = NULL, $order_by = 'member_id', $order_by_direction = 'ASC')
|
||
{
|
||
if (isset($member_id))
|
||
... | ... | |
$users = $model_users->orderby($order_by,$order_by_direction)->find_all_by_member_id($member_id);
|
||
|
||
$grid = new Grid(url_lang::base().'members', null,array(
|
||
'separator' => '<br /><br />',
|
||
'use_paginator' => false,
|
||
'use_selector' => false,
|
||
'separator' => '<br /><br />',
|
||
'use_paginator' => false,
|
||
'use_selector' => false,
|
||
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'variables' => $member_id.'/'
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'variables' => $member_id.'/'
|
||
|
||
));
|
||
));
|
||
|
||
if($this->acl_check_new('Users_Controller','users',$member_id))
|
||
$grid->add_new_button(url_lang::base().'users/add/'.$member_id, url_lang::lang('texts.Add new user'));
|
||
... | ... | |
|
||
} // end of show function
|
||
|
||
|
||
/**
|
||
* Adds new member to database. Creates special user assigned to this member.
|
||
* @return unknown_type
|
||
*/
|
||
function add()
|
||
{
|
||
if (!$this->acl_check_new(get_class($this),'members')) Controller::error(1);
|
||
... | ... | |
|
||
} // end of add function
|
||
|
||
/**
|
||
* Creates form for editing member.
|
||
* @param $member_id id of member to edit
|
||
* @return unknown_type
|
||
*/
|
||
function edit($member_id = NULL)
|
||
{
|
||
if (isset($member_id))
|
||
... | ... | |
}
|
||
} // end of edit function
|
||
|
||
/**
|
||
* to do - write comment
|
||
* @param $limit_results
|
||
* @param $page
|
||
* @return unknown_type
|
||
*/
|
||
function registration($limit_results = 500, $page = 1)
|
||
{
|
||
|
||
... | ... | |
$view->render(TRUE);
|
||
|
||
}
|
||
}
|
||
|
||
} // end of registration function
|
||
|
||
/**
|
||
* Checks if username already exists.
|
||
* @param $input new username
|
||
* @return unknown_type
|
||
*/
|
||
function valid_username($input)
|
||
{
|
||
$user_model=new User_Model();
|
||
... | ... | |
$input->add_error('required', url_lang::lang('texts.Username already exists in database.'));
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* Checks validity of phone number.
|
||
* @param $input new phone number
|
||
* @return unknown_type
|
||
*/
|
||
function valid_phone($input)
|
||
{
|
||
$user_model=new User_Model();
|
||
... | ... | |
}
|
||
}
|
||
|
||
/**
|
||
* Checks validity of email.
|
||
* @param $input new email
|
||
* @return unknown_type
|
||
*/
|
||
function valid_email($input)
|
||
{ /*
|
||
{
|
||
// commented - why? to do - write comment
|
||
/*
|
||
$user_model=new User_Model();
|
||
if ($user_model->email_exist($input->value,$this->user_id) || trim($input->value)=='')
|
||
{
|
||
$input->add_error('required', url_lang::lang('texts.Email already exists in database.'));
|
||
}
|
||
*/
|
||
*/
|
||
}
|
||
|
||
}
|
||
?>
|
||
/**
|
||
* Export list of members to xls file. Requires library PEAR.
|
||
* not functional - it says workbook->close() is not defined (creating empty workbook only)
|
||
* looks like it tries to use pear library installed in system instead of our version added to application
|
||
* @return unknown_type
|
||
*/
|
||
function xls_export()
|
||
{
|
||
url::redirect(url_lang::base().'xls_export');
|
||
exit;
|
||
// checks access control
|
||
if (!$this->acl_check_view(get_class($this),'members'))
|
||
Controller::Error(1);
|
||
// requires xls module from library PEAR
|
||
require_once(APPPATH.'vendors/Spreadsheet/Excel/Writer.php');
|
||
// workbook represents xls file
|
||
$workbook = new Spreadsheet_Excel_Writer();
|
||
$workbook->send('database.xls');
|
||
$workbook->setVersion(8);
|
||
// sets xls cells format
|
||
$format_bold =& $workbook->addFormat();
|
||
$format_bold->setBold();
|
||
|
||
// worksheet represents sheet in xls file
|
||
$worksheet =& $workbook->addWorksheet('Clenove');
|
||
//$worksheet->setInputEncoding("UTF-8");
|
||
/*
|
||
// creates database member model
|
||
$member_model = new Member_Model();
|
||
$members = $member_model->find_all();
|
||
$first = true;
|
||
$row = 0;
|
||
$line = $member_model->find(0, FALSE);
|
||
// goes through columns of header
|
||
foreach ($line as $key => $value)
|
||
{
|
||
$valLen = strlen($value);
|
||
// max array stores lenghts of columns in xls sheet
|
||
$max[$key] = $valLen;
|
||
// writes header
|
||
$worksheet->write(0, $col, url_lang::lang('texts.'.$key), $format_bold);
|
||
if ($col >= $colCnt-1)
|
||
$first = false;
|
||
if ($row>=$resultCnt-1)
|
||
$worksheet->setColumn($col, $col, $max[$key]);
|
||
$col++;
|
||
}
|
||
// goes through rows of data
|
||
foreach ($members as $key => $line)
|
||
{
|
||
$colCnt = count($line);
|
||
$col = 0;
|
||
// goes through columns of data and writes them into the sheet
|
||
foreach ($line as $key => $value)
|
||
{
|
||
$valLen = strlen($value);
|
||
if ($max[$key] < $valLen)
|
||
$max[$key] = $valLen;
|
||
// writes data
|
||
$worksheet->write($row, $col, $value);
|
||
if ($row >= $resultCnt)
|
||
$worksheet->setColumn($col, $col, $max[$key]);
|
||
$col++;
|
||
}
|
||
$row++;
|
||
}
|
||
*/
|
||
$workbook->close();
|
||
//url::redirect(url_lang::base().'members/show_all');
|
||
}
|
||
}
|
||
?>
|
freenetis/trunk/kohana/application/controllers/device_engineers.php | ||
---|---|---|
unset($form_data);
|
||
|
||
if ($device_engineer->save()) {
|
||
$this->session->set_flash('message', url_lang::lang('texts.New device engineer was successfully saved.'));
|
||
$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;
|
||
}
|
||
... | ... | |
}
|
||
else
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - can\'t remove engineer.'));
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - it is not possible to remove engineer.'));
|
||
}
|
||
}
|
||
else
|
freenetis/trunk/kohana/application/controllers/xls_export.php | ||
---|---|---|
<?php
|
||
class Xls_Export_Controller extends Controller
|
||
{
|
||
function index()
|
||
{
|
||
// requires xls module from library PEAR
|
||
require_once(APPPATH.'vendors/Spreadsheet/Excel/Writer.php');
|
||
// workbook represents xls file
|
||
$workbook = new Spreadsheet_Excel_Writer();
|
||
$workbook->send('database.xls');
|
||
$workbook->setVersion(8);
|
||
// sets xls cells format
|
||
$format_bold =& $workbook->addFormat();
|
||
$format_bold->setBold();
|
||
|
||
// worksheet represents sheet in xls file
|
||
$worksheet =& $workbook->addWorksheet('Clenove');
|
||
//$worksheet->setInputEncoding("UTF-8");
|
||
/*
|
||
// creates database member model
|
||
$member_model = new Member_Model();
|
||
$members = $member_model->find_all();
|
||
$first = true;
|
||
$row = 0;
|
||
$line = $member_model->find(0, FALSE);
|
||
// goes through columns of header
|
||
foreach ($line as $key => $value)
|
||
{
|
||
$valLen = strlen($value);
|
||
// max array stores lenghts of columns in xls sheet
|
||
$max[$key] = $valLen;
|
||
// writes header
|
||
$worksheet->write(0, $col, url_lang::lang('texts.'.$key), $format_bold);
|
||
if ($col >= $colCnt-1)
|
||
$first = false;
|
||
if ($row>=$resultCnt-1)
|
||
$worksheet->setColumn($col, $col, $max[$key]);
|
||
$col++;
|
||
}
|
||
// goes through rows of data
|
||
foreach ($members as $key => $line)
|
||
{
|
||
$colCnt = count($line);
|
||
$col = 0;
|
||
// goes through columns of data and writes them into the sheet
|
||
foreach ($line as $key => $value)
|
||
{
|
||
$valLen = strlen($value);
|
||
if ($max[$key] < $valLen)
|
||
$max[$key] = $valLen;
|
||
// writes data
|
||
$worksheet->write($row, $col, $value);
|
||
if ($row >= $resultCnt)
|
||
$worksheet->setColumn($col, $col, $max[$key]);
|
||
$col++;
|
||
}
|
||
$row++;
|
||
}
|
||
*/
|
||
$workbook->close();
|
||
//url::redirect(url_lang::base().'members/show_all');
|
||
}
|
||
}
|
||
?>
|
freenetis/trunk/kohana/application/controllers/device_admins.php | ||
---|---|---|
unset($form_data);
|
||
|
||
if ($device_admin->save()) {
|
||
$this->session->set_flash('message', url_lang::lang('texts.New device admin was successfully saved.'));
|
||
$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;
|
||
}
|
||
... | ... | |
unset($form_data);
|
||
|
||
if ($device_admin->save()) {
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device admin is successfully updated.'));
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device admin has been successfully updated.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_id);
|
||
exit;
|
||
}
|
||
... | ... | |
}
|
||
else
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - can\'t remove engineer.'));
|
||
$this->session->set_flash('message', url_lang::lang('texts.Error - it is not possible to remove admin.'));
|
||
}
|
||
}
|
||
else
|
freenetis/trunk/kohana/application/controllers/ip_addresses.php | ||
---|---|---|
<?php
|
||
class Ip_addresses_Controller extends Controller {
|
||
class Ip_addresses_Controller extends Controller
|
||
{
|
||
protected $form;
|
||
protected $arr_mask_by_id;
|
||
protected $arr_net_by_id;
|
||
|
||
function index()
|
||
{
|
||
|
||
url::redirect(url_lang::base().'ip_addresses/show_all');
|
||
}
|
||
|
||
|
||
|
||
//=============================================================================
|
||
//----- SHOW_ALL --------------------------------------------------------------
|
||
//=============================================================================
|
||
/**
|
||
* Shows all ip addresses.
|
||
* @param $limit_results ip addresses per page
|
||
* @param $order_by sorting column
|
||
* @param $order_by_direction sorting direction
|
||
* @return unknown_type
|
||
*/
|
||
function show_all($limit_results = 500, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
|
||
if (!$this->acl_check_view('Devices_Controller','ip_address')) Controller::error(1);
|
||
if (!$this->acl_check_view('Devices_Controller','ip_address'))
|
||
Controller::error(1);
|
||
|
||
//---- delete session device and Iface ----
|
||
$this->session->del('ssDevice_id');
|
||
... | ... | |
|
||
$ip_model = new Ip_address_Model();
|
||
|
||
|
||
|
||
// get new selector
|
||
if (is_numeric($this->input->get('record_per_page'))) $limit_results = (int) $this->input->get('record_per_page');
|
||
|
||
... | ... | |
$sql_offset = (isset($url_array[7])) ? (int) ($url_array[7] - 1) * $limit_results : 0;
|
||
unset($url_array);
|
||
|
||
|
||
//$query = $ip_model->select(array('ifaces.name as iface_name', 'vlan_ifaces.name as vlan_iface_name', 'ip_addresses.*'))->join('ifaces', 'ifaces.id = ip_addresses.iface_id')->join('vlan_ifaces', 'vlan_ifaces.id = ip_addresses.VLAN_iface_id')->orderby($order_by,$order_by_direction)->limit($limit_results,$sql_offset)->find_all();
|
||
/*$db = new Database;
|
||
$query = $db->query('SELECT ifaces.name AS iface_name, vlan_ifaces.name AS vlan_iface_name, ip_addresses.* FROM ip_addresses LEFT JOIN ifaces ON ifaces.id = ip_addresses.iface_id LEFT JOIN vlan_ifaces ON vlan_ifaces.id = ip_addresses.VLAN_iface_id ORDER BY id ASC LIMIT 0, 50');
|
||
*/
|
||
|
||
|
||
|
||
|
||
$filter=new Table_Form(url_lang::base()."ip_addresses/show_all", "get", array(
|
||
|
||
new Table_Form_Item('text','IP_address','IP address'),
|
||
... | ... | |
$total_ip = $ip_model->count_all_ip_addresses($filter->values());
|
||
|
||
$sql_offset = ($sql_offset>$total_ip) ? 0 : $sql_offset;
|
||
|
||
|
||
|
||
|
||
|
||
$grid = new Grid(url_lang::base().'ip_addresses', url_lang::lang('texts.IP addresses list'),array(
|
||
//'separator' => '<br />-----------',
|
||
//'use_paginator' => false,
|
||
... | ... | |
'query_string' => $this->input->get()
|
||
));
|
||
|
||
if ($this->acl_check_new('Devices_Controller','ip_address'))
|
||
$grid->add_new_button(url_lang::base().'ip_addresses/add', url_lang::lang('texts.Add new IP address'));
|
||
$grid->order_field('id')->label('ID')->class('center');
|
||
$grid->order_field('IP_address')->label(url_lang::lang('texts.ip addresses'));
|
||
//$grid->order_field('subnet_name')->label(url_lang::lang('texts.Subnet name'));
|
||
$grid->order_field('MAC')->label(url_lang::lang('texts.MAC'));
|
||
$grid->order_field('segment_name')->label(url_lang::lang('texts.Segment name'));
|
||
$grid->order_field('device_name')->label(url_lang::lang('texts.Device name'));
|
||
$grid->order_field('user_name')->label(url_lang::lang('texts.User'));
|
||
//$grid->order_field('vlan_iface_name')->label(url_lang::lang('texts.VLAN interface name'));
|
||
if ($this->acl_check_view('Devices_Controller','ip_address'))
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Show')) ->url(url_lang::base().'ip_addresses/show') ->action(url_lang::lang('texts.Show'))->class('center');
|
||
if ($this->acl_check_edit('Devices_Controller','ip_address'))
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'ip_addresses/edit') ->action(url_lang::lang('texts.Edit'))->class('center');
|
||
//$grid->action_field('id')->label(url_lang::lang('texts.Delete')) ->url('delete') ->action(url_lang::lang('texts.Delete'))->class('center');
|
||
$grid->datasource( $query );
+ if ($this->acl_check_new('Devices_Controller','ip_address'))
|
||
$grid->add_new_button(url_lang::base().'ip_addresses/add', url_lang::lang('texts.Add new IP address'));
|
||
$grid->order_field('id')->label('ID')->class('center');
|
||
$grid->order_field('IP_address')->label(url_lang::lang('texts.ip addresses'));
|
||
//$grid->order_field('subnet_name')->label(url_lang::lang('texts.Subnet name'));
|
||
$grid->order_field('MAC')->label(url_lang::lang('texts.MAC'));
|
||
$grid->order_field('segment_name')->label(url_lang::lang('texts.Segment name'));
|
||
$grid->order_field('device_name')->label(url_lang::lang('texts.Device name'));
|
||
$grid->order_field('user_name')->label(url_lang::lang('texts.User'));
|
||
//$grid->order_field('vlan_iface_name')->label(url_lang::lang('texts.VLAN interface name'));
|
||
if ($this->acl_check_view('Devices_Controller','ip_address'))
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Show')) ->url(url_lang::base().'ip_addresses/show') ->action(url_lang::lang('texts.Show'))->class('center');
|
||
if ($this->acl_check_edit('Devices_Controller','ip_address'))
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'ip_addresses/edit') ->action(url_lang::lang('texts.Edit'))->class('center');
|
||
//$grid->action_field('id')->label(url_lang::lang('texts.Delete')) ->url('delete') ->action(url_lang::lang('texts.Delete'))->class('center');
|
||
$grid->datasource( $query );
|
||
|
||
|
||
$view = new View('template');
|
||
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.IP addresses list');
|
||
$view->header->menu = Controller::render_menu();
|
||
|
||
$view->content = new View('show_all');
|
||
$view->content->table = $filter->view.$grid;
|
||
$view->content->headline = '';
|
||
|
||
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end SHOW_ALL ----------------------------------------------------------
|
||
//=============================================================================
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.IP addresses list');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->content = new View('show_all');
|
||
$view->content->table = $filter->view.$grid;
|
||
$view->content->headline = '';
|
||
$view->footer = new View('base/footer');
|
||
$view->render(TRUE);
|
||
} // end of show_all function
|
||
|
||
|
||
|
||
//=============================================================================
|
||
//----- SHOW ------------------------------------------------------------------
|
||
//=============================================================================
|
||
/**
|
||
* Shows details of ip address.
|
||
* @param $ip_address_id id of ip address to show
|
||
* @return unknown_type
|
||
*/
|
||
function show($ip_address_id = null)
|
||
{
|
||
|
||
$ip_address = new Ip_address_Model($ip_address_id);
|
||
|
||
$member_id = $ip_address->iface->device->user->member_id;
|
||
... | ... | |
Controller::warning(1);
|
||
}
|
||
|
||
|
||
if (!$this->acl_check_view('Devices_Controller','ip_address',$member_id)) Controller::error(1);
|
||
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
$view->header->title = url_lang::lang('texts.IP address detail').' - '.$ip_address->IP_address;
|
||
$view->header->menu = Controller::render_menu();
|
||
|
||
$view->content = new View('show_ip_addresses');
|
||
$view->content->ip_address = $ip_address;
|
||
$view->content->headline = url_lang::lang('texts.IP address detail').' - '.$ip_address->IP_address;
|
||
//$view->content->table_ip_addresses = $grid_ip_addresses;
|
||
|
||
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end SHOW --------------------------------------------------------------
|
||
//=============================================================================
|
||
|
||
|
||
//=============================================================================
|
||
//----- ADD -------------------------------------------------------------------
|
||
//=============================================================================
|
||
} // end of show function
|
||
|
||
/**
|
||
* Adds new ip address to current interface.
|
||
* @return unknown_type
|
||
*/
|
||
function add()
|
||
{
|
||
//---- Get variable for narrow selecting of selectbox ----
|
||
... | ... | |
$form->submit('submit')->value(url_lang::lang('texts.Save'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
|
||
|
||
|
||
//----- validate form and save data -----------------------------------
|
||
if($form->validate())
|
||
{
|
||
... | ... | |
exit;
|
||
}
|
||
|
||
} else {
|
||
// $form->IP_address->value("ahoj"); //demo of how to fill a field after validation error
|
||
|
||
}
|
||
else
|
||
{
|
||
//$form->IP_address->value("ahoj"); //demo of how to fill a field after validation error
|
||
}
|
||
//----- end validate --------------------------------------------------
|
||
|
||
if ($ssVlan_iface_id) $link_back = html::anchor(url_lang::base().'vlan_ifaces/show/'.$ssVlan_iface_id, url_lang::lang('texts.Back to VLAN interface parameters'));
|
||
... | ... | |
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end ADD ---------------------------------------------------------------
|
||
//=============================================================================
|
||
} // end of add function
|
||
|
||
|
||
//=============================================================================
|
||
//----- EDIT ------------------------------------------------------------------
|
||
//=============================================================================
|
||
/**
|
||
* Edits ip address.
|
||
* @param $ip_address_id id of ipaddress to edit
|
||
* @return unknown_type
|
||
*/
|
||
function edit($ip_address_id = null)
|
||
{
|
||
|
||
|
||
|
||
//---- Get variable for narrow selecting of selectbox ----
|
||
$ssDevice_id = $this->session->get('ssDevice_id');
|
||
$ssIface_id = $this->session->get('ssIface_id');
|
||
... | ... | |
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end EDIT --------------------------------------------------------------
|
||
//=============================================================================
|
||
} // end of edit function
|
||
|
||
/**
|
||
* to do - comment
|
||
* @param $acc_id
|
||
* @return unknown_type
|
||
*/
|
||
function delete($acc_id = NULL)
|
||
{
|
||
// if (!$this->gacl_class->acl_check('freenetis', 'delete_own', 'all', $_SESSION['username'],get_class($this),'delete_accounts')) Controller::error(1);
|
||
... | ... | |
}
|
||
}
|
||
|
||
function valid_ip($input) {
|
||
/**
|
||
* Checks validity of ip address.
|
||
* @param $input
|
||
* @return unknown_type
|
||
*/
|
||
function valid_ip($input)
|
||
{
|
||
$method=$this->form->IP_address->method; // <FORM> method = POST, GET, ...
|
||
$ip=ip2long($this->input->$method('IP_address')); // Submitted values
|
||
$subnet_id=$this->input->$method('subnet_id');
|
||
$subnet_id2=$this->input->$method('subnet_id2');
|
||
|
||
|
||
|
||
if ($subnet_id==0 && $subnet_id2==0) { // subnet was not selected
|
||
if ($ip > 0) // try to find a subnet matching to the ip
|
||
$input->add_error('required', url_lang::lang('texts.Subnet not selected - trying to guess!'));
|
||
... | ... | |
else $input->add_error('required', url_lang::lang('texts.IP address required!'));
|
||
|
||
}
|
||
function check_ip($ip, $net, $mask, $input) {
|
||
|
||
/**
|
||
* Checks ip iddress if matches subnet and mask.
|
||
* @param $ip
|
||
* @param $net
|
||
* @param $mask
|
||
* @param $input
|
||
* @return unknown_type
|
||
*/
|
||
function check_ip($ip, $net, $mask, $input)
|
||
{
|
||
$mask=0xffffffff<<(32-$mask) & 0xffffffff;
|
||
//printf(" ip=%lx, net=%lx, mask=%lx, AND=%lx", $ip, $net, $mask, $ip & $mask);
|
||
|
||
... | ... | |
$input->add_error('required', url_lang::lang('texts.IP address does not match the subnet/mask.'));
|
||
else if ($ip==$net || $ip==($net | ~$mask))
|
||
$input->add_error('required', url_lang::lang('texts.Invalid IP!'));
|
||
|
||
}
|
||
|
||
/**
|
||
* Removed by dulik for SVN rev. 98 - does not work with JavaScript disabled
|
||
|
freenetis/trunk/kohana/application/controllers/devices.php | ||
---|---|---|
<?php
|
||
class Devices_Controller extends Controller {
|
||
|
||
class Devices_Controller extends Controller
|
||
{
|
||
function index()
|
||
{
|
||
url::redirect(url_lang::base().'devices/show_all');
|
||
}
|
||
|
||
|
||
//=============================================================================
|
||
//----- SHOW_ALL --------------------------------------------------------------
|
||
//=============================================================================
|
||
/**
|
||
* Shows all devices.
|
||
* @param $limit_results devices per page
|
||
* @param $order_by sorting column
|
||
* @param $order_by_direction sorting direction
|
||
* @return unknown_type
|
||
*/
|
||
function show_all($limit_results = 500, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
|
||
... | ... | |
$view->header->menu = Controller::render_menu();
|
||
|
||
$view->content = $filter->view . $grid;
|
||
/* $view->content->table = $this->template->content;
|
||
/*
|
||
$view->content->table = $this->template->content;
|
||
$view->content->headline = url_lang::lang('texts.Devices list');*/
|
||
|
||
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end SHOW_ALL ----------------------------------------------------------
|
||
//=============================================================================
|
||
} // end of show_all function
|
||
|
||
//=============================================================================
|
||
//----- SHOW_MY --------------------------------------------------------------
|
||
//=============================================================================
|
||
/**
|
||
* Shows devices of logged member.
|
||
* @param $limit_results
|
||
* @param $order_by
|
||
* @param $order_by_direction
|
||
* @return unknown_type
|
||
*/
|
||
function show_my($limit_results = 500, $order_by = 'id', $order_by_direction = 'ASC')
|
||
{
|
||
$user_id = $this->session->get('user_id');
|
||
... | ... | |
$view->footer = new View('base/footer');
|
||
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end SHOW_MY ----------------------------------------------------------
|
||
//=============================================================================
|
||
} // end of show_my function
|
||
|
||
|
||
/**
|
||
* @todo Add the acl_check calls!
|
||
*/
|
||
... | ... | |
$grid->add_new_button(url_lang::base().'device_engineers/add', url_lang::lang('texts.Add new device engineer'));
|
||
$grid->field('name')->label(url_lang::lang('texts.Name'));
|
||
$grid->field('surname')->label(url_lang::lang('texts.Surname'));
|
||
$grid->field('login')->label(url_lang::lang('texts.User name'));
|
||
$grid->field('login')->label(url_lang::lang('texts.Username'));
|
||
$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($query);
|
||
$grid_device_engineers = $grid;
|
||
... | ... | |
$view->header->title = url_lang::lang('texts.Edit device');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end EDIT --------------------------------------------------------------
|
||
//=============================================================================
|
||
} // end of function edit
|
||
|
||
|
||
//=============================================================================
|
||
//----- ADD WHOLE DEVICE ------------------------------------------------------
|
||
// adds whole device with interface and ip address
|
||
//=============================================================================
|
||
/**
|
||
* 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
|
||
*/
|
||
function add_whole()
|
||
{
|
||
|
||
// gets member id from current session
|
||
$ssMember_id = $this->session->get('ssMember_id');
|
||
|
||
if (!$this->acl_check_new(get_class($this),'devices',$ssMember_id)) Controller::error(1);
|
||
... | ... | |
}
|
||
|
||
|
||
foreach ($users as $user) {
|
||
foreach ($users as $user)
|
||
{
|
||
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
|
||
}
|
||
asort($arr_users);
|
||
... | ... | |
$engineers = $model_user->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);
|
||
... | ... | |
$types[0] = '----- '.url_lang::lang('texts.select type').' -----';
|
||
asort($types);
|
||
|
||
// copied from ifaces.php
|
||
$segment_model = new Segment_Model();
|
||
// models for adding interface
|
||
//$segment_model = new Segment_Model();
|
||
//$iface_model = new Iface_Model();
|
||
|
||
|
||
|
||
// copied from ip_addresses.php
|
||
$iface_model = new Iface_Model();
|
||
|
||
$subnet_model = new Subnet_Model();
|
||
$subnets = $subnet_model
|
||
->select("id","name","network_address as net_str",
|
||
... | ... | |
->orderby('name')->find_all();
|
||
$arr_subnets_netnames[]=$arr_subnets_names[] = '----- '.url_lang::lang('texts.select subnet').' -----';
|
||
$arr_subnets_ids[]=$arr_subnets_masks[]=$arr_subnets_nets[]=0;
|
||
foreach ($subnets as $subnet) {
|
||
foreach ($subnets as $subnet)
|
||
{
|
||
$arr_subnets_names[$subnet->id] = $subnet->name . ": ". $subnet->net_str."/".$subnet->mask;
|
||
$this->arr_mask_by_id[$subnet->id]=$subnet->mask;
|
||
$this->arr_net_by_id[$subnet->id]=$subnet->net;
|
||
... | ... | |
$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').' -----';
|
||
foreach ($segments as $segment) {
|
||
foreach ($segments as $segment)
|
||
{
|
||
$arr_segments[$segment->id] = $segment->name;
|
||
}
|
||
|
||
// form
|
||
// ----
|
||
// adding device only
|
||
// adding device
|
||
$form->dropdown('user_id')->label(url_lang::lang('texts.user'))->options($arr_users)->rules('required');
|
||
$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->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);
|
||
|
||
// adding interface
|
||
$form->group('')->label(url_lang::lang('texts.Iface'));
|
||
// adding interface - copied from ifaces.php
|
||
$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');
|
||
|
||
// adding ip address
|
||
$form->group('')->label(url_lang::lang('texts.IP address'));
|
||
// adding ip address - copied from ip_addresses.php
|
||
$form->input('IP_address')->label(url_lang::lang('texts.IP address').':')->rules('required|length[7,15]')
|
||
->callback(array($this, 'valid_ip'));
|
||
$form->dropdown('subnet_id')->label(url_lang::lang('texts.Select subnet name').':')->rules('required')
|
||
->options($arr_subnets_names);
|
||
|
||
|
||
// submit button
|
||
$form->submit('submit')->value(url_lang::lang('texts.Save'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
|
||
//----- validate form and save data -----------------------------------
|
||
// validates form and saves data
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
// device model
|
||
$device_model = new Device_Model();
|
||
|
||
|
||
//foreach($form_data as $key => $value)
|
||
//{
|
||
// $device_model->$key = htmlspecialchars($value);
|
||
//}
|
||
|
||
$engineers_data[] = $form_data["first_engineer_id"];
|
||
if($form_data["second_engineer_id"]>0)
|
||
$engineers_data[] = $form_data["second_engineer_id"];
|
||
|
||
// 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->description = htmlspecialchars($form_data["description"]);
|
||
//$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"]);
|
||
... | ... | |
// model save
|
||
$device_saved = $device_model->save();
|
||
|
||
// engineers
|
||
// device engineer model
|
||
$device_engineer_saved = TRUE;
|
||
foreach($engineers_data as $engineer_data) {
|
||
|
||
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();
|
||
}
|
||
|
||
// interface model
|
||
$iface_model = new Iface_Model();
|
||
|
||
// interface model
|
||
$iface_model->device_id = $device_model->id;
|
||
$iface_model->segment_id = $form_data["segment_id"];
|
||
$iface_model->MAC = htmlspecialchars($form_data["MAC"]);
|
||
... | ... | |
// iface save
|
||
$iface_model_saved = $iface_model->save();
|
||
|
||
// ip address model
|
||
$ip_address_model = new Ip_address_Model();
|
||
|
||
// ip address model
|
||
$ip_address_model->iface_id = $iface_model->id;
|
||
$ip_address_model->vlan_iface_id = NULL;
|
||
$ip_address_model->subnet_id = $form_data['subnet_id'];
|
||
$ip_address_model->IP_address = $form_data['IP_address'];
|
||
$ip_address_model->dhcp = NULL;
|
||
|
||
// ip save
|
||
// ip address save
|
||
$ip_address_saved = $ip_address_model->save();
|
||
|
||
|
||
unset($form_data);
|
||
|
||
// was everything saved successfully?
|
||
if ($device_saved && $device_engineer_saved && $iface_model_saved && $ip_address_saved)
|
||
{
|
||
$this->session->set_flash('message', url_lang::lang('texts.Device is successfully saved.'));
|
||
url::redirect(url_lang::base().'devices/show/'.$device_model->id);
|
||
exit;
|
||
}
|
||
}
|
||
//----- end validate --------------------------------------------------
|
||
|
||
|
||
} // end of validation
|
||
|
||
$view = new View('template');
|
||
$view->header = new View('base/header');
|
||
// $view->content = new View('content', $data);
|
||
|
||
$view->header = new View('base/header');
|
||
// $view->content = new View('content', $data);
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
|
||
... | ... | |
$view->content->headline = url_lang::lang('texts.Create whole new device');
|
||
}
|
||
|
||
|
||
|
||
$view->footer = new View('base/footer');
|
||
|
||
$view->header->title = url_lang::lang('texts.Add whole new device');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
}
|
||
//----- end ADD WHOLE DEVICE---------------------------------------------------
|
||
//=============================================================================
|
||
|
||
|
||
function valid_ip($input) {
|
||
$view->footer = new View('base/footer');
|
||
$view->header->title = url_lang::lang('texts.Add whole new device');
|
||
$view->header->menu = Controller::render_menu();
|
||
$view->render(TRUE);
|
||
} // end of function add_whole
|
||
|
||
/**
|
||
* Checks validity of ip address.
|
||
* @param $input ip address to validate
|
||
* @return unknown_type
|
||
*/
|
||
function valid_ip($input)
|
||
{
|
||
//$method=$form->IP_address->method; // <FORM> method = POST, GET, ...
|
||
$ip=ip2long($this->input->post('IP_address')); // Submitted values
|
||
$subnet_id=$this->input->post('subnet_id');
|
||
|
||
if ($subnet_id==0) { // subnet was not selected
|
||
if ($ip > 0) // try to find a subnet matching to the ip
|
||
$ip = ip2long($this->input->post('IP_address')); // Submitted values
|
||
$subnet_id = $this->input->post('subnet_id');
|
||
// if subnet was not selected
|
||
if ($subnet_id == 0)
|
||
{
|
||
// try to find a subnet matching to the ip
|
||
if ($ip > 0)
|
||
$input->add_error('required', url_lang::lang('texts.Subnet not selected - trying to guess!'));
|
||
else
|
||
$input->add_error('required', url_lang::lang('texts.Invalid IP!'));
|
||
$input->add_error('required', url_lang::lang('texts.Invalid IP!'));
|
||
return false;
|
||
|
||
}
|
||
|
||
$subnet=$this->arr_net_by_id[$subnet_id];
|
||
$mask=$this->arr_mask_by_id[$subnet_id];
|
||
|
||
if ($ip>0) $this->check_ip($ip, $subnet, $mask, $input);
|
||
else $input->add_error('required', url_lang::lang('texts.IP address required!'));
|
||
|
||
else $input->add_error('required', url_lang::lang('texts.IP address required!'));
|
||
}
|
||
function check_ip($ip, $net, $mask, $input) {
|
||
|
||
/**
|
||
* Checks if ip address match subnet and mask.
|
||
* @param $ip
|
||
* @param $net
|
||
* @param $mask
|
||
* @param $input
|
||
* @return unknown_type
|
||
*/
|
||
function check_ip($ip, $net, $mask, $input)
|
||
{
|
||
$mask=0xffffffff<<(32-$mask) & 0xffffffff;
|
||
//printf(" ip=%lx, net=%lx, mask=%lx, AND=%lx", $ip, $net, $mask, $ip & $mask);
|
||
|
Také k dispozici: Unified diff
Pridan export clenu do xls, ale neni funkcni. Vytvari se poskozene xls soubory. Mozne chyby: nekde u tagy