* @package block * @link https://www.zentao.net */ namespace zin; $productModel = $this->loadModel('product'); $fnPrintSingleRoadmap = function($branchKey = 0) use ($roadmaps, $product, $productModel) { global $lang; $data = $productModel->buildRoadmapForUI($roadmaps, $branchKey); $hasRoadmaps = !empty($data) ; if(!$hasRoadmaps) { return div ( setClass('empty-tip text-center'), span(setClass('text-gray'), $lang->release->noRelease), common::canModify('product', $product) && common::hasPriv('release', 'create') ? btn ( setClass('ml-2'), setStyle('background', 'rgb(var(--color-primary-50-rgb))'), setStyle('box-shadow', 'none'), set::url(createLink('release', 'create', "productID=$product->id&branch=$branchKey")), span ( icon('plus'), setClass('text-primary'), $lang->release->create ) ) : null ); } else { return roadMap(set::releases($data)); } }; $fnPrintBranchRoadmap = function() use ($branches, $roadmaps, $product, $productModel, $fnPrintSingleRoadmap) { $tabPaneItems = array(); foreach($branches as $branchKey => $branchName) { $tabPaneItems[] = tabPane ( set::key("roadmap_{$branchKey}"), set::title($branchName), set::active($branchKey == 0), $fnPrintSingleRoadmap($branchKey) ); } return tabs($tabPaneItems); }; panel ( set('headingClass', 'border-b'), set::title($block->title), $product->type == 'normal' ? $fnPrintSingleRoadmap() : $fnPrintBranchRoadmap() ); render();