* Refactor block ui of productList.
This commit is contained in:
@@ -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¶m=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');
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -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'] = '我参与';
|
||||
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user