* Adjust for show progress when consistency.
This commit is contained in:
@@ -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("<br />", $log) . (empty($log) ? '' : '<br />'), 'finished' => $finished, 'offset' => count($lines))));
|
||||
return print(json_encode(array('log' => implode("<br />", $log) . (empty($log) ? '' : '<br />'), 'finished' => $finished, 'progress' => $progress, 'offset' => count($lines))));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
+17
-13
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<strong><?php echo $lang->upgrade->consistency;?></strong>
|
||||
</div>
|
||||
<div class='modal-body'>
|
||||
<h4><?php echo $hasError ? $lang->upgrade->noticeErrSQL : $lang->upgrade->showSQLLog;?></h4>
|
||||
<h4><?php echo $hasError ? $lang->upgrade->noticeErrSQL : $lang->upgrade->showSQLLog . "<span id='progressBox'></span>";?></h4>
|
||||
<div id='logBox' style='height:200px; width:100%; overflow:auto'><?php echo $hasError ? $alterSQL : '';?></div>
|
||||
</div>
|
||||
<?php if($hasError):?>
|
||||
|
||||
Reference in New Issue
Block a user