From 86f3aaf2b9cb70f5dbe55ac244afc6443abdcf5a Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 25 May 2010 02:55:13 -0400
Subject: [PATCH] Wrap group name input field in <li> + more jqueryfication + add dummy group functionality to example address book plugin

---
 program/js/app.js |   33 +++++++++++++++++----------------
 1 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index dac6e6f..9554eb5 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3732,12 +3732,12 @@
       return;
 
     if (!this.name_input) {
-      this.name_input = document.createElement('input');
-      this.name_input.type = 'text';
-      this.name_input.onkeypress = function(e){ return rcmail.add_input_keypress(e); };
+      this.name_input = $('<input>').attr('type', 'text');
+      this.name_input.bind('keypress', function(e){ return rcmail.add_input_keypress(e); });
+      this.name_input_li = $('<li>').addClass('contactgroup').append(this.name_input);
 
       var li = this.get_folder_li(this.env.source)
-      $(this.name_input).insertAfter(li);
+      this.name_input_li.insertAfter(li);
     }
 
     this.name_input.select();
@@ -3750,16 +3750,13 @@
 
     if (!this.name_input) {
       this.enable_command('list', 'listgroup', false);
-      this.name_input = document.createElement('input');
-      this.name_input.type = 'text';
-      this.name_input.value = this.env.contactgroups['G'+this.env.source+this.env.group].name;
-      this.name_input.onkeypress = function(e){ return rcmail.add_input_keypress(e); };
+      this.name_input = $('<input>').attr('type', 'text').val(this.env.contactgroups['G'+this.env.source+this.env.group].name);
+      this.name_input.bind('keypress', function(e){ return rcmail.add_input_keypress(e); });
       this.env.group_renaming = true;
 
-      var li = this.get_folder_li(this.env.source+this.env.group, 'rcmliG');
+      var link, li = this.get_folder_li(this.env.source+this.env.group, 'rcmliG');
       if (li && (link = li.firstChild)) {
-        $(link).hide();
-        li.insertBefore(this.name_input, link);
+        $(link).hide().before(this.name_input);
       }
     }
 
@@ -3794,7 +3791,7 @@
 
     // enter
     if (key == 13) {
-      var newname = this.name_input.value;
+      var newname = this.name_input.val();
 
       if (newname) {
         this.set_busy(true, 'loading');
@@ -3816,13 +3813,17 @@
   {
     if (this.name_input) {
       if (this.env.group_renaming) {
-        var li = this.name_input.parentNode;
-        $(li.lastChild).show();
+        var li = this.name_input.parent();
+        li.children().last().show();
         this.env.group_renaming = false;
       }
 
-      this.name_input.parentNode.removeChild(this.name_input);
-      this.name_input = null;
+      this.name_input.remove();
+      
+      if (this.name_input_li)
+        this.name_input_li.remove();
+      
+      this.name_input = this.name_input_li = null;
     }
 
     this.enable_command('list', 'listgroup', true);

--
Gitblit v1.9.1