* Task#3944

This commit is contained in:
滔哥
2018-05-09 09:18:59 +08:00
parent 946436452d
commit 325fee5bc7
4 changed files with 117 additions and 110 deletions
+49
View File
@@ -2312,6 +2312,23 @@ class project extends control
public function treeProduct($productID)
{
$this->loadModel('product');
$product = $this->product->getStatByID($productID);
$product->desc = $this->loadModel('file')->setImgSize($product->desc);
$actions = $this->dao->select('*')->from(TABLE_ACTION)->where('product')->like("%,$productID,%")->orderBy('date_desc')->limit(6)->fetchAll();
if($actions) $this->loadModel('action')->transformActions($actions);
$releases = $this->dao->select('*')->from(TABLE_RELEASE)->where('deleted')->eq(0)->andWhere('product')->eq($productID)->orderBy('date')->fetchAll();
$this->view->product = $product;
$this->view->actions = $this->loadModel('action')->getList('product', $productID);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->groups = $this->loadModel('group')->getPairs();
$this->view->lines = array('') + $this->loadModel('tree')->getLinePairs();
$this->view->branches = $this->loadModel('branch')->getPairs($productID);
$this->view->actions = $actions;
$this->view->releases = $releases;
$this->display();
}
@@ -2347,6 +2364,38 @@ class project extends control
public function treeTask($taskID)
{
$this->loadModel('task');
$task = $this->task->getById($taskID, true);
if($task->fromBug != 0)
{
$bug = $this->loadModel('bug')->getById($task->fromBug);
$task->bugSteps = '';
if($bug)
{
$task->bugSteps = $this->loadModel('file')->setImgSize($bug->steps);
foreach($bug->files as $file) $task->files[] = $file;
}
$this->view->fromBug = $bug;
}
else
{
$story = $this->loadModel('story')->getById($task->story);
$task->storySpec = empty($story) ? '' : $this->loadModel('file')->setImgSize($story->spec);
$task->storyVerify = empty($story) ? '' : $this->loadModel('file')->setImgSize($story->verify);
$task->storyFiles = $this->loadModel('file')->getByObject('story', $task->story);
}
if($task->team) $this->lang->task->assign = $this->lang->task->transfer;
/* Update action. */
if($task->assignedTo == $this->app->user->account) $this->loadModel('action')->read('task', $taskID);
$project = $this->project->getById($task->project);
$this->view->task = $task;
$this->view->project = $project;
$this->view->actions = $this->loadModel('action')->getList('task', $taskID);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->display();
}
}
+66 -108
View File
@@ -1,124 +1,82 @@
<div class="detail">
<h2 class="detail-title"><span class="label-id">91</span> <span class="label label-task">任务</span> <span class="title">添加项目页内容区设置时间模块</span></h2>
<h2 class="detail-title">
<span class="label-id"><?php echo $task->id?></span>
<span class="label label-task"><?php echo $lang->task->common?></span>
<span class="title">
<?php if(!empty($task->parent)) echo '<span class="label no-margin">' . $this->lang->task->childrenAB . '</span>';?>
<?php if(!empty($task->team)) echo '<span class="label no-margin">' . $this->lang->task->multipleAB . '</span>';?>
<?php echo isset($task->parentName) ? $task->parentName . '/' : '';?><?php echo $task->name;?>
</span>
</h2>
<div class="detail-content article-content">
<div class="infos">
<span class="status-wait"><span class="label label-dot"></span> 未开始</span>
<span>预计 1h</span>
<span>消耗 1h</span>
<span>剩余 1h</span>
<span class="status-wait"><span class="label label-dot"></span> <?php echo zget($lang->task->statusList, $task->status);?></span>
<span><?php echo $lang->task->estimate;?> <?php echo $task->estimate . $lang->workingHour;?></span>
<span><?php echo $lang->task->consumed;?> <?php echo round($task->consumed, 2) . $lang->workingHour;?></span>
<span><?php echo $lang->task->left;?> <?php echo $task->left . $lang->workingHour;?></span>
</div>
<div class="infos">
<span>类型: 开发</span>
<span>截止: 2018-11-23 <span class="text-danger">延期1天</span></span>
<span><?php echo $lang->task->type;?>: <?php echo $lang->task->typeList[$task->type];?></span>
<span><?php echo $lang->task->deadline;?>: <?php echo $task->deadline; if(isset($task->delay)) printf($lang->task->delayWarning, $task->delay);?></span>
</div>
<div class="btn-toolbar">
<a class="btn btn-info btn-icon" title="变更"><i class="icon icon-fork"></i></a>
<a class="btn btn-info btn-icon" title="删除"><i class="icon icon-trash"></i></a>
<a class="btn btn-info btn-icon" title="评审"><i class="icon icon-glasses"></i></a>
<a class="btn btn-info btn-icon" title="关闭"><i class="icon icon-off"></i></a>
<a class="btn btn-info btn-icon" title="编辑"><i class="icon icon-edit"></i></a>
<a class="btn btn-info btn-icon" title="建用例"><i class="icon icon-sitemap"></i></a>
<?php
if($task->status == 'wait') common::printIcon('task', 'finish', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true);
if($task->status == 'wait') common::printIcon('task', 'start', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true);
if($task->status == 'pause') common::printIcon('task', 'restart', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true);
if($task->status == 'done' or $task->status == 'cancel' or $task->status == 'closed') common::printIcon('task', 'close', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true);
if($task->status == 'doing') common::printIcon('task', 'finish', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true);
common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', 'time', '', 'btn btn-info btn-icon iframe', true);
common::printIcon('task', 'edit', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon');
if(empty($task->team) or empty($task->children))
{
common::printIcon('task', 'batchCreate', "project=$task->project&storyID=$task->story&moduleID=$task->module&taskID=$task->id&ifame=0", $task, 'list', 'plus', '', 'btn btn-info btn-icon', '', '', $lang->task->children);
}
?>
</div>
</div>
</div>
<details class="detail" open>
<summary class="detail-title">任务描述</summary>
<div class="detail" open>
<div class="detail-title"><?php echo $lang->task->legendDesc;?></div>
<div class="detail-content article-content">
<p>建议教程中的所有表单,不要做表单验证,方便用户快速完成教程,了解各功能入口。现在教程中的‘提Bug’, 在未输入必填项时,无相关提示,会令访客疑惑)</p>
<ul>
<li>调整教程右侧区块的布局。用户在教程中会跟随可视化的提示一步步操作,所以‘当前任务’对访客不重要,下方的‘所有任务’可以让访客了解教程的进度,利于鼓励其完成教程。</li>
<li>如果‘快速入口’功能被采纳,建议在新手教程中,加入相关任务。</li>
</ul>
<img src="http://pms.zentao.net/file-read-1613.png" alt="">
<?php echo !empty($task->desc) ? $task->desc : "<div class='text-center text-muted'>" . $lang->task->noData . '</div>';?>
</div>
</details>
<details class="detail">
<summary class="detail-title">需求描述</summary>
</div>
<?php if($project->type != 'ops'):?>
<?php if($task->fromBug != 0):?>
<div class="detail" open>
<div class="detail-title"><?php echo $lang->bug->steps;?></div>
<div class="detail-content article-content">
<p>建议教程中的所有表单,不要做表单验证,方便用户快速完成教程,了解各功能入口。现在教程中的‘提Bug’, 在未输入必填项时,无相关提示,会令访客疑惑)</p>
<?php echo !empty($task->bugSteps) ? $task->bugSteps : "<div class='text-center text-muted'>" . $lang->task->noData . '</div>';?>
</div>
</details>
<details class="detail" open>
<summary class="detail-title">附件 <i class="icon icon-paper-clip icon-sm"></i></summary>
<div class="detail-content">
<ul class="files-list">
<li><a><i class="icon icon-file-text"></i> ZUI文档2.doc (5.34k)</a></li>
<li><a><i class="icon icon-file-text"></i> 需求分析.doc (2.00M)</a></li>
</div>
<?php elseif($task->story):?>
<div class="detail" open>
<div class='detail-title'><?php echo $lang->task->storySpec;?></div>
<div class='detail-content article-content'>
<?php echo (!empty($task->storySpec) || !empty($task->storyFiles)) ? $task->storySpec : "<div class='text-center text-muted'>" . $lang->task->noData . '</div>';?>
</div>
<?php echo $this->fetch('file', 'printFiles', array('files' => $task->storyFiles, 'fieldset' => 'false'));?>
</div>
<div class='detail' open>
<div class='detail-title'><?php echo $lang->task->storyVerify;?></div>
<div class='detail-content article-content'>
<?php echo !empty($task->storyVerify) ? $task->storyVerify : "<div class='text-center text-muted'>" . $lang->task->noData . '</div>';?>
</div>
</div>
<?php endif;?>
<?php if(isset($task->cases) and $task->cases):?>
<div class='detail' open>
<div class='detail-title'><?php echo $lang->task->case;?></div>
<div class='detail-content article-content'>
<ul class='list-unstyled'>
<?php foreach($task->cases as $caseID => $case) echo '<li>' . html::a($this->createLink('testcase', 'view', "caseID=$caseID", '', true), "#$caseID " . $case, '', "data-toggle='modal' data-type='iframe' data-width='90%'") . '</li>';?>
</ul>
</div>
</details>
<details class="detail block-histories histories" data-textDiff="文本格式" data-original="原始格式" open>
<summary class="detail-title">
历史记录 &nbsp;<button type="button" title="切换顺序" class="btn btn-mini btn-icon btn-reverse"><i class="icon icon-arrow-up icon-sm"></i></button> <button type="button" title="切换显示" class="btn btn-mini btn-icon btn-expand-all"><i class="icon icon-plus icon-sm"></i></button>
<a class="btn btn-link pull-right muted btn-comment"><i class="icon icon-chat-line"></i> 添加备注</a>
</summary>
<div class="detail-content">
<ol class="histories-list">
<li value="1">2017-06-02 12:21:00 由 <strong>王一栋</strong> 创建。</li>
<li value="2">
2018-03-01 12:00:00 由 <strong>孙浩</strong> 编辑。<button type="button" class="btn btn-mini btn-icon btn-expand" title="切换显示"><i class="icon icon-plus icon-sm"></i></button>
<div class="history-changes">
修改了 <strong><i>预计工时</i></strong>,旧值为 "0",新值为 "5"。
</div>
</li>
<li value="3">
2017-06-02 12:21:00 由 <strong>王一栋</strong> 指派给 <strong>孙浩</strong>。<button type="button" class="btn btn-mini btn-icon btn-expand" title="切换显示"><i class="icon icon-plus icon-sm"></i></button> <button type="button" class="btn btn-mini btn-icon btn-strip"><i class="icon icon-code icon-sm"></i></button>
<div class="history-changes">
修改了 <strong><i>版本号 </i></strong>,旧值为 "1",新值为 "2"。<br>
修改了 <strong><i>当前状态</i></strong>,旧值为 "active",新值为 "changed"。<br>
修改了 <strong><i>由谁评审</i></strong>,旧值为 "liyunling",新值为 ""。<br>
修改了 <strong><i>评审时间</i></strong>,旧值为 "2018-03-27",新值为 "0000-00-00"。<br>
修改了 <strong><i>需求描述</i></strong>,区别为:
<!-- 分别用两个 blockquote 来表示原始格式和源码格式 -->
<blockquote class="original">001- <del>Bug列表进入 bug详情页页面布局。</del><br>
001+ <ins>&lt;p&gt;Bug列表进入 bug详情页页面布局。&lt;/p&gt;</ins><br>
002+ <ins>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</ins><br>
003+ <ins>&lt;p&gt;&lt;img src="{1603.jpg}" alt="" /&gt;&lt;/p&gt;</ins></blockquote>
<blockquote class="textdiff">001- <del>Bug列表进入 bug详情页页面布局。</del><br>
001+ <ins>Bug列表进入 bug详情页页面布局。</ins><br>
002+ <ins></ins><br>
003+ <ins></ins></blockquote>
</div>
</li>
<li value="4">
2017-06-02 12:21:00 由 <strong>Catouse</strong> 添加了备注。
<button class="btn btn-link btn-icon btn-sm btn-edit-comment" type="button" title="编辑备注"><i class="icon icon-pencil"></i></button>
<div class="atricle-content comment">备注测试</div>
<form class="comment-edit-form" action="../json/form-success.json">
<div class="form-group">
<textarea class="kindeditor form-control" rows="8">备注测试</textarea>
</div>
<div class="form-group form-actions">
<button type="submit" class="btn btn-primary btn-wide">保存</button>
<button type="button" class="btn btn-wide btn-hide-form">关闭</button>
</div>
</form>
</li>
</ol>
</div>
<div class="modal fade modal-comment" id="commentModal">
<div class="modal-dialog">
<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">关闭</span></button>
<h4 class="modal-title">添加备注</h4>
</div>
<div class="modal-body">
<form action="../json/form-success.json" data-type="ajax">
<div class="form-group">
<textarea class="kindeditor form-control" rows="8"></textarea>
</div>
<div class="form-group form-actions">
<button type="submit" class="btn btn-primary btn-wide">保存</button>
<button type="button" class="btn btn-wide" data-dismiss="modal">关闭</button>
</div>
</form>
</div>
</div>
</div>
</div>
</details>
</div>
<?php endif;?>
<?php endif;?>
<?php echo $this->fetch('file', 'printFiles', array('files' => $task->files, 'fieldset' => 'true'));?>
<?php $actionFormLink = $this->createLink('action', 'comment', "objectType=task&objectID=$task->id");?>
<?php include '../../common/view/action.html.php';?>
+1 -1
View File
@@ -160,7 +160,7 @@ $lang->task->confirmDeleteEstimate = "Do you want to delete it?";
$lang->task->copyStoryTitle = "Copy Story";
$lang->task->afterSubmit = "After Created,";
$lang->task->successSaved = "Created!";
$lang->task->delayWarning = " <strong class='delayed f-14px'> Delay %s days </strong>";
$lang->task->delayWarning = " <strong class='text-danger'> Delay %s days </strong>";
$lang->task->remindBug = "This Task is converted from a Bug. Do you want to update te Bug:%s?";
$lang->task->confirmChangeProject = "If you change {$lang->projectCommon}, the related Module, Story and Assignor will be changed. Do you want to do it?";
$lang->task->confirmFinish = '"Left Hour" is 0. Do you want to change the Status to "Done"?';
+1 -1
View File
@@ -162,7 +162,7 @@ $lang->task->confirmDeleteEstimate = "您确定要删除这个记录吗?";
$lang->task->copyStoryTitle = "同需求";
$lang->task->afterSubmit = "添加之后";
$lang->task->successSaved = "成功添加,";
$lang->task->delayWarning = " <strong class='delayed f-14px'> 延期%s天 </strong>";
$lang->task->delayWarning = " <strong class='text-danger'> 延期%s天 </strong>";
$lang->task->remindBug = "该任务为Bug转化得到,是否更新Bug:%s ?";
$lang->task->confirmChangeProject = "修改{$lang->projectCommon}会导致相应的所属模块、相关需求和指派人发生变化,确定吗?";
$lang->task->confirmFinish = '"预计剩余"为0,确认将任务状态改为"已完成"吗?';