{"id":268,"date":"2008-08-05T02:05:04","date_gmt":"2008-08-05T02:05:04","guid":{"rendered":"http:\/\/mozillacalendar2.wordpress.com\/2008\/08\/05\/daniels_developer_notes_how_to\/"},"modified":"2008-08-05T02:05:04","modified_gmt":"2008-08-05T02:05:04","slug":"daniels_developer_notes_how_to","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/calendar\/2008\/08\/daniels_developer_notes_how_to\/","title":{"rendered":"Daniel&#8217;s developer notes: How to present infinite recurring event series?"},"content":{"rendered":"<p>Sunbird and Lightning both have a feature called the &#8220;unifinder&#8221;. It&#8217;s the box at the top if you click the toolbar &#8220;Find Events&#8221;. Next to the search text field you can select different time ranges to be scanned matching your search (or just present all matching the range if you leave it blank). The drop down box offers several time ranges, such as &#8220;All Events&#8221;, &#8220;Today&#8217;s Events&#8221;, &#8220;Next 7 Days&#8221;, &#8230;<\/p>\n<p>While the ranges look sensible, they cause me some headache, more specifically the unbounded ranges &#8220;All Events&#8221; and &#8220;All Future Events&#8221; w.r.t. infinite recurring events. If you select one of the unbounded ranges (e.g. &#8220;All Events&#8221;), the current implementation will only show the master items of recurring events, because there&#8217;s no finite range to expand into. It shows the events in their condensed (unexpanded) form. While this approach misaligns the UI a bit (the other filters show recurring events in expanded form), it looks like a feasible way at first glance (modulo bugs around it). But there&#8217;s yet a further problem with this approach: You could override\u00b4single occurrences of a recurring series, e.g. modify the start and end of an occurrence. <em><strong>Those are currently left out.<\/strong><\/em><\/p>\n<p>The latter and the inconsistent UI let me doubt that showing event series in condensed form is really what we want here, moreover because IMO showing expanded occurrences is far more intuitive. Solving the problem, I can imagine two solutions:<\/p>\n<ul>\n<li>We simply drop the unbounded ranges (no &#8220;All Events&#8221;, no &#8220;All Future Events&#8221;).<\/li>\n<li>We dynamically expand the list as the user is scrolling it down, if this feels good.<\/li>\n<\/ul>\n<p>For the moment, until we have a good solution, I&#8217;d vote to remove the unbounded ranges.<\/p>\n<p>I hope there are more options that we could consider, and would like to hear your feedback  on this topic&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sunbird and Lightning both have a feature called the &#8220;unifinder&#8221;. It&#8217;s the box at the top if you click the toolbar &#8220;Find Events&#8221;. Next to the search text field you can select different time ranges to be scanned matching your search (or just present all matching the range if you leave it blank). The drop [&hellip;]<\/p>\n","protected":false},"author":426,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,15],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/posts\/268"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/users\/426"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/comments?post=268"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/posts\/268\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/media?parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/categories?post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/calendar\/wp-json\/wp\/v2\/tags?post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}