issue #53: adding user selection to server edit page
parent
cdfe3c85d2
commit
8e60e9cb3a
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Имейл',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Изтриване на сървър',
|
||||
'delete_message' => 'Сигурни ли сте, че искате да изтриете сървър \'%1\'?',
|
||||
'deleted' => 'Сървъра е изтрит успешно.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Send Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Send SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Slet server',
|
||||
'delete_message' => 'Er du sikker på du vil slette server \'%1\'?',
|
||||
'deleted' => 'Server slettet.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -127,7 +127,8 @@ $sm_lang = array(
|
|||
'send_email' => 'Send Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Send SMS',
|
||||
'delete_title' => 'Delete Server',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
'updated' => 'Server updated.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Envoyer un email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Envoyer un SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Supprimer un serveur',
|
||||
'delete_message' => 'Êtes-vous sûr de vouloir supprimer le serveur \'%1\' ?',
|
||||
'deleted' => 'Serveur supprimé.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Invia Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Invia SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => '메일 전송',
|
||||
'sms' => 'SMS 전송',
|
||||
'send_sms' => 'SMS 전송',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Stuur email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Stuur SMS',
|
||||
'users' => 'Gebruikers',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Enviar Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Enviar SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => 'Отправить Email',
|
||||
'sms' => 'SMS',
|
||||
'send_sms' => 'Отправить SMS',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Удалить сервер',
|
||||
'delete_message' => 'Вы точно хотите удалить сервер \'%1\'?',
|
||||
'deleted' => 'Сервер удален.',
|
||||
|
|
|
@ -127,6 +127,7 @@ $sm_lang = array(
|
|||
'send_email' => '发送邮件',
|
||||
'sms' => '短信',
|
||||
'send_sms' => '发送短信',
|
||||
'users' => 'Users',
|
||||
'delete_title' => 'Delete Server',
|
||||
'delete_message' => 'Are you sure you want to delete server \'%1\'?',
|
||||
'deleted' => 'Server deleted.',
|
||||
|
|
|
@ -160,6 +160,8 @@ class ServerController extends AbstractServerController {
|
|||
$tpl_data['url_go_back'] = psm_build_url(array('mod' => 'server'));
|
||||
}
|
||||
|
||||
$users = $this->db->select(PSM_DB_PREFIX.'users', null, array('user_id', 'name'), '', 'name');
|
||||
|
||||
switch($this->server_id) {
|
||||
case 0:
|
||||
// insert mode
|
||||
|
@ -178,27 +180,37 @@ class ServerController extends AbstractServerController {
|
|||
}
|
||||
$tpl_data['titlemode'] = psm_get_lang('system', 'edit') . ' ' . $edit_server['label'];
|
||||
|
||||
$user_idc_selected = $this->getServerUsers($this->server_id);
|
||||
foreach($users as &$user) {
|
||||
if(in_array($user['user_id'], $user_idc_selected)) {
|
||||
$user['edit_checked'] = 'checked="checked"';
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
// attempt to prefill previously posted fields
|
||||
foreach($edit_server as $key => $value) {
|
||||
$edit_server[$key] = psm_POST($key, $value);
|
||||
}
|
||||
$this->tpl->addTemplateDataRepeat($this->getTemplateId(), 'users', $users);
|
||||
|
||||
$tpl_data = array_merge($tpl_data, array(
|
||||
'edit_value_label' => $edit_server['label'],
|
||||
'edit_value_ip' => $edit_server['ip'],
|
||||
'edit_value_port' => $edit_server['port'],
|
||||
'edit_value_timeout' => $edit_server['timeout'],
|
||||
'default_value_timeout' => PSM_CURL_TIMEOUT,
|
||||
'edit_value_pattern' => $edit_server['pattern'],
|
||||
'edit_value_warning_threshold' => $edit_server['warning_threshold'],
|
||||
'edit_type_selected_' . $edit_server['type'] => 'selected="selected"',
|
||||
'edit_active_selected_' . $edit_server['active'] => 'selected="selected"',
|
||||
'edit_email_selected_' . $edit_server['email'] => 'selected="selected"',
|
||||
'edit_sms_selected_' . $edit_server['sms'] => 'selected="selected"',
|
||||
));
|
||||
if(!empty($edit_server)) {
|
||||
// attempt to prefill previously posted fields
|
||||
foreach($edit_server as $key => $value) {
|
||||
$edit_server[$key] = psm_POST($key, $value);
|
||||
}
|
||||
|
||||
$tpl_data = array_merge($tpl_data, array(
|
||||
'edit_value_label' => $edit_server['label'],
|
||||
'edit_value_ip' => $edit_server['ip'],
|
||||
'edit_value_port' => $edit_server['port'],
|
||||
'edit_value_timeout' => $edit_server['timeout'],
|
||||
'default_value_timeout' => PSM_CURL_TIMEOUT,
|
||||
'edit_value_pattern' => $edit_server['pattern'],
|
||||
'edit_value_warning_threshold' => $edit_server['warning_threshold'],
|
||||
'edit_type_selected_' . $edit_server['type'] => 'selected="selected"',
|
||||
'edit_active_selected_' . $edit_server['active'] => 'selected="selected"',
|
||||
'edit_email_selected_' . $edit_server['email'] => 'selected="selected"',
|
||||
'edit_sms_selected_' . $edit_server['sms'] => 'selected="selected"',
|
||||
));
|
||||
}
|
||||
|
||||
$this->tpl->addTemplateData(
|
||||
$this->getTemplateId(),
|
||||
|
@ -264,6 +276,22 @@ class ServerController extends AbstractServerController {
|
|||
$this->addMessage(psm_get_lang('servers', 'inserted'), 'success');
|
||||
}
|
||||
|
||||
// update users
|
||||
$user_idc = psm_POST('user_id', array());
|
||||
$user_idc_save = array();
|
||||
|
||||
foreach($user_idc as $user_id) {
|
||||
$user_idc_save[] = array(
|
||||
'user_id' => intval($user_id),
|
||||
'server_id' => intval($this->server_id),
|
||||
);
|
||||
}
|
||||
$this->db->delete(PSM_DB_PREFIX.'users_servers', array('server_id' => $this->server_id));
|
||||
if(!empty($user_idc_save)) {
|
||||
// add all new users
|
||||
$this->db->insertMultiple(PSM_DB_PREFIX.'users_servers', $user_idc_save);
|
||||
}
|
||||
|
||||
$back_to = isset($_GET['back_to']) ? $_GET['back_to'] : 'index';
|
||||
if($back_to == 'view') {
|
||||
$this->initializeAction('view');
|
||||
|
@ -382,6 +410,7 @@ class ServerController extends AbstractServerController {
|
|||
'label_send_email' => psm_get_lang('servers', 'send_email'),
|
||||
'label_sms' => psm_get_lang('servers', 'sms'),
|
||||
'label_send_sms' => psm_get_lang('servers', 'send_sms'),
|
||||
'label_users' => psm_get_lang('servers', 'users'),
|
||||
'label_warning_threshold' => psm_get_lang('servers', 'warning_threshold'),
|
||||
'label_warning_threshold_description' => psm_get_lang('servers', 'warning_threshold_description'),
|
||||
'label_action' => psm_get_lang('system', 'action'),
|
||||
|
@ -397,4 +426,22 @@ class ServerController extends AbstractServerController {
|
|||
|
||||
return parent::createHTMLLabels();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all user ids for a server
|
||||
* @param int $server_id
|
||||
* @return array with ids only
|
||||
*/
|
||||
protected function getServerUsers($server_id) {
|
||||
$users = $this->db->select(
|
||||
PSM_DB_PREFIX.'users_servers',
|
||||
array('server_id' => $server_id),
|
||||
array('user_id')
|
||||
);
|
||||
$result = array();
|
||||
foreach($users as $user) {
|
||||
$result[] = $user['user_id'];
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -152,6 +152,21 @@
|
|||
<input class="input-mini" type="text" id="timeout" name="timeout" value="{edit_value_timeout}" placeholder="{default_value_timeout}" maxlength="10" data-toggle="tooltip" title="{label_timeout_description}" /> s
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="users[]">{label_users}</label>
|
||||
<div class="controls">
|
||||
<!--%tpl_repeat_users-->
|
||||
<label class="checkbox">
|
||||
<input id="user{user_id}"
|
||||
type="checkbox"
|
||||
name='user_id[]'
|
||||
value='{user_id}' {edit_checked} >
|
||||
{name}
|
||||
</label>
|
||||
<!--%%tpl_repeat_users-->
|
||||
{users}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<button class="btn btn-success" type="submit">{label_save}</button>
|
||||
<a class="btn" href="{url_go_back}" >{label_go_back}</a>
|
||||
|
|
Loading…
Reference in New Issue