Merge branch 'hotfix/undefined-index-787' into production

This commit is contained in:
TimZ99 2019-09-30 18:00:28 +02:00
commit fcf623a160
No known key found for this signature in database
GPG Key ID: 4D8268DC68E8339D
14 changed files with 148 additions and 73 deletions

View File

@ -6,6 +6,11 @@ Not yet released
----------------
\-
v3.4.5 (released September 30, 2019)
------------------------------------
* a8eaedc8: Fixed undefined index last_output.
v3.4.4 (released September 26, 2019)
------------------------------------

View File

@ -5,8 +5,7 @@ PHP Server Monitor
:alt: Join the chat at https://gitter.im/erickrf/nlpnet
:target: https://gitter.im/phpservermon/phpservermon
Version 3.4.4 (Updated design!)
Version 3.4.5
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
It comes with a web based user interface where you can manage your services and websites,

View File

@ -51,7 +51,7 @@ copyright = u'2008-2017, Pepijn Over'
# built documents.
#
# The short X.Y version.
version = '3.4.4'
version = '3.4.5'
# The full version, including alpha/beta/rc tags.
release = version

View File

@ -476,17 +476,19 @@ function psm_update_available() {
// update last check date
psm_update_conf('last_update_check', time());
$latest = psm_curl_get(PSM_UPDATE_URL);
// extract latest version from Github.
preg_match('/"tag_name":"[v](([\d][.][\d][.][\d])(-?\w*))"/', $latest, $latest);
// add latest version to database
if ($latest !== false && strlen($latest) < 15) {
psm_update_conf('version_update_check', $latest);
if ($latest[2] !== false && strlen($latest[2]) < 15) {
psm_update_conf('version_update_check', $latest[2]);
}
} else {
$latest = psm_get_conf('version_update_check');
$latest[2] = psm_get_conf('version_update_check');
}
if ($latest !== false) {
if ($latest[2] !== false) {
$current = psm_get_conf('version');
return version_compare($latest, $current, '>');
return version_compare($latest[2], $current, '>');
} else {
return false;
}

View File

@ -29,19 +29,19 @@
/**
* Current PSM version
*/
define('PSM_VERSION', '3.4.4');
define('PSM_VERSION', '3.4.5');
/**
* URL to check for updates. Will not be checked if turned off on config page.
* @see psm_update_available()
*/
define('PSM_UPDATE_URL', 'http://www.phpservermonitor.org/version.php');
define('PSM_UPDATE_URL', 'https://api.github.com/repos/phpservermon/phpservermon/releases/latest');
/**
* Default update interval (1 week). Only applicable when updates are enabled.
* Default update interval (1 day). Only applicable when updates are enabled.
* @see psm_update_available()
*/
define('PSM_UPDATE_INTERVAL', 7 * 24 * 60 * 60);
define('PSM_UPDATE_INTERVAL', 1 * 24 * 60 * 60);
/**
* Configuration for: Hashing strength

View File

@ -26,7 +26,7 @@
**/
$sm_lang = array(
'name' => 'Estonian - Eesti keel',
'name' => 'Eesti keel - Estonian',
'locale' => array('et_ET.UTF-8', 'et_ET', 'estonian'),
'locale_tag' => 'et',
'locale_dir' => 'ltr',

View File

@ -38,6 +38,7 @@ $sm_lang = array(
'save' => 'Enregistrer',
'edit' => 'Editer',
'delete' => 'Supprimer',
'view' => 'Détails',
'date' => 'Date',
'message' => 'Message',
'yes' => 'Oui',
@ -48,7 +49,10 @@ $sm_lang = array(
'back_to_top' => 'Haut de page',
'go_back' => 'Retour',
'ok' => 'OK',
'bad' => 'mauvais',
'cancel' => 'Annuler',
'none' => 'Aucun',
'activate' => 'Activer',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
'short_day_format' => 'Le %e %B',
'long_day_format' => 'Le %e %B %Y',
@ -73,6 +77,9 @@ $sm_lang = array(
'minutes' => 'minutes',
'second' => 'seconde',
'seconds' => 'secondes',
'current' => 'actuel',
'settings' => 'Paramètres',
'search' => 'Recherche'
),
'menu' => array(
'config' => 'Configuration',
@ -90,7 +97,7 @@ $sm_lang = array(
'password' => 'Mot de passe',
'password_repeat' => 'Répéter le mot de passe',
'password_leave_blank' => 'Laisser vide pour ne pas le modifier',
'level' => 'Niveau',
'level' => 'Rôle',
'level_10' => 'Administrateur',
'level_20' => 'Utilisateur',
'level_description' => 'Les <b>Administrateurs</b> ont un accès total. Ils peuvent gérer les serveurs, les utilisateurs et éditer la configuration globale.<br>Les <b>Utilisateurs</b> ne peuvent que voir et mettre à jour les serveurs qui leur ont été assignés.',
@ -101,8 +108,18 @@ $sm_lang = array(
'pushover_key' => 'Clé Pushover',
'pushover_device' => 'Appareil Pushover',
'pushover_device_description' => 'Nom de l\'appareil auquel le message doit être envoyé. Laissez vide pour l\'envoyer à tous les appareils.',
'telegram' => 'Telegram',
'telegram_description' => '<a href="https://telegram.org/">Telegram</a> est une application de messagerie instantanée qui facilite la réception de notification en temps réel. Lisez la <a href="http://docs.phpservermonitor.org/">documentation</a> pour obtenir plus d\'informations sur la configuration de ce service.',
'telegram_chat_id' => 'ID de conversation (Chat ID) Telegram',
'telegram_chat_id_description' => 'Les notifications seront envoyées à la conversation correspondante.',
'telegram_get_chat_id' => 'Cliquez ici pour obtenir votre ID de conversation (Chat ID)',
'activate_telegram' => 'Activer les alertes Telegram',
'activate_telegram_description' => 'Permet aux notifications Telegram d\'être envoyée à la conversation spécifiée. Sans cette permission, Telegram ne nous autorise pas à vous envoyer des notifications.',
'telegram_bot_username_found' => 'Le BOT a été trouvé&nbsp;!<br><a href="%s" target="_blank" rel="noopener"><button class="btn btn-primary">Étape suivante</button></a> <br>Cela va ouvrir une conversation avec le BOT. Vous devez appuyer sur \'/start\' ou le saisir.',
'telegram_bot_username_error_token' => '<b>401 - Unauthorized</b>. Assuez-vous que le Token API soit valide.',
'telegram_bot_error' => 'Une erreur s\'est produite en tentant d\'activer les notifications Telegram&nbsp;: %s',
'delete_title' => 'Supprimer un utilisateur',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer l\'utilisateur \'%1\' ?',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer l\'utilisateur \'%1\'&nbsp;?',
'deleted' => 'Utilisateur supprimé.',
'updated' => 'Utilisateur mis à jour.',
'inserted' => 'Utilisateur ajouté.',
@ -113,7 +130,7 @@ $sm_lang = array(
'error_user_name_exists' => 'Ce nom d\'utilisateur existe déjà.',
'error_user_email_bad_length' => 'L\'adresse email doit avoir entre 5 et 255 caractères.',
'error_user_email_invalid' => 'L\'adresse email n\'est pas valide.',
'error_user_level_invalid' => 'Le niveau d\'utilisateur n\'est pas valide.',
'error_user_level_invalid' => 'Le rôle d\'utilisateur n\'est pas valide.',
'error_user_no_match' => 'L\'utilisateur n\'a pas été trouvé dans la base de données.',
'error_user_password_invalid' => 'Le mot de passe n\'est pas valide.',
'error_user_password_no_match' => 'Le mot de passe est incorrect.',
@ -122,13 +139,14 @@ $sm_lang = array(
'title' => 'Événements',
'type' => 'Type',
'status' => 'État',
'email' => 'email',
'email' => 'Email',
'sms' => 'SMS',
'pushover' => 'Pushover',
'telegram' => 'Telegram',
'no_logs' => 'Aucun événement',
'clear' => 'Claire registros',
'delete_title' => 'Supprimer journaux',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer <b>tous</b> les journaux?',
'clear' => 'Effacer les journaux',
'delete_title' => 'Supprimer les journaux',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer <b>tous</b> les journaux&nbsp;?',
),
'servers' => array(
'server' => 'Serveur',
@ -137,15 +155,47 @@ $sm_lang = array(
'domain' => 'Domaine/IP',
'timeout' => 'Délai d\'attente',
'timeout_description' => 'Nombre de secondes à attendre une réponse du serveur.',
'authentication_settings' => 'Paramètres d\'authentification',
'optional' => 'Optionnel',
'website_username' => 'Nom d\'utilisateur',
'website_username_description' => 'Nom d\'utilisateur pour accèder au site. (Seul l\'authentification Apache est supporté.)',
'website_password' => 'Mot de passe',
'website_password_description' => 'Mot de passe pour accèder au site. Le mot de passe est cryptè dans la base de donnée.',
'fieldset_monitoring' => 'Monitoring',
'fieldset_permissions' => 'Permissions',
'permissions' => 'Les utilisateurs suivants pourront voir le serveur.',
'port' => 'Port',
'custom_port' => 'Port personnalisé',
'popular_ports' => 'Ports courant',
'request_method' => 'Type de requête',
'custom_request_method' => 'Type de requête personalisée',
'popular_request_methods' => 'Type de requête prédéfinie',
'post_field' => 'Champ POST',
'post_field_description' => 'Les données qui seront envoyés en utilisant le type de requête choisi.',
'please_select' => 'Veuillez choisir',
'type' => 'Type',
'type_website' => 'Site Web',
'type_service' => 'Service',
'type_ping' => 'Ping',
'pattern' => 'Rechercher un texte/motif',
'pattern_description' => 'Si ce texte n\'est par retrouvé sur le site web, le serveur est marqué hors-service. Les expressions réguliaires sont autorisées.',
'pattern_description' => 'Si ce texte n\'est par retrouvé sur le site web, le serveur est marqué hors-service. Les expressions régulières sont autorisées.',
'pattern_online' => 'Le texte indique que le site est',
'pattern_online_description' => 'En ligne&nbsp;: Si ce texte <b>n\'est pas trouvé</b> sur le site internet, le serveur sera considéré en ligne. Hors-ligne&nbsp;: Si ce texte <b>n\'est pas trouvé</b> sur le site, le serveur sera considéré hors-ligne.',
'redirect_check' => 'La redirection vers un autre domaine est',
'redirect_check_description' => 'Une redirection vers un autre domaine est généralement mauvais signe.',
'allow_http_status' => 'Autoriser les codes de status HTTP',
'allow_http_status_description' => 'Marquer le serveur en ligne. Les codes de status HTTP inférieur à 400 sont considérés comme en ligne par défaut. Séparés les valeurs avec |.',
'header_name' => 'Nom d\'en-têtes',
'header_value' => 'Valeur d\'en-tête',
'header_name_description' => 'Sensible à la casse.',
'header_value_description' => 'Les expréssions régulières sont autorisées.',
'last_check' => 'Dernière vérification',
'last_online' => 'Dernière fois OK',
'last_offline' => 'Dernière fois hors-ligne',
'last_output' => 'Dernière sortie positive',
'last_error' => 'Dernière erreur',
'last_error_output' => 'Dernière erreur de sortie',
'output' => 'Sortie',
'monitoring' => 'Surveillé',
'no_monitoring' => 'Non surveillé',
'email' => 'Email',
@ -153,9 +203,12 @@ $sm_lang = array(
'sms' => 'SMS',
'send_sms' => 'Envoyer un SMS',
'pushover' => 'Pushover',
'send_pushover' => 'Envoyer des notifications Pushover',
'telegram' => 'Telegram',
'send_telegram' => 'Envoyer des notifications Telegram',
'users' => 'Utilisateurs',
'delete_title' => 'Supprimer un serveur',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer le serveur \'%1\' ?',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer le serveur \'%1\'&nbsp;?',
'deleted' => 'Serveur supprimé.',
'updated' => 'Serveur mis à jour.',
'inserted' => 'Serveur ajouté.',
@ -163,6 +216,8 @@ $sm_lang = array(
'latency_max' => 'Temps de réponse maximum',
'latency_min' => 'Temps de réponse minimum',
'latency_avg' => 'Temps de réponse moyen',
'online' => 'en ligne',
'offline' => 'hors ligne',
'uptime' => 'Disponibilité',
'year' => 'Année',
'month' => 'Mois',
@ -181,6 +236,7 @@ $sm_lang = array(
'warning_notifications_disabled_sms' => 'Les notifications SMS sont désactivées.',
'warning_notifications_disabled_email' => 'Les notifications par email sont désactivées.',
'warning_notifications_disabled_pushover' => 'Les notifications Pushover sont désactivées.',
'warning_notifications_disabled_telegram' => 'Les notifications Telegram sont désactivées.',
'error_server_no_match' => 'Serveur non trouvé.',
'error_server_label_bad_length' => 'Le nom doit avoir entre 1 et 255 caractères.',
'error_server_ip_bad_length' => 'Domaine/IP doit avoir entre 1 et 255 caractères.',
@ -193,14 +249,20 @@ $sm_lang = array(
'general' => 'Général',
'language' => 'Langue',
'show_update' => 'Vérifier les nouvelles mises à jour chaque semaine',
'password_encrypt_key' => 'Clée de cryptage des mots de passe',
'password_encrypt_key_note' => 'Cette clée est utilisée pour crypter les mots de passe qui sont enregistrés dans la base de donnée pour les serveurs qui requiert une authentification. Si la clé est modifié, les mots de passe enregistré ne seront plus valide&nbsp;!',
'proxy' => 'Activer le proxy',
'proxy_url' => 'URL du proxy',
'proxy_user' => 'Nom d\'utilisateur du proxy',
'proxy_password' => 'Mot de passe du proxy',
'email_status' => 'Autoriser l\'envoi de mail',
'email_from_email' => 'Adresse de l\'expéditeur',
'email_from_name' => 'Nom de l\'expéditeur',
'email_smtp' => 'Utiliser un serveur SMTP',
'email_smtp_host' => 'Adresse serveur SMTP',
'email_smtp_port' => 'Port SMTP',
'email_smtp_security' => 'Sécurité SMTP',
'email_smtp_security_none' => 'Aucune',
'email_smtp_security' => 'Protocole de sécurité SMTP',
'email_smtp_security_none' => 'Aucun',
'email_smtp_username' => 'Nom utilisateur SMTP',
'email_smtp_password' => 'Mot de passe SMTP',
'email_smtp_noauth' => 'Laisser vide si pas d\'authentication',
@ -214,32 +276,44 @@ $sm_lang = array(
'pushover_clone_app' => 'Cliquez ici pour créer votre application Pushover',
'pushover_api_token' => 'Jeton application Pushover',
'pushover_api_token_description' => 'Avant de pouvoir utiliser Pushover, vous devez <a href="%1$s" target="_blank" rel="noopener">créer une application</a> sur leur site web et entrer ici le jeton (Token) de l\'application.',
'telegram_status' => 'Autorise l\'envoi de message Telegram',
'telegram_description' => '<a href="https://telegram.org/">Telegram</a> est une application de messagerie instantanée qui facilite la réception de notification en temps réel. Lisez la <a href="http://docs.phpservermonitor.org/">documentation</a> pour obtenir plus d\'informations sur la configuration de ce service.',
'telegram_api_token' => 'Token API Telegram',
'telegram_api_token_description' => 'Afin de pouvoir utiliser Telegram, il vous faut obtenir un token api. Consultez la <a href="http://docs.phpservermonitor.org/">documentation</a> pour obtenir de l\'aide.',
'alert_type' => 'Choisissez quand vous souhaitez être notifié',
'alert_type_description' => '<b>Changement d\'état : </b>'.
'alert_type_description' => '<b>Changement d\'état&nbsp;: </b>'.
'Vous recevez une notification chaque fois que le serveur change d\'état. C\'est-à-dire passe de l\'état OK à HORS SERVICE ou de HORS SERVICE à OK.<br>'.
'<br><b>Hors service : </b>'.
'<br><b>Hors service&nbsp;: </b>'.
'Vous ne recevez une notification que quand le serveur passe de l\'état OK à HORS SERVICE. Par exemple, '.
'Votre tâche planifiée s\'exécute toutes les 15 minutes et votre serveur passe à l\'état HORS SERVICE à 1 heure du matin et le reste jusqu\'à 6 heures du matin.'.
'Vous ne recevez qu\'une seule notification à 1 heure du matin.<br>'.
'<br><b>Toujours : </b>'.
'<br><b>Toujours&nbsp;: </b>'.
'Vous recevez une notification à chaque exécution de la tâche planifiée si le serveur est à l\'état HORS SERVICE ',
'alert_type_status' => 'Changement d\'état',
'alert_type_offline' => 'Hors service',
'alert_type_always' => 'Toujours',
'combine_notifications' => 'Combiner les notifications',
'combine_notifications_description' => 'Réduit le nombre de notifications en les combinant toutes en une seule. (Cela ne s\'applique pas aux SMS.)',
'alert_proxy' => 'Le serveur proxy n\'est jamais utilisé pour les services, même quand celui-ci est activé.',
'alert_proxy_url' => 'Format&nbsp;: hôte:port',
'log_status' => 'Etat des événements',
'log_status_description' => 'Si l\'option est activée, un événement est enregistré chaque fois qu\'une notification a lieu.',
'log_email' => 'Enregistrer tous les emails envoyés',
'log_sms' => 'Enregistrer tous les SMS envoyés',
'log_pushover' => 'Enregistrer tous les messages Pushover envoyés',
'log_telegram' => 'Enregistrer tous les messages Telegram envoyés',
'updated' => 'La configuration a été mise à jour.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
'tab_pushover' => 'Pushover',
'tab_telegram' => 'Telegram',
'settings_email' => 'Configuration email',
'settings_sms' => 'Configuration SMS',
'settings_pushover' => 'Configuration Pushover',
'settings_telegram' => 'Configuration Telegram',
'settings_notification' => 'Configuration des notifications',
'settings_log' => 'Configuration des événements',
'settings_proxy' => 'Configuration du proxy',
'auto_refresh' => 'Auto-rachaîchissement',
'auto_refresh_description' =>
'Auto-rachaîchissement de la page serveurs.<br>'.
@ -251,18 +325,23 @@ $sm_lang = array(
'test_email' => 'Un email va vous être envoyé à l\'adresse définie dans votre profil utilisateur.',
'test_sms' => 'Un SMS va vous être envoyé au numéro défini dans votre profil utilisateur.',
'test_pushover' => 'Une notification Pushover va être envoyée en utilisant la clé spécifiée dans votre profil utilisateur.',
'test_telegram' => 'Une notification Telegram sera envoyé à la conversion indiqué sur votre profil (ID de conversation).',
'send' => 'Envoyer',
'test_subject' => 'Test',
'test_message' => 'Message de test',
'email_sent' => 'Email envoyé',
'email_error' => 'Erreur lors de l\'envoi de l\'email',
'sms_sent' => 'Sms envoyé',
'sms_sent' => 'SMS envoyé',
'sms_error' => 'Erreur lors de l\'envoi du SMS. %s',
'sms_error_nomobile' => 'Impossible d\'envoyer un SMS de test: aucun numéro de téléphone défini dans votre profil.',
'pushover_sent' => 'Notification Pushover envoyée',
'pushover_error' => 'Une erreur s\'est produite lors de l\'envoi de la notification Pushover : %s',
'pushover_error' => 'Une erreur s\'est produite lors de l\'envoi de la notification Pushover&nbsp;: %s',
'pushover_error_noapp' => 'Impossible d\'envoyer une notification de test: Aucun jeton application Pushover n\'a été défini dans la configuration Pushover.',
'pushover_error_nokey' => 'Impossible d\'envoyer une notification de test: Aucune clé Pushover n\'a été définie dans votre profil.',
'telegram_sent' => 'Notification Telegram envoyée',
'telegram_error' => 'Une erreur s\'est produite lors de l\'envoi de la notification&nbsp;: %s',
'telegram_error_notoken' => 'Impossible d\'envoyé la notification de test&nbsp;: aucun token APII token trouvé dans la configuration.',
'telegram_error_noid' => 'Impossible d\'envoyé la notification de test&nbsp;: aucun ID de conversation trouvé dans votre profil utilisateur.',
'log_retention_period' => 'Durée de conservation',
'log_retention_period_description' => 'Nombre de jours de conservation des événements envoyés et des temps de réponse des serveurs. Entrez 0 pour les conserver indéfiniment.',
'log_retention_days' => 'jours',
@ -271,19 +350,32 @@ $sm_lang = array(
'notifications' => array(
'off_sms' => 'Le Serveur \'%LABEL%\' est HORS SERVICE: IP=%IP%, Port=%PORT%. Erreur=%ERROR%',
'off_email_subject' => 'IMPORTANT: Le Serveur \'%LABEL%\' est HORS SERVICE',
'off_email_body' => "Impossible de se connecter au serveur suivant:<br><br>Serveur: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Erreur: %ERROR%<br>Date: %DATE%",
'off_email_body' => "Impossible de se connecter au serveur suivant:<br><br>Serveur&nbsp;: %LABEL%<br>IP&nbsp;: %IP%<br>Port&nbsp;: %PORT%<br>Erreur&nbsp;: %ERROR%<br>Date: %DATE%",
'off_pushover_title' => 'Le Serveur \'%LABEL%\' est HORS SERVICE',
'off_pushover_message' => "Impossible de se connecter au serveur suivant:<br><br>Serveur: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Erreur: %ERROR%<br>Date: %DATE%",
'off_pushover_message' => "Impossible de se connecter au serveur suivant&nbsp;:<br><br>Serveur&nbsp;: %LABEL%<br>IP&nbsp;: %IP%<br>Port&nbsp;: %PORT%<br>Erreur&nbsp;: %ERROR%<br>Date&nbsp;: %DATE%",
'off_telegram_message' => "Impossible de se connecter au serveur suivant&nbsp;:<br><br>Serveur&nbsp;: %LABEL%<br>IP&nbsp;: %IP%<br>Port&nbsp;: %PORT%<br>Erreur&nbsp;: %ERROR%<br>Date&nbsp;: %DATE%",
'on_sms' => 'Le Serveur \'%LABEL%\' est OK: IP=%IP%, Port=%PORT%, il était hors-ligne pendant %LAST_OFFLINE_DURATION%',
'on_email_subject' => 'IMPORTANT: Le Serveur \'%LABEL%\' est OK',
'on_email_body' => "Le Serveur '%LABEL%' est de nouveau OK, il était hors-ligne pendant %LAST_OFFLINE_DURATION%:<br><br>Serveur: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Date: %DATE%",
'on_pushover_title' => 'Le Serveur \'%LABEL%\' est OK',
'on_pushover_message' => "Le Serveur '%LABEL%' est de nouveau OK, il était hors-ligne pendant %LAST_OFFLINE_DURATION%:<br><br>Serveur: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Date: %DATE%",
'on_telegram_message' => 'Server \'%LABEL%\' is running again, it was down for: %LAST_OFFLINE_DURATION%<br><br>Server: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Date: %DATE%',
'combi_off_email_message' => "<ul><li>Serveur&nbsp;: %LABEL%</li><li>IP&nbsp;: %IP%</li><li>Port&nbsp;: %PORT%</li><li>Erreur&nbsp;: %ERROR%</li><li>Date&nbsp;: %DATE%</li></ul>",
'combi_off_pushover_message' => "<ul><li>Serveur&nbsp;: %LABEL%</li><li>IP&nbsp;: %IP%</li><li>Port&nbsp;: %PORT%</li><li>Erreur&nbsp;: %ERROR%</li><li>Date&nbsp;: %DATE%</li></ul>",
'combi_off_telegram_message' => "- Serveur&nbsp;: %LABEL%<br>- IP&nbsp;: %IP%<br>- Port&nbsp;: %PORT%<br>- Erreur&nbsp;: %ERROR%<br>- Date&nbsp;: %DATE%<br><br>",
'combi_on_email_message' => "<ul><li>Serveur&nbsp;: %LABEL%</li><li>IP&nbsp;: %IP%</li><li>Port&nbsp;: %PORT%</li><li>Durée&nbsp;: %LAST_OFFLINE_DURATION%</li><li>Date&nbsp;: %DATE%</li></ul>",
'combi_on_pushover_message' => '<ul><li>Serveur&nbsp;: %LABEL%</li><li>IP&nbsp;: %IP%</li><li>Port&nbsp;: %PORT%</li><li>Durée&nbsp;: %LAST_OFFLINE_DURATION%</li><li>Date&nbsp;: %DATE%</li></ul>',
'combi_on_telegram_message' => '- Serveur&nbsp;: %LABEL%<br>- IP: %IP%<br>- Port&nbsp;: %PORT%<br>- Durée&nbsp;: %LAST_OFFLINE_DURATION%<br>- Date&nbsp;: %DATE%<br><br>',
'combi_email_subject' => 'IMPORTANT&nbsp;: \'%UP%\' serveurs de nouveaux en ligne, \'%DOWN%\' serveurs hors-ligne',
'combi_pushover_subject' => '\'%UP%\' serveurs de nouveaux en ligne, \'%DOWN%\' serveurs hors-ligne',
'combi_email_message' => '<b>Les serveurs suivants sont hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Les serveurs suivants sont en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_pushover_message' => '<b>Les serveurs suivants sont hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Les serveurs suivants sont en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_telegram_message' => '<b>Les serveurs suivants sont hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Les serveurs suivants sont en ligne&nbsp;:</b><br>%UP_SERVERS%',
),
'login' => array(
'welcome_usermenu' => 'Bonjour %user_name%',
'title_sign_in' => 'Connectez vous SVP',
'title_forgot' => 'Mot de passe oublié ?',
'title_forgot' => 'Mot de passe oublié&nbsp;?',
'title_reset' => 'Réinitialisation du mot de passe',
'submit' => 'Envoyer',
'remember_me' => 'Se souvenir de moi',
@ -292,14 +384,14 @@ $sm_lang = array(
'username' => 'Nom',
'password' => 'Mot de passe',
'password_repeat' => 'Répéter le mot de passe',
'password_forgot' => 'Mot de passe oublié ?',
'password_forgot' => 'Mot de passe oublié&nbsp;?',
'password_reset' => 'Réinitialiser le mot de passe',
'password_reset_email_subject' => 'Réinitialisation du mot de passe pour PHP Server Monitor',
'password_reset_email_body' => 'Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe. Veuillez noter qu\'il expire dans une heure.<br><br>%link%',
'error_user_incorrect' => 'Nom d\'utilisateur invalide.',
'error_login_incorrect' => 'Informations incorrectes.',
'error_login_passwords_nomatch' => 'Mot de passe invalide.',
'error_reset_invalid_link' => 'Le lien d\initialisation du mot de passe n\'est pas valide.',
'error_reset_invalid_link' => 'Le lien d\'initialisation du mot de passe n\'est pas valide.',
'success_password_forgot' => 'Un email vous a été envoyé pour réinitialiser votre mot de passe.',
'success_password_reset' => 'Votre mot de passe a été réinitialisé.',
),

View File

@ -27,7 +27,7 @@
**/
$sm_lang = array(
'name' => 'Russian - Русский',
'name' => 'Русский - Russian',
'locale' => array('ru_RU.UTF-8', 'ru_RU', 'russian', 'russian'),
'locale_tag' => 'ru',
'locale_dir' => 'ltr',

View File

@ -26,7 +26,7 @@
**/
$sm_lang = array(
'name' => 'Tiếng Việt',
'name' => 'Tiếng Việt - Vietnamese',
'locale' => array('vi_VN.UTF-8', 'vi_VN', 'Việt Nam'),
'system' => array(
'title' => 'Server Monitor',

View File

@ -126,7 +126,7 @@ class StatusUpdater {
// if the server is on, add the last_online value and reset the error threshold counter
$save['status'] = 'on';
$save['last_online'] = date('Y-m-d H:i:s');
$save['last_output'] = $this->header;
$save['last_output'] = substr($this->header,0,5000);
$save['warning_threshold_counter'] = 0;
if ($this->server['status'] == 'off') {
$online_date = new \DateTime($save['last_online']);
@ -152,15 +152,6 @@ class StatusUpdater {
}
}
}
// PATCH Arkhee: fix/last-online-stuck-on-never-if-webpage-too-large
// Updating table "servers" does not work
// Symptom: "Last online" stays stuck on "never"
// Reason: last_output contains the full webpage, too long for the query
// This may depend on mysql configuration on the server_, explaining why some have the problem or not
// Field is 255 Chars, and request does not work anyway is loaded web page is too large in last_output
// Solution: updated column to text and truncate to 5000 characters or less before the query
$save["last_output"] = substr($save["last_output"],0,5000);
// End PATCH
$this->db->save(PSM_DB_PREFIX.'servers', $save, array('server_id' => $this->server_id));
return $this->status_new;

View File

@ -68,8 +68,7 @@
Powered by
<a href="https://github.com/phpservermon/phpservermon/" target="_blank" rel="noopener">
PHP Server Monitor {{ version }}.
</a>
{{ update_available }} <a href="#" class="float-right">{{ label_back_to_top }}</a>
</a><span style="color:red;">{{ update_available|raw }}</span><a href="#" class="float-right">{{ label_back_to_top }}</a>
</span>
</div>
</footer>

View File

@ -1,2 +1,2 @@
html{position:relative;min-height:100%}html[dir='rtl'] #auto_refresh_servers,html[dir='rtl'] #log_retention_period{border-left-width:0px}html[dir='rtl'] #auto_refresh_servers_input,html[dir='rtl'] #log_retention_period_input{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0;border-bottom-right-radius:0}body{padding-top:4.5rem;margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px;line-height:60px;background-color:#f5f5f5}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.64)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,0.85)}dl,dt,dd{margin-bottom:0}footer .text-muted{color:#4C5557 !important}a,button,.nav-link{min-height:44px !important;min-width:44px !important}a.icon{text-decoration:none;cursor:pointer;padding-left:10px}#auto_refresh_servers,#log_retention_period{border-right-width:0px}#auto_refresh_servers_input,#log_retention_period_input{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-top-left-radius:0;border-bottom-left-radius:0}form.form-signin input[type="text"],form.form-reset input[type="text"]{border-bottom-left-radius:0;border-bottom-right-radius:0}form.form-signin input[type="password"]{border-top-left-radius:0;border-top-right-radius:0}form.form-reset input#input-password{border-radius:0}form.form-reset input#input-password-repeat{border-top-left-radius:0;border-top-right-radius:0}form.form-signin,form.form-forgot,form.form-reset{margin:auto}table{table-layout:fixed}th,td{max-width:1px}.content{word-wrap:break-word;overflow-wrap:break-word}table tr[visible='false'],.no-result{display:none}table tr[visible='true']{display:table-row}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:unset}#meter{border-radius:200px 200px 0 0;height:100px;margin:50px auto 0;overflow:hidden;position:relative;width:200px}#meter:before{background:#fbfbfb;border-radius:200px 200px 0 0;-webkit-box-shadow:3px 1px 8px rgba(0,0,0,0.15) inset;box-shadow:3px 1px 8px rgba(0,0,0,0.15) inset;content:"";height:100px;position:absolute;width:200px}#meter:after{background:#fff;border-radius:140px 140px 0 0;bottom:0;-webkit-box-shadow:3px 1px 8px rgba(0,0,0,0.15);box-shadow:3px 1px 8px rgba(0,0,0,0.15);content:"\a" attr(data-value) "%\a" attr(translation);font-size:1.5em;font-weight:100;height:80px;left:20px;line-height:25px;position:absolute;text-align:center;width:160px;z-index:3;white-space:pre}#needle{background:rgba(52,52,64,0.7);border-radius:4px;bottom:-4px;-webkit-box-shadow:3px -1px 4px rgba(0,0,0,0.4);box-shadow:3px -1px 4px rgba(0,0,0,0.4);display:block;height:8px;left:5px;position:absolute;width:95px;-webkit-transform-origin:100% 4px;transform-origin:100% 4px;-webkit-transition:all 1s;transition:all 1s;border-radius:4px;bottom:-4px;box-shadow:3px -1px 4px rgba(0,0,0,0.4);display:block;height:8px;left:5px;position:absolute;width:95px;transform-origin:100% 4px;transition:all 1s}
html{position:relative;min-height:100%}html[dir='rtl'] #auto_refresh_description,html[dir='rtl'] #log_retention_period_help{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}html[dir='ltr'] #auto_refresh_description,html[dir='ltr'] #log_retention_period_help{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}body{padding-top:4.5rem;margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px;line-height:60px;background-color:#f5f5f5}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.64)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,0.85)}dl,dt,dd{margin-bottom:0}footer .text-muted{color:#4C5557 !important}a,button,.nav-link{min-height:44px !important;min-width:44px !important}a.icon{text-decoration:none;cursor:pointer;padding-left:10px}form.form-signin input[type="text"],form.form-reset input[type="text"]{border-bottom-left-radius:0;border-bottom-right-radius:0}form.form-signin input[type="password"]{border-top-left-radius:0;border-top-right-radius:0}form.form-reset input#input-password{border-radius:0}form.form-reset input#input-password-repeat{border-top-left-radius:0;border-top-right-radius:0}form.form-signin,form.form-forgot,form.form-reset{margin:auto}table{table-layout:fixed}th,td{max-width:1px}.content{word-wrap:break-word;overflow-wrap:break-word}table tr[visible='false'],.no-result{display:none}table tr[visible='true']{display:table-row}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:unset}#meter{border-radius:200px 200px 0 0;height:100px;margin:50px auto 0;overflow:hidden;position:relative;width:200px}#meter:before{background:#fbfbfb;border-radius:200px 200px 0 0;-webkit-box-shadow:3px 1px 8px rgba(0,0,0,0.15) inset;box-shadow:3px 1px 8px rgba(0,0,0,0.15) inset;content:"";height:100px;position:absolute;width:200px}#meter:after{background:#fff;border-radius:140px 140px 0 0;bottom:0;-webkit-box-shadow:3px 1px 8px rgba(0,0,0,0.15);box-shadow:3px 1px 8px rgba(0,0,0,0.15);content:"\a" attr(data-value) "%\a" attr(translation);font-size:1.5em;font-weight:100;height:80px;left:20px;line-height:25px;position:absolute;text-align:center;width:160px;z-index:3;white-space:pre}#needle{background:rgba(52,52,64,0.7);border-radius:4px;bottom:-4px;-webkit-box-shadow:3px -1px 4px rgba(0,0,0,0.4);box-shadow:3px -1px 4px rgba(0,0,0,0.4);display:block;height:8px;left:5px;position:absolute;width:95px;-webkit-transform-origin:100% 4px;transform-origin:100% 4px;-webkit-transition:all 1s;transition:all 1s;border-radius:4px;bottom:-4px;box-shadow:3px -1px 4px rgba(0,0,0,0.4);display:block;height:8px;left:5px;position:absolute;width:95px;transform-origin:100% 4px;transition:all 1s}
/*# sourceMappingURL=style.min.css.map */

View File

@ -1,6 +1,6 @@
{
"version": 3,
"mappings": "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",
"mappings": "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",
"sources": [
"../scss/style.scss"
],

View File

@ -4,18 +4,18 @@ html {
}
html[dir='rtl'] {
#auto_refresh_servers,
#log_retention_period {
border-left-width: 0px
}
#auto_refresh_servers_input,
#log_retention_period_input {
#auto_refresh_description,
#log_retention_period_help {
border-top-left-radius: .25rem;
border-bottom-left-radius: .25rem;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
html[dir='ltr'] {
#auto_refresh_description,
#log_retention_period_help {
border-top-right-radius: .25rem;
border-bottom-right-radius: .25rem;
}
}
@ -65,19 +65,6 @@ a.icon {
padding-left: 10px;
}
#auto_refresh_servers,
#log_retention_period {
border-right-width: 0px
}
#auto_refresh_servers_input,
#log_retention_period_input {
border-top-right-radius: .25rem;
border-bottom-right-radius: .25rem;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
form.form-signin input[type="text"],
form.form-reset input[type="text"] {
border-bottom-left-radius: 0;