Several bugfixes and README-update

This commit is contained in:
JodliDev 2021-09-28 21:23:22 +02:00
parent 0fe9be1221
commit 72dd4dffcd
7 changed files with 25 additions and 7 deletions

View file

@ -47,3 +47,17 @@ So I decided to ditch the "multiple driver" support and keep most changes in the
- All calendars from a source will be automatically added.
- Calendars can be created and deleted directly at the CalDAV source.
- ics support included.
### Installation
I havent published this as a plugin, so you have to instruct composer to install directly from github. Run the following commands in the roundcubemail folder
(If you get an error that the "API rate limit" has been exceeded and you need an GitHub OAuth token, just follow the instructions in the console - you will need a GitHub account).
```
cd /pathTo/roundcubemail
composer config repositories.calendar vcs https://github.com/JodliDev/calendar
composer config repositories.libcalendaring vcs https://github.com/JodliDev/libcalendaring
composer config minimum-stability dev
composer require kolab/calendar
bin/initdb.sh --dir=plugins/calendar/drivers/caldav/SQL
```

View file

@ -4226,7 +4226,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
rcmail.register_command('print', function(){ cal.print_calendars(); }, true);
// configure list operations
rcmail.register_command('calendar-sources-add', cal.calendar_new_source, true);
rcmail.register_command('calendar-sources-new', cal.calendar_new_source, true);
rcmail.register_command('calendar-sources-delete', cal.calendar_delete_sources, true);
rcmail.register_command('calendar-create', function(){ cal.calendar_edit_dialog(null); }, true);
rcmail.register_command('calendar-edit', function(){ cal.calendar_edit_dialog(cal.calendars[cal.selected_calendar]); }, false);

View file

@ -37,7 +37,7 @@ CREATE TABLE IF NOT EXISTS `caldav_sources` (
CREATE TABLE IF NOT EXISTS `caldav_calendars` (
`calendar_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`source_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`source_id` int(10) UNSIGNED DEFAULT NULL,
`name` varchar(255) NOT NULL,
`color` varchar(8) NOT NULL,
`showalarms` tinyint(1) NOT NULL DEFAULT '1',

View file

@ -41,7 +41,7 @@ CREATE SEQUENCE caldav_calendars_seq;
CREATE TABLE IF NOT EXISTS caldav_calendars (
calendar_id int CHECK (calendar_id > 0) NOT NULL DEFAULT NEXTVAL ('caldav_calendars_seq'),
user_id int CHECK (user_id > 0) NOT NULL DEFAULT '0',
source_id int CHECK (source_id > 0) NOT NULL DEFAULT '0',
source_id int CHECK (source_id > 0) DEFAULT NULL,
name varchar(255) NOT NULL,
color varchar(8) NOT NULL,
showalarms smallint NOT NULL DEFAULT '1',

View file

@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS `caldav_sources` (
CREATE TABLE IF NOT EXISTS `caldav_calendars` (
`calendar_id` INTEGER NOT NULL PRIMARY KEY,
`user_id` INTEGER NOT NULL DEFAULT '0',
`source_id` INTEGER NOT NULL DEFAULT '0',
`source_id` INTEGER DEFAULT NULL,
`name` TEXT NOT NULL,
`color` TEXT NOT NULL,
`showalarms` tinyINTEGER NOT NULL DEFAULT '1',

View file

@ -388,7 +388,11 @@ class caldav_client extends Sabre\DAV\Client
</C:mkcalendar>";
$response = $this->request('MKCALENDAR', $path, $body, $headers);
return $response["statusCode"] === 201;
if($response['statusCode'] !== 201) {
rcmail::console('Could not create calendar. Response:' .print_r($response, true));
return false;
}
return true;
}
public function delete_calendar() {

View file

@ -363,7 +363,7 @@ class caldav_driver extends calendar_driver
$prop['showalarms']?1:0,
$prop['caldav_url'],
isset($prop["caldav_tag"]) ? $prop["caldav_tag"] : null,
!!$prop['is_ical']
$prop['is_ical']?1:0
);
if ($result)