mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-05-19 12:18:51 +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);
|
||||
});
|
||||
|
||||
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 () => {
|
||||
let task = await user.post('/tasks/user', {
|
||||
text: 'test daily',
|
||||
|
|
|
|||
|
|
@ -229,6 +229,7 @@ export let DailySchema = new Schema(_.defaults({
|
|||
default () {
|
||||
return moment().startOf('day').toDate();
|
||||
},
|
||||
required: true,
|
||||
},
|
||||
repeat: { // used only for 'weekly' frequency,
|
||||
m: {type: Boolean, default: true},
|
||||
|
|
|
|||
|
|
@ -1,38 +1,38 @@
|
|||
fieldset.option-group.advanced-option(ng-show="task.type === 'daily'")
|
||||
legend.option-title
|
||||
span.hint(popover-title=env.t('startDateHelpTitle'), popover=env.t("startDateHelp"), popover-trigger='mouseenter')
|
||||
=env.t('startDate')
|
||||
input.form-control(type='text', ng-model='task._edit.startDate',
|
||||
datepicker-popup='{{::user.preferences.dateFormat}}', is-open='datepickerOpened',
|
||||
ng-click='datepickerOpened = true', ng-disabled='!canEdit(task)')
|
||||
|
||||
br
|
||||
|
||||
select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
||||
option(value='daily')=env.t('daily')
|
||||
option(value='weekly')=env.t('weekly')
|
||||
option(value='monthly')=env.t('monthly')
|
||||
option(value='yearly')=env.t('yearly')
|
||||
|
||||
//- select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
||||
//- option(value='weekly')=env.t('repeatWeek')
|
||||
//- option(value='daily')=env.t('repeatDays')
|
||||
|
||||
include ./dailies/repeat_options
|
||||
|
||||
.form-group(ng-show='task._edit.frequency === "monthly"')
|
||||
legend.option-title=env.t('repeatsOn')
|
||||
label
|
||||
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfMonth', ng-disabled='!canEdit(task)')
|
||||
=env.t('dayOfMonth')
|
||||
label
|
||||
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfWeek', ng-disabled='!canEdit(task)')
|
||||
=env.t('dayOfWeek')
|
||||
|
||||
.form-group
|
||||
legend.option-title=env.t('summary')
|
||||
div {{summary}}
|
||||
|
||||
.form-group(ng-if='nextDue')
|
||||
legend.option-title=env.t('nextDue')
|
||||
div {{nextDue}}
|
||||
fieldset.option-group.advanced-option(ng-show="task.type === 'daily'")
|
||||
legend.option-title
|
||||
span.hint(popover-title=env.t('startDateHelpTitle'), popover=env.t("startDateHelp"), popover-trigger='mouseenter')
|
||||
=env.t('startDate')
|
||||
input.form-control(type='text', ng-model='task._edit.startDate',
|
||||
datepicker-popup='{{::user.preferences.dateFormat}}', is-open='datepickerOpened',
|
||||
ng-click='datepickerOpened = true', ng-disabled='!canEdit(task)')
|
||||
|
||||
br
|
||||
|
||||
select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
||||
option(value='daily')=env.t('daily')
|
||||
option(value='weekly')=env.t('weekly')
|
||||
option(value='monthly')=env.t('monthly')
|
||||
option(value='yearly')=env.t('yearly')
|
||||
|
||||
//- select.form-control(ng-model='task._edit.frequency', ng-disabled='!canEdit(task)')
|
||||
//- option(value='weekly')=env.t('repeatWeek')
|
||||
//- option(value='daily')=env.t('repeatDays')
|
||||
|
||||
include ./dailies/repeat_options
|
||||
|
||||
.form-group(ng-show='task._edit.frequency === "monthly"')
|
||||
legend.option-title=env.t('repeatsOn')
|
||||
label
|
||||
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfMonth', ng-disabled='!canEdit(task)')
|
||||
=env.t('dayOfMonth')
|
||||
label
|
||||
input(type="radio", ng-model='task._edit.repeatsOn', value='dayOfWeek', ng-disabled='!canEdit(task)')
|
||||
=env.t('dayOfWeek')
|
||||
|
||||
.form-group
|
||||
legend.option-title=env.t('summary')
|
||||
div {{summary}}
|
||||
|
||||
.form-group(ng-if='nextDue')
|
||||
legend.option-title=env.t('nextDue')
|
||||
div {{nextDue}}
|
||||
Loading…
Reference in a new issue