Calendar is one of most useful specific extensions moin 1.x bundle has. As a result, it provides bunch of features, and some of them quite obscure. For moin 2 (me personally) want calendar which reproduce all the old functionality and also does some things better (taking into account advanced features moin2 has). So, there number of questions related to moin 1.x calendar on one side and possible implementation of possible features moin2 calendar (in my opinion) should have.
Moin 1.x calendar features:
- Showing month calendar, at first. So, it gives availability to show month with different offset (related to current month; usable for current tasks), precise (constant) month view (usable for history), and gives ability to navigate back and forward.
Btw, navigation (more precisely, its implementation) introduces several issues, as soon as it is implemented via page query parameters (like, http://master.moinmo.in/HelpOnMacros/MonthCalendar?calparms=HelpOnMacros/MonthCalendar,2002,11,0,12,,,):
- on the one side, it controls all the macro transclusions so there's no ability to have (semantically) different calendars on one page (and this is bad)
- on the other side, it gives ability to add several different month (for example, for tracking semester activity or so) just via multiple macro inclusions. So, in case navigation would be done using some other mechanism (for example, js), we need mechanism to define bonded calendar macros or provide very feasible view options (multiple months view, year view, non-continuous, or so)
- on the third side, providing parameters via URL gives ability to provide URL with specific calendar view (state). This can be easily achieved via hash URL part, History API or so, but just shouldn't be forgotten.
- Moin1.x calendar works perfectly without js (except popups; more verbose about popups later), and this behaviour should be maintained.
- Rather rich control of bonding calendar to pages: one can setup root page for calendar subpages, setap subpage pattern, parsing of subpages in order to add day highlighting and popups with headers; ability to have multiple rootpages via one calendar; ability to set template for new pages.