mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-07-13 17:52:22 +00:00
Require Dailies to have a Start Date (#8649)
* Require Dailies to have a Start Date * Add preliminary test * Fix lint errors
This commit is contained in:
parent
c852d9d581
commit
f6f99ec57e
3 changed files with 51 additions and 38 deletions
|
|
@ -615,6 +615,18 @@ describe('POST /tasks/user', () => {
|
||||||
expect((new Date(task.startDate)).getDay()).to.eql(today);
|
expect((new Date(task.startDate)).getDay()).to.eql(today);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('returns an error if the start date is empty', async () => {
|
||||||
|
await expect(user.post('/tasks/user', {
|
||||||
|
text: 'test daily',
|
||||||
|
type: 'daily',
|
||||||
|
startDate: '',
|
||||||
|
})).to.eventually.be.rejected.and.eql({
|
||||||
|
code: 400,
|
||||||
|
error: 'BadRequest',
|
||||||
|
message: 'daily validation failed',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('can create checklists', async () => {
|
it('can create checklists', async () => {
|
||||||
let task = await user.post('/tasks/user', {
|
let task = await user.post('/tasks/user', {
|
||||||
text: 'test daily',
|
text: 'test daily',
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,7 @@ export let DailySchema = new Schema(_.defaults({
|
||||||
default () {
|
default () {
|
||||||
return moment().startOf('day').toDate();
|
return moment().startOf('day').toDate();
|
||||||
},
|
},
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
repeat: { // used only for 'weekly' frequency,
|
repeat: { // used only for 'weekly' frequency,
|
||||||
m: {type: Boolean, default: true},
|
m: {type: Boolean, default: true},
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,38 @@
|
||||||
fieldset.option-group.advanced-option(ng-show="task.type === 'daily'")
|
fieldset.option-group.advanced-option(ng-show="task.type === 'daily'")
|
||||||
legend.option-title
|
legend.option-title
|
||||||
span.hint(popover-title=env.t('startDateHelpTitle'), popover=env.t("startDateHelp"), popover-trigger='mouseenter')
|
span.hint(popover-title=env.t('startDateHelpTitle'), popover=env.t("startDateHelp"), popover-trigger='mouseenter')
|
||||||
=env.t('startDate')
|
=env.t('startDate')
|
||||||
input.form-control(type='text', ng-model='task._edit.startDate',
|
input.form-control(type='text', ng-model='task._edit.startDate',
|
||||||
datepicker-popup='{{::user.preferences.dateFormat}}', is-open='datepickerOpened',
|
datepicker-popup='{{::user.preferences.dateFormat}}', is-open='datepickerOpened',
|
||||||
ng-click='datepickerOpened = true', ng-disabled='!canEdit(task)')
|
ng-click='datepickerOpened = true', ng-disabled='!canEdit(task)')
|
||||||
|
|
||||||
br
|
br
|
||||||
|
|
||||||
select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
||||||
option(value='daily')=env.t('daily')
|
option(value='daily')=env.t('daily')
|
||||||
option(value='weekly')=env.t('weekly')
|
option(value='weekly')=env.t('weekly')
|
||||||
option(value='monthly')=env.t('monthly')
|
option(value='monthly')=env.t('monthly')
|
||||||
option(value='yearly')=env.t('yearly')
|
option(value='yearly')=env.t('yearly')
|
||||||
|
|
||||||
//- select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
//- select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
||||||
//- option(value='weekly')=env.t('repeatWeek')
|
//- option(value='weekly')=env.t('repeatWeek')
|
||||||
//- option(value='daily')=env.t('repeatDays')
|
//- option(value='daily')=env.t('repeatDays')
|
||||||
|
|
||||||
include ./dailies/repeat_options
|
include ./dailies/repeat_options
|
||||||
|
|
||||||
.form-group(ng-show='task._edit.frequency === "monthly"')
|
.form-group(ng-show='task._edit.frequency === "monthly"')
|
||||||
legend.option-title=env.t('repeatsOn')
|
legend.option-title=env.t('repeatsOn')
|
||||||
label
|
label
|
||||||
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfMonth', ng-disabled='!canEdit(task)')
|
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfMonth', ng-disabled='!canEdit(task)')
|
||||||
=env.t('dayOfMonth')
|
=env.t('dayOfMonth')
|
||||||
label
|
label
|
||||||
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfWeek', ng-disabled='!canEdit(task)')
|
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfWeek', ng-disabled='!canEdit(task)')
|
||||||
=env.t('dayOfWeek')
|
=env.t('dayOfWeek')
|
||||||
|
|
||||||
.form-group
|
.form-group
|
||||||
legend.option-title=env.t('summary')
|
legend.option-title=env.t('summary')
|
||||||
div {{summary}}
|
div {{summary}}
|
||||||
|
|
||||||
.form-group(ng-if='nextDue')
|
.form-group(ng-if='nextDue')
|
||||||
legend.option-title=env.t('nextDue')
|
legend.option-title=env.t('nextDue')
|
||||||
div {{nextDue}}
|
div {{nextDue}}
|
||||||
Loading…
Reference in a new issue