* Add long time checkbox to project::create and project::edit, and fix bug #45232.

This commit is contained in:
liumengyi
2024-01-25 15:12:02 +08:00
parent 0256e443dd
commit 711492fbc3
4 changed files with 10 additions and 6 deletions
+4 -2
View File
@@ -44,20 +44,22 @@ if($hasCode)
$fields->field('PM')->control('picker')->items(data('PMUsers'));
$isLongTime = data('copyProject') ? data('copyProject.end') == LONG_TIME : data('project.end') == LONG_TIME;
$fields->field('begin')
->label($lang->project->planDate)
->checkbox(array('text' => $lang->project->longTime, 'name' => 'longTime', 'checked' => $isLongTime))
->required()
->control('inputGroup')
->itemBegin('begin')->control('datePicker')->placeholder($lang->project->begin)->value(data('project.begin') ? data('project.begin') : date('Y-m-d'))->required(true)->itemEnd()
->item(array('control' => 'span', 'text' => '-'))
->itemBegin('end')->control('datePicker')->placeholder($lang->project->end)->required(true)->value(data('project.end'))
->itemBegin('end')->control('datePicker')->placeholder($lang->project->end)->required(true)->value(data('project.end'))->className('end-picker')->disabled($isLongTime)
->menu(array('items' => jsRaw('window.getDateMenu')))
->itemEnd()
->tip(' ')
->tipProps(array('id' => 'dateTip'))
->tipClass('text-warning hidden');
$fields->field('days')->label($lang->project->days . $lang->project->daysUnit)->control('input');
$fields->field('days')->label($lang->project->days . $lang->project->daysUnit)->control('input')->hidden($isLongTime);
$fields->field('productsBox')
->width('full')
+1
View File
@@ -65,6 +65,7 @@ formGridPanel
on::click('[name=name], [name=code], [name=end], [name=days], [data-name="parent"] .pick *', 'removeTips'),
on::click('[type=submit]', 'removeAllTips'),
on::change('[name=hasProduct]', 'changeType'),
on::change('[name=longTime]')->do('$("[name=end]").zui("datePicker").render({disabled: $(target).prop("checked")}); $("[data-name=days]").toggleClass("hidden",$(target).prop("checked"));'),
on::change('[name=future]', 'toggleBudget'),
on::change('[name=begin], [name=end]', 'computeWorkDays'),
on::change('[name^=products]', 'toggleStageBy'),
+1
View File
@@ -59,6 +59,7 @@ formGridPanel
)
),
on::change('[name=hasProduct]', 'changeType'),
on::change('[name=longTime]')->do('$("[name=end]").zui("datePicker").render({disabled: $(target).prop("checked")}); $("[data-name=days]").toggleClass("hidden",$(target).prop("checked"));'),
on::change('[name=future]', 'toggleBudget'),
on::change('[name=begin], [name=end]', 'computeWorkDays'),
on::change('[name=parent], [name=budget]', 'checkBudget'),
+4 -4
View File
@@ -20,8 +20,8 @@ class projectZen extends project
protected function prepareCreateExtras(object $postData): object|false
{
$project = $postData->setDefault('status', 'wait')
->setIF($this->post->delta == 999, 'end', LONG_TIME)
->setIF($this->post->delta == 999, 'days', 0)
->setIF($this->post->longTime, 'end', LONG_TIME)
->setIF($this->post->longTime, 'days', 0)
->setIF($this->post->acl == 'open', 'whitelist', '')
->setIF(!isset($_POST['whitelist']), 'whitelist', '')
->setIF($this->post->multiple != 'on', 'multiple', '0')
@@ -83,8 +83,8 @@ class projectZen extends project
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', helper::now())
->setDefault('days', '0')
->setIF($this->post->delta == 999, 'end', LONG_TIME)
->setIF($this->post->delta == 999, 'days', 0)
->setIF($this->post->longTime, 'end', LONG_TIME)
->setIF($this->post->longTime, 'days', 0)
->setIF($this->post->future, 'budget', 0)
->setIF($this->post->budget != 0, 'budget', round((float)$this->post->budget, 2))
->join('whitelist', ',')