* Refactor block ui of productList.

This commit is contained in:
liumengyi
2023-06-29 10:05:45 +08:00
parent e12832e9e6
commit 6932460d0a
8 changed files with 37 additions and 18 deletions
+3
View File
@@ -299,3 +299,6 @@ $config->block->modules['doc']->moreLinkList = new stdclass();
$config->block->modules['doc']->moreLinkList->docmycollection = 'doc|myspace|type=collect&libID=0&moduleID=0&browseType=all&param=0&orderBy=editedDate_desc';
$config->block->modules['doc']->moreLinkList->productdoc = 'doc|productspace|';
$config->block->modules['doc']->moreLinkList->projectdoc = 'doc|projectspace|';
$config->block->size = array();
$config->block->size['product']['list'] = array('2' => '6', '1' => '6');
+7 -7
View File
@@ -6,10 +6,10 @@ $config->block->product = new stdclass();
$config->block->product->dtable = new stdclass();
$config->block->product->dtable->fieldList = array();
$config->block->product->dtable->fieldList['name'] = array('name' => 'name', 'title' => $lang->product->name, 'type' => 'title', 'sortType' => 1, 'flex' => 1);
$config->block->product->dtable->fieldList['manager'] = array('name' => 'manager', 'title' => $lang->product->manager, 'type' => 'avatarBtn', 'sortType' => 1);
$config->block->product->dtable->fieldList['unclosedFeedback'] = array('name' => 'unclosedFeedback', 'title' => $lang->block->productlist->unclosedFeedback, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['activatedStory'] = array('name' => 'activatedStory', 'title' => $lang->block->productlist->activatedStory, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['storyCompleteRate'] = array('name' => 'storyCompleteRate', 'title' => $lang->block->productlist->storyCompleteRate, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['plan'] = array('name' => 'plan', 'title' => $lang->product->plan, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['activatedBug'] = array('name' => 'activatedBug', 'title' => $lang->block->productlist->activatedBug, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['release'] = array('name' => 'release', 'title' => $lang->product->release, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['PO'] = array('name' => 'PO', 'title' => $lang->product->manager, 'type' => 'avatarBtn', 'sortType' => 1);
if($config->edition != 'open') $config->block->product->dtable->fieldList['unclosedFeedback'] = array('name' => 'unclosedFeedback', 'title' => $lang->block->productlist->unclosedFeedback, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['activeStories'] = array('name' => 'activeStories', 'title' => $lang->block->productlist->activatedStory, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['progress'] = array('name' => 'progress', 'title' => $lang->block->productlist->storyCompleteRate, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['plans'] = array('name' => 'plans', 'title' => $lang->product->plan, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['activeBugs'] = array('name' => 'activeBugs', 'title' => $lang->block->productlist->activatedBug, 'type' => 'number', 'sortType' => 1);
$config->block->product->dtable->fieldList['releases'] = array('name' => 'releases', 'title' => $lang->product->release, 'type' => 'number', 'sortType' => 1);
+1
View File
@@ -44,6 +44,7 @@ class block extends control
$formData->vision = $this->config->vision;
$formData->params = json_encode($formData->params);
if(!empty($this->config->block->size[$formData->module][$formData->code][$formData->width])) $formData->height = $this->config->block->size[$formData->module][$formData->code][$formData->width];
$formData->top = $this->block->getNewTop($dashboard);
$this->block->create($formData);
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
+1 -1
View File
@@ -348,7 +348,7 @@ $lang->block->typeList->story['reviewedBy'] = '我评审过';
$lang->block->typeList->story['closedBy'] = '由我关闭';
$lang->block->typeList->product['noclosed'] = '未关闭';
$lang->block->typeList->product['closed'] = '已关闭';
$lang->block->typeList->product['closed'] = '结束';
$lang->block->typeList->product['all'] = '全部';
$lang->block->typeList->product['involved'] = '我参与';
+12
View File
@@ -392,4 +392,16 @@ class blockModel extends model
return !dao::isError();
}
/**
* Get new block top.
*
* @param string $dashboard
* @access public
* @return int
*/
public function getNewTop($dashboard): int
{
return $this->dao->select('max(`top` + `height`) AS top')->from(TABLE_BLOCK)->where('dashboard')->eq($dashboard)->andWhere('hidden')->eq('0')->fetch('top');
}
}
+10 -8
View File
@@ -13,27 +13,29 @@ namespace zin;
if(!$longBlock)
{
unset($config->block->product->dtable->fieldList['unclosedFeedback']);
unset($config->block->product->dtable->fieldList['storyCompleteRate']);
unset($config->block->product->dtable->fieldList['plan']);
unset($config->block->product->dtable->fieldList['activatedBug']);
unset($config->block->product->dtable->fieldList['progress']);
unset($config->block->product->dtable->fieldList['plans']);
unset($config->block->product->dtable->fieldList['activeBugs']);
}
foreach($productStats as $product)
{
if(!empty($product->PO))
{
$product->po = $product->PO;
$product->poName = zget($users, $product->PO);
$product->poAvatar = zget($userAvatars, $product->PO);
$product->poAccount = $product->PO;
$product->PO = zget($users, $product->PO);
$product->POAvatar = zget($userAvatars, $product->PO);
$product->POAccount = $product->PO;
}
}
panel
(
setClass('p-0'),
set::title($block->title),
set::bodyClass('p-0 no-shadow'),
dtable
(
set::shadow(false),
set::cols(array_values($config->block->product->dtable->fieldList)),
set::data(array_values($productStats))
)
+2 -2
View File
@@ -603,8 +603,8 @@ class blockZen extends block
$productStats = $this->product->getStats(array_keys($products), 'order_desc', $this->viewType != 'json' ? $pager : '');
$this->view->productStats = $productStats;
$this->view->users = $this->loadModel('user')->getPairs();
$this->view->userAvatars = $this->user->getAvatarPairs();
$this->view->users = $this->loadModel('user')->getPairs();
$this->view->avatarList = $this->user->getAvatarPairs();
}
/**
+1
View File
@@ -1191,6 +1191,7 @@ class productModel extends model
$product->stories = $stories[$product->id];
$product->stories['finishClosed'] = isset($finishClosedStory[$product->id]) ? $finishClosedStory[$product->id] : 0;
$product->stories['unclosed'] = isset($unclosedStory[$product->id]) ? $unclosedStory[$product->id] : 0;
$product->activeStories = isset($stories[$product->id]) ? $stories[$product->id]['active'] : 0;
$product->requirements = $reqs[$product->id];
$product->plans = isset($plans[$product->id]) ? $plans[$product->id] : 0;