Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
@@ -13,5 +13,3 @@
|
||||
.dropdown-list > li > a {display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.53846154; color: #141414; white-space: nowrap;}
|
||||
.dropdown-list > li > a:hover,
|
||||
.dropdown-list > li > a:focus {color: #1a4f85;text-decoration: none;background-color: #ddd;}
|
||||
|
||||
#createActionMenu .btn{color: #fff!important; text-shadow: 0 -1px 0 rgba(0,0,0,.2)!important; background-color: #d2322d!important; border-color: #bd2d29!important;}
|
||||
|
||||
@@ -67,16 +67,16 @@ js::set('bugBrowseType', ($browseType == 'bymodule' and $this->session->bugBrows
|
||||
if(commonModel::isTutorialMode())
|
||||
{
|
||||
$wizardParams = helper::safe64Encode("productID=$productID&branch=$branch&extra=moduleID=$moduleID");
|
||||
echo html::a($this->createLink('tutorial', 'wizard', "module=bug&method=create¶ms=$wizardParams"), "<i class='icon-plus'></i>" . $lang->bug->create, '', "class='btn btn-bug-create'");
|
||||
echo html::a($this->createLink('tutorial', 'wizard', "module=bug&method=create¶ms=$wizardParams"), "<i class='icon-plus'></i>" . $lang->bug->create, '', "class='btn btn-primary btn-bug-create'");
|
||||
}
|
||||
else
|
||||
{
|
||||
$misc = common::hasPriv('bug', 'create') ? "class='btn'" : "class='btn disabled'";
|
||||
$misc = common::hasPriv('bug', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
|
||||
$link = common::hasPriv('bug', 'create') ? $this->createLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID") : '#';
|
||||
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->bug->create, '', $misc);
|
||||
}
|
||||
?>
|
||||
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'>
|
||||
<button type='button' class='btn btn-primary dropdown-toggle' data-toggle='dropdown'>
|
||||
<span class='caret'></span>
|
||||
</button>
|
||||
<ul class='dropdown-menu'>
|
||||
|
||||
@@ -157,13 +157,13 @@ $lang->install->ranzhi->desc = <<<EOD
|
||||
<li>论坛博客,动态消息</li>
|
||||
</ul>
|
||||
EOD;
|
||||
$lang->install->yidou = new stdclass();
|
||||
$lang->install->yidou->name = '亿斗进销存管理运营系统';
|
||||
$lang->install->yidou->desc = <<<EOD
|
||||
$lang->install->zdoo = new stdclass();
|
||||
$lang->install->zdoo->name = '可深度定制的云端一体化协作平台';
|
||||
$lang->install->zdoo->desc = <<<EOD
|
||||
<ul>
|
||||
<li>销售订单处理,信息及时反馈</li>
|
||||
<li>采销业务状况,时时查询跟进</li>
|
||||
<li>仓储配货送货,轻松便利快捷</li>
|
||||
<li>财务收款付款,简单实用准确</li>
|
||||
<li>安全、稳定、高效</li>
|
||||
<li>以容器为交付单位</li>
|
||||
<li>租户隔离,可深度定制</li>
|
||||
<li>提供一体化管理平台</li>
|
||||
</ul>
|
||||
EOD;
|
||||
|
||||
@@ -59,11 +59,11 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class='col-md-4'>
|
||||
<a class="card ad" href="http://www.yidouio.com" target="_blank">
|
||||
<div class="img-wrapper" style="background-image:url(<?php echo $defaultTheme . 'images/main/yidou.png'?>)"><img src="<?php echo $defaultTheme . 'images/main/yidou.png'?>" alt=""></div>
|
||||
<a class="card ad" href="http://www.zdoo.com" target="_blank">
|
||||
<div class="img-wrapper" style="background-image:url(<?php echo $defaultTheme . 'images/main/zdoo.png'?>)"><img src="<?php echo $defaultTheme . 'images/main/zdoo.png'?>" alt=""></div>
|
||||
<div class="card-reveal">
|
||||
<h5 class="card-heading"><?php echo $lang->install->yidou->name?></h5>
|
||||
<div class="card-content"><?php echo $lang->install->yidou->desc?></div>
|
||||
<h5 class="card-heading"><?php echo $lang->install->zdoo->name?></h5>
|
||||
<div class="card-content"><?php echo $lang->install->zdoo->desc?></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,4 @@
|
||||
a.removeModule{color:#ddd}
|
||||
a.removeModule:hover{color:red}
|
||||
|
||||
#createActionMenu .btn{color: #fff!important; text-shadow: 0 -1px 0 rgba(0,0,0,.2)!important; background-color: #d2322d!important; border-color: #bd2d29!important;}
|
||||
|
||||
tbody > tr > td > .btn-icon {margin-right: 3px;}
|
||||
|
||||
@@ -60,16 +60,16 @@
|
||||
if(commonModel::isTutorialMode())
|
||||
{
|
||||
$wizardParams = helper::safe64Encode("productID=$productID&branch=$branch&moduleID=$moduleID");
|
||||
echo html::a($this->createLink('tutorial', 'wizard', "module=story&method=create¶ms=$wizardParams"), "<i class='con-plus'></i>" . $lang->story->create, '', 'create-story-btn');
|
||||
echo html::a($this->createLink('tutorial', 'wizard', "module=story&method=create¶ms=$wizardParams"), "<i class='con-plus'></i>" . $lang->story->create, '', "class='create-story-btn btn btn-primary'");
|
||||
}
|
||||
else
|
||||
{
|
||||
$misc = common::hasPriv('story', 'create') ? "class='btn'" : "class='btn disabled'";
|
||||
$misc = common::hasPriv('story', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
|
||||
$link = common::hasPriv('story', 'create') ? $this->createLink('story', 'create', "productID=$productID&branch=$branch&moduleID=$moduleID") : '#';
|
||||
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->story->create, '', $misc);
|
||||
}
|
||||
?>
|
||||
<button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
|
||||
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class='dropdown-menu'>
|
||||
|
||||
@@ -24,8 +24,8 @@ include '../../common/view/tablesorter.html.php';
|
||||
<th class='w-id {sorter:"currency"}'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'> <?php echo $lang->priAB;?></th>
|
||||
<th class='w-200px'> <?php echo $lang->story->plan;?></th>
|
||||
<th> <?php echo $lang->story->title;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->story->module;?></th>
|
||||
<th> <?php echo $lang->story->title;?></th>
|
||||
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
|
||||
<th class='w-user'> <?php echo $lang->assignedToAB;?></th>
|
||||
<th class='w-30px'> <?php echo $lang->story->estimateAB;?></th>
|
||||
@@ -43,8 +43,8 @@ include '../../common/view/tablesorter.html.php';
|
||||
</td>
|
||||
<td><span class='<?php echo 'pri' . zget($lang->story->priList, $story->pri, $story->pri);?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri)?></span></td>
|
||||
<td><?php echo $story->planTitle;?></td>
|
||||
<td class='text-left nobr' title='<?php echo $story->title?>'><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></td>
|
||||
<td title='<?php echo $modules[$story->module]?>'><?php echo $modules[$story->module];?></td>
|
||||
<td class='text-left nobr' title='<?php echo $story->title?>'><?php echo html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?></td>
|
||||
<td><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td><?php echo zget($users, $story->assignedTo);?></td>
|
||||
<td><?php echo $story->estimate;?></td>
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
<tr>
|
||||
<th class='w-id {sorter:false}' > <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class='w-pri {sorter:false}'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='{sorter:false}'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->story->title);?></th>
|
||||
<th class='w-80px {sorter:false}'> <?php common::printOrderLink('module', $orderBy, $vars, $lang->story->module);?></th>
|
||||
<th class='{sorter:false}'> <?php common::printOrderLink('title', $orderBy, $vars, $lang->story->title);?></th>
|
||||
<th class='w-user {sorter:false}'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='w-user {sorter:false}'> <?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->assignedToAB);?></th>
|
||||
<th class='w-60px {sorter:false}'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
|
||||
@@ -100,8 +100,8 @@
|
||||
<?php echo html::a($viewLink, sprintf("%03d", $story->id));?>
|
||||
</td>
|
||||
<td><span class='<?php echo 'pri' . zget($lang->story->priList, $story->pri, $story->pri)?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri);?></span></td>
|
||||
<td class='text-left' title='<?php echo $modules[$story->module]?>'><?php echo $modules[$story->module];?></td>
|
||||
<td class='text-left nobr' title='<?php echo $story->title?>'><?php echo html::a($viewLink , $story->title);?></td>
|
||||
<td class='text-left'><?php echo $modules[$story->module];?></td>
|
||||
<td><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td><?php echo zget($users, $story->assignedTo);?></td>
|
||||
<td><?php echo $story->estimate;?></td>
|
||||
|
||||
@@ -320,11 +320,10 @@ class project extends control
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param int $fromProject
|
||||
* @param bool $containDoing
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function importTask($toProject, $fromProject = 0, $containDoing = false)
|
||||
public function importTask($toProject, $fromProject = 0)
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
@@ -335,7 +334,7 @@ class project extends control
|
||||
$project = $this->commonAction($toProject);
|
||||
$branches = $this->project->getProjectBranches($toProject);
|
||||
$tasks = $this->project->getTasks2Imported($toProject, $branches);
|
||||
$projects = $this->project->getProjectsToImport(array_keys($tasks), $containDoing);
|
||||
$projects = $this->project->getProjectsToImport(array_keys($tasks));
|
||||
unset($projects[$toProject]);
|
||||
unset($tasks[$toProject]);
|
||||
|
||||
@@ -362,7 +361,6 @@ class project extends control
|
||||
$this->view->tasks2Imported = $tasks2Imported;
|
||||
$this->view->projects = $projects;
|
||||
$this->view->projectID = $project->id;
|
||||
$this->view->containDoing = $containDoing;
|
||||
$this->view->fromProject = $fromProject;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -15,3 +15,5 @@
|
||||
.modal-dialog {margin-top: 10%!important;}
|
||||
|
||||
.checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] {margin-top: 1px;}
|
||||
|
||||
.type-tips {display: none; margin: 5px 0; color: #545454;}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
#titlebar .input-group {position: relative; top: -6px; margin-left: 10px; width: 500px;}
|
||||
#titlebar .input-group {position: relative; top: -6px; margin-left: 10px; width: 300px;}
|
||||
#titlebar .input-group-addon, #titlebar .form-control {font-size: 12px; padding: 5px 10px; line-height: 18px; height: 30px}
|
||||
|
||||
@@ -21,6 +21,4 @@
|
||||
|
||||
.pl-5px{padding-left:5px;}
|
||||
|
||||
#createActionMenu .btn{color: #fff!important; text-shadow: 0 -1px 0 rgba(0,0,0,.2)!important; background-color: #d2322d!important; border-color: #bd2d29!important;}
|
||||
|
||||
tbody > tr > td > .btn-icon {margin-right: 2px}
|
||||
|
||||
@@ -9,3 +9,16 @@ $(function()
|
||||
$('#copyProjects a').click(function(){setCopyProject($(this).data('id')); $('#copyProjectModal').modal('hide')});
|
||||
$('#productsBox .col-sm-3').width($('#type').closest('td').width());
|
||||
});
|
||||
|
||||
function showTypeTips()
|
||||
{
|
||||
var type = $('#type').val();
|
||||
if(type == 'ops')
|
||||
{
|
||||
$('.type-tips').show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('.type-tips').hide();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
function reload(toProject, fromProject)
|
||||
{
|
||||
link = createLink('project','importtask','toProject='+toProject + '&fromProject='+fromProject + '&containDoing=' + containDoing);
|
||||
link = createLink('project','importtask','toProject='+toProject + '&fromProject='+fromProject);
|
||||
location.href = link;
|
||||
}
|
||||
$(function()
|
||||
|
||||
@@ -51,7 +51,6 @@ $lang->project->mine = 'My Responsibility: ';
|
||||
$lang->project->other = 'Other:';
|
||||
$lang->project->deleted = 'Deleted';
|
||||
$lang->project->delayed = 'Delayed';
|
||||
$lang->project->containDoing = 'including doing project';
|
||||
|
||||
$lang->project->start = 'Start';
|
||||
$lang->project->activate = 'Activate';
|
||||
|
||||
@@ -51,7 +51,6 @@ $lang->project->mine = '我负责:';
|
||||
$lang->project->other = '其他:';
|
||||
$lang->project->deleted = '已删除';
|
||||
$lang->project->delayed = '已延期';
|
||||
$lang->project->containDoing = '包含进行中的项目';
|
||||
|
||||
$lang->project->start = '开始';
|
||||
$lang->project->activate = '激活';
|
||||
|
||||
@@ -1042,7 +1042,7 @@ class projectModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getProjectsToImport($projectIds, $containDoing = 'false')
|
||||
public function getProjectsToImport($projectIds)
|
||||
{
|
||||
$projects = $this->dao->select('*')->from(TABLE_PROJECT)
|
||||
->where('id')->in($projectIds)
|
||||
@@ -1054,14 +1054,7 @@ class projectModel extends model
|
||||
$now = date('Y-m-d');
|
||||
foreach($projects as $id => $project)
|
||||
{
|
||||
if($containDoing)
|
||||
{
|
||||
if($this->checkPriv($project) and ($project->status == 'done' or $project->status == 'doing' or $project->end < $now)) $pairs[$id] = ucfirst(substr($project->code, 0, 1)) . ':' . $project->name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($this->checkPriv($project) and ($project->status == 'done' or $project->end < $now)) $pairs[$id] = ucfirst(substr($project->code, 0, 1)) . ':' . $project->name;
|
||||
}
|
||||
if($this->checkPriv($project)) $pairs[$id] = ucfirst(substr($project->code, 0, 1)) . ':' . $project->name;
|
||||
}
|
||||
return $pairs;
|
||||
}
|
||||
|
||||
@@ -81,10 +81,10 @@
|
||||
<tr>
|
||||
<th><?php echo $lang->project->type;?></th>
|
||||
<td>
|
||||
<?php echo html::select('type', $lang->project->typeList, '', "class='form-control'");?>
|
||||
<?php echo html::select('type', $lang->project->typeList, '', "class='form-control' onchange='showTypeTips()'");?>
|
||||
</td>
|
||||
<td>
|
||||
<div class='help-block'><?php echo $lang->project->typeDesc;?></div>
|
||||
<div class='type-tips'><?php echo $lang->project->typeDesc;?></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/tablesorter.html.php';?>
|
||||
<?php js::set('containDoing', $containDoing);?>
|
||||
<div id='titlebar'>
|
||||
<div class='heading'>
|
||||
<span class='prefix pull-left'><?php echo html::icon($lang->icons['task']);?></span>
|
||||
@@ -21,13 +20,6 @@
|
||||
<?php $projects = array(0 => $lang->project->allProjects) + $projects;?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->selectProject;?></span>
|
||||
<?php echo html::select('fromproject', $projects, $fromProject, "onchange='reload($projectID, this.value)' class='form-control chosen'");?>
|
||||
<span class='input-group-btn'>
|
||||
<?php
|
||||
$toggleClass = $containDoing ? 'icon-checked' : 'icon-check-empty';
|
||||
$params = $containDoing ? "toProject=$projectID&fromProject=$fromProject" : "toProject=$projectID&fromProject=$fromProject&containDoing=true";
|
||||
echo html::a($this->createLink('project', 'importTask', $params), "<i class={$toggleClass}></i> " . $lang->project->containDoing, '', "class='btn'");
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<div class='dropdown-menu pull-right'>
|
||||
<?php
|
||||
echo (common::hasPriv('task', 'create')) ? html::a($this->createLink('task', 'create', "projectID=$story->project&storyID=$story->story&moduleID=$story->module", '', true), $lang->project->wbs, '', "class='kanbanFrame'") : '';
|
||||
echo (common::hasPriv('task', 'batchCreate')) ? html::a($this->createLink('task', 'batchCreate', "projectID=$story->project&storyID=$story->story&iframe=true", '', true), $lang->project->batchWBS, '', "class='kanbanFrame'") : '';
|
||||
echo (common::hasPriv('task', 'batchCreate')) ? html::a($this->createLink('task', 'batchCreate', "projectID=$story->project&storyID=$story->story&iframe=true", '', true), $lang->project->batchWBS, '', "class='kanbanFrame' data-width='95%'") : '';
|
||||
echo (common::hasPriv('project', 'unlinkStory')) ? html::a($this->createLink('project', 'unlinkStory', "projectID=$story->project&storyID=$story->story&confirm=no", '', true), $lang->project->unlinkStory, 'hiddenwin') : '';
|
||||
echo (common::hasPriv('story', 'activate') and storyModel::isClickable($story, 'activate')) ? html::a($this->createLink('story', 'activate', "storyID=$story->id", '', 'true'), $lang->story->activate, '', "class='kanbanFrame'") : '';
|
||||
echo (common::hasPriv('story', 'close') and storyModel::isClickable($story, 'close')) ? html::a($this->createLink('story', 'close', "storyID=$story->id", '', 'true'), $lang->story->close, '', "class='kanbanFrame'") : '';
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<th class='w-35px {sorter:false}'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->task->estimateAB);?></th>
|
||||
<th class='w-50px {sorter:false}'> <?php common::printOrderLink('consumed', $orderBy, $vars, $lang->task->consumedAB);?></th>
|
||||
<th class='w-40px nobr {sorter:false}'> <?php common::printOrderLink('left', $orderBy, $vars, $lang->task->leftAB);?></th>
|
||||
<th class='w-50px'><?php echo $lang->task->progess;?></th>
|
||||
<th class='w-50px' title='<?php echo $lang->task->progessTips?>'><?php echo $lang->task->progess;?></th>
|
||||
|
||||
<?php if($project->type == 'sprint'): ?>
|
||||
<th class='w-100px {sorter:false}'><?php common::printOrderLink('story', $orderBy, $vars, $lang->task->story); ?></th>
|
||||
|
||||
@@ -123,11 +123,11 @@
|
||||
<div class='btn-group'>
|
||||
<div class='btn-group' id='createActionMenu'>
|
||||
<?php
|
||||
$misc = common::hasPriv('task', 'create') ? "class='btn'" : "class='btn disabled'";
|
||||
$misc = common::hasPriv('task', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
|
||||
$link = common::hasPriv('task', 'create') ? $this->createLink('task', 'create', "project=$projectID" . (isset($moduleID) ? "&storyID=&moduleID=$moduleID" : '')) : '#';
|
||||
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->task->create, '', $misc);
|
||||
?>
|
||||
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'>
|
||||
<button type='button' class='btn btn-primary dropdown-toggle' data-toggle='dropdown'>
|
||||
<span class='caret'></span>
|
||||
</button>
|
||||
<ul class='dropdown-menu'>
|
||||
|
||||
@@ -23,7 +23,7 @@ class releaseModel extends model
|
||||
*/
|
||||
public function getByID($releaseID, $setImgSize = false)
|
||||
{
|
||||
$release = $this->dao->select('t1.*, t2.id as buildID, t2.filePath, t2.scmPath, t2.name as buildName, t3.name as productName, t3.type as productType')
|
||||
$release = $this->dao->select('t1.*, t2.id as buildID, t2.filePath, t2.scmPath, t2.name as buildName, t2.project, t3.name as productName, t3.type as productType')
|
||||
->from(TABLE_RELEASE)->alias('t1')
|
||||
->leftJoin(TABLE_BUILD)->alias('t2')->on('t1.build = t2.id')
|
||||
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product = t3.id')
|
||||
|
||||
@@ -278,7 +278,9 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->build;?></th>
|
||||
<td title='<?php echo $release->buildName?>'><?php echo html::a($this->createLink('build', 'view', "buildID=$release->buildID"), $release->buildName, '_blank');?></td>
|
||||
<td title='<?php echo $release->buildName?>'>
|
||||
<?php echo ($release->project) ? html::a($this->createLink('build', 'view', "buildID=$release->buildID"), $release->buildName, '_blank') : $release->buildName;?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->status;?></th>
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
|
||||
.chosen-container {max-width: 980px}
|
||||
|
||||
.minw-80px {min-width: 120px;}
|
||||
.minw-60px {min-width: 50px;}
|
||||
#priRowCol, #estRowCol {width: 110px;}
|
||||
.col-table .input-group {width: 100%}
|
||||
|
||||
#taskPlanCol, #mailCol {width: 50%}
|
||||
#planAndMailCell.has-mail-col #taskPlanCol {padding-right: 5px;}
|
||||
#planAndMailCell.has-mail-col #taskPlanCol + #mailCol {padding-left: 5px;}
|
||||
|
||||
@@ -152,14 +152,20 @@ $(document).ready(function()
|
||||
|
||||
$('[data-toggle=tooltip]').tooltip();
|
||||
|
||||
/* Code for kanban following codes. */
|
||||
// ajust style for file box
|
||||
var ajustFilebox = function()
|
||||
// adjust form controls layout
|
||||
var ajustFormControls = function()
|
||||
{
|
||||
applyCssStyle('.fileBox > tbody > tr > td:first-child {transition: none; width: ' + ($('#dataPlanGroup').width() - 2) + 'px}', 'filebox')
|
||||
// adjust style for file box
|
||||
applyCssStyle('.fileBox > tbody > tr > td:first-child {transition: none; width: ' + ($('#dataPlanGroup').width() - 1) + 'px}', 'filebox');
|
||||
|
||||
// adjust #priRowCol and #estRowCol size
|
||||
var $priRowCol = $('#priRowCol'),
|
||||
$estRowCol = $('#estRowCol');
|
||||
$priRowCol.css('width', 54 + $priRowCol.find('.input-group-addon').outerWidth());
|
||||
$estRowCol.css('width', 55 + $estRowCol.find('.input-group-addon').outerWidth());
|
||||
};
|
||||
ajustFilebox();
|
||||
$(window).resize(ajustFilebox);
|
||||
ajustFormControls();
|
||||
$(window).resize(ajustFormControls);
|
||||
|
||||
/* First unbind ajaxForm for form.*/
|
||||
$("form[data-type='ajax']").unbind('submit');
|
||||
|
||||
@@ -34,6 +34,7 @@ $lang->task->fromBug = 'From Bug';
|
||||
$lang->task->case = 'Related Case';
|
||||
$lang->task->confirmStoryChange = "Confirm Story Change";
|
||||
$lang->task->progess = 'Progess';
|
||||
$lang->task->progessTips = 'Consumed/(Consumed+Left)';
|
||||
|
||||
$lang->task->common = 'Task';
|
||||
$lang->task->id = 'ID';
|
||||
|
||||
@@ -34,6 +34,7 @@ $lang->task->fromBug = '来源Bug';
|
||||
$lang->task->case = '相关用例';
|
||||
$lang->task->confirmStoryChange = "确认需求变动";
|
||||
$lang->task->progess = '进度';
|
||||
$lang->task->progessTips = '已消耗/(已消耗+剩余)';
|
||||
|
||||
$lang->task->common = '任务';
|
||||
$lang->task->id = '编号';
|
||||
|
||||
@@ -812,7 +812,7 @@ class taskModel extends model
|
||||
$task->files = $this->loadModel('file')->getByObject('task', $taskID);
|
||||
|
||||
/* Get related test cases. */
|
||||
if($task->story)$this->cases = $this->dao->select('id, title')->from(TABLE_CASE)->where('story')->eq($task->story)->andWhere('storyVersion')->eq($task->storyVersion)->fetchPairs();
|
||||
if($task->story) $task->cases = $this->dao->select('id, title')->from(TABLE_CASE)->where('story')->eq($task->story)->andWhere('storyVersion')->eq($task->storyVersion)->fetchPairs();
|
||||
|
||||
return $this->processTask($task);
|
||||
}
|
||||
@@ -1203,7 +1203,7 @@ class taskModel extends model
|
||||
}
|
||||
else
|
||||
{
|
||||
$task->progess = round($task->consumed / ($task->consumed + $task->left), 3) * 100;
|
||||
$task->progess = round($task->consumed / ($task->consumed + $task->left), 2) * 100;
|
||||
}
|
||||
|
||||
return $task;
|
||||
|
||||
@@ -29,6 +29,9 @@ foreach(explode(',', $showFields) as $field)
|
||||
{
|
||||
if($field)$visibleFields[$field] = '';
|
||||
}
|
||||
$colspan = count($visibleFields) + 3;
|
||||
$hiddenStory = (isonlybody() and $storyID) ? ' hidden' : '';
|
||||
if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1;
|
||||
?>
|
||||
<form class='form-condensed' method='post' target='hiddenwin'>
|
||||
<table class='table table-form table-fixed with-border'>
|
||||
@@ -36,7 +39,7 @@ foreach(explode(',', $showFields) as $field)
|
||||
<tr class='text-center'>
|
||||
<th class='w-30px'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'module', ' hidden')?>'><?php echo $lang->task->module?></th>
|
||||
<th class='w-200px<?php echo zget($visibleFields, 'story', ' hidden')?>'><?php echo $lang->task->story;?></th>
|
||||
<th class='w-200px<?php echo zget($visibleFields, 'story', ' hidden'); echo $hiddenStory;?>'><?php echo $lang->task->story;?></th>
|
||||
<th><?php echo $lang->task->name;?> <span class='required'></span></th>
|
||||
<th class='w-80px'><?php echo $lang->typeAB;?> <span class='required'></span></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'><?php echo $lang->task->assignedTo;?></th>
|
||||
@@ -72,7 +75,7 @@ foreach(explode(',', $showFields) as $field)
|
||||
<tr>
|
||||
<td class='text-center'><?php echo $i+1;?></td>
|
||||
<td <?php echo zget($visibleFields, 'module', "class='hidden'")?> style='overflow:visible'><?php echo html::select("module[$i]", $modules, $module, "class='form-control chosen' onchange='setStories(this.value, $project->id, $i)'")?></td>
|
||||
<td <?php echo zget($visibleFields, 'story', "class='hidden'")?> style='overflow: visible'>
|
||||
<td <?php echo zget($visibleFields, 'story', "class='hidden'"); echo $hiddenStory;?> style='overflow: visible'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("story[$i]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated($i)'");?>
|
||||
<span class='input-group-btn'>
|
||||
@@ -95,7 +98,7 @@ foreach(explode(',', $showFields) as $field)
|
||||
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pri[$i]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
|
||||
</tr>
|
||||
<?php endfor;?>
|
||||
<tr><td colspan='<?php echo count($visibleFields) + 3?>' class='text-center'><?php echo html::submitButton() . html::backButton();?></td></tr>
|
||||
<tr><td colspan='<?php echo $colspan?>' class='text-center'><?php echo html::submitButton() . html::backButton();?></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
<table class='hide' id='trTemp'>
|
||||
@@ -103,7 +106,7 @@ foreach(explode(',', $showFields) as $field)
|
||||
<tr>
|
||||
<td class='text-center'>%s</td>
|
||||
<td <?php echo zget($visibleFields, 'module', "class='hidden'")?> style='overflow:visible'><?php echo html::select("module[%s]", $modules, $module, "class='form-control' onchange='setStories(this.value, $project->id, \"%s\")'")?></td>
|
||||
<td <?php echo zget($visibleFields, 'story', "class='hidden'")?> style='overflow: visible'>
|
||||
<td <?php echo zget($visibleFields, 'story', "class='hidden'"); echo $hiddenStory;?> style='overflow: visible'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("story[%s]", $stories, $currentStory, "class='form-control' onchange='setStoryRelated(\"%s\")'");?>
|
||||
<span class='input-group-btn'>
|
||||
|
||||
@@ -72,11 +72,9 @@
|
||||
$hiddenPri = strpos(",$showFields,", ',pri,') === false;
|
||||
$hiddenEst = strpos(",$showFields,", ',estimate,') === false;
|
||||
?>
|
||||
<?php if(!$hiddenPri or !$hiddenEst):?>
|
||||
<?php $widthClass = ($hiddenPri or $hiddenEst) ? 'w-120px' : 'w-250px';?>
|
||||
<div class='col-table <?php echo $widthClass?>'>
|
||||
<div class="input-group">
|
||||
<?php if(!$hiddenPri):?>
|
||||
<?php if(!$hiddenPri):?>
|
||||
<div class='col-table' id='priRowCol'>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon fix-border br-0'><?php echo $lang->task->pri;?></span>
|
||||
<?php
|
||||
$hasCustomPri = false;
|
||||
@@ -90,7 +88,7 @@
|
||||
}
|
||||
?>
|
||||
<?php if($hasCustomPri):?>
|
||||
<?php echo html::select('pri', $lang->task->priList, '', "class='form-control minw-80px'");?>
|
||||
<?php echo html::select('pri', $lang->task->priList, '', "class='form-control'");?>
|
||||
<?php else: ?>
|
||||
<div class='input-group-btn dropdown-pris'>
|
||||
<button type='button' class='btn dropdown-toggle br-0' data-toggle='dropdown'>
|
||||
@@ -100,14 +98,18 @@
|
||||
<?php echo html::select('pri', $lang->task->priList, '', "class='hide'");?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif?>
|
||||
<?php if(!$hiddenEst):?>
|
||||
<span class='input-group-addon fix-border br-0'><?php echo $lang->task->estimateAB;?></span>
|
||||
<?php echo html::input('estimate', '', "class='form-control minw-60px' placeholder='{$lang->task->hour}'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(!$hiddenEst):?>
|
||||
<div class='col-table' id='estRowCol'>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon fix-border br-0'><?php echo $lang->task->estimateAB;?></span>
|
||||
<?php echo html::input('estimate', '', "class='form-control' placeholder='{$lang->task->hour}'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -123,33 +125,36 @@
|
||||
<?php if(!$hiddenEstStarted or !$hiddenDeadline or !$hiddenMailto):?>
|
||||
<tr>
|
||||
<th><?php echo ($hiddenEstStarted and $hiddenDeadline) ? $lang->task->mailto : $lang->task->datePlan;?></th>
|
||||
<?php if(!$hiddenEstStarted or !$hiddenDeadline):?>
|
||||
<td colspan='2'>
|
||||
<div class='input-group' id='dataPlanGroup'>
|
||||
<?php if(!$hiddenEstStarted):?>
|
||||
<?php echo html::input('estStarted', $task->estStarted, "class='form-control form-date' placeholder='{$lang->task->estStarted}'");?>
|
||||
<?php endif;?>
|
||||
<?php if(!$hiddenEstStarted and !$hiddenDeadline):?>
|
||||
<span class='input-group-addon fix-border'>~</span>
|
||||
<?php endif;?>
|
||||
<?php if(!$hiddenDeadline):?>
|
||||
<?php echo html::input('deadline', $task->deadline, "class='form-control form-date' placeholder='{$lang->task->deadline}'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<td id='planAndMailCell' colspan='5' class='<?php if(!$hiddenMailto) echo 'has-mail-col' ?>'>
|
||||
<div class='row-table'>
|
||||
<?php if(!$hiddenEstStarted or !$hiddenDeadline):?>
|
||||
<div class='col-table' id='taskPlanCol'>
|
||||
<div class='input-group' id='dataPlanGroup'>
|
||||
<?php if(!$hiddenEstStarted):?>
|
||||
<?php echo html::input('estStarted', $task->estStarted, "class='form-control form-date' placeholder='{$lang->task->estStarted}'");?>
|
||||
<?php endif;?>
|
||||
<?php if(!$hiddenEstStarted and !$hiddenDeadline):?>
|
||||
<span class='input-group-addon fix-border'>~</span>
|
||||
<?php endif;?>
|
||||
<?php if(!$hiddenDeadline):?>
|
||||
<?php echo html::input('deadline', $task->deadline, "class='form-control form-date' placeholder='{$lang->task->deadline}'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if(!$hiddenMailto):?>
|
||||
<div class='col-table' id='mailCol'>
|
||||
<div id='mailtoGroup' class='input-group'>
|
||||
<?php if(!$hiddenEstStarted or !$hiddenDeadline):?>
|
||||
<span class='input-group-addon'><?php echo $lang->task->mailto;?></span>
|
||||
<?php endif;?>
|
||||
<?php echo html::select('mailto[]', $project->acl == 'private' ? $members : $users, str_replace(' ', '', $task->mailto), "multiple class='form-control'");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
<?php endif;?>
|
||||
<?php if(!$hiddenMailto):?>
|
||||
<?php $colspan = ($hiddenEstStarted and $hiddenDeadline) ? '5' : '4';?>
|
||||
<td colspan='<?php echo $colspan?>'>
|
||||
<div id='mailtoGroup' class='input-group'>
|
||||
<?php if(!$hiddenEstStarted or !$hiddenDeadline):?>
|
||||
<span class='input-group-addon'><?php echo $lang->task->mailto;?></span>
|
||||
<?php endif;?>
|
||||
<?php echo html::select('mailto[]', $project->acl == 'private' ? $members : $users, str_replace(' ', '', $task->mailto), "multiple class='form-control'");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</td>
|
||||
<?php endif;?>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</fieldset>
|
||||
<?php endif;?>
|
||||
|
||||
<?php if(isset($task->cases)):?>
|
||||
<?php if(isset($task->cases) and $task->cases):?>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->task->case;?></legend>
|
||||
<div class='article-content'>
|
||||
|
||||
@@ -10,4 +10,3 @@
|
||||
.dropdown-list > li > a:focus {color: #1a4f85;text-decoration: none;background-color: #ddd;}
|
||||
|
||||
.pl-5px{padding-left:5px;}
|
||||
#createActionMenu .btn{color: #fff!important; text-shadow: 0 -1px 0 rgba(0,0,0,.2)!important; background-color: #d2322d!important; border-color: #bd2d29!important;}
|
||||
|
||||
@@ -82,11 +82,11 @@
|
||||
<div class='btn-group' id='createActionMenu'>
|
||||
<?php
|
||||
$initModule = isset($moduleID) ? (int)$moduleID : 0;
|
||||
$misc = common::hasPriv('testcase', 'create') ? "class='btn'" : "class='btn disabled'";
|
||||
$misc = common::hasPriv('testcase', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
|
||||
$link = common::hasPriv('testcase', 'create') ? $this->createLink('testcase', 'create', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
|
||||
echo html::a($link, "<i class='icon-plus'></i>" . $lang->testcase->create, '', $misc);
|
||||
?>
|
||||
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'>
|
||||
<button type='button' class='btn btn-primary dropdown-toggle' data-toggle='dropdown'>
|
||||
<span class='caret'></span>
|
||||
</button>
|
||||
<ul class='dropdown-menu'>
|
||||
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
Reference in New Issue
Block a user