From ac30e75d9c19f82c75fe35708ff4a56c3900630c Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 27 Sep 2011 11:14:27 +0200 Subject: [PATCH] Enable saving, remove debug stuff, show message if no devices are yet registered --- plugins/kolab_zpush/kolab_zpush.js | 6 +++++- plugins/kolab_zpush/kolab_zpush.php | 14 +++++++++----- plugins/kolab_zpush/skins/default/config.css | 1 + .../skins/default/templates/config.html | 8 +++++++- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/plugins/kolab_zpush/kolab_zpush.js b/plugins/kolab_zpush/kolab_zpush.js index b66b2eb9..f1cb0b01 100644 --- a/plugins/kolab_zpush/kolab_zpush.js +++ b/plugins/kolab_zpush/kolab_zpush.js @@ -20,7 +20,6 @@ function kolab_zpush_config() /* constructor */ - var devicelist = new rcube_list_widget(rcmail.gui_objects.devicelist, { multiselect:true, draggable:false, keyboard:true }); devicelist.addEventListener('select', select_device); @@ -51,6 +50,10 @@ function kolab_zpush_config() // callback from server after loading device data function device_data_ready(data) { + // reset form first + $('input.alarm:checked').prop('checked', false); + $('input.subscription:checked').prop('checked', false).change(); + if (data.id && data.id == active_device) { $('#config-device-alias').val(data.devicealias); $('#config-device-mode').val(data.syncmode); @@ -101,6 +104,7 @@ function kolab_zpush_config() { if (p.success && p.devicename) { $('#devices-table tr.selected span.devicealias').html(p.devicename); + rcmail.env.devices[p.id].ALIAS = p.devicename; } } diff --git a/plugins/kolab_zpush/kolab_zpush.php b/plugins/kolab_zpush/kolab_zpush.php index ef87c0cc..4531ee24 100644 --- a/plugins/kolab_zpush/kolab_zpush.php +++ b/plugins/kolab_zpush/kolab_zpush.php @@ -111,7 +111,6 @@ class kolab_zpush extends rcube_plugin break; case 'save': - console($_POST); $this->init_imap(); $devices = $this->list_devices(); $syncmode = get_input_value('syncmode', RCUBE_INPUT_POST); @@ -128,11 +127,15 @@ class kolab_zpush extends rcube_plugin $this->root_meta['DEVICE'][$device_id]['ALIAS'] = $devicealias; $this->root_meta['FOLDER'][$device_id]['S'] = intval($subsciptions[self::ROOT_MAILBOX]); -# $err = !$this->rc->imap->set_metadata(self::ROOT_MAILBOX, -# array(self::ACTIVESYNC_KEY => $this->serialize_metadata($this->root_meta))); + $err = !$this->rc->imap->set_metadata(self::ROOT_MAILBOX, + array(self::ACTIVESYNC_KEY => $this->serialize_metadata($this->root_meta))); } // iterate over folders list and update metadata if necessary foreach ($this->folders_meta() as $folder => $meta) { + // skip root folder (already handled above) + if ($folder == self::ROOT_MAILBOX) + continue; + if ($subsciptions[$folder] != $meta[$device_id]['S']) { $meta[$device_id]['S'] = intval($subsciptions[$folder]); $this->folders_meta[$folder] = $meta; @@ -144,7 +147,7 @@ class kolab_zpush extends rcube_plugin $metadata = $this->unserialize_metadata($asyncdata); $metadata['FOLDER'] = $meta; -# $err |= !$this->rc->imap->set_metadata($folder, array(self::ACTIVESYNC_KEY => $this->serialize_metadata($metadata))); + $err |= !$this->rc->imap->set_metadata($folder, array(self::ACTIVESYNC_KEY => $this->serialize_metadata($metadata))); } } @@ -152,7 +155,7 @@ class kolab_zpush extends rcube_plugin $this->cache->remove('folders'); $this->cache->write('folders', $this->folders_meta); - $this->rc->output->command('plugin.zpush_save_complete', array('success' => !$err, 'devicename' => Q($devicealias))); + $this->rc->output->command('plugin.zpush_save_complete', array('success' => !$err, 'id' => $device_id, 'devicename' => Q($devicealias))); } if ($err) @@ -190,6 +193,7 @@ class kolab_zpush extends rcube_plugin $this->register_handler('plugin.deviceconfigform', array($this->ui, 'device_config_form')); $this->register_handler('plugin.foldersubscriptions', array($this->ui, 'folder_subscriptions')); + $this->rc->output->set_env('devicecount', count($this->list_devices())); $this->rc->output->send('kolab_zpush.config'); } diff --git a/plugins/kolab_zpush/skins/default/config.css b/plugins/kolab_zpush/skins/default/config.css index 299734b7..58094557 100644 --- a/plugins/kolab_zpush/skins/default/config.css +++ b/plugins/kolab_zpush/skins/default/config.css @@ -77,6 +77,7 @@ top: 12px; left: 5px; padding-left: 10px; + max-width: 40em; } #introtext .pointer-left { diff --git a/plugins/kolab_zpush/skins/default/templates/config.html b/plugins/kolab_zpush/skins/default/templates/config.html index 927684e9..421b25d1 100644 --- a/plugins/kolab_zpush/skins/default/templates/config.html +++ b/plugins/kolab_zpush/skins/default/templates/config.html @@ -43,7 +43,13 @@

-
+
+ + + + + +