From 660c82b46e494f7b1ac16bd7aa5b81430e7a4bd3 Mon Sep 17 00:00:00 2001
From: wangyidong
Date: Mon, 8 Aug 2022 14:04:30 +0800
Subject: [PATCH] * adjust for change table engine in upgrade.
---
db/update17.4.sql | 4 -
module/upgrade/control.php | 63 +++++++++++++
module/upgrade/lang/de.php | 42 +++++----
module/upgrade/lang/en.php | 42 +++++----
module/upgrade/lang/fr.php | 42 +++++----
module/upgrade/lang/zh-cn.php | 4 +
module/upgrade/model.php | 57 ++++++-----
module/upgrade/view/afterexec.html.php | 125 ++++++++++++++++++-------
8 files changed, 261 insertions(+), 118 deletions(-)
diff --git a/db/update17.4.sql b/db/update17.4.sql
index 1f21bfd4fa..efe9049d58 100644
--- a/db/update17.4.sql
+++ b/db/update17.4.sql
@@ -2,10 +2,6 @@ ALTER TABLE `zt_task` ADD `order` mediumint(8) NOT NULL DEFAULT 0 AFTER `activat
ALTER TABLE `zt_task` ADD INDEX `order` (`order`);
ALTER TABLE `zt_story` ADD COLUMN `linkRequirements` varchar(255) NOT NULL AFTER `linkStories`;
-ALTER TABLE `zt_searchindex` ADD FULLTEXT `title_content` (`title`, `content`);
-ALTER TABLE `zt_searchindex` DROP INDEX `title`;
-ALTER TABLE `zt_searchindex` DROP INDEX `content`;
-
ALTER TABLE `zt_productplan` ADD `createdBy` varchar(30) NOT NULL AFTER `closedReason`;
ALTER TABLE `zt_productplan` ADD `createdDate` datetime NOT NULL AFTER `createdBy`;
diff --git a/module/upgrade/control.php b/module/upgrade/control.php
index fe176ea746..a8ab58a61f 100644
--- a/module/upgrade/control.php
+++ b/module/upgrade/control.php
@@ -906,6 +906,69 @@ class upgrade extends control
echo $this->dao->select('status')->from(TABLE_PROGRAM)->where('id')->eq($programID)->fetch('status');
}
+ /**
+ * Ajax change table engine.
+ *
+ * @access public
+ * @return void
+ */
+ public function ajaxChangeTableEngine()
+ {
+ $response = array();
+ $response['result'] = 'continue';
+ $response['message'] = '';
+ $response['nextMessage'] = '';
+
+ $stmt = $this->dao->query("SHOW TABLE STATUS WHERE `Engine` is not null AND `Engine` = 'MyISAM'");
+
+ $table = $stmt->fetch();
+ if(empty($table))
+ {
+ $response['result'] = 'finished';
+ $response['message'] = $this->lang->upgrade->finishedChange;
+ return print(json_encode($response));
+ }
+
+ $nextTable = $stmt->fetch();
+ if(stripos($nextTable->Name, 'searchindex') !== false)
+ {
+ $mysqlVersion = $this->loadModel('install')->getMysqlVersion();
+ if($mysqlVersion < 5.6) return print(json_encode($response));
+
+ $nextTable = $stmt->fetch();
+ }
+
+ $tableName = $table->Name;
+
+ $response['table'] = $tableName;
+ $response['next'] = $nextTable->Name;
+ if($response['next']) $response['nextMessage'] = sprintf($this->lang->upgrade->changingTable, $response['next']);
+
+ if(stripos($tableName, 'searchindex') !== false)
+ {
+ $stmt = $this->dao->query("show index from `$tableName`");
+ $indexes = array();
+ while($index = $stmt->fetch())
+ {
+ if($index->Index_type != 'FULLTEXT') continue;
+ $indexes[$index->Key_name] = $index->Key_name;
+ }
+
+ if(!isset($indexes['title_content'])) $this->dao->exec( "ALTER TABLE `{$tableName}` ADD FULLTEXT `title_content` (`title`, `content`)");
+ if(isset($indexes['title'])) $this->dao->exec( "ALTER TABLE `{$tableName}` DROP INDEX `title`");
+ if(isset($indexes['content'])) $this->dao->exec( "ALTER TABLE `{$tableName}` DROP INDEX `content`");
+
+ $mysqlVersion = $this->loadModel('install')->getMysqlVersion();
+ if($mysqlVersion < 5.6) return print(json_encode($response));
+ }
+
+ $sql = "ALTER TABLE `$tableName` ENGINE='InnoDB'";
+ $this->dao->exec($sql);
+
+ $response['message'] = sprintf($this->lang->upgrade->finishedTable, $tableName);
+ return print(json_encode($response));
+ }
+
/**
* Move Extent files.
*
diff --git a/module/upgrade/lang/de.php b/module/upgrade/lang/de.php
index d3c660ca0a..9512aea5d9 100644
--- a/module/upgrade/lang/de.php
+++ b/module/upgrade/lang/de.php
@@ -41,25 +41,29 @@ $lang->upgrade->setStatusFile = 'Please complete the following actions<
I have read and done as instructed above. Continue upgrading.
';
-$lang->upgrade->selectVersion = 'Version auswählen';
-$lang->upgrade->continue = 'Weiter';
-$lang->upgrade->noteVersion = "Wählen Sie eine kompatible Version oder es droht Datenverlust.";
-$lang->upgrade->fromVersion = 'Von Version';
-$lang->upgrade->toVersion = 'Upgrade nach Version';
-$lang->upgrade->confirm = 'SQL Bestätigen';
-$lang->upgrade->sureExecute = 'Ausführen';
-$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!';
-$lang->upgrade->forbiddenExt = 'Die Erweiterung ist nicht kompatibel mit der Upgradeversion. Sie wurde deaktiviert:';
-$lang->upgrade->updateFile = 'Updateinformation wurden hinzugefügt.';
-$lang->upgrade->noticeSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.';
-$lang->upgrade->afterDeleted = 'File is not deleted. Please refresh after you delete it.';
-$lang->upgrade->mergeProgram = 'Data Merge';
-$lang->upgrade->mergeTips = 'Data Migration Tips';
-$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade';
-$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade';
-$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade';
-$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
-$lang->upgrade->to15Desc = <<upgrade->selectVersion = 'Version auswählen';
+$lang->upgrade->continue = 'Weiter';
+$lang->upgrade->noteVersion = "Wählen Sie eine kompatible Version oder es droht Datenverlust.";
+$lang->upgrade->fromVersion = 'Von Version';
+$lang->upgrade->toVersion = 'Upgrade nach Version';
+$lang->upgrade->confirm = 'SQL Bestätigen';
+$lang->upgrade->sureExecute = 'Ausführen';
+$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!';
+$lang->upgrade->forbiddenExt = 'Die Erweiterung ist nicht kompatibel mit der Upgradeversion. Sie wurde deaktiviert:';
+$lang->upgrade->updateFile = 'Updateinformation wurden hinzugefügt.';
+$lang->upgrade->changeEngine = 'The database engine needs to be modified.';
+$lang->upgrade->changingTable = 'Replacing data table %s engine...';
+$lang->upgrade->finishedTable = 'The data table %s engine has been changed to InnoDB.';
+$lang->upgrade->finishedChange = 'The replacement of the database engine is completed.';
+$lang->upgrade->noticeSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.';
+$lang->upgrade->afterDeleted = 'File is not deleted. Please refresh after you delete it.';
+$lang->upgrade->mergeProgram = 'Data Merge';
+$lang->upgrade->mergeTips = 'Data Migration Tips';
+$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade';
+$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade';
+$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade';
+$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
+$lang->upgrade->to15Desc = <<ZenTao version 15.0 has major upgrade of features, including:
1. Add the concept of Program
A program is a collection of interrelated and coordinated projects. It is at the highest level and belongs to the concept of a strategic level. It has multi-level project management, helping managers to form strategic directions and allocate resources at a macro level.
diff --git a/module/upgrade/lang/en.php b/module/upgrade/lang/en.php
index ed17339f3a..8d9c1b413b 100644
--- a/module/upgrade/lang/en.php
+++ b/module/upgrade/lang/en.php
@@ -41,25 +41,29 @@ $lang->upgrade->setStatusFile = 'Please complete the following actions<
I have read and done as instructed above. Continue upgrading.
';
-$lang->upgrade->selectVersion = 'Version';
-$lang->upgrade->continue = 'Continue';
-$lang->upgrade->noteVersion = "Select the compatible version, or it might cause data loss.";
-$lang->upgrade->fromVersion = 'From';
-$lang->upgrade->toVersion = 'To';
-$lang->upgrade->confirm = 'Confirm SQL';
-$lang->upgrade->sureExecute = 'Execute';
-$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!';
-$lang->upgrade->forbiddenExt = 'The extension is incompatible with the version. It has been deactivated:';
-$lang->upgrade->updateFile = 'File information has to be updated.';
-$lang->upgrade->noticeSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.';
-$lang->upgrade->afterDeleted = 'Please execute commands to delete the files. Please refresh after you delete them.';
-$lang->upgrade->mergeProgram = 'Data Merge';
-$lang->upgrade->mergeTips = 'Data Migration Tips';
-$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade';
-$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade';
-$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade';
-$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
-$lang->upgrade->to15Desc = <<upgrade->selectVersion = 'Version';
+$lang->upgrade->continue = 'Continue';
+$lang->upgrade->noteVersion = "Select the compatible version, or it might cause data loss.";
+$lang->upgrade->fromVersion = 'From';
+$lang->upgrade->toVersion = 'To';
+$lang->upgrade->confirm = 'Confirm SQL';
+$lang->upgrade->sureExecute = 'Execute';
+$lang->upgrade->upgradingTips = 'The upgrade is in progress, please be patient. Do not refresh the page, blackout, or turn off your computer!';
+$lang->upgrade->forbiddenExt = 'The extension is incompatible with the version. It has been deactivated:';
+$lang->upgrade->updateFile = 'File information has to be updated.';
+$lang->upgrade->changeEngine = 'The database engine needs to be modified.';
+$lang->upgrade->changingTable = 'Replacing data table %s engine...';
+$lang->upgrade->finishedTable = 'The data table %s engine has been changed to InnoDB.';
+$lang->upgrade->finishedChange = 'The replacement of the database engine is completed.';
+$lang->upgrade->noticeSQL = 'Your database is inconsistent with the standard and it failed to fix it. Please run the following SQL and refresh.';
+$lang->upgrade->afterDeleted = 'Please execute commands to delete the files. Please refresh after you delete them.';
+$lang->upgrade->mergeProgram = 'Data Merge';
+$lang->upgrade->mergeTips = 'Data Migration Tips';
+$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade';
+$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade';
+$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade';
+$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
+$lang->upgrade->to15Desc = <<ZenTao version 15.0 has major upgrade of features, including:
1. Add the concept of Program
A program is a collection of interrelated and coordinated projects. It is at the highest level and belongs to the concept of a strategic level. It has multi-level project management, helping managers to form strategic directions and allocate resources at a macro level.
diff --git a/module/upgrade/lang/fr.php b/module/upgrade/lang/fr.php
index 002f69d024..815df01348 100644
--- a/module/upgrade/lang/fr.php
+++ b/module/upgrade/lang/fr.php
@@ -41,25 +41,29 @@ $lang->upgrade->setStatusFile = 'Please complete the following actions<
I have read and done as instructed above. Continue upgrading.
';
-$lang->upgrade->selectVersion = 'Version';
-$lang->upgrade->continue = 'Continuer';
-$lang->upgrade->noteVersion = "Sélectionnez une version compatible où vous pourriez perdre des données.";
-$lang->upgrade->fromVersion = 'De';
-$lang->upgrade->toVersion = 'à';
-$lang->upgrade->confirm = 'Confirmez SQL';
-$lang->upgrade->sureExecute = 'Executez';
-$lang->upgrade->upgradingTips = 'La mise à jour est en cours, veuillez être patient. Ne pas actualiser la page ou éteindre votre ordinateur!';
-$lang->upgrade->forbiddenExt = 'Cette extension est incompatible avec la version. Elle a été désactivée :';
-$lang->upgrade->updateFile = "Le fichier information a besoin d'une mise à jour.";
-$lang->upgrade->noticeSQL = 'Votre base de donnée est inconsistente avec le standard et il y a eu un échec pour la corriger. Exécutez la commande SQL suivante et rafraichissez.';
-$lang->upgrade->afterDeleted = "Le fichier n'est pas supprimé. Recommencez après l'avoir supprimé.";
-$lang->upgrade->mergeProgram = 'Data Merge';
-$lang->upgrade->mergeTips = 'Data Migration Tips';
-$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade';
-$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade';
-$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade';
-$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
-$lang->upgrade->to15Desc = <<upgrade->selectVersion = 'Version';
+$lang->upgrade->continue = 'Continuer';
+$lang->upgrade->noteVersion = "Sélectionnez une version compatible où vous pourriez perdre des données.";
+$lang->upgrade->fromVersion = 'De';
+$lang->upgrade->toVersion = 'à';
+$lang->upgrade->confirm = 'Confirmez SQL';
+$lang->upgrade->sureExecute = 'Executez';
+$lang->upgrade->upgradingTips = 'La mise à jour est en cours, veuillez être patient. Ne pas actualiser la page ou éteindre votre ordinateur!';
+$lang->upgrade->forbiddenExt = 'Cette extension est incompatible avec la version. Elle a été désactivée :';
+$lang->upgrade->updateFile = "Le fichier information a besoin d'une mise à jour.";
+$lang->upgrade->changeEngine = 'The database engine needs to be modified.';
+$lang->upgrade->changingTable = 'Replacing data table %s engine...';
+$lang->upgrade->finishedTable = 'The data table %s engine has been changed to InnoDB.';
+$lang->upgrade->finishedChange = 'The replacement of the database engine is completed.';
+$lang->upgrade->noticeSQL = 'Votre base de donnée est inconsistente avec le standard et il y a eu un échec pour la corriger. Exécutez la commande SQL suivante et rafraichissez.';
+$lang->upgrade->afterDeleted = "Le fichier n'est pas supprimé. Recommencez après l'avoir supprimé.";
+$lang->upgrade->mergeProgram = 'Data Merge';
+$lang->upgrade->mergeTips = 'Data Migration Tips';
+$lang->upgrade->toPMS15Guide = 'ZenTao open source version 15 upgrade';
+$lang->upgrade->toPRO10Guide = 'ZenTao profession version 10 upgrade';
+$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise version 5 upgrade';
+$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
+$lang->upgrade->to15Desc = <<ZenTao version 15.0 has major upgrade of features, including:
1. Add the concept of Program
A program is a collection of interrelated and coordinated projects. It is at the highest level and belongs to the concept of a strategic level. It has multi-level project management, helping managers to form strategic directions and allocate resources at a macro level.
diff --git a/module/upgrade/lang/zh-cn.php b/module/upgrade/lang/zh-cn.php
index 17d94fe009..4378626dcd 100644
--- a/module/upgrade/lang/zh-cn.php
+++ b/module/upgrade/lang/zh-cn.php
@@ -51,6 +51,10 @@ $lang->upgrade->sureExecute = '确认执行';
$lang->upgrade->upgradingTips = '正在升级中,请耐心等待,切勿刷新页面、断电、关机!';
$lang->upgrade->forbiddenExt = '以下插件与新版本不兼容,已经自动禁用:';
$lang->upgrade->updateFile = '需要更新附件信息。';
+$lang->upgrade->changeEngine = '需要修改数据库引擎。';
+$lang->upgrade->changingTable = '正在更换数据表%s引擎...';
+$lang->upgrade->finishedTable = '已经更换数据表%s引擎为InnoDB。';
+$lang->upgrade->finishedChange = '更换数据库引擎结束。';
$lang->upgrade->noticeSQL = '检查到你的数据库跟标准不一致,尝试修复失败。请执行以下SQL语句,再刷新页面检查。';
$lang->upgrade->afterDeleted = '请执行上面命令删除文件, 删除后刷新!';
$lang->upgrade->mergeProgram = '数据迁移';
diff --git a/module/upgrade/model.php b/module/upgrade/model.php
index ce9d6384ba..af76c7f385 100644
--- a/module/upgrade/model.php
+++ b/module/upgrade/model.php
@@ -83,14 +83,13 @@ class upgradeModel extends model
if(!isset($this->app->user)) $this->loadModel('user')->su();
- $editions = array('p' => 'pro', 'b' => 'biz', 'm' => 'max');
- $fromEdition = is_numeric($fromVersion[0]) ? 'open' : $editions[$fromVersion[0]];
+ $fromEdition = $this->getEditionByVersion($fromVersion);
/* If the 'current openVersion' is not equal the 'from openVersion', must update structure. */
$currentVersion = str_replace('.', '_', $this->config->version);
/* Execute. */
- $fromOpenVersion = is_numeric($fromVersion[0]) ? $fromVersion : $this->config->upgrade->{$fromEdition . 'Version'}[$fromVersion];
+ $fromOpenVersion = $this->getOpenVersion($fromVersion);
$versions = $this->getVersionsToUpdate($fromOpenVersion, $fromEdition);
foreach($versions as $openVersion => $chargedVersions)
{
@@ -532,7 +531,6 @@ class upgradeModel extends model
$this->processBugLinkBug();
break;
case '17_4':
- $this->changeTableEngine();
$this->processCreatedInfo();
$this->processCreatedBy();
$this->updateApproval();
@@ -1207,6 +1205,32 @@ class upgradeModel extends model
return $confirmContent;
}
+ /**
+ * Get edition by version.
+ *
+ * @param string $version
+ * @access public
+ * @return string
+ */
+ public function getEditionByVersion($version)
+ {
+ $editions = array('p' => 'pro', 'b' => 'biz', 'm' => 'max');
+ return is_numeric($version[0]) ? 'open' : $editions[$version[0]];
+ }
+
+ /**
+ * Get openVersion
+ *
+ * @param int $version.
+ * @access public
+ * @return string
+ */
+ public function getOpenVersion($version)
+ {
+ $edition = $this->getEditionByVersion($version);
+ return is_numeric($version[0]) ? $version : zget($this->config->upgrade{$edition . 'Version'}, $version);
+ }
+
/**
* Update company field.
*
@@ -3186,6 +3210,10 @@ class upgradeModel extends model
$needProcess['search'] = true;
}
}
+
+ $openVersion = $this->getOpenVersion($fromVersion);
+ if(version_compare($open, '17_4', '<=')) $needProcess['changeEngine'] = true;
+
return $needProcess;
}
@@ -6748,27 +6776,6 @@ class upgradeModel extends model
return !dao::isError();
}
- /**
- * Change search table engine.
- *
- * @access public
- * @return void
- */
- public function changeTableEngine()
- {
- $mysqlVersion = $this->loadModel('install')->getMysqlVersion();
- $tables = $this->dao->query("SHOW TABLE STATUS WHERE `Engine` is not null AND `Engine` = 'MyISAM'")->fetchAll();
- foreach($tables as $table)
- {
- $tableName = $table->Name;
- $sql = "ALTER TABLE `$tableName` ENGINE='InnoDB'";
-
- if(stripos($tableName, 'searchindex') !== false and $mysqlVersion < 5.6) continue;
- $this->dao->exec($sql);
- }
- return true;
- }
-
/**
* Process created information.
*
diff --git a/module/upgrade/view/afterexec.html.php b/module/upgrade/view/afterexec.html.php
index d1c2433b2e..48b925679f 100644
--- a/module/upgrade/view/afterexec.html.php
+++ b/module/upgrade/view/afterexec.html.php
@@ -23,24 +23,6 @@
upgrade->tohome, '', "class='btn btn-primary btn-wide' id='tohome'")?>
-
@@ -49,15 +31,98 @@
$(function()
{
sessionStorage.removeItem('TID');
- $.get('');
+ initHideHome();
+ finishedShow();
})
-
$value) echo 'var ' . $processKey . "Finish = false;\n";
-if(isset($needProcess['updateFile'])):?>
+foreach($needProcess as $processKey => $value)
+{
+ $value = $processKey == 'search' ? 'true' : 'false';
+ echo 'var ' . $processKey . "Finish = $value;\n";
+}
+?>
+
+/**
+ * Init hide message.
+ *
+ * @access public
+ * @return void
+ */
+function initHideHome()
+{
+ var hide = false;
+ $value)
+ {
+ if($processKey == 'search') continue;
+ echo "hide = true;\n";
+ break;
+ }
+ ?>
+ if(hide)
+ {
+ $('a#tohome').closest('.message').hide();
+ $('.result-box').css('height', 'auto').css('position', 'relative').css('margin-top', '0px');
+ }
+}
+
+/**
+ * Finished show message.
+ *
+ * @access public
+ * @return void
+ */
+function finishedShow()
+{
+ var show = true;
+ $value)
+ {
+ echo "if({$processKey}Finish == false) show = false;\n";
+ }
+ ?>
+ if(show)
+ {
+ $.get('');
+ $('a#tohome').closest('.message').show();
+ }
+}
+
+
+$(function()
+{
+ $('.col-md-6:first').append("");
+ changeEngine();
+})
+function changeEngine()
+{
+ var link = '';
+ $.getJSON(link, function(response)
+ {
+ if(response == null)
+ {
+ changeEngineFinish = true;
+ finishedShow();
+ }
+ else if(response.result == 'finished')
+ {
+ changeEngineFinish = true;
+ $('#changeEngineBox').prepend("" + response.message + "
");
+ finishedShow();
+ }
+ else
+ {
+ if($('#changeEngineBox').find('.' + response.table).length == 0) $('#changeEngineBox').prepend("");
+ $('#changeEngineBox').find('.' + response.table).html(response.message);
+ if(response.next) $('#changeEngineBox').prepend("" + response.nextMessage + "
");
+ changeEngine();
+ }
+ });
+}
+
+
$(function()
{
- $('a#tohome').closest('.message').hide();
$('.col-md-6:first').append("");
updateFile('');
})
@@ -68,22 +133,20 @@ function updateFile(link)
if(response == null)
{
updateFileFinish = true;
- $.get('');
- $('a#tohome').closest('.message').show();
+ finishedShow();
}
else if(response.result == 'finished')
{
$('#resultBox li span.' + response.type + '-num').html(num + response.count);
updateFileFinish = true;
- $('#resultBox').append("" + response.message + "");
- $.get('');
- $('a#tohome').closest('.message').show();
+ $('#resultBox').prepend("" + response.message + "");
+ finishedShow();
}
else
{
if($('#resultBox li span.' + response.type + '-num').size() == 0 || response.type != response.nextType)
{
- $('#resultBox').append("" + response.message + "");
+ $('#resultBox').prepend("" + response.message + "");
}
var num = parseInt($('#resultBox li span.' + response.type + '-num').html());
$('#resultBox li span.' + response.type + '-num').html(num + response.count);
@@ -92,13 +155,11 @@ function updateFile(link)
});
}
-
-
+