eXo Platform 3.0

- Prev
- Next

## Chapter 2. Applications

## Portlets

### Calendar Portlet

The Calendar Portlet is packaged in the Calendar.war file.

#### Description

Calendar Portlet shows the Calendar application of eXo Collaboration, that offers a lot of features to users.

The Calendar application includes the following features:

- Create multiple personal calendars, manage calendars easily with calendar groups.

- Quickly create an event or a task using the Quick Add dialog.

- Create events and tasks in details.

- Create all-day events.

- View other attender's availability schedules.

- Create recurring events.

- Get reminders.

- View calendars by various views: day, week, month and year .

- Quickly view events day by day by navigating the mini-calendar.

- Share calendars with others.

- Import/Export calendars.

- Publish your calendars with RSS, CalDAV.

- Search events/tasks in calendars.

- Print your agenda.

#### Portlet.xml

To see the portlet in the project, please follow this path: /eXoApplication/calendar/webapp/src/main/webapp/WEB-INF/portlet.xml

### Chatbar Portlet

The Chatbar Portlet is packaged in the Chatbar.war file.

#### Description

The Chatbar portlet shows the Chatbar application of eXo Collaboration that can be positioned in the portal or page layout as any other, but behaves as a floating box. The bar remains floating at its location even when browser window is scrolled or resized. It has a fixed height, but expands horizontally to whatever size is available in its container. This allows to place the portlet in two layout cases :

- Large width area (typically header or footer)

- Narrow column

Chat Bar application implements all functions of Chat application with the purpose of allowing user to send and receive messages anywhere after he has logged in.

The Chat Bar is a typical tool-bar with buttons that open menus. It gives access to main chat features :

- Status change and presence indicator

- Contacts

- Rooms

- Minimized conversation window

#### Portlet preferences

The Chatbar Portlet consists some preferences as in the following sample code:

    <portlet-preferences>

    			<preference>
    				<name>showMailLink</name>
    				<value>true</value> <!--true/false -->
    				<read-only>false</read-only>
    			</preference>

    			<preference>
    				<name>showCalendarLink</name>
    				<value>true</value> <!--true/false -->
    				<read-only>false</read-only>
    			</preference>

    			<preference>
    				<name>showContactLink</name>
    				<value>true</value> <!--true/false -->
    				<read-only>false</read-only>
    			</preference>

    			<preference>
    				<name>mailUrl</name>
    				<value>portal/private/intranet/mail</value> <!--String page name-->
    				<read-only>false</read-only>
    			</preference>

    			<preference>
    				<name>calendarUrl</name>
    				<value>portal/private/intranet/calendar</value> <!--String page name -->
    				<read-only>false</read-only>
    			</preference>

    			<preference>
    				<name>contactUrl</name>
    				<value>portal/private/intranet/contact</value> <!--String page name-->
    				<read-only>false</read-only>
    			</preference>

    			<preference>
    				<name>info</name>
    				<value>info</value> <!--this is only the key to get the resource bundle the full key : UIConfigForm.label.info -->
    				<read-only>true</read-only>
    			</preference>
    	</portlet-preferences>

Preference Name | Possible Values | Default Values | Description
--- | --- | --- | ---
showMailLink | `true / false` | `true` | true or false value to let users see the application icon or not
showCalendarLink | `true / false` | `true` | true or false value to let user see the application icon or not
showContactLink | `true / false` | `true` | true or false value to let user see the application icon or not
mailUrl | `string` | `Portal/private/intranet/mail` | page url to application page it come when you configuration page.xml and navigation.xml in portal no need to combine with %domain name : port% chatbar will resolve it from server
calendarUrl | `string` | `Portal/private/intranet/calendar` | page url to application page it come when you configuration page.xml and navigation.xml in portal no need to combine with %domain name : port% chatbar will resolve it from server
contactUrl | `string` | `Portal/private/intranet/contact` | page url to application page it come when you configuration page.xml and navigation.xml in portal no need to combine with %domain name : port% chatbar will resolve it from server
info | `Info` | `Info` | This is only the key to get the resource bundle the full key : UIConfigForm.label.info

#### Portlet.xml

See the portlet in the project following this path: /eXoApplication/chatbar/webapp/src/main/webapp/WEB-INF/portlet.xml

### Chat Portlet

The Chat Portlet is packaged in the Chat.war file.

#### Description

The Chat Portlet shows the Chat application of eXo Collaboration that allows users to enter chat rooms and communicate with online others at real time.

#### Portlet.xml

See the portlet in the project following this path: /eXoApplication/chat/webapp/src/main/webapp/WEB-INF/portlet.xml

