This commit is contained in:
Yagami
2018-10-24 13:04:43 +08:00
16 changed files with 127 additions and 65 deletions
+21 -21
View File
@@ -113,7 +113,7 @@ $lang->typeAB = 'Type';
$lang->common = new stdclass();
$lang->common->common = 'Common Module';
/* 主导航菜单。*/
/* Main menu. */
$lang->menu = new stdclass();
$lang->menu->my = '<span>Dashboard</span>|my|index';
$lang->menu->product = $lang->productCommon . '|product|index|locate=no';
@@ -126,7 +126,7 @@ $lang->menu->admin = 'Admin|admin|index';
$lang->dividerMenu = ',qa,';
/* 查询条中可以选择的对象列表。*/
/* Object list in search form. */
$lang->searchObjects['bug'] = 'Bug';
$lang->searchObjects['story'] = 'Story';
$lang->searchObjects['task'] = 'Task';
@@ -143,12 +143,12 @@ $lang->searchObjects['testsuite'] = 'Case Library';
$lang->searchObjects['testreport'] = 'Test Report';
$lang->searchTips = 'ID (ctrl+g)';
/* 导入支持的编码格式。*/
/* Code formats for import. */
$lang->importEncodeList['gbk'] = 'GBK';
$lang->importEncodeList['big5'] = 'BIG5';
$lang->importEncodeList['utf-8'] = 'UTF-8';
/* 导出文件的类型列表。*/
/* File type list for export. */
$lang->exportFileTypeList['csv'] = 'csv';
$lang->exportFileTypeList['xml'] = 'xml';
$lang->exportFileTypeList['html'] = 'html';
@@ -156,10 +156,10 @@ $lang->exportFileTypeList['html'] = 'html';
$lang->exportTypeList['all'] = 'All';
$lang->exportTypeList['selected'] = 'Selected';
/* 语言 */
/* Language. */
$lang->lang = 'Language';
/* 风格列表。*/
/* Theme style. */
$lang->theme = 'Theme';
$lang->themes['default'] = 'ZenTao Blue (default)';
$lang->themes['green'] = 'Green';
@@ -169,14 +169,14 @@ $lang->themes['pink'] = 'Pink';
$lang->themes['blackberry'] = 'Blackberry';
$lang->themes['classic'] = 'Classic';
/* 首页菜单设置。*/
/* Index menu settings. */
$lang->index = new stdclass();
$lang->index->menu = new stdclass();
$lang->index->menu->product = "{$lang->productCommon}|product|browse";
$lang->index->menu->project = "{$lang->projectCommon}|project|browse";
/* 我的地盘菜单设置。*/
/* my dashboard menu settings. */
$lang->my = new stdclass();
$lang->my->menu = new stdclass();
@@ -199,7 +199,7 @@ $lang->todo->menu = $lang->my->menu;
$lang->score = new stdclass();
$lang->score->menu = $lang->my->menu;
/* 产品视图设置。*/
/* Product menu settings. */
$lang->product = new stdclass();
$lang->product->menu = new stdclass();
@@ -224,7 +224,7 @@ $lang->story->menu = $lang->product->menu;
$lang->productplan->menu = $lang->product->menu;
$lang->release->menu = $lang->product->menu;
/* 项目视图菜单设置。*/
/* Project menu settings. */
$lang->project = new stdclass();
$lang->project->menu = new stdclass();
@@ -261,7 +261,7 @@ $lang->task->menu = $lang->project->menu;
$lang->build->menu = $lang->project->menu;
$lang->build->menu->qa = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'bug,build,testtask', 'alias' => 'build,testtask', 'class' => 'dropdown dropdown-hover');
/* QA视图菜单设置。*/
/* QA menu settings. */
$lang->qa = new stdclass();
$lang->qa->menu = new stdclass();
@@ -327,12 +327,12 @@ $lang->caselib->menu->testsuite = array('link' => 'Suite|testsuite|browse|');
$lang->caselib->menu->report = array('link' => 'Report|testreport|browse|');
$lang->caselib->menu->caselib = array('link' => 'Library|testsuite|library', 'alias' => 'createlib,createcase,libview,edit,batchcreatecase,showimport', 'subModule' => 'tree,testcase');
/* 文档视图菜单设置。*/
/* Doc menu settings. */
$lang->doc = new stdclass();
$lang->doc->menu = new stdclass();
//$lang->doc->menu->createLib = array('link' => '<i class="icon icon-folder-plus"></i>&nbsp;Add Doc Lib|doc|createLib', 'float' => 'right');
/* 统计视图菜单设置。*/
/* Report menu settings. */
$lang->report = new stdclass();
$lang->report->menu = new stdclass();
@@ -344,7 +344,7 @@ $lang->report->menu->staff = array('link' => 'Company|report|workload');
$lang->report->notice = new stdclass();
$lang->report->notice->help = 'Note: Report is generated from search results. Please search in the list page before you generate a report.';
/* 组织结构视图菜单设置。*/
/* Company menu settings. */
$lang->company = new stdclass();
$lang->company->menu = new stdclass();
$lang->company->menu->browseUser = array('link' => 'User|company|browse', 'subModule' => 'user');
@@ -361,7 +361,7 @@ $lang->dept->menu = $lang->company->menu;
$lang->group->menu = $lang->company->menu;
$lang->user->menu = $lang->company->menu;
/* 后台管理菜单设置。*/
/* Admin menu settings. */
$lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
@@ -405,7 +405,7 @@ $lang->entry->menu = $lang->admin->menu;
$lang->webhook->menu = $lang->admin->menu;
$lang->message->menu = $lang->admin->menu;
/* 菜单分组。*/
/* Menu group. */
$lang->menugroup = new stdclass();
$lang->menugroup->release = 'product';
$lang->menugroup->story = 'product';
@@ -439,7 +439,7 @@ $lang->menugroup->entry = 'admin';
$lang->menugroup->webhook = 'admin';
$lang->menugroup->message = 'admin';
/* 错误提示信息。*/
/* Error info. */
$lang->error = new stdclass();
$lang->error->companyNotFound = "The domain %s cannot be found!";
$lang->error->length = array("『%s』Length Error. It should be『%s』", "『%s』length should be <=『%s』and >『%s』.");
@@ -465,7 +465,7 @@ $lang->error->noData = 'No Data';
$lang->error->editedByOther = 'This record might have been changed. Please refresh and try to edit again!';
$lang->error->tutorialData = 'No data can be imported in tutorial mode. Please exit tutorial first!';
/* 分页信息。*/
/* Page info. */
$lang->pager = new stdclass();
$lang->pager->noRecord = "No Records";
$lang->pager->digest = " <strong>%s</strong> in total. %s <strong>%s/%s</strong> &nbsp; ";
@@ -498,7 +498,7 @@ $lang->chooseUsersToMail = "Choose users that will be notified.";
$lang->browserNotice = 'Your current browser might not show the best effect. Please use Chrome, Firefox, IE9+, Opera or Safari.';
$lang->noticePasteImg = "Paste images here";
/* 时间格式设置。*/
/* Time formats settings. */
if(!defined('DT_DATETIME1')) define('DT_DATETIME1', 'Y-m-d H:i:s');
if(!defined('DT_DATETIME2')) define('DT_DATETIME2', 'y-m-d H:i');
if(!defined('DT_MONTHTIME1'))define('DT_MONTHTIME1', 'n/d H:i');
@@ -510,7 +510,7 @@ if(!defined('DT_DATE4')) define('DT_DATE4', 'n/j');
if(!defined('DT_TIME1')) define('DT_TIME1', 'H:i:s');
if(!defined('DT_TIME2')) define('DT_TIME2', 'H:i');
/* datepicker 时间*/
/* Datepicker. */
$lang->datepicker = new stdclass();
$lang->datepicker->dpText = new stdclass();
@@ -532,7 +532,7 @@ $lang->datepicker->dayNames = array('Sunday', 'Monday', 'Tuesday', 'Wednesda
$lang->datepicker->abbrDayNames = array('Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat');
$lang->datepicker->monthNames = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
/* Common action icons 通用动作图标 */
/* Common action icons. */
$lang->icons['todo'] = 'check';
$lang->icons['product'] = 'cube';
$lang->icons['bug'] = 'bug';
+3 -3
View File
@@ -470,9 +470,9 @@ class custom extends control
{
if($this->server->request_method == 'POST')
{
$data = fixer::input('post')->join('showLibs', ',')->get();
if(isset($data->showLibs)) $data = $data->showLibs;
$this->loadModel('setting')->setItem("{$this->app->user->account}.doc.custom.showLibs", $data);
$data = fixer::input('post')->get();
$this->loadModel('setting')->deleteItems("owner={$this->app->user->account}&module=doc&section=custom");
$this->setting->setItems("{$this->app->user->account}.doc.custom", $data);
die(js::reload('parent.parent'));
}
}
+4 -2
View File
@@ -13,10 +13,12 @@ $config->doc->create->requiredFields = 'title';
$config->doc->edit->requiredFields = 'title';
$config->doc->customObjectLibs = 'files,customFiles';
$config->doc->notArticleType = '';
$config->doc->custom = new stdclass();
$config->doc->custom->objectLibs = $config->doc->customObjectLibs;
$config->doc->custom->showLibs = 'zero,unclosed';
$config->doc->custom->objectLibs = $config->doc->customObjectLibs;
$config->doc->custom->showProjects = 'all';
$config->doc->custom->showNullLib = false;
$config->doc->editor = new stdclass();
$config->doc->editor->create = array('id' => 'content', 'tools' => 'fullTools');
+12 -5
View File
@@ -100,8 +100,12 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . ' Library';
$lang->doc->libTypeList['project'] = $lang->projectCommon . ' Library';
$lang->doc->libTypeList['custom'] = 'Custom Library';
$lang->doc->systemLibs['product'] = $lang->productCommon . 'Doc Lib';
$lang->doc->systemLibs['project'] = $lang->projectCommon . 'Doc Lib';
$lang->doc->libIconList['product'] = 'icon-cube';
$lang->doc->libIconList['project'] = 'icon-stack';
$lang->doc->libIconList['custom'] = 'icon-folder-o';
$lang->doc->systemLibs['product'] = $lang->productCommon;
$lang->doc->systemLibs['project'] = $lang->projectCommon;
global $config;
if($config->global->flow == 'onlyStory' or $config->global->flow == 'onlyTest') unset($lang->doc->systemLibs['project']);
@@ -136,9 +140,10 @@ $lang->doc->fastMenuIconList['collectedbyme'] = 'icon-folder-star';
$lang->doc->customObjectLibs['files'] = 'Show File Library';
$lang->doc->customObjectLibs['customFiles'] = 'Show Custom Library';
$lang->doc->customShowLibs = 'Library display settings';
$lang->doc->customShowLibsList['zero'] = 'Display zero document library';
$lang->doc->customShowLibsList['unclosed'] = 'Show only projects that are not closed.';
$lang->doc->customShowLibs = 'Library display settings';
$lang->doc->customShowNullLib = 'Display empty library';
$lang->doc->customShowLibProjects['unclosed'] = 'Display projects that are not closed';
$lang->doc->customShowLibProjects['all'] = 'Display all projects';
$lang->doc->confirmDelete = "Do you want to delete this document?";
$lang->doc->confirmDeleteLib = "Do you want to delete this Doc Lib?";
@@ -174,3 +179,5 @@ $lang->doclib->main['project'] = 'Main Library';
$lang->doclib->tabList['product'] = $lang->productCommon;
$lang->doclib->tabList['project'] = $lang->projectCommon;
$lang->doclib->tabList['custom'] = 'Custom';
$lang->doclib->nameList['custom'] = 'Doc lib name';
+4 -3
View File
@@ -140,9 +140,10 @@ $lang->doc->fastMenuIconList['collectedbyme'] = 'icon-folder-star';
$lang->doc->customObjectLibs['files'] = '显示附件库';
$lang->doc->customObjectLibs['customFiles'] = '显示自定义文档库';
$lang->doc->customShowLibs = '文档库显示设置';
$lang->doc->customShowLibsList['zero'] = '显示零文档的库';
$lang->doc->customShowLibsList['unclosed'] = '只显示未关闭的项目';
$lang->doc->customShowLibs = '文档库显示设置';
$lang->doc->customShowNullLib = '显示空文档的库';
$lang->doc->customShowLibProjects['unclosed'] = '显示未关闭的项目';
$lang->doc->customShowLibProjects['all'] = '显示所有的项目';
$lang->doc->confirmDelete = "您确定删除该文档吗?";
$lang->doc->confirmDeleteLib = "您确定删除该文档库吗?";
+16 -11
View File
@@ -103,7 +103,6 @@ class docModel extends model
$actions = $this->setFastMenu($fastLib);
$actions .= common::hasPriv('doc', 'createLib') ? html::a(helper::createLink('doc', 'createLib', "type={$type}&objectID={$currentLib}"), "<i class='icon icon-folder-plus'></i> " . $this->lang->doc->createLib, '', "class='btn btn-secondary iframe'") : '';
if($libID and common::hasPriv('doc', 'create')) $actions .= html::a(helper::createLink('doc', 'create', "libID=$libID"), "<i class='icon icon-plus'></i> " . $this->lang->doc->create, '', "class='btn btn-primary'");
$this->lang->modulePageActions = $actions;
}
@@ -138,7 +137,7 @@ class docModel extends model
$stmt = $this->dao->select('t1.*')->from(TABLE_DOCLIB)->alias('t1')
->leftJoin($table)->alias('t2')->on("t1.$type=t2.id")
->where("t1.$type")->ne(0)
->beginIF($type == 'project' and strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
->beginIF($type == 'project' and $this->config->doc->custom->showProjects == 'unclosed')->andWhere('t2.status')->notin('done,closed')->fi()
->andWhere('t1.deleted')->eq(0)
->orderBy("t2.order desc, t1.order, t1.id")
->query();
@@ -284,6 +283,7 @@ class docModel extends model
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
->beginIF($libID)->andWhere('lib')->in($libID)->fi()
->andWhere('lib')->in($allLibs)
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
->andWhere('addedBy')->eq($this->app->user->account)
->orderBy($sort)
->page($pager)
@@ -296,6 +296,7 @@ class docModel extends model
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('product')->eq(0)->fi()
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
->andWhere('id')->in($docIdList)
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
->andWhere('lib')->in($allLibs)
->orderBy('editedDate_desc')
->page($pager)
@@ -309,6 +310,7 @@ class docModel extends model
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
->beginIF($libID)->andWhere('lib')->in($libID)->fi()
->andWhere('lib')->in($allLibs)
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
->andWhere('collector')->like("%,{$this->app->user->account},%")
->orderBy($sort)
->page($pager)
@@ -353,6 +355,7 @@ class docModel extends model
$docs = $this->dao->select('*')->from(TABLE_DOC)->where($docQuery)
->beginIF(!$libCond)->andWhere("lib")->eq($libID)->fi()
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
->andWhere('deleted')->eq(0)
->fetchAll('id');
foreach($docs as $docID => $doc)
@@ -377,6 +380,7 @@ class docModel extends model
->beginIF($this->config->global->flow == 'onlyStory' || $this->config->global->flow == 'onlyTest')->andWhere('project')->eq(0)->fi()
->beginIF(!empty($docIdList))->andWhere('t1.id')->in($docIdList)->fi()
->andWhere('t1.title', true)->like("%{$this->session->searchDoc}%")
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
->orWhere('t2.content')->like("%{$this->session->searchDoc}%")->markRight(1)
->andWhere('t1.lib')->in($allLibs)
->orderBy($sort)
@@ -454,6 +458,7 @@ class docModel extends model
{
$stmt = $this->dao->select('*')->from(TABLE_DOC)
->where('deleted')->eq(0)
->beginIF($this->config->doc->notArticleType)->andWhere('type')->notIN($this->config->doc->notArticleType)->fi()
->beginIF($libID)->andWhere('lib')->in($libID)->fi()
->beginIF(!empty($module))->andWhere('module')->in($module)->fi()
->query();
@@ -906,7 +911,7 @@ class docModel extends model
$fields = $type == 'product' ? "createdBy, createdDate" : "openedBy AS createdBy, openedDate AS createdDate";
$libs = $this->dao->select("id, name, `order`, {$fields}")->from($table)
->where('id')->in($idList)
->beginIF($type == 'project' and strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('status')->notin('done,closed')->fi()
->beginIF($type == 'project' and $this->config->doc->custom->showProjects == 'unclosed')->andWhere('status')->notin('done,closed')->fi()
->orderBy('`order` desc, id desc')
->page($pager, 'id')
->fetchAll('id');
@@ -966,7 +971,7 @@ class docModel extends model
$hasProject = $this->dao->select('DISTINCT product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
->where('t1.product')->in($productIdList)
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
->beginIF($this->config->doc->custom->showProjects == 'unclosed')->andWhere('t2.status')->notin('done,closed')->fi()
->andWhere('t2.deleted')->eq(0)
->fetchPairs('product', 'product');
}
@@ -990,7 +995,7 @@ class docModel extends model
}
$projects = $this->dao->select('id,name,status')->from(TABLE_PROJECT)
->where('id')->in(array_keys($projectLibs))
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('status')->notin('done,closed')->fi()
->beginIF($this->config->doc->custom->showProjects == 'unclosed')->andWhere('status')->notin('done,closed')->fi()
->andWhere('deleted')->eq('0')
->orderBy('`order`_desc')
->fetchAll();
@@ -1028,7 +1033,7 @@ class docModel extends model
if($type == 'product' or $type == 'project')
{
$nonzeroLibs = array();
if(strpos($this->config->doc->custom->showLibs, 'zero') === false)
if($this->config->doc->custom->showNullLib)
{
$nonzeroLibs = $this->dao->select('lib,count(*) as count')->from(TABLE_DOC)->where('deleted')->eq('0')->groupBy('lib')->having('count')->ne(0)->fetchPairs('lib', 'lib');
}
@@ -1037,8 +1042,8 @@ class docModel extends model
$stmt = $this->dao->select('t1.*')->from(TABLE_DOCLIB)->alias('t1')
->leftJoin($table)->alias('t2')->on("t1.$type=t2.id")
->where('t1.deleted')->eq(0)->andWhere("t1.$type")->ne(0)
->beginIF($type == 'project' and strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
->beginIF(strpos($this->config->doc->custom->showLibs, 'zero') === false)->andWhere('t1.id')->in($nonzeroLibs)->fi()
->beginIF($type == 'project' and $this->config->doc->custom->showProjects == 'unclosed')->andWhere('t2.status')->notin('done,closed')->fi()
->beginIF($this->config->doc->custom->showNullLib)->andWhere('t1.id')->in($nonzeroLibs)->fi()
->orderBy("t2.`order` desc, t1.`order` asc, id desc")
->query();
}
@@ -1089,7 +1094,7 @@ class docModel extends model
$hasProject = $this->dao->select('DISTINCT product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
->where('t1.product')->in($idList)
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
->beginIF($this->config->doc->custom->showProjects == 'unclosed')->andWhere('t2.status')->notin('done,closed')->fi()
->andWhere('t2.deleted')->eq(0)
->fetchPairs('product', 'product');
}
@@ -1132,7 +1137,7 @@ class docModel extends model
$hasProject = $this->dao->select('DISTINCT product, count(project) as projectCount')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id')
->where('t1.product')->eq($objectID)
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t2.status')->notin('done,closed')->fi()
->beginIF($this->config->doc->custom->showProjects == 'unclosed')->andWhere('t2.status')->notin('done,closed')->fi()
->andWhere('t2.deleted')->eq(0)
->groupBy('product')
->fetchPairs('product', 'projectCount');
@@ -1398,7 +1403,7 @@ class docModel extends model
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.root=t2.project')
->leftJoin(TABLE_PROJECT)->alias('t3')->on('t1.root=t3.id')
->where('t2.product')->eq($objectID)
->beginIF(strpos($this->config->doc->custom->showLibs, 'unclosed') !== false)->andWhere('t3.status')->notin('done,closed')->fi()
->beginIF($this->config->doc->custom->showProjects == 'unclosed')->andWhere('t3.status')->notin('done,closed')->fi()
->andWhere('t1.type')->eq('project')
->andWhere('t3.deleted')->eq('0')
->fetchPairs('account', 'account');
+12 -5
View File
@@ -38,16 +38,23 @@ var browseType = '<?php echo $browseType;?>';
<i class="icon icon-search text-muted"></i>
<?php endif;?>
<?php echo $breadTitle;?>
</div>
<nav class="panel-actions btn-toolbar">
<div class="btn-group">
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon text-primary'");?>
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon'");?>
</div>
</div>
<nav class="panel-actions btn-toolbar">
<div class="btn-group">
<?php echo html::a(helper::createLink('tree', 'browse', "libID=$libID&viewType=doc"), "<i class='icon icon-cog'></i>" . $lang->doc->manageType, '',"class='btn btn-link'");?>
<?php if($libID):?>
<div class="dropdown">
<button class="btn" type="button" data-toggle="dropdown"><i class='icon-cog'></i> <span class="caret"></span></button>
<ul class='dropdown-menu'>
<li><?php common::printLink('tree', 'browse', "libID=$libID&viewType=doc", "<i class='icon icon-cog'></i>" . $lang->doc->manageType);?></li>
<li><?php common::printLink('doc', 'editLib', "libID=$libID", "<i class='icon icon-edit'></i>" . $lang->edit, '', "class='iframe'");?></li>
<li><?php common::printLink('doc', 'delete', "libID=$libID", "<i class='icon icon-remove'></i>" . $lang->delete, 'hiddenwin');?></li>
</ul>
</div>
<?php common::printLink('doc', 'create', "libID=$libID", "<i class='icon icon-plus'></i> " . $this->lang->doc->create, '', "class='btn btn-primary'");?>
<?php endif;?>
</nav>
</div>
<?php if(empty($docs) and empty($modules) and empty($libs) and empty($attachLibs)):?>
+13 -5
View File
@@ -4,14 +4,22 @@
<div class="panel-title font-normal">
<i class="icon icon-folder-open-o text-muted"></i>
<?php echo $breadTitle;?>
<div class="btn-group">
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon'");?>
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon text-primary'");?>
</div>
<nav class="panel-actions btn-toolbar">
<div class="btn-group">
<?php echo html::a(helper::createLink('tree', 'browse', "libID=$libID&viewType=doc"), "<i class='icon icon-cog'></i>" . $lang->doc->manageType, '',"class='btn btn-link'");?>
<?php echo html::a('javascript:setBrowseType("bylist")', "<i class='icon icon-bars'></i>", '', "title='{$lang->doc->browseTypeList['list']}' class='btn btn-icon'");?>
<?php echo html::a('javascript:setBrowseType("bygrid")', "<i class='icon icon-cards-view'></i>", '', "title='{$lang->doc->browseTypeList['grid']}' class='btn btn-icon text-primary'");?>
</div>
<?php if($libID):?>
<div class="dropdown">
<button class="btn" type="button" data-toggle="dropdown"><i class='icon-cog'></i> <span class="caret"></span></button>
<ul class='dropdown-menu'>
<li><?php common::printLink('tree', 'browse', "libID=$libID&viewType=doc", "<i class='icon icon-cog'></i>" . $lang->doc->manageType);?></li>
<li><?php common::printLink('doc', 'editLib', "libID=$libID", "<i class='icon icon-edit'></i>" . $lang->edit, '', "class='iframe'");?></li>
<li><?php common::printLink('doc', 'delete', "libID=$libID", "<i class='icon icon-remove'></i>" . $lang->delete, 'hiddenwin');?></li>
</ul>
</div>
<?php common::printLink('doc', 'create', "libID=$libID", "<i class='icon icon-plus'></i> " . $this->lang->doc->create, '', "class='btn btn-primary'");?>
<?php endif;?>
</nav>
</div>
</div>
+10 -2
View File
@@ -144,7 +144,7 @@ if(empty($type)) $type = 'product';
</div>
<div class='side-footer'><?php echo html::a('###', "<i class='icon-cog'></i> {$lang->doc->customShowLibs}", '', "class='setting text-secondary small' data-target='#settingModal' data-toggle='modal'");?></div>
<div class='modal fade' id='settingModal' aria-hidden="true">
<div class='modal-dialog'>
<div class='modal-dialog mw-400px'>
<div class='modal-content'>
<div class='modal-header'>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only"><?php echo $lang->close;?></span></button>
@@ -154,7 +154,15 @@ if(empty($type)) $type = 'product';
<form action='<?php echo $this->createLink('custom', 'ajaxSetDoc');?>' target='hiddenwin' method='post'>
<table class='table table-form'>
<tr>
<td><?php echo html::checkbox('showLibs', $lang->doc->customShowLibsList, $config->doc->custom->showLibs);?></td>
<td>
<div class="checkbox-primary">
<input type="checkbox" name="showNullLib" value="1" id="showNullLib1" <?php if($config->doc->custom->showNullLib) echo 'checked';?>>
<label for="showNullLib1"><?php echo $lang->doc->customShowNullLib;?></label>
</div>
</td>
</tr>
<tr>
<td><?php echo html::radio('showProjects', $lang->doc->customShowLibProjects, $config->doc->custom->showProjects);?></td>
</tr>
<tr>
<td><?php echo html::submitButton();?></td>
+2 -2
View File
@@ -163,7 +163,7 @@ class file extends control
if($file->extension == 'txt')
{
$extension = 'txt';
if(($postion = strrpos($file->title, '.')) !== false)$extension = substr($file->title, $postion + 1);
if(($postion = strrpos($file->title, '.')) !== false) $extension = substr($file->title, $postion + 1);
if($extension != 'txt') $mode = 'down';
$file->extension = $extension;
}
@@ -367,7 +367,7 @@ class file extends control
$this->app->loadLang('action');
$file = $this->file->getByID($fileID);
$data = fixer::input('post')->get();
$fileName = $data->fileName . '.' . $file->extension;
$fileName = $data->fileName . '.' . $data->extension;
$this->dao->update(TABLE_FILE)->set('title')->eq($fileName)->where('id')->eq($fileID)->exec();
$extension = "." . $file->extension;
+13 -1
View File
@@ -31,12 +31,24 @@ function closeWindow()
<div class='main-header'>
<h2><?php echo $lang->file->inputFileName;?></h2>
</div>
<?php
if(strrpos($file->title, '.') !== false)
{
/* Fix the file name exe.exe */
$title = explode('.', $file->title);
$extension = end($title);
if($file->extension == 'txt' && $extension != $file->extension) $file->extension = $extension;
array_pop($title);
$file->title = join('.', $title);
}
?>
<form class='main-form' method='post' target='hiddenwin' onsubmit='setFileName();'>
<table class='table table-form'>
<tr>
<td>
<div class='input-group'>
<?php echo html::input('fileName', rtrim($file->title, '.' . $file->extension), "class='form-control' size='40' autocomplete='off'");?>
<?php echo html::input('fileName', $file->title, "class='form-control' size='40' autocomplete='off'");?>
<input type="hidden" name="extension" value="<?php echo $file->extension;?>"/>
<strong class='input-group-addon'>.<?php echo $file->extension;?></strong>
</div>
</td>
+1 -2
View File
@@ -9,9 +9,8 @@ $sessionString .= session_name() . '=' . session_id();
<div class="detail-content">
<?php endif;?>
<style>
.files-list>li>a {display: inline;}
.files-list>li>a {display: inline; word-wrap: break-word;}
.files-list>li>.right-icon {opacity: 1;}
.files-list>li>a{word-wrap: break-word;}
</style>
<script>
/* Delete a file. */
+1 -1
View File
@@ -9,7 +9,7 @@
</div>
<div class='panel-body'>
<ul>
<?php $api = $app->getClientLang() == 'en' ? $lang->misc->enApi : $lang->misc->api;?>
<?php $api = empty($config->isINT) ? $lang->misc->api : $lang->misc->enApi;?>
<?php foreach($groupItems as $item => $label):?>
<li><?php echo html::a($api . "/goto.php?item=$item&from=about", $label, '_blank', "id='$item'");;?></li>
<?php endforeach;?>
+1
View File
@@ -141,6 +141,7 @@ $lang->testcase->dittoNotice = 'This Case does not belong to the Product
$lang->testcase->reviewList[0] = 'NO';
$lang->testcase->reviewList[1] = 'YES';
$lang->testcase->priList[0] = '';
$lang->testcase->priList[3] = 3;
$lang->testcase->priList[1] = 1;
$lang->testcase->priList[2] = 2;
+1
View File
@@ -141,6 +141,7 @@ $lang->testcase->dittoNotice = '该用例与上一用例不属于同一
$lang->testcase->reviewList[0] = '否';
$lang->testcase->reviewList[1] = '是';
$lang->testcase->priList[0] = '';
$lang->testcase->priList[3] = 3;
$lang->testcase->priList[1] = 1;
$lang->testcase->priList[2] = 2;
+13 -2
View File
@@ -74,12 +74,23 @@
<?php if($config->global->flow != 'onlyTest'):?>
<tr>
<th class='w-60px'><?php echo $lang->testtask->project;?></th>
<td><?php echo html::a($this->createLink('project', 'story', "projectID=$task->project"), $task->projectName, '', "title='{$task->projectName}'" . ($isOnlybody ? ' target="_blank"' : ''));?></td>
<td><?php echo $isOnlybody ? $task->projectName : html::a($this->createLink('project', 'story', "projectID=$task->project"), $task->projectName, '', "title='{$task->projectName}'");?></td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->testtask->build;?></th>
<td><?php $task->build == 'trunk' ? print($lang->trunk) : print(html::a($this->createLink('build', 'view', "buildID=$task->build"), $task->buildName, '', "title='{$task->buildName}'" . ($isOnlybody ? ' target="_blank"' : '')));?></td>
<td>
<?php
if($task->build == 'trunk')
{
print($lang->trunk);
}
else
{
$isOnlybody ? print($task->buildName) : print(html::a($this->createLink('build', 'view', "buildID=$task->build"), $task->buildName, '', "title='{$task->buildName}'"));
}
?>
</td>
</tr>
<tr>
<th><?php echo $lang->testtask->owner;?></th>