* @package execution * @version $Id: kanban.html.php 935 2022-01-11 16:49:24Z $ * @link https://www.zentao.net */ ?> laneCount; } js::set('regions', $regions); js::set('browseType', $browseType); js::set('kanbanData', $kanbanData); js::set('orderBy', $orderBy); js::set('groupBy', $groupBy); js::set('execution', $execution); js::set('productID', $productID); js::set('hourUnit', $config->hourUnit); js::set('kanbanLang', $lang->kanban); js::set('kanbanlaneLang', $lang->kanbanlane); js::set('storyLang', $lang->story); js::set('executionLang', $lang->execution); js::set('bugLang', $lang->bug); js::set('taskLang', $lang->task); js::set('deadlineLang', $lang->task->deadlineAB); js::set('estStartedLang', $lang->task->estStarted); js::set('kanbancolumnLang', $lang->kanbancolumn); js::set('kanbancardLang', $lang->kanbancard); js::set('executionID', $execution->id); js::set('laneCount', $laneCount); js::set('userList', $userList); js::set('noAssigned', $lang->kanbancard->noAssigned); js::set('users', $users); js::set('entertime', time()); js::set('displayCards', $execution->displayCards); js::set('productNum', $productNum); js::set('fluidBoard', $execution->fluidBoard); js::set('minColWidth', $execution->fluidBoard == '0' ? $execution->colWidth : $execution->minColWidth); js::set('maxColWidth',$execution->fluidBoard == '0' ? $execution->colWidth : $execution->maxColWidth); js::set('colorListLang', $lang->kanbancard->colorList); js::set('colorList', $this->config->kanban->cardColorList); js::set('projectID', $projectID); js::set('vision', $this->config->vision); js::set('productCount', count($productNames)); js::set('executionID', $execution->id); js::set('needLinkProducts', $lang->execution->needLinkProducts); js::set('lastUpdateData', ''); js::set('rdSearchValue', ''); js::set('defaultMinColWidth', $this->config->minColWidth); js::set('defaultMaxColWidth', $this->config->maxColWidth); $canSortRegion = commonModel::hasPriv('kanban', 'sortRegion') && count($regions) > 1; $canCreateRegion = common::hasPriv('kanban', 'createRegion') && $groupBy == 'default'; $canEditRegion = commonModel::hasPriv('kanban', 'editRegion'); $canDeleteRegion = commonModel::hasPriv('kanban', 'deleteRegion'); $canCreateLane = commonModel::hasPriv('kanban', 'createLane'); $canCreateTask = common::hasPriv('task', 'create'); $canBatchCreateTask = common::hasPriv('task', 'batchCreate'); $canImportTask = common::hasPriv('execution', 'importTask') && $execution->multiple; $canCreateBug = $features['qa'] && $productID && common::hasPriv('bug', 'create'); $canBatchCreateBug = $features['qa'] && $productID && common::hasPriv('bug', 'batchCreate') && $execution->multiple; $canImportBug = $features['qa'] && $productID && common::hasPriv('execution', 'importBug') && $execution->multiple; $hasBugButton = $features['qa'] && ($canCreateBug || $canBatchCreateBug); $canCreateStory = $features['story'] && $productID && common::hasPriv('story', 'create'); $canBatchCreateStory = $features['story'] && $productID && common::hasPriv('story', 'batchCreate'); $canLinkStory = $features['story'] && $productID && common::hasPriv('execution', 'linkStory') && !empty($execution->hasProduct); $canLinkStoryByPlan = $features['story'] && $productID && common::hasPriv('execution', 'importplanstories') && !empty($project->hasProduct); $hasStoryButton = $features['story'] && ($canCreateStory || $canBatchCreateStory || $canLinkStory || $canLinkStoryByPlan); $hasTaskButton = $canCreateTask || $canBatchCreateTask || $canImportBug; js::set('priv', array( 'canCreateTask' => $canCreateTask, 'canBatchCreateTask' => $canBatchCreateTask, 'canImportBug' => $canImportBug, 'canCreateBug' => $canCreateBug, 'canBatchCreateBug' => $canBatchCreateBug, 'canCreateStory' => $canCreateStory, 'canBatchCreateStory' => $canBatchCreateStory, 'canLinkStory' => $canLinkStory, 'canLinkStoryByPlan' => $canLinkStoryByPlan, 'canViewBug' => common::hasPriv('bug', 'view'), 'canAssignBug' => common::hasPriv('bug', 'assignto'), 'canConfirmBug' => common::hasPriv('bug', 'confirmBug'), 'canResolveBug' => common::hasPriv('bug', 'resolve'), 'canCopyBug' => common::hasPriv('bug', 'create'), 'canEditBug' => common::hasPriv('bug', 'edit'), 'canDeleteBug' => common::hasPriv('bug', 'delete'), 'canActivateBug' => common::hasPriv('bug', 'activate'), 'canViewTask' => common::hasPriv('task', 'view'), 'canAssignTask' => common::hasPriv('task', 'assignto'), 'canFinishTask' => common::hasPriv('task', 'finish'), 'canPauseTask' => common::hasPriv('task', 'pause'), 'canCancelTask' => common::hasPriv('task', 'cancel'), 'canCloseTask' => common::hasPriv('task', 'close'), 'canActivateTask' => common::hasPriv('task', 'activate'), 'canActivateStory' => common::hasPriv('story', 'activate'), 'canStartTask' => common::hasPriv('task', 'start'), 'canRestartTask' => common::hasPriv('task', 'restart'), 'canEditTask' => common::hasPriv('task', 'edit'), 'canDeleteTask' => common::hasPriv('task', 'delete'), 'canRecordEstimateTask' => common::hasPriv('task', 'recordEstimate'), 'canToStoryBug' => common::hasPriv('story', 'create'), 'canAssignStory' => common::hasPriv('story', 'assignto'), 'canEditStory' => common::hasPriv('story', 'edit'), 'canDeleteStory' => common::hasPriv('story', 'delete'), 'canChangeStory' => common::hasPriv('story', 'change'), 'canCloseStory' => common::hasPriv('story', 'close'), 'canUnlinkStory' => (common::hasPriv('execution', 'unlinkStory') && !empty($execution->hasProduct)), 'canViewStory' => common::hasPriv('execution', 'storyView'), ) ); ?>