diff --git a/src/lang/cs_CZ.lang.php b/src/lang/cs_CZ.lang.php index f3542ba6..082d09fa 100644 --- a/src/lang/cs_CZ.lang.php +++ b/src/lang/cs_CZ.lang.php @@ -129,6 +129,15 @@ $sm_lang = array( 'website_password_description' => 'Heslo pro přístup na stránku. Heslo je v databázi šifrované a NENÍ uloženo v čistém textu.', 'fieldset_monitoring' => 'Monitoring', 'fieldset_permissions' => 'Oprávnění', + 'fieldset_pushover' => 'Nastavení Pushover upozornění (volitelné)', + 'pushover_priority_online' => 'Priorita pro Online', + 'pushover_priority_offline' => 'Priorita pro Offline', + 'pushover_sound' => 'Zvuk', + 'pushover_retry' => 'Opakování', + 'pushover_retry_description' => 'Pokud chcete vypnout toto nastavení vymažte hodnoty z pole. Pokud je nastavena Nouzová priorita (2), toto nastavení je vyžadováno, pokud není nastaveno uplatní se hodnota 300 sekund.', + 'pushover_expire' => 'Expirace', + 'pushover_expire_description' => 'Pokud chcete vypnout toto nastavení vymažte hodnoty z pole. Pokud je nastavena Nouzová priorita (2), toto nastavení je vyžadováno, pokud není nastaveno uplatní se hodnota 3600 sekund.', + 'pushover_default' => 'Výchozí nastavení (%s)', 'port' => 'Port', 'custom_port' => 'Uživatelský Port', 'popular_ports' => 'Populární Porty', @@ -207,7 +216,7 @@ $sm_lang = array( 'sms_gateway_spryng' => 'Spryng', 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', - 'sms_gateway_textmarketer' => 'Textmarketer', + 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_octopush' => 'Octopush', @@ -226,9 +235,9 @@ $sm_lang = array( 'pushover_default_sound' => 'Výchozí zvuk', 'pushover_default_sound_device' => 'Výchozí zvuk zařízení', 'pushover_default_retry' => 'Výchozí opakování', - 'pushover_default_retry_description' => 'Toto nastavení se uplatní v oznámení pouze pokud je zvolena Nouzová priorita (2)', + 'pushover_default_retry_description' => 'Pokud chcete vypnout toto nastavení vymažte hodnoty z pole. Pokud je nastavena Nouzová priorita (2), toto nastavení je vyžadováno, pokud není nastaveno uplatní se hodnota 300 sekund.', 'pushover_default_expire' => 'Výchozí expirace', - 'pushover_default_expire_description' => 'Toto nastavení se uplatní v oznámení pouze pokud je zvolena Nouzová priorita (2)', + 'pushover_default_expire_description' => 'Pokud chcete vypnout toto nastavení vymažte hodnoty z pole. Pokud je nastavena Nouzová priorita (2), toto nastavení je vyžadováno, pokud není nastaveno uplatní se hodnota 3600 sekund.', 'pushover_priority_-2' => 'Nejnižší priorita (-2)', 'pushover_priority_-1' => 'Nízká priorita (-1)', 'pushover_priority_0' => 'Normální priorita (0)', diff --git a/src/lang/en_US.lang.php b/src/lang/en_US.lang.php index 5cd8b06c..e3c87cd7 100644 --- a/src/lang/en_US.lang.php +++ b/src/lang/en_US.lang.php @@ -128,6 +128,15 @@ $sm_lang = array( 'website_password_description' => 'Password to access the site. The password is encrypted in the database and is not stored in plain text.', 'fieldset_monitoring' => 'Monitoring', 'fieldset_permissions' => 'Permissions', + 'fieldset_pushover' => 'Pushover notice Settings (Optional)', + 'pushover_priority_online' => 'Priority for Online', + 'pushover_priority_offline' => 'Priority for Offline', + 'pushover_sound' => 'Sound', + 'pushover_retry' => 'Retry', + 'pushover_retry_description' => 'If you want to disable this setting clears the value of the field. When set Emergency priority (2), this setting is required when no applicable value is 300 seconds.', + 'pushover_expire' => 'Expirace', + 'pushover_expire_description' => 'If you want to disable this setting clears the value of the field. When set Emergency priority (2), this setting is required when no applicable value is 3600 seconds.', + 'pushover_default' => 'Default settings (%s)', 'port' => 'Port', 'custom_port' => 'Custom Port', 'popular_ports' => 'Popular Ports', @@ -225,9 +234,9 @@ $sm_lang = array( 'pushover_default_sound' => 'Default Sound', 'pushover_default_sound_device' => 'Device default sound', 'pushover_default_retry' => 'Default Retry', - 'pushover_default_retry_description' => 'This setting will apply to notification only if the selected Emergency Priority (2).', + 'pushover_default_retry_description' => 'If you want to disable this setting erases the value of the field. When set Emergency priority (2), this setting is required When no applicable value is 300 seconds.', 'pushover_default_expire' => 'Default Expire', - 'pushover_default_expire_description' => 'This setting will apply to notification only if the selected Emergency Priority (2).', + 'pushover_default_expire_description' => 'If you want to disable this setting erases the value of the field. When set Emergency priority (2), this setting is required When no applicable value is 3600 seconds.', 'pushover_priority_-2' => 'Lowest Priority (-2)', 'pushover_priority_-1' => 'Low Priority (-1)', 'pushover_priority_0' => 'Normal Priority (0)', diff --git a/src/psm/Module/Server/Controller/AbstractServerController.php b/src/psm/Module/Server/Controller/AbstractServerController.php index 79069e9c..0d566e95 100644 --- a/src/psm/Module/Server/Controller/AbstractServerController.php +++ b/src/psm/Module/Server/Controller/AbstractServerController.php @@ -77,7 +77,12 @@ abstract class AbstractServerController extends AbstractController { `s`.`warning_threshold_counter`, `s`.`timeout`, `s`.`website_username`, - `s`.`website_password` + `s`.`website_password`, + `s`.`pushover_priority_online`, + `s`.`pushover_priority_offline`, + `s`.`pushover_sound`, + `s`.`pushover_retry`, + `s`.`pushover_expire` FROM `".PSM_DB_PREFIX."servers` AS `s` {$sql_join} {$sql_where} diff --git a/src/psm/Module/Server/Controller/ServerController.php b/src/psm/Module/Server/Controller/ServerController.php index a22838f3..8fd4f1ff 100644 --- a/src/psm/Module/Server/Controller/ServerController.php +++ b/src/psm/Module/Server/Controller/ServerController.php @@ -157,6 +157,9 @@ class ServerController extends AbstractServerController { $tpl_data['users'] = $this->db->select(PSM_DB_PREFIX.'users', null, array('user_id', 'name'), '', 'name'); + $tpl_data['default_pushover_retry'] = psm_get_conf('pushover_default_retry'); + $tpl_data['default_pushover_expire'] = psm_get_conf('pushover_default_expire'); + switch($this->server_id) { case 0: // insert mode @@ -206,6 +209,8 @@ class ServerController extends AbstractServerController { 'edit_email_selected_' . $edit_server['email'] => 'selected="selected"', 'edit_sms_selected_' . $edit_server['sms'] => 'selected="selected"', 'edit_pushover_selected_' . $edit_server['pushover'] => 'selected="selected"', + 'edit_pushover_retry' => $edit_server['pushover_retry'], + 'edit_pushover_expire' => $edit_server['pushover_expire'], )); } @@ -222,6 +227,84 @@ class ServerController extends AbstractServerController { } } + // pushover settings + $pushoverPriority = [ + '' => [ + 'value' => '', + 'label' => psm_get_lang('servers', 'pushover_default'), + 'selected' => '', + ], + '-2' => [ + 'value' => '-2', + 'label' => psm_get_lang('config', 'pushover_priority_-2'), + 'selected' => '', + ], + '-1' => [ + 'value' => '-1', + 'label' => psm_get_lang('config', 'pushover_priority_-1'), + 'selected' => '', + ], + '0' => [ + 'value' => '0', + 'label' => psm_get_lang('config', 'pushover_priority_0'), + 'selected' => '', + ], + '1' => [ + 'value' => '1', + 'label' => psm_get_lang('config', 'pushover_priority_1'), + 'selected' => '', + ], + '2' => [ + 'value' => '2', + 'label' => psm_get_lang('config', 'pushover_priority_2'), + 'selected' => '', + ], + ]; + + $tpl_data['pushover_priority_online'] = $pushoverPriority; + $tpl_data['pushover_priority_online']['']['label'] = sprintf($tpl_data['pushover_priority_online']['']['label'], psm_get_conf('pushover_default_priority_online')); + if ( + isset($edit_server['pushover_priority_online']) && + isset($tpl_data['pushover_priority_online'][$edit_server['pushover_priority_online']]) + ) { + $tpl_data['pushover_priority_online'][$edit_server['pushover_priority_online']]['selected'] = ' selected="selected"'; + } + + $tpl_data['pushover_priority_offline'] = $pushoverPriority; + $tpl_data['pushover_priority_offline']['']['label'] = sprintf($tpl_data['pushover_priority_offline']['']['label'], psm_get_conf('pushover_default_priority_offline')); + if ( + isset($edit_server['pushover_priority_offline']) && + isset($tpl_data['pushover_priority_offline'][$edit_server['pushover_priority_offline']]) + ) { + $tpl_data['pushover_priority_offline'][$edit_server['pushover_priority_offline']]['selected'] = ' selected="selected"'; + } + + $pushover = psm_build_pushover(); + $pushoverSound = $pushover->getSoundsList(); + + $tpl_data['pushover_sound'][''] = [ + 'value' => '', + 'label' => psm_get_lang('servers', 'pushover_default'), + 'selected' => (isset($edit_server['pushover_sound']) && $edit_server['pushover_sound'] == psm_get_conf('pushover_default_sound')) ? ' selected="selected"' : '', + ]; + + if ($pushoverSound !== false) { + foreach ($pushoverSound as $key => $name) { + $tpl_data['pushover_sound'][$key] = [ + 'value' => $key, + 'label' => $name, + 'selected' => (isset($edit_server['pushover_sound']) && $edit_server['pushover_sound'] == $key) ? ' selected="selected"' : '', + ]; + } + + $tpl_data['pushover_sound']['']['label'] = sprintf( + $tpl_data['pushover_sound']['']['label'], + (isset($pushoverSound[psm_get_conf('pushover_default_sound')]) ? $pushoverSound[psm_get_conf('pushover_default_sound')] : psm_get_conf('pushover_default_sound')) + ); + } else { + $tpl_data['pushover_sound']['']['label'] = sprintf($tpl_data['pushover_sound']['']['label'], psm_get_conf('pushover_default_sound')); + } + return $this->twig->render('module/server/server/update.tpl.html', $tpl_data); } @@ -247,6 +330,11 @@ class ServerController extends AbstractServerController { 'email' => in_array($_POST['email'], array('yes', 'no')) ? $_POST['email'] : 'no', 'sms' => in_array($_POST['sms'], array('yes', 'no')) ? $_POST['sms'] : 'no', 'pushover' => in_array($_POST['pushover'], array('yes', 'no')) ? $_POST['pushover'] : 'no', + 'pushover_priority_online' => psm_POST('pushover_priority_online', ''), + 'pushover_priority_offline' => psm_POST('pushover_priority_offline', ''), + 'pushover_sound' => psm_POST('pushover_sound', ''), + 'pushover_retry' => psm_POST('pushover_retry', ''), + 'pushover_expire' => psm_POST('pushover_expire', ''), ); // make sure websites start with http:// if($clean['type'] == 'website' && substr($clean['ip'], 0, 4) != 'http') { @@ -401,6 +489,15 @@ class ServerController extends AbstractServerController { 'label_website_password_description' => psm_get_lang('servers', 'website_password_description'), 'label_fieldset_monitoring' => psm_get_lang('servers', 'fieldset_monitoring'), 'label_fieldset_permissions' => psm_get_lang('servers', 'fieldset_permissions'), + 'label_fieldset_pushover' => psm_get_lang('servers', 'fieldset_pushover'), + 'label_seconds' => psm_get_lang('config', 'seconds'), + 'label_pushover_priority_online' => psm_get_lang('servers', 'pushover_priority_online'), + 'label_pushover_priority_offline' => psm_get_lang('servers', 'pushover_priority_offline'), + 'label_pushover_sound' => psm_get_lang('servers', 'pushover_sound'), + 'label_pushover_retry' => psm_get_lang('servers', 'pushover_retry'), + 'label_pushover_retry_description' => psm_get_lang('servers', 'pushover_retry_description'), + 'label_pushover_expire' => psm_get_lang('servers', 'pushover_expire'), + 'label_pushover_expire_description' => psm_get_lang('servers', 'pushover_expire_description'), 'label_port' => psm_get_lang('servers', 'port'), 'label_custom_port' => psm_get_lang('servers', 'custom_port'), 'label_please_select' => psm_get_lang('servers', 'please_select'), diff --git a/src/psm/Util/Install/Installer.php b/src/psm/Util/Install/Installer.php index b66e7942..20e6761d 100644 --- a/src/psm/Util/Install/Installer.php +++ b/src/psm/Util/Install/Installer.php @@ -235,6 +235,11 @@ class Installer { `timeout` smallint(1) unsigned NULL DEFAULT NULL, `website_username` varchar(255) DEFAULT NULL, `website_password` varchar(255) DEFAULT NULL, + `pushover_priority_online` varchar(255) DEFAULT NULL, + `pushover_priority_offline` varchar(255) DEFAULT NULL, + `pushover_sound` varchar(255) DEFAULT NULL, + `pushover_retry` varchar(255) DEFAULT NULL, + `pushover_expire` varchar(255) DEFAULT NULL, PRIMARY KEY (`server_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;", PSM_DB_PREFIX . 'servers_uptime' => "CREATE TABLE IF NOT EXISTS `" . PSM_DB_PREFIX . "servers_uptime` ( @@ -448,6 +453,11 @@ class Installer { psm_update_conf('pushover_default_expire', '3600'); $queries[] = "ALTER TABLE `" . PSM_DB_PREFIX . "servers` CHANGE `ip` `ip` VARCHAR(500) NOT NULL;"; $queries[] = "ALTER TABLE `" . PSM_DB_PREFIX . "servers` ADD `website_username` varchar(255) NULL, ADD `website_password` varchar(255) NULL AFTER `website_username`;"; + $queries[] = "ALTER TABLE `" . PSM_DB_PREFIX . "servers` ADD `pushover_priority_online` varchar(255) COLLATE 'utf8_general_ci' NULL, + ADD `pushover_priority_offline` varchar(255) COLLATE 'utf8_general_ci' NULL AFTER `pushover_priority_online`, + ADD `pushover_sound` varchar(255) COLLATE 'utf8_general_ci' NULL AFTER `pushover_priority_offline`, + ADD `pushover_retry` varchar(255) COLLATE 'utf8_general_ci' NULL AFTER `pushover_sound`, + ADD `pushover_expire` varchar(255) COLLATE 'utf8_general_ci' NULL AFTER `pushover_retry`;"; $this->execSQL($queries); } diff --git a/src/templates/default/module/server/server/update.tpl.html b/src/templates/default/module/server/server/update.tpl.html index 9b416694..b3c308b7 100644 --- a/src/templates/default/module/server/server/update.tpl.html +++ b/src/templates/default/module/server/server/update.tpl.html @@ -139,6 +139,52 @@ +
+ {{ label_fieldset_pushover }} +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ {{ label_seconds }} +
+
+
+ +
+ {{ label_seconds }} +
+
+
+
{{ label_fieldset_permissions }}