diff --git a/module/todo/css/common.ui.css b/module/todo/css/common.ui.css
index f63711e746..9c706f0d5c 100644
--- a/module/todo/css/common.ui.css
+++ b/module/todo/css/common.ui.css
@@ -1,10 +1,13 @@
-.private-row .checkbox-primary {margin-top: 5px;}
-.every-checkbox .checkbox-primary {width: 50px;}
-.cycle-config .tab-content>.tab-pane {padding-left: 0; padding-right: 0;}
-.cycle-config .tab-content>.tab-pane:first-child,
-.cycle-config .tab-content>.input-group {width: 44.5%;}
-.switch-time {min-height: 32px;}
-.form-row .form-group.align-center {align-items: center;}
+.form-row .form-group.items-center {align-items: center;}
#nameInputBox {width: 80%;}
#nameInputBox .form-control {width: 99.8%;}
-
+.have-fix .input-control-prefix {width: 42px; background: #f6f7f9; opacity: 1;}
+.have-fix .input-group-addon {width: 42px;}
+.highlight-suffix .input-control-suffix,
+.highlight-prefix .input-control-prefix {opacity: 1;}
+.config-day {width: 114px;}
+.form-row .tooltip-btn::before {background: #fff;}
+.form-row .tooltip-btn {box-shadow: none;}
+.form-row .tooltip-btn:hover:before {opacity: 0;}
+.input-control > .form-control.before-days {padding-left: 50px;}
+.form .label-id {height: 20px; border-color: #D8DBDE; border-radius: 10px;}
diff --git a/module/todo/js/common.ui.js b/module/todo/js/common.ui.js
index 3519dba7d2..5ef4c517ee 100644
--- a/module/todo/js/common.ui.js
+++ b/module/todo/js/common.ui.js
@@ -1,13 +1,70 @@
+var nameDefaultHtml = $('#nameInputBox').html();
+
/**
- * 切换日期选择的禁用状态。
- * Toggle the disabled state of the date select.
+ * 切换周期类型。
+ * Toggle cycle type.
+ *
+ * @return void
+ */
+function changeCycleType()
+{
+ var cycleType = $('#cycleType input[type=radio]:checked').val();
+ toggleCycleConfig(cycleType);
+}
+
+/**
+ * 切换周期设置的展示。
+ * Toggle cycle setting display.
+ *
+ * @param string cycleType Type of cycle.
+ * @return void
+ */
+function toggleCycleConfig(cycleType)
+{
+
+ $('.cycle-type-detail:not(.type-' + cycleType + ')').addClass('hidden');
+ $('.cycle-type-detail.type-' + cycleType).removeClass('hidden');
+}
+
+/**
+ * 切换私人事务,用于切换指派给的禁用状态。
+ * Toggle private transactions for switching the disabled state assigned to.
*
* @param object switcher
* @return void
*/
-function toggleDateTodo(switcher)
+function togglePrivate(switcher)
{
- $('.date').prop('disabled', switcher.checked);
+ $('#assignedTo').prop('disabled', switcher.checked);
+}
+
+/**
+ * 更改指派给时。
+ * change assignedTo.
+ *
+ * @return void
+ */
+function changeAssignedTo()
+{
+ var assignedTo = $('#assignedTo').val();
+ $('#private').prop('disabled', assignedTo !== userAccount);
+}
+
+/**
+ * 切换日期待定复选框。
+ * Toggle date pending checkbox.
+ *
+ * @param object switcher
+ * @return void
+ */
+function togglePending(switcher)
+{
+ if(switcher.checked)
+ {
+ $('.date').removeAttr('disabled');
+ $('.date').prop('value','');
+ if($('#cycle')) $('#cycle').prop('checked', false);
+ }
}
/**
@@ -31,9 +88,11 @@ function loadList(type, id, objectID)
divClass = '.name-box';
divID = '#nameBox';
}
+
id = id ? id : '';
var param = 'userID=' + userID + '&id=' + id;
- if(type == "task") param += '&status=wait,doing';
+ if(type == 'task') param += '&status=wait,doing';
+
if(defaultType && type == defaultType && objectID != 0) param += '&objectID=' + objectID;
if(moduleList.indexOf(type) !== -1)
@@ -43,19 +102,19 @@ function loadList(type, id, objectID)
{
if(data.length != 0)
{
- $(divClass).find('#nameInputBox').html(data).find('select').chosen();
+ if($(divClass).find('#nameInputBox').html(data).find('select').chosen) $(divClass).find('#nameInputBox').html(data).find('select').chosen();
if(config.currentMethod == 'edit' || type == 'feedback') $(divClass).find('select').val(objectID).trigger('chosen:updated');
- if($(divClass + " select").val() == null) $(divClass + " select").attr("data-placeholder", noOptions.replace("%s", chosenType[type])).trigger('chosen:updated');
+ if($(divClass + ' select').val() == null) $(divClass + ' select').attr('data-placeholder', noOptions.replace('%s', chosenType[type])).trigger('chosen:updated');
}
else
{
- $(divClass).find('#nameInputBox').html("").find('select').chosen();
+ if($(divClass).find('#nameInputBox').html("").find('select').chosen) $(divClass).find('#nameInputBox').html("").find('select').chosen();
}
});
}
else
{
- $(divClass).html($(divID).html());
+ $(divClass).find('#nameInputBox').html(nameDefaultHtml);
}
if(nameBoxLabel) return;
@@ -71,8 +130,8 @@ function loadList(type, id, objectID)
*/
function selectNext()
{
- if(!$("#begin ")[0] || !$("#end ")[0]) return;
- $("#end ")[0].selectedIndex = $("#begin ")[0].selectedIndex + 3;
+ if(!$('#begin ')[0] || !$('#end ')[0]) return;
+ $('#end ')[0].selectedIndex = $('#begin ')[0].selectedIndex + 3;
$('#end').trigger('chosen:updated');
}
@@ -82,26 +141,26 @@ function setBeginsAndEnds(i, beginOrEnd)
{
for(j = 0; j < batchCreateNum; j++)
{
- if(j != 0) $("#begins" + j)[0].selectedIndex = $("#ends" + (j - 1))[0].selectedIndex;
- $("#ends" + j)[0].selectedIndex = $("#begins" + j)[0].selectedIndex + 3;
- $("#begins" + j, "#ends" + j).trigger('chosen:updated');
+ if(j != 0) $('#begins' + j)[0].selectedIndex = $('#ends' + (j - 1))[0].selectedIndex;
+ $('#ends' + j)[0].selectedIndex = $('#begins' + j)[0].selectedIndex + 3;
+ $('#begins' + j, '#ends' + j).trigger('chosen:updated');
}
}
else
{
if(beginOrEnd == 'begin')
{
- $("#ends" + i)[0].selectedIndex = $("#begins" + i)[0].selectedIndex + 3;
- $("#ends" + i).trigger('chosen:updated');
+ $('#ends' + i)[0].selectedIndex = $('#begins' + i)[0].selectedIndex + 3;
+ $('#ends' + i).trigger('chosen:updated');
}
if(batchCreateNum)
{
for(j = i+1; j < batchCreateNum; j++)
{
- $("#begins" + j)[0].selectedIndex = $("#ends" + (j - 1))[0].selectedIndex;
- $("#ends" + j)[0].selectedIndex = $("#begins" + j)[0].selectedIndex + 3;
- $("#begins" + j, "#ends" + j).trigger('chosen:updated');
+ $('#begins' + j)[0].selectedIndex = $('#ends' + (j - 1))[0].selectedIndex;
+ $('#ends' + j)[0].selectedIndex = $('#begins' + j)[0].selectedIndex + 3;
+ $('#begins' + j, '#ends' + j).trigger('chosen:updated');
}
}
}
diff --git a/module/todo/js/create.ui.js b/module/todo/js/create.ui.js
index 5d0279c1a9..603e91b2b8 100644
--- a/module/todo/js/create.ui.js
+++ b/module/todo/js/create.ui.js
@@ -12,8 +12,9 @@ function toggleCycle(switcher)
if(switcher.checked)
{
$('.date').attr('disabled','disabled');
- $('.cycle-config').removeClass('hidden');
- $('#switchDate').closest('.checkbox-primary').addClass('hidden');
+ $('.date').prop('value','');
+ $('.cycle-config:not(.type-week,.type-month,.type-year)').removeClass('hidden');
+ $('#switchDate').prop('checked', false);
$('#type').closest('.form-row').addClass('hidden');
$('#type').val('custom');
loadList('custom'); //Fix bug 3278.
@@ -22,7 +23,6 @@ function toggleCycle(switcher)
{
$('.date').removeAttr('disabled');
$('.cycle-config').addClass('hidden');
- $('#switchDate').closest('.checkbox-primary').removeClass('hidden');
$('#type').closest('.form-row').removeClass('hidden');
}
}
@@ -36,26 +36,13 @@ function toggleCycle(switcher)
*/
function changeCreateDate(dateInput)
{
+ $('#switchDate').prop('checked', !$(dateInput).val());
var selectTime = $(dateInput).val() != today ? start : nowTime;
$('#begin').val(selectTime);
- $('#begin').trigger("chosen:updated");
+ $('#begin').trigger('chosen:updated');
selectNext();
}
-/**
- * 切换标签页,用于更新标签页的样式和更新类型。
- * Toggle tabs to update the style and type.
- *
- * @param object tab
- * @return void
- */
-function toggleNavTabs(tab)
-{
- $(tab).parent().siblings().find('a').prop('class', '');
- $(tab).addClass('active');
- if($(tab).data('type'))$('input[id*=type][id*=config]').val($(tab).data('type'));
-}
-
/**
* 更改待办类型。
* Change todo type.
@@ -65,5 +52,5 @@ function toggleNavTabs(tab)
*/
function changeType(typeSelect)
{
- loadList($(typeSelect).find('select').val(), '');
+ loadList($(typeSelect).find('select').val(), '');
}
diff --git a/module/todo/ui/create.html.php b/module/todo/ui/create.html.php
index 70c6eca14d..3b939c7cbc 100644
--- a/module/todo/ui/create.html.php
+++ b/module/todo/ui/create.html.php
@@ -23,340 +23,378 @@ jsVar('nowTime', $time);
jsVar('start', key($times));
jsVar('userID', $app->user->id);
jsVar('defaultType', '');
+jsVar('userAccount', $app->user->account);
-/**
- * 构建周期设置的天的标签内容,待办为周期类型进行展示。
- * Build tab-pane content of day.
- *
- * @return mixed Any type supported by zin widget function 任何 zin 部件函数参数支持的类型。
- */
-function buildDayPane(): mixed
-{
- global $lang, $app;
-
- return fragment
- (
- inputGroup
- (
- set::class('every'),
- span
- (
- set::class('input-group-addon'),
- $lang->todo->every
- ),
-
- input
- (
- set::id('everyInput'),
- set::name('config[day]')
- ),
- span
- (
- set::class('input-group-addon'),
- $lang->todo->cycleDay
- ),
- div
- (
- set::class('pl-3 flex items-center input-group-addon every-checkbox'),
- checkbox
- (
- set::id('configSpecify'),
- set::name('config[specifiedDate]'),
- set::text($lang->todo->specify),
- set::value(1),
- on::change('showSpecifiedDate(this)')
- )
- )
- ),
-
- inputGroup
- (
- set::class('specify hidden'),
- span
- (
- set::class('input-group-addon'),
- $lang->todo->specify
- ),
- select
- (
- set::id('config[specify][month]'),
- set::name('config[specify][month]'),
- set::items($lang->datepicker->monthNames),
- set::value(0),
- set::multiple(false),
- on::change('setDays(this.value)')
- ),
- select
- (
- set::id('specifiedDay'),
- set::name('config[specify][day]'),
- set::items($lang->todo->specifiedDay),
- set::multiple(false),
- set::value(1)
- ),
- span
- (
- set::class('input-group-addon', strpos($app->getClientLang(), 'zh') !== false ? '' : 'hidden'),
- $lang->todo->day
- ),
- div
- (
- set::class('w-36 pl-3 flex items-center gap-3 input-group-addon'),
- checkbox
- (
- set::id('cycleYear'),
- set::name('config[cycleYear]'),
- set::value(1),
- set::text($lang->todo->everyYear)
- ),
- checkbox
- (
- set::id('configEvery'),
- set::name('configEvery'),
- set::value(1),
- set::text($lang->todo->every),
- on::change('showEvery(this)')
- )
- )
- )
- );
-}
-
-/**
- * 构建月的标签页,用于周期设置。
- * Build tab-pane content of month.
- *
- * @return mixed Any type supported by zin widget function 任何 zin 部件函数参数支持的类型。
- */
-
-function buildMonthDays(): mixed
-{
- $days = array_combine(range(1,31), range(1,31));
-
- return checkList
- (
- set::class('flex-wrap gap-4'),
- set::name('config[month]'),
- set::inline(true),
- set::items($days),
- );
-}
-
-/**
- * 构建周期设置的标签导航,待办为周期类型进行展示。
- * Build navTabs header for cycle.
- *
- * @return mixed Any type supported by zin widget function 任何 zin 部件函数参数支持的类型。
- */
-
-function buildNavTabsBar(): mixed
-{
- global $lang;
-
- $navTabs = [
- [
- 'type' => 'day',
- 'text' => $lang->todo->cycleDay,
- 'class' => ' active'
- ],
- [
- 'type' => 'week',
- 'text' => $lang->todo->cycleWeek,
- 'class' => ''
- ],
- [
- 'type' => 'month',
- 'text' => $lang->todo->cycleMonth,
- 'class' => '',
- ],
- ];
-
- $nav = ul(set::class('nav nav-tabs'));
- foreach($navTabs as $tab)
- {
- $nav->add(
- li
- (
- set::class('nav-item'. $tab['class']),
- a
- (
- set::href('#' . $tab['type']),
- set::class($tab['class']),
- set('data-toggle', 'tab'),
- $tab['text'],
- on::click('toggleNavTabs(this)')
- )
- ),
- );
- }
-
- return $nav;
-}
-
-/**
- * 构建周期设置的标签页,当待办为周期时进行展示。
- * Build navTabs for cycle.
- *
- * @return mixed Any type supported by zin widget function 任何 zin 部件函数参数支持的类型。
- */
-function buildNavTabs(): mixed
-{
- global $lang;
-
- return div
- (
- set::class('w-full'),
- buildNavTabsBar(),
- div
- (
- set::class('tab-content'),
- div
- (
- set::class('tab-pane active'),
- set::id('day'),
- buildDayPane(),
- ),
- div
- (
- set::class('tab-pane'),
- set::id('week'),
- checkList
- (
- set::primary(true),
- set::id('config[week]'),
- set::name('config[week]'),
- set::inline(true),
- set::items($lang->todo->dayNames),
- ),
- ),
- div
- (
- set::class('tab-pane h-28'),
- set::id('month'),
- buildMonthDays(),
- ),
- inputGroup
- (
- div
- (
- set::class('input-group-addon'),
- '提前',
- ),
- input
- (
- set::id('name'),
- set::name('config[beforeDays]'),
- set::value(0),
- ),
- div
- (
- set::class('input-group-addon'),
- '天生成待办',
- ),
- ),
-
- ),
- );
-}
+$cycleTypeOptions = array
+(
+ array('text' => $lang->todo->cycleDay, 'value' => 'day'),
+ array('text' => $lang->todo->cycleWeek, 'value' => 'week'),
+ array('text' => $lang->todo->cycleMonth, 'value' => 'month'),
+ array('text' => $lang->todo->cycleYear, 'value' => 'year')
+);
+$days = array();
+for($day = 1; $day <= 31; $day ++) $days[$day] = $day . $lang->todo->day;
formPanel
(
+ set::title(''),
+ div
+ (
+ set::class('text-lg pb-2.5'),
+ $lang->todo->create
+ ),
formRow
(
+ set::class('items-center'),
formGroup
(
- set::width('1/2'),
- set::label($lang->todo->date),
- set::strong(true),
- set::class('align-center'),
+ set(array
+ (
+ 'label' => $lang->todo->date,
+ 'class' => 'items-center',
+ 'width' => '1/3',
+ )),
inputGroup
(
- input
+ set::class('input-control has-suffix'),
+ control
(
- set::class('date'),
- set::name('date'),
- set::value(date('Y-m-d')),
- set::type('date'),
- set::width('1/3'),
+ set(array
+ (
+ 'name' => 'date',
+ 'class' => 'date',
+ 'value' => date('Y-m-d'),
+ 'type' => 'date',
+ 'width' => '1/4',
+ )),
on::change('changeCreateDate(this)')
),
div
(
- set::class('flex items-center gap-3 pl-3 input-group-addon'),
+ set::class('input-control-suffix opacity-100 bg-white z-10'),
checkbox
(
- set::id('switchDate'),
- set::name('switchDate'),
- set::text($lang->todo->periods['future']),
- set::width('100px'),
- on::change('toggleDateTodo(this)')
- ),
- checkbox
- (
- set::id('cycle'),
- set::name('cycle'),
- set::value(1),
- set::text($lang->todo->cycle),
- on::change('toggleCycle(this)')
+ set(array
+ (
+ 'id' => 'switchDate',
+ 'name' => 'switchDate',
+ 'text' => $lang->todo->periods['future'],
+ 'width' => '100px',
+ )),
+ on::change('togglePending(this)')
)
)
-
)
-
- )
- ),
- formRow
- (
- set::class('cycle-config hidden'),
+ ),
formGroup
(
- set::label($lang->todo->cycleConfig),
- set::strong(true),
- buildNavTabs()
- )
- ),
- formRow
- (
- set::class('cycle-config hidden'),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->todo->deadline),
- set::strong(true),
- input
+ set::class('items-center ml-3'),
+ checkbox
(
- set::type('date'),
- set::name('config[end]')
+ set(array
+ (
+ 'id' => 'cycle',
+ 'name' => 'cycle',
+ 'value' => 1,
+ 'text' => $lang->todo->cycle
+ )),
+ on::change('toggleCycle(this)')
)
)
+
+ ),
+
+ formRow
+ (
+ set::class('cycle-config hidden'),
+ formGroup
+ (
+ set::label($lang->todo->cycleType),
+ set::required(true),
+ radioList
+ (
+ set(array
+ (
+ 'name' => 'cycleType',
+ 'id' => 'cycleType',
+ 'value' => 'day',
+ 'inline' => true,
+ 'items' => $cycleTypeOptions,
+ )),
+ on::change('changeCycleType')
+ )
+ )
+ ),
+ formRow
+ (
+ set::class('cycle-config cycle-type-detail type-day hidden'),
+ formGroup
+ (
+ set(array
+ (
+ 'label' => $lang->todo->cycleConfig,
+ 'required' => true,
+ 'width' => '1/3'
+ )),
+ inputGroup
+ (
+ set::class('have-fix'),
+ span
+ (
+ set::class('input-group-addon justify-center'),
+ $lang->todo->from
+ ),
+ input(set(array
+ (
+ 'name' => 'date',
+ 'type' => 'date',
+ 'value' => date('Y-m-d')
+ ))),
+ )
+ ),
+ div
+ (
+ set::class('config-day flex items-center highlight-suffix'),
+ span
+ (
+ set::class('input-group-addon ring-0 bg-white'),
+ $lang->todo->every
+ ),
+
+ inputControl
+ (
+ set::suffix($lang->todo->cycleDay),
+ set::suffixWidth('30'),
+ input
+ (
+ set::id('everyInput'),
+ set::name('config[day]')
+ )
+ )
+ )
+
+ ),
+ formRow
+ (
+ set::class('cycle-config cycle-type-detail type-week hidden'),
+
+ formGroup
+ (
+ set(array
+ (
+ 'label' => $lang->todo->cycleConfig,
+ 'required' => true,
+ 'width' => '1/2'
+ )),
+ inputGroup
+ (
+ set::class('have-fix'),
+ span
+ (
+ set::class('input-group-addon'),
+ $lang->todo->weekly
+ ),
+ select(set(array
+ (
+ 'id' => 'config[week]',
+ 'name' => 'config[week]',
+ 'items' => $lang->todo->dayNames
+ )))
+ )
+ )
+ ),
+
+ formRow
+ (
+ set::class('cycle-config cycle-type-detail type-month hidden'),
+
+ formGroup
+ (
+ set(array
+ (
+ 'label' => $lang->todo->cycleConfig,
+ 'required' => true,
+ 'class' => 'have-fix',
+ 'width' => '1/2'
+ )),
+ inputGroup
+ (
+
+ span
+ (
+ set::class('input-group-addon'),
+ $lang->todo->monthly
+ ),
+ select(set(array
+ (
+ 'id' => 'config[month]',
+ 'name' => 'config[month]',
+ 'items' => $days
+ )))
+ )
+ )
+ ),
+
+ formRow
+ (
+ set::class('cycle-config cycle-type-detail type-year hidden'),
+
+ formGroup
+ (
+ set(array
+ (
+ 'label' => $lang->todo->cycleConfig,
+ 'required' => true,
+ 'class' => 'have-fix',
+ 'width' => '1/2'
+ )),
+ inputGroup
+ (
+ span
+ (
+ set::class('input-group-addon'),
+ $lang->todo->specify
+ ),
+ select
+ (
+ set(array
+ (
+ 'id' => 'config[specify][month]',
+ 'name' => 'config[specify][month]',
+ 'items' => $lang->datepicker->monthNames,
+ 'multiple' => false,
+ 'value' => 0
+ )),
+ on::change('setDays(this.value)')
+ ),
+ select(set(array
+ (
+ 'id' => 'specifiedDay',
+ 'name' => 'config[specify][day]',
+ 'items' => $days,
+ 'multiple' => false,
+ 'value' => 1
+ )))
+ )
+ )
+ ),
+ formRow
+ (
+ set::class('cycle-config hidden'),
+ formGroup
+ (
+ set(array
+ (
+ 'label' => $lang->todo->generate,
+ 'class' => 'have-fix highlight-suffix',
+ 'width' => '1/3'
+ )),
+ inputControl
+ (
+ set::prefix($lang->todo->advance),
+ set::prefixWidth('42'),
+ input(set(array
+ (
+ 'class' => 'before-days',
+ 'name' => 'config[beforeDays]'
+ ))),
+ to::suffix($lang->todo->cycleDay),
+ set::suffixWidth('30')
+ )
+ )
+ ),
+ formRow
+ (
+ set::class('cycle-config hidden'),
+ formGroup
+ (
+ set(array
+ (
+ 'label' => $lang->todo->deadline,
+ 'width' => '1/3',
+ )),
+ input(set(array
+ (
+ 'type' => 'date',
+ 'name' => 'config[end]'
+ )))
+ )
),
formGroup
(
- set::width('1/2'),
- set::name('type'),
- set::strong(true),
- set::label($lang->todo->type),
- set::items($lang->todo->typeList),
+ set(array
+ (
+ 'label' => $lang->todo->type,
+ 'name' => 'type',
+ 'width' => '1/3',
+ 'items' => $lang->todo->typeList,
+
+ )),
on::change('changeType(this)'),
),
- formGroup
+ formRow
(
- set::width('1/2'),
- set::name('assignedTo'),
- set::strong(true),
- set::label($lang->todo->assignTo),
- set::items($users),
- set::value($app->user->account)
+ formGroup
+ (
+ set(array
+ (
+ 'width' => '1/3',
+ 'label' => $lang->todo->assignTo,
+ )),
+ select
+ (
+ set(array
+ (
+ 'items' => $users,
+ 'value' => $app->user->account,
+ 'id' => 'assignedTo',
+ 'name' => 'assignedTo',
+ )),
+ on::change('changeAssignedTo()')
+ )
+ ),
+ formGroup
+ (
+ set::class('items-center ml-3'),
+ checkbox
+ (
+ set(array
+ (
+ 'id' => 'private',
+ 'name' => 'private',
+ 'text' => $lang->todo->private,
+ 'value' => 1,
+ )),
+ on::change('togglePrivate(this)')
+ ),
+ btn(set(array
+ (
+ 'icon' => 'help',
+ 'data-toggle' => 'tooltip',
+ 'data-placement' => 'top-start',
+ 'href' => 'privateTip',
+ 'square' => true,
+ 'class' => 'ghost h-6 tooltip-btn'
+ ))),
+ div
+ (
+ set::id('privateTip'),
+ set::class('tooltip darker'),
+ $lang->todo->privateTip
+ )
+ )
),
formRow
(
formGroup
(
- set::id('nameBox'),
- set::class('name-box'),
- set::label($lang->todo->name),
- set::strong(true),
- set::required(true),
+ set(array
+ (
+ 'id' => 'nameBox',
+ 'class' => 'name-box',
+ 'required' => true,
+ 'label' => $lang->todo->name
+ )),
inputGroup
(
set::class('title-group'),
@@ -374,83 +412,81 @@ formPanel
set::class('input-group-addon fix-border br-0'),
$lang->todo->pri
),
- select
+ select(set(array
(
- set::class('w-20'),
- set::id('pri'),
- set::name('pri'),
- set::items($lang->todo->priList),
- set::value(3)
- )
+ 'class' => 'w-20',
+ 'id' => 'pri',
+ 'name' => 'pri',
+ 'items' => $lang->todo->priList,
+ 'value' => 3
+ )))
)
)
),
- formGroup
+ formGroup(set(array
(
- set::name('desc'),
- set::strong(true),
- set::type('textarea'),
- set::label($lang->todo->desc)
- ),
- formGroup
+ 'name' => 'desc',
+ 'type' => 'editor',
+ 'label' => $lang->todo->desc,
+ 'value' => isset($desc) ? $desc : ''
+ ))),
+ formGroup(set(array
(
- set::width('1/2'),
- set::id('status'),
- set::name('status'),
- set::items($lang->todo->statusList),
- set::label($lang->todo->status),
- set::strong(true)
- ),
+ 'width' => '1/3',
+ 'id' => 'status',
+ 'name' => 'status',
+ 'items' => $lang->todo->statusList,
+ 'label' => $lang->todo->status,
+ ))),
formRow
(
set::class('items-center'),
formGroup
(
- set::width('1/2'),
set::label($lang->todo->beginAndEnd),
- set::strong(true),
+ set::width('1/3'),
inputGroup
(
select
(
- set::id('begin'),
- set::name('begin'),
- set::items($times),
- set::value(date('Y-m-d') != $date ? key($times) : $time),
+ set(array
+ (
+ 'id' => 'begin',
+ 'name' => 'begin',
+ 'items' => $times,
+ 'value' => date('Y-m-d') != $date ? key($times) : $time,
+ )),
on::change('selectNext()')
),
- select
+
+ span
(
- set::id('end'),
- set::name('end'),
- set::items($times)
- )
- ),
- div
- (
- set::class('ml-3 flex items-center switch-time'),
- checkbox
+ set::class('input-group-addon ring-0'),
+ $lang->todo->to
+ ),
+ select(set(array
(
- set::id('switchTime'),
- set::name('switchTime'),
- set::text($lang->todo->lblDisableDate),
- on::change('switchDateFeature(this)')
- )
+ 'id' => 'end',
+ 'name' => 'end',
+ 'items' => $times
+ )))
)
- )
- ),
- formGroup
- (
- set::label($lang->todo->private),
- set::strong(true),
- set::class('private-row'),
- checkbox
+ ),
+ div
(
- set::id('private'),
- set::name('private'),
- set::value(1)
+ set::class('ml-3 flex items-center'),
+ checkbox
+ (
+ set(array
+ (
+ 'id' => 'switchTime',
+ 'name' => 'switchTime',
+ 'text' => $lang->todo->periods['future'],
+ )),
+ on::change('switchDateFeature(this)')
+ )
)
)
);