124 lines
4.8 KiB
Markdown
124 lines
4.8 KiB
Markdown
CALENDAR IMPORTER AND EXPORTER:
|
|
===
|
|
|
|
## Building the calendar importer plugin from source:
|
|
|
|
### Dependencies
|
|
- Kopano WebApp Source Code (https://stash.kopano.io/projects/KW/repos/kopano-webapp/browse)
|
|
- PHP >= 5 (7 or higher recommended)
|
|
- composer (https://getcomposer.org/)
|
|
- JDK 1.8 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
|
|
- ant (http://ant.apache.org/)
|
|
|
|
Add JAVA_HOME (e.g. C:\Program Files\Java\jdk1.8.0_161) to your path. Also add Ant, Composer, PHP and Java to the global PATH variable!
|
|
|
|
### Compiling the plugin
|
|
Unzip (or use git clone) the sourcecode of Kopano WebApp to a new directory. In this README we call the source folder of WebApp "kopano-webapp-source".
|
|
|
|
Then generate the WebApp build utils:
|
|
```
|
|
cd kopano-webapp-source
|
|
ant tools
|
|
```
|
|
|
|
Next clone the plugin to the WebApp plugin directory:
|
|
```
|
|
cd kopano-webapp-source\plugins
|
|
git clone https://git.sprinternet.at/zarafa_webapp/calendarimporter.git
|
|
```
|
|
|
|
Now lets build the plugin:
|
|
```
|
|
cd kopano-webapp-source\plugins\calendarimporter\php
|
|
composer install
|
|
cd kopano-webapp-source\plugins\calendarimporter
|
|
ant deploy
|
|
```
|
|
|
|
The compiled plugin is saved to `kopano-webapp-source\deploy\plugins\calendarimporter`.
|
|
|
|
## Installing the plugin
|
|
|
|
### From compiled source
|
|
Copy the whole folder "calendarimporter" to your production WebApp (`kopano-webapp-production\plugins\calendarimporter`)
|
|
|
|
For example:
|
|
```
|
|
cp -r kopano-webapp-source\deploy\plugins\calendarimporter kopano-webapp-production\plugins\
|
|
```
|
|
|
|
## Installing the sync backend
|
|
|
|
### From source
|
|
Copy the whole folder "kopano-webapp-source\plugins\calendarimporter\backend" to a destination of cour choice.
|
|
|
|
For example:
|
|
```
|
|
cp -r kopano-webapp-source\plugins\calendarimporter\backend /opt/ical-sync/backend
|
|
```
|
|
|
|
### From precompiled download
|
|
Download the newest backend release from https://git.sprinternet.at/zarafa_webapp/calendarimporter/tree/master/DIST.
|
|
|
|
Unzip the downloaded file and copy the backend folder to a destination of cour choice.
|
|
|
|
For example:
|
|
```
|
|
cp -r Downloads\calendarimporter_backend /opt/ical-sync/backend
|
|
```
|
|
|
|
## WebApp Plugin Configuration
|
|
Edit the config.php file in the plugin root path to fit your needs.
|
|
|
|
Available configuration values:
|
|
|
|
| Configuration Value | Type | Default | Desctription |
|
|
| ------------- |:-------------:| ----- | ----- |
|
|
| PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE | boolean | false | Set to true to enable the plugin for all users |
|
|
| PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE_SYNC | string | true | Set to true to enable the sync feature for all users |
|
|
| PLUGIN_CALENDARIMPORTER_DEFAULT | string | "Kalender" | Default calendar folder name (might be "Calendar" on english installations) |
|
|
| PLUGIN_CALENDARIMPORTER_DEFAULT_TIMEZONE | string | "Europe/Vienna" | The local Timezone |
|
|
| PLUGIN_CALENDARIMPORTER_TMP_UPLOAD | string | "/var/lib/kopano-webapp/tmp/" | Temporary path to store uploaded iCal files |
|
|
|
|
## Sync Backend Configuration
|
|
First you have to create a new Kopano user with admin rights.
|
|
For example:
|
|
```
|
|
kopano-admin -c adminuser -e admin@domain.com -f "Calendar Sync Admin" -p topsecretpw -a 1
|
|
```
|
|
Then edit the config.php file of the sync backend to fit your needs.
|
|
|
|
Available configuration values:
|
|
|
|
| Configuration Value | Type | Default | Desctription |
|
|
| ------------- |:-------------:| ----- | ----- |
|
|
| $ADMINUSERNAME | string | "adminuser" | The newly created Kopano admin user |
|
|
| $ADMINPASSWORD | string | "topsecretpw" | The password of the admin user |
|
|
| $SERVER | string | "http://localhost:236/kopano" | Kopano Socket or HTTP(S) connection string |
|
|
| $CALDAVURL | string | "http://localhost:8080/ical/" | Kopano CalDAV URL |
|
|
| $TEMPDIR | string | "/tmp/" | Temporary path to store synchronised iCal files (must be writeable by the user executing the sync script) |
|
|
|
|
Next set up a cronjob to allow periodic syncing of ical items.
|
|
|
|
For example: (`/etc/crontab`):
|
|
```
|
|
# sync ics calendars every minute (interval can be changed by the user)
|
|
* * * * * icssync /opt/ical-sync/backend/sync.php > /var/log/icssync.log 2>&1
|
|
```
|
|
|
|
If you get an error, make sure that the mapi module is loaded for php-cli. Therefore create or modify: `/etc/php7/cli/conf.d/50-mapi.ini`
|
|
```
|
|
extension=mapi.so
|
|
```
|
|
|
|
Do no run the sync script as root! Create a user without admin rights (`adduser icssync`), and change permissions of the tmp folder accordingly.
|
|
|
|
## Usage
|
|
|
|
The plugin add context menu entries to calendar folders.
|
|
|
|
![Plugin Context Menus](https://git.sprinternet.at/zarafa_webapp/calendarimporter/raw/master/usage.png "Kopano Webapp Context Menu")
|
|
|
|
If syncing is enabled, the calendar section in the WebApp settings gets extended with a synchronisation overview. There you can add new iCal URLs for syncing.
|
|
|
|
![Plugin Settings Menus](https://git.sprinternet.at/zarafa_webapp/calendarimporter/raw/master/usage_sync.png "Kopano Webapp Settings Menu") |