diff --git a/module/admin/control.php b/module/admin/control.php index d6881e7027..652af1ffbd 100644 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -171,8 +171,6 @@ class admin extends control */ public function clearData($confirm = '') { - if($confirm == '') $this->display(); - if($confirm == 'no') { die(js::confirm($this->lang->admin->confirmClearData, inlink('clearData', "confirm=yes"))); @@ -180,12 +178,14 @@ class admin extends control elseif($confirm == 'yes') { $result = $this->admin->clearData(); - if($result) - { - die(js::alert($this->lang->admin->clearDataSucceed)); - } - die(js::alert($this->lang->admin->clearDataFailed)); + + if(!$result) die(js::alert($this->lang->admin->clearDataFailed)); + + js::alert($this->lang->admin->clearDataSucceed); + die(js::locate(inLink('index'), 'parent')); } + + $this->display(); } /** diff --git a/module/admin/js/cleardata.js b/module/admin/js/cleardata.js new file mode 100755 index 0000000000..52a4f51f4b --- /dev/null +++ b/module/admin/js/cleardata.js @@ -0,0 +1,8 @@ +function showClearButton() +{ + if($('#sure').val() == 'yes') + { + $('#submit').removeClass('hidden'); + $('.a-center span').addClass('hidden'); + } +} diff --git a/module/admin/js/index.js b/module/admin/js/index.js new file mode 100755 index 0000000000..2cec602ab9 --- /dev/null +++ b/module/admin/js/index.js @@ -0,0 +1 @@ +$(function() { if(!showDemoUsers) $('#submenuclearData').addClass('hidden');}); diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 67b89e5793..f77b6e3ceb 100644 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -20,7 +20,7 @@ $lang->admin->welcome = '欢迎使用禅道管理软件后台管理系统'; $lang->admin->browseCompany = '浏览公司'; $lang->admin->clearData = '清除数据'; -$lang->admin->confirmClearData = '您确认要清除数据吗?'; +$lang->admin->confirmClearData = '您确认要清除数据吗(yes/no)?'; $lang->admin->clearDataFailed = '清除数据失败!'; $lang->admin->clearDataSucceed = '清除数据成功!'; $lang->admin->clearDataDesc = <<admin->clearDataDesc = <<对于其他表则进行全部清除操作。 EOT; $lang->admin->info = new stdclass(); diff --git a/module/admin/model.php b/module/admin/model.php index c76f183287..2d79dada35 100644 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -148,7 +148,8 @@ class adminModel extends model public function clearData() { $result = $this->dbh->query('SHOW TABLES')->fetchAll(); - $showDemoUsers = $this->dao->select('value')->from(TABLE_CONFIG)->where('`key`')->eq('showDemoUsers')->fetch(); + if(!isset($this->config->global->showDemoUsers)) return false; + foreach($result as $item) { $table = current((array)$item); @@ -156,24 +157,15 @@ class adminModel extends model if(strpos($table, 'group') !== false) continue; if(strpos($table, 'user') !== false) { - if($showDemoUsers) - { - $this->dao->delete()->from($table) - ->where('account')->in(array('productManager', 'projectManager', 'testManager', 'dev1', 'dev2', 'dev3', 'tester1', 'tester2', 'tester3')) - ->exec(); - if(dao::isError()) return false; - } + $deleteUsers = array('productManager', 'projectManager', 'testManager', 'dev1', 'dev2', 'dev3', 'tester1', 'tester2', 'tester3'); + $this->dao->delete()->from($table)->where('account')->in($deleteUsers)->exec(); + if(dao::isError()) return false; continue; } - if(strpos($table, 'config') !== false) + if(strpos($table, 'config') !== false) { - if($showDemoUsers) - { - $this->dao->delete()->from($table) - ->where('`key`')->eq('showDemoUsers') - ->exec(); - if(dao::isError()) return false; - } + $this->loadModel('setting')->deleteItems('key=showDemoUsers'); + if(dao::isError()) return false; continue; } if(!$this->dbh->query("TRUNCATE TABLE `$table`")) return false; diff --git a/module/admin/view/cleardata.html.php b/module/admin/view/cleardata.html.php index b958bbe73d..0ece6648fe 100755 --- a/module/admin/view/cleardata.html.php +++ b/module/admin/view/cleardata.html.php @@ -15,7 +15,12 @@ - + + +
admin->clearData;?>
admin->clearDataDesc);?>
admin->clearData);?>
+ lang->admin->confirmClearData . html::input('sure', '', "class='text-2' onkeyup='showClearButton()' autocomplete='off'");?> + admin->clearData, "class='hidden'");?> +
diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 7b86109608..55143825ec 100644 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -11,6 +11,7 @@ */ ?> +config->global->showDemoUsers) ? true : false; js::set('showDemoUsers', $showDemoUsers);?>

admin->info->version, $config->version); diff --git a/module/common/lang/en.php b/module/common/lang/en.php index b5d00f283b..3bd30c3d1b 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -278,6 +278,7 @@ $lang->admin->menu->index = array('link' => 'Index|admin|index'); $lang->admin->menu->extension = array('link' => 'Extension|extension|browse', 'subModule' => 'extension'); $lang->admin->menu->editor = array('link' => 'Scaffold|editor|index', 'subModule' => 'editor'); $lang->admin->menu->mail = array('link' => 'Email|mail|index', 'subModule' => 'mail'); +$lang->admin->menu->clearData = array('link' => 'Clear data|admin|cleardata'); $lang->admin->menu->convert = array('link' => 'Import|convert|index', 'subModule' => 'convert'); $lang->admin->menu->trashes = array('link' => 'Trash|action|trash', 'subModule' => 'action'); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 76969c266e..3c7f5eaba7 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -278,6 +278,7 @@ $lang->admin->menu->index = array('link' => '首页|admin|index'); $lang->admin->menu->extension = array('link' => '插件|extension|browse', 'subModule' => 'extension'); $lang->admin->menu->editor = array('link' => '扩展编辑器|editor|index', 'subModule' => 'editor'); $lang->admin->menu->mail = array('link' => '发信|mail|index', 'subModule' => 'mail'); +$lang->admin->menu->clearData = array('link' => '清除数据|admin|cleardata'); $lang->admin->menu->convert = array('link' => '导入|convert|index', 'subModule' => 'convert'); $lang->admin->menu->trashes = array('link' => '回收站|action|trash', 'subModule' => 'action');