diff --git a/module/productplan/control.php b/module/productplan/control.php index 56b6ab3845..1344fa2b5b 100644 --- a/module/productplan/control.php +++ b/module/productplan/control.php @@ -313,7 +313,7 @@ class productplan extends control $this->view->canBeChanged = $canBeChanged; if($this->app->getViewType() == 'json') - { + { unset($this->view->storyPager); unset($this->view->bugPager); } diff --git a/module/productplan/js/create.js b/module/productplan/js/create.js index 080a8d0581..bc8e174472 100644 --- a/module/productplan/js/create.js +++ b/module/productplan/js/create.js @@ -41,7 +41,6 @@ function computeEndDate(delta) $('#begin').on('change', function() { - $("#end").val(''); $("input:radio[name='delta']").attr("checked",false); }); @@ -55,11 +54,11 @@ $('#future').on('change', function() if($(this).prop('checked')) { $('#begin').attr('disabled', 'disabled'); - $('#end').val('').parents('tr').hide(); + $('#end').attr('disabled', 'disabled').parents('tr').hide(); } else { $('#begin').removeAttr('disabled'); - $('#end').val('').parents('tr').show(); + $('#end').removeAttr('disabled').parents('tr').show(); } }); diff --git a/module/productplan/lang/de.php b/module/productplan/lang/de.php index bb038601fd..e34fffe508 100644 --- a/module/productplan/lang/de.php +++ b/module/productplan/lang/de.php @@ -77,10 +77,12 @@ $lang->productplan->endList[93] = '3 Monate'; $lang->productplan->endList[186] = '6 Monate'; $lang->productplan->endList[365] = '1 Jahr'; -$lang->productplan->errorNoTitle = 'ID %s Titel darf nicht leer sein.'; -$lang->productplan->errorNoBegin = 'ID %s Start darf nicht leer sein.'; -$lang->productplan->errorNoEnd = 'ID %s Ende darf nicht leer sein.'; -$lang->productplan->beginGeEnd = 'ID %s Start darf nicht größer als Ende sein.'; +$lang->productplan->errorNoTitle = 'ID %s Titel darf nicht leer sein.'; +$lang->productplan->errorNoBegin = 'ID %s Start darf nicht leer sein.'; +$lang->productplan->errorNoEnd = 'ID %s Ende darf nicht leer sein.'; +$lang->productplan->beginGeEnd = 'ID %s Start darf nicht größer als Ende sein.'; +$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; +$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->productplan->featureBar['browse']['all'] = 'Alle'; $lang->productplan->featureBar['browse']['unexpired'] = 'Nicht abgelaufen'; diff --git a/module/productplan/lang/en.php b/module/productplan/lang/en.php index f277c7fbbc..9fccee19f4 100644 --- a/module/productplan/lang/en.php +++ b/module/productplan/lang/en.php @@ -78,10 +78,12 @@ $lang->productplan->endList[93] = '3 Months'; $lang->productplan->endList[186] = '6 Months'; $lang->productplan->endList[365] = '1 Year'; -$lang->productplan->errorNoTitle = 'ID %s title should not be empty.'; -$lang->productplan->errorNoBegin = 'ID %s begin time should not be empty.'; -$lang->productplan->errorNoEnd = 'ID %s end time should not be empty.'; -$lang->productplan->beginGeEnd = 'ID %s begin time should not be >= end time.'; +$lang->productplan->errorNoTitle = 'ID %s title should not be empty.'; +$lang->productplan->errorNoBegin = 'ID %s begin time should not be empty.'; +$lang->productplan->errorNoEnd = 'ID %s end time should not be empty.'; +$lang->productplan->beginGeEnd = 'ID %s begin time should not be >= end time.'; +$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; +$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->productplan->featureBar['browse']['all'] = 'All'; $lang->productplan->featureBar['browse']['unexpired'] = 'Unexpired'; diff --git a/module/productplan/lang/fr.php b/module/productplan/lang/fr.php index da702ba7d7..33daa590c5 100644 --- a/module/productplan/lang/fr.php +++ b/module/productplan/lang/fr.php @@ -77,10 +77,12 @@ $lang->productplan->endList[93] = '3 Mois'; $lang->productplan->endList[186] = '6 Mois'; $lang->productplan->endList[365] = '1 Année'; -$lang->productplan->errorNoTitle = 'ID %s titre ne doit pas être à blanc.'; -$lang->productplan->errorNoBegin = "ID %s l'heure de début devrait être renseignée."; -$lang->productplan->errorNoEnd = "ID %s l'heure de fin devrait être renseignée."; -$lang->productplan->beginGeEnd = "ID %s l'heure de début ne doit pas être >= à l'heure de fin."; +$lang->productplan->errorNoTitle = 'ID %s titre ne doit pas être à blanc.'; +$lang->productplan->errorNoBegin = "ID %s l'heure de début devrait être renseignée."; +$lang->productplan->errorNoEnd = "ID %s l'heure de fin devrait être renseignée."; +$lang->productplan->beginGeEnd = "ID %s l'heure de début ne doit pas être >= à l'heure de fin."; +$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; +$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->productplan->featureBar['browse']['all'] = 'Tous'; $lang->productplan->featureBar['browse']['unexpired'] = 'Non échus'; diff --git a/module/productplan/lang/vi.php b/module/productplan/lang/vi.php index ce12fba817..c5ee987c72 100644 --- a/module/productplan/lang/vi.php +++ b/module/productplan/lang/vi.php @@ -77,10 +77,12 @@ $lang->productplan->endList[93] = '3 tháng'; $lang->productplan->endList[186] = '6 tháng'; $lang->productplan->endList[365] = '1 năm'; -$lang->productplan->errorNoTitle = 'Tiêu đề ID %s không nên trống.'; -$lang->productplan->errorNoBegin = 'Thời gian bắt đầu ID %s không nên trống.'; -$lang->productplan->errorNoEnd = 'Thời gian kết thúc ID %s không nên trống.'; -$lang->productplan->beginGeEnd = 'ID %s thời gian bắt đầu không nên >= thời gian kết thúc.'; +$lang->productplan->errorNoTitle = 'Tiêu đề ID %s không nên trống.'; +$lang->productplan->errorNoBegin = 'Thời gian bắt đầu ID %s không nên trống.'; +$lang->productplan->errorNoEnd = 'Thời gian kết thúc ID %s không nên trống.'; +$lang->productplan->beginGeEnd = 'ID %s thời gian bắt đầu không nên >= thời gian kết thúc.'; +$lang->productplan->beginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; +$lang->productplan->endGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->productplan->featureBar['browse']['all'] = 'Tất cả'; $lang->productplan->featureBar['browse']['unexpired'] = 'Chưa quá hạn'; diff --git a/module/productplan/lang/zh-cn.php b/module/productplan/lang/zh-cn.php index 7414100754..f4edb9e170 100644 --- a/module/productplan/lang/zh-cn.php +++ b/module/productplan/lang/zh-cn.php @@ -78,10 +78,13 @@ $lang->productplan->endList[93] = '三个月'; $lang->productplan->endList[186] = '半年'; $lang->productplan->endList[365] = '一年'; -$lang->productplan->errorNoTitle = 'ID %s 标题不能为空'; -$lang->productplan->errorNoBegin = 'ID %s 开始时间不能为空'; -$lang->productplan->errorNoEnd = 'ID %s 结束时间不能为空'; -$lang->productplan->beginGeEnd = 'ID %s 开始时间不能大于结束时间'; +$lang->productplan->errorNoTitle = 'ID %s 标题不能为空'; +$lang->productplan->errorNoBegin = 'ID %s 开始时间不能为空'; +$lang->productplan->errorNoEnd = 'ID %s 结束时间不能为空'; +$lang->productplan->beginGeEnd = 'ID %s 开始时间不能大于结束时间'; +$lang->productplan->beginLetterParent = "父计划的开始日期:%s,开始日期不能小于父计划的开始日期"; +$lang->productplan->endGreaterParent = "父计划的完成日期:%s,完成日期不能大于父计划的完成日期"; + $lang->productplan->featureBar['browse']['all'] = '全部'; $lang->productplan->featureBar['browse']['unexpired'] = '未过期'; diff --git a/module/productplan/lang/zh-tw.php b/module/productplan/lang/zh-tw.php index 60d1238dd2..4c3a56dbc1 100644 --- a/module/productplan/lang/zh-tw.php +++ b/module/productplan/lang/zh-tw.php @@ -78,10 +78,12 @@ $lang->productplan->endList[93] = '三個月'; $lang->productplan->endList[186] = '半年'; $lang->productplan->endList[365] = '一年'; -$lang->productplan->errorNoTitle = 'ID %s 標題不能為空'; -$lang->productplan->errorNoBegin = 'ID %s 開始時間不能為空'; -$lang->productplan->errorNoEnd = 'ID %s 結束時間不能為空'; -$lang->productplan->beginGeEnd = 'ID %s 開始時間不能大於結束時間'; +$lang->productplan->errorNoTitle = 'ID %s 標題不能為空'; +$lang->productplan->errorNoBegin = 'ID %s 開始時間不能為空'; +$lang->productplan->errorNoEnd = 'ID %s 結束時間不能為空'; +$lang->productplan->beginGeEnd = 'ID %s 開始時間不能大於結束時間'; +$lang->productplan->beginLetterParent = "父計畫的開始日期:%s,開始日期不能小於父計畫的開始日期"; +$lang->productplan->endGreaterParent = "父計畫的完成日期:%s,完成日期不能大於父計畫的完成日期"; $lang->productplan->featureBar['browse']['all'] = '全部'; $lang->productplan->featureBar['browse']['unexpired'] = '未過期'; diff --git a/module/productplan/model.php b/module/productplan/model.php index 7a026dcc0a..76cabb9a9f 100644 --- a/module/productplan/model.php +++ b/module/productplan/model.php @@ -332,6 +332,18 @@ class productplanModel extends model ->setIF($this->post->future || empty($_POST['end']), 'end', '2030-01-01') ->remove('delta,uid,future') ->get(); + + if(!empty($plan->parentBegin)) + { + if($plan->begin < $plan->parentBegin) dao::$errors['begin'] = sprintf($this->lang->productplan->beginLetterParent, $plan->parentBegin); + } + if(!empty($plan->parentEnd)) + { + if($plan->end !=='2030-01-01' and $plan->end > $plan->parentEnd) dao::$errors['end'] = sprintf($this->lang->productplan->endGreaterParent, $plan->parentEnd); + } + unset($plan->parentBegin); + unset($plan->parentEnd); + if(!$this->post->future and strpos($this->config->productplan->create->requiredFields, 'begin') !== false and empty($_POST['begin'])) { dao::$errors['begin'] = sprintf($this->lang->error->notempty, $this->lang->productplan->begin); diff --git a/module/productplan/view/create.html.php b/module/productplan/view/create.html.php index e5d12a7a27..e973129590 100644 --- a/module/productplan/view/create.html.php +++ b/module/productplan/view/create.html.php @@ -20,12 +20,15 @@