Merge branch 'kanban' of https://gitlab.zcorp.cc/easycorp/zentaopms into sprint/177_tianshujie_close

This commit is contained in:
tianshujie
2021-12-15 13:32:09 +08:00
11 changed files with 81 additions and 61 deletions
+10 -9
View File
@@ -58,15 +58,16 @@ body {background-color: #fff}
.region .kanban-lane-items {overflow: auto; padding-bottom: 10px;}
.region .kanban-item {position: relative}
.region .kanban-item > .title {display: block; max-height: 38px; overflow: hidden; color: inherit; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
.region .kanban-item > .title:hover {color: #2272eb}
.region .kanban-item > .info {margin-top: 5px; position: relative;}
.region .kanban-item > .info > .pri {height: 14px; border-width: 1px; font-size: 12px; line-height: 12px; min-width: 14px; padding: 0 1px;}
.region .kanban-item > .info > .time {margin-left: 10px; font-size: 12px}
.region .kanban-item > .info > .user {position: absolute; right: 0; top: 0}
.region .kanban-item > .actions {position: absolute; top: 0px; right: 4px; opacity: 0;}
.region .kanban-item > .actions > a {display: block; float: left; width: 20px; height: 20px; line-height: 20px; text-align: center; border-radius: 4px; opacity: .7;}
.region .kanban-item > .actions > a:hover {background-color: rgba(0,0,0,.075); opacity: 1;}
.region .kanban-item > .kanban-card > .title {display: block; max-height: 38px; overflow: hidden; color: inherit; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
.region .kanban-item > .kanban-card > .title:hover {color: #2272eb}
.region .kanban-item > .kanban-card > .info {margin-top: 5px; position: relative;}
.region .kanban-item > .kanban-card > .info > .pri {height: 14px; border-width: 1px; font-size: 12px; line-height: 12px; min-width: 14px; padding: 0 1px;}
.region .kanban-item > .kanban-card > .info > .estimate{margin-left: 10px; color: #999}
.region .kanban-item > .kanban-card > .info > .time {margin-left: 10px; font-size: 12px; background: rgb(242, 242, 242)}
.region .kanban-item > .kanban-card > .info > .user {position: absolute; right: 0; top: 0}
.region .kanban-item > .kanban-card > .actions {position: absolute; top: 0px; right: 4px; opacity: 0;}
.region .kanban-item > .kanban-card > .actions > a {display: block; float: left; width: 20px; height: 20px; line-height: 20px; text-align: center; border-radius: 4px; opacity: .7;}
.region .kanban-item > .kanban-card > .actions > a:hover {background-color: rgba(0,0,0,.075); opacity: 1;}
.region .kanban-item:hover > .actions {opacity: 1;}
.region .kanban-item.has-color .title,
.region .kanban-item.has-color .actions .icon-more-v,
+1 -1
View File
@@ -23,7 +23,7 @@ $(function()
function setWIPLimit()
{
var count = $('#WIPCount').val();
if($('#noLimit').attr('checked') == 'checked') count = -1;;
if($('#noLimit').attr('checked') == 'checked') count = -1;
$('#limit').val(count);
}
+20 -3
View File
@@ -26,7 +26,7 @@ function fullScreen()
{
var afterEnterFullscreen = function()
{
$('#mainContent').addClass('scrollbar-hover');
$('#kanban').css('background', '#fff');
$.cookie('isFullScreen', 1);
};
@@ -222,6 +222,7 @@ function renderKanbanItem(item, $item)
[
'<div class="info">',
'<span class="pri"></span>',
'<span class="estimate"></span>',
'<span class="time label label-light"></span>',
'<div class="user"></div>',
'</div>'
@@ -229,6 +230,8 @@ function renderKanbanItem(item, $item)
$item.data('card', item);
$info.children('.estimate').text(item.estimate + kanbancardLang.lblHour);
$info.children('.pri')
.attr('class', 'pri label-pri label-pri-' + item.pri)
.text(item.pri);
@@ -237,9 +240,9 @@ function renderKanbanItem(item, $item)
if(item.end && item.end !== '0000-00-00')
{
var end = $.zui.createDate(item.end);
var today = $.zui.createDate(today);
var today = new Date();
var isExpired = end.getTime() < today.getTime();
var dateFormat = (today.getFullYear() === end.getFullYear() ? 'MM-dd ' : 'yyyy-MM-dd ') + kanbancardLang.end;
var dateFormat = (today.getFullYear() === end.getFullYear() ? 'MM-dd ' : 'yyyy-MM-dd ') + kanbancardLang.deadlineAB;
$time.text($.zui.formatDate(end, dateFormat))
.toggleClass('text-red', isExpired)
.show();
@@ -599,6 +602,13 @@ function processMinusBtn()
}
}
/**
* Create lane menu.
*
* @param object $options
* @access public
* @return void
*/
function createLaneMenu(options)
{
var lane = options.$trigger.closest('.kanban-lane').data('lane');
@@ -614,6 +624,13 @@ function createLaneMenu(options)
return items;
}
/**
* Create card menu;
*
* @param object $options
* @access public
* @return void
*/
function createCardMenu(options)
{
var card = options.$trigger.closest('.kanban-item').data('item');
+18 -17
View File
@@ -40,23 +40,23 @@ $lang->kanban->archiveColumn = 'Archive Column';
$lang->kanban->spaceCommon = 'Kanban Space';
/* Fields. */
$lang->kanban->space = 'Space';
$lang->kanban->name = 'Name';
$lang->kanban->owner = 'Owner';
$lang->kanban->team = 'Team';
$lang->kanban->desc = 'Description';
$lang->kanban->acl = 'ACL';
$lang->kanban->whitelist = 'White List';
$lang->kanban->status = 'Status';
$lang->kanban->createdBy = 'Created By';
$lang->kanban->createdDate = 'Created Date';
$lang->kanban->lastEditedBy = 'Edited By';
$lang->kanban->lastEditedDate = 'Edited Date';
$lang->kanban->closed = 'Closed';
$lang->kanban->closedBy = 'Closed By';
$lang->kanban->closedDate = 'Closed Date';
$lang->kanban->empty = 'No Kanban';
$lang->kanban->teamSumCount = '%s people in total';
$lang->kanban->space = 'Space';
$lang->kanban->name = 'Name';
$lang->kanban->owner = 'Owner';
$lang->kanban->team = 'Team';
$lang->kanban->desc = 'Description';
$lang->kanban->acl = 'ACL';
$lang->kanban->whitelist = 'White List';
$lang->kanban->status = 'Status';
$lang->kanban->createdBy = 'Created By';
$lang->kanban->createdDate = 'Created Date';
$lang->kanban->lastEditedBy = 'Edited By';
$lang->kanban->lastEditedDate = 'Edited Date';
$lang->kanban->closed = 'Closed';
$lang->kanban->closedBy = 'Closed By';
$lang->kanban->closedDate = 'Closed Date';
$lang->kanban->empty = 'No Kanban';
$lang->kanban->teamSumCount = '%s people in total';
$lang->kanban->createColumnOnLeft = 'Create Column On Left';
$lang->kanban->createColumnOnRight = 'Create Column On Right';
@@ -252,6 +252,7 @@ $lang->kanbancard->archivedBy = 'Archived By';
$lang->kanbancard->archivedDate = 'Archived Date';
$lang->kanbancard->lblHour = 'h';
$lang->kanbancard->noAssigned = 'No Assigned';
$lang->kanbancard->deadlineAB = 'DL';
$lang->kanbancard->priList[1] = 1;
$lang->kanbancard->priList[2] = 2;
+1
View File
@@ -252,6 +252,7 @@ $lang->kanbancard->archivedBy = '由谁归档';
$lang->kanbancard->archivedDate = '归档时间';
$lang->kanbancard->lblHour = 'h';
$lang->kanbancard->noAssigned = '未指派';
$lang->kanbancard->deadlineAB = '截止';
$lang->kanbancard->priList[1] = 1;
$lang->kanbancard->priList[2] = 2;
+1
View File
@@ -320,6 +320,7 @@ class kanbanModel extends model
->add('assignedDate', $now)
->trim('name')
->setDefault('estimate', 0)
->join('assignedTo', ',')
->setIF(is_numeric($this->post->estimate), 'estimate', (float)$this->post->estimate)
->remove('uid')
->get();
+24 -27
View File
@@ -19,36 +19,11 @@
</div>
<form class='main-form form-ajax' method='post' enctype='multipart/form-data' id='dataform'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->kanbancard->estimate;?></th>
<td>
<div class="input-group">
<input type="text" name="estimate" id="estimate" value="" class="form-control" autocomplete="off">
<span class="input-group-addon"><?php echo $lang->kanbancard->lblHour;?></span>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->kanbancard->assignedTo;?></th>
<td>
<?php echo html::select('assignedTo', $users, $app->user->account, "class='form-control chosen'");?>
</td>
</tr>
<tr>
<th><?php echo $lang->kanbancard->beginAndEnd;?></th>
<td colspan='2'>
<div class='input-group'>
<?php echo html::input('begin', '', "class='form-control form-date' placeholder='{$lang->kanbancard->begin}'");?>
<span class='input-group-addon fix-border'>~</span>
<?php echo html::input('end', '', "class='form-control form-date' placeholder='{$lang->kanbancard->end}'");?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->kanbancard->name;?></th>
<td colspan='2' id='nameBox'>
<td colspan='2'>
<div class='input-group title-group'>
<?php echo html::input('name', '', "class='form-control'");?>
<?php echo html::input('name', '', "class='form-control required'");?>
<span class="input-group-addon fix-border br-0"><?php echo $lang->kanbancard->pri;?></span>
<div class="input-group-btn pri-selector" data-type="pri">
<button type="button" class="btn dropdown-toggle br-0" data-toggle="dropdown">
@@ -58,6 +33,28 @@
<?php echo html::select('pri', $lang->kanbancard->priList, 3, "class='form-control' data-provide='labelSelector' data-label-class='label-pri'");?>
</div>
</div>
<div class='table-col w-120px'>
<div class="input-group">
<span class="input-group-addon fix-border br-0"><?php echo $lang->kanbancard->estimate;?></span>
<input type="text" name="estimate" id="estimate" class="form-control" autocomplete="off" placeholder=<?php echo $lang->kanbancard->lblHour;?>>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->kanbancard->assignedTo;?></th>
<td colspan='2'>
<?php echo html::select('assignedTo', $users, $app->user->account, "class='form-control chosen' multiple");?>
</td>
</tr>
<tr>
<th><?php echo $lang->kanbancard->beginAndEnd;?></th>
<td colspan='2'>
<div class='input-group'>
<?php echo html::input('begin', '', "class='form-control form-date' placeholder='{$lang->kanbancard->begin}'");?>
<span class='input-group-addon fix-border'>~</span>
<?php echo html::input('end', '', "class='form-control form-date' placeholder='{$lang->kanbancard->end}'");?>
</div>
</td>
</tr>
+4 -1
View File
@@ -43,7 +43,10 @@
</tr>
<tr>
<th><?php echo $lang->kanbancolumn->color;?></th>
<td><div id='color-picker'></div></td>
<td>
<div id='color-picker'></div>
<?php echo html::input('color', '#7ec5ff', "class='hidden'");?>
</td>
</tr>
<tr>
<td colspan='2' class='form-actions text-center'>
-1
View File
@@ -12,7 +12,6 @@ js::set('kanbancolumnLang', $lang->kanbancolumn);
js::set('kanbancardLang', $lang->kanbancard);
js::set('kanbanID', $kanban->id);
js::set('laneCount', $laneCount);
js::set('today', helper::today());
js::set('userList', $userList);
js::set('priv',
+1 -1
View File
@@ -10,7 +10,7 @@
* @link http://www.zentao.net
*/
$lang->programplan->common = 'Program Plan';
$lang->programplan->browse = 'Program Plan';
$lang->programplan->browse = 'Gantt Chart';
$lang->programplan->gantt = 'Gantt Chart';
$lang->programplan->list = 'Stage List';
$lang->programplan->create = 'Create';
+1 -1
View File
@@ -10,7 +10,7 @@
* @link http://www.zentao.net
*/
$lang->programplan->common = '项目阶段';
$lang->programplan->browse = '浏览阶段计划';
$lang->programplan->browse = '浏览甘特图';
$lang->programplan->gantt = '甘特图';
$lang->programplan->list = '阶段列表';
$lang->programplan->create = '设置阶段';