* Remove , at the end of row in the lastest children in project.
This commit is contained in:
@@ -25,15 +25,15 @@ formPanel
|
||||
(
|
||||
set::control('date'),
|
||||
set::name('begin'),
|
||||
set::value($newBegin),
|
||||
set::value($newBegin)
|
||||
),
|
||||
$lang->execution->to,
|
||||
input
|
||||
(
|
||||
set::control('date'),
|
||||
set::name('end'),
|
||||
set::value($newEnd),
|
||||
),
|
||||
set::value($newEnd)
|
||||
)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -44,9 +44,9 @@ formPanel
|
||||
set::name('readjustTask'),
|
||||
set::text($lang->execution->readjustTask),
|
||||
set::value(1),
|
||||
set::rootClass('ml-4'),
|
||||
set::rootClass('ml-4')
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -54,9 +54,9 @@ formPanel
|
||||
editor
|
||||
(
|
||||
set::name('comment'),
|
||||
set::rows('6'),
|
||||
),
|
||||
),
|
||||
set::rows('6')
|
||||
)
|
||||
)
|
||||
);
|
||||
hr();
|
||||
history();
|
||||
|
||||
@@ -30,14 +30,14 @@ formBatchPanel
|
||||
set::name('id'),
|
||||
set::label($lang->idAB),
|
||||
set::control('hidden'),
|
||||
set::hidden(true),
|
||||
set::hidden(true)
|
||||
),
|
||||
formBatchItem
|
||||
(
|
||||
set::name('id'),
|
||||
set::label($lang->idAB),
|
||||
set::control('index'),
|
||||
set::width('38px'),
|
||||
set::width('38px')
|
||||
),
|
||||
formBatchItem
|
||||
(
|
||||
@@ -45,19 +45,19 @@ formBatchPanel
|
||||
set::label($lang->project->program),
|
||||
set::control('picker'),
|
||||
set::items($programs),
|
||||
set::width('128px'),
|
||||
set::width('128px')
|
||||
),
|
||||
formBatchItem
|
||||
(
|
||||
set::name('name'),
|
||||
set::label($lang->project->name),
|
||||
set::width('240px'),
|
||||
set::width('240px')
|
||||
),
|
||||
$setCode ? formBatchItem
|
||||
(
|
||||
set::name('code'),
|
||||
set::label($lang->project->code),
|
||||
set::width('136px'),
|
||||
set::width('136px')
|
||||
) : null,
|
||||
formBatchItem
|
||||
(
|
||||
@@ -67,21 +67,21 @@ formBatchPanel
|
||||
set::ditto(true),
|
||||
set::defaultDitto('off'),
|
||||
set::items($PMUsers),
|
||||
set::width('136px'),
|
||||
set::width('136px')
|
||||
),
|
||||
formBatchItem
|
||||
(
|
||||
set::name('begin'),
|
||||
set::label($lang->project->begin),
|
||||
set::control('date'),
|
||||
set::width('84px'),
|
||||
set::width('84px')
|
||||
),
|
||||
formBatchItem
|
||||
(
|
||||
set::name('end'),
|
||||
set::label($lang->project->end),
|
||||
set::control('date'),
|
||||
set::width('84px'),
|
||||
set::width('84px')
|
||||
),
|
||||
formBatchItem
|
||||
(
|
||||
@@ -89,8 +89,8 @@ formBatchPanel
|
||||
set::label($lang->project->acl),
|
||||
set::control('picker'),
|
||||
set::items(array()),
|
||||
set::width('76px'),
|
||||
),
|
||||
set::width('76px')
|
||||
)
|
||||
);
|
||||
|
||||
render();
|
||||
|
||||
@@ -19,7 +19,7 @@ featureBar
|
||||
(
|
||||
set::rootClass('ml-2'),
|
||||
set::name('involved'),
|
||||
set::text($lang->project->mine),
|
||||
set::text($lang->project->mine)
|
||||
),
|
||||
li(searchToggle(set::module('project')))
|
||||
);
|
||||
@@ -96,8 +96,8 @@ if(!empty($projectStats))
|
||||
(
|
||||
set::size('sm'),
|
||||
set::text($users[$member]),
|
||||
set::src(zget($usersAvatar, $member, '')),
|
||||
),
|
||||
set::src(zget($usersAvatar, $member, ''))
|
||||
)
|
||||
);
|
||||
$count ++;
|
||||
}
|
||||
@@ -172,7 +172,7 @@ if(!empty($projectStats))
|
||||
setClass('label lighter mr-2'),
|
||||
setClass($status == 'delay' ? 'text-danger' : ''),
|
||||
$project->date
|
||||
),
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
@@ -189,7 +189,7 @@ if(!empty($projectStats))
|
||||
(
|
||||
setClass('statistics-title'),
|
||||
$lang->projectCommon . $lang->project->progress
|
||||
),
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
@@ -197,7 +197,7 @@ if(!empty($projectStats))
|
||||
set('data-zui', 'ProgressCircle'),
|
||||
set('data-percent', $project->hours->progress),
|
||||
set('data-size', 24),
|
||||
set('data-circle-color', 'var(--color-success-500)'),
|
||||
set('data-circle-color', 'var(--color-success-500)')
|
||||
)
|
||||
),
|
||||
div
|
||||
@@ -229,7 +229,7 @@ if(!empty($projectStats))
|
||||
set::title(empty($project->hours->totalLeft) ? '— ' : $project->hours->totalLeft . 'h'),
|
||||
empty($project->hours->totalLeft) ? '— ' : $project->hours->totalLeft . 'h'
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
div
|
||||
@@ -254,16 +254,16 @@ if(!empty($projectStats))
|
||||
(
|
||||
set::size('sm'),
|
||||
set::text($users[$lastMember]),
|
||||
set::src(zget($usersAvatar, $lastMember, '')),
|
||||
),
|
||||
set::src(zget($usersAvatar, $lastMember, ''))
|
||||
)
|
||||
) : null,
|
||||
a
|
||||
(
|
||||
setClass('project-members-total pl-2 mt-1'),
|
||||
set::href(createLink('project', 'team', "projectID={$project->id}")),
|
||||
sprintf($lang->project->teamSumCount, $project->teamCount),
|
||||
sprintf($lang->project->teamSumCount, $project->teamCount)
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
|
||||
@@ -20,7 +20,7 @@ featureBar
|
||||
set::rootClass('ml-2'),
|
||||
set::name('involved'),
|
||||
set::text($lang->project->mine),
|
||||
set::checked($this->cookie->involved ? 'checked' : ''),
|
||||
set::checked($this->cookie->involved ? 'checked' : '')
|
||||
),
|
||||
li(searchToggle(set::module('project')))
|
||||
);
|
||||
@@ -80,7 +80,7 @@ if($canBatchEdit)
|
||||
$footToolbar['items'][] = array(
|
||||
'type' => 'btn-group',
|
||||
'items' => array(
|
||||
array('text' => $lang->edit, 'className' => 'btn size-sm batch-btn', 'btnType' => 'secondary', 'data-url' => createLink('project', 'batchEdit')),
|
||||
array('text' => $lang->edit, 'className' => 'btn size-sm batch-btn', 'btnType' => 'secondary', 'data-url' => createLink('project', 'batchEdit'))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ toolbar
|
||||
'url' => createLink('bug', 'create', "productID={$productID}&branch={$branchID}&extras=projectID={$project->id}")
|
||||
)),
|
||||
setData('app', 'project')
|
||||
) : null,
|
||||
) : null
|
||||
);
|
||||
|
||||
$closeLink = $type != 'bysearch' ? createLink('project', 'bug', "projectID={$project->id}&productID={$productID}&branchID=$branchID&orderBy=$orderBy&build=$buildID&type=$type¶m=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("bugModule")';
|
||||
|
||||
@@ -20,8 +20,8 @@ if($project->hasProduct)
|
||||
set::name('product'),
|
||||
set::value($productID),
|
||||
set::items($products),
|
||||
on::change('changeProduct'),
|
||||
),
|
||||
on::change('changeProduct')
|
||||
)
|
||||
);
|
||||
}
|
||||
/* zin: Define the set::module('projectBuild') feature bar on main menu. */
|
||||
@@ -32,7 +32,7 @@ featureBar
|
||||
set::module('project'),
|
||||
set::method('build'),
|
||||
$changeProductBox,
|
||||
li(searchToggle(set::module('projectBuild'))),
|
||||
li(searchToggle(set::module('projectBuild')))
|
||||
);
|
||||
|
||||
/* zin: Define the toolbar on main menu. */
|
||||
@@ -40,7 +40,7 @@ $canCreateBuild = hasPriv('projectbuild', 'create') && common::canModify('projec
|
||||
if($canCreateBuild) $createItem = array('icon' => 'plus', 'class' => 'primary', 'text' => $lang->build->create, 'url' => $this->createLink('projectbuild', 'create', "projectID={$project->id}"));
|
||||
toolbar
|
||||
(
|
||||
!empty($createItem) ? item(set($createItem)) : null,
|
||||
!empty($createItem) ? item(set($createItem)) : null
|
||||
);
|
||||
|
||||
jsVar('projectID', $project->id);
|
||||
@@ -62,8 +62,8 @@ dtable
|
||||
set::footPager(
|
||||
usePager
|
||||
(
|
||||
array('linkCreator' => helper::createLink($app->rawModule, $app->rawMethod, "projectID={$project->id}&type={$type}¶m={$param}&orderBy={$orderBy}&recTotal={recTotal}&recPerPage={recPerPage}&pageID={page}"), 'recTotal' => $pager->recTotal, 'recPerPage' => $pager->recPerPage),
|
||||
),
|
||||
array('linkCreator' => helper::createLink($app->rawModule, $app->rawMethod, "projectID={$project->id}&type={$type}¶m={$param}&orderBy={$orderBy}&recTotal={recTotal}&recPerPage={recPerPage}&pageID={page}"), 'recTotal' => $pager->recTotal, 'recPerPage' => $pager->recPerPage)
|
||||
)
|
||||
),
|
||||
set::emptyTip($lang->build->noBuild),
|
||||
set::createTip($lang->build->create),
|
||||
|
||||
@@ -19,7 +19,7 @@ formPanel
|
||||
set::label($lang->project->realEnd),
|
||||
set::name('realEnd'),
|
||||
set::control('date'),
|
||||
set::value(!helper::isZeroDate($project->realEnd) ? $project->realEnd : helper::today()),
|
||||
set::value(!helper::isZeroDate($project->realEnd) ? $project->realEnd : helper::today())
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -27,9 +27,9 @@ formPanel
|
||||
editor
|
||||
(
|
||||
set::name('comment'),
|
||||
set::rows('6'),
|
||||
set::rows('6')
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
hr();
|
||||
history();
|
||||
|
||||
@@ -59,9 +59,9 @@ if(!empty($products))
|
||||
set::value($product->id),
|
||||
set::items($allProducts),
|
||||
set::last($product->id),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -76,9 +76,9 @@ if(!empty($products))
|
||||
(
|
||||
set::name("branch[$i][]"),
|
||||
set::items($branches),
|
||||
set::value(implode(',', $product->branches)),
|
||||
set::value(implode(',', $product->branches))
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -107,9 +107,9 @@ if(!empty($products))
|
||||
setClass('btn ghost removeLine'),
|
||||
icon('trash'),
|
||||
$i == 0 ? set::disabled(true) : null
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$i ++;
|
||||
@@ -177,7 +177,7 @@ formPanel
|
||||
set::name('parent'),
|
||||
set::items($programList),
|
||||
set::value($programID),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -191,7 +191,7 @@ formPanel
|
||||
(
|
||||
'help',
|
||||
set('data-toggle', 'tooltip'),
|
||||
set('id', 'programHover'),
|
||||
set('id', 'programHover')
|
||||
)
|
||||
)
|
||||
),
|
||||
@@ -199,7 +199,7 @@ formPanel
|
||||
(
|
||||
set::name('model'),
|
||||
set::value($model),
|
||||
set::control('hidden'),
|
||||
set::control('hidden')
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -208,7 +208,7 @@ formPanel
|
||||
set::name('name'),
|
||||
set::label($lang->project->name),
|
||||
set::value($copyProjectID ? $copyProject->name : ''),
|
||||
set::strong(true),
|
||||
set::strong(true)
|
||||
),
|
||||
(isset($config->setCode) && $config->setCode == 1) ? formGroup
|
||||
(
|
||||
@@ -216,7 +216,7 @@ formPanel
|
||||
set::name('code'),
|
||||
set::label($lang->project->code),
|
||||
set::value($copyProjectID ? $copyProject->code : ''),
|
||||
set::strong(true),
|
||||
set::strong(true)
|
||||
) : null,
|
||||
(in_array($model, array('scrum', 'kanban'))) ? formGroup
|
||||
(
|
||||
@@ -227,7 +227,7 @@ formPanel
|
||||
set::items($lang->project->multipleList),
|
||||
set::disabled($copyProjectID),
|
||||
set::value('1'),
|
||||
$copyProjectID ? formHidden('multiple', $copyProject->multiple) : null,
|
||||
$copyProjectID ? formHidden('multiple', $copyProject->multiple) : null
|
||||
) : null,
|
||||
formGroup
|
||||
(
|
||||
@@ -270,7 +270,7 @@ formPanel
|
||||
'prefix' => zget($lang->project->currencySymbol, $currency),
|
||||
'prefixWidth' => 'icon',
|
||||
'suffix' => $lang->project->tenThousandYuan,
|
||||
'suffixWidth' => 60,
|
||||
'suffixWidth' => 60
|
||||
)),
|
||||
$parentProgram ? null : formHidden('budgetUnit', $config->project->defaultCurrency)
|
||||
),
|
||||
@@ -280,7 +280,7 @@ formPanel
|
||||
set::name('future'),
|
||||
setClass('items-center'),
|
||||
set::control(array('type' => 'checkList', 'inline' => true)),
|
||||
set::items(array('1' => $lang->project->future)),
|
||||
set::items(array('1' => $lang->project->future))
|
||||
)
|
||||
),
|
||||
formRow
|
||||
@@ -297,7 +297,7 @@ formPanel
|
||||
set::name('begin'),
|
||||
set('id', 'begin'),
|
||||
set::value(date('Y-m-d')),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
),
|
||||
$lang->project->to,
|
||||
datepicker
|
||||
@@ -305,8 +305,8 @@ formPanel
|
||||
set::name('end'),
|
||||
set('id', 'end'),
|
||||
set::placeholder($lang->project->end),
|
||||
set::required(true),
|
||||
),
|
||||
set::required(true)
|
||||
)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -319,7 +319,7 @@ formPanel
|
||||
set::inline(true),
|
||||
set::items($lang->project->endList)
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -331,7 +331,7 @@ formPanel
|
||||
input
|
||||
(
|
||||
set::name('days'),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
),
|
||||
div
|
||||
(
|
||||
@@ -358,7 +358,7 @@ formPanel
|
||||
picker
|
||||
(
|
||||
set::name('products[0]'),
|
||||
set::items($allProducts),
|
||||
set::items($allProducts)
|
||||
)
|
||||
),
|
||||
div
|
||||
@@ -367,7 +367,7 @@ formPanel
|
||||
checkbox
|
||||
(
|
||||
set::name('newProduct'),
|
||||
set::text($lang->project->newProduct),
|
||||
set::text($lang->project->newProduct)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -394,10 +394,10 @@ formPanel
|
||||
checkbox
|
||||
(
|
||||
set::name('newProduct'),
|
||||
set::text($lang->project->newProduct),
|
||||
set::text($lang->project->newProduct)
|
||||
)
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -425,9 +425,9 @@ formPanel
|
||||
setClass('btn ghost removeLine'),
|
||||
icon('trash'),
|
||||
empty($i) ? set::disabled(true) : null
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
@@ -443,7 +443,7 @@ formPanel
|
||||
div
|
||||
(
|
||||
setClass('grow'),
|
||||
input(set::name('productName')),
|
||||
input(set::name('productName'))
|
||||
),
|
||||
div
|
||||
(
|
||||
@@ -451,7 +451,7 @@ formPanel
|
||||
checkbox
|
||||
(
|
||||
set::name('newProduct'),
|
||||
set::text($lang->project->newProduct),
|
||||
set::text($lang->project->newProduct)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -477,7 +477,7 @@ formPanel
|
||||
setClass('project-stageBy-1'),
|
||||
set::disabled($copyProjectID),
|
||||
$lang->project->stageByList[1]
|
||||
),
|
||||
)
|
||||
),
|
||||
formHidden('stageBy', $copyProjectID ? $copyProject->stageBy : '0')
|
||||
)
|
||||
@@ -498,7 +498,7 @@ formPanel
|
||||
set::label($lang->project->acl),
|
||||
set::control('radioList'),
|
||||
$programID ? set::items($lang->project->subAclList) : set::items($lang->project->aclList),
|
||||
set::value($copyProjectID ? $copyProject->acl : 'private'),
|
||||
set::value($copyProjectID ? $copyProject->acl : 'private')
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -520,7 +520,7 @@ formPanel
|
||||
set::control('radioList'),
|
||||
set::items($lang->project->authList),
|
||||
set::value($copyProjectID ? $copyProject->auth : 'extend')
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$copyProjectsBox = array();
|
||||
@@ -536,7 +536,7 @@ foreach($copyProjects as $id => $name)
|
||||
setClass('text-gray'),
|
||||
$lang->icons['project']
|
||||
),
|
||||
span($name),
|
||||
span($name)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -558,8 +558,8 @@ modalTrigger
|
||||
input
|
||||
(
|
||||
set::name('projectName'),
|
||||
set::placeholder($lang->project->searchByName),
|
||||
),
|
||||
set::placeholder($lang->project->searchByName)
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
|
||||
@@ -63,7 +63,7 @@ div
|
||||
setClass('border text-gray text-center'),
|
||||
$lang->project->moreModelTitle
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
render();
|
||||
|
||||
@@ -26,9 +26,9 @@ featureBar
|
||||
set::placeholder($lang->execution->viewByUser),
|
||||
set::items($userIdPairs),
|
||||
set::value($param),
|
||||
on::change('changeUser'),
|
||||
),
|
||||
),
|
||||
on::change('changeUser')
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$content = null;
|
||||
@@ -41,7 +41,7 @@ if(empty($dateGroups))
|
||||
(
|
||||
setClass('text-gray'),
|
||||
$lang->action->noDynamic
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
@@ -62,7 +62,7 @@ else
|
||||
span
|
||||
(
|
||||
setClass('article-h3 ml-2'),
|
||||
$isToday ? $lang->action->dynamic->today : $date,
|
||||
$isToday ? $lang->action->dynamic->today : $date
|
||||
),
|
||||
on::click('toggleCollapse')
|
||||
),
|
||||
@@ -73,7 +73,7 @@ else
|
||||
dynamic
|
||||
(
|
||||
set::dynamics($actions),
|
||||
set::users($accountPairs),
|
||||
set::users($accountPairs)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -77,9 +77,9 @@ if($linkedProducts)
|
||||
set::value($product->id),
|
||||
set::items($allProducts),
|
||||
set::last($product->id),
|
||||
$hasBranch ? set::lastBranch(implode(',', $product->branches)) : null,
|
||||
$hasBranch ? set::lastBranch(implode(',', $product->branches)) : null
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -94,9 +94,9 @@ if($linkedProducts)
|
||||
set::name("branch[$i][]"),
|
||||
set::multiple(true),
|
||||
set::items($branches),
|
||||
set::value(implode(',', $product->branches)),
|
||||
set::value(implode(',', $product->branches))
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -129,7 +129,7 @@ if($linkedProducts)
|
||||
setClass('btn ghost removeLine'),
|
||||
icon('trash'),
|
||||
$i == 0 ? set::disabled(true) : null
|
||||
),
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -163,7 +163,7 @@ formPanel
|
||||
),
|
||||
set::placement('bottom'),
|
||||
set::menu(array('style' => array('color' => 'var(--color-fore)'))),
|
||||
set::items($projectModelItems),
|
||||
set::items($projectModelItems)
|
||||
)
|
||||
)),
|
||||
on::click('.addLine', 'addNewLine'),
|
||||
@@ -193,7 +193,7 @@ formPanel
|
||||
set::value($project->parent),
|
||||
set::disabled($disableParent),
|
||||
set::items($programList),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
)
|
||||
),
|
||||
$disableParent ? formHidden('parent', $project->parent) : null,
|
||||
@@ -208,7 +208,7 @@ formPanel
|
||||
(
|
||||
'help',
|
||||
set('data-toggle', 'tooltip'),
|
||||
set('id', 'programHover'),
|
||||
set('id', 'programHover')
|
||||
)
|
||||
)
|
||||
),
|
||||
@@ -216,7 +216,7 @@ formPanel
|
||||
(
|
||||
set::name('model'),
|
||||
set::value($project->model),
|
||||
set::control('hidden'),
|
||||
set::control('hidden')
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -225,7 +225,7 @@ formPanel
|
||||
set::name('name'),
|
||||
set::value($project->name),
|
||||
set::label($lang->project->name),
|
||||
set::strong(true),
|
||||
set::strong(true)
|
||||
),
|
||||
(isset($config->setCode) && $config->setCode == 1) ? formGroup
|
||||
(
|
||||
@@ -233,7 +233,7 @@ formPanel
|
||||
set::name('code'),
|
||||
set::value($project->code),
|
||||
set::label($lang->project->code),
|
||||
set::strong(true),
|
||||
set::strong(true)
|
||||
) : null,
|
||||
(in_array($model, array('scrum', 'kanban'))) ? formGroup
|
||||
(
|
||||
@@ -243,7 +243,7 @@ formPanel
|
||||
set::control(array('type' => 'radioList', 'inline' => true)),
|
||||
set::items($lang->project->multipleList),
|
||||
set::value($project->multiple),
|
||||
set::disabled(true),
|
||||
set::disabled(true)
|
||||
) : null,
|
||||
formGroup
|
||||
(
|
||||
@@ -276,7 +276,7 @@ formPanel
|
||||
set::name('PM'),
|
||||
set::value($project->PM),
|
||||
set::items($PMUsers)
|
||||
),
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
@@ -292,7 +292,7 @@ formPanel
|
||||
'prefix' => zget($lang->project->currencySymbol, $currency),
|
||||
'prefixWidth' => 'icon',
|
||||
'suffix' => $lang->project->tenThousandYuan,
|
||||
'suffixWidth' => 60,
|
||||
'suffixWidth' => 60
|
||||
)),
|
||||
$parentProgram ? null : formHidden('budgetUnit', $config->project->defaultCurrency)
|
||||
),
|
||||
@@ -320,7 +320,7 @@ formPanel
|
||||
set('id', 'begin'),
|
||||
set::value($project->begin),
|
||||
set::placeholder($lang->project->begin),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
),
|
||||
$lang->project->to,
|
||||
datePicker
|
||||
@@ -330,8 +330,8 @@ formPanel
|
||||
set::value($project->end),
|
||||
set::placeholder($lang->project->end),
|
||||
set::required(true),
|
||||
set::disabled($project->end == LONG_TIME),
|
||||
),
|
||||
set::disabled($project->end == LONG_TIME)
|
||||
)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -345,7 +345,7 @@ formPanel
|
||||
set::inline(true),
|
||||
set::items($lang->project->endList)
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formRow
|
||||
(
|
||||
@@ -361,7 +361,7 @@ formPanel
|
||||
(
|
||||
set::name('days'),
|
||||
set::value($project->days),
|
||||
set::required(true),
|
||||
set::required(true)
|
||||
),
|
||||
div
|
||||
(
|
||||
@@ -369,7 +369,7 @@ formPanel
|
||||
$lang->project->day
|
||||
)
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
empty($linkedProducts) ?
|
||||
formRow
|
||||
@@ -389,9 +389,9 @@ formPanel
|
||||
picker
|
||||
(
|
||||
set::name('products[0]'),
|
||||
set::items($allProducts),
|
||||
set::items($allProducts)
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -404,9 +404,9 @@ formPanel
|
||||
picker
|
||||
(
|
||||
set::name("branch[0][]"),
|
||||
set::items(array()),
|
||||
set::items(array())
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -418,7 +418,7 @@ formPanel
|
||||
picker
|
||||
(
|
||||
set::name('plans[0][]'),
|
||||
set::items(array()),
|
||||
set::items(array())
|
||||
)
|
||||
),
|
||||
div
|
||||
@@ -432,8 +432,8 @@ formPanel
|
||||
btn
|
||||
(
|
||||
setClass('btn ghost removeLine'),
|
||||
icon('trash'),
|
||||
),
|
||||
icon('trash')
|
||||
)
|
||||
)
|
||||
),
|
||||
) : $productGroup,
|
||||
@@ -458,7 +458,7 @@ formPanel
|
||||
setClass('project-stageBy-1'),
|
||||
set::disabled($disableStageBy),
|
||||
$lang->project->stageByList[1]
|
||||
),
|
||||
)
|
||||
),
|
||||
formHidden('stageBy', $project->stageBy)
|
||||
)
|
||||
@@ -483,8 +483,8 @@ formPanel
|
||||
set::control('radioList'),
|
||||
set::items($lang->project->aclList),
|
||||
$programID ? set::items($lang->project->subAclList) : set::items($lang->project->aclList),
|
||||
set::value($project->acl),
|
||||
),
|
||||
set::value($project->acl)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -508,7 +508,7 @@ formPanel
|
||||
set::items($lang->project->authList),
|
||||
set::value('extend')
|
||||
),
|
||||
formHidden('multiple', $project->multiple),
|
||||
formHidden('multiple', $project->multiple)
|
||||
);
|
||||
|
||||
useData('title', $title);
|
||||
|
||||
@@ -90,7 +90,7 @@ featureBar
|
||||
set::name('showTask'),
|
||||
set::checked($this->cookie->showTask ? 'checked' : ''),
|
||||
set::text($lang->programplan->stageCustom->task),
|
||||
set::rootClass('ml-4'),
|
||||
set::rootClass('ml-4')
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -105,14 +105,14 @@ toolbar
|
||||
'text' => $lang->programplan->exporting,
|
||||
'class' => "ghost export",
|
||||
'data-toggle' => "modal",
|
||||
'url' => createLink('execution', 'export', "status={$status}&productID={$productID}&orderBy={$orderBy}&from=project"),
|
||||
'url' => createLink('execution', 'export', "status={$status}&productID={$productID}&orderBy={$orderBy}&from=project")
|
||||
))) : null,
|
||||
hasPriv('execution', 'create') ? item(set(array
|
||||
(
|
||||
'icon' => 'plus',
|
||||
'text' => $isStage ? $lang->programplan->create : $lang->execution->create,
|
||||
'class' => "primary create-execution-btn",
|
||||
'url' => $createLink,
|
||||
'url' => $createLink
|
||||
))) : null
|
||||
);
|
||||
|
||||
@@ -131,7 +131,7 @@ dtable
|
||||
usePager
|
||||
(
|
||||
array('linkCreator' => helper::createLink('project', 'execution', "status={$status}&projectID=$projectID&orderBy={$orderBy}&productID={$productID}&recTotal={recTotal}&recPerPage={recPerPage}&page={page}"))
|
||||
),
|
||||
)
|
||||
),
|
||||
set::emptyTip($lang->execution->noExecution),
|
||||
set::createTip($isStage ? $lang->programplan->create : $lang->execution->create),
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace zin;
|
||||
featureBar
|
||||
(
|
||||
set::current($browseType),
|
||||
set::linkParams("projectID={$project->id}&browseType={key}"),
|
||||
set::linkParams("projectID={$project->id}&browseType={key}")
|
||||
);
|
||||
|
||||
/* zin: Define the toolbar on main menu. */
|
||||
@@ -27,7 +27,7 @@ if(hasPriv('execution', 'create'))
|
||||
'icon' => 'plus',
|
||||
'text' => $lang->project->createKanban,
|
||||
'class' => 'primary',
|
||||
'url' => createLink('execution', 'create', "projectID={$project->id}"),
|
||||
'url' => createLink('execution', 'create', "projectID={$project->id}")
|
||||
)))
|
||||
);
|
||||
}
|
||||
@@ -63,8 +63,8 @@ if(!empty($kanbanList))
|
||||
(
|
||||
set::size('sm'),
|
||||
set::src(zget($usersAvatar, $member->account, '')),
|
||||
set::text(zget($member, 'realname', $member->account)),
|
||||
),
|
||||
set::text(zget($member, 'realname', $member->account))
|
||||
)
|
||||
);
|
||||
$count ++;
|
||||
}
|
||||
@@ -161,13 +161,13 @@ if(!empty($kanbanList))
|
||||
(
|
||||
set::size('sm'),
|
||||
set::text($lastMember->realname),
|
||||
set::src(zget($usersAvatar, $lastMember->account, '')),
|
||||
set::src(zget($usersAvatar, $lastMember->account, ''))
|
||||
),
|
||||
) : null,
|
||||
span
|
||||
(
|
||||
setClass('project-members-total pl-2 mt-1'),
|
||||
sprintf($lang->project->teamSumCount, count($members)),
|
||||
sprintf($lang->project->teamSumCount, count($members))
|
||||
)
|
||||
),
|
||||
div
|
||||
@@ -180,7 +180,7 @@ if(!empty($kanbanList))
|
||||
),
|
||||
zget($lang->execution->kanbanAclList, $kanban->acl, '')
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -210,7 +210,7 @@ panel
|
||||
'text' => $lang->project->createKanban,
|
||||
'class' => 'ml-2',
|
||||
'type' => 'secondary',
|
||||
'url' => createLink('execution', 'create', "projectID={$project->id}"),
|
||||
'url' => createLink('execution', 'create', "projectID={$project->id}")
|
||||
))) : null
|
||||
) : $kanbanCards
|
||||
),
|
||||
|
||||
@@ -35,8 +35,8 @@ if(count($teams2Import) > 1)
|
||||
set::value($copyProjectID),
|
||||
set::items($teams2Import),
|
||||
set('data-placeholder', $lang->project->copyTeamTitle),
|
||||
on::change('choseTeam2Copy'),
|
||||
),
|
||||
on::change('choseTeam2Copy')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -59,10 +59,10 @@ featureBar
|
||||
set::value($dept),
|
||||
set::items($depts),
|
||||
set('data-placeholder', $lang->execution->selectDeptTitle),
|
||||
on::change('setDeptUsers'),
|
||||
on::change('setDeptUsers')
|
||||
),
|
||||
$copyTeamBox,
|
||||
),
|
||||
$copyTeamBox
|
||||
)
|
||||
);
|
||||
|
||||
$memberTR = array();
|
||||
@@ -78,15 +78,15 @@ foreach($teamMembers as $member)
|
||||
set::id("realnames{$i}"),
|
||||
set::name("realnames[$i]"),
|
||||
set::value($member->realname),
|
||||
set::readonly(true),
|
||||
set::readonly(true)
|
||||
),
|
||||
input
|
||||
(
|
||||
set::id("accounts{$i}"),
|
||||
set::name("accounts[$i]"),
|
||||
set::value($member->account),
|
||||
set::type('hidden'),
|
||||
),
|
||||
set::type('hidden')
|
||||
)
|
||||
) : h::td(
|
||||
picker
|
||||
(
|
||||
@@ -95,8 +95,8 @@ foreach($teamMembers as $member)
|
||||
set::value($member->account),
|
||||
set::items($users),
|
||||
set('data-max-list-count', $config->maxCount),
|
||||
set('onchange', "setRole(this.value, '{$i}')"),
|
||||
),
|
||||
set('onchange', "setRole(this.value, '{$i}')")
|
||||
)
|
||||
),
|
||||
h::td
|
||||
(
|
||||
@@ -104,7 +104,7 @@ foreach($teamMembers as $member)
|
||||
(
|
||||
set::id("role{$i}"),
|
||||
set::name("roles[$i]"),
|
||||
set::value($member->role),
|
||||
set::value($member->role)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -113,7 +113,7 @@ foreach($teamMembers as $member)
|
||||
(
|
||||
set::id("days{$i}"),
|
||||
set::name("days[$i]"),
|
||||
set::value($member->days),
|
||||
set::value($member->days)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -122,7 +122,7 @@ foreach($teamMembers as $member)
|
||||
(
|
||||
set::id("hours{$i}"),
|
||||
set::name("hours[$i]"),
|
||||
set::value($member->hours),
|
||||
set::value($member->hours)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -133,7 +133,7 @@ foreach($teamMembers as $member)
|
||||
set::name("limited[$i]"),
|
||||
set::items($lang->team->limitedList),
|
||||
set::value($member->limited),
|
||||
set::inline(true),
|
||||
set::inline(true)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -143,7 +143,7 @@ foreach($teamMembers as $member)
|
||||
(
|
||||
set::items(array(
|
||||
array('class' => 'btn btn-link text-gray', 'icon' => 'plus', 'onclick' => 'addItem(this)'),
|
||||
array('class' => 'btn btn-link text-gray', 'icon' => 'trash', 'onclick' => 'deleteItem(this)'),
|
||||
array('class' => 'btn btn-link text-gray', 'icon' => 'trash', 'onclick' => 'deleteItem(this)')
|
||||
))
|
||||
)
|
||||
)
|
||||
@@ -168,15 +168,15 @@ h::table
|
||||
set::name("accounts[$i]"),
|
||||
set::items($users),
|
||||
set('data-max-list-count', $config->maxCount),
|
||||
set('onchange', "setRole(this.value, '{$i}')"),
|
||||
),
|
||||
set('onchange', "setRole(this.value, '{$i}')")
|
||||
)
|
||||
),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
(
|
||||
set::id("role{$i}"),
|
||||
set::name("roles[$i]"),
|
||||
set::name("roles[$i]")
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -185,7 +185,7 @@ h::table
|
||||
(
|
||||
set::id("days{$i}"),
|
||||
set::name("days[$i]"),
|
||||
set::value($project->days),
|
||||
set::value($project->days)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -194,7 +194,7 @@ h::table
|
||||
(
|
||||
set::id("hours{$i}"),
|
||||
set::name("hours[$i]"),
|
||||
set::value($config->execution->defaultWorkhours),
|
||||
set::value($config->execution->defaultWorkhours)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -205,7 +205,7 @@ h::table
|
||||
set::name("limited[$i]"),
|
||||
set::items($lang->team->limitedList),
|
||||
set::value('no'),
|
||||
set::inline(true),
|
||||
set::inline(true)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -215,7 +215,7 @@ h::table
|
||||
(
|
||||
set::items(array(
|
||||
array('class' => 'btn btn-link text-gray', 'icon' => 'plus', 'onclick' => 'addItem(this)'),
|
||||
array('class' => 'btn btn-link text-gray', 'icon' => 'trash', 'onclick' => 'deleteItem(this)'),
|
||||
array('class' => 'btn btn-link text-gray', 'icon' => 'trash', 'onclick' => 'deleteItem(this)')
|
||||
))
|
||||
)
|
||||
)
|
||||
@@ -239,34 +239,34 @@ div
|
||||
h::th
|
||||
(
|
||||
$lang->team->account,
|
||||
set::width('240px'),
|
||||
set::width('240px')
|
||||
),
|
||||
h::th
|
||||
(
|
||||
$lang->team->role,
|
||||
set::width('240px'),
|
||||
set::width('240px')
|
||||
),
|
||||
h::th
|
||||
(
|
||||
$lang->team->days,
|
||||
set::width('76px'),
|
||||
set::width('76px')
|
||||
),
|
||||
h::th
|
||||
(
|
||||
$lang->team->hours,
|
||||
set::width('136px'),
|
||||
set::width('136px')
|
||||
),
|
||||
h::th
|
||||
(
|
||||
$lang->team->limited,
|
||||
set::width('96px'),
|
||||
set::width('96px')
|
||||
),
|
||||
h::th
|
||||
(
|
||||
$lang->actions,
|
||||
set::width('48px'),
|
||||
),
|
||||
),
|
||||
set::width('48px')
|
||||
)
|
||||
)
|
||||
),
|
||||
h::tbody
|
||||
(
|
||||
@@ -275,7 +275,7 @@ div
|
||||
(
|
||||
set::type('hidden'),
|
||||
set::name('removeExecution'),
|
||||
set::value('no'),
|
||||
set::value('no')
|
||||
)
|
||||
)
|
||||
),
|
||||
@@ -288,7 +288,7 @@ div
|
||||
),
|
||||
'cancel'
|
||||
))
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
/* ====== Render page ====== */
|
||||
|
||||
@@ -21,16 +21,16 @@ div
|
||||
span
|
||||
(
|
||||
icon('lock mr-2'),
|
||||
$group->name,
|
||||
),
|
||||
$group->name
|
||||
)
|
||||
),
|
||||
li
|
||||
(
|
||||
span
|
||||
(
|
||||
set::className('text-md text-gray'),
|
||||
html($lang->arrow),
|
||||
),
|
||||
html($lang->arrow)
|
||||
)
|
||||
),
|
||||
li
|
||||
(
|
||||
@@ -41,7 +41,7 @@ div
|
||||
set::href(inlink('managepriv', "projectID=$projectID&type=byGroup¶m=$groupID")),
|
||||
span($lang->group->all)
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -64,7 +64,7 @@ $getActions = function($moduleActions, $moduleName, $groupPrivs)
|
||||
set::name("actions[{$moduleName}][]"),
|
||||
set::text($lang->$moduleName->$actionLabel),
|
||||
set::value($action),
|
||||
set::checked(isset($groupPrivs[$moduleName][$action]) && $groupPrivs[$moduleName][$action] == $action),
|
||||
set::checked(isset($groupPrivs[$moduleName][$action]) && $groupPrivs[$moduleName][$action] == $action)
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -98,7 +98,7 @@ foreach($lang->resource as $moduleName => $moduleActions)
|
||||
set::rootClass('check-all'),
|
||||
setID("allChecker{$moduleName}"),
|
||||
set::text($lang->$moduleName->common),
|
||||
set::checked($methodPrivs == $mehtodSelect),
|
||||
set::checked($methodPrivs == $mehtodSelect)
|
||||
)
|
||||
),
|
||||
isset($lang->$moduleName->menus) ? h::td
|
||||
@@ -110,21 +110,21 @@ foreach($lang->resource as $moduleName => $moduleActions)
|
||||
set::name("actions[{$moduleName}][]"),
|
||||
set::text($lang->$moduleName->browse),
|
||||
set::value('browse'),
|
||||
set::checked(isset($groupPrivs[$moduleName]) && $groupPrivs[$moduleName] == 'browse'),
|
||||
set::checked(isset($groupPrivs[$moduleName]) && $groupPrivs[$moduleName] == 'browse')
|
||||
),
|
||||
icon('plus'),
|
||||
checkList
|
||||
(
|
||||
set::items($lang->$moduleName->menus),
|
||||
set::name("actions[{$moduleName}][]"),
|
||||
set::value(isset($groupPrivs[$moduleName]) ? implode(',', $groupPrivs[$moduleName]) : ''),
|
||||
),
|
||||
set::value(isset($groupPrivs[$moduleName]) ? implode(',', $groupPrivs[$moduleName]) : '')
|
||||
)
|
||||
) : null,
|
||||
h::td
|
||||
(
|
||||
set('id', $moduleName),
|
||||
set('colspan', !empty($lang->$moduleName->menus) ? 1 : 2),
|
||||
$getActions($moduleActions, $moduleName, $groupPrivs),
|
||||
$getActions($moduleActions, $moduleName, $groupPrivs)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -169,7 +169,7 @@ panel
|
||||
set::rootClass('check-all'),
|
||||
setID('allChecker'),
|
||||
set::text($lang->selectAll),
|
||||
set::checked($modulePrivs == $moduleSelect),
|
||||
set::checked($modulePrivs == $moduleSelect)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -179,9 +179,9 @@ panel
|
||||
toolbar
|
||||
(
|
||||
btn(set(array('text' => $lang->save, 'btnType' => 'submit', 'type' => 'primary', 'class' => 'mx-6'))),
|
||||
btn(set(array('text' => $lang->goback, 'url' => createLink('project', 'group', "projectID={$projectID}"), 'back' => true))),
|
||||
btn(set(array('text' => $lang->goback, 'url' => createLink('project', 'group', "projectID={$projectID}"), 'back' => true)))
|
||||
),
|
||||
formHidden('noChecked', 1),
|
||||
formHidden('noChecked', 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -44,7 +44,7 @@ if($config->systemMode == 'ALM')
|
||||
set::multiple(true),
|
||||
set::items($otherProducts)
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
);
|
||||
@@ -135,7 +135,7 @@ foreach($unlinkedProducts as $productID => $productName)
|
||||
(
|
||||
set::name("products[{$index}]"),
|
||||
set::text($productName),
|
||||
set::value($productID),
|
||||
set::value($productID)
|
||||
),
|
||||
isset($branchGroups[$productID]) ? picker
|
||||
(
|
||||
|
||||
@@ -19,7 +19,7 @@ formPanel
|
||||
set::label($lang->project->realBegan),
|
||||
set::name('realBegan'),
|
||||
set::control('date'),
|
||||
set::value(helper::today()),
|
||||
set::value(helper::today())
|
||||
),
|
||||
formGroup
|
||||
(
|
||||
@@ -27,9 +27,9 @@ formPanel
|
||||
editor
|
||||
(
|
||||
set::name('comment'),
|
||||
set::rows('6'),
|
||||
set::rows('6')
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
hr();
|
||||
history();
|
||||
|
||||
@@ -19,9 +19,9 @@ formPanel
|
||||
editor
|
||||
(
|
||||
set::name('comment'),
|
||||
set::rows('6'),
|
||||
set::rows('6')
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
hr();
|
||||
history();
|
||||
|
||||
@@ -23,7 +23,7 @@ foreach($teamMembers as $member)
|
||||
featureBar
|
||||
(
|
||||
set::current('all'),
|
||||
set::linkParams("projectID={$projectID}"),
|
||||
set::linkParams("projectID={$projectID}")
|
||||
);
|
||||
|
||||
/* zin: Define the toolbar on main menu. */
|
||||
@@ -36,7 +36,7 @@ if($canManageMembers) $manageMembersItem = array('icon' => 'persons', 'class' =>
|
||||
|
||||
toolbar
|
||||
(
|
||||
$canManageMembers ? item(set($manageMembersItem)) : null,
|
||||
$canManageMembers ? item(set($manageMembersItem)) : null
|
||||
);
|
||||
|
||||
jsVar('confirmUnlinkMember', $lang->project->confirmUnlinkMember);
|
||||
|
||||
@@ -143,7 +143,7 @@ if(!empty($project->PM))
|
||||
(
|
||||
setClass('text-gray'),
|
||||
$lang->project->PM
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ foreach($teamMembers as $teamMember)
|
||||
(
|
||||
setClass('text-gray'),
|
||||
$lang->project->member
|
||||
),
|
||||
)
|
||||
);
|
||||
$memberCount ++;
|
||||
}
|
||||
@@ -295,7 +295,7 @@ div
|
||||
setClass('text-gray'),
|
||||
$lang->bug->common
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
),
|
||||
div
|
||||
@@ -362,7 +362,7 @@ div
|
||||
(
|
||||
setClass('clip text-secondary programBox'),
|
||||
$programDom
|
||||
),
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user