Page tree
Skip to end of metadata
Go to start of metadata

Your Rating: Results: 1 Star2 Star3 Star4 Star5 Star 88 rates

Draft for independent module

A set of modules to help with managing and rendering events and calendars in Magnolia. For now this page is just an unordered collection of thoughts. Please share yours.


A fairly common requests in projects is to display events and calendars in a website. And another related issue is to "manage" those.

It is in part covered by the "event" template in the STK, but this is far from a complete solution. Others will resort to including a Google Calendar snippet, but that isn't necessarily the most flexible and good looking solution either.

Some of the questions that are raised around this topic:

  • How to add/register events ?
  • How to display a calendar with certain events
  • How to share calendars and events ? (between departments, for example)
  • How to reference events in pages, …
  • Workflow for events ? (someone must approve them - and perhaps not only their publication on the website, but their physical existence as well?)
  • ...

Implementation ideas

Rough list of ideas:

  • See a prototype Magnolia International built for a prospect and - a very basic stk page component that displays a calendar from a Google Calendar url, or a Kerio/ics URL. Will extract it soon (on the forge or the sandbox)
  • provide support for storing events in the repository (data or specific workspace)
    • hierarchically - folders per department ?
    • with basic info, and image(s), and categories, and url (or in-Magnolia page link)
  • but also provide support for events in other systems
    • CalDAV server (Kerio is one), serving .ics files - iCal
    • Google Calendar
    • Bedeworks
    • in this case, that means that workflow for approving events, sharing, etc is relegated to other system
  • … and retro-fit with STK's basic mechanism - where an "event" can be a page of its own (specific template, and page properties that define the event)
  • basic module should expose API, submodules implement it (one for in-repo, one for caldav/ics, one for google calendar, etc)
  • similar to DAM, users should be able to select events or calendars from multiple sources
    • perhaps (depending on source?), what the user select is a "calendar", or a "category of events", and/or a date range, …
  • a calendar page template should be provide to display calendars
    • use fullCalendar.js to render calendars. Works very nicely, easy to customize and style.
    • provide several views: full calendar (the fullCalendar lib itself can be configured for day, week, month views, and agenda views very similar to iCal), small calendar widget (similar to what we have in STK?), list view
    • clicking an event could mean: go to event's "page", or open event details in a lightbox type of view, …
    • choose date range to display, categories, ...
  • an event page, similar to STK's, should exist but only reference an event - by using the "dam-like" control mentioned above to reference an event. Further page components are added to the page to describe the event, or write a news article about the event, etc.
  • if events stored in repo (perhaps not only?) events can also back-reference their pages ? I.e an event page should be able to link to other pages that reference the same event.
  • If events stored outside the repo
    • cache .ics files
    • a generic proxy servlet might be useful (seem to have seen one somewhere before), where we could perhaps use the cache module to cache a URL's content … not sure about using cache because perhaps we want expiry dates on a per url basis ? Either way would require Cache configuration Improvements to be able to cache items in its own custom cache.
    • mirror (reference, pointer to original source) events in repository ? this might allow to add features that the external system wouldn't have ? (such as uuid-links to magnolia pages?) … and perhaps would alleviate the need for a dam-like control, since all events would thus be in the same repo…
  • Generate ics (and other formats?) files for events and calendars - in some case could proxy, or redirect, to the real url if it exists, or we could regenerate (and cache) the file in Magnolia.
  • Of course handle microformats as well !



See also

Found 3 search result(s) for calendar.

