2 commits - lib/client public_html/js

Aleksander Machniak machniak at kolabsys.com
Tue Sep 24 15:07:58 CEST 2013


 lib/client/kolab_client_task_signup.php |   18 +++++++++++-------
 public_html/js/kolab_hosted.js          |   30 +++++++++++++++++-------------
 2 files changed, 28 insertions(+), 20 deletions(-)

New commits:
commit 85ff5b5a89483c0988d128291c6da717a1d91ca0
Author: Aleksander Machniak <alec at alec.pl>
Date:   Tue Sep 24 15:06:54 2013 +0200

    Prevent from submitting signup form while other requests didn't finish,
    e.g. while checking for user existance (Bug #2061)

diff --git a/public_html/js/kolab_hosted.js b/public_html/js/kolab_hosted.js
index c410b01..31e1cdc 100644
--- a/public_html/js/kolab_hosted.js
+++ b/public_html/js/kolab_hosted.js
@@ -24,22 +24,25 @@
 // overwrite user_save() function
 kadm.user_save = function(reload, section)
 {
-    var data = kadm.serialize_form('#'+this.env.form_id);
+    if (this.busy)
+      return;
+
+    var data = this.serialize_form('#'+this.env.form_id);
 
-    if (!kadm.check_required_fields(data)) {
-      kadm.display_message('form.required.empty', 'error');
+    if (!this.check_required_fields(data)) {
+      this.display_message('form.required.empty', 'error');
       return;
     }
 
     // check password
     if (data.userpassword != data.userpassword2) {
-      kadm.display_message('user.password.mismatch', 'error');
-      kadm.form_value_error('userpassword2');
+      this.display_message('user.password.mismatch', 'error');
+      this.form_value_error('userpassword2');
       return;
     }
     delete data['userpassword2'];
 
-    kadm.http_post('signup.add_user', {data: data});
+    this.http_post('signup.add_user', {data: data});
 };
 
 kadm.reload_captcha = function()
@@ -49,7 +52,7 @@ kadm.reload_captcha = function()
 
 kadm.change_user_type = function()
 {
-    var data = kadm.serialize_form('#'+this.env.form_id);
+    var data = this.serialize_form('#'+this.env.form_id);
 
     this.set_busy(true, 'loading');
     kadm.http_post('signup.default', {data: data});
@@ -58,7 +61,7 @@ kadm.change_user_type = function()
 kadm.check_user_availability = function()
 {
     // get form data and build new email address
-    var data = kadm.serialize_form('#signup-form');
+    var data = this.serialize_form('#signup-form');
     var mail = data.uid + '@' + data.domain;
 
     if(data.uid) {
@@ -67,9 +70,10 @@ kadm.check_user_availability = function()
             $('input[name="mail"]').val(mail);
 
             // check if user with that email address already exists
-            kadm.http_post('signup.check_user', {data: data});
+            this.set_busy(true, 'loading');
+            this.http_post('signup.check_user', {data: data});
         } else {
-            kadm.update_user_info('signup.wronguid', 'uid');
+            this.update_user_info('signup.wronguid', 'uid');
         }
     }
 };
@@ -82,7 +86,7 @@ kadm.update_user_info = function(msg, part)
     }
 
     if (msg) {
-        msg = kadm.t(msg);
+        msg = this.t(msg);
     }
 
     // display message next to form field


commit f3a19e4fb68f13980edd21a7c4588b4906ff058e
Author: Aleksander Machniak <alec at alec.pl>
Date:   Tue Sep 24 14:54:45 2013 +0200

    Code cleanup

diff --git a/lib/client/kolab_client_task_signup.php b/lib/client/kolab_client_task_signup.php
index 2746928..ad8a5fc 100644
--- a/lib/client/kolab_client_task_signup.php
+++ b/lib/client/kolab_client_task_signup.php
@@ -105,7 +105,8 @@ class kolab_client_task_signup extends kolab_client_task
     }
 
     // check if user already exists
-    public function action_check_user($data = array()) {
+    public function action_check_user($data = array())
+    {
         if(count($data) == 0) $data = $this->get_input('data', 'POST');
 
         $this->login($data['domain']);
@@ -131,7 +132,8 @@ class kolab_client_task_signup extends kolab_client_task
         return true;
     }
 
-    public function action_add_user() {
+    public function action_add_user()
+    {
         $data = $this->get_input('data', 'POST');
 
         $private_key = $this->config_get('recaptcha_private_key');
@@ -184,7 +186,8 @@ class kolab_client_task_signup extends kolab_client_task
         }
     }
 
-    private function user_form($data = array()) {
+    private function user_form($data = array())
+    {
         $attribs['id'] = 'signup-form';
 
         $fields_map = array(
@@ -224,13 +227,13 @@ class kolab_client_task_signup extends kolab_client_task
             $fields['type_id']['type'] = kolab_form::INPUT_HIDDEN;
             $fields['type_id']['value'] = $accttype['value'];
         }
-        
+
         // Add object type field
         $fields['object_type'] = array(
             'type'     => kolab_form::INPUT_HIDDEN,
             'value'    => 'user',
         );
- 
+
         // Add available domains
         $domains = $this->get_domains();
         $fields['domain'] = array(
@@ -258,7 +261,7 @@ class kolab_client_task_signup extends kolab_client_task
             $fields['userpassword2'] = $fields['userpassword'];
             $fields['userpassword2']['onchange'] = 'password_match()';
         }
-        
+
         // Change field labels for hosted case
         $fields['uid']['label'] = 'signup.username';
         $fields['mail']['label'] = 'signup.futuremail';
@@ -276,7 +279,8 @@ class kolab_client_task_signup extends kolab_client_task
         return $form->output();
     }
 
-    protected function get_domains() {
+    protected function get_domains()
+    {
         // Get a list of domains ($domains again is a kolab_client_api_result instance)
         $domains_list = $this->api->get('domains.list')->get('list');
 
diff --git a/public_html/js/kolab_hosted.js b/public_html/js/kolab_hosted.js
index 6fdb43e..c410b01 100644
--- a/public_html/js/kolab_hosted.js
+++ b/public_html/js/kolab_hosted.js
@@ -59,9 +59,9 @@ kadm.check_user_availability = function()
 {
     // get form data and build new email address
     var data = kadm.serialize_form('#signup-form');
-    var mail = data['uid'] + '@' + data['domain'];
+    var mail = data.uid + '@' + data.domain;
 
-    if(data['uid'] != '') {
+    if(data.uid) {
         if(isValidEmailAddress(mail)) {
             // update future mail form field
             $('input[name="mail"]').val(mail);




More information about the commits mailing list