summaryrefslogtreecommitdiff
path: root/program/js/list.js
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2009-04-21 09:04:49 +0000
committeralecpl <alec@alec.pl>2009-04-21 09:04:49 +0000
commitc4b819e9b9792c8819ef60136aa4945884f4f84d (patch)
treec411607eafab25fec2efe8c838db58182bc739a1 /program/js/list.js
parentcf356bcb360509734e6c44e1f08f1092043d19d9 (diff)
- Speed up message list displaying on IE (initialize list in background)
- use DOM methods instead of jQuery for messages list object
Diffstat (limited to 'program/js/list.js')
-rw-r--r--program/js/list.js33
1 files changed, 24 insertions, 9 deletions
diff --git a/program/js/list.js b/program/js/list.js
index dabcecb92..5f017df03 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -98,7 +98,7 @@ init: function()
/**
- *
+ * Init list row and set mouse events on it
*/
init_row: function(row)
{
@@ -123,7 +123,7 @@ init_row: function(row)
/**
- *
+ * Remove all list rows
*/
clear: function(sel)
{
@@ -154,20 +154,21 @@ remove_row: function(uid, sel_next)
/**
- *
+ * Add row to the list and initialize it
*/
insert_row: function(row, attop)
{
- var tbody = this.list.tBodies[0];
- if (!row.jquery)
- row = $(row);
+ if (this.background)
+ var tbody = this.background;
+ else
+ var tbody = this.list.tBodies[0];
if (attop && tbody.rows.length)
- row.prependTo(tbody)
+ tbody.insertBefore(row, tbody.firstChild);
else
- row.appendTo(tbody);
+ tbody.appendChild(row);
- this.init_row(row[0]);
+ this.init_row(row);
this.rowcount++;
},
@@ -828,6 +829,20 @@ drag_mouse_up: function(e)
}
return rcube_event.cancel(e);
+},
+
+
+/**
+ * Creating the list in background
+ */
+set_background_mode: function(flag)
+{
+ if (flag) {
+ this.background = document.createElement('TBODY');
+ } else if (this.background) {
+ this.list.replaceChild(this.background, this.list.tBodies[0]);
+ this.background = null;
+ }
}
};