summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js2
-rw-r--r--program/js/list.js26
2 files changed, 26 insertions, 2 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 68011bdda..18b74fd57 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -351,7 +351,7 @@ function rcube_webmail()
this.sections_list.addEventListener('select', function(o){ p.section_select(o); });
this.sections_list.init();
this.sections_list.focus();
- this.sections_list.select('general'); // open first section by default
+ this.sections_list.select_first(); // open first section by default
}
else if (this.gui_objects.subscriptionlist)
this.init_subscription_list();
diff --git a/program/js/list.js b/program/js/list.js
index 01ad5f3c1..357a77ac2 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -320,7 +320,7 @@ click_row: function(e, id)
/**
- * get next/previous/last rows that are not hidden
+ * get first/next/previous/last rows that are not hidden
*/
get_next_row: function()
{
@@ -348,6 +348,20 @@ get_prev_row: function()
return new_row;
},
+get_first_row: function()
+{
+ if (this.rowcount)
+ {
+ var rows = this.list.tBodies[0].rows;
+
+ for(var i=0; i<rows.length-1; i++)
+ if(rows[i].id && String(rows[i].id).match(/rcmrow([a-z0-9\-_=\+\/]+)/i) && this.rows[RegExp.$1] != null)
+ return RegExp.$1;
+ }
+
+ return null;
+},
+
get_last_row: function()
{
if (this.rowcount)
@@ -451,6 +465,16 @@ select_next: function()
this.select_row(new_row.uid, false, false);
},
+/**
+ * Select first row
+ */
+select_first: function()
+{
+ var first_row = this.get_first_row();
+ if (first_row)
+ this.select_row(first_row, false, false);
+},
+
/**
* Perform selection when shift key is pressed