Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 136

Přidáno uživatelem Jiří Sviták před téměř 16 roky(ů)

pridana moznost ukladani celeho zarizeni vcetne mac a ip adresy. nedodelane, neuklada se iface a ip_address

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'add new subnet' => 'Přidat novu podsíť',
'add new user' => 'Přidat nového uživatele',
'add new vlan interface' => 'Přidat nové VLAN rozhraní',
'add new vlan' => 'Přidat nový VLAN',
'add new vlan' => 'Přidat nový VLAN',
'add new whole device' => 'Přidat nové celé zařízení (router, PC, NB)',
'add new work' => 'Přidat novou práci',
'add' => 'Přidat',
'additional_contacts_infotext' => 'Další kontaktní informace',
freenetis/trunk/kohana/application/controllers/devices.php
));
$grid->add_new_button(url_lang::base().'devices/add', url_lang::lang('texts.add new device').' ');
$grid->add_new_button(url_lang::base().'members/show/'.$member_id, url_lang::lang('texts.back to the member'));
$grid->add_new_button(url_lang::base().'devices/add_whole', url_lang::lang('texts.add new whole device'));
$grid->add_new_button(url_lang::base().'members/show/'.$member_id, url_lang::lang('texts.back to the member'));
$grid->order_field('id')->label('ID')->class('center');
$grid->order_field('name')->label(url_lang::lang('texts.name'));
$grid->order_field('type')->label(url_lang::lang('texts.type'));
......
}
//----- end EDIT --------------------------------------------------------------
//=============================================================================
//=============================================================================
//----- ADD WHOLE DEVICE ------------------------------------------------------
// adds whole device with interface and ip address
//=============================================================================
function add_whole()
{
$ssMember_id = $this->session->get('ssMember_id');
$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'));
$model_user = new User_Model;
// finding member
if($ssMember_id)
{
$member = new Member_Model($ssMember_id);
$users = $model_user->select('id','name','surname','login')->orderby('id')->find_all_by_member_id($ssMember_id);
}
else
{
$users = $model_user->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->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) {
$arr_engineers[$engineer->id] = $engineer->surname.' '.$engineer->name.' - '.$engineer->login;
}
asort($arr_engineers);
$enum_type_model = new Enum_type_Model();
$types = $enum_type_model->get_values(Enum_type_Model::id_type_of_device);
$types[0] = '----- '.url_lang::lang('texts.select type').' -----';
asort($types);
// copied from ifaces.php
$segment_model = new Segment_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",
"inet_aton(network_address) as net",
"32-log2((~inet_aton(netmask) & 0xffffffff) + 1) as mask")
->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) {
$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;
$arr_subnets_nets[] = $subnet->net;
$arr_subnets_masks[] = $subnet->mask;
$arr_subnets_netnames[] = $subnet->net_str."/".$subnet->mask.": ".$subnet->name ;
$arr_subnets_ids[]=$subnet->id;
}
array_multisort($arr_subnets_nets, SORT_NUMERIC, SORT_ASC,
$arr_subnets_masks, SORT_NUMERIC, SORT_ASC,
$arr_subnets_ids, SORT_NUMERIC, SORT_ASC,
$arr_subnets_netnames, SORT_STRING, SORT_ASC);
// form
// ----
// adding device only
$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->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]');
$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 - copied from ifaces.php
$form->input('MAC')->label(url_lang::lang('texts.MAC').':')->rules('required|length[3,250]');
$form->textarea('comment')->label(url_lang::lang('texts.comment').':')->rules('length[0,254]')->cols('20')->rows('5');
// adding ip address - copied from ip_addresses.php
$form->input('IP_address')->label(url_lang::lang('texts.IP address').':')
->callback(array($this, 'valid_ip'));
$form->dropdown('subnet_id')->label(url_lang::lang('texts.Select subnet name').':')
->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 -----------------------------------
if($form->validate())
{
$form_data = $form->as_array();
$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->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->GPS = htmlspecialchars($form_data["GPS"]);
$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();
// engineers
$device_engineer_saved = TRUE;
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->device_id = $device_model->id;
$iface_model->segment_id = $segment_model->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();
// ip address model
$ip->iface_id = htmlspecialchars($form_data["iface_id"]);
$ip->vlan_iface_id = NULL;
$ip->subnet_id = $form_data['subnet_id'];
$ip->IP_address = $form_data['IP_address'];
$ip->dhcp = NULL;
// ip save
$ip_saved = $ip->save();
unset($form_data);
if ($device_saved && $device_engineer_saved && $iface_model_saved && $ip_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 --------------------------------------------------
$view = new View('template');
$view->header = new View('base/header');
// $view->content = new View('content', $data);
$view->content = new View('form');
$view->content->form = $form->html();
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.Create new devices for member').' '.$member->name;
}
else
{
$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.Create new devices');
}
$view->footer = new View('base/footer');
$view->header->title = url_lang::lang('texts.Add new device');
$view->header->menu = Controller::render_menu();
$view->render(TRUE);
}
//----- end ADD WHOLE DEVICE---------------------------------------------------
//=============================================================================
}
?>

Také k dispozici: Unified diff