* @package execution * @link https://www.zentao.net */ namespace zin; jsVar('unmodifiableProducts',$unmodifiableProducts); jsVar('unmodifiableBranches', $unmodifiableBranches); jsVar('linkedStoryIDList', $linkedStoryIDList); jsVar('allProducts', $allProducts); jsVar('branchGroups', $branchGroups); jsVar('unLinkProductTip', $lang->project->unLinkProductTip); $index = 0; $linkedList = array(); foreach($allProducts as $productID => $productName) { if(empty($linkedProducts[$productID])) continue; foreach($linkedBranches[$productID] as $branchID) { $linkedList[] = btn ( setClass('product-block modal-content center-row justify-start items-center text-left'), checkbox ( set::rootClass('w-full p-4 pl-0 clip'), setClass('linked-product cursor-pointer'), set::name("products[{$index}]"), set::text($productName), set::checked(true), set::value($productID), on::click('checkUnlink') ), isset($allBranches[$productID][$branchID]) ? picker ( set::name("branch[{$index}]"), set::value($branchID), set::items($allBranches[$productID]), set::disabled(true), set::required(true), ) : formHidden("branch[{$index}]", $branchID) ); if(!isset($branchGroups[$productID])) unset($allProducts[$productID]); if(isset($branchGroups[$productID][$branchID])) unset($branchGroups[$productID][$branchID]); if(isset($branchGroups[$productID]) and empty($branchGroups[$productID])) unset($allProducts[$productID]); $index ++; } } $unlinkList = array(); if($execution->grade == 1 || $execution->grade == 2) { foreach($allProducts as $productID => $productName) { if($execution->grade == 2 && (!isset($linkedProducts[$productID]) || $linkedProducts[$productID]->type == 'normal')) continue; $unlinkList[] = btn ( setClass('product-block modal-content center-row justify-start items-center text-left'), checkbox ( set::rootClass('w-full p-4 pl-0 clip'), setClass('cursor-pointer'), set::name("products[{$index}]"), set::text($productName), set::value($productID) ), isset($branchGroups[$productID]) ? picker ( set::name("branch[{$index}]"), set::value(key($branchGroups[$productID])), set::items($branchGroups[$productID]), set::required(true), ) : formHidden("branch[{$index}]", 0) ); $index ++; } } $canModify = common::canModify('execution', $execution); form ( setID('manageProducts'), setClass('canvas pb-6'), sectionList ( section ( set::title($lang->execution->linkedProducts), div ( setClass('flex items-center flex-wrap'), $linkedList ) ), $unlinkList ? h::hr() : null, $unlinkList ? section ( set::title($lang->execution->unlinkedProducts), div ( setClass('flex items-center flex-wrap'), $unlinkList ) ) : null, $canModify ? h::hr() : null ), $canModify ? set::actions(array('submit')) : null ); render();