diff --git a/module/program/ui/create.html.php b/module/program/ui/create.html.php
index adb865d7cc..c5ee9c245f 100644
--- a/module/program/ui/create.html.php
+++ b/module/program/ui/create.html.php
@@ -23,6 +23,13 @@ $fields = useFields('program.create');
$autoLoad = array();
$autoLoad['parent'] = 'parent,future,budget,budgetUnit,acl,whitelist';
+$handleLongTimeChange = jsCallback()->do(<<<'JS'
+ const endPicker = $element.find('[name=end]').zui('datePicker');
+ const longTime = $element.find('[name=longTime]').prop('checked');
+ endPicker.render({disabled: longTime});
+ if(longTime) endPicker.$.setValue('');
+JS);
+
formGridPanel
(
set::modeSwitcher(false),
@@ -33,7 +40,7 @@ formGridPanel
on::change('[name=budget]', 'budgetOverrunTips'),
on::change('[name=future]', 'onFutureChange'),
on::change('[name=acl]', 'onAclChange'),
- on::change('[name=longTime]')->do('$("[name=end]").zui("datePicker").render({disabled: $(target).prop("checked")});'),
+ on::change('[name=longTime]', $handleLongTimeChange),
on::change('[name=begin], [name=end]', 'onDateChange')
);
diff --git a/module/program/ui/edit.field.php b/module/program/ui/edit.field.php
index 3b00d54814..1b2b07009b 100644
--- a/module/program/ui/edit.field.php
+++ b/module/program/ui/edit.field.php
@@ -7,19 +7,9 @@ $fields = defineFieldList('program.edit', 'program');
$isLongTime = data('program.end') && data('program.end') == LONG_TIME;
$fields->field('dateRange')
->checkbox(array('text' => $lang->project->longTime, 'name' => 'longTime', 'checked' => $isLongTime))
- ->controlBegin('dateRangePicker')
- ->beginName('begin')
- ->beginPlaceholder($lang->project->begin)
->beginValue(data('program.begin'))
- ->endName('end')
- ->endPlaceholder($lang->project->end)
->endValue(data('program.end'))
- ->endDisabled($isLongTime)
- ->endList($lang->execution->endList)
- ->controlEnd()
- ->tip(' ')
- ->tipProps(array('id' => 'dateTip'))
- ->tipClass('text-warning hidden');
+ ->endDisabled($isLongTime);
$fields->field('acl')
->items(data('program.parent') ? $lang->program->subAclList : $lang->program->aclList)
diff --git a/module/program/ui/edit.html.php b/module/program/ui/edit.html.php
index b91a402791..4420ff449a 100644
--- a/module/program/ui/edit.html.php
+++ b/module/program/ui/edit.html.php
@@ -43,7 +43,7 @@ formGridPanel
on::change('[name=acl]', 'onAclChange'),
on::change('[name=longTime]', $handleLongTimeChange),
on::change('[name=begin], [name=end]', 'onDateChange'),
- on::inited()->triggerEvent('$element.find("[name=longTime]")', 'change')
+ on::init()->do('setTimeout(() => $element.find("[name=longTime]").trigger("change"), 500)')
);
render();