From e53db079e9a9fabec56f0b132a0bb027422490f7 Mon Sep 17 00:00:00 2001 From: daitingting Date: Tue, 16 Jan 2024 08:37:36 +0000 Subject: [PATCH] * Adjust budget field. --- module/program/css/common.ui.css | 4 +++- module/program/js/common.ui.js | 8 +++++++- module/program/ui/common.field.php | 22 +++++++++++++++++++--- module/program/ui/create.field.php | 6 +----- module/program/ui/edit.field.php | 7 ------- 5 files changed, 30 insertions(+), 17 deletions(-) diff --git a/module/program/css/common.ui.css b/module/program/css/common.ui.css index b5be996310..3f4ff531f7 100644 --- a/module/program/css/common.ui.css +++ b/module/program/css/common.ui.css @@ -1,2 +1,4 @@ .items-center {align-items: center !important} -#ignore {text-decoration: underline; cursor: pointer; color: #ef7b0f;} +#ignore {text-decoration: underline; cursor: pointer; color: #ef7b0f; padding-left: 5px;} + +.form-group[data-name=budget] .has-prefix .input-control-prefix {padding: 0} diff --git a/module/program/js/common.ui.js b/module/program/js/common.ui.js index 2a0760d412..4255d6207d 100644 --- a/module/program/js/common.ui.js +++ b/module/program/js/common.ui.js @@ -3,6 +3,12 @@ window.ignoreTips = { 'dateTip' : false }; +window.toggleBudgetUnit = function(unit) +{ + $('[data-name="budget"] > .has-prefix > .input-control-prefix > a').text(currencySymbol[unit]); + $('[name="budgetUnit"]').val(unit); +}; + var batchEditDateTips = new Array(); /** @@ -298,7 +304,7 @@ window.budgetOverrunTips = function(e) var data = JSON.parse(data); var tip = ""; - if(budget !=0 && budget !== null && budget > data.availableBudget) var tip = "

" + budgetOverrun + currencySymbol[data.budgetUnit] + data.availableBudget + "

" + ignore + "

"; + if(budget !=0 && budget !== null && budget > data.availableBudget) var tip = "

" + budgetOverrun + currencySymbol[data.budgetUnit] + data.availableBudget + "" + ignore + "

"; if($('#beyondBudgetTip').length > 0) $('#beyondBudgetTip').closest('.form-row').remove(); $('[name=budget]').parent().after(tip); diff --git a/module/program/ui/common.field.php b/module/program/ui/common.field.php index 0f86aac7d4..dee6868ce0 100644 --- a/module/program/ui/common.field.php +++ b/module/program/ui/common.field.php @@ -1,6 +1,6 @@ field('PM') $fields->field('begin'); +$currency = data('parentProgram.budgetUnit') ? data('parentProgram.budgetUnit') : $config->project->defaultCurrency; +$budgetItemList = array(); +$budgetUnitList = data('budgetUnitList') ? data('budgetUnitList') : array(); +foreach($budgetUnitList as $key => $value) +{ + $budgetItemList[] = array('text' => $value, 'value' => $key, 'url' => "javascript:toggleBudgetUnit('{$key}')"); +} + $fields->field('budget') - ->control('inputGroup') ->label($lang->project->budget . $lang->project->budgetUnit) - ->checkbox(array('name' => 'future', 'text' => $lang->project->future)); + ->checkbox(array('name' => 'future', 'text' => $lang->project->future)) + ->control('inputControl', array('control' => 'input', 'name' => 'budget', 'prefix' => array('control' => 'dropdown', 'name' => 'budgetUnit', 'items' => $budgetItemList, 'widget' => true, 'text' => zget($lang->project->currencySymbol, $currency), 'className' => 'btn ghost'), 'prefixWidth' => 34, 'disabled' => data('parentProgram.budget') != null && data('parentProgram.budget') == 0)); + +if(data('parentProgram.budget')) +{ + $fields->field('budget') + ->tip(sprintf($lang->project->budgetOverrun, zget($lang->project->currencySymbol, $currency) . data('parentProgram.budget'))) + ->tipProps(array('id' => 'budgetTip')) + ->tipClass('text-warning hidden'); +} $fields->field('desc') ->width('full') diff --git a/module/program/ui/create.field.php b/module/program/ui/create.field.php index 5370842467..918ea12b15 100644 --- a/module/program/ui/create.field.php +++ b/module/program/ui/create.field.php @@ -1,6 +1,6 @@ field('begin') ->itemBegin()->type('addon')->label($lang->project->to)->text($lang->colon)->itemEnd() ->itemBegin('end')->require()->type('datePicker')->placeholder($lang->project->end)->itemEnd(); -$fields->field('budget') - ->itemBegin('budget')->control('input')->itemEnd() - ->item(field('budgetUnit')->required()->disabled(data('parentProgram') ? true : false)->control('picker')->name('budgetUnit')->items(data('budgetUnitList'))->value(data('parentProgram') ? data('parentProgram.budgetUnit') : $config->project->defaultCurrency)); - $fields->field('acl') ->items(data('parentProgram') ? $lang->program->subAclList : $lang->program->aclList) ->value('open'); diff --git a/module/program/ui/edit.field.php b/module/program/ui/edit.field.php index d643cc7da7..efa4fb5e03 100644 --- a/module/program/ui/edit.field.php +++ b/module/program/ui/edit.field.php @@ -12,13 +12,6 @@ $fields->field('begin') ->itemBegin()->type('addon')->label($lang->project->to)->text($lang->colon)->itemEnd() ->itemBegin('end')->require()->type('datePicker')->value(data('program.end'))->placeholder($lang->project->end)->itemEnd(); -$fields->field('budget') - ->checkbox(array('name' => 'future', 'text' => $lang->project->future, 'checked' => data('program.budget') == 0 ? true : false)) - ->itemBegin('budget')->control('input')->value(data('program.budget'))->disabled(data('program.budget') == 0 ? true : false)->itemEnd() - ->item(field('budgetUnit')->required()->disabled(data('program.parent') ? true : false)->control('picker')->name('budgetUnit')->items(data('budgetUnitList'))->value(data('program.parent') ? data('parentProgram.budgetUnit') : $config->project->defaultCurrency)) - ->itemBegin('syncPRJUnit')->className('hidden')->value('false')->itemEnd() - ->itemBegin('exchangeRate')->className('hidden')->value('')->itemEnd(); - $fields->field('acl') ->items(data('program.parent') ? $lang->program->subAclList : $lang->program->aclList);