1. Introduction

1.1. WebApp

Zarafa WebApp and its plugins are complete as the communication platform of the future. The WebApp is essentially a front-end for a server-side, database driven application (zarafa-server). The user interface portion of the WebApp is written using the Ext JS 3.4 framework, which provides a desktop-like UI, with a programming interface. WebApp architecture is very flexible allowing community to easily create new plugins, contexts or widgets.

Some useful links to online resources are listed in Appendix B: References.

1.2. Requirements

To use WebApp, the following is required: a web server that is capable of running PHP 5.2 or higher; access to a Zarafa server with either a 7.0 version later than 7.0.8, or any 7.1 version; the PHP-MAPI extension matching the Zarafa server version.

As for browsers, WebApp does support for the latest of the following brands:

  • Internet Explorer
  • Firefox
  • Chrome
  • Safari

Customers have support for the browser versions which are at most 1 year old, but they should refer to the documentation on http://documentation.kopano.io/support_lifecycle_policy.

1.3. Document Structure Overview

The first part covers and represents general information about programming for Zarafa WebApp. These chapters contain the things that are relevant to all plug-in developers. An overview of the WebApp architecture is given in Architecture Overview, and Ext JS is introduced in Ext JS and OO-Javascript. Starting on how to extend WebApp is given in the chapters Dialogs and Bidding System.

The second part contains advanced information about WebApp. This part explains things that probably won’t be used by all plugin developers, for example, additional information about Data Models and MAPI. Some more detailed explanation of the Communication and Stores and RecordFactory. Also some advanced things to know, but not obligatory to use, such as the Deployment and Build System and dealing with Translations.

Appendix A: Naming Conventions contains coding guidelines and recommendations for the code style to use, concerning comments and documentation.

1.4. Examples

The manual frequently gives code examples. These are taken from available plugins such as the Facebook Events plugin and the Facebook widget plugin. The Facebook Events plugin for example is published as separate project; the Facebook widget is part of the WebApp package.

1.4.1. Facebook Events

The core example of this manual will be the Facebook Events integration plugin. The Facebook Event plugin allows the WebApp user to copy Facebook events to his Zarafa calendar. When the Facebook button in the navigation panel of the user’s Calendar is clicked for the first time, he’ll be asked to login to Facebook and provide Zarafa WebApp access to your personal data. After getting confirmation, you’ll see the progress bar while the event list is loading. After this you’ll see the list of all your events selected.

Unchecking unnecessary events, you can select which events to import. Your Facebook events will be added as new Zarafa events of special type. For the next time, you can synchronise data by clicking the same button in the Calendar Navigation Panel. The period of the events in the future to import can be specified in settings.

1.4.2. Facebook widget

Finally, the Facebook widget plugin allows the user to follow activity on Facebook. It is possible to select any account; by default the Zarafa Facebook page is followed.