From 6932460d0a8095a004fc1eb6f36bd7d4e2d80d99 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 29 Jun 2023 10:05:45 +0800 Subject: [PATCH] * Refactor block ui of productList. --- module/block/config.php | 3 +++ module/block/config/productblock.php | 14 +++++++------- module/block/control.php | 1 + module/block/lang/zh-cn.php | 2 +- module/block/model.php | 12 ++++++++++++ module/block/ui/productlistblock.html.php | 18 ++++++++++-------- module/block/zen.php | 4 ++-- module/product/model.php | 1 + 8 files changed, 37 insertions(+), 18 deletions(-) diff --git a/module/block/config.php b/module/block/config.php index d1310ac2f0..b20d3eae54 100644 --- a/module/block/config.php +++ b/module/block/config.php @@ -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'); diff --git a/module/block/config/productblock.php b/module/block/config/productblock.php index 22e0ae716f..510eef581b 100644 --- a/module/block/config/productblock.php +++ b/module/block/config/productblock.php @@ -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); diff --git a/module/block/control.php b/module/block/control.php index 10aba43366..e6b38bf255 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -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())); diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index 2dda44578f..dffe9819b0 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -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'] = '我参与'; diff --git a/module/block/model.php b/module/block/model.php index bf4fc9fe1b..683494373f 100644 --- a/module/block/model.php +++ b/module/block/model.php @@ -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'); + } } diff --git a/module/block/ui/productlistblock.html.php b/module/block/ui/productlistblock.html.php index c6c553c1ae..fb90387b36 100644 --- a/module/block/ui/productlistblock.html.php +++ b/module/block/ui/productlistblock.html.php @@ -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)) ) diff --git a/module/block/zen.php b/module/block/zen.php index 2c9ed4a117..c45eeabdd3 100644 --- a/module/block/zen.php +++ b/module/block/zen.php @@ -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(); } /** diff --git a/module/product/model.php b/module/product/model.php index c9c181a6e3..dc916e0a71 100755 --- a/module/product/model.php +++ b/module/product/model.php @@ -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;