This commit is contained in:
liumengyi
2021-12-21 17:16:46 +08:00
parent b20d55dc28
commit 6b7cbc74ab
8 changed files with 44 additions and 28 deletions
+5 -5
View File
@@ -76,11 +76,11 @@ body {background-color: #fff}
.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,
.region .kanban-item.has-color .info > .label-pri,
.region .kanban-item.has-color .info > .label-light {color: #FFFFFF;}
.region .kanban-item.has-color .info > .label-pri {border-color: #FFFFFF;}
.region .kanban-item .has-color .title,
.region .kanban-item .has-color .actions .icon-more-v,
.region .kanban-item .has-color .info > .label-pri,
.region .kanban-item .has-color .info > .label-light {color: #FFFFFF;}
.region .kanban-item .has-color .info > .label-pri {border-color: #FFFFFF;}
.region .kanban-item .item-more {position: absolute; right: 6px; top: 0px;}
.kanban-card {height: 60px !important}
+20 -21
View File
@@ -320,16 +320,8 @@ function renderKanbanItem(item, $item)
$user.html(renderUsersAvatar(assignedTo, item.id)).attr('title', title);
$item.css('background-color', item.color);
$item.toggleClass('has-color', item.color != '#FFFFFF');
if(item.color == '#FFFFFF')
{
$item.find('.info > .label-light').css('background-color', '#F2F2F2');
}
else
{
var colors = {'#E01B1B': '#DD5858', '#F7B500': '#ECC046', '#288427': '#609F60'}
$item.find('.info > .label-light').css('background-color', colors[item.color]);
}
$item.toggleClass('has-color', item.color != '#fff');
$item.find('.info > .label-light').css('background-color', item.color);
}
/**
@@ -385,7 +377,7 @@ function moveCard(cardID, toColID, kanbanID, regionID)
success: function(data)
{
regions = data;
updateRegion(regionID, data[regionID].groups[0]);
updateRegion(regionID, data[regionID]);
},
error: function(xhr, status, error)
{
@@ -417,7 +409,7 @@ function setCardColor(cardID, color, kanbanID, regionID)
success: function(data)
{
regions = data;
updateRegion(regionID, data[regionID].groups[0]);
updateRegion(regionID, data[regionID]);
},
error: function(xhr, status, error)
{
@@ -427,7 +419,7 @@ function setCardColor(cardID, color, kanbanID, regionID)
}
/**
* Update a region
* Update a region.
*
* @param int regionID
* @param array regionData
@@ -438,12 +430,12 @@ function updateRegion(regionID, regionData = [])
{
if(!regionID) return false;
var $kanban = $('#kanban'+ regionID).kanban();
var $region = $('#kanban'+ regionID).kanban();
if(!$kanban.length) return false;
if(!regionData) regionData = regions[regionID].groups[0];
if(!$region.length) return false;
if(!regionData) regionData = regions[regionID];
$kanban.data('zui.kanban').render(regionData);
$region.data('zui.kanban').render(regionData.groups);
return true;
}
@@ -691,7 +683,7 @@ function createLaneMenu(options)
if(!privs.length) return [];
var items = [];
if(privs.includes('setLane')) items.push({label: kanbanLang.editLane, icon: 'edit', url: createLink('kanban', 'setLane', 'laneID=' + lane.id + '&executionID=0&from=kanban'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '635px'}});
if(privs.includes('setLane')) items.push({label: kanbanLang.setLane, icon: 'edit', url: createLink('kanban', 'setLane', 'laneID=' + lane.id + '&executionID=0&from=kanban'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '635px'}});
if(privs.includes('deleteLane')) items.push({label: kanbanLang.deleteLane, icon: 'trash', url: createLink('kanban', 'deleteLane', 'lane=' + lane.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbanlaneLang.confirmDelete, 'data-confirmDetail': kanbanlaneLang.confirmDeleteDetail, 'target': 'hiddenwin'}});
var bounds = options.$trigger[0].getBoundingClientRect();
@@ -714,13 +706,20 @@ function createCardMenu(options)
var items = [];
if(privs.includes('editCard')) items.push({label: kanbanLang.editCard, icon: 'edit', url: createLink('kanban', 'editCard', 'cardID=' + card.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}});
if(privs.includes('archiveCard')) items.push({label: kanbanLang.archiveCard, icon: 'card-archive', url: createLink('kanban', 'archiveCard', 'cardID=' + card.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
if(privs.includes('archiveCard') && kanban.archived == '0') items.push({label: kanbanLang.archiveCard, icon: 'card-archive', url: createLink('kanban', 'archiveCard', 'cardID=' + card.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
if(privs.includes('copyCard')) items.push({label: kanbanLang.copyCard, icon: 'copy', url: createLink('kanban', 'copyCard', 'cardID=' + card.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
if(privs.includes('deleteCard')) items.push({label: kanbanLang.deleteCard, icon: 'trash', url: createLink('kanban', 'deleteCard', 'cardID=' + card.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbancolumnLang.confirmDelete, 'data-confirmDetail': kanbancolumnLang.confirmDeleteDetail, 'target': 'hiddenwin'}});
if(privs.includes('moveCard'))
{
var moveCardItems = [];
var moveColumns = regions[options.$trigger.closest('.region').data('id')].groups[0].columns;
var moveColumns = [];
regions[options.$trigger.closest('.region').data('id')].groups.forEach(function(group){
if(group.id == options.$trigger.closest('.kanban-board').data('id'))
{
moveColumns = group.columns;
break;
}
});
var parentColumns = [];
for(let i = moveColumns.length-1 ; i >= 0 ; i -- )
{
@@ -767,7 +766,7 @@ function createColumnMenu(options)
items.push({label: kanbanLang.createColumnOnRight, icon: 'col-add-right', url: createLink('kanban', 'createColumn', 'columnID=' + column.id + '&position=right'), className: 'iframe', attrs: {'data-toggle': 'modal'}});
}
if(privs.includes('copyColumn')) items.push({label: kanbanLang.copyColumn, icon: 'copy', url: createLink('kanban', 'copyColumn', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal'}});
if(privs.includes('archiveColumn')) items.push({label: kanbanLang.archiveColumn, icon: 'card-archive', url: createLink('kanban', 'archiveColumn', 'columnID=' + column.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbancolumnLang.confirmArchive, 'data-confirmDetail': kanbancolumnLang.confirmArchiveDetail, 'data-confirmButton': lang.archive, 'data-confirming': lang.archiving}});
if(privs.includes('archiveColumn') && kanban.archived == '0') items.push({label: kanbanLang.archiveColumn, icon: 'card-archive', url: createLink('kanban', 'archiveColumn', 'columnID=' + column.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbancolumnLang.confirmArchive, 'data-confirmDetail': kanbancolumnLang.confirmArchiveDetail, 'data-confirmButton': lang.archive, 'data-confirming': lang.archiving}});
if(privs.includes('deleteColumn')) items.push({label: kanbanLang.deleteColumn, icon: 'trash', url: createLink('kanban', 'deleteColumn', 'columnID=' + column.id), className: 'confirmer', attrs: {'data-confirmTitle': kanbancolumnLang.confirmDelete, 'data-confirmDetail': kanbancolumnLang.confirmDeleteDetail, 'target': 'hiddenwin'}});
var bounds = options.$trigger[0].getBoundingClientRect();
+4
View File
@@ -47,6 +47,7 @@ $lang->kanban->custom = 'Custom';
/* Fields. */
$lang->kanban->space = 'Space';
$lang->kanban->name = 'Name';
$lang->kanban->archived = 'Archive';
$lang->kanban->owner = 'Owner';
$lang->kanban->team = 'Team';
$lang->kanban->desc = 'Description';
@@ -75,6 +76,9 @@ $lang->kanban->aclGroup['private'] = 'Private';
$lang->kanban->aclList['open'] = 'Open (Accessible with space view permissions)';
$lang->kanban->aclList['private'] = 'Private (For the kanban team, whitelist members and space owner only)';
$lang->kanban->enableArchived['0'] = 'Enable';
$lang->kanban->enableArchived['1'] = 'No Enable';
$lang->kanban->type = array();
$lang->kanban->type['all'] = "All KanBan";
$lang->kanban->type['story'] = "Story KanBan";
+5 -1
View File
@@ -15,7 +15,7 @@ $lang->kanban->editRegion = '编辑区域';
$lang->kanban->sortRegion = '区域排序';
$lang->kanban->deleteRegion = '删除区域';
$lang->kanban->createLane = '创建泳道';
$lang->kanban->editLane = '编辑泳道';
$lang->kanban->editLane = '泳道设置';
$lang->kanban->sortLane = '泳道排序';
$lang->kanban->deleteLane = '删除泳道';
$lang->kanban->createColumn = '创建看板列';
@@ -47,6 +47,7 @@ $lang->kanban->custom = '自定义';
/* Fields. */
$lang->kanban->space = '所属空间';
$lang->kanban->name = '看板名称';
$lang->kanban->archived = '归档功能';
$lang->kanban->owner = '负责人';
$lang->kanban->team = '团队';
$lang->kanban->desc = '看板描述';
@@ -75,6 +76,9 @@ $lang->kanban->aclList['private'] = '私有(看板团队成员、白名单、
$lang->kanban->aclGroup['open'] = '公开';
$lang->kanban->aclGroup['private'] = '私有';
$lang->kanban->enableArchived['0'] = '启用';
$lang->kanban->enableArchived['1'] = '不启用';
$lang->kanban->type = array();
$lang->kanban->type['all'] = "综合看板";
$lang->kanban->type['story'] = "{$lang->SRCommon}看板";
+4
View File
@@ -27,6 +27,10 @@
<th><?php echo $lang->kanban->name;?></th>
<td><?php echo html::input('name', '', "class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->kanban->archived;?></th>
<td><?php echo html::radio('archived', $lang->kanban->enableArchived, '0');?></td>
</tr>
<tr>
<th><?php echo $lang->kanban->owner;?></th>
<td><?php echo html::select('owner', $users, '', "class='form-control chosen'");?></td>
+4
View File
@@ -27,6 +27,10 @@
<th><?php echo $lang->kanban->name;?></th>
<td><?php echo html::input('name', $kanban->name, "class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->kanban->archived;?></th>
<td><?php echo html::radio('archived', $lang->kanban->enableArchived, $kanban->archived);?></td>
</tr>
<tr>
<th><?php echo $lang->kanban->owner;?></th>
<td><?php echo html::select('owner', $users, $kanban->owner, "class='form-control chosen'");?></td>
+1 -1
View File
@@ -15,7 +15,7 @@
<div class='center-block'>
<div class='main-header'>
<h2>
<?php echo $lang->kanban->editLane;?>
<?php echo $lang->kanban->setLane;?>
</h2>
</div>
<form class="load-indicator main-form form-ajax" method='post' target='hiddenwin'>
+1
View File
@@ -18,6 +18,7 @@ $laneCount = 0;
foreach($regions as $region) $laneCount += $region->laneCount;
js::set('regions', $regions);
js::set('kanban', $kanban);
js::set('kanbanLang', $lang->kanban);
js::set('kanbanlaneLang', $lang->kanbanlane);
js::set('kanbancolumnLang', $lang->kanbancolumn);