194 lines
5.3 KiB
PHP
194 lines
5.3 KiB
PHP
|
|
<?php
|
||
|
|
declare(strict_types=1);
|
||
|
|
/**
|
||
|
|
* The create view file of release module of ZenTaoPMS.
|
||
|
|
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
|
||
|
|
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||
|
|
* @author Shujie Tian<tianshujie@easycorp.ltd>
|
||
|
|
* @package release
|
||
|
|
* @link https://www.zentao.net
|
||
|
|
*/
|
||
|
|
namespace zin;
|
||
|
|
|
||
|
|
jsVar('projectID', isset($projectID) ? $projectID : 0);
|
||
|
|
jsVar('appList', $appList);
|
||
|
|
jsVar('productID', zget($product, 'id', 0));
|
||
|
|
|
||
|
|
$productRow = array();
|
||
|
|
if(!empty($projectID))
|
||
|
|
{
|
||
|
|
$productRow[] = on::change('#product', 'changeProduct');
|
||
|
|
$productRow[] = formRow
|
||
|
|
(
|
||
|
|
setClass($product->shadow ? 'hidden' : ''),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/2'),
|
||
|
|
set::name('product'),
|
||
|
|
set::label($lang->release->product),
|
||
|
|
set::items($products),
|
||
|
|
set::value($product->id)
|
||
|
|
)
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
formPanel
|
||
|
|
(
|
||
|
|
set::title($lang->release->create),
|
||
|
|
set::titleClass('text-lg gap-0'),
|
||
|
|
to::titleSuffix
|
||
|
|
(
|
||
|
|
btn(setClass('ghost'), icon('help'), set::hint($lang->help), set::url('https://www.zentao.net/book/zentaopms/888.html'), set::target('_blank'))
|
||
|
|
),
|
||
|
|
on::change('[name=status]')->call('changeStatus'),
|
||
|
|
on::change('[name=newSystem]')->call('setSystemBox'),
|
||
|
|
on::change('[name=system]')->call('loadSystemBlock'),
|
||
|
|
common::checkNotCN() ? set::labelWidth('160px') : null,
|
||
|
|
formRow
|
||
|
|
(
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/2'),
|
||
|
|
set::label($lang->release->selectSystem),
|
||
|
|
set::required(true),
|
||
|
|
inputGroup
|
||
|
|
(
|
||
|
|
div
|
||
|
|
(
|
||
|
|
setClass('w-full'),
|
||
|
|
setId('systemBox'),
|
||
|
|
picker
|
||
|
|
(
|
||
|
|
set::name('system'),
|
||
|
|
set::required(true),
|
||
|
|
set::items(array_column($appList, 'name', 'id')),
|
||
|
|
),
|
||
|
|
input(set::name('systemName'), setClass('hidden'))
|
||
|
|
),
|
||
|
|
hasPriv('system', 'create') ? div
|
||
|
|
(
|
||
|
|
setClass('input-group-addon flex'),
|
||
|
|
checkbox
|
||
|
|
(
|
||
|
|
set::name('newSystem'),
|
||
|
|
set::text($lang->release->addSystem)
|
||
|
|
)
|
||
|
|
) : null
|
||
|
|
)
|
||
|
|
)
|
||
|
|
),
|
||
|
|
formRow
|
||
|
|
(
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/2'),
|
||
|
|
set::name('name'),
|
||
|
|
set::label($lang->release->name)
|
||
|
|
),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/2'),
|
||
|
|
setClass('items-center'),
|
||
|
|
checkbox(
|
||
|
|
set::name('marker'),
|
||
|
|
set::rootClass('ml-4'),
|
||
|
|
set::value(1),
|
||
|
|
set::text($lang->release->marker)
|
||
|
|
),
|
||
|
|
$lastRelease ? '(' . $lang->release->last . ': ' . $lastRelease->name . ')' : ''
|
||
|
|
)
|
||
|
|
),
|
||
|
|
$productRow,
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
setClass('hidden'),
|
||
|
|
setID('systemBlock'),
|
||
|
|
set::required(true),
|
||
|
|
set::label($lang->release->includedSystem),
|
||
|
|
div(setID('systemItems'), setClass('w-full'))
|
||
|
|
),
|
||
|
|
formRow
|
||
|
|
(
|
||
|
|
setID('buildBox'),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/2'),
|
||
|
|
set::label($lang->release->includedBuild),
|
||
|
|
picker
|
||
|
|
(
|
||
|
|
set::name('build[]'),
|
||
|
|
set::placeholder($lang->build->placeholder->multipleSelect),
|
||
|
|
set::items($builds),
|
||
|
|
set::multiple(true)
|
||
|
|
)
|
||
|
|
),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/2'),
|
||
|
|
setClass('items-center'),
|
||
|
|
checkbox(
|
||
|
|
set::name('sync'),
|
||
|
|
set::rootClass('ml-4'),
|
||
|
|
set::checked(1),
|
||
|
|
set::value(1),
|
||
|
|
set::text($lang->release->syncFromBuilds)
|
||
|
|
)
|
||
|
|
)
|
||
|
|
),
|
||
|
|
formRow
|
||
|
|
(
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width('1/4'),
|
||
|
|
set::name('status'),
|
||
|
|
set::label($lang->release->status),
|
||
|
|
set::control(array('control' => 'picker', 'required' => true)),
|
||
|
|
set::value($status),
|
||
|
|
set::items($lang->release->statusList)
|
||
|
|
)
|
||
|
|
),
|
||
|
|
formRow
|
||
|
|
(
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width(isInModal() ? '1/2' : '1/4'),
|
||
|
|
set::name('date'),
|
||
|
|
set::label($lang->release->date),
|
||
|
|
set::value(helper::today()),
|
||
|
|
set::control('date')
|
||
|
|
)
|
||
|
|
),
|
||
|
|
formRow
|
||
|
|
(
|
||
|
|
setClass('hidden'),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::width(isInModal() ? '1/2' : '1/4'),
|
||
|
|
set::name('releasedDate'),
|
||
|
|
set::label($lang->release->releasedDate),
|
||
|
|
set::value(helper::today()),
|
||
|
|
set::control('date')
|
||
|
|
)
|
||
|
|
),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::label($lang->release->desc),
|
||
|
|
set::name('desc'),
|
||
|
|
set::control('editor'),
|
||
|
|
set::rows('10')
|
||
|
|
),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::label($lang->release->mailto),
|
||
|
|
mailto(set::items($users))
|
||
|
|
),
|
||
|
|
formGroup
|
||
|
|
(
|
||
|
|
set::label($lang->release->files),
|
||
|
|
fileSelector(set::name('releaseFiles[]'))
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
/* ====== Render page ====== */
|
||
|
|
render();
|