1
0
Fork 0
discourse-custom-wizard-unl.../assets/javascripts/discourse/controllers/next-session-scheduled.js.es6

58 Zeilen
1,5 KiB
Text

2020-03-21 18:30:11 +01:00
import { default as computed } from 'discourse-common/utils/decorators';
2020-03-30 01:53:28 +02:00
import { scheduleOnce } from "@ember/runloop";
2017-11-01 05:21:14 +01:00
export default Ember.Controller.extend({
title: 'admin.wizard.after_time_modal.title',
setup() {
const dateTime = this.get('model.dateTime');
const ROUNDING = 30 * 60 * 1000;
const nextInterval = moment(Math.ceil((+moment()) / ROUNDING) * ROUNDING);
const mDateTime = dateTime ? moment(dateTime) : nextInterval;
const mDateTimeLocal = mDateTime.local();
const date = mDateTimeLocal.format('YYYY-MM-DD');
const time = mDateTimeLocal.format('HH:mm');
this.setProperties({ date, time });
2020-03-30 01:53:28 +02:00
scheduleOnce('afterRender', this, () => {
2017-11-01 05:21:14 +01:00
const $timePicker = $("#time-picker");
$timePicker.timepicker({ timeFormat: 'H:i' });
$timePicker.timepicker('setTime', time);
$timePicker.change(() => this.set('time', $timePicker.val()));
});
},
@computed('date', 'time')
dateTime: function(date, time) {
return moment(date + 'T' + time).format();
},
@computed('dateTime')
submitDisabled(dateTime) {
return moment().isAfter(dateTime);
},
resetProperties() {
this.setProperties({
date: null,
time: null
});
},
actions: {
clear() {
this.resetProperties();
this.get('model.update')(null);
},
submit() {
const dateTime = this.get('dateTime');
const formatted = moment(dateTime).utc().toISOString();
this.get('model.update')(formatted);
this.resetProperties();
this.send("closeModal");
}
}
});