Finish task#3299 需求看板页面不能拖放的列颜色上给出提示,往右拖的时候所有经过的列颜色都变了,历史记录文案改成:由XXX验收,cost:0.5 left:0
This commit is contained in:
@@ -110,6 +110,7 @@ $lang->action->desc->svncommited = '$date, submitted by <strong>$actor</stron
|
||||
$lang->action->desc->gitcommited = '$date, submitted by <strong>$actor</strong> and the version is <strong>#$extra</strong>.' . "\n";
|
||||
$lang->action->desc->finished = '$date, finished by <strong>$actor</strong>.' . "\n";
|
||||
$lang->action->desc->paused = '$date, paused by <strong>$actor</strong>.' . "\n";
|
||||
$lang->action->desc->verified = '$date, verified by <strong>$actor</strong>.' . "\n";
|
||||
$lang->action->desc->diff1 = '<strong><i>%s</i></strong> has been changed. Its value was "%s" and the new value is "%s".<br />' . "\n";
|
||||
$lang->action->desc->diff2 = '<strong><i>%s</i></strong> has been changed. The difference is ' . "\n" . "<blockquote>%s</blockquote>" . "\n<div class='hidden'>%s</div>";
|
||||
$lang->action->desc->diff3 = 'File Name %s was changed to %s .' . "\n";
|
||||
@@ -171,6 +172,7 @@ $lang->action->label->editestimate = 'Edited Man-Hour';
|
||||
$lang->action->label->canceled = 'Cancelled';
|
||||
$lang->action->label->finished = 'Finished';
|
||||
$lang->action->label->paused = 'Paused';
|
||||
$lang->action->label->paused = 'Verified';
|
||||
$lang->action->label->delayed = 'Delayed';
|
||||
$lang->action->label->suspended = 'Suspended';
|
||||
$lang->action->label->login = 'Login';
|
||||
@@ -262,5 +264,6 @@ $lang->action->search->label['editestimate'] = $lang->action->label->edit
|
||||
$lang->action->search->label['canceled'] = $lang->action->label->canceled;
|
||||
$lang->action->search->label['finished'] = $lang->action->label->finished;
|
||||
$lang->action->search->label['paused'] = $lang->action->label->paused;
|
||||
$lang->action->search->label['verified'] = $lang->action->label->verified;
|
||||
$lang->action->search->label['login'] = $lang->action->label->login;
|
||||
$lang->action->search->label['logout'] = $lang->action->label->logout;
|
||||
|
||||
@@ -112,6 +112,7 @@ $lang->action->desc->svncommited = '$date, 由 <strong>$actor</strong> 提交
|
||||
$lang->action->desc->gitcommited = '$date, 由 <strong>$actor</strong> 提交代码,版本为<strong>#$extra</strong>。' . "\n";
|
||||
$lang->action->desc->finished = '$date, 由 <strong>$actor</strong> 完成。' . "\n";
|
||||
$lang->action->desc->paused = '$date, 由 <strong>$actor</strong> 暂停。' . "\n";
|
||||
$lang->action->desc->verified = '$date, 由 <strong>$actor</strong> 验收。' . "\n";
|
||||
$lang->action->desc->diff1 = '修改了 <strong><i>%s</i></strong>,旧值为 "%s",新值为 "%s"。<br />' . "\n";
|
||||
$lang->action->desc->diff2 = '修改了 <strong><i>%s</i></strong>,区别为:' . "\n" . "<blockquote>%s</blockquote>" . "\n<div class='hidden'>%s</div>";
|
||||
$lang->action->desc->diff3 = '将文件名 %s 改为 %s 。' . "\n";
|
||||
@@ -173,6 +174,7 @@ $lang->action->label->editestimate = '编辑了工时';
|
||||
$lang->action->label->canceled = '取消了';
|
||||
$lang->action->label->finished = '完成了';
|
||||
$lang->action->label->paused = '暂停了';
|
||||
$lang->action->label->verified = '验收了';
|
||||
$lang->action->label->delayed = '延期';
|
||||
$lang->action->label->suspended = '挂起';
|
||||
$lang->action->label->login = '登录系统';
|
||||
@@ -266,5 +268,6 @@ $lang->action->search->label['editestimate'] = $lang->action->label->edit
|
||||
$lang->action->search->label['canceled'] = $lang->action->label->canceled;
|
||||
$lang->action->search->label['finished'] = $lang->action->label->finished;
|
||||
$lang->action->search->label['paused'] = $lang->action->label->paused;
|
||||
$lang->action->search->label['verified'] = $lang->action->label->verified;
|
||||
$lang->action->search->label['login'] = $lang->action->label->login;
|
||||
$lang->action->search->label['logout'] = $lang->action->label->logout;
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#kanbanWrapper tbody td {vertical-align: top; padding: 6px}
|
||||
#kanbanWrapper tbody th {background: #f1f1f1}
|
||||
#kanbanWrapper .board-shadow {height: 0; opacity: 0; transition: opacity 0.2s;}
|
||||
#kanbanWrapper tbody tr.dragging td.col-droppable {background: #fff4e5}
|
||||
#kanbanWrapper tbody tr.dragging td.col-droppable.drop-to {background: #ffeacc}
|
||||
#kanbanWrapper tbody tr.dragging td.col-droppable.drop-to .board-story + .board-shadow {margin-top: 6px;}
|
||||
#kanbanWrapper tbody tr.dragging td.col-droppable.drop-to .board-shadow {height: 28px; background: #999; background: rgba(0,0,0,0.35); opacity: 1;}
|
||||
@@ -56,12 +55,12 @@
|
||||
.story-pri.pri-4 {background-color:#795523;}
|
||||
|
||||
.board-story {color: #dd7503; background-color: #FFF3E0;}
|
||||
.board-story.stage-projected {color:#777;}
|
||||
.board-story.stage-developing {color:#D2322D; background-color: #FFEBEE;}
|
||||
.board-story.stage-developed {color:#229F24; background-color: #E8F5E9;}
|
||||
.board-story.stage-testing {color:#EF6C00; background-color: #FFF3E0;}
|
||||
.board-story.stage-tested {color:#827717; background-color: #F9FBE7}
|
||||
.board-story.stage-released {color:#9C27B0; background-color: #F3E5F5}
|
||||
.board-story.board-story-projected {color:#777;}
|
||||
.board-story.board-story-developing {color:#D2322D; background-color: #FFEBEE;}
|
||||
.board-story.board-story-developed {color:#229F24; background-color: #E8F5E9;}
|
||||
.board-story.board-story-testing {color:#EF6C00; background-color: #FFF3E0;}
|
||||
.board-story.board-story-tested {color:#827717; background-color: #F9FBE7}
|
||||
.board-story.board-story-released {color:#9C27B0; background-color: #F3E5F5}
|
||||
|
||||
.affix {position:fixed; top:0px; width:95%;z-index:1030;}
|
||||
#kanbanHeader.affix {box-shadow: 0 3px 10px rgba(0,0,0,.1);}
|
||||
|
||||
@@ -16,12 +16,14 @@
|
||||
<?php js::set('moduleID', ($type == 'byModule' ? $param : 0));?>
|
||||
<?php js::set('productID', ($type == 'byProduct' ? $param : 0));?>
|
||||
<?php js::set('confirmUnlinkStory', $lang->project->confirmUnlinkStory)?>
|
||||
<div id='titlebar'>
|
||||
<div class='heading'><?php echo html::icon($lang->icons['story']);?> <?php echo $lang->project->story;?></div>
|
||||
<div id='featurebar'>
|
||||
<ul class='nav'>
|
||||
<li class='active'><?php if(common::hasPriv('project', 'story')) echo html::a($this->createLink('project', 'story', "project=$project->id"), $lang->project->story);?></li>
|
||||
<li><?php if(common::hasPriv('project', 'storykanban')) echo html::a($this->createLink('project', 'storykanban', "project=$project->id"), $lang->project->kanban);?></li>
|
||||
</ul>
|
||||
<div class='actions'>
|
||||
<div class='btn-group'>
|
||||
<?php
|
||||
common::printIcon('project', 'storyKanban', "project=$project->id", '', 'button', 'columns', '', '', '', '', $lang->project->kanban);
|
||||
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc", '', 'button', '', '', 'export');
|
||||
|
||||
$this->lang->story->create = $this->lang->project->createStory;
|
||||
|
||||
@@ -10,12 +10,14 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('confirmUnlinkStory', $lang->project->confirmUnlinkStory)?>
|
||||
<div id='titlebar'>
|
||||
<div class='heading'><?php echo html::icon($lang->icons['story']);?> <?php echo $lang->project->story;?></div>
|
||||
<div id='featurebar'>
|
||||
<ul class='nav'>
|
||||
<li><?php if(common::hasPriv('project', 'story')) echo html::a($this->createLink('project', 'story', "project=$project->id"), $lang->project->story);?></li>
|
||||
<li class='active'><?php if(common::hasPriv('project', 'storykanban')) echo html::a($this->createLink('project', 'storykanban', "project=$project->id"), $lang->project->kanban);?></li>
|
||||
</ul>
|
||||
<div class='actions'>
|
||||
<div class='btn-group'>
|
||||
<?php
|
||||
common::printIcon('project', 'story', "project=$project->id", '', 'button', 'list', '', '', '', '', $lang->project->story);
|
||||
common::printIcon('story', 'export', "productID=$productID&orderBy=id_desc", '', 'button', '', '', 'export');
|
||||
|
||||
$this->lang->story->create = $this->lang->project->createStory;
|
||||
@@ -43,15 +45,12 @@ $account = $this->app->user->account
|
||||
<table class='boards-layout table' id='kanbanHeader'>
|
||||
<thead>
|
||||
<tr>
|
||||
<?php $endCol = array_pop($cols);?>
|
||||
<?php foreach ($cols as $col):?>
|
||||
<th class='col-<?php echo $col?>'><?php echo $lang->story->stageList[$col];?></th>
|
||||
<?php endforeach;?>
|
||||
<th class='col-<?php echo $endCol?>'><?php echo $lang->story->stageList[$endCol];?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<?php $cols[] = $endCol;?>
|
||||
<table class='boards-layout table active-disabled table-bordered' id='kanbanWrapper'>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -64,7 +63,7 @@ $account = $this->app->user->account
|
||||
<td class='col-droppable col-<?php echo $col?>' data-id='<?php echo $col?>'>
|
||||
<?php if(!empty($stories[$col])):?>
|
||||
<?php foreach($stories[$col] as $story):?>
|
||||
<div class='board board-story board-story-<?php echo $col ?>;?>' data-id='<?php echo $story->id?>' id='task-<?php echo $story->id?>'>
|
||||
<div class='board board-story board-story-<?php echo $col; ?>' data-id='<?php echo $story->id?>' id='story-<?php echo $story->id?>'>
|
||||
<div class='board-title'>
|
||||
<?php echo html::a($this->createLink('story', 'view', "story=$story->id", '', true), $story->title, '', 'class="kanbanFrame" title="' . $story->title . '"');?>
|
||||
<div class='board-actions'>
|
||||
@@ -80,10 +79,10 @@ $account = $this->app->user->account
|
||||
</div>
|
||||
</div>
|
||||
<div class='board-footer clearfix'>
|
||||
<span class='task-id board-id' title='<?php echo $lang->story->id?>'><?php echo $story->id?></span>
|
||||
<span class='task-pri pri-<?php echo $story->pri?>' title='<?php echo $lang->story->pri?>'></span>
|
||||
<span class='story-id board-id' title='<?php echo $lang->story->id?>'><?php echo $story->id?></span>
|
||||
<span class='story-pri pri-<?php echo $story->pri?>' title='<?php echo $lang->story->pri?>'></span>
|
||||
<div class='pull-right'>
|
||||
<span class='task-left' title='<?php echo $lang->story->status?>'><?php echo zget($this->lang->story->statusList, $story->status, '');?></span>
|
||||
<span class='text-left' title='<?php echo $lang->story->status?>'><?php echo zget($this->lang->story->statusList, $story->status, '');?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -933,9 +933,11 @@ class story extends control
|
||||
$storyIDList = array_unique($storyIDList);
|
||||
$allChanges = $this->story->batchChangeStage($storyIDList, $stage);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
$action = $stage == 'verified' ? 'Verified' : 'Edited';
|
||||
foreach($allChanges as $storyID => $changes)
|
||||
{
|
||||
$actionID = $this->action->create('story', $storyID, 'Edited');
|
||||
$actionID = $this->action->create('story', $storyID, $action);
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
$this->story->sendmail($storyID, $actionID);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user