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;?>