In https://github.com/digitalinteraction/mozfest-client/pull/7 an intermediate FilteredScheduleView was added to make it easier to add multiple schedule views. Along with #70 the requirements for adding a custom schedule/grid page could be reduced and simplified.
ScheduleView could be deprecated and a new SessionTimeline could be used instead, so as not to require a breaking change. It doesn't make sense to have View in the name anyway as it is not directly routed to from vue-router.
SessionGrid could be deprecated and a new SessionBoard could be used instead, so as not to require a breaking change.
It would be worth considering a data-driven approach too so a CMS could be used to power these configurations in the future.
Configuration
Props
schedule — The ScheduleRecord with all resources in it
userSessions — The ids of sessions users have added to their schedule
options — An object with structure below:
options
| property |
Info |
tileConfig |
#70 if it has been implemented, would create a blocker for this though |
sessionPredicate |
A function to decide wether to show this session or not |
filtersKey |
The localStorage key to store filters in |
enabledFilters |
Which filters to show, for ScheduleFilters.vue |
languages |
SelectOption-s of languages the sessions are in |
SessionTimeline could also have a sessionLayout property that decides wether a given session should be "big" or "small" in the ScheduleBlock
In https://github.com/digitalinteraction/mozfest-client/pull/7 an intermediate
FilteredScheduleViewwas added to make it easier to add multiple schedule views. Along with #70 the requirements for adding a custom schedule/grid page could be reduced and simplified.ScheduleViewcould be deprecated and a new SessionTimeline could be used instead, so as not to require a breaking change. It doesn't make sense to haveViewin the name anyway as it is not directly routed to fromvue-router.SessionGridcould be deprecated and a new SessionBoard could be used instead, so as not to require a breaking change.It would be worth considering a data-driven approach too so a CMS could be used to power these configurations in the future.
Configuration
Props
schedule— TheScheduleRecordwith all resources in ituserSessions— The ids of sessions users have added to their scheduleoptions— An object with structure below:options
tileConfigsessionPredicatefiltersKeyenabledFiltersScheduleFilters.vuelanguagesSelectOption-s of languages the sessions are inSessionTimeline could also have a
sessionLayoutproperty that decides wether a given session should be "big" or "small" in theScheduleBlock