Revize 1444
Přidáno uživatelem Michal Kliment před asi 12 roky(ů)
freenetis/branches/network/application/models/iface.php | ||
---|---|---|
);
|
||
|
||
/**
|
||
* List of interface types of which can be interface type child
|
||
*
|
||
* @var array
|
||
*/
|
||
private static $can_be_child_of = array
|
||
(
|
||
self::TYPE_VLAN => array
|
||
(
|
||
self::TYPE_WIRELESS,
|
||
self::TYPE_ETHERNET,
|
||
self::TYPE_BRIDGE,
|
||
self::TYPE_INTERNAL
|
||
),
|
||
self::TYPE_WIRELESS => array (self::TYPE_BRIDGE),
|
||
self::TYPE_ETHERNET => array (self::TYPE_BRIDGE),
|
||
);
|
||
|
||
/**
|
||
* Tests if type can have link
|
||
*
|
||
* @author Michal Kliment
|
||
... | ... | |
/**
|
||
* Gets array of iface type to which the given type of interface may connect
|
||
*
|
||
* @param integer $type One of infaces types
|
||
* @param integer $type One of ifaces types
|
||
* @return array
|
||
*/
|
||
public static function get_can_connect_to($type)
|
||
... | ... | |
}
|
||
|
||
/**
|
||
* Gets array of iface type of which the given interface may be child
|
||
*
|
||
* @param type $type One of ifaces types
|
||
* @return type
|
||
*/
|
||
public static function get_can_be_child_of($type)
|
||
{
|
||
if (array_key_exists($type, self::$can_be_child_of))
|
||
{
|
||
return self::$can_be_child_of[$type];
|
||
}
|
||
|
||
return array();
|
||
}
|
||
|
||
/**
|
||
* Returns type of current interface
|
||
*
|
||
* @author Michal Kliment
|
||
... | ... | |
i.id, i.id AS iface_id, i.link_id, l.name AS link_name,
|
||
i.mac, i.name, i.comment, i.type, i.number, i.port_mode, l.bitrate,
|
||
cd.id AS connected_to_device_id, cd.name AS connected_to_device_name,
|
||
COUNT(*) AS connected_to_devices_count,
|
||
GROUP_CONCAT(cd.name SEPARATOR ', \\n') AS connected_to_devices,
|
||
COUNT(DISTINCT cd.id) AS connected_to_devices_count,
|
||
GROUP_CONCAT(DISTINCT cd.name SEPARATOR ', \\n') AS connected_to_devices,
|
||
l.wireless_norm, l.wireless_frequency, i.wireless_mode,
|
||
l.wireless_channel_width, l.wireless_ssid, ir.parent_iface_id,
|
||
pi.name AS parent_name, v.tag_802_1q
|
freenetis/branches/network/application/models/member.php | ||
---|---|---|
SELECT id, id AS member_id, name AS member_name, registration, registrations,
|
||
name, street, street_number, town, quarter, variable_symbol, aid, balance,
|
||
a_comment, a_comments_thread_id, type, entrance_date, leaving_date,
|
||
GROUP_CONCAT(redirect_type SEPARATOR ', ') AS redirect,
|
||
GROUP_CONCAT(redirect_type_text SEPARATOR ', \n') AS redirect_text,
|
||
GROUP_CONCAT(DISTINCT redirect_type SEPARATOR ', ') AS redirect,
|
||
GROUP_CONCAT(DISTINCT redirect_type_text SEPARATOR ', \n') AS redirect_text,
|
||
whitelisted, interrupt, 1 AS redirection, 1 AS email, 1 AS sms,
|
||
cloud
|
||
FROM
|
||
... | ... | |
SELECT c.id AS cloud, IFNULL(u.member_id, c.member_id) AS member_id
|
||
FROM
|
||
(
|
||
SELECT c.*, IFNULL(i1.device_id,i2.device_id) AS device_id, ip.member_id
|
||
SELECT c.*, i.device_id, ip.member_id
|
||
FROM clouds c
|
||
JOIN clouds_subnets cs ON cs.cloud_id = c.id
|
||
JOIN subnets s ON cs.subnet_id = s.id
|
||
JOIN ip_addresses ip ON ip.subnet_id = s.id
|
||
LEFT JOIN ifaces i1 ON ip.iface_id = i1.id
|
||
LEFT JOIN vlan_ifaces vi ON ip.vlan_iface_id = vi.id
|
||
LEFT JOIN ifaces i2 ON vi.iface_id = i2.id
|
||
JOIN ifaces i ON ip.iface_id = i.id
|
||
) c
|
||
LEFT JOIN devices d ON c.device_id = d.id
|
||
LEFT JOIN users u ON d.user_id = u.id
|
||
... | ... | |
SELECT c.id AS cloud, IFNULL(u.member_id, c.member_id) AS member_id
|
||
FROM
|
||
(
|
||
SELECT c.*, IFNULL(i1.device_id,i2.device_id) AS device_id, ip.member_id
|
||
SELECT c.*, i.device_id, ip.member_id
|
||
FROM clouds c
|
||
JOIN clouds_subnets cs ON cs.cloud_id = c.id
|
||
JOIN subnets s ON cs.subnet_id = s.id
|
||
JOIN ip_addresses ip ON ip.subnet_id = s.id
|
||
LEFT JOIN ifaces i1 ON ip.iface_id = i1.id
|
||
LEFT JOIN vlan_ifaces vi ON ip.vlan_iface_id = vi.id
|
||
LEFT JOIN ifaces i2 ON vi.iface_id = i2.id
|
||
JOIN ifaces i ON ip.iface_id = i.id
|
||
) c
|
||
LEFT JOIN devices d ON c.device_id = d.id
|
||
LEFT JOIN users u ON d.user_id = u.id
|
freenetis/branches/network/application/controllers/ifaces.php | ||
---|---|---|
*
|
||
* @param integer $device_id
|
||
*/
|
||
public function add($device_id = null)
|
||
public function add($device_id = NULL, $type = NULL)
|
||
{
|
||
$form = new Forge();
|
||
|
||
$form->group('Basic data');
|
||
|
||
$form->input('iname')
|
||
->label(__('Interface name').':')
|
||
->rules('length[3,250]');
|
||
|
||
$types = array
|
||
(
|
||
NULL => '----- '.__('Select type').' -----'
|
||
) + Iface_Model::get_types();
|
||
|
||
$form->dropdown('itype')
|
||
->label(__('Type').':')
|
||
->options($types)
|
||
->rules('required');
|
||
|
||
$member_id = NULL;
|
||
|
||
if (isset($device_id))
|
||
// device is set
|
||
if ($device_id)
|
||
{
|
||
$device = new Device_Model($device_id);
|
||
if ($device->id == 0)
|
||
Controller::error(RECORD);
|
||
$member_id = $device->user->member_id;
|
||
if ($device->id == 0)
|
||
Controller::error(RECORD);
|
||
|
||
$form->dropdown('device_id')
|
||
->label(__('Device name'))
|
||
->options(array($device_id => $device->name))
|
||
->rules('required');
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link(
|
||
'members/show_all',
|
||
'Members',
|
||
$this->acl_check_view('Members_Controller','members')
|
||
)
|
||
->link(
|
||
'members/show/'.$device->user->member_id,
|
||
'ID '.$device->user->member->id.' - '.$device->user->member->name,
|
||
$this->acl_check_view(
|
||
'Members_Controller',
|
||
'members',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'users/show_by_member/'.$device->user->member_id,
|
||
"Users",
|
||
$this->acl_check_view(
|
||
'Users_Controller',
|
||
'users',$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'users/show/'.$device->user_id,
|
||
$device->user->name.' '.$device->user->surname.' ('.$device->user->login.')',
|
||
$this->acl_check_view(
|
||
'Users_Controller',
|
||
'users',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'devices/show_by_user/'.$device->user_id,
|
||
'Devices',
|
||
$this->acl_check_view(
|
||
'Devices_Controller',
|
||
'devices',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'devices/show/'.$device_id,
|
||
$device->name,
|
||
$this->acl_check_view(
|
||
'Devices_Controller',
|
||
'devices',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->text('Add new interface')
|
||
->html();
|
||
}
|
||
else
|
||
else
|
||
{
|
||
$device_model = new Device_Model();
|
||
|
||
$devices = array
|
||
(
|
||
NULL => '----- '.__('select device').' -----'
|
||
) + $device_model->select_list();
|
||
|
||
$form->dropdown('device_id')
|
||
->label(__('Device name'))
|
||
->options($devices)
|
||
->rules('required')
|
||
->add_button('devices');
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link(
|
||
'ifaces/show_all',
|
||
'Interfaces',
|
||
$this->acl_check_view('Devices_Controller','iface')
|
||
)
|
||
->text('Add new interface')
|
||
->html();
|
||
}
|
||
|
||
// access control
|
||
if (!$this->acl_check_new('Devices_Controller','iface',$member_id))
|
||
Controller::error(ACCESS);
|
||
|
||
$segment_model = new Link_Model();
|
||
|
||
$segments = array
|
||
(
|
||
NULL => '----- '.__('select segment').' -----'
|
||
) + $segment_model->select_list();
|
||
|
||
$form->dropdown('segment_id')
|
||
->label(__('Segment name'))
|
||
->style('width: 600px')
|
||
->options($segments)
|
||
->rules('required')
|
||
->callback(array($this, 'valid_segment'))
|
||
->add_button('segments');
|
||
|
||
$form->input('mac')
|
||
->label(__('MAC').':')
|
||
->rules('required|valid_mac_address');
|
||
|
||
$form->textarea('comment')
|
||
->rules('length[0,254]')
|
||
->cols('20')
|
||
->rows('5');
|
||
|
||
$form->group('Wireless setting');
|
||
|
||
$modes = array
|
||
(
|
||
NULL => '----- '.__('Select mode').' -----'
|
||
) + Wireless_iface_Model::get_modes();
|
||
|
||
$form->dropdown('wmode')
|
||
->label(__('Mode').':')
|
||
->options($modes)
|
||
->callback(array($this, 'valid_mode'));
|
||
|
||
$antennas = array
|
||
(
|
||
NULL => '----- '.__('Select antenna').' -----'
|
||
) + Wireless_iface_Model::get_antennas();
|
||
|
||
$form->dropdown('antenna')
|
||
->options($antennas);
|
||
|
||
$form->input('ssid')
|
||
->label(__('SSID').':');
|
||
|
||
$norms = array
|
||
(
|
||
NULL => '----- '.__('Select norm').' -----'
|
||
) + Wireless_segment_Model::get_norms();
|
||
|
||
$form->dropdown('norm')
|
||
->options($norms);
|
||
|
||
$form->input('frequence');
|
||
|
||
$form->input('channel');
|
||
|
||
$form->input('channel_width');
|
||
|
||
$polarizations = array
|
||
(
|
||
NULL => '----- '.__('Select polarization').' -----'
|
||
) + Wireless_segment_Model::get_polarizations();
|
||
|
||
$form->dropdown('polarization')
|
||
->options($polarizations);
|
||
|
||
$form->submit('Save');
|
||
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
// form is validate
|
||
if($form->validate())
|
||
if ($type)
|
||
{
|
||
$form_data = $form->as_array();
|
||
// iface type doesn't exist
|
||
if (!Iface_Model::get_type($type))
|
||
Controller::error (RECORD);
|
||
|
||
$iface = new Iface_Model();
|
||
|
||
try
|
||
$form = new Forge();
|
||
|
||
$form->group('Basic data');
|
||
|
||
$form->input('name')
|
||
->label(__('Interface name').':')
|
||
->rules('length[3,250]');
|
||
|
||
$member_id = NULL;
|
||
|
||
if ($device_id)
|
||
{
|
||
$iface->transaction_start();
|
||
|
||
$iface->name = $form_data['iname'];
|
||
$iface->type = $form_data['itype'];
|
||
$iface->device_id = $form_data['device_id'];
|
||
$iface->segment_id = $form_data['segment_id'];
|
||
$iface->mac = $form_data['mac'];
|
||
$iface->comment = $form_data['comment'];
|
||
$member_id = $device->user->member_id;
|
||
|
||
$iface->save_throwable();
|
||
$ifaces = $device->ifaces;
|
||
}
|
||
else
|
||
{
|
||
$device_model = new Device_Model();
|
||
|
||
if ($iface->type == Iface_Model::TYPE_WIRELESS)
|
||
$devices = array
|
||
(
|
||
NULL => '----- '.__('select device').' -----'
|
||
) + $device_model->select_list();
|
||
|
||
$form->dropdown('device_id')
|
||
->label(__('Device name'))
|
||
->options($devices)
|
||
->rules('required')
|
||
->add_button('devices');
|
||
|
||
$ifaces = ORM::factory('iface')->find_all();
|
||
}
|
||
|
||
// access control
|
||
if (!$this->acl_check_new('Devices_Controller','iface',$member_id))
|
||
Controller::error(ACCESS);
|
||
|
||
// print mac address field only if it can have mac address
|
||
if (Iface_Model::type_has_mac_address($type))
|
||
{
|
||
$form->input('mac')
|
||
->label(__('MAC').':')
|
||
->rules('valid_mac_address');
|
||
}
|
||
|
||
// print parent iface field only if type is VLAN
|
||
if ($type == Iface_Model::TYPE_VLAN)
|
||
{
|
||
$parent_ifaces = array();
|
||
|
||
foreach ($ifaces as $iface)
|
||
{
|
||
$iface->wireless->wmode = $form_data['wmode'];
|
||
$iface->wireless->antenna = $form_data['antenna'];
|
||
// limit options only if type is given
|
||
if (!$type ||
|
||
in_array($iface->type, Iface_Model::get_can_be_child_of($type)))
|
||
{
|
||
$parent_ifaces[$iface->id] = $iface->name;
|
||
}
|
||
}
|
||
|
||
$iface->wireless->iface_id = $iface->id;
|
||
$iface->wireless->save_throwable();
|
||
$parent_ifaces = array
|
||
(
|
||
NULL => '------- '.__('Select parent iface').' -------'
|
||
) + $parent_ifaces;
|
||
|
||
if ($iface->wireless->wmode = Wireless_iface_Model::WIRELESS_MODE_AP)
|
||
$form->dropdown('parent_iface_id')
|
||
->label('Parent iface')
|
||
->options($parent_ifaces);
|
||
|
||
$vlans = array
|
||
(
|
||
NULL => '------- '.__('Select VLAN').' -------'
|
||
) + ORM::factory('vlan')->select_list();
|
||
|
||
$form->dropdown('vlan_id')
|
||
->label('VLAN')
|
||
->options($vlans);
|
||
}
|
||
|
||
// print children ifaces field only if type is bridge
|
||
if ($type == Iface_Model::TYPE_BRIDGE)
|
||
{
|
||
$child_ifaces = array();
|
||
|
||
foreach ($ifaces as $iface)
|
||
{
|
||
// limit options only if type is given
|
||
if (!$type ||
|
||
in_array($type, Iface_Model::get_can_be_child_of($iface->type)))
|
||
{
|
||
$iface->segment->wireless->ssid = $form_data['ssid'];
|
||
$iface->segment->wireless->norm = $form_data['norm'];
|
||
$iface->segment->wireless->frequence = $form_data['frequence'];
|
||
$iface->segment->wireless->channel = $form_data['channel'];
|
||
$iface->segment->wireless->channel_width = $form_data['channel_width'];
|
||
$iface->segment->wireless->polarization = $form_data['polarization'];
|
||
$child_ifaces[$iface->id] = $iface->name;
|
||
}
|
||
}
|
||
|
||
$iface->segment->wireless->segment_id = $iface->segment->id;
|
||
$iface->segment->wireless->save_throwable();
|
||
$form->dropdown('children_ifaces')
|
||
->multiple('multiple')
|
||
->options($child_ifaces)
|
||
->size(15);
|
||
}
|
||
|
||
if ($type == Iface_Model::TYPE_PORT)
|
||
{
|
||
$modes = array
|
||
(
|
||
NULL => '------- '.__('Select port mode').' -------'
|
||
) + Iface_Model::get_port_modes();
|
||
|
||
$form->dropdown('port_mode')
|
||
->options($modes);
|
||
}
|
||
|
||
// print wireless fields only if type is wireless
|
||
if ($type == Iface_Model::TYPE_WIRELESS)
|
||
{
|
||
$modes = array
|
||
(
|
||
NULL => '----- '.__('Select mode').' -----'
|
||
) + Iface_Model::get_wireless_modes();
|
||
|
||
$form->dropdown('wireless_mode')
|
||
->label(__('Mode').':')
|
||
->options($modes)
|
||
->callback(array($this, 'valid_mode'));
|
||
|
||
$antennas = array
|
||
(
|
||
NULL => '----- '.__('Select antenna').' -----'
|
||
) + Iface_Model::get_wireless_antennas();
|
||
|
||
$form->dropdown('wireless_antenna')
|
||
->label('Antenna')
|
||
->options($antennas);
|
||
|
||
$form->input('wireless_ssid')
|
||
->label(__('SSID').':');
|
||
|
||
$norms = array
|
||
(
|
||
NULL => '----- '.__('Select norm').' -----'
|
||
) + Link_Model::get_wireless_norms();
|
||
|
||
$form->dropdown('wireless_norm')
|
||
->label('norm')
|
||
->options($norms);
|
||
|
||
$form->input('wireless_frequency')
|
||
->label('Frequency');
|
||
|
||
$form->input('wireless_channel')
|
||
->label('Channel');
|
||
|
||
$form->input('wireless_channel_width')
|
||
->label('Channel width');
|
||
|
||
$polarizations = array
|
||
(
|
||
NULL => '----- '.__('Select polarization').' -----'
|
||
) + Link_Model::get_wireless_polarizations();
|
||
|
||
$form->dropdown('wireless_polarization')
|
||
->label('Polarization')
|
||
->options($polarizations);
|
||
}
|
||
|
||
$form->textarea('comment')
|
||
->rules('length[0,254]')
|
||
->cols('20')
|
||
->rows('5');
|
||
|
||
// print link field only if type can has link
|
||
if (Iface_Model::type_has_link($type))
|
||
{
|
||
$link_model = new Link_Model();
|
||
|
||
$links = array
|
||
(
|
||
NULL => '----- '.__('select link').' -----'
|
||
) + $link_model->select_list();
|
||
|
||
$form->dropdown('link_id')
|
||
->label(__('Link name'))
|
||
->style('width: 600px')
|
||
->options($links)
|
||
->callback(array($this, 'valid_link'))
|
||
->add_button('links');
|
||
}
|
||
|
||
$form->submit('Save');
|
||
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
// form is validate
|
||
if($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
$iface = new Iface_Model();
|
||
|
||
try
|
||
{
|
||
$iface->transaction_start();
|
||
|
||
$iface->name = $form_data['iname'];
|
||
$iface->type = $form_data['itype'];
|
||
$iface->device_id = $form_data['device_id'];
|
||
$iface->segment_id = $form_data['segment_id'];
|
||
$iface->mac = $form_data['mac'];
|
||
$iface->comment = $form_data['comment'];
|
||
|
||
$iface->save_throwable();
|
||
|
||
if ($iface->type == Iface_Model::TYPE_WIRELESS)
|
||
{
|
||
$iface->wireless->wmode = $form_data['wmode'];
|
||
$iface->wireless->antenna = $form_data['antenna'];
|
||
|
||
$iface->wireless->iface_id = $iface->id;
|
||
$iface->wireless->save_throwable();
|
||
|
||
if ($iface->wireless->wmode = Wireless_iface_Model::WIRELESS_MODE_AP)
|
||
{
|
||
$iface->segment->wireless->ssid = $form_data['ssid'];
|
||
$iface->segment->wireless->norm = $form_data['norm'];
|
||
$iface->segment->wireless->frequence = $form_data['frequence'];
|
||
$iface->segment->wireless->channel = $form_data['channel'];
|
||
$iface->segment->wireless->channel_width = $form_data['channel_width'];
|
||
$iface->segment->wireless->polarization = $form_data['polarization'];
|
||
|
||
$iface->segment->wireless->segment_id = $iface->segment->id;
|
||
$iface->segment->wireless->save_throwable();
|
||
}
|
||
}
|
||
|
||
$iface->transaction_commit();
|
||
|
||
status::success('Interface has been successfully saved.');
|
||
|
||
$this->redirect('show', $iface->id);
|
||
}
|
||
|
||
$iface->transaction_commit();
|
||
|
||
status::success('Interface has been successfully saved.');
|
||
|
||
$this->redirect('show', $iface->id);
|
||
catch (Exception $e)
|
||
{
|
||
$iface->transaction_rollback();
|
||
|
||
status::error('Error - Cannot add interface.');
|
||
|
||
$this->redirect('show_all');
|
||
}
|
||
}
|
||
catch (Exception $e)
|
||
else
|
||
{
|
||
$iface->transaction_rollback();
|
||
|
||
status::error('Error - Cannot add interface.');
|
||
|
||
$this->redirect('show_all');
|
||
|
||
$headline = __('Add new interface');
|
||
$view = new View('main');
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->title = $headline;
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->headline = $headline;
|
||
$view->render(TRUE);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
// device is set
|
||
if ($device_id)
|
||
$form = new Forge();
|
||
|
||
$types = array
|
||
(
|
||
NULL => '----- '.__('Select type').' -----'
|
||
) + Iface_Model::get_types();
|
||
|
||
$form->dropdown('type')
|
||
->label(__('Type').':')
|
||
->options($types)
|
||
->rules('required');
|
||
|
||
$form->submit('submit');
|
||
|
||
if ($form->validate())
|
||
{
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link(
|
||
'members/show_all',
|
||
'Members',
|
||
$this->acl_check_view('Members_Controller','members')
|
||
)
|
||
->link(
|
||
'members/show/'.$device->user->member_id,
|
||
'ID '.$device->user->member->id.' - '.$device->user->member->name,
|
||
$this->acl_check_view(
|
||
'Members_Controller',
|
||
'members',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'users/show_by_member/'.$device->user->member_id,
|
||
"Users",
|
||
$this->acl_check_view(
|
||
'Users_Controller',
|
||
'users',$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'users/show/'.$device->user_id,
|
||
$device->user->name.' '.$device->user->surname.' ('.$device->user->login.')',
|
||
$this->acl_check_view(
|
||
'Users_Controller',
|
||
'users',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'devices/show_by_user/'.$device->user_id,
|
||
'Devices',
|
||
$this->acl_check_view(
|
||
'Devices_Controller',
|
||
'devices',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->link(
|
||
'devices/show/'.$device_id,
|
||
$device->name,
|
||
$this->acl_check_view(
|
||
'Devices_Controller',
|
||
'devices',
|
||
$device->user->member_id
|
||
)
|
||
)
|
||
->text('Add new interface')
|
||
->html();
|
||
$form_data = $form->as_array();
|
||
|
||
$this->redirect('ifaces/add/'.(int) $device_id.'/'.$form_data['type']);
|
||
}
|
||
else
|
||
{
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link(
|
||
'ifaces/show_all',
|
||
'Interfaces',
|
||
$this->acl_check_view('Devices_Controller','iface')
|
||
)
|
||
->text('Add new interface')
|
||
->html();
|
||
$headline = __('Add new interface');
|
||
$view = new View('main');
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->title = $headline;
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->headline = $headline;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
$headline = __('Add new interface');
|
||
$view = new View('main');
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->title = $headline;
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->headline = $headline;
|
||
$view->render(TRUE);
|
||
}
|
||
} // end of add
|
||
|
||
... | ... | |
}
|
||
|
||
// form
|
||
$form = new Forge('ifaces/edit/' . $iface_id);
|
||
$form = new Forge();
|
||
|
||
$form->group('Basic data');
|
||
|
||
... | ... | |
->options(array($iface->device->id => $iface->device->name))
|
||
->rules('required');
|
||
|
||
$segment_model = new Link_Model();
|
||
$link_model = new Link_Model();
|
||
|
||
$segments = array(
|
||
NULL => '----- '.__('select segment').' -----'
|
||
) + $segment_model->get_all_links_to_iface_dropdown();
|
||
$links = array(
|
||
NULL => '----- '.__('select link').' -----'
|
||
) + $link_model->get_all_links_to_iface_dropdown();
|
||
|
||
$form->dropdown('segment_id')
|
||
->label(__('Segment name'))
|
||
$form->dropdown('link_id')
|
||
->label(__('Link name'))
|
||
->style('width: 600px')
|
||
->options($segments)
|
||
->rules('required')
|
||
->selected($iface->segment_id)
|
||
->callback(array($this, 'valid_segment'))
|
||
->add_button('segments');
|
||
->options($links)
|
||
->selected($iface->link_id)
|
||
->callback(array($this, 'valid_link'))
|
||
->add_button('links');
|
||
|
||
$form->input('mac')
|
||
->label(__('MAC').':')
|
||
->rules('required|valid_mac_address')
|
||
->rules('valid_mac_address')
|
||
->value($iface->mac);
|
||
|
||
$form->textarea('comment')
|
||
... | ... | |
$modes = array
|
||
(
|
||
NULL => '----- '.__('Select mode').' -----'
|
||
) + Wireless_iface_Model::get_modes();
|
||
) + Iface_Model::get_wireless_modes();
|
||
|
||
$form->dropdown('wmode')
|
||
->label(__('Mode').':')
|
||
->options($modes)
|
||
->selected($iface->wireless->wmode)
|
||
->selected($iface->wireless_mode)
|
||
->callback(array($this, 'valid_mode'));
|
||
|
||
$antennas = array
|
||
(
|
||
NULL => '----- '.__('Select antenna').' -----'
|
||
) + Wireless_iface_Model::get_antennas();
|
||
) + Iface_Model::get_wireless_antennas();
|
||
|
||
$form->dropdown('antenna')
|
||
->options($antennas)
|
||
->selected($iface->wireless->antenna);
|
||
->selected($iface->wireless_antenna);
|
||
|
||
$form->input('ssid')
|
||
->value($iface->segment->wireless->ssid);
|
||
->value($iface->link->wireless_ssid);
|
||
|
||
$norms = array
|
||
(
|
||
NULL => '----- '.__('Select norm').' -----'
|
||
) + Wireless_segment_Model::get_norms();
|
||
) + Link_Model::get_wireless_norms();
|
||
|
||
$form->dropdown('norm')
|
||
->options($norms)
|
||
->selected($iface->segment->wireless->norm);
|
||
->selected($iface->link->wireless_norm);
|
||
|
||
$form->input('frequence')
|
||
->value($iface->segment->wireless->frequence);
|
||
->value($iface->link->wireless_frequency);
|
||
|
||
$form->input('channel')
|
||
->value($iface->segment->wireless->channel);
|
||
->value($iface->link->wireless_channel);
|
||
|
||
$form->input('channel_width')
|
||
->value($iface->segment->wireless->channel_width);
|
||
->value($iface->link->wireless_channel_width);
|
||
|
||
$polarizations = array
|
||
(
|
||
NULL => '----- '.__('Select polarization').' -----'
|
||
) + Wireless_segment_Model::get_polarizations();
|
||
) + Link_Model::get_wireless_polarizations();
|
||
|
||
$form->dropdown('polarization')
|
||
->options($polarizations)
|
||
->selected($iface->segment->wireless->polarization);
|
||
->selected($iface->link->wireless_polarization);
|
||
|
||
$form->submit('Update');
|
||
|
Také k dispozici: Unified diff
Oprava zobrazeni vsech clenu. Zapocaty prace na pridavani rozhrani.