Revize 2151
Přidáno uživatelem David Raška před asi 11 roky(ů)
freenetis/branches/1.1/application/controllers/messages.php | ||
---|---|---|
*/
|
||
public function show($message_id = NULL)
|
||
{
|
||
if (!$this->acl_check_new('Messages_Controller', 'message'))
|
||
if (!$this->acl_check_view('Messages_Controller', 'message'))
|
||
Controller::error(ACCESS);
|
||
|
||
if (!isset($message_id))
|
freenetis/branches/1.1/application/vendors/axo_doc/axo_doc.xml | ||
---|---|---|
<axo usage_type="access" section="Membership_transfers_Controller" value="membership_transfer" action="delete" own="true"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="messages" type="controller">
|
||
<object name="messages" type="controller" comment-en="Messages - manages messages for redirection, notification e-mails and smss" comment-cs="Zprávy - spravuje zprávy pro přerušení, upozorňovací emaily a sms">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<!-- show_all(
|
||
$limit_results = 500, $order_by = 'id',
|
||
$order_by_direction = 'asc', $page_word = null, $page = 1)
|
||
{
|
||
// access rights
|
||
if (!$this->acl_check_view('Messages_Controller', 'message'))
|
||
Controller::error(ACCESS);
|
||
|
||
if (is_numeric($this->input->post('record_per_page')))
|
||
$limit_results = (int) $this->input->post('record_per_page');
|
||
|
||
$allowed_order_type = array
|
||
(
|
||
'id', 'from', 'to', 'extension', 'opening_balance', 'closing_balance'
|
||
);
|
||
|
||
if (!in_array(strtolower($order_by), $allowed_order_type))
|
||
$order_by = 'id';
|
||
|
||
if (strtolower($order_by_direction) != 'desc')
|
||
$order_by_direction = 'asc';
|
||
|
||
$filter_form = new Filter_form('m');
|
||
|
||
$filter_form->add('name');
|
||
|
||
$filter_form->add('type')
|
||
->type('select')
|
||
->values(Message_Model::get_types());
|
||
|
||
if (module::e('redirection'))
|
||
{
|
||
$filter_form->add('text')
|
||
->label('Content of the message for redirection');
|
||
}
|
||
|
||
if (module::e('email'))
|
||
{
|
||
$filter_form->add('email_text')
|
||
->label('Content of the message for e-mail');
|
||
}
|
||
|
||
if (module::e('sms'))
|
||
{
|
||
$filter_form->add('sms_text')
|
||
->label('Content of the message for sms');
|
||
}
|
||
|
||
$filter_form->add('self_cancel')
|
||
->label('User-cancelable')
|
||
->type('select')
|
||
->values(Message_Model::get_self_cancel_messages());
|
||
|
||
$filter_form->add('ignore_whitelist')
|
||
->type('select')
|
||
->values(arr::bool());
|
||
|
||
// model
|
||
$message_model = new Message_Model();
|
||
|
||
$total_messages = $message_model->count_all_messages($filter_form->as_sql());
|
||
|
||
if (($sql_offset = ($page - 1) * $limit_results) > $total_messages)
|
||
$sql_offset = 0;
|
||
|
||
$messages = $message_model->get_all_messages(
|
||
$sql_offset, $limit_results, $order_by, $order_by_direction,
|
||
$filter_form->as_sql()
|
||
);
|
||
|
||
$headline = __('Messages');
|
||
|
||
$grid = new Grid('messages', null, array
|
||
(
|
||
'current' => $limit_results,
|
||
'selector_increace' => 500,
|
||
'selector_min' => 500,
|
||
'selector_max_multiplier' => 10,
|
||
'base_url' => Config::get('lang')
|
||
. '/messages/show_all/' . $limit_results
|
||
. '/' . $order_by . '/' . $order_by_direction,
|
||
'uri_segment' => 'page',
|
||
'total_items' => isset($total_messages) ? $total_messages : 0,
|
||
'items_per_page' => $limit_results,
|
||
'style' => 'classic',
|
||
'order_by' => $order_by,
|
||
'order_by_direction' => $order_by_direction,
|
||
'limit_results' => $limit_results,
|
||
'url_array_ofset' => 1,
|
||
'filter' => $filter_form
|
||
));
|
||
|
||
$grid->add_new_button('messages/add', __('Add new message'));
|
||
|
||
$grid->order_field('id')
|
||
->label('ID');
|
||
|
||
$grid->order_callback_field('message')
|
||
->label('Name')
|
||
->callback('callback::message_field');
|
||
|
||
$grid->callback_field('type')
|
||
->callback('callback::message_type_field');
|
||
|
||
$grid->callback_field('self_cancel')
|
||
->label(__('SC').' '.help::hint('self_cancel'))
|
||
->callback('callback::message_self_cancel_field');
|
||
|
||
$grid->callback_field('ignore_whitelist')
|
||
->label(__('IW').' '.help::hint('ignore_whitelist'))
|
||
->callback('callback::boolean');
|
||
|
||
if ($this->acl_check_view('Messages_Controller', 'preview'))
|
||
{
|
||
$grid->callback_field('id')
|
||
->label('Preview')
|
||
->callback('callback::message_preview_field');
|
||
}
|
||
|
||
if ($this->acl_check_edit('Messages_Controller', 'activate'))
|
||
{
|
||
$grid->callback_field('id')
|
||
->label('Activate')
|
||
->callback('callback::message_activate_field');
|
||
}
|
||
|
||
if ($this->acl_check_edit('Messages_Controller', 'deactivate'))
|
||
{
|
||
$grid->callback_field('id')
|
||
->label('Deactivate')
|
||
->callback('callback::message_deactivate_field');
|
||
}
|
||
|
||
$actions = $grid->grouped_action_field();
|
||
|
||
if ($this->acl_check_view('Messages_Controller', 'message'))
|
||
{
|
||
$actions->add_conditional_action()
|
||
->condition('is_activatable_directlty')
|
||
->icon_action('show')
|
||
->url('messages/show');
|
||
}
|
||
|
||
if ($this->acl_check_edit('Messages_Controller', 'message'))
|
||
{
|
||
$actions->add_conditional_action()
|
||
->condition('is_message_automatical_config')
|
||
->icon_action('settings_auto')
|
||
->url('messages_auto_settings/show')
|
||
->label('Setup automatical activation');
|
||
|
||
$actions->add_action()
|
||
->icon_action('edit')
|
||
->url('messages/edit');
|
||
}
|
||
|
||
if ($this->acl_check_delete('Messages_Controller', 'message'))
|
||
{
|
||
$actions->add_conditional_action()
|
||
->condition('is_message_type_of_user')
|
||
->icon_action('delete')
|
||
->url('messages/delete')
|
||
->class('delete_link');
|
||
}
|
||
|
||
$grid->datasource($messages);
|
||
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = __('Messages');
|
||
$view->content = new View('show_all');
|
||
$view->content->headline = $headline;
|
||
$view->content->table = $grid;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
|
||
/**
|
||
* Adds new user message.
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="preview" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="activate" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="deactivate" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="delete" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access-partial" section="Messages_Controller" value="preview" action="view" own="false"></axo>
|
||
<axo usage_type="access-partial" section="Messages_Controller" value="activate" action="edit" own="false"></axo>
|
||
<axo usage_type="access-partial" section="Messages_Controller" value="deactivate" action="edit" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Messages_Controller" value="message" action="edit" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Messages_Controller" value="message" action="delete" own="false"></axo>
|
||
</method>
|
||
<method name="add">
|
||
<!-- add()
|
||
{
|
||
// access rights
|
||
if (!$this->acl_check_new('Messages_Controller', 'message'))
|
||
Controller::error(ACCESS);
|
||
|
||
$form = new Forge('messages/add');
|
||
|
||
$form->group('Basic information');
|
||
|
||
$form->input('name')
|
||
->label('Message name')
|
||
->rules('required|length[3,200]')
|
||
->style('width: 600px');
|
||
|
||
$form->dropdown('self_cancel')
|
||
->label('User-cancelable')
|
||
->options(Message_Model::get_self_cancel_messages())
|
||
->selected(Message_Model::SELF_CANCEL_MEMBER)
|
||
->style('width: 600px');
|
||
|
||
$form->dropdown('ignore_whitelist')
|
||
->options(arr::rbool())
|
||
->selected(0);
|
||
|
||
if (module::e('redirection'))
|
||
{
|
||
$form->html_textarea('text')
|
||
->label(__('Content of the message for redirection').': '.
|
||
help::hint('content_of_message'))
|
||
->rows(5)
|
||
->cols(100);
|
||
}
|
||
|
||
if (module::e('email'))
|
||
{
|
||
$form->html_textarea('email_text')
|
||
->label(__('Content of the message for E-mail').': '.
|
||
help::hint('content_of_message'))
|
||
->rows(5)
|
||
->cols(100);
|
||
}
|
||
|
||
if (module::e('sms'))
|
||
{
|
||
$form->textarea('sms_text')
|
||
->label(__('Content of the message for SMS').': '.
|
||
help::hint('content_of_message'))
|
||
->rules('length[1,760]')
|
||
->style('width: 100%; max-width: 633px; height: 150px');
|
||
}
|
||
|
||
$form->submit('Add');
|
||
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array(FALSE);
|
||
|
||
$message = new Message_Model();
|
||
|
||
try
|
||
{
|
||
$message->transaction_start();
|
||
|
||
$message->name = htmlspecialchars($form_data['name']);
|
||
$message->type = Message_Model::USER_MESSAGE;
|
||
$message->self_cancel = htmlspecialchars($form_data['self_cancel']);
|
||
$message->ignore_whitelist = htmlspecialchars($form_data['ignore_whitelist']);
|
||
|
||
// redir text
|
||
if (module::e('redirection') &&
|
||
Message_Model::has_redirection_content($message->type))
|
||
{
|
||
$message->text = $form_data['text'];
|
||
}
|
||
|
||
// email text
|
||
if (module::e('email') &&
|
||
Message_Model::has_email_content($message->type))
|
||
{
|
||
$email_text = trim($form_data['email_text']);
|
||
$message->email_text = empty($email_text) ? NULL : $email_text;
|
||
}
|
||
|
||
// sms text
|
||
if (module::e('sms') &&
|
||
Message_Model::has_sms_content($message->type))
|
||
{
|
||
$sms_text = trim(text::cs_utf2ascii(strip_tags($form_data['sms_text'])));
|
||
$message->sms_text = empty($sms_text) ? NULL : $sms_text;
|
||
}
|
||
|
||
$message->save_throwable();
|
||
|
||
$message->transaction_commit();
|
||
status::success('Message has been successfully added.');
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
$message->transaction_rollback();
|
||
status::error('Error - cannot add message.', $e);
|
||
Log::add_exception($e);
|
||
}
|
||
|
||
$this->redirect('messages/show_all');
|
||
}
|
||
else
|
||
{
|
||
$headline = __('Add notification message');
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view('Messages_Controller', 'message')
|
||
)->disable_translation()
|
||
->text($headline);
|
||
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->content = new View('form');
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
} // end of add
|
||
|
||
/**
|
||
* Shows notification message details
|
||
*
|
||
* @param integer $message_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="message" action="new" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="show">
|
||
<!-- show($message_id = NULL)
|
||
{
|
||
if (!$this->acl_check_new('Messages_Controller', 'message'))
|
||
Controller::error(ACCESS);
|
||
|
||
if (!isset($message_id))
|
||
Controller::warning(PARAMETER);
|
||
|
||
$message = new Message_Model($message_id);
|
||
|
||
// record doesn't exist
|
||
if (!$message->id)
|
||
Controller::error(RECORD);
|
||
|
||
if (($message->id == Message_Model::PAYMENT_NOTICE_MESSAGE ||
|
||
$message->id == Message_Model::DEBTOR_MESSAGE ||
|
||
$message->id == Message_Model::RECEIVED_PAYMENT_NOTICE_MESSAGE) && !Settings::get('finance_enabled'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
$headline = __('Show notification message');
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view(
|
||
'Messages_Controller', 'message'
|
||
)
|
||
);
|
||
|
||
if ($message->type > 0)
|
||
{
|
||
$breadcrumbs->text($message->name);
|
||
}
|
||
else
|
||
{
|
||
$breadcrumbs
|
||
->disable_translation()
|
||
->text($message->name . ' (' . $message->id . ')');
|
||
}
|
||
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->content = new View('messages/show');
|
||
$view->content->headline = $headline;
|
||
$view->content->message = $message;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Edits message parameters.
|
||
*
|
||
* @author Jiri Svitak
|
||
* @param integer $message_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="edit">
|
||
<!-- edit($message_id = null)
|
||
{
|
||
if (!$this->acl_check_edit('Messages_Controller', 'message'))
|
||
Controller::error(ACCESS);
|
||
|
||
if (!isset($message_id))
|
||
Controller::warning(PARAMETER);
|
||
|
||
$message = new Message_Model($message_id);
|
||
|
||
// record doesn't exist
|
||
if (!$message->id)
|
||
Controller::error(RECORD);
|
||
|
||
if (($message->id == Message_Model::PAYMENT_NOTICE_MESSAGE ||
|
||
$message->id == Message_Model::DEBTOR_MESSAGE ||
|
||
$message->id == Message_Model::RECEIVED_PAYMENT_NOTICE_MESSAGE) && !Settings::get('finance_enabled'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
$form = new Forge('messages/edit/'.$message_id);
|
||
|
||
$form->group('Basic information');
|
||
|
||
if ($message->type == Message_Model::USER_MESSAGE)
|
||
{
|
||
$form->input('name')
|
||
->label('Message name')
|
||
->rules('required|length[3,200]')
|
||
->value($message->name)
|
||
->style('width: 600px');
|
||
}
|
||
|
||
if (Message_Model::is_self_cancable($message->type))
|
||
{
|
||
$form->dropdown('self_cancel')
|
||
->label(__('User-cancelable').': '.help::hint('self_cancel'))
|
||
->options(Message_Model::get_self_cancel_messages())
|
||
->selected($message->self_cancel)
|
||
->style('width: 600px');
|
||
}
|
||
|
||
if (Message_Model::is_white_list_ignorable($message->type) &&
|
||
Message_Model::USER_MESSAGE == $message->type)
|
||
{
|
||
$form->dropdown('ignore_whitelist')
|
||
->label(__('Ignore whitelist').': '.help::hint('ignore_whitelist'))
|
||
->options(arr::rbool())
|
||
->selected($message->ignore_whitelist);
|
||
}
|
||
|
||
if (module::e('redirection') &&
|
||
Message_Model::has_redirection_content($message->type))
|
||
{
|
||
$form->html_textarea('text')
|
||
->label(__('Content of the message for redirection').': '.
|
||
help::hint('content_of_message'))
|
||
->rows(5)
|
||
->cols(100)
|
||
->value($message->text);
|
||
}
|
||
|
||
if (module::e('email') &&
|
||
Message_Model::has_email_content($message->type))
|
||
{
|
||
$form->html_textarea('email_text')
|
||
->label(__('Content of the message for E-mail').': '.
|
||
help::hint('content_of_message'))
|
||
->rows(5)
|
||
->cols(100)
|
||
->value($message->email_text);
|
||
}
|
||
|
||
if (module::e('sms') &&
|
||
Message_Model::has_sms_content($message->type))
|
||
{
|
||
$form->textarea('sms_text')
|
||
->label(__('Content of the message for SMS').': '.
|
||
help::hint('content_of_message'))
|
||
->rules('length[1,760]')
|
||
->style('width: 100%; max-width: 633px; height: 150px')
|
||
->value($message->sms_text);
|
||
}
|
||
|
||
$form->submit('Edit');
|
||
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array(FALSE);
|
||
|
||
if ($message->type == 0)
|
||
{
|
||
$message->name = $form_data['name'];
|
||
}
|
||
|
||
if (Message_Model::is_self_cancable($message->type))
|
||
{
|
||
$message->self_cancel = htmlspecialchars($form_data['self_cancel']);
|
||
}
|
||
|
||
if (Message_Model::is_white_list_ignorable($message->type) &&
|
||
Message_Model::USER_MESSAGE == $message->type)
|
||
{
|
||
$message->ignore_whitelist = htmlspecialchars($form_data['ignore_whitelist']);
|
||
}
|
||
|
||
if (module::e('redirection') &&
|
||
Message_Model::has_redirection_content($message->type))
|
||
{
|
||
$message->text = $form_data['text'];
|
||
}
|
||
|
||
if (module::e('email') &&
|
||
Message_Model::has_email_content($message->type))
|
||
{
|
||
// email text
|
||
$email_text = trim($form_data['email_text']);
|
||
// set var
|
||
$message->email_text = empty($email_text) ? NULL : $email_text;
|
||
}
|
||
|
||
if (module::e('sms') &&
|
||
Message_Model::has_sms_content($message->type))
|
||
{
|
||
// sms text
|
||
$sms_text = trim(text::cs_utf2ascii(strip_tags($form_data['sms_text'])));
|
||
// set var
|
||
$message->sms_text = empty($sms_text) ? NULL : $sms_text;
|
||
}
|
||
|
||
unset($form_data);
|
||
|
||
// saving message
|
||
if ($message->save())
|
||
{
|
||
status::success('Message has been successfully updated.');
|
||
}
|
||
else
|
||
{
|
||
status::error('Error - cannot update message.');
|
||
}
|
||
|
||
url::redirect('messages/show_all');
|
||
}
|
||
else
|
||
{
|
||
$headline = __('Edit notification message');
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view(
|
||
'Messages_Controller', 'message'
|
||
)
|
||
);
|
||
|
||
if ($message->type > 0)
|
||
{
|
||
$breadcrumbs->text($message->name);
|
||
}
|
||
else
|
||
{
|
||
$breadcrumbs
|
||
->disable_translation()
|
||
->text($message->name . ' (' . $message->id . ')');
|
||
}
|
||
|
||
$breadcrumbs->text($headline);
|
||
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->content = new View('form');
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form->html();
|
||
$view->render(TRUE);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Updates notifications for given message.
|
||
* Special notification types are updated only to coresponding members.
|
||
*
|
||
* @author Jiri Svitak
|
||
* @param integer $message_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="edit" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="message" action="edit" own="false">
|
||
</axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="activate">
|
||
<!-- activate($message_id = NULL)
|
||
{
|
||
if (!$this->acl_check_new('Messages_Controller', 'activate'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
// param check
|
||
if (!$message_id || !is_numeric($message_id))
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
}
|
||
// preparation
|
||
$message = new Message_Model($message_id);
|
||
|
||
if (!$message || !$message->id ||
|
||
!Message_Model::can_be_activate_directly($message->type))
|
||
{
|
||
Controller::error(RECORD);
|
||
}
|
||
|
||
if (($message->id == Message_Model::PAYMENT_NOTICE_MESSAGE ||
|
||
$message->id == Message_Model::DEBTOR_MESSAGE) &&
|
||
!Settings::get('finance_enabled'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
$this->message_id = $message->id;
|
||
|
||
$member_model = new Member_Model();
|
||
|
||
// shows beetween page only for interrupt payment notice and debtor
|
||
if ($message->type == Message_Model::PAYMENT_NOTICE_MESSAGE ||
|
||
$message->type == Message_Model::DEBTOR_MESSAGE)
|
||
{
|
||
if (!isset($_POST) || !isset($_POST['ids']))
|
||
{
|
||
$members = $member_model->get_members_to_messages($message->type);
|
||
|
||
$grid = new Grid('notifications/cloud', '', array
|
||
(
|
||
'use_paginator' => false,
|
||
'use_selector' => false,
|
||
'total_items' => count ($members)
|
||
));
|
||
|
||
$grid->callback_field('member_id')
|
||
->label('Name')
|
||
->callback('callback::member_field');
|
||
|
||
$grid->callback_field('type')
|
||
->callback('callback::member_type_field');
|
||
|
||
$grid->callback_field('balance')
|
||
->callback('callback::balance_field');
|
||
|
||
$grid->callback_field('interrupt')
|
||
->label('Membership interrupt')
|
||
->callback('callback::active_field')
|
||
->class('center');
|
||
|
||
if ($message->type == Message_Model::USER_MESSAGE)
|
||
{
|
||
$grid->callback_field('allowed')
|
||
->label('Allowed subnet')
|
||
->callback('callback::active_field')
|
||
->class('center');
|
||
}
|
||
|
||
$grid->callback_field('whitelisted')
|
||
->label('Whitelist')
|
||
->callback('callback::whitelisted_field')
|
||
->class('center');
|
||
|
||
if (module::e('redirection') &&
|
||
Message_Model::has_redirection_content($message->type))
|
||
{
|
||
$grid->form_field('redirection')
|
||
->type('dropdown')
|
||
->options(notification::redirection_form_array())
|
||
->callback(
|
||
'callback::notification_form_field',
|
||
$message->type, $message->ignore_whitelist
|
||
);
|
||
}
|
||
|
||
if (module::e('email') &&
|
||
Message_Model::has_email_content($message->type))
|
||
{
|
||
$grid->form_field('email')
|
||
->label('E-mail')
|
||
->type('dropdown')
|
||
->options(notification::redirection_form_array(TRUE))
|
||
->callback(
|
||
'callback::notification_form_field',
|
||
$message->type, $message->ignore_whitelist
|
||
);
|
||
}
|
||
|
||
if (module::e('sms') &&
|
||
Message_Model::has_sms_content($message->type))
|
||
{
|
||
$grid->form_field('sms')
|
||
->label('SMS')
|
||
->type('dropdown')
|
||
->options(notification::redirection_form_array(TRUE))
|
||
->callback(
|
||
'callback::notification_form_field',
|
||
$message->type, $message->ignore_whitelist
|
||
);
|
||
}
|
||
|
||
$grid->form_extra_buttons = array
|
||
(
|
||
"position" => 'top',
|
||
form::label(
|
||
'comment', "<b>".__('Comment').":</b>"
|
||
) . form::textarea('comment', '', 'style="margin-left: 30px"')."<br /><br />"
|
||
);
|
||
|
||
$grid->datasource($members);
|
||
|
||
$headline = __('Activate message for all members');
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view(
|
||
'Messages_Controller', 'message'
|
||
)
|
||
);
|
||
|
||
if ($message->type != Message_Model::USER_MESSAGE)
|
||
{
|
||
$breadcrumbs->text($message->name);
|
||
}
|
||
else
|
||
{
|
||
$breadcrumbs->disable_translation()
|
||
->text($message->name . ' (' . $message->id . ')');
|
||
}
|
||
|
||
$breadcrumbs->text($headline);
|
||
|
||
$view = new View('main');
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->title = $headline;
|
||
$view->content = new View('show_all');
|
||
$view->content->headline = $headline;
|
||
$view->content->table = $grid;
|
||
$view->content->status_message_info = url_lang::lang('help.notification_settings');
|
||
$view->render(TRUE);
|
||
}
|
||
else
|
||
{
|
||
// params
|
||
$comment = $_POST['comment'];
|
||
$user_id = $this->user_id;
|
||
$redirections = $emails = $smss = array();
|
||
|
||
if (isset($_POST['redirection']) && module::e('redirection'))
|
||
{
|
||
$redirections = $_POST['redirection'];
|
||
}
|
||
|
||
if (isset($_POST['email']) && module::e('email'))
|
||
{
|
||
$emails = $_POST['email'];
|
||
}
|
||
|
||
if (isset($_POST['sms']) && module::e('sms'))
|
||
{
|
||
$smss = $_POST['sms'];
|
||
}
|
||
|
||
// notify
|
||
$stats = Notifications_Controller::notify_from_form(
|
||
$message, $user_id, $comment,
|
||
$redirections, $emails, $smss
|
||
);
|
||
// info messages
|
||
$info_messages = notification::build_stats_string(
|
||
$stats, module::e('redirection'),
|
||
module::e('email'),
|
||
module::e('sms'),
|
||
module::e('redirection')
|
||
);
|
||
// log action
|
||
if (count($info_messages))
|
||
{
|
||
$un = ORM::factory('user', $user_id)->get_full_name();
|
||
$m = __('User "%s" has activated notification message "%s"',
|
||
array($un, __($message->name)));
|
||
status::success(implode('<br />', $info_messages), FALSE);
|
||
Log_queue_Model::info($m, implode("\n", $info_messages));
|
||
}
|
||
// redirect
|
||
url::redirect('messages/show_all');
|
||
}
|
||
}
|
||
// user message will be activate right now
|
||
else
|
||
{
|
||
$dropdown_options = array
|
||
(
|
||
Notifications_Controller::ACTIVATE => __('Activate'),
|
||
Notifications_Controller::KEEP => __('Without change')
|
||
);
|
||
|
||
$form = new Forge(url::base(TRUE) . url::current(TRUE));
|
||
|
||
if (module::e('redirection'))
|
||
{
|
||
$form->dropdown('redirection')
|
||
->options($dropdown_options)
|
||
->selected(Notifications_Controller::KEEP);
|
||
}
|
||
|
||
if ($message->type == Message_Model::USER_MESSAGE)
|
||
{
|
||
if (module::e('email'))
|
||
{
|
||
$form->dropdown('email')
|
||
->label('E-mail')
|
||
->options($dropdown_options)
|
||
->selected(Notifications_Controller::KEEP)
|
||
->callback(array($this, 'valid_email_or_sms'));
|
||
}
|
||
|
||
if (module::e('sms'))
|
||
{
|
||
$form->dropdown('sms')
|
||
->label('SMS')
|
||
->options($dropdown_options)
|
||
->selected(Notifications_Controller::KEEP)
|
||
->callback(array($this, 'valid_email_or_sms'));
|
||
}
|
||
}
|
||
|
||
$form->submit('Send');
|
||
|
||
if ($form->validate())
|
||
{
|
||
$form_data = $form->as_array();
|
||
|
||
$user_id = $this->session->get('user_id');
|
||
$comment = @$form_data['comment'];
|
||
|
||
$redirection = module::e('redirection') &&
|
||
($form_data['redirection'] == Notifications_Controller::ACTIVATE);
|
||
|
||
$email = module::e('email') &&
|
||
($form_data['email'] == Notifications_Controller::ACTIVATE);
|
||
|
||
$sms = module::e('sms') &&
|
||
($form_data['sms'] == Notifications_Controller::ACTIVATE);
|
||
|
||
try
|
||
{
|
||
// get members
|
||
$members = $member_model->get_members_to_messages(
|
||
Message_Model::USER_MESSAGE
|
||
);
|
||
// notify
|
||
$stats = Notifications_Controller::notify(
|
||
$message, $members, $user_id, $comment,
|
||
$redirection, $email, $sms, $redirection
|
||
);
|
||
// info messages
|
||
$info_messages = notification::build_stats_string(
|
||
$stats, module::e('redirection'), module::e('email'),
|
||
module::e('sms'), module::e('redirection')
|
||
);
|
||
// log action
|
||
if (count($info_messages))
|
||
{
|
||
$un = ORM::factory('user', $user_id)->get_full_name();
|
||
$m = __('User "%s" has activated notification message "%s"',
|
||
array($un, __($message->name)));
|
||
status::success(implode('<br />', $info_messages), FALSE);
|
||
Log_queue_Model::info($m, implode("\n", $info_messages));
|
||
}
|
||
// redirect
|
||
url::redirect('messages/show_all');
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
$em = __('Error - cant set redirection.') . '<br>' . $e->getMessage();
|
||
status::error($em, $e, FALSE);
|
||
url::redirect('messages/show_all');
|
||
}
|
||
|
||
}
|
||
|
||
$headline = __('Activate message for all members');
|
||
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view(
|
||
'Messages_Controller', 'message'
|
||
)
|
||
);
|
||
|
||
if ($message->type > 0)
|
||
{
|
||
$breadcrumbs->text($message->name);
|
||
}
|
||
else
|
||
{
|
||
$breadcrumbs->disable_translation()
|
||
->text($message->name . ' (' . $message->id . ')');
|
||
}
|
||
|
||
$breadcrumbs->text($headline);
|
||
|
||
$view = new View('main');
|
||
$view->breadcrumbs = $breadcrumbs->html();
|
||
$view->title = $headline;
|
||
$view->content = new View('form');
|
||
$view->content->headline = $headline;
|
||
$view->content->form = $form;
|
||
$view->render(TRUE);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Deactivates all redirections for given message.
|
||
*
|
||
* @author Jiri Svitak
|
||
* @param integer $message_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="activate" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="activate" action="new" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="deactivate">
|
||
<!-- deactivate($message_id = NULL)
|
||
{
|
||
if (!$this->acl_check_edit('Messages_Controller', 'deactivate'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
// param check
|
||
if (!$message_id || !is_numeric($message_id))
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
}
|
||
// preparation
|
||
$message = new Message_Model($message_id);
|
||
|
||
if (!$message || !$message->id)
|
||
{
|
||
Controller::error(RECORD);
|
||
}
|
||
|
||
$message_model = new Message_Model();
|
||
$message_model->deactivate_message($message_id);
|
||
|
||
// log action
|
||
$un = ORM::factory('user', $this->user_id)->get_full_name();
|
||
$m = __('User "%s" has deactivated notification message "%s"',
|
||
array($un, __($message->name)));
|
||
Log_queue_Model::info($m);
|
||
|
||
status::success('Activated redirections of this message have been successfuly deactivated.');
|
||
url::redirect('messages/show_all');
|
||
}
|
||
|
||
/**
|
||
* Deletes a user message with given id.
|
||
*
|
||
* @param type $message_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="deactivate" action="edit" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="deactivate" action="edit" own="false"></axo>
|
||
</method>
|
||
<method name="delete">
|
||
<!-- delete($message_id = NULL)
|
||
{
|
||
if (!$this->acl_check_delete('Messages_Controller', 'message'))
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
if (!$message_id || !is_numeric($message_id))
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
}
|
||
|
||
$message = new Message_Model($message_id);
|
||
|
||
if (!$message || !$message->id)
|
||
{
|
||
Controller::error(RECORD);
|
||
}
|
||
|
||
if ($message->type != Message_Model::USER_MESSAGE)
|
||
{
|
||
Controller::error(ACCESS);
|
||
}
|
||
|
||
$message->delete();
|
||
|
||
status::success('User message have been successfully deleted.');
|
||
url::redirect('messages/show_all');
|
||
}
|
||
|
||
/**
|
||
* Callback function to validate e-mail or sms notification
|
||
*
|
||
* @author Michal Kliment
|
||
* @param type $input
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="delete" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="message" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="messages_auto_settings" type="controller">
|
||
<object name="messages_auto_settings" type="controller" comment-en="Messages auto settings - manages automatic activation of messages" comment-cs="Nastavení automatické aktivace - spravuje automatickou aktivaci zpráv">
|
||
<method name="__construct"></method>
|
||
<method name="show">
|
||
<!-- show($message_id = NULL)
|
||
{
|
||
// check param
|
||
if (!intval($message_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
$message = new Message_Model($message_id);
|
||
$message_aa = new Messages_automatical_activation_Model();
|
||
|
||
// check if exists
|
||
if (!$message || !$message->id ||
|
||
!Message_Model::can_be_activate_automatically($message->type))
|
||
{
|
||
self::error(RECORD);
|
||
}
|
||
|
||
// access check
|
||
if (!$this->acl_check_view('Messages_Controller', 'auto_config'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
// gets data
|
||
$query = $message_aa->get_message_settings($message->id);
|
||
|
||
// grid
|
||
$grid = new Grid('messages_auto_settings', null, array
|
||
(
|
||
'use_paginator' => false,
|
||
'use_selector' => false
|
||
));
|
||
|
||
if ($this->acl_check_new('Messages_Controller', 'auto_config'))
|
||
{
|
||
$grid->add_new_button(
|
||
'messages_auto_settings/add/' . $message->id,
|
||
__('Add new rule'), array('class' => 'popup_link')
|
||
);
|
||
}
|
||
|
||
$grid->field('id')
|
||
->label('ID');
|
||
|
||
$grid->callback_field('type')
|
||
->callback('callback::message_auto_setting_type');
|
||
|
||
$grid->callback_field('attribute')
|
||
->callback('callback::message_auto_setting_attribute');
|
||
|
||
if (Settings::get('redirection_enabled'))
|
||
{
|
||
$grid->callback_field('redirection_enabled')
|
||
->callback('callback::boolean')
|
||
->label('Redirection');
|
||
}
|
||
|
||
if (Settings::get('email_enabled'))
|
||
{
|
||
$grid->callback_field('email_enabled')
|
||
->callback('callback::boolean')
|
||
->label('E-mail');
|
||
}
|
||
|
||
if (Settings::get('sms_enabled'))
|
||
{
|
||
$grid->callback_field('sms_enabled')
|
||
->callback('callback::boolean')
|
||
->label('SMS');
|
||
}
|
||
|
||
$actions = $grid->grouped_action_field();
|
||
|
||
if ($this->acl_check_delete('Messages_Controller', 'auto_config'))
|
||
{
|
||
$actions->add_action()
|
||
->icon_action('delete')
|
||
->url('messages_auto_settings/delete')
|
||
->class('delete_link');
|
||
}
|
||
|
||
// load datasource
|
||
$grid->datasource($query);
|
||
|
||
// bread crumbs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view('Messages_Controller', 'message'))
|
||
->text($message->name)
|
||
->text('Automatical activation settings')
|
||
->html();
|
||
|
||
// main view
|
||
$view = new View('main');
|
||
$view->title = __('Automatical activation settings');
|
||
$view->content = new View('show_all');
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content->headline = __('Automatical activation settings');
|
||
$view->content->table = $grid;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Adds a new rule
|
||
*
|
||
* @param integer $message_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="auto_config" action="view" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="auto_config" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="auto_config" action="delete" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="auto_config" action="view" own="false"></axo>
|
||
<axo usage_type="links" section="Messages_Controller" value="auto_config" action="new" own="false"></axo>
|
||
<axo usage_type="grid-action" section="Messages_Controller" value="auto_config" action="delete" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="add">
|
||
<!-- add($message_id = NULL)
|
||
{
|
||
// check param
|
||
if (!$message_id || !is_numeric($message_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_new('Messages_Controller', 'auto_config'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
// load model
|
||
$message = new Message_Model($message_id);
|
||
$messages = Messages_automatical_activation_Model::get_type_messages();
|
||
|
||
// check exists
|
||
if (!$message->id ||
|
||
!Message_Model::can_be_activate_automatically($message->type))
|
||
{
|
||
self::error(RECORD);
|
||
}
|
||
|
||
// form
|
||
$form = new Forge('messages_auto_settings/add/' . $message_id);
|
||
|
||
$form->group('Basic information');
|
||
|
||
$form->dropdown('type')
|
||
->rules('required')
|
||
->options(array_map('strtolower', $messages))
|
||
->style('width:200px');
|
||
|
||
for ($i = 0; $i < Time_Activity_Rule::get_attribute_types_max_count(); $i++)
|
||
{
|
||
$form->input('attribute[' . $i . ']')
|
||
->callback(array($this, 'valid_attribute'))
|
||
->label(__('Attribute') . ' ' . ($i + 1));
|
||
}
|
||
|
||
if (Settings::get('redirection_enabled'))
|
||
{
|
||
$form->checkbox('redirection_enabled')
|
||
->label('Redirection of devices enabled')
|
||
->value('1')
|
||
->checked(TRUE);
|
||
}
|
||
|
||
if (Settings::get('email_enabled'))
|
||
{
|
||
$form->checkbox('email_enabled')
|
||
->label('Sending of e-mail messages enabled')
|
||
->value('1');
|
||
}
|
||
|
||
if (Settings::get('sms_enabled'))
|
||
{
|
||
$form->checkbox('sms_enabled')
|
||
->label('Sending of SMS messages enabled')
|
||
->value('1');
|
||
}
|
||
|
||
$form->submit('Add');
|
||
|
||
// validate form and save data
|
||
if ($form->validate())
|
||
{
|
||
try
|
||
{
|
||
// model
|
||
$message_asettings = new Messages_automatical_activation_Model();
|
||
|
||
// start transaction
|
||
$message_asettings->transaction_start();
|
||
|
||
// load data
|
||
$form_data = $form->as_array();
|
||
|
||
// prepare attribute
|
||
$attrs = @$_POST['attribute'];
|
||
$attrs_finished = array();
|
||
$count = Time_Activity_Rule::get_type_attributes_count($form_data['type']);
|
||
|
||
for ($i = 0; $i < $count; $i++)
|
||
{
|
||
if (is_array($attrs) && count($attrs))
|
||
{
|
||
$attrs_finished[] = array_shift($attrs);
|
||
}
|
||
else
|
||
{
|
||
$attrs_finished[] = NULL;
|
||
}
|
||
}
|
||
|
||
// save
|
||
$message_asettings->message_id = $message->id;
|
||
$message_asettings->type = $form_data['type'];
|
||
$message_asettings->attribute = implode('/', $attrs_finished);
|
||
|
||
$message_asettings->redirection_enabled =
|
||
Settings::get('redirection_enabled') &&
|
||
$form_data['redirection_enabled'];
|
||
|
||
$message_asettings->email_enabled =
|
||
Settings::get('email_enabled') &&
|
||
$form_data['email_enabled'];
|
||
|
||
$message_asettings->sms_enabled =
|
||
Settings::get('sms_enabled') &&
|
||
$form_data['sms_enabled'];
|
||
|
||
$message_asettings->save_throwable();
|
||
|
||
// commit transaction
|
||
$message_asettings->transaction_commit();
|
||
|
||
// message
|
||
status::success('Message automatical activation setting rule has been succesfully added');
|
||
|
||
// redirection
|
||
$this->redirect('messages_auto_settings/show', $message->id);
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
// roolback transaction
|
||
$message_asettings->transaction_rollback();
|
||
Log::add_exception($e);
|
||
// message
|
||
status::error('Error - cant add message automatical activation settings rule', $e);
|
||
}
|
||
}
|
||
|
||
// headline
|
||
$headline = __('Add automatical activation rule');
|
||
|
||
// bread crumbs
|
||
$breadcrumbs = breadcrumbs::add()
|
||
->link('messages/show_all', 'Messages',
|
||
$this->acl_check_view('Messages_Controller', 'message'))
|
||
->text($message->name)
|
||
->disable_translation()
|
||
->text($headline)
|
||
->html();
|
||
|
||
// view
|
||
$view = new View('main');
|
||
$view->title = $headline;
|
||
$view->breadcrumbs = $breadcrumbs;
|
||
$view->content = new View('form');
|
||
$view->content->form = $form->html();
|
||
$view->content->headline = $headline;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* Deletes settings rule
|
||
*
|
||
* @param integer $mesages_auto_settings_id
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="auto_config" action="new" own="false"></axo>
|
||
<axo usage_type="unknown" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="auto_config" action="new" own="false"></axo>
|
||
<axo usage_type="breadcrumbs" section="Messages_Controller" value="message" action="view" own="false"></axo>
|
||
</method>
|
||
<method name="delete">
|
||
<!-- delete($mesages_auto_settings_id = NULL)
|
||
{
|
||
// check param
|
||
if (!$mesages_auto_settings_id || !is_numeric($mesages_auto_settings_id))
|
||
{
|
||
self::warning(PARAMETER);
|
||
}
|
||
|
||
// check access
|
||
if (!$this->acl_check_delete('Messages_Controller', 'auto_config'))
|
||
{
|
||
self::error(ACCESS);
|
||
}
|
||
|
||
// load model
|
||
$maa = new Messages_automatical_activation_Model($mesages_auto_settings_id);
|
||
|
||
$message_id = $maa->message_id;
|
||
|
||
// check exists
|
||
if (!$maa->id)
|
||
{
|
||
Controller::error(RECORD);
|
||
}
|
||
|
||
// delete
|
||
if ($maa->delete())
|
||
{
|
||
status::success('Message automatical activation setting rule has been succesfully deleted.');
|
||
}
|
||
else
|
||
{
|
||
status::error('Error - cant delete message automatical activation settings rule.');
|
||
}
|
||
|
||
// redirect to show all
|
||
url::redirect('messages_auto_settings/show/' . $message_id);
|
||
}
|
||
|
||
/**
|
||
* Checks if attribute form element has valid value
|
||
*
|
||
* @param object $input
|
||
*/
|
||
public -->
|
||
<axo usage_type="unknown" section="Messages_Controller" value="auto_config" action="delete" own="false"></axo>
|
||
<axo usage_type="access" section="Messages_Controller" value="auto_config" action="delete" own="false"></axo>
|
||
</method>
|
||
</object>
|
||
<object name="monitoring" type="controller">
|
||
<object name="monitoring" type="controller" comment-en="Monitoring - allows to show which devices are not running" comment-cs="Monitoring - uložňuje zobrazit, která zařízení nefungují">
|
||
<method name="__construct"></method>
|
||
<method name="index"></method>
|
||
<method name="show_all">
|
||
<!-- show_all($priority = 1, $group_by = '')
|
||
{
|
||
// access control
|
||
if (!$this->acl_check_view('Monitoring_Controller', 'monitoring'))
|
||
{
|
||
Controller::error (ACCESS);
|
||
}
|
||
|
||
// definition options for group by
|
||
$group_by_options = array
|
||
(
|
||
'all' => 'all devices',
|
||
'member_id' => 'member_name',
|
||
'type' => 'type_name',
|
||
'state' => 'state_name',
|
||
'town_id' => 'town_name',
|
||
'address_point_id' => 'address_point_name',
|
||
);
|
||
|
||
$monitor_host_model = new Monitor_host_Model();
|
||
|
||
$form = new Forge();
|
||
|
||
$priorities = arr::from_objects(
|
||
$monitor_host_model->get_all_priorities(), 'priority'
|
||
);
|
||
|
||
if (count($priorities))
|
||
{
|
||
$form->dropdown('priority')
|
||
->options($priorities)
|
||
->selected($priority);
|
||
}
|
||
|
||
$group_by_options_values = array
|
||
(
|
||
'all' => __('All devices'),
|
||
'member_id' => __('Member'),
|
||
'state' => __('State'),
|
||
'type' => __('Type'),
|
||
'town_id' => __('Town'),
|
||
'address_point_id' => __('Address point')
|
||
);
|
||
|
||
$user_model = new User_Model($this->user_id);
|
||
$group_by_setting = $user_model->get_user_setting(User_Model::SETTINGS_MONITORING_GROUP_BY);
|
||
|
||
// empty value in users settings
|
||
if (!empty($group_by_setting))
|
||
{
|
||
// use database settings if not set explicitly
|
||
if (empty($group_by))
|
||
{
|
||
$group_by = $group_by_setting;
|
||
}
|
||
}
|
||
// empty value in users settings
|
||
else
|
||
{
|
||
$group_by = 'all';
|
||
}
|
||
|
||
// update database settings
|
||
if ($group_by != $group_by_setting)
|
||
{
|
||
$user_model->set_user_setting(User_Model::SETTINGS_MONITORING_GROUP_BY, $group_by);
|
||
}
|
||
|
||
$form->dropdown('group_by')
|
||
->options($group_by_options_values)
|
||
->selected($group_by);
|
||
|
||
$form->submit('Group by');
|
||
|
||
// redirect to this method with new priority or group by option
|
||
if ($form->validate() && $form->priority
|
||
&& $form->priority->value && $form->group_by->value)
|
||
{
|
||
$this->redirect(
|
||
'show_all/',
|
||
$form->priority->value.'/'.$form->group_by->value
|
||
);
|
||
}
|
||
|
||
// default group by option
|
||
if (!isset($group_by_options[$group_by]))
|
||
$group_by = 'all';
|
||
|
||
// filter
|
||
$filter_form = new Filter_form('mh');
|
||
|
||
$filter_form->add('device_name');
|
||
|
||
$filter_form->add('member_id')
|
||
->type('select')
|
||
->label('Member')
|
||
->values(ORM::factory('member')->select_list('id', 'name'));
|
||
|
||
$filter_form->add('state')
|
||
->type('select')
|
||
->values(array
|
||
(
|
||
Monitor_host_Model::STATE_UP => __('Online'),
|
||
Monitor_host_Model::STATE_DOWN => __('Offline'),
|
||
));
|
||
|
||
$filter_form->add('town')
|
||
->type('select')
|
||
->values(
|
||
array_unique(
|
||
ORM::factory('town')->select_list('town', 'town')
|
||
)
|
||
);
|
Také k dispozici: Unified diff
Upravy:
- refs #563: dokumentace k AXO (dokonceni controlleru M - P)
Opravy:
- oprava acl_check u zobrazeni zpravy