diff options
Diffstat (limited to 'program/js')
-rw-r--r-- | program/js/app.js | 2 | ||||
-rw-r--r-- | program/js/list.js | 26 |
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 |