summaryrefslogtreecommitdiff
path: root/webmail/plugins/carddav/carddav_settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'webmail/plugins/carddav/carddav_settings.js')
-rw-r--r--webmail/plugins/carddav/carddav_settings.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/webmail/plugins/carddav/carddav_settings.js b/webmail/plugins/carddav/carddav_settings.js
new file mode 100644
index 0000000..e1c4694
--- /dev/null
+++ b/webmail/plugins/carddav/carddav_settings.js
@@ -0,0 +1,88 @@
+/**
+ * Roundcube CardDAV addressbook extension
+ *
+ * @author Christian Putzke <christian.putzke@graviox.de>
+ * @copyright Christian Putzke @ Graviox Studios
+ * @since 12.09.2011
+ * @link http://www.graviox.de/
+ * @link https://twitter.com/graviox/
+ * @version 0.5.1
+ * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
+ *
+ */
+
+if (window.rcmail)
+{
+ rcmail.addEventListener('init', function(evt)
+ {
+ var tab = $('<span>').attr('id', 'settingstabplugincarddav-server').addClass('tablink');
+
+ var button = $('<a>').attr('href', rcmail.env.comm_path+'&_action=plugin.carddav-server').
+ html(rcmail.gettext('settings_tab', 'carddav')).appendTo(tab);
+
+ rcmail.add_element(tab, 'tabs');
+ rcmail.addEventListener('plugin.carddav_server_message', carddav_server_message);
+
+ rcmail.register_command('plugin.carddav-server-save', carddav_server_add, true);
+
+ rcmail.register_command('plugin.carddav-server-delete', function(carddav_server_id)
+ {
+ rcmail.http_post(
+ 'plugin.carddav-server-delete',
+ '_carddav_server_id=' + $.base64Encode(carddav_server_id),
+ rcmail.display_message(rcmail.gettext('settings_delete_loading', 'carddav'), 'loading')
+ );
+ }, true);
+
+ $('#_label').keypress(carddav_server_add_enter_event);
+ $('#_server_url').keypress(carddav_server_add_enter_event);
+ $('#_username').keypress(carddav_server_add_enter_event);
+ $('#_password').keypress(carddav_server_add_enter_event);
+ });
+
+ function carddav_server_add_enter_event(e)
+ {
+ if (e.keyCode == 13)
+ {
+ carddav_server_add();
+ }
+ };
+
+ function carddav_server_add()
+ {
+ var input_label = rcube_find_object('_label');
+ var input_url = rcube_find_object('_server_url');
+ var input_username = rcube_find_object('_username');
+ var input_password = rcube_find_object('_password');
+ var input_read_only = rcube_find_object('_read_only');
+
+ if (input_label.value == '' || input_url.value == '')
+ {
+ rcmail.display_message(rcmail.gettext('settings_empty_values', 'carddav'), 'error');
+ }
+ else
+ {
+ rcmail.http_post(
+ 'plugin.carddav-server-save',
+ '_label=' + $.base64Encode(input_label.value) + '&_server_url=' + $.base64Encode(input_url.value) + '&_username=' + $.base64Encode(input_username.value) + '&_password=' + $.base64Encode(input_password.value) + '&_read_only=' + $.base64Encode(input_read_only.checked === true ? '1' : '0'),
+ rcmail.display_message(rcmail.gettext('settings_init_server', 'carddav'), 'loading')
+ );
+ }
+ }
+
+ function carddav_server_message(response)
+ {
+ if (response.check)
+ {
+ $('#carddav_server_list').slideUp();
+ $('#carddav_server_list').html(response.server_list);
+ $('#carddav_server_list').slideDown();
+
+ rcmail.display_message(response.message, 'confirmation');
+ }
+ else
+ {
+ rcmail.display_message(response.message, 'error');
+ }
+ }
+} \ No newline at end of file