* Finish task #56469.

This commit is contained in:
tianshujie
2022-06-09 13:24:58 +08:00
parent 196b78a0aa
commit 74f80b8d71
5 changed files with 95 additions and 26 deletions
+1 -1
View File
@@ -3831,7 +3831,7 @@ class execution extends control
if($lastEditedTime > $enterTime or $groupBy != 'default' or !empty($searchValue))
{
$kanbanGroup = $from == 'execution' ? $this->loadModel('kanban')->getExecutionKanban($executionID, $browseType, $groupBy) : $this->loadModel('kanban')->getRDKanban($executionID, $browseType, 'id_asc', 0, $groupBy, $searchValue);
$kanbanGroup = $from == 'execution' ? $this->loadModel('kanban')->getExecutionKanban($executionID, $browseType, $groupBy, $searchValue) : $this->loadModel('kanban')->getRDKanban($executionID, $browseType, 'id_asc', 0, $groupBy, $searchValue);
return print(json_encode($kanbanGroup));
}
}
+5
View File
@@ -62,3 +62,8 @@
.createButton {margin-right: 5px;}
.headerTop {top: 0px !important;}
.kanban-header-col>.actions>a {padding: 0px !important;}
#taskKanbanSearch.input-group {float: left; width: min-content;}
#teskKanbanSearchInput {width: 150px;}
#searchBox {display: none; width: 150px;}
.btn-link.querybox-toggle {background-color: rgba(0,0,0,0);}
+6 -16
View File
@@ -1562,14 +1562,9 @@ function calcColHeight(col, lane, colCards, colHeight, kanban)
*/
function resetRegionHeight(fold)
{
var laneCount = 0;
$('.kanban-lane').each(function()
{
laneCount ++;
if(laneCount > 1) return;
});
var laneCount = $('.kanban-lane').length;
if(laneCount > 1) return;
if(laneCount > 1 || $('.region').length > 0) return;
var regionHeaderHeight = $('.region-header').outerHeight();
if(fold == 'open')
@@ -1602,16 +1597,11 @@ function resetRegionHeight(fold)
*/
function toggleRDSearchBox()
{
rdSearchValue = '';
$('#rdSearchBox').toggle();
if($('#rdSearchBox').css('display') == 'block')
{
$(".querybox-toggle").css("color", "#0c64eb");
}
else
{
$(".querybox-toggle").css("color", "");
}
rdSearchValue = '';
var color = $('#rdSearchBox').css('display') == 'block' ? "#0c64eb" : "#3c495c";
$(".querybox-toggle").css("color", color);
}
/**
+73 -9
View File
@@ -1,3 +1,10 @@
/**
* Change view.
*
* @param string $view
* @access public
* @return void
*/
function changeView(view)
{
var link = createLink('execution', 'taskKanban', "executionID=" + executionID + '&type=' + view);
@@ -94,7 +101,8 @@ function renderStoryItem(item, $item, col)
.attr('href', $.createLink('story', 'view', 'storyID=' + item.id, '', true));
$title.appendTo($item);
}
$title.attr('title', item.title).find('.text').text(item.title);
var title = searchValue != '' ? "<span class='text'>" + item.title.replaceAll(searchValue, "<span class='text-danger'>" + searchValue + "</span>") + "</span>": "<span class='text'>" + item.title + "</span>";
$title.attr('title', item.title).find('.text').replaceWith(title);
}
if(scaleSize <= 2)
@@ -157,7 +165,8 @@ function renderBugItem(item, $item, col)
.attr('href', $.createLink('bug', 'view', 'bugID=' + item.id, '', true));
$title.appendTo($item);
}
$title.attr('title', item.title).find('.text').text(item.title);
var title = searchValue != '' ? "<span class='text'>" + item.title.replaceAll(searchValue, "<span class='text-danger'>" + searchValue + "</span>") + "</span>": "<span class='text'>" + item.title + "</span>";
$title.attr('title', item.title).find('.text').replaceWith(title);
}
if(scaleSize <= 2)
@@ -222,7 +231,8 @@ function renderTaskItem(item, $item, col)
.attr('href', $.createLink('task', 'view', 'taskID=' + item.id, '', true));
$title.appendTo($item);
}
$title.attr('title', item.name).find('.text').text(item.name);
var name = searchValue != '' ? "<span class='text'>" + item.name.replaceAll(searchValue, "<span class='text-danger'>" + searchValue + "</span>") + "</span>": "<span class='text'>" + item.name + "</span>";
$title.attr('title', item.name).find('.text').replaceWith(name);
}
if(scaleSize <= 2)
@@ -372,6 +382,18 @@ function updateKanban(kanbanID, data)
var $kanban = $('#kanban-' + kanbanID);
if(!$kanban.length) return;
if(data == null)
{
$("#kanbans").hide();
$("#emptyBox").removeClass('hidden');
return false;
}
else
{
$("#kanbans").show();
$("#emptyBox").addClass('hidden');
}
$kanban.data('zui.kanban').render(data);
resetKanbanHeight();
}
@@ -1245,12 +1267,7 @@ $('.panel-body').scroll(function()
*/
function resetKanbanHeight()
{
var laneCount = 0;
$('.kanban-lane').each(function()
{
laneCount ++;
if(laneCount > 1) return;
});
var laneCount = $('.kanban-lane').length;
if(laneCount > 1) return;
@@ -1270,3 +1287,50 @@ $(document).on('click', '.dropdown-menu', function()
{
$.zui.ContextMenu.hide();
});
/**
* Toggle kanban search box.
*
* @access public
* @return void
*/
function toggleSearchBox()
{
$('#searchBox').toggle();
searchValue = '';
var color = $('#searchBox').css('display') == 'block' ? "#0c64eb" : "#3c495c";
$(".querybox-toggle").css("color", color);
}
/**
* Search kanban cards.
*
* @param string value
* @access public
* @return void
*/
function searchCards(value)
{
searchValue = value;
$.get(createLink('execution', 'ajaxUpdateKanban', "executionID=" + executionID + "&entertime=0&browseType=" + browseType + "&groupBy=" + groupBy + '&from=execution&searchValue=' + value), function(data)
{
var kanbanData = $.parseJSON(data);
if(groupBy == 'default')
{
var kanbanLane = '';
for(var i in kanbanList)
{
if(kanbanList[i] == 'story') kanbanLane = kanbanData.story;
if(kanbanList[i] == 'bug') kanbanLane = kanbanData.bug;
if(kanbanList[i] == 'task') kanbanLane = kanbanData.task;
if(browseType == kanbanList[i] || browseType == 'all') updateKanban(kanbanList[i], kanbanLane);
}
}
else
{
updateKanban(browseType, kanbanGroup[groupBy]);
}
});
}
+10
View File
@@ -33,7 +33,13 @@
</span>
</div>
<div class='btn-toolbar pull-right'>
<div class="input-group" id="taskKanbanSearch">
<div class="input-control search-box" id="searchBox">
<input type="text" name="taskKanbanSearchInput" id="taskKanbanSearchInput" value="" class="form-control" oninput="searchCards(this.value)" placeholder="<?php echo $lang->execution->pleaseInput;?>">
</div>
</div>
<?php
echo html::a('javascript:toggleSearchBox()', "<i class='icon-search muted'></i> " . $lang->searchAB, '', "class='btn btn-link querybox-toggle'");
$link = $this->createLink('task', 'export', "execution=$executionID&orderBy=$orderBy&type=unclosed");
if(common::hasPriv('task', 'export')) echo html::a($link, "<i class='icon-export muted'></i> " . $lang->export, '', "class='btn btn-link iframe export' data-width='700'");
?>
@@ -123,6 +129,9 @@
<div class='panel' id='kanbanContainer'>
<div class='panel-body'>
<div id='kanbans'></div>
<div class='table-empty-tip hidden' id='emptyBox'>
<p><span class="text-muted"><?php echo $lang->kanban->empty?></span></p>
</div>
</div>
</div>
@@ -166,6 +175,7 @@
<?php js::set('browseType', $browseType);?>
<?php js::set('groupBy', $groupBy);?>
<?php js::set('productNum', $productNum);?>
<?php js::set('searchValue', '');?>
<?php
js::set('priv',
array(