* [task#142856,done,1.5h] finish task.
This commit is contained in:
@@ -154,7 +154,7 @@ window.handleRenderRow = function($row, index, data)
|
||||
if((data != undefined && data.type != undefined && data.type != 'stage') || ($currentType.length && $currentType.val() != 'stage'))
|
||||
{
|
||||
$row.find('input[data-name="percent"]').prop('disabled', true);
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').addClass('disabled').prop('disabled', true);
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').prop('disabled', true).attr('title', addSubTip);
|
||||
}
|
||||
|
||||
$row.find('[data-name="type"]').find('.picker-box').on('inited', function(e, info)
|
||||
@@ -211,8 +211,8 @@ window.handleRenderRow = function($row, index, data)
|
||||
{
|
||||
if(planID == 0 && level == 0)
|
||||
{
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="sort"]').addClass('disabled').prop('disabled', true);
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="addSibling"]').addClass('disabled').prop('disabled', true);
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="sort"]').prop('disabled', true).attr('title', sortableTip);
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="addSibling"]').prop('disabled', true).attr('title', addSiblingTip);
|
||||
}
|
||||
|
||||
$row.find('[data-name="attribute"]').find('.picker-box').on('inited', function(e, info){ info[0].render({disabled: true}); });
|
||||
@@ -414,7 +414,7 @@ window.changeType = function(obj)
|
||||
const $target = $(obj);
|
||||
let $row = $target.closest('tr');
|
||||
$row.find('input[data-name="percent"]').prop('disabled', type != 'stage');
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').toggleClass('disabled', type != 'stage').prop('disabled', type != 'stage');
|
||||
$row.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').prop('disabled', type != 'stage').attr('title', type != 'stage' ? addSubTip : '');
|
||||
|
||||
let $nextRow = $row.next();
|
||||
let level = $row.attr('data-level');
|
||||
@@ -443,7 +443,7 @@ window.changeType = function(obj)
|
||||
if($nextRow.attr('data-level') != level) return; //只修改同级的管理方法。
|
||||
|
||||
$nextRow.find('input[data-name="percent"]').prop('disabled', type != 'stage');
|
||||
$nextRow.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').toggleClass('disabled', type != 'stage').prop('disabled', type != 'stage');
|
||||
$nextRow.find('[data-name="ACTIONS"]').find('[data-type="addSub"]').prop('disabled', type != 'stage').attr('title', type != 'stage' ? addSubTip : '');
|
||||
|
||||
let $nextTypePicker = $nextRow.find('.picker-box[data-name=type]').zui('picker');
|
||||
if($nextTypePicker == undefined) return;
|
||||
|
||||
@@ -116,6 +116,8 @@ $lang->programplan->confirmDelete = 'Do you want to delete the current plan?
|
||||
$lang->programplan->confirmChangeAttr = 'The type of the sub-stage will be adjusted to "%s" synchronously according to the type of the parent stage after modification. Do you want to save?';
|
||||
$lang->programplan->noticeChangeAttr = 'The type of the sub-stage will be adjusted to "%s" synchronously according to the type of the parent stage after modification';
|
||||
$lang->programplan->workloadTips = 'The proportion of the sub stage workload is divided by 100%.';
|
||||
$lang->programplan->attributeTip = 'Except for the comprehensive type, the sub-stage type is consistent with the parent stage type.';
|
||||
$lang->programplan->addSubTip = 'Kanban/Iteration cannot be split.';
|
||||
|
||||
$lang->programplan->stageCustom['date'] = 'Show Date';
|
||||
$lang->programplan->stageCustom['task'] = 'Show Task';
|
||||
|
||||
@@ -116,6 +116,8 @@ $lang->programplan->confirmDelete = 'Do you want to delete the current plan?
|
||||
$lang->programplan->confirmChangeAttr = 'The type of the sub-stage will be adjusted to "%s" synchronously according to the type of the parent stage after modification. Do you want to save?';
|
||||
$lang->programplan->noticeChangeAttr = 'The type of the sub-stage will be adjusted to "%s" synchronously according to the type of the parent stage after modification.';
|
||||
$lang->programplan->workloadTips = 'The workload of the sub stage is divided by 100%.';
|
||||
$lang->programplan->attributeTip = 'Except for the comprehensive type, the sub-stage type is consistent with the parent stage type.';
|
||||
$lang->programplan->addSubTip = 'Kanban/Iteration cannot be split.';
|
||||
|
||||
$lang->programplan->stageCustom['date'] = 'Show Date';
|
||||
$lang->programplan->stageCustom['task'] = 'Show Task';
|
||||
|
||||
@@ -116,6 +116,8 @@ $lang->programplan->confirmDelete = 'Do you want to delete the current plan?
|
||||
$lang->programplan->confirmChangeAttr = 'The type of the sub-stage will be adjusted to "%s" synchronously according to the type of the parent stage after modification. Do you want to save?';
|
||||
$lang->programplan->noticeChangeAttr = 'The type of the sub-stage will be adjusted to "%s" synchronously according to the type of the parent stage after modification.';
|
||||
$lang->programplan->workloadTips = 'The proportion of the sub stage workload is divided by 100%.';
|
||||
$lang->programplan->attributeTip = 'Except for the comprehensive type, the sub-stage type is consistent with the parent stage type.';
|
||||
$lang->programplan->addSubTip = 'Kanban/Iteration cannot be split.';
|
||||
|
||||
$lang->programplan->stageCustom['date'] = 'Show Date';
|
||||
$lang->programplan->stageCustom['task'] = 'Show Task';
|
||||
|
||||
@@ -116,6 +116,8 @@ $lang->programplan->confirmDelete = '确定要删除当前计划吗?';
|
||||
$lang->programplan->confirmChangeAttr = '修改后子阶段的类型将根据父阶段类型同步调整为“%s”,是否保存?';
|
||||
$lang->programplan->noticeChangeAttr = '修改后子阶段的类型将根据父阶段类型同步调整为“%s”';
|
||||
$lang->programplan->workloadTips = '子阶段工作量占比按百分百的比例进行拆分';
|
||||
$lang->programplan->attributeTip = '除综合类型外,子阶段与父阶段类型保持一致';
|
||||
$lang->programplan->addSubTip = '迭代/看板下不能细分';
|
||||
|
||||
$lang->programplan->stageCustom['date'] = '显示日期';
|
||||
$lang->programplan->stageCustom['task'] = '显示任务';
|
||||
|
||||
@@ -137,9 +137,37 @@ $fnGenerateFields = function() use ($lang, $requiredFields, $showFields, $fields
|
||||
$field['hidden'] = false;
|
||||
$field['items'] = $lang->execution->typeList;
|
||||
}
|
||||
|
||||
if($name == 'attribute' && in_array($project->model, array('waterfall', 'waterfallplus')))
|
||||
{
|
||||
$field['tipIcon'] = 'help';
|
||||
$field['tip'] = $lang->programplan->attributeTip;
|
||||
$field['tipProps'] = array
|
||||
(
|
||||
'id' => 'tooltipHover',
|
||||
'data-toggle' => 'tooltip',
|
||||
'data-placement' => 'right',
|
||||
'data-type' => 'white',
|
||||
'data-class-name' => 'text-gray border border-gray-300'
|
||||
);
|
||||
}
|
||||
|
||||
if($name == 'milestone') $field['width'] = '100px';
|
||||
if($name == 'enabled') $field['width'] = '80px';
|
||||
if($name == 'point') $field['width'] = '200px';
|
||||
if($name == 'point')
|
||||
{
|
||||
$field['width'] = '200px';
|
||||
$field['tipIcon'] = 'help';
|
||||
$field['tip'] = $lang->programplan->pointTip;
|
||||
$field['tipProps'] = array
|
||||
(
|
||||
'id' => 'tooltipHover',
|
||||
'data-toggle' => 'tooltip',
|
||||
'data-placement' => 'right',
|
||||
'data-type' => 'white',
|
||||
'data-class-name' => 'text-gray border border-gray-300'
|
||||
);
|
||||
}
|
||||
|
||||
$items[] = $field;
|
||||
}
|
||||
@@ -233,6 +261,9 @@ jsVar('ipdStagePoint', $project->model == 'ipd' ? $config->review->ipdReviewP
|
||||
jsVar('attributeList', $project->model == 'ipd' ? $lang->stage->ipdTypeList : $lang->stage->typeList);
|
||||
jsVar('reviewedPoints', $project->model == 'ipd' ? $reviewedPoints : array());
|
||||
jsVar('reviewedPointTip', $project->model == 'ipd' ? $lang->programplan->reviewedPointTip : '');
|
||||
jsVar('addSubTip', $lang->programplan->addSubTip);
|
||||
jsVar('addSiblingTip', $lang->programplan->addSiblingTip);
|
||||
jsVar('sortableTip', $lang->programplan->sortableTip);
|
||||
|
||||
featureBar(li
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user