Page: Concept QueryUtil (Product Development)
... mgnl page is returned API changes info.magnolia.cms.util.DateUtil public static String createDateTimeExpressionIgnoreTimeZone(Calendar calendar) public static String createDateTimeExpression(Calendar calendar) public static String createDateExpression(Calendar calendar) info.magnolia.cms.util.QueryUtil public static NodeIterator search(String workspace ...
Page: STK 1.2 Maintenance (Product Development)
... photoindex after: .photoindex changed id to a class see photogallery.html   Prio 1   #calendar before: #calendar after: .calendar has to be .calendar see event.html   Prio 1   Domtabs before: .textbox after: .textboxtabs   Prio ...
Page: Concept Blog module (Product Development)
... list of blog entries Social bookmarking showTextFeatures option in the intro area Calendar STK Tags Categorization module Search STK search Security ...
Labels: template, idea, stk, blog

Found 0 search result(s) for calendar.

Found 4 search result(s) for calendar.

Page: Ideas for possible components (Community Wiki)
... npm component lister. Images Flickr Getty Images (free) Calendar Google calendar OpenTable BookingBug Google Charts Slideshare Stock ticker Weather widget Accuweather ... ...
Page: Hibernate's Criteria-like API for Magnolia-JCR (Community Wiki)
... results (that is instances of info.magnolia.cms.core.Content). As in Hibernate's Criteria, method chaining is supported. Here is an example: Calendar begin = Calendar.getInstance(); begin.set(2004, Calendar.JANUARY, 1); Calendar end = Calendar.getInstance(); end.set(2008, Calendar.DECEMBER, 1); Collection<Content> pets = JCRCriteriaFactory.createMgnlCriteria ...
Labels: criteria, query, jcr, api, hibernate
Page: JCR Query Cheat Sheet (Community Wiki)
... query: Date today = Calendar.getInstance().getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar c = Calendar.getInstance(); c.setTime(today); // Now use today date. String path ...
Page: How personalization works with Magnolia (Community Wiki)
... Qu Yuan. The festival occurs on the fifth day of the fifth month on the Chinese lunar calendar. On August 10, a threeday festival known as Puck Fair is held in Killorglin, Ireland ...


Found 10 search result(s) for events.

Page: Concept - Event mechanism (Product Development)
... extension for Guice. Annotating parameter Simply annotating a parameter on a method as an event that it want to receive. public void afterLogin(@Observes LoggedInEvent event) This is the approach used in CDI. Implementation options for sending events For sending events an object ...
Labels: roadmap_5_2
Page: Concept - Personalization - Story feasibility (Magnolia Development)
... can show a list of events on an events overview page by selecting one or several event categories. All events with these categories will then be pulled from the pool of events and will be shown in chronological order, with upcoming events coming first, up to a configurable maximum of events. Developer ...
Page: Filesystem observation overview on various platforms (Magnolia Development)
... OS X WatchService implementation uses polling instead of the direct consumption of native events there's significant latency of the occurrence of events in Java app . Linux platform seems to be most moderate in terms of the amount of events ...
Page: Concept Observation module (Product Development)
... module will be used to add event handling on workspace actions. Goals support commands and event listener classes deferred/delayed execution support scripting commands Requirements Input ... Observation module facilitates registering interest, monitoring and responding to ...
Page: Concept - Workbench consistency (Magnolia Development)
... even another user. When the selection changes so must also the location.   Events We're using events to synchronize the workbench after an action is executed. We will need to review the events, when they're sent, if they carry enough detail, and which bus ...
Page: View contexts (Magnolia Development)
... views can inject it. Similarities to EventBus ViewContext concept to some extent resembles the event bus: both can be shared between the UI parts, both can communicate ...
Page: Micro public instances use cases (Product Development)
... other involved productions instances. Not exposing them to the extra stress of an auto scaling event. The resources on the backup scaler instance could also be increased for the scaling event and then decreased when finished. Additional Resources Backup Extended Optimized Backup with Repository ...
Page: Concept - Keyboard Shortcuts (Magnolia Development)
... TAB here. If its in its own PANEL will that capture the TAB? Problem Scope of events A major problem is the scope of the events, and also getting events not to propogate once they have been handled. A few explicit examples: We had
Page: Rich text editor enhancements (Magnolia Development)
... would construct a rich text field with custom plugin and upon construction sends an event to it. Plugin will react on event and send another event back to server. MagnoliaRichTextFieldConfig config = new MagnoliaRichTextFieldConfig(); //Under /PATH/TO/JS/ there should ...
Labels: implemented, change-log-50
Page: Memory leak hunt (Magnolia Development)
... apps. AppLauncher. We use so called EventbusProtector mechanism in order to prevent the event handlers to leak, i.e. when an app instance is closed, the event buses created in its scope get reset and all the handlers are removed. The same ...

Found 0 search result(s) for events.

Found 10 search result(s) for events.

Page: Event Logger (Community Wiki)
... public class CommandEventListenerLogger extends CommandEventListener { @Override public void onEvent(EventIterator events) { List<Event>; eventList = IteratorUtils.toList(events); int len = eventList.size(); Event event = null; for (int i = 0; i < len; i) super.onEvent(events
Page: Cache Debugging (Community Wiki)
... Time for how long the content should be valid. 1 indicates forever. Flush Events Cache flush events happen when content is updated. When debugging a custom cache configuration it can ... ...
Labels: cache, cache-advanced
Page: Basics (Community Wiki)
... supports the version 2.0 of the notation (through the integration of JBoss jBPM). image20176615329.png Events Start Events Icon Description image201766151632.png Untyped start event that triggers a new process instance. image201766152013.png A process instance is started on receipt ...
Page: Third party analytics (Community Wiki)
... score models Google analytics Piwick / Mamoto Omniture Events in third party tools can also be tracked by recommender module. Assign scores ...
Page: Exercise: Implement the email notifier (extended) (Community Wiki)
... type. Select the Error boundary event and open its Properties panel. Go to the Event tab and click on the predefined event type. Click on the button to add a new error mapping. Enter as a Name "Notificationfailed ... ...
Page: Exercise: Implement the node dispatcher (Community Wiki)
... attributes. Draw the custom workflow Drag and drop the DispatchNodePublication task between the Start event and the End event. image201761510616.png Open the palette's folder Tasks and select a User Task. Drag ... ...
Page: Small App Example (Community Wiki)
... graphical perspective that would look like this: mvppattern.png Here we also see the event bus pictured. The Presenter can dispatch events within the system using one of four different buses. The different buses correspond ...
Page: JCR Query Cheat Sheet (Community Wiki)
... empty and this date starts at least 1 second after current midnight. Useful for events. SELECT p. FROM nt:base AS p WHERE ISDESCENDANTNODE('/') AND ( <> '' AND > CAST ...
Page: Content Templates / Blueprint Templates (Community Wiki)
... Purpose The Problem In early states or even with common used templates like news or events it's helpful to have some kind of auto generated page with content in it. That helps ...
Page: Exercise: Implement the email notifier (Community Wiki)
... Draw the custom workflow In the BPMN editor, drag and drop the SendEmailNotification task and an End events into the diagram. Link the Start event with the SendEmailNotification task and the SendEmailNotification task with the End event. We should obtain this: image2017612122642.png To extend the default publication workflow, drag ...

  • No labels