Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/h44z/kopano_webapp_calendarimporter

Mirror of the Kopano WebApp Calendar Importer plugin
https://github.com/h44z/kopano_webapp_calendarimporter

calendar export ical import kopano plugin webapp

Last synced: 15 days ago
JSON representation

Mirror of the Kopano WebApp Calendar Importer plugin

Awesome Lists containing this project

README

        

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 [email protected] -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")