### Contact Portlet

Contact Portlet is packaged in the Contact.war file.

#### Description

Contact Portlet shows the Contact application of eXo Collaboration that allows users to personalize their contact view from different view types such as List view and VCards view.

#### Portlet.xml

See the portlet in the project following this path: /eXoApplication/contact/webapp/src/main/webapp/WEB-INF/portlet.xml

### Mail Portlet

The Mail Portlet is packaged in the Mail.war file.

#### Description

Mail Portlet shows the Mail application of eXo Collaboration that offers a lot of features to users such as sending, receiving or viewing their mails through Internet without actually downloading them to their computer. Users not only take advantages of eXo Mail by keeping and receiving all important messages, files and pictures forever but also by looking for and viewing their needed messages easily whenever they want. Additionally, eXo Mail is smoothly integrated with other Collaboration modules such as Address Book and Calendar.

#### Portlet.xml

See the portlet in the project following this path: /eXoApplication/mail/webapp/src/main/webapp/WEB-INF/portlet.xml

### RSSreader Portlet

The RSSreader Portlet is packaged in the Rssreader.war file.

#### Description

eXo Collaboration uses the RSS Reader Portlet that facilitates users to quickly get a view of their favorite feeds around the web. They will get the latest news, the last updated posts from their favorite blogs, latest emails,etc.

#### Portlet.xml

See the portlet in the project following this path: /eXoApplication/content/webapp/src/main/webapp/WEB-INF/portlet.xml

## Gadgets

eXo Collaboration consists of three gadgets: eventslist, taskslist and messageslist. They are packaged in the csResources.war file.

### Eventslist

#### Description

Eventslist lists the maximum number of upcoming events, that is configurable by users. For example, they can set the preference list to 5 or 10 events.

#### Description of Preferences

See the preferences of this gadget in the following sample code:

    <UserPref datatype="string" display_name="__MSG_baseurl__" name="url" required="true" value="/calendar"/>
            <UserPref datatype="string" display_name="__MSG_subscribeurl__" name="subscribeurl" required="true" value="/portal/rest/private/cs/calendar/upcoming"/>
            <UserPref datatype="string" default_value="10" display_name="__MSG_limit__" name="limit"/>
            <UserPref datatype="enum" default_value="AM/PM" display_name="__MSG_format__" name="timeformat"/>

Details:

Preferences | Description
--- | ---
url | link to Calendar portlet
Subscribeurl | link to upcoming events
limit | The maximum number of upcoming events
timeformat | The time format for upcoming events

For more details on the preferences of gadgets, see here

#### Links to used REST services

It uses upcomingEvent service in the following package: org.exoplatform.webservice.cs.calendar.CalendarWebservice.java

### Taskslist

Taskslist list the maximum number of upcoming tasks that is configurable by users. For example, they can set the preference list to 5 or 10 tasks.

#### Description of Preferences

See the preferences of this gadget in the following sample code:

    <UserPref datatype="hidden" default_value="/calendar:/portal/rest/private/cs/calendar/upcoming:10:AM/PM:Default" name="setting"/>

Details: Setting: It collects all the configuration of upcoming tasks and add some more functions to help developers change the configuration of the default skin.

#### Links to used REST services

It uses upcomingEvent service in the following package: org.exoplatform.webservice.cs.calendar.CalendarWebservice.java

### Messageslist:

It lists the maximum number of unread messages, that is configurable by users.

#### Description of Preferences

See the prefereces of this gadget in the following sample code:

    <UserPref datatype="hidden" display_name="__MSG_baseurl__" name="url" required="true" value="/mail"/>
            <UserPref datatype="hidden" display_name="__MSG_subscribeurl__" name="subscribeurl" required="true" value="/portal/rest/private/cs/mail/unreadMail"/>
            <UserPref datatype="hidden" default_value="5" display_name="__MSG_limit__" name="limit"/>
            <UserPref datatype="hidden" default_value="" display_name="__MSG_account__" name="account"/>
            <UserPref datatype="hidden" default_value="" display_name="__MSG_folder__" name="folder"/>
            <UserPref datatype="hidden" default_value="" display_name="__MSG_tag__" name="tag"/>

Details:

Preferences | Description
--- | ---
Url | The Url of Mail Application
Subscribeurl | link to upcoming messages
Limit | The number of displayed unread messages that is set by users
Account | The mail account in Mail application
Folder | The folder consists of unread messages
Tag | The tags in all unread messages

#### Links to used REST services

It uses unreadMail service in the following package: org.exoplatform.webservice.cs.mail.MailWebservice.java

- Prev
- Up
- Home
- Next