znt/module/bug/ui/create.field.php

92 lines
3.4 KiB
PHP

<?php
namespace zin;
global $lang, $app;
$isShadowProduct = data('product.shadow');
$noMultipleProject = data('project.multiple') === '0';
$isOriginalProduct = (int)data('bug.productID') === (int)data('productID');
$resultFiles = data('resultFiles');
$copyFiles = data('bug.files');
$files = $copyFiles ? array_values($copyFiles) : array_values($resultFiles);
$fields = defineFieldList('bug.create', 'bug');
$fields->field('product')->hidden($isShadowProduct && $isOriginalProduct);
$fields->field('project')
->foldable(!$isShadowProduct)
->wrapAfter($isShadowProduct && $isOriginalProduct && $noMultipleProject)
->className($isShadowProduct && !$isOriginalProduct && !$noMultipleProject ? 'w-1/4' : 'w-1/2')
->className(($isShadowProduct && $isOriginalProduct) || $noMultipleProject ? 'full:w-1/2' : 'full:w-1/4');
$fields->field('execution')
->label(data('project.model') === 'kanban' ? $lang->bug->kanban : $lang->bug->execution)
->hidden($noMultipleProject)
->className($isShadowProduct && !$isOriginalProduct ? 'w-1/4' : 'w-1/2')
->className($isShadowProduct && $isOriginalProduct ? 'full:w-1/2' : 'full:w-1/4')
->foldable(!$isShadowProduct);
$fields->field('plan')
->label($lang->bug->plan)
->className('w-1/2 full:w-1/2')
->hidden($noMultipleProject)
->items(data('plans'))
->foldable();
if(common::hasPriv('build', 'create'))
{
$fields->field('openedBuild')
->itemBegin()->control(array('control' => 'btn', 'data-toggle' => 'modal', 'id' => 'createBuild', 'data-size' => 'lg'))
->text($lang->build->create)->hint($lang->build->create)
->url(createLink('build', 'create', 'executionID=' . data('executionID') . '&productID=' . data('bug.productID') . '&projectID=' . data('projectID')))
->className(count(data('builds')) > 1 || !data('executionID') ? 'hidden' : '')
->itemEnd();
}
if(common::hasPriv('release', 'create') && !common::isTutorialMode())
{
$fields->field('openedBuild')
->itemBegin()->control(array('control' => 'btn', 'data-toggle' => 'modal', 'data-size' => 'lg','id' => 'createRelease'))
->text($lang->release->create)->hint($lang->release->create)
->url(createLink('release', 'create', 'productID=' . data('bug.productID') . '&branch=' . data('bug.branch') . '&status=normal'))
->className(count(data('builds')) > 1 || data('executionID') ? 'hidden' : '')
->itemEnd();
}
$fields->field('title')->className($isShadowProduct ? 'full:w-1/2' : 'full:w-full');
$fields->field('steps')
->width('full')
->control(array('control' => 'editor', 'templateType' => 'bug'));
$fields->field('files')
->width('full')
->control('fileSelector', array('defaultFiles' => $files));
$fields->field('case')->foldable();
$fields->field('story')->foldable();
$fields->field('task')->foldable();
$fields->field('feedbackBy')->foldable();
$fields->field('notifyEmail')->foldable();
$fields->field('browser')->foldable();
$fields->field('os')->foldable();
$fields->field('mailto')->foldable();
$fields->field('keywords')->foldable();
$fields->field('module')->className($isShadowProduct ? 'w-1/2' : 'w-1/4')->className('full:w-1/2');
$fields->field('openedBuild')->className($isShadowProduct ? 'w-1/2' : 'w-1/4')->className('full:w-1/2');
$fields->field('fileList')->control('hidden')->value($copyFiles ? $copyFiles : $resultFiles);
if($isShadowProduct && !$isOriginalProduct) $fields->moveAfter('module', 'product');