* Add zdata to the database script automatically.

This commit is contained in:
leiyong
2020-09-16 14:13:59 +08:00
parent d624251ab6
commit 484490eaa5
17 changed files with 218 additions and 34 deletions
+16 -3
View File
@@ -60,6 +60,7 @@ $lang->required = '必填';
$lang->noData = '暂无';
$lang->fullscreen = '全屏';
$lang->retrack = '收起';
$lang->recent = '近期';
$lang->actions = '操作';
$lang->restore = '恢复默认';
@@ -122,7 +123,8 @@ $lang->common->common = '公有模块';
$lang->mainNav = new stdclass();
$lang->mainNav->my = '<i class="icon icon-menu-my"></i> 地盘|my|index|';
$lang->mainNav->program = '<i class="icon icon-menu-project"></i> 项目集|program|pgmindex|';
$lang->mainNav->project = '<i class="icon icon-menu-project"></i> 项目|program|prjbrowse|';
$lang->mainNav->product = '<i class="icon icon-menu-project"></i> 产品|product|productlist|';
$lang->mainNav->project = '<i class="icon icon-menu-doc"></i> 项目|project|projectlist|';
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> 组织|custom|estimate|';
$lang->mainNav->admin = '<i class="icon icon-menu-backend"></i> 后台|admin|index|';
@@ -135,6 +137,16 @@ $lang->program->menu = new stdclass();
$lang->program->menu->index = '主页|program|pgmindex|';
$lang->program->menu->browse = '项目集|program|pgmbrowse|';
/* Product menu. */
$lang->productlist = new stdclass();
$lang->productlist->menu = new stdclass();
$lang->productlist->menu->productlist = '产品|product|productlist|';
/* Project menu. */
$lang->projectlist = new stdclass();
$lang->projectlist->menu = new stdclass();
$lang->projectlist->menu->projectlist = '项目|project|projectlist|';
/* Scrum menu. */
$lang->menu = new stdclass();
$lang->menu->program = '仪表盘|program|index|';
@@ -551,13 +563,14 @@ $lang->navGroup->my = 'my';
$lang->navGroup->todo = 'my';
$lang->navGroup->effort = 'my';
$lang->navGroup->product = 'program';
$lang->navGroup->product = 'product';
$lang->navGroup->project = 'project';
$lang->navGroup->story = 'program';
$lang->navGroup->branch = 'program';
$lang->navGroup->productplan = 'program';
$lang->navGroup->release = 'program';
$lang->navGroup->tree = 'program';
$lang->navGroup->project = 'program';
$lang->navGroup->task = 'program';
$lang->navGroup->qa = 'program';
$lang->navGroup->bug = 'program';
+15 -5
View File
@@ -530,6 +530,16 @@ class commonModel extends model
if(common::hasPriv($currentModule, $currentMethod)) echo "<li class=$active>" . html::a(helper::createLink($currentModule, $currentMethod, $vars), $title) . '</li>';
if(($lastMenu != $nav) && strpos($lang->dividerMenu, ",{$group},") !== false) echo "<li class='divider'></li>";
}
echo '<li><hr></li>';
echo '<li><span><i class="icon icon-menu-doc"></i>' . $lang->recent . '</span></li>';
echo '<li>' . html::a(helper::createLink('project', 'view', 'project=1'), 'zentao001') . '</li>';
echo '<li>' . html::a(helper::createLink('project', 'view', 'project=1'), 'zentao001') . '</li>';
echo '<li>' . html::a(helper::createLink('project', 'view', 'project=1'), 'zentao001') . '</li>';
echo '<li>' . html::a(helper::createLink('project', 'view', 'project=1'), 'an') . '</li>';
echo '<li>' . html::a(helper::createLink('project', 'view', 'project=1'), 'zentao') . '</li>';
echo '<li onclick="getMorePRJ();" class="text-center"><span>' . $lang->more . '</span></li>';
echo "</ul>\n";
}
@@ -2130,29 +2140,29 @@ EOD;
public static function setMainMenuByGroup($group, $moduleName, $methodName)
{
global $lang;
if($group == 'my')
if($group == 'my')
{
$lang->menu = $lang->my->menu;
$lang->menuOrder = $lang->my->menuOrder;
}
if($group == 'system')
if($group == 'system')
{
$lang->menu = $lang->system->menu;
$lang->menuOrder = $lang->system->menuOrder;
$lang->report->menu = $lang->measurement->menu;
}
if($group == 'doclib') return;
if($group == 'reporting')
if($group == 'reporting')
{
$lang->menu = $lang->report->menu;
$lang->menuOrder = $lang->report->menuOrder;
}
if($group == 'attend')
if($group == 'attend')
{
$lang->menu = $lang->attend->menu;
$lang->menuOrder = $lang->attend->menuOrder;
}
if($group == 'admin')
if($group == 'admin')
{
$lang->menu = $lang->admin->menu;
$lang->menuOrder = $lang->admin->menuOrder;
+29
View File
@@ -14,6 +14,30 @@ include 'chosen.html.php';
<div id='menuFooter'>
<button type='button' id='menuToggle'><i class='icon icon-sm icon-menu-collapse'></i></button>
</div>
<div class="table-col col-right" id="morePRJ">
<div class="list-group">
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
<a href="/product-browse-40.html" title="部门管理/916测试" class="closed" data-key="bumenguanli/916ceshi bmgl9cs"><i class="icon icon-cube"></i> 部门管理/916测试</a>
</div>
</div>
</div>
<header id='header'>
<div id='mainHeader'>
@@ -70,6 +94,11 @@ $("#searchInput").mouseout(function()
$("#showSearchGo").show();
}
});
function getMorePRJ()
{
console.log(123);
$("#morePRJ").toggle();
}
</script>
<main id='main' <?php if(!empty($config->sso->redirect)) echo "class='ranzhiFixedTfootAction'";?> >
<div class='container'>
+1 -1
View File
@@ -23,7 +23,7 @@
<a class="btn btn-link querybox-toggle" id='bysearchTab'><i class="icon icon-search muted"></i> <?php echo $lang->issue->search;?></a>
</div>
<div class="btn-toolbar pull-right">
<?php common::printLink('issue', 'batchCreate', '', "<i class='icon icon-plus'></i>" . $lang->issue->batchCreate, '', "class='btn btn-primary'");?>
<?php common::printLink('issue', 'batchCreate', '', "<i class='icon icon-plus'></i>" . $lang->issue->batchCreate, '', "class='btn btn-secondary'");?>
<?php common::printLink('issue', 'create', '', "<i class='icon icon-plus'></i>" . $lang->issue->create, '', "class='btn btn-primary'");?>
</div>
</div>
+30
View File
@@ -35,6 +35,36 @@ class product extends control
$this->view->products = $this->products;
}
/**
* Products under project set.
*
* @param int $programID
* @param string $browseType
* @param int $param
* @param string $orderBy
* @param int $recTotal
* @param int $recPerPage
* @param int $pageID
* @access public
* @return void
*/
public function productList($programID = 0, $browseType = 'all', $param = 0, $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
{
/* Load pager. */
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
$this->view->title = $this->lang->product->common;
$this->view->program = '';
$this->view->stack = '';
$this->view->browseType = $browseType;
$this->view->orderBy = $orderBy;
$this->view->programID = $programID;
$this->view->productStats = array();
$this->view->pager = $pager;
$this->display();
}
/**
* Index page, to browse.
*
+2
View File
@@ -30,6 +30,8 @@ $lang->product->orderAction = "{$lang->productCommon}排序";
$lang->product->all = "所有{$lang->productCommon}";
$lang->product->export = '导出数据';
$lang->product->exportAction = "导出{$lang->productCommon}";
$lang->product->stack = '项目集';
$lang->product->createstack = '创建项目集';
$lang->product->basicInfo = '基本信息';
$lang->product->otherInfo = '其他信息';
+28
View File
@@ -29,6 +29,34 @@ class project extends control
}
}
/**
* Projects under project set.
*
* @param int $programID
* @param string $browseType
* @param int $param
* @param string $orderBy
* @param int $recTotal
* @param int $recPerPage
* @param int $pageID
* @access public
* @return void
*/
public function projectList($programID = 0, $browseType = 'all', $param = 0, $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
{
/* Load pager and get tasks. */
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
$this->view->projectStats = array();
$this->view->pager = $pager;
$this->view->programID = $programID;
$this->view->browseType = $browseType;
$this->view->orderBy = $orderBy;
$this->view->stack = '';
$this->display();
}
/**
* The index page.
*
+2
View File
@@ -72,6 +72,8 @@ $lang->project->effort = '日志';
$lang->project->relatedMember = '相关成员';
$lang->project->watermark = '由禅道导出';
$lang->project->viewByUser = '按用户查看';
$lang->project->stack = '项目集';
$lang->project->createstack = '创建项目集';
$lang->project->start = "开始";
$lang->project->activate = "激活";
+3
View File
@@ -46,3 +46,6 @@ a.showMoreImage:hover {opacity: 1;}
.margin-l-50px{margin-left:50px;}
#menu{width: 96px}
#menuNav>.nav>li>span{padding: 8px; line-height: 20px; cursor: pointer; color: #fff;}
#morePRJ{display:none; max-height: 420px; position: fixed; bottom: 0; left: 100px; z-index: 999; background: white; padding: 20px 10px; height: 420px; margin-bottom: 35px;}
#morePRJ .list-group{height: 400px; min-width: 150px; max-width:200px;}
+2 -2
View File
@@ -1,9 +1,9 @@
title: date
title: moreDate
desc: 系统可用日期类型
author: ly
version: 1.0
field: date
field: moreDate
instances:
- instance: dateA
fields:
+74
View File
@@ -0,0 +1,74 @@
<?php
$dbms = 'mysql'; // 数据库类型。
$host = 'localhost'; // 数据库主机名。
$port = '3306'; // 数据库主机端口。
$dbName = 'zdata'; // 使用的数据库。
$user = 'root'; // 数据库连接用户名。
$password = 'root'; // 对应的密码。
$dsn = "$dbms:host=$host:$port;dbname=$dbName";
$dirPath = 'demo/story'; // 要生成SQL数据的zdata文件路径。
/* 定义每个yaml文件生成SQL数量。 */
$zdataCount = array();
$zdataCount['zt_product'] = 100;
$zdataCount['zt_productplan'] = 500;
$zdataCount['zt_project'] = 100;
$zdataCount['zt_module'] = 1000;
$zdataCount['zt_story'] = 10000;
$zdataCount['zt_storyspec'] = 10000;
$zdataCount['zt_action'] = 10000;
$zdataExec = "zd -c $dirPath/%s -d %s -n %s -o $dirPath/sql/%s.sql -table %s";
set_time_limit(0);
try
{
$dbh = new PDO($dsn, $user, $password); // 初始化一个PDO对象。
echo $dbms . '连接成功' . PHP_EOL;
$yamlFilePath = scandir($dirPath);
foreach($yamlFilePath as $file)
{
if(strpos($file, '.yaml'))
{
$fileName = basename($file, '.yaml');
$count = isset($zdataCount[$fileName]) ? $zdataCount[$fileName] : 10;
$execYaml = sprintf($zdataExec, $file, $file, $count, $fileName, $fileName);
exec($execYaml); // 执行zdata命令调用yaml文件生成SQL数据。
echo '执行命令:' . $execYaml . PHP_EOL;
}
}
/* 读取生成的SQL文件,导入数据到数据库。*/
$sqlDir = $dirPath . '/sql/';
$sqlFilePath = scandir($sqlDir);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置报错处理方式。
$dbh->exec("SET GLOBAL sql_mode = '';");
$dbh->beginTransaction();
foreach($sqlFilePath as $file)
{
if(strpos($file, '.sql'))
{
$tableName = basename($file, '.sql');
$truncate = 'truncate table ' . $tableName;
$dbh->exec($truncate);
$sql = file_get_contents($sqlDir . $file);
$count = $dbh->exec($sql);
echo $tableName . '表影响行数:' . $count . PHP_EOL;
}
}
$dbh->commit();
$dbh = null; // 关闭连接。
}
catch (PDOException $e)
{
die('Error!: ' . $e->getMessage() . PHP_EOL);
}
+4 -4
View File
@@ -1,14 +1,14 @@
title: date
title: moreDate
desc: 系统可用日期类型
author: ly
version: 1.0
field: date
field: moreDate
instances:
- instance: dateA
fields:
- field: year
range: 2019-2020
range: 2019-2022
postfix: "-"
- field: month
range: 1-12
@@ -33,7 +33,7 @@ instances:
- instance: dateB
fields:
- field: year
range: 2019-2020
range: 2019-2022
postfix: "-"
- field: month
range: 1-12
+4 -11
View File
@@ -20,15 +20,15 @@ fields:
- field: product
note: "产品"
range: 1-100
prefix: ""
postfix: ""
prefix: ","
postfix: ","
loop: 0
format: ""
- field: project
note: "项目"
range: 1-100
prefix: ","
postfix: ","
prefix: ""
postfix: ""
loop: 0
format: ""
- field: actor
@@ -44,13 +44,6 @@ fields:
postfix: ""
loop: 0
format: ""
- field: date
note: "日期"
range: 10-22
prefix: "2020-09-09 "
postfix: ":11:24"
loop: 0
format: ""
- field: comment
note: "备注"
range: "1-10000"
View File
View File
+8 -8
View File
@@ -12,23 +12,23 @@ fields:
format: ""
- field: objectID
note: "对象ID"
range: "1-10000"
range: "1-100000"
prefix: ""
postfix: ""
loop: 0
format: ""
- field: product
note: "产品"
range: "1-10000"
prefix: ""
postfix: ""
range: "1-100000"
prefix: ","
postfix: ","
loop: 0
format: ""
- field: project
note: "项目"
range: "1-10000"
prefix: ","
postfix: ","
range: "1-100000"
prefix: ""
postfix: ""
loop: 0
format: ""
- field: actor
@@ -55,7 +55,7 @@ fields:
format: ""
- field: comment
note: "备注"
range: "1-10000"
range: "1-100000"
prefix: "这是一个系统日志测试备注"
postfix: ""
loop: 0