From 0a14b8fdaeff3d6ee9a3e38df8d179270357526d Mon Sep 17 00:00:00 2001 From: Exodus4D Date: Tue, 26 Jul 2016 19:16:04 +0200 Subject: [PATCH] - added requirement check for "PDO", "PDO_MYSQL" to "/setup" route - imrpved DB PDO connection (added "TIMEOUT", forced "ERRMODE") - fixed broken "system alias" renaming dialog --- app/main/controller/setup.php | 12 ++++++++++++ app/main/db/database.php | 4 +++- app/main/model/systemmodel.php | 1 + app/requirements.ini | 2 ++ js/app/ui/system_signature.js | 3 --- js/app/util.js | 6 ++++++ public/js/v1.1.2/app/ui/system_signature.js | 3 --- public/js/v1.1.2/app/util.js | 6 ++++++ 8 files changed, 30 insertions(+), 7 deletions(-) diff --git a/app/main/controller/setup.php b/app/main/controller/setup.php index e3ea51cd..43fd90f6 100644 --- a/app/main/controller/setup.php +++ b/app/main/controller/setup.php @@ -419,6 +419,18 @@ class Setup extends Controller { 'version' => strstr(PCRE_VERSION, ' ', true), 'check' => version_compare( strstr(PCRE_VERSION, ' ', true), $f3->get('REQUIREMENTS.PHP.PCRE_VERSION'), '>=') ], + 'pdo' => [ + 'label' => 'PDO', + 'required' => 'installed', + 'version' => extension_loaded('pdo') ? 'installed' : 'not installed', + 'check' => extension_loaded('pdo') + ], + 'pdoMysql' => [ + 'label' => 'PDO_MYSQL', + 'required' => 'installed', + 'version' => extension_loaded('pdo_mysql') ? 'installed' : 'not installed', + 'check' => extension_loaded('pdo_mysql') + ], 'gd' => [ 'label' => 'GD Library (for Image plugin)', 'required' => 'installed', diff --git a/app/main/db/database.php b/app/main/db/database.php index b4f972c4..83d06f91 100644 --- a/app/main/db/database.php +++ b/app/main/db/database.php @@ -110,7 +110,9 @@ class Database extends \Prefab { $user, $password, [ - \PDO::MYSQL_ATTR_COMPRESS => TRUE + \PDO::MYSQL_ATTR_COMPRESS => true, + \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, + \PDO::ATTR_TIMEOUT => \Base::instance()->get('REQUIREMENTS.MYSQL.PDO_TIMEOUT'), ] ); }catch(\PDOException $e){ diff --git a/app/main/model/systemmodel.php b/app/main/model/systemmodel.php index 511c8bb6..688422f2 100644 --- a/app/main/model/systemmodel.php +++ b/app/main/model/systemmodel.php @@ -197,6 +197,7 @@ class SystemModel extends BasicModel { /** * get map data as object * @return object + * @throws \Exception */ public function getData(){ diff --git a/app/requirements.ini b/app/requirements.ini index fcf161e7..15c409e0 100644 --- a/app/requirements.ini +++ b/app/requirements.ini @@ -30,6 +30,8 @@ MAX_INPUT_VARS = 3000 ; min MySQL Version ; newer "deviation" of MySQL like "MariaDB" > 10.1 are recommended VERSION = 5.6 +; DB timeout (seconds) +PDO_TIMEOUT = 2 [REQUIREMENTS.MYSQL.VARS] ; MySql variables. Values are auto. set as 'SESSION' vars diff --git a/js/app/ui/system_signature.js b/js/app/ui/system_signature.js index fc43e1a1..3e2279bc 100644 --- a/js/app/ui/system_signature.js +++ b/js/app/ui/system_signature.js @@ -1989,9 +1989,6 @@ define([ moduleElement = getModule(parentElement, systemData); showModule(moduleElement); } - - return; }; - }); \ No newline at end of file diff --git a/js/app/util.js b/js/app/util.js index 687de7e8..acc39535 100644 --- a/js/app/util.js +++ b/js/app/util.js @@ -739,6 +739,12 @@ define([ $.fn.singleDoubleClick = function(singleClickCallback, doubleClickCallback, timeout) { return this.each(function(){ var clicks = 0, self = this; + + // prevent default behaviour (e.g. open -tag link) + $(this).on('click', function(e){ + e.preventDefault(); + }); + $(this).on('mouseup', function(e){ clicks++; if (clicks === 1) { diff --git a/public/js/v1.1.2/app/ui/system_signature.js b/public/js/v1.1.2/app/ui/system_signature.js index fc43e1a1..3e2279bc 100644 --- a/public/js/v1.1.2/app/ui/system_signature.js +++ b/public/js/v1.1.2/app/ui/system_signature.js @@ -1989,9 +1989,6 @@ define([ moduleElement = getModule(parentElement, systemData); showModule(moduleElement); } - - return; }; - }); \ No newline at end of file diff --git a/public/js/v1.1.2/app/util.js b/public/js/v1.1.2/app/util.js index 687de7e8..acc39535 100644 --- a/public/js/v1.1.2/app/util.js +++ b/public/js/v1.1.2/app/util.js @@ -739,6 +739,12 @@ define([ $.fn.singleDoubleClick = function(singleClickCallback, doubleClickCallback, timeout) { return this.each(function(){ var clicks = 0, self = this; + + // prevent default behaviour (e.g. open -tag link) + $(this).on('click', function(e){ + e.preventDefault(); + }); + $(this).on('mouseup', function(e){ clicks++; if (clicks === 1) {