2 commits - lib/locale public_html/.htaccess public_html/js public_html/skins

Aleksander Machniak machniak at kolabsys.com
Thu Mar 15 13:53:50 CET 2012


 lib/locale/en_US.php            |    1 
 public_html/.htaccess           |   16 ---------
 public_html/js/kolab_admin.js   |   27 ++++++++++++----
 public_html/skins/default/ui.js |   65 ++++++++++++++++++++++++++--------------
 4 files changed, 65 insertions(+), 44 deletions(-)

New commits:
commit e6e8bd35a8f197693f82673975a03beb9bfd4a6b
Merge: ef12730 20627dd
Author: Aleksander Machniak <alec at alec.pl>
Date:   Thu Mar 15 13:53:39 2012 +0100

    Merge branch 'master' of ssh://git.kolab.org/git/kolab-wap



commit ef127300c69f7b701011a513b3712f2ca1b12641
Author: Aleksander Machniak <alec at alec.pl>
Date:   Thu Mar 15 13:53:15 2012 +0100

    Fix list widget

diff --git a/lib/locale/en_US.php b/lib/locale/en_US.php
index 21fd2fc..49cdb79 100644
--- a/lib/locale/en_US.php
+++ b/lib/locale/en_US.php
@@ -69,6 +69,7 @@ $LANG['user.fbinterval'] = 'Free-Busy interval';
 $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)';
 $LANG['user.user_type_id'] = 'Account type';
 $LANG['user.alias'] = 'Secondary Email Address(es)';
+$LANG['user.mailalternateaddress'] = 'Secondary Email Address(es)';
 $LANG['user.invitation-policy'] = 'Invitation policy';
 $LANG['user.delegate'] = 'Email delegates';
 $LANG['user.delegate.desc'] = 'Others allowed to send emails with a "From" address of this account';
diff --git a/public_html/.htaccess b/public_html/.htaccess
deleted file mode 100644
index b228331..0000000
--- a/public_html/.htaccess
+++ /dev/null
@@ -1,16 +0,0 @@
-<IfModule mod_rewrite.c>
-    RewriteEngine on
-    RewriteBase /~vanmeeuwen/kolab-wap/public_html
-
-    # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
-    RewriteCond %{REQUEST_FILENAME} !-f
-    RewriteCond %{REQUEST_FILENAME} !-d
-    RewriteCond %{REQUEST_URI} !=/favicon.ico
-    RewriteRule ^api/(.*)\.(.*)$ api/index.php?service=$1&method=$2 [L,QSA]
-
-</IfModule>
-
-AddDefaultCharset   UTF-8
-
-php_value error_reporting      6135
-
diff --git a/public_html/js/kolab_admin.js b/public_html/js/kolab_admin.js
index 08b6f31..26f1c10 100644
--- a/public_html/js/kolab_admin.js
+++ b/public_html/js/kolab_admin.js
@@ -412,6 +412,10 @@ function kolab_admin()
     }
   };
 
+  /*********************************************************/
+  /*********                 Forms                 *********/
+  /*********************************************************/
+
   this.serialize_form = function(id)
   {
     var i, v, json = {},
@@ -429,13 +433,17 @@ function kolab_admin()
 
     this.trigger_event('form-serialize', {id: id, json: json});
 
+    // convert values of list elements to array type
+    $('textarea[data-type="list"]', form).each(function() {
+      var name = this.name;
+      // maybe already converted by skin engine
+      if (json[name] && !$.isArray(json[name]))
+        json[name] = $(this).val().split("\n");
+    });
+
     return json;
   };
 
-  /*********************************************************/
-  /*********                 Forms                 *********/
-  /*********************************************************/
-
   this.form_value_change = function(events)
   {
     var i, j, e, elem, name, elem_name,
@@ -466,11 +474,18 @@ function kolab_admin()
 
   this.form_value_response = function(response)
   {
+    var i, val;
     if (!this.api_response(response))
       return;
 
-    for (var i in response.result)
-      $('[name="'+i+'"]').val(response.result[i]);
+    for (i in response.result) {
+      val = response.result[i];
+      if ($.isArray(val))
+        val = val.join("\n");
+      $('[name="'+i+'"]').val(val);
+
+      this.trigger_event('form-element-update', {name: i});
+    }
   };
 
   this.form_value_error = function(name)
diff --git a/public_html/skins/default/ui.js b/public_html/skins/default/ui.js
index c4e8e9d..546c1dc 100644
--- a/public_html/skins/default/ui.js
+++ b/public_html/skins/default/ui.js
@@ -153,41 +153,61 @@ function form_serialize(data)
       }
     }
 
-    data.json[this.name] = value.join("\n");
+    data.json[this.name] = value;
   });
 
   return data;
 }
 
+// Form element update handler
+function form_element_update(data)
+{
+  var elem = $('[name="'+data.name+'"]');
+
+  if (!elem.length)
+    return;
+
+  if (elem.attr('data-type') == 'list') {
+    // remove old wrapper
+    $('span[class="listarea"]', elem.parent()).remove();
+    // insert new list element
+    form_element_wrapper(elem.get(0));
+  }
+}
+
 // Form initialization
 function form_init(id)
 {
-  var form = $('#'+id), separator = /[,\s\r\n]+/;
+  var form = $('#'+id);
 
   // replace some textarea fields with pretty/smart input lists
   $('textarea[data-type="list"]', form)
-    .each(function() {
-    var i, len, elem, e = $(this),
-      list = this.value.split(separator),
-      area = $('<span class="listarea"></span>'),
-      disabled = e.attr('disabled') || e.attr('readonly');
-
-    e.hide();
-
-    for (i=0, len=list.length; i<len; i++) {
-      elem = form_list_element(form, {
-        name: this.name+'['+i+']',
-        value: list[i],
-        disabled: disabled
-      });
-      elem.appendTo(area);
-    }
+    .each(function() { form_element_wrapper(this); });
+}
 
-    if (disabled)
-      area.addClass('readonly');
+// Replaces form element with smart element
+function form_element_wrapper(form_element)
+{
+  var i, len, elem, e = $(form_element),
+    list = form_element.value.split("\n"),
+    area = $('<span class="listarea"></span>'),
+    disabled = e.attr('disabled') || e.attr('readonly');
+
+  e.hide();
+
+  for (i=0, len=list.length; i<len; i++) {
+    elem = form_list_element(form_element.form, {
+      name: form_element.name+'['+i+']',
+      value: list[i],
+      disabled: disabled
+    });
+    elem.appendTo(area);
+  }
 
-    area.appendTo(this.parentNode);
-  });
+  if (disabled)
+    area.addClass('readonly');
+
+  area.appendTo(form_element.parentNode);
 }
 
 // Creates smart list element
@@ -233,3 +253,4 @@ function form_list_element(form, data)
  */
 kadm.add_event_listener('form-load', form_load);
 kadm.add_event_listener('form-serialize', form_serialize);
+kadm.add_event_listener('form-element-update', form_element_update);





More information about the commits mailing list