Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2138

Přidáno uživatelem David Raška před asi 11 roky(ů)

Upravy:
- dokumentace AXO: controllery D

Zobrazit rozdíly:

freenetis/branches/1.1/application/vendors/axo_doc/axo_doc.xml
</method>
<method name="unidentified_transfers"
comment-en="Shows unidentified bank transfers"
comment-cs="Zonrazuje neidentifikovatelné bankovní převody">
comment-cs="Zobrazuje neidentifikovatelné bankovní převody">
<axo usage_type="access" section="Accounts_Controller" value="unidentified_transfers" action="view" own="false"></axo>
<axo usage_type="access-partial" section="Accounts_Controller" value="bank_accounts" action="view" own="false"></axo>
<axo usage_type="links" section="Accounts_Controller" value="transfers" action="new" own="false"></axo>
......
</axo>
</method>
</object>
<object name="device_active_links" type="controller">
<object name="device_active_links" type="controller"
comment-en="Device active links"
comment-cs="Aktivní odkazy zařízení">
<method name="__construct"></method>
<method name="index"></method>
<method name="show_all">
<!-- show_all($limit_results = 50, $order_by = 'device_id',
$order_by_direction = 'ASC', $page_word = null, $page = 1)
{
// access control
if (!$this->acl_check_view('Device_active_links_Controller', 'active_links'))
Controller::error(ACCESS);
$filter_form = new Filter_form('dal');
$filter_form->add('url_pattern')
->label('URL pattern');
$filter_form->add('name');
$filter_form->add('title');
$filter_form->add('show_in_user_grid')
->type('select')
->values(arr::bool());
$filter_form->add('show_in_grid')
->type('select')
->values(arr::bool());
// get new selector
if (is_numeric($this->input->post('record_per_page')))
$limit_results = (int) $this->input->post('record_per_page');
$device_active_link_model = new Device_active_link_Model;
$total_active_links = $device_active_link_model->count_all_active_links($filter_form->as_sql());
// limit check
if (($sql_offset = ($page - 1) * $limit_results) > $total_active_links)
$sql_offset = 0;
// query
$active_links = $device_active_link_model->get_all_active_links(array
(
'offset' => $sql_offset,
'limit' => (int) $limit_results,
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'filter_sql' => $filter_form->as_sql()
));
// headline
$headline = __('Device active links');
// grid of devices
$grid = new Grid('device_active_links', null, array
(
'current' => $limit_results,
'selector_increace' => 50,
'selector_min' => 50,
'selector_max_multiplier' => 20,
'base_url' => Config::get('lang'). '/device_active_links/show_all/'
. $limit_results.'/'.$order_by.'/'.$order_by_direction,
'uri_segment' => 'page',
'total_items' => $total_active_links,
'items_per_page' => $limit_results,
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results,
'filter' => $filter_form
));
if ($this->acl_check_new('Device_active_links_Controller', 'active_links'))
{
$grid->add_new_button('device_active_links/add', 'Add new device active link');
}
$grid->order_field('id')
->label('ID')
->class('center');
$grid->order_field('url_pattern')
->label('URL pattern');
$grid->order_field('name')
->label('Name');
$grid->order_field('title')
->label('title');
$grid->order_callback_field('devices_count')
->class('center');
$grid->order_callback_field('show_in_user_grid')
->label('Show in user grid')
->callback('callback::enabled_field', '')
->class('center');
$grid->order_callback_field('show_in_grid')
->label('Show in grid')
->callback('callback::enabled_field', '')
->class('center');
$actions = $grid->grouped_action_field();
if ($this->acl_check_view('Device_active_links_Controller', 'active_links'))
{
$actions->add_action('id')
->icon_action('show')
->url('device_active_links/show');
}
if ($this->acl_check_edit('Device_active_links_Controller', 'active_links'))
{
$actions->add_action('id')
->icon_action('edit')
->url('device_active_links/edit');
}
if ($this->acl_check_delete('Device_active_links_Controller', 'active_links'))
{
$actions->add_action('id')
->icon_action('delete')
->url('device_active_links/delete')
->class('delete_link');
}
$grid->datasource($active_links);
// view
$view = new View('main');
$view->title = $headline;
$view->breadcrumbs = $headline;
$view->content = new View('show_all');
$view->content->headline = $headline;
$view->content->table = $grid;
$view->render(TRUE);
} // end of show_all function
/**
* Function shows device action link.
*
* @param integer $device_id
*/
public -->
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="new" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="edit" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="delete" own="false"></axo>
<axo usage_type="access" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="links" section="Device_active_links_Controller" value="active_links" action="new" own="false"></axo>
<axo usage_type="grid-action" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="grid-action" section="Device_active_links_Controller" value="active_links" action="edit" own="false"></axo>
<axo usage_type="grid-action" section="Device_active_links_Controller" value="active_links" action="delete" own="false"></axo>
</method>
<method name="show">
<!-- show($active_link_id = null)
{
if (!$this->acl_check_view('Device_active_links_Controller', 'active_links'))
{
Controller::error(ACCESS);
}
if (!isset($active_link_id))
{
Controller::warning(PARAMETER);
}
$active_link = new Device_active_link_Model($active_link_id);
if ($active_link->id == 0)
{
Controller::error(RECORD);
}
$devices = $active_link->get_active_link_devices();
$device_templates = $active_link->get_active_link_devices(NULL,
Device_active_link_Model::TYPE_TEMPLATE
);
$devices_grid = new Grid('devices', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => $devices->count()
));
$devices_grid->Field('id')
->label('ID');
$devices_grid->Field('name');
if ($this->acl_check_view('Devices_Controller', 'devices'))
{
$actions = $devices_grid->grouped_action_field();
$actions->add_conditional_action('id')
->icon_action('show')
->url('devices/show');
}
$devices_grid->datasource($devices);
$device_templates_grid = new Grid('device_templaes', null, array
(
'use_paginator' => false,
'use_selector' => false,
'total_items' => $device_templates->count()
));
$device_templates_grid->Field('id')
->label('ID');
$device_templates_grid->Field('name');
if ($this->acl_check_view('Device_templates_Controller', 'device_template'))
{
$actions = $device_templates_grid->grouped_action_field();
$actions->add_conditional_action('id')
->icon_action('show')
->url('device_templates/show');
}
$device_templates_grid->datasource($device_templates);
// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('device_active_links/show_all', 'Device active links',
$this->acl_check_view('Device_active_links_Controller','active_links'))
->disable_translation()
->text('ID ' . $active_link->id . ' - ' .
(!$active_link->name ? $active_link->title : $active_link->name));
// view
$view = new View('main');
$view->title = __('Device active link').' '.
(!$active_link->name ? $active_link->title : $active_link->name);
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('device_active_links/show');
$view->content->active_link = $active_link;
$view->content->devices_grid = $devices_grid;
$view->content->device_templates_grid = $device_templates_grid;
$view->content->headline = __('Device active link').' '.
(!$active_link->name ? $active_link->title : $active_link->name);
$view->render(TRUE);
} // end of show
/**
* Adds new device active link
*/
public -->
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="false"></axo>
<axo usage_type="unknown" section="Device_templates_Controller" value="device_template" action="view" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="access" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="grid-action" section="Devices_Controller" value="devices" action="view" own="false"></axo>
<axo usage_type="grid-action" section="Device_templates_Controller" value="device_template" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
</method>
<method name="add">
<!-- add()
{
if (!$this->acl_check_new('Device_active_links_Controller', 'active_links'))
{
Controller::error(ACCESS);
}
$device_model = new Device_Model();
$devices = $device_model->select_list_device();
$device_template_model = new Device_template_Model();
$all_device_templates = $device_template_model->get_all_templates();
$device_templates = array();
foreach ($all_device_templates AS $dt)
{
$device_templates[$dt->id] = $dt->name;
}
// forge form
$form = new Forge();
$form->input('url_pattern')
->label('URL pattern')
->rules('required');
$form->input('name');
$form->input('title')
->rules('required');
$form->dropdown('show_in_user_grid')
->options(arr::bool());
$form->dropdown('show_in_grid')
->options(arr::bool());
$form->dropdown('devices[]')
->label('Devices')
->options($devices)
->multiple('multiple')
->size(20);
$form->dropdown('device_templates[]')
->label('Device templates')
->options($device_templates)
->multiple('multiple')
->size(20);
$form->submit('Add');
// validates form and saves data
if ($form->validate())
{
$form_data = $form->as_array();
if (!$form_data['devices'])
{
$form_data['devices'] = array();
}
$dal = new Device_active_link_Model();
try
{
$dal->transaction_start();
$dal->url_pattern = $form_data['url_pattern'];
$dal->name = $form_data['name'];
$dal->title = $form_data['title'];
$dal->show_in_user_grid = $form_data['show_in_user_grid'];
$dal->show_in_grid = $form_data['show_in_grid'];
$dal->save_throwable();
// map devices
$dal->map_devices_to_active_link($form_data['devices'], $dal->id);
// map templates
$dal->map_devices_to_active_link(
$form_data['device_templates'],
$dal->id,
Device_active_link_Model::TYPE_TEMPLATE
);
$dal->transaction_commit();
$this->redirect('device_active_links/show_all');
}
catch (Exception $e)
{
$dal->transaction_rollback();
Log::add_exception($e);
status::error('Device active link has not been successfully saved.', $e);
}
}
$headline = __('Add new device active link');
$breadcrumbs = breadcrumbs::add()
->link('device_active_links/show_all', 'Device active links',
$this->acl_check_view('Device_active_links_Controller', 'active_links'))
->disable_translation()
->text($headline);
$view = new View('main');
$view->title = $headline;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('device_active_links/add');
$view->content->form = $form->html();
$view->content->headline = $headline;
$view->render(TRUE);
} // end of function add
/**
* Function edits device.
*
* @param integer $device_active_link_id
*/
public -->
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="new" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="access" section="Device_active_links_Controller" value="active_links" action="new" own="false"></axo>
<axo usage_type="breadcrumbs" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
</method>
<method name="edit">
<!-- edit($device_active_link_id = null)
{
if (!$this->acl_check_edit('Device_active_links_Controller', 'active_links'))
{
Controller::error(ACCESS);
}
// Get devices
$device_model = new Device_Model();
$devices = $device_model->select_list_device();
// Get device templates
$device_template_model = new Device_template_Model();
$all_device_templates = $device_template_model->get_all_templates();
$device_templates = array();
foreach ($all_device_templates AS $dt)
{
$device_templates[$dt->id] = $dt->name;
}
// Get selected devices
$active_link = new Device_active_link_Model($device_active_link_id);
$selected_devices = array();
foreach ($active_link->get_active_link_devices() AS $device)
{
$selected_devices[] = $device->id;
}
// get selected device templates
$selected_device_templates = array();
foreach ($active_link->get_active_link_devices(NULL, Device_active_link_Model::TYPE_TEMPLATE) AS $dt)
{
$selected_device_templates[] = $dt->id;
}
// forge form
$form = new Forge();
$form->input('url_pattern')
->label('URL pattern')
->rules('required')
->value($active_link->url_pattern);
$form->input('name')
->value($active_link->name);
$form->input('title')
->rules('required')
->value($active_link->title);
$form->dropdown('show_in_user_grid')
->options(arr::bool())
->value($active_link->show_in_user_grid);
$form->dropdown('show_in_grid')
->options(arr::bool())
->value($active_link->show_in_grid);
$form->dropdown('devices[]')
->label('Devices')
->options($devices)
->selected($selected_devices)
->multiple('multiple')
->size(20);
$form->dropdown('device_templates[]')
->label('Device templates')
->options($device_templates)
->selected($selected_device_templates)
->multiple('multiple')
->size(20);
$form->submit('Edit');
// validates form and saves data
if ($form->validate())
{
$form_data = $form->as_array();
if (!$form_data['devices'])
{
$form_data['devices'] = array();
}
try
{
$active_link->transaction_start();
$active_link->url_pattern = $form_data['url_pattern'];
$active_link->name = $form_data['name'];
$active_link->title = $form_data['title'];
$active_link->show_in_user_grid = $form_data['show_in_user_grid'];
$active_link->show_in_grid = $form_data['show_in_grid'];
$active_link->save_throwable();
$active_link->unmap_devices_from_active_link($active_link->id);
$active_link->map_devices_to_active_link($form_data['devices'], $active_link->id);
$active_link->unmap_devices_from_active_link($active_link->id,
Device_active_link_Model::TYPE_TEMPLATE
);
$active_link->map_devices_to_active_link($form_data['device_templates'], $active_link->id,
Device_active_link_Model::TYPE_TEMPLATE
);
$active_link->transaction_commit();
$this->redirect(Path::instance()->previous());
}
catch (Exception $e)
{
$active_link->transaction_rollback();
Log::add_exception($e);
status::error('Device active link has not been successfully saved.', $e);
}
}
$headline = __('Edit device active link');
$breadcrumbs = breadcrumbs::add()
->link('device_active_links/show_all', 'Device active links',
$this->acl_check_view('Device_active_links_Controller', 'active_links'))
->link('device_active_links/show/' . $active_link->id,
'ID ' . $active_link->id . ' - ' .
(!$active_link->name ? $active_link->title : $active_link->name),
$this->acl_check_view('Device_active_links_Controller','active_links'))
->disable_translation()
->text($headline);
$view = new View('main');
$view->title = __('Edit device active link').' '.
(!$active_link->name ? $active_link->title : $active_link->name);
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('device_active_links/add');
$view->content->form = $form->html();
$view->content->headline = __('Edit device active link').' '.
(!$active_link->name ? $active_link->title : $active_link->name);
$view->render(TRUE);
}
/**
* Deletes device action link
*
* @author David Raška
* @param integer $device_active_link_id
*/
public -->
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="edit" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="access" section="Device_active_links_Controller" value="active_links" action="edit" own="false"></axo>
<axo usage_type="breadcrumbs" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Device_active_links_Controller" value="active_links" action="view" own="false"></axo>
</method>
<method name="delete">
<!-- delete($device_active_link_id = null)
{
if (!isset($device_active_link_id))
{
Controller::warning(PARAMETER);
}
$active_link = new Device_active_link_Model($device_active_link_id);
if (!$active_link->id)
{
Controller::error(RECORD);
}
if (!$this->acl_check_delete('Device_active_links_Controller', 'active_links'))
{
Controller::error(ACCESS);
}
$linkback = Path::instance()->previous();
if (url::slice(url_lang::uri($linkback), 1, 1) == 'show')
{
$linkback = 'device_active_links/show_all';
}
// delete
try
{
$active_link->delete_throwable();
status::success('Device active link has been successfully deleted.');
}
catch (Exception $e)
{
Log::add_exception($e);
status::error(__($e->getMessage()), $e);
}
$this->redirect($linkback);
}
} -->
<axo usage_type="unknown" section="Device_active_links_Controller" value="active_links" action="delete" own="false"></axo>
<axo usage_type="access" section="Device_active_links_Controller" value="active_links" action="delete" own="false"></axo>
</method>
</object>
<object name="device_admins" type="controller">
<object name="device_admins" type="controller"
comment-en="Device admins - edits users who can connect administrate device over SSH"
comment-cs="Správci zařízení - upravuje uživatele, kteří mohou spravovat zařízení přes SSH">
<method name="__construct"></method>
<method name="edit">
<!-- edit($device_id = NULL)
{
// access control
if (!$this->acl_check_new('Devices_Controller', 'admin'))
Controller::error(ACCESS);
// bad parameter
if (!isset($device_id) || !is_numeric($device_id))
Controller::warning(PARAMETER);
// device doesn't exist
$device = new Device_Model($device_id);
// record doesn't exist
if (!$device->id)
Controller::error(RECORD);
$user_model = new User_Model();
$users = $user_model->select_list_grouped(FALSE);
$sel_users = array();
foreach ($device->device_admins as $device_admin)
$sel_users[] = $device_admin->user->id;
$form = new Forge();
$form->dropdown('users[]')
->label('Users')
->options($users)
->selected($sel_users)
->multiple('multiple')
->size(20);
$form->submit('Update');
// form is validate
if ($form->validate())
{
$users = (isset($_POST['users'])) ? $_POST['users'] : array();
$device_admin_model = new Device_admin_Model();
$device_admin_model->transaction_start();
try
{
// iterates all current devices of which is user admin
foreach ($device->device_admins as $device_admin)
{
// device is still in list
if (($pos = array_search($device_admin->user->id, $users)) !== FALSE)
unset ($users[$pos]);
// device is not in list - deletes it from list of devices of which is user admin
else
$device_admin->delete_throwable();
}
// adds devices to list of devices of which is user admin
foreach ($users as $user)
{
$device_admin_model->clear();
$device_admin_model->device_id = $device->id;
$device_admin_model->user_id = $user;
$device_admin_model->save_throwable();
}
$device_admin_model->transaction_commit();
status::success('Device admin has been successfully updated.');
}
catch (Exception $e)
{
$device_admin_model->transaction_rollback();
Log::add_exception($e);
status::error('Error - cannot update device admin.', $e);
}
url::redirect('devices/show/'.$device->id);
}
$headline = __('Edit admin of devices') . ': ' .$device->name;
// breadcrumbs navigation
$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 != '' ? $device->name : $device->id),
$this->acl_check_view('Devices_Controller', 'devices', $device->user->member_id))
->text('Edit device admins');
$view = new View('main');
$view->title = $headline;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->form = $form;
$view->render(TRUE);
}
/**
* Edits devices of which is user admin
*
* @author Michal Kliment
* @param integer $user_id
*/
public -->
<axo usage_type="unknown" section="Devices_Controller" value="admin" action="new" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="access" section="Devices_Controller" value="admin" action="new" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="view" own="true"></axo>
</method>
<method name="edit_user">
<!-- edit_user($user_id = NULL)
{
// access control
if (!$this->acl_check_new('Devices_Controller', 'admin'))
Controller::error(ACCESS);
// bad parameter
if (!isset($user_id) || !is_numeric($user_id))
Controller::warning(PARAMETER);
// user doesn't exist
$user = new User_Model($user_id);
// record doesn't exist
if (!$user->id)
Controller::error(RECORD);
$device_model = new Device_Model();
$devices = $device_model->select_list_device();
$form = new Forge();
$sel_devices = array();
foreach ($user->device_admins as $device_admin)
$sel_devices[] = $device_admin->device->id;
$form->dropdown('devices[]')
->label('Devices')
->options($devices)
->selected($sel_devices)
->multiple('multiple')
->size(20);
$form->submit('Update');
// form is validate
if ($form->validate())
{
$devices = (isset($_POST['devices'])) ? $_POST['devices'] : array();
$device_admin_model = new Device_admin_Model();
try
{
$device_admin_model->transaction_start();
// iterates all current devices of which is user admin
foreach ($user->device_admins as $device_admin)
{
// device is still in list
if (($pos = array_search($device_admin->device->id, $devices)) !== FALSE)
unset ($devices[$pos]);
// device is not in list - deletes it from list of devices of which is user admin
else
$device_admin->delete_throwable();
}
// adds devices to list of devices of which is user admin
foreach ($devices as $device)
{
$device_admin_model->clear();
$device_admin_model->device_id = $device;
$device_admin_model->user_id = $user->id;
$device_admin_model->save_throwable();
}
$device_admin_model->transaction_commit();
status::success('Device admin has been successfully updated.');
}
catch (Exception $e)
{
$device_admin_model->transaction_rollback();
Log::add_exception($e);
status::error('Error - cannot update device admin.', $e);
}
url::redirect(url_lang::base().'users/show/'.$user->id);
}
$headline = __('Edit admin of devices') . ': ' .
__('' . $user->name . ' ' . $user->surname);
// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('members/show_all', 'Members',
$this->acl_check_view('Members_Controller', 'members'))
->link('members/show/' . $user->member->id,
'ID ' . $user->member->id . ' - ' . $user->member->name,
$this->acl_check_view('Members_Controller', 'members', $user->member->id))
->link('users/show_by_member/' . $user->member_id, 'Users',
$this->acl_check_view('Users_Controller', 'users', $user->member_id))
->link('users/show/' . $user->id,
$user->name . ' ' . $user->surname . ' (' . $user->login . ')',
$this->acl_check_view('Users_Controller', 'users', $user->member_id))
->text('Edit admin of devices');
$view = new View('main');
$view->title = $headline;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->form = $form;
$view->render(TRUE);
}
/**
* Deletes device admin
*
* @author Michal Kliment
* @param integer $device_admin_id
*/
public -->
<axo usage_type="unknown" section="Devices_Controller" value="admin" action="new" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="access" section="Devices_Controller" value="admin" action="new" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
</method>
<method name="delete">
<!-- delete($device_admin_id = NULL)
{
// bad parameter
if (!$device_admin_id || !is_numeric($device_admin_id))
Controller::warning(PARAMETER);
$device_admin = new Device_admin_Model($device_admin_id);
// record doesn't exist
if (!$device_admin->id)
Controller::error(RECORD);
// access control
if (!$this->acl_check_delete('Devices_Controller', 'admin'))
Controller::error(ACCESS);
// success
if ($device_admin->delete())
{
status::success('Device admin has been successfully removed.');
}
url::redirect(Path::instance()->previous());
}
}
-->
<axo usage_type="unknown" section="Devices_Controller" value="admin" action="delete" own="false"></axo>
<axo usage_type="access" section="Devices_Controller" value="admin" action="delete" own="false"></axo>
</method>
</object>
<object name="device_engineers" type="controller">
<object name="device_engineers" type="controller"
comment-en="Device engineers - Engineers who has performed installation, replacement or repair of device"
comment-cs="Technici zařízení - Technici kteří provedli instalace, výměnu nebo opravu zažízení">
<method name="__construct"></method>
<method name="add">
<!-- add($device_id = null)
{
if (!$this->acl_check_new('Devices_Controller', 'engineer'))
Controller::error(ACCESS);
if (!isset($device_id))
Controller::warning(PARAMETER);
$device = new Device_Model($device_id);
if ($device->id == 0)
Controller::error(RECORD);
$users = ORM::factory('user')->get_users_not_in_engineer_of($device_id);
$arr_users = array();
foreach ($users as $user)
{
$arr_users[$user->id] = $user->name;
}
$arr_users = array(
NULL => '- ' . __('select user') . ' -'
) + $arr_users;
// form
$form = new Forge('device_engineers/add/' . $device_id);
$form->dropdown('user_id')
->label(__('Engineer') . ':')
->options($arr_users)
->rules('required')
->selected(0);
$form->submit('Save');
// validation
if ($form->validate())
{
$form_data = $form->as_array();
$device_engineer = new Device_engineer_Model();
try
{
$device_engineer->transaction_start();
$device_engineer->user_id = $form_data['user_id'];
$device_engineer->device_id = $device_id;
$device_engineer->save_throwable();
$device_engineer->transaction_commit();
status::success('New device engineer has been successfully saved.');
}
catch (Exception $e)
{
$device_engineer->transaction_rollback();
status::error('Error - Cannot add new device engineer.', $e);
Log::add_exception($e);
}
$this->redirect('devices/show/', $device_id);
}
else
{
$header = __('Add new device engineer');
// breadcrumbs navigation
$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 != '' ? $device->name : $device->id),
$this->acl_check_view('Devices_Controller', 'devices', $device->user->member_id))
->text('Add new device engineer');
$view = new View('main');
$view->title = $header;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('form');
$view->content->form = $form->html();
$view->content->headline = $header;
$view->render(TRUE);
}
}
/**
* Removes engineer relation from device.
*
* @param integer $id id of association
*/
public -->
<axo usage_type="unknown" section="Devices_Controller" value="engineer" action="new" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="access" section="Devices_Controller" value="engineer" action="new" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="view" own="true"></axo>
</method>
<method name="delete">
<!-- delete($rel_id = null)
{
if (!$this->acl_check_delete('Devices_Controller', 'engineer'))
Controller::error(ACCESS);
if (!isset($rel_id) || !is_numeric($rel_id))
Controller::warning(PARAMETER);
$device_engineer_model = new Device_engineer_Model($rel_id);
if ($device_engineer_model->id == 0)
Controller::error(RECORD);
$device_id = $device_engineer_model->device_id;
$relations = $device_engineer_model->get_device_engineers($device_id);
// first relation is for the first (main) engineer
if ($rel_id == $relations->current()->id)
{
if (!$this->acl_check_delete('Devices_Controller', 'main_engineer'))
Controller::error(ACCESS);
}
if ($device_engineer_model->delete())
{
status::success('Engineer has been successfully removed from this device.');
}
else
{
status::error('Error - it is not possible to remove engineer.');
}
url::redirect(Path::instance()->previous());
}
}
-->
<axo usage_type="unknown" section="Devices_Controller" value="engineer" action="delete" own="false"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="main_engineer" action="delete" own="false"></axo>
<axo usage_type="access" section="Devices_Controller" value="engineer" action="delete" own="false"></axo>
<axo usage_type="access-partial" section="Devices_Controller" value="main_engineer" action="delete" own="false"></axo>
</method>
</object>
<object name="device_logs" type="controller">
<object name="device_logs" type="controller"
comment-en="Device logs - syslog viewer"
comment-cs="Logy zařízení - prohlížeč syslog">
<method name="__construct"></method>
<method name="show_all">
<!-- show_all($limit_results = 50, $order_by = 'datetime',
$order_by_direction = 'DESC', $page_word = null, $page = 1)
{
// access control
if (!$this->acl_check_view('Device_logs_Controller', 'device_log'))
Controller::error(ACCESS);
$filter_form = new Filter_form();
$filter_form->add('host');
$filter_form->add('facility');
$filter_form->add('priority');
$filter_form->add('level');
$filter_form->add('tag');
$filter_form->add('datetime')
->label('Time')
->type('date');
$filter_form->add('program');
$filter_form->add('msg')
->label('Message');
$data = $this->get_logs(
$page, $limit_results, $order_by, $order_by_direction,
$filter_form->as_array()
);
/**
* @todo Replace with own exception handler
*/
if (!$data)
Controller::error(RECORD);
$title = __('Show logs of device');
// grid of devices
$grid = new Grid('devices', null, array(
'current' => $limit_results,
'selector_increace' => 50,
'selector_min' => 50,
'selector_max_multiplier' => 20,
'base_url' => Config::get('lang').'/device_logs/show_all/'.
$limit_results.'/'.$order_by.'/'.$order_by_direction ,
'uri_segment' => 'page',
'total_items' => $data->total,
'items_per_page' => $limit_results,
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results,
'filter' => $filter_form
));
$grid->order_field('host')
->class('center');
$grid->order_field('facility')
->label(__('Facility'))
->class('center');
$grid->order_field('priority')
->label(__('Priority'))
->class('center');
$grid->order_field('level')
->label(__('Level'))
->class('center');
$grid->order_field('tag')
->label(__('Tag'))
->class('center');
$grid->order_field('datetime')
->label(__('Time'))
->class('center');
$grid->order_field('program')
->label(__('Program'))
->class('center');
$grid->order_field('msg')
->label(__('Message'))
->class('center');
$grid->datasource($data->rows);
// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('devices/show_all', 'Devices',
$this->acl_check_view('Devices_Controller', 'devices'))
->text('Show logs of device');
$view = new View('main');
$view->title = $title;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('show_all');
$view->content->headline = $title;
$view->content->table = $grid;
$view->render(TRUE);
}
/**
* Shows logs belong to device
*
* @author Michal Kliment
* @param integer $device_id
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param string $page_word
* @param integer $page
*/
public -->
<axo usage_type="unknown" section="Device_logs_Controller" value="device_log" action="view" own="false"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="false"></axo>
<axo usage_type="access" section="Device_logs_Controller" value="device_log" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="view" own="false"></axo>
</method>
<method name="show_by_device">
<!-- show_by_device($device_id = NULL, $limit_results = 500, $order_by = 'datetime',
$order_by_direction = 'DESC', $page_word = null, $page = 1)
{
// bad paremeter
if (!$device_id || !is_numeric($device_id))
Controller::warning (PARAMETER);
$device = new Device_Model($device_id);
// device doesn't exist
if (!$device->id)
Controller::error(RECORD);
// access control
if (!$this->acl_check_view('Device_logs_Controller', 'device_log', $device->user->member_id))
Controller::error(ACCESS);
$filter_form = new Filter_form(NULL, url_lang::current(3));
$filter_form->add('facility');
$filter_form->add('priority');
$filter_form->add('level');
$filter_form->add('tag');
$filter_form->add('datetime')
->label('Time')
->type('date');
$filter_form->add('program');
$filter_form->add('msg')
->label('Message');
$ip_address_model = new Ip_address_Model();
$ip_addresses = $ip_address_model->get_ip_addresses_of_device($device->id);
$ips = array();
foreach ($ip_addresses as $ip_address)
$ips[] = $ip_address->ip_address;
$data = $this->get_logs($page, $limit_results, $order_by,
$order_by_direction, $filter_form->as_array(), $ips
);
/**
* @todo Replace with own exception handler
*/
if (!$data)
Controller::error(RECORD);
$title = __('Show logs of device');
// grid of devices
$grid = new Grid('devices', null, array(
'current' => $limit_results,
'selector_increace' => 500,
'selector_min' => 500,
'selector_max_multiplier' => 20,
'base_url' => Config::get('lang').'/device_logs/show_by_device/'.
$device_id.'/'.$limit_results.'/'.$order_by.'/'.$order_by_direction ,
'uri_segment' => 'page',
'total_items' => $data->total,
'items_per_page' => $limit_results,
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results,
'variables' => $device_id . '/',
'url_array_ofset' => 1,
'filter' => $filter_form
));
$grid->order_field('facility')
->label(__('Facility'))
->class('center');
$grid->order_field('priority')
->label(__('Priority'))
->class('center');
$grid->order_field('level')
->label(__('Level'))
->class('center');
$grid->order_field('tag')
->label(__('Tag'))
->class('center');
$grid->order_field('datetime')
->label(__('Time'))
->class('center');
$grid->order_field('program')
->label(__('Program'))
->class('center');
$grid->order_field('msg')
->label(__('Message'))
->class('center');
$grid->datasource($data->rows);
// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('members/show_all', 'Members',
$this->acl_check_view('Members_Controller', 'members'))
->disable_translation()
->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))
->enable_translation()
->link('users/show_by_member/' . $device->user->member_id, 'Users',
$this->acl_check_view('Users_Controller', 'users', $device->user->member_id))
->disable_translation()
->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))
->enable_translation()
->link('devices/show_by_user/' . $device->user->id, 'Devices',
$this->acl_check_view('Devices_Controller', 'devices', $device->user->member_id))
->disable_translation()
->link('devices/show/' . $device->id . '#device_' . $device_id . '_link',
$device->name,
$this->acl_check_edit('Devices_Controller', 'devices', $device->user->member_id))
->enable_translation()
->text('Show logs of device');
$view = new View('main');
$view->title = $title;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('show_all');
$view->content->headline = $title;
$view->content->table = $grid;
$view->render(TRUE);
}
/**
* Returns all logs depending on input data
*
* @author Michal Kliment
* @param integer $page
* @param type $count
* @param type $order_by
* @param type $order_by_direction
* @param type $filter
* @param type $ip_addresses
* @return type
*/
private -->
<axo usage_type="unknown" section="Device_logs_Controller" value="device_log" action="view" own="true"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="unknown" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="unknown" section="Devices_Controller" value="devices" action="edit" own="true"></axo>
<axo usage_type="access" section="Device_logs_Controller" value="device_log" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="false"></axo>
<axo usage_type="breadcrumbs" section="Members_Controller" value="members" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Users_Controller" value="users" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="view" own="true"></axo>
<axo usage_type="breadcrumbs" section="Devices_Controller" value="devices" action="edit" own="true"></axo>
</method>
</object>
<object name="device_templates" type="controller">
<object name="device_templates" type="controller"
comment-en="Device templates"
comment-cs="Šablony zařízení">
<method name="__construct"></method>
<method name="index"></method>
<method name="show_all">
<!-- show_all()
{
// access check
if (!$this->acl_check_view('Device_templates_Controller', 'device_template'))
{
Controller::error(ACCESS);
}
// model
$device_templates = new Device_template_Model();
// gets data
$query = $device_templates->get_all_templates();
// grid
$grid = new Grid('clouds', null, array
(
'use_paginator' => false,
'use_selector' => false
));
if ($this->acl_check_new('Device_templates_Controller', 'device_template'))
{
$grid->add_new_button('device_templates/add', 'Add new template');
$grid->add_new_button('device_templates/import_from_file', 'Import device templates');
}
$grid->add_new_button('device_templates/export_to_json', 'Export device templates');
$grid->field('id')
->label('ID');
$grid->field('enum_type_translated')
->label('Type');
$grid->field('name');
$grid->callback_field('default')
->callback('callback::boolean');
$actions = $grid->grouped_action_field();
$actions->add_action()
->icon_action('show')
->url('device_templates/show');
if ($this->acl_check_edit('Device_templates_Controller', 'device_template'))
{
$actions->add_action()
->icon_action('edit')
->url('device_templates/edit');
}
if ($this->acl_check_delete('Device_templates_Controller', 'device_template'))
{
$actions->add_action()
->icon_action('delete')
->url('device_templates/delete')
->class('delete_link');
}
// load datasource
$grid->datasource($query);
// bread crumbs
$breadcrumbs = breadcrumbs::add()
->text('Device templates')
->html();
// main view
$view = new View('main');
$view->title = __('List of all device templates');
$view->content = new View('show_all');
$view->breadcrumbs = $breadcrumbs;
$view->content->headline = __('List of all device templates');
$view->content->table = $grid;
$view->render(TRUE);
}
/**
* Show device template with given ID
*
* @param integer $device_template_id
*/
public -->
<axo usage_type="unknown" section="Device_templates_Controller" value="device_template" action="view" own="false"></axo>
<axo usage_type="unknown" section="Device_templates_Controller" value="device_template" action="new" own="false"></axo>
<axo usage_type="unknown" section="Device_templates_Controller" value="device_template" action="edit" own="false"></axo>
<axo usage_type="unknown" section="Device_templates_Controller" value="device_template" action="delete" own="false"></axo>
<axo usage_type="access" section="Device_templates_Controller" value="device_template" action="view" own="false"></axo>
<axo usage_type="links" section="Device_templates_Controller" value="device_template" action="new" own="false"></axo>
<axo usage_type="grid-action" section="Device_templates_Controller" value="device_template" action="edit" own="false"></axo>
<axo usage_type="grid-action" section="Device_templates_Controller" value="device_template" action="delete" own="false"></axo>
</method>
<method name="show">
<!-- show($device_template_id = NULL)
{
// param check
if (!$device_template_id || !is_numeric($device_template_id))
{
Controller::warning(PARAMETER);
}
// check acess
if (!$this->acl_check_view('Device_templates_Controller', 'device_template'))
{
Controller::error(ACCESS);
}
$device_templates_model = new Device_template_Model($device_template_id);
// exist record
if (!$device_templates_model->id)
{
Controller::error(RECORD);
}
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff