eXo Platform 3.5

## Chapter 2. Applications

This chapter provides you a comprehensive view about applications in eXo Collaboration, including:

- Portlets

- Gadgets

These applications are packaged as Web application archives (WARs).

Also, you can specify the package of each portlet and gadget and its available preferences that allow you to extend the configuration choices for standard preferences.

## Portlets

### Calendar portlet

The Calendar portlet is packaged in the calendar.war file.

#### Description

The Calendar portlet shows the Calendar application of eXo Collaboration with a lot of features provided to users.

The Calendar application includes the following features:

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

- Create events or tasks using the Quick Add dialog easily.

- Create events or 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.

- View events day-by-day by navigating the mini-calendar quickly.

- Share calendars with others.

- Import/Export calendars.

- Publish your calendars with RSS, CalDAV.

- Search for events and/or tasks in calendars.

- Print your agenda.

#### Portlet.xml

To see the portlet in the project, 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.

### Note

The Chatbar portlet and its services are deprecated. It remains fully supported for eXo customers, however it will not receive any enhancement and will be removed from the product scope in the future.

#### 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 the browser window is scrolled or resized. Its height is fixed, but can be expanded horizontally to any size available in its container. This allows the portlet to be placed in two layout cases:

- Large width area (typically header or footer).

- Narrow column.

The Chatbar application implements all functions of the Chat application, allowing you to send and receive messages anywhere after you are logged in successfully. The Chatbar is a typical toolbar with buttons to open menus. It gives access to main features of Chat:

- Status change and presence indicator.

- Contacts.

- Rooms.

- Minimized conversation window.

#### Portlet preferences

The Chatbar Portlet consists of 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>

In which:

Preference Name | Possible Values | Default Values | Description
--- | --- | --- | ---
showMailLink | `true / false` | `true` | The value as "true" or "false" means that users are allowed to see the application icon or not respectively.
showCalendarLink | `true / false` | `true` | The value as "true" or "false" means that users are allowed to see the application icon or not respectively.
showContactLink | `true / false` | `true` | The value as "true" or "false" means that users are allowed to see the application icon or not respectively.
mailUrl | `string` | `Portal/private/intranet/mail` | The URL to the Mail application page in the portal without combining with the %domain name. The port% chatbar will resolve it from server.
calendarUrl | `string` | `Portal/private/intranet/calendar` | The URL to the Calendar application page in the portal without combining with the %domain name. The port% chatbar will resolve it from server.
contactUrl | `string` | `Portal/private/intranet/contact` | The URL to the Address Book application page in the portal without combining with the %domain name. The port% chatbar will resolve it from server.
info | `Info` | `Info` | This is only the key to get the resource bundle of 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.

### Note

The Chat portlet and its services are deprecated. It remains fully supported for eXo customers, however it will not receive any enhancement and will be removed from the product scope in the future.

#### 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.

### Note

The Mail portlet and its services are deprecated. It remains fully supported for eXo customers, however it will not receive any enhancement and will be removed from the product scope in the future.

#### 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, the Mail application 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.

### Warning

The RSSreader portlet and its services are deprecated. It remains fully supported for eXo customers, however it will not receive any enhancement and will be removed from the product scope in the future.

#### 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, and more.

#### 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.

See 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 the Calendar portlet.
Subscribeurl | Link to the 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 the upcomingEvent service in the following package: org.exoplatform.webservice.cs.calendar.CalendarWebservice.java.

### Taskslist

Taskslist lists 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

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"/>

Accordingly, setting 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

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 the Mail Application.
Subscribeurl | The link to upcoming messages.
Limit | The number of displayed unread messages that is set by users.
Account | The mail account in the Mail application.
Folder | The folder which consists of unread messages.
Tag | The tags in all unread messages.

#### Links to used REST services

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