You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/packages/ui-default/pages/homework_main.page.js

38 lines
1.1 KiB
JavaScript

import { NamedPage } from 'vj/misc/Page';
import Calendar from 'vj/components/calendar';
import i18n from 'vj/utils/i18n';
import { parse as parseMongoId } from 'vj/utils/mongoId';
const page = new NamedPage('homework_main', () => {
// Homework Calendar
if (UiContext.docs) {
const events = UiContext.docs.map((doc) => ({
beginAt: doc.beginAt,
endAt: doc.endAt,
title: doc.title,
maskFrom: doc.penaltySince ? doc.penaltySince : null,
maskTitle: i18n('Time Extension'),
colorIndex: parseMongoId(doc._id).timestamp % 12,
link: doc.url,
}));
const calendar = new Calendar(events);
calendar.getDom().appendTo('[name="calendar_entry"]');
$('[name="homework_display"]').change((ev) => {
switch (ev.currentTarget.value) {
case 'calendar':
$('.homework__list').hide();
$('[name="calendar_entry"]').show();
break;
case 'list':
$('.homework__list').show();
$('[name="calendar_entry"]').hide();
break;
default:
throw new Error('Unexpected display parameter');
}
});
}
});
export default page;