diff --git a/module/upgrade/control.php b/module/upgrade/control.php index 971eb2a3f3..5c833c47e3 100644 --- a/module/upgrade/control.php +++ b/module/upgrade/control.php @@ -853,11 +853,17 @@ class upgrade extends control { $logFile = $this->upgrade->getConsistencyLogFile(); $lines = !file_exists($logFile) ? array() : file($logFile); + $total = (int)array_shift($lines); + + $progress = 0; + if($total) $progress = round((count($lines) / $total) * 100); + if($progress >= 100) $progress = 99; $log = array_slice($lines, $offset); $finished = ($log and end($log) == 'Finished') ? true : false; + if($finished) $progress = 100; - return print(json_encode(array('log' => implode("
", $log) . (empty($log) ? '' : '
'), 'finished' => $finished, 'offset' => count($lines)))); + return print(json_encode(array('log' => implode("
", $log) . (empty($log) ? '' : '
'), 'finished' => $finished, 'progress' => $progress, 'offset' => count($lines)))); } /** diff --git a/module/upgrade/js/consistency.js b/module/upgrade/js/consistency.js index 896cb5c29d..a9ce6544b8 100644 --- a/module/upgrade/js/consistency.js +++ b/module/upgrade/js/consistency.js @@ -10,6 +10,7 @@ function updateProgressInterval() logOffset = result.offset; if(result.log) $('#logBox').append(result.log); + $('#progressBox').html(result.progress + '%'); let element = document.getElementById('logBox'); element.scrollTop = element.scrollHeight; diff --git a/module/upgrade/model.php b/module/upgrade/model.php index c8eb172ff8..9bbc06f397 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -164,7 +164,9 @@ class upgradeModel extends model } } + $this->saveLogs("Run Method program-refreshStats"); $this->loadModel('program')->refreshStats(true); + $this->saveLogs("Run Method product-refreshStats"); $this->loadModel('product')->refreshStats(true); $this->deletePatch(); } @@ -276,7 +278,7 @@ class upgradeModel extends model $this->saveLogs("Run Method {$method}"); $class = $this; - if(str_contains($method, '-')) + if(strpos($method, '-') !== false) { list($className, $method) = explode('-', $method); $class = $this->loadModel($className); @@ -1185,7 +1187,10 @@ class upgradeModel extends model $hasError = false; $fixSqls = $this->checkConsistency($version); if($fixSqls) $fixSqls = "SET @@sql_mode= '';\n" . $fixSqls; - foreach(explode(';', $fixSqls) as $fixSQL) + + $sqlLines = explode(';', $fixSqls); + file_put_contents($logFile, count($sqlLines) . "\n", FILE_APPEND); + foreach($sqlLines as $fixSQL) { file_put_contents($logFile, $fixSQL, FILE_APPEND); try @@ -2004,6 +2009,8 @@ class upgradeModel extends model */ public function addORPriv() { + $this->saveLogs('Run Method ' . __FUNCTION__); + $admins = $this->dao->select('admins')->from(TABLE_COMPANY)->where('deleted')->eq(0)->fetchAll(); foreach($admins as $key => $admin) $admins[$key] = trim($admin->admins, ','); @@ -2016,26 +2023,23 @@ class upgradeModel extends model foreach($user as $account => $visions) { - if(strpos($visions, 'or') === false) - { - $visions = 'or,' . $visions; - $this->dao->update(TABLE_USER)->set('visions')->eq($visions)->where('account')->eq($account)->exec(); - } + if(strpos($visions, 'or') !== false) continue; + + $visions = 'or,' . $visions; + $this->dao->update(TABLE_USER)->set('visions')->eq($visions)->where('account')->eq($account)->exec(); + $this->saveLogs($this->dao->get()); } include('priv.php'); foreach($orData as $role => $name) { - $this->dao->insert(TABLE_GROUP) - ->set('vision')->eq('or') - ->set('name')->eq($name) - ->set('role')->eq($role) - ->set('desc')->eq($name) - ->exec(); + $this->dao->insert(TABLE_GROUP)->set('vision')->eq('or')->set('name')->eq($name)->set('role')->eq($role)->set('desc')->eq($name)->exec(); + $this->saveLogs($this->dao->get()); if(dao::isError()) continue; $groupID = $this->dao->lastInsertID(); $sql = 'REPLACE INTO' . TABLE_GROUPPRIV . '(`group`, `module`, `method`) VALUES ' . str_replace('GROUPID', $groupID, ${$role . 'Priv'}); $this->dao->exec($sql); + $this->saveLogs($sql); } } diff --git a/module/upgrade/view/consistency.html.php b/module/upgrade/view/consistency.html.php index 3c5d5fb2b3..bc6fe2f319 100644 --- a/module/upgrade/view/consistency.html.php +++ b/module/upgrade/view/consistency.html.php @@ -20,7 +20,7 @@ upgrade->consistency;?>