| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?php
- namespace zin;
- require_once dirname(__DIR__) . DS . 'datalist' . DS . 'v1.php';
- class taskBasicInfo extends wg
- {
- /**
- * @var mixed[]
- */
- protected static $defineProps = array
- (
- 'task' => '?object', // 当前任务。
- 'product' => '?object', // 当前产品。
- 'execution' => '?object', // 当前执行。
- 'fromBug' => '?object', // 当前来源 BUG。
- 'users' => '?array', // 用户信息。
- 'users' => '?array', // 用户列表。
- 'statusText' => '?string', // 状态信息。
- 'modulePath' => '?string' // 模块路径。
- );
- /**
- * @param null|bool|object $product
- * @param object $task
- */
- protected function getModuleItems($task, $product)
- {
- global $app;
- $isInModal = isInModal();
- $canViewTasks = !$isInModal && common::hasPriv('execution', 'task');
- $modulePath = $this->prop('modulePath', data('modulePath'));
- $items = array();
- $appendApp = $app->tab == 'execution' ? '' : "#app={$app->tab}";
- if($modulePath)
- {
- if($product)
- {
- $item = array('text' => $product->name);
- if($canViewTasks) $item['url'] = createLink('execution', 'task', "executionID=$task->execution&browseType=byProduct¶m=$product->id") . $appendApp;
- $items[] = $item;
- }
- foreach($modulePath as $key => $module)
- {
- $item = array('text' => $module->name);
- if($canViewTasks) $item['url'] = createLink('execution', 'task', "executionID=$task->execution&browseType=byModule¶m=$module->id") . $appendApp;
- $items[] = $item;
- }
- }
- if(!$items) $items = array('/');
- return $items;
- }
- protected function getItems()
- {
- global $lang, $config, $app;
- $task = $this->prop('task', data('task'));
- if(!$task) return array();
- $product = $this->prop('product', data('product'));
- $execution = $this->prop('execution', data('execution'));
- $users = $this->prop('users', data('users'));
- $fromBug = $this->prop('fromBug', data('fromBug'));
- $statusText = $this->prop('statusText', $task->status);
- $items = array();
- if($execution->multiple)
- {
- $items[$lang->task->execution] = array('control' => 'text', 'text' => $execution->name, 'title' => $execution->name);
- if(!isInModal())
- {
- $items[$lang->task->execution]['control'] = 'link';
- $items[$lang->task->execution]['url'] = createLink('execution', 'view', "executionID=$execution->id");
- }
- }
- $items[$lang->task->module] = array
- (
- 'control' => 'breadcrumb',
- 'items' => $this->getModuleItems($task, $product)
- );
- if($config->edition == 'max' && $execution->type == 'stage')
- {
- $items[$lang->task->design] = array('control' => 'text', 'text' => $task->designName, 'title' => $task->designName, 'control' => 'link', 'url' => createLink('design', 'view', "designID=$task->design") . ($app->tab == 'execution' ? '' : "#app={$app->tab}"));
- }
- if($config->vision != 'lite')
- {
- $items[$lang->task->fromBug] = array
- (
- 'control' => 'entityTitle',
- 'object' => $fromBug,
- 'type' => 'bug',
- 'url' => true,
- 'inline' => true,
- 'linkProps' => array('data-toggle' => 'modal', 'data-size' => 'lg')
- );
- }
- if(!empty($task->team) || zget($task, 'mode') === 'multi')
- {
- $items[$lang->task->assignedTo] = $lang->task->team;
- }
- else
- {
- $items[$lang->task->assignedTo] = zget($users, $task->assignedTo, '');
- }
- $items[$lang->task->type] = zget($lang->task->typeList, $task->type, $task->type);
- $items[$lang->task->status] = array
- (
- 'control' => 'status',
- 'class' => 'task-status',
- 'status' => $task->status,
- 'text' => $statusText
- );
- $items[$lang->task->progress] = "$task->progress %";
- $items[$lang->task->pri] = array
- (
- 'control' => 'pri',
- 'pri' => $task->pri,
- 'text' => $lang->task->priList
- );
- $items[$lang->task->keywords] = $task->keywords;
- $items[$lang->story->mailto] = joinMailtoList($task->mailto, $users);
- return $items;
- }
- protected function build()
- {
- return new datalist
- (
- set::className('task-basic-info'),
- set::items($this->getItems())
- );
- }
- }
|