diff --git a/src/events/eventModal.js b/src/events/eventModal.js new file mode 100644 index 0000000000000000000000000000000000000000..057151ec8328677b4929ba437f33a0173b09f669 --- /dev/null +++ b/src/events/eventModal.js @@ -0,0 +1,16 @@ +import m from 'mithril'; +import viewEvent from './viewEvent'; +import newEvent from './newEvent'; + +export default class EventModal { + constructor() { + this.edit = false; + } + + view() { + if (this.edit) { + return m(newEvent); + } + return m(viewEvent, { onEdit: () => { this.edit = true; } }); + } +} diff --git a/src/events/viewEvent.js b/src/events/viewEvent.js index 433bdfd5c8ef13716580539d080304ba59fc4dfc..8022c9d0d6afccedab4c2c861cda579110784604 100644 --- a/src/events/viewEvent.js +++ b/src/events/viewEvent.js @@ -17,6 +17,7 @@ import DatalistController from '../listcontroller'; import { dateFormatter } from '../utils'; import { icons } from '../views/elements'; import { ResourceHandler } from '../auth'; +import { apiUrl } from '../config'; const viewLayout = [ { @@ -123,6 +124,7 @@ class ParticipantsTable { view() { return m(Card, { + style: { 'height': '300px' }, content: m(TableView, { controller: this.ctrl, keys: signupConfig.tableKeys, @@ -181,7 +183,7 @@ export default class viewEvent extends ItemView { } } - view() { + view({ attrs: { onEdit } }) { if (!this.data) return ''; console.log(Object.keys(this)); console.log(this['data']); @@ -376,8 +378,19 @@ export default class viewEvent extends ItemView { return m("div", { style: { height: '100%', 'overflow-y': 'scroll', padding: '10px'} },[ - m(Button, {element: 'div', label: "Update Event"}), - m("h1", {style: { 'margin-top': '0px', 'margin-bottom': '0px' } }, [this.data.title_de]), + m(Button, { + element: 'div', + label: 'Update Event', + events: { onclick: onEdit }, + }), + m('div', [ + this.data.img_thumbnail ? m('img', { + src: `${apiUrl.slice(0, -1)}${this.data.img_thumbnail.file}`, + height: '50px', + style: { float: 'left' }, + }) : '', + m("h1", {style: { 'margin-top': '0px', 'margin-bottom': '0px' } }, [this.data.title_de]), + ]), m('div', { style: { float: 'left', 'margin-right': '20px'} }, [ m('div', this.data.signup_count ? m('span.propertyTitle', `Signups`) : m.trust(' ')), m('div', this.data.signup_count ? m('p.propertyText', ` ${this.data.signup_count} / ${displaySpots}`) : m.trust(' ')), @@ -409,10 +422,10 @@ export default class viewEvent extends ItemView { ]), m('div.eventViewRight', [ m('h4', 'Accepted Participants'), - m(ParticipantsTable, { where: { accepted: true } }), + m(ParticipantsTable, { where: { accepted: true, event: this.data['_id'] } }), m('p', ''), m('h4', 'Participants on Waiting List'), - m(ParticipantsTable, { where: { accepted: false } }), + m(ParticipantsTable, { where: { accepted: false, event: this.data['_id'] } }), ]) ]), diff --git a/src/index.js b/src/index.js index 4d9ef91d294ec4e30f2b4e9b2d9bcc33228ff3dc..75ea31cb6a7311ed13668df0e5d908650239d367 100644 --- a/src/index.js +++ b/src/index.js @@ -5,7 +5,7 @@ import { UserModal, UserTable, NewUser } from './userTool'; import { MembershipView } from './membershipTool'; import EventTable from './events/table'; import newEvent from './events/newEvent'; -import viewEvent from './events/viewEvent'; +import EventModal from './events/eventModal'; import eventDraft from './events/eventDraft'; import eventWithExport from './events/eventWithExport'; import Layout from './layout'; @@ -28,7 +28,7 @@ m.route(root, '/users', { '/newuser': layoutWith(NewUser), '/groupmemberships/:id': layoutWith(MembershipView), '/events': layoutWith(EventTable), - '/events/:id': layoutWith(viewEvent), + '/events/:id': layoutWith(EventModal), '/newevent': layoutWith(newEvent), '/draftevent': layoutWith(eventDraft), '/eventwithexport': layoutWith(eventWithExport),