* Remove useless code, add render avatar.
This commit is contained in:
@@ -391,7 +391,6 @@ class kanban extends control
|
||||
public function view($kanbanID, $regionID = '')
|
||||
{
|
||||
$kanban = $this->kanban->getByID($kanbanID);
|
||||
$users = $this->loadModel('user')->getPairs('noletter|nodeleted');
|
||||
|
||||
if(!$kanban)
|
||||
{
|
||||
@@ -402,22 +401,12 @@ class kanban extends control
|
||||
$kanbanIdList = $this->kanban->getCanViewObjects();
|
||||
if(!$this->app->user->admin and !in_array($kanbanID, $kanbanIdList)) return print(js::error($this->lang->kanban->accessDenied) . js::locate('back'));
|
||||
|
||||
$userList = array();
|
||||
$avatarPairs = $this->dao->select('account, avatar')->from(TABLE_USER)->where('deleted')->eq(0)->fetchPairs();
|
||||
foreach($avatarPairs as $account => $avatar)
|
||||
{
|
||||
if(!$avatar) continue;
|
||||
$userList[$account]['avatar'] = $avatar;
|
||||
}
|
||||
|
||||
$regions = $this->kanban->getRegionPairs($kanbanID);
|
||||
if(!$regionID) $regionID = $this->session->regionID ? $this->session->regionID : 'all';
|
||||
$regionID = !isset($regions[$regionID]) ? 'all' : $regionID;
|
||||
$this->session->set('regionID', $regionID, 'kanban');
|
||||
|
||||
$this->view->users = $users;
|
||||
$this->view->title = $this->lang->kanban->view;
|
||||
$this->view->userList = $userList;
|
||||
$this->view->kanban = $kanban;
|
||||
$this->view->regions = $regions;
|
||||
$this->view->kanbanList = $this->kanban->getKanbanData($kanbanID, $regionID == 'all' ? '' : array($regionID));
|
||||
|
||||
@@ -143,13 +143,13 @@ window.getItem = function(info)
|
||||
beginAndEnd = formatDate(begin) + ' ~ ' + formatDate(end);
|
||||
}
|
||||
|
||||
let avatar = "<span class='avatar rounded-full size-xs ml-1 " + (info.item.uavatar ? 'primary' : 'bg-lighter text-canvas') + "' title=" + info.item.realname + '>' + (info.item.uavatar ? info.item.uavatar : "<i class='icon icon-person'></i>");
|
||||
const avatar = renderAvatar(info.item.avatarList);
|
||||
|
||||
const content = `
|
||||
<div class='flex items-center'>
|
||||
<span class='pri-${info.item.pri}'>${info.item.pri}</span>
|
||||
<span class='date ml-1'>${beginAndEnd}</span>
|
||||
<div class='flex-1 flex justify-end'>${avatar}</div>
|
||||
<div class='flex-1 flex justify-end' title='${info.item.realnames}'>${avatar}</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -164,6 +164,28 @@ window.getItem = function(info)
|
||||
}
|
||||
}
|
||||
|
||||
function renderAvatar(avatarList)
|
||||
{
|
||||
if(avatarList.length == 0)
|
||||
{
|
||||
return '<div class="avatar rounded-full size-xs ml-1 primary" title="' + cardLang.noAssigned + '" style="background: #ccc"><i class="icon icon-person"></i></div>';
|
||||
}
|
||||
|
||||
let assignees = '<div class="avatar-group size-sm">';
|
||||
let count = 0;
|
||||
for(let avatar of avatarList)
|
||||
{
|
||||
if(count > 2) break;
|
||||
assignees += `<div class="avatar rounded-full size-xs ml-1 primary">${avatar}</div>`;
|
||||
count ++;
|
||||
}
|
||||
|
||||
if(count > 2) assignees += '<div class="avatar circle size-xs gray-pale">...</div>';
|
||||
assignees += '</div>';
|
||||
|
||||
return assignees;
|
||||
}
|
||||
|
||||
window.getItemActions = function(item)
|
||||
{
|
||||
return [{
|
||||
@@ -324,26 +346,26 @@ window.loadMore = function(type, regionID)
|
||||
|
||||
window.fullScreen = function()
|
||||
{
|
||||
var element = document.getElementById('kanbanList');
|
||||
var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen;
|
||||
let element = document.getElementById('kanbanList');
|
||||
let requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen;
|
||||
|
||||
if(requestMethod)
|
||||
{
|
||||
var afterEnterFullscreen = function()
|
||||
let afterEnterFullscreen = function()
|
||||
{
|
||||
$('#kanbanList').addClass('fullscreen').css('background', '#fff');
|
||||
window.hideAllAction();
|
||||
$.cookie.set('isFullScreen', 1);
|
||||
};
|
||||
|
||||
var whenFailEnterFullscreen = function()
|
||||
let whenFailEnterFullscreen = function()
|
||||
{
|
||||
exitFullScreen();
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
var result = requestMethod.call(element);
|
||||
let result = requestMethod.call(element);
|
||||
if(result && (typeof result.then === 'function' || result instanceof window.Promise))
|
||||
{
|
||||
result.then(afterEnterFullscreen).catch(whenFailEnterFullscreen);
|
||||
|
||||
+31
-19
@@ -1236,9 +1236,9 @@ class kanbanModel extends model
|
||||
->fetchAll();
|
||||
|
||||
$actions = array('editCard', 'archiveCard', 'deleteCard', 'moveCard', 'setCardColor', 'viewCard', 'sortCard', 'viewExecution', 'viewPlan', 'viewRelease', 'viewBuild', 'viewTicket', 'activateCard', 'finishCard');
|
||||
$userAvatars = $this->loadModel('user')->getAvatarPairs();
|
||||
$users = $this->loadModel('user')->getPairs('noletter|nodeleted');
|
||||
$cardGroup = array();
|
||||
$avatarPairs = $this->loadModel('user')->getAvatarPairs();
|
||||
$users = $this->loadModel('user')->getPairs('noletter');
|
||||
foreach($cellList as $cell)
|
||||
{
|
||||
$cardIdList = array_filter(explode(',', $cell->cards));
|
||||
@@ -1251,24 +1251,36 @@ class kanbanModel extends model
|
||||
$card = zget($cards, $cardID);
|
||||
|
||||
$item = array();
|
||||
$item['column'] = $cell->column;
|
||||
$item['lane'] = $cell->lane;
|
||||
$item['title'] = htmlspecialchars_decode($card->name);
|
||||
$item['id'] = $card->id;
|
||||
$item['name'] = $card->id;
|
||||
$item['pri'] = $card->pri;
|
||||
$item['begin'] = $card->begin;
|
||||
$item['end'] = $card->end;
|
||||
$item['group'] = $card->group;
|
||||
$item['region'] = $card->region;
|
||||
$item['color'] = $card->color;
|
||||
$item['progress'] = $card->progress;
|
||||
$item['realname'] = zget($users, $card->assignedTo, '');
|
||||
$item['fromType'] = $card->fromType;
|
||||
$item['column'] = $cell->column;
|
||||
$item['lane'] = $cell->lane;
|
||||
$item['title'] = htmlspecialchars_decode($card->name);
|
||||
$item['id'] = $card->id;
|
||||
$item['name'] = $card->id;
|
||||
$item['pri'] = $card->pri;
|
||||
$item['begin'] = $card->begin;
|
||||
$item['end'] = $card->end;
|
||||
$item['group'] = $card->group;
|
||||
$item['region'] = $card->region;
|
||||
$item['color'] = $card->color;
|
||||
$item['progress'] = $card->progress;
|
||||
$item['assignedTo'] = $card->assignedTo;
|
||||
$item['fromType'] = $card->fromType;
|
||||
$item['avatarList'] = array();
|
||||
$item['realnames'] = '';
|
||||
|
||||
$userAvatar = zget($userAvatars, $card->assignedTo, '');
|
||||
$userAvatar = $userAvatar ? "<img src='$userAvatar'/>" : strtoupper(mb_substr($card->assignedTo, 0, 1, 'utf-8'));
|
||||
$item['uavatar'] = $userAvatar;
|
||||
if($card->assignedTo)
|
||||
{
|
||||
$assignedToList = explode(',', $card->assignedTo);
|
||||
foreach($assignedToList as $account)
|
||||
{
|
||||
if(!$account) continue;
|
||||
|
||||
$userAvatar = zget($avatarPairs, $account, '');
|
||||
$userAvatar = $userAvatar ? "<img src='$userAvatar'/>" : strtoupper(mb_substr($account, 0, 1, 'utf-8'));
|
||||
$item['avatarList'][] = $userAvatar;
|
||||
$item['realnames'] .= zget($users, $account, '') . ' ';
|
||||
}
|
||||
}
|
||||
|
||||
foreach($actions as $action)
|
||||
{
|
||||
|
||||
@@ -45,6 +45,8 @@ foreach($cards as $card)
|
||||
$assignedToBox[] = userAvatar(set::avatar($usersAvatar[$account]), set::account($account), set::realname($users[$account]), set::size('sm'));
|
||||
$count ++;
|
||||
}
|
||||
|
||||
if($count > 2) $assignedToBox[] = span(setClass('font-bold'), '...');
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user