diff --git a/plugins/calendar/.gitignore b/plugins/calendar/.gitignore
index 93262bcd..7c2f14c7 100644
--- a/plugins/calendar/.gitignore
+++ b/plugins/calendar/.gitignore
@@ -4,4 +4,5 @@
*~
config.inc.php
skins/*
-!skins/default
\ No newline at end of file
+!skins/default
+!skins/larry
\ No newline at end of file
diff --git a/plugins/calendar/skins/larry/calendar.css b/plugins/calendar/skins/larry/calendar.css
index e5152b34..54849aaf 100644
--- a/plugins/calendar/skins/larry/calendar.css
+++ b/plugins/calendar/skins/larry/calendar.css
@@ -1242,7 +1242,11 @@ fieldset #calendarcategories div {
/* Invitation UI in mail */
#messagemenu li a.calendarlink span.calendar {
+<<<<<<< HEAD
background-position: 0 -1949px;
+=======
+ background-position: 0px -1948px;
+>>>>>>> e666187312ca04384a28a77bf1836db79a97ca52
}
div.calendar-invitebox {
diff --git a/plugins/kolab_folders/kolab_folders.php b/plugins/kolab_folders/kolab_folders.php
index ab84c24c..e1b2e634 100644
--- a/plugins/kolab_folders/kolab_folders.php
+++ b/plugins/kolab_folders/kolab_folders.php
@@ -94,6 +94,9 @@ class kolab_folders extends rcube_plugin
// Get folders list
if ($args['mode'] == 'LIST') {
+ if (!$storage->check_connection()) {
+ return $args;
+ }
$args['folders'] = $storage->conn->listMailboxes($args['root'], $args['name']);
}
else {
@@ -405,18 +408,22 @@ class kolab_folders extends rcube_plugin
{
$storage = $this->rc->get_storage();
+ if (!$storage->check_connection()) {
+ return null;
+ }
+
// Code copied from rcube_imap::_list_mailboxes()
// Server supports LIST-EXTENDED, we can use selection options
// #1486225: Some dovecot versions returns wrong result using LIST-EXTENDED
- if (!$this->rc->config->get('imap_force_lsub') && $storage->get_capability('LIST-EXTENDED')) {
+ if (!$this->rc->config->get('imap_force_lsub') && $imap->get_capability('LIST-EXTENDED')) {
// This will also set mailbox options, LSUB doesn't do that
$a_folders = $storage->conn->listMailboxes($root, $name,
NULL, array('SUBSCRIBED'));
// remove non-existent folders
- if (is_array($a_folders) && $name = '*') {
+ if (is_array($a_folders) && $name = '*' && !empty($storage->conn->data['LIST'])) {
foreach ($a_folders as $idx => $folder) {
- if ($storage->conn->data['LIST'] && ($opts = $storage->conn->data['LIST'][$folder])
+ if (($opts = $storage->conn->data['LIST'][$folder])
&& in_array('\\NonExistent', $opts)
) {
$storage->conn->unsubscribe($folder);
@@ -430,10 +437,10 @@ class kolab_folders extends rcube_plugin
$a_folders = $storage->conn->listSubscribed($root, $name);
// unsubscribe non-existent folders, remove from the list
- if (is_array($a_folders) && $name == '*') {
+ if (is_array($a_folders) && $name == '*' && !empty($storage->conn->data['LIST'])) {
foreach ($a_folders as $idx => $folder) {
- if ($storage->conn->data['LIST'] && ($opts = $storage->conn->data['LIST'][$folder])
- && in_array('\\Noselect', $opts)
+ if (!isset($storage->conn->data['LIST'][$folder])
+ || in_array('\\Noselect', $storage->conn->data['LIST'][$folder])
) {
// Some servers returns \Noselect for existing folders
if (!$storage->folder_exists($folder)) {
diff --git a/plugins/kolab_zpush/localization/en_US.inc b/plugins/kolab_zpush/localization/en_US.inc
index 5160d91c..2537d4d5 100644
--- a/plugins/kolab_zpush/localization/en_US.inc
+++ b/plugins/kolab_zpush/localization/en_US.inc
@@ -18,6 +18,7 @@ $labels['contact'] = 'Address Books';
$labels['event'] = 'Calendars';
$labels['task'] = 'Tasks';
$labels['note'] = 'Notes';
+$labels['configuration'] = 'Configuration';
$labels['deletedevice'] = 'Delete device';
$labels['imageformat'] = 'Image format';
$labels['laxpiclabel'] = 'Allow PNG and GIF images';
diff --git a/plugins/owncloud/owncloud.php b/plugins/owncloud/owncloud.php
index 2b05f3fc..d847cc3d 100644
--- a/plugins/owncloud/owncloud.php
+++ b/plugins/owncloud/owncloud.php
@@ -39,18 +39,13 @@ class owncloud extends rcube_plugin
// add taskbar button
$this->add_button(array(
- 'name' => 'owncloud',
+ 'command' => 'owncloud',
'class' => 'button-owncloud',
+ 'classsel' => 'button-owncloud button-selected',
+ 'innerclass' => 'button-inner',
'label' => 'owncloud.owncloud',
- 'href' => './?_task=owncloud',
- 'onclick' => sprintf("return %s.command('owncloud')", JS_OBJECT_NAME)
), 'taskbar');
- $rcmail->output->add_script(
- JS_OBJECT_NAME . ".enable_command('owncloud', true);\n" .
- JS_OBJECT_NAME . ".owncloud = function () { location.href = './?_task=owncloud'; }",
- 'head');
-
$skin = $rcmail->config->get('skin');
if (!file_exists($this->home."/skins/$skin/owncloud.css")) {
$skin = 'default';
diff --git a/plugins/owncloud/skins/larry/cloud.png b/plugins/owncloud/skins/larry/cloud.png
new file mode 100644
index 00000000..7ad3cd96
Binary files /dev/null and b/plugins/owncloud/skins/larry/cloud.png differ
diff --git a/plugins/owncloud/skins/larry/owncloud.css b/plugins/owncloud/skins/larry/owncloud.css
new file mode 100644
index 00000000..1e9aa891
--- /dev/null
+++ b/plugins/owncloud/skins/larry/owncloud.css
@@ -0,0 +1,14 @@
+/***** ownCloud plugin styles *****/
+
+#taskbar a.button-owncloud span.button-inner
+{
+ background: url(cloud.png) 5px 5px no-repeat;
+ height: 14px;
+}
+
+#taskbar a.button-owncloud:hover span.button-inner,
+#taskbar a.button-owncloud.button-selected span.button-inner
+{
+ background: url(cloud.png) 5px -16px no-repeat;
+ height: 14px;
+}
diff --git a/plugins/owncloud/skins/larry/templates/owncloud.html b/plugins/owncloud/skins/larry/templates/owncloud.html
new file mode 100644
index 00000000..8b3f470a
--- /dev/null
+++ b/plugins/owncloud/skins/larry/templates/owncloud.html
@@ -0,0 +1,20 @@
+