diff --git a/core/class/DB.class.php b/core/class/DB.class.php index 83b7979179..4cd5a96487 100644 --- a/core/class/DB.class.php +++ b/core/class/DB.class.php @@ -34,10 +34,19 @@ class DB { private static function initConnection() { global $CONFIG; + $_options = [ + PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci', + PDO::ATTR_PERSISTENT => true, + // silent mode, default for php7: https://www.php.net/manual/fr/pdo.error-handling.php + // exception mode for debug + PDO::ATTR_ERRMODE => (DEBUG ? PDO::ERRMODE_EXCEPTION : PDO::ERRMODE_SILENT), + ]; if (isset($CONFIG['db']['unix_socket'])) { - static::$connection = new PDO('mysql:unix_socket=' . $CONFIG['db']['unix_socket'] . ';dbname=' . $CONFIG['db']['dbname'], $CONFIG['db']['username'], $CONFIG['db']['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci', PDO::ATTR_PERSISTENT => true)); + static::$connection = new PDO('mysql:unix_socket=' . $CONFIG['db']['unix_socket'] . ';dbname=' . $CONFIG['db']['dbname'], + $CONFIG['db']['username'], $CONFIG['db']['password'], $_options); } else { - static::$connection = new PDO('mysql:host=' . $CONFIG['db']['host'] . ';port=' . $CONFIG['db']['port'] . ';dbname=' . $CONFIG['db']['dbname'], $CONFIG['db']['username'], $CONFIG['db']['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci', PDO::ATTR_PERSISTENT => true)); + static::$connection = new PDO('mysql:host=' . $CONFIG['db']['host'] . ';port=' . $CONFIG['db']['port'] . ';dbname=' . $CONFIG['db']['dbname'], + $CONFIG['db']['username'], $CONFIG['db']['password'], $_options); } } diff --git a/core/class/history.class.php b/core/class/history.class.php index 2b8b9b0606..c1ed749631 100644 --- a/core/class/history.class.php +++ b/core/class/history.class.php @@ -1027,14 +1027,14 @@ public function save($_cmd = null, $_direct = false) { $this->setValue(round($this->getValue(), $cmd->getConfiguration('historizeRound'))); } if ( $JEEDOM_INTERNAL_CONFIG['cmd']['type']['info']['subtype'][$cmd->getSubType()]['isHistorized']['canBeSmooth'] - && $cmd->getConfiguration('smooth', 0) > 0 + && $cmd->getConfiguration('history::smooth', config::byKey('history::smooth','core',0)) > 0 && $cmd->getConfiguration('historizeMode', 'none') != 'none' && $this->getValue() !== null ) { if ($this->getTableName() == 'history') { $time = strtotime($this->getDatetime()); - $time -= $time % $cmd->getConfiguration('smooth', 0); + $time -= $time % $cmd->getConfiguration('history::smooth', config::byKey('history::smooth','core',0)); if ($this->getValue() == 0) { - $this->setDatetime(date('Y-m-d H:i:00', $time + $cmd->getConfiguration('smooth', 0))); + $this->setDatetime(date('Y-m-d H:i:00', $time + $cmd->getConfiguration('history::smooth', config::byKey('history::smooth','core',0)))); $values = array( 'cmd_id' => $this->getCmd_id(), 'datetime' => date('Y-m-d H:i:00', strtotime($this->getDatetime())), diff --git a/core/class/timeline.class.php b/core/class/timeline.class.php index 30f5fd439f..e97e4ebf9e 100644 --- a/core/class/timeline.class.php +++ b/core/class/timeline.class.php @@ -122,11 +122,8 @@ public static function clean($_all = false) { if($delete_number <= 0){ return; } - $values = array( - 'number' => $delete_number, - ); $sql = 'DELETE FROM timeline ORDER BY `datetime` ASC LIMIT '.$delete_number; - DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW); + DB::Prepare($sql, array(), DB::FETCH_TYPE_ROW); //ensure no duplicates: $sql = 'DELETE t1 FROM timeline t1 INNER JOIN timeline t2 WHERE '; diff --git a/core/config/default.config.ini b/core/config/default.config.ini index 7bafc45386..c65e263bb8 100644 --- a/core/config/default.config.ini +++ b/core/config/default.config.ini @@ -69,6 +69,7 @@ historyArchiveTime = 2 historyArchivePackage = 1 displayStatsWidget = 0 history::defautShowPeriod = -1 month +history::smooth = -2 ;security security::maxFailedLogin = 6 diff --git a/desktop/js/plan.js b/desktop/js/plan.js index c10cc25258..75eb09172b 100644 --- a/desktop/js/plan.js +++ b/desktop/js/plan.js @@ -248,6 +248,7 @@ if (!jeeFrontEnd.plan) { jeedomUtils.addOrUpdateUrl('plan_id', jeephp2js.planHeader_id, data.name + ' - ' + JEEDOM_PRODUCT_NAME) jeeP.initEditOption(jeeFrontEnd.planEditOption.state) jeedomUtils.initReportMode() + jeedomUtils.initTooltips() window.scrollTo({top: 0, behavior: "smooth"}) jeeFrontEnd.plan.setGraphResizes() jeeFrontEnd.modifyWithoutSave = false diff --git a/desktop/modal/cmd.configure.php b/desktop/modal/cmd.configure.php index 6e432d9434..e85218ca1b 100644 --- a/desktop/modal/cmd.configure.php +++ b/desktop/modal/cmd.configure.php @@ -516,8 +516,9 @@
- + + diff --git a/desktop/php/administration.php b/desktop/php/administration.php index ea1fb1a0a3..7b4ae84935 100644 --- a/desktop/php/administration.php +++ b/desktop/php/administration.php @@ -1170,6 +1170,19 @@
+
+ +
+ +
+
diff --git a/docs/fr_FR/changelog.md b/docs/fr_FR/changelog.md index a5214ea193..dc48aa43d8 100644 --- a/docs/fr_FR/changelog.md +++ b/docs/fr_FR/changelog.md @@ -25,6 +25,9 @@ - Correction d'un bug sur la verfication de la base de données ou il pouvait toujours manquer un index [LIEN](https://github.com/jeedom/core/issues/2655) - Correction d'un bug sur le graphique des liens [LIEN](https://github.com/jeedom/core/issues/2659) - Suppression sur service worker en mobile (plus utilisé) [LIEN](https://github.com/jeedom/core/issues/2660) +- Correction d'un bug pouvant affecter la limitation du nombre d'evenement dans la timeline [LIEN](https://github.com/jeedom/core/issues/2663) +- Correction d'un bug sur l'affichage des tooltips sur les designs [LIEN](https://github.com/jeedom/core/pull/2667) +- Amélioration de la gestion des trace de PDO avec php8 [LIEN](https://github.com/jeedom/core/pull/2661) # 4.4.6 diff --git a/install/install.sh b/install/install.sh index f373b1facd..2c5076dd03 100644 --- a/install/install.sh +++ b/install/install.sh @@ -92,7 +92,7 @@ step_2_mainpackage() { step_3_database() { echo "---------------------------------------------------------------------" - echo "${YELLOW}Starting step 3 - databse${NORMAL}" + echo "${YELLOW}Starting step 3 - database${NORMAL}" apt_install mariadb-client mariadb-common mariadb-server service_action status mariadb diff --git a/install/restore.php b/install/restore.php index c942839966..337bd327f9 100644 --- a/install/restore.php +++ b/install/restore.php @@ -144,7 +144,7 @@ } if (!file_exists($jeedom_dir . "/DB_backup.sql")) { - throw new Exception('Cannot find databse backup file : DB_backup.sql'); + throw new Exception('Cannot find database backup file : DB_backup.sql'); } echo "Deleting database..."; $tables = DB::Prepare("SHOW TABLES", array(), DB::FETCH_TYPE_ALL); @@ -186,7 +186,7 @@ echo "OK\n"; if (!file_exists(__DIR__ . '/../core/config/common.config.php')) { - echo "Restoring databse configuration file..."; + echo "Restoring database configuration file..."; copy('/tmp/common.config.php', __DIR__ . '/../core/config/common.config.php'); echo "OK\n"; }