Opened 8 years ago
Last modified 4 months ago
#1295420 assigned Bugs (None)
Scrolling message list obscures column headers
| Reported by: | willm23 | Owned by: | thomasb |
|---|---|---|---|
| Priority: | 5 | Milestone: | 1.0-beta |
| Component: | User Interface | Version: | git-master |
| Severity: | normal | Keywords: | jquery plugin |
| Cc: | whitequark@…, m.duelli@…, arthur@…, roundcube@… |
Description (last modified by thomasb)
On the message list page, the scrollbar for the message
list scrolls the entire table, including the column
headers.
Suggest that the correct behaviour would be to leave
the column headers and scroll the message rows themselves?
Attachments (2)
Change History (39)
comment:1 Changed 8 years ago by roundcube
comment:2 Changed 8 years ago by moenm
Logged In: YES user_id=1053168 Normally you can use position:fixed Which I tried in the skin, but it caused the layout to break. Having spent some time with your code, you may want to add a roundcube tag for message list headers. Then you can move them outside the div that holds the list.
comment:3 Changed 8 years ago by roundcube
Logged In: YES user_id=1262041 You can't separate the header from the rows because it's one table which is scalable. There's no way to ensure that the headers till fit the rows when resizing the window if they're not in ONE table.
comment:4 Changed 7 years ago by Lou
There are ways to scroll table bodys without scrolling table headings. We're fortunate that the table is structured appropriately. Unfortunately I haven't seen a method that is fully cross-browser yet. I'm going to attempt a few methods of achieving this in a graceful way over the next few days.
comment:5 Changed 7 years ago by thomasb
- Milestone 0.1-beta2 deleted
- Owner changed from roundcube to nobody
- Severity changed from critical to minor
- Status changed from assigned to new
comment:6 Changed 7 years ago by Lou
We could adopt the Pushpin header technique at http://codylindley.com/CSS/249/pushspin-header-a-simplified-data-grid-with-a-stationary-header. It requires two divs surrounding the table but not much else and the CSS is pretty clean. It may have a side effect in Safari but needs to be examined closely against the latest Safari builds to be sure.
Are we still interested in this?
comment:7 Changed 6 years ago by jpingle
I'd be interested in seeing this. Not that it's a huge inconvenience, but it would be nice to have, especially if one uses a large per-page message count.
comment:8 Changed 6 years ago by mtu
- Milestone set to 0.1-rc1
comment:9 Changed 6 years ago by moc
I fixed this ticket maybe not in elegant way but it should work. I tested ti with IE7 and FF. See the attached patch.
Changed 6 years ago by moc
comment:10 Changed 6 years ago by thomasb
- Milestone changed from 0.1-rc1 to 0.1-rc2
Move to next milestone :-)
comment:11 Changed 6 years ago by thomasb
- Milestone changed from 0.1-rc2 to 0.2-beta
Wait for client-rewrite with jQuery
comment:12 Changed 5 years ago by seansan
- Version changed from 0.1-alpha to 0.1-rc2
comment:13 Changed 5 years ago by thomasb
- Component changed from Interface to User Interface
- Description modified (diff)
- Milestone changed from 0.2-beta to later
comment:14 Changed 4 years ago by rosali
If you are going to fix scrolling out of message list header, please do not miss to do the fix as well for the folder list header.
Thnx!
comment:15 Changed 3 years ago by alec
Interesting CSS only solution: http://rcs-comp.com/blog/scrolling_table/
comment:16 Changed 3 years ago by thomasb
- Milestone changed from later to 0.4-stable
- Owner changed from nobody to thomasb
Added a patch that implements the example from rcs-comp.com to the default skin. The big issue is to set the tbody height absolutely which needs to be done after each change to the list, including expanding/collapsing threads.
It is not yet functional on Safari and Chrome and leaves some quirks there.
comment:17 Changed 3 years ago by trisk
I'm not really in favour of this change, both as it is quite hard to implement correctly and as it seems like the message list will have different from the behaviour of every other scrolling list with a header in the RoundCube UI.
comment:18 Changed 3 years ago by emi
- Keywords jquery plugin added
What about using a jQuery plugin specific for that?
comment:19 Changed 3 years ago by thomasb
- Status changed from new to assigned
I've now tried all jQuery plugins listed here http://plugins.jquery.com/taxonomy/term/1539 but none of them works with our super-flexible message list table. Especially replacing table rows causes problems in most of these solutions.
comment:20 Changed 3 years ago by emi
With Firefox, this works:
- Set the height to tbody as to mailcontframe, less header height
- Set the overflow styles to tbody as to mailcontframe
- Push overflow styles from mailcontframe
- Add some width to the last column so tbody scrollbar does not hide it, or add another column with the width of the scrollbar (or some more).
- Ensure that the splitter changes tbody height instead of mailcontframe's one.
Another solution is to update the extra header created by plugins each time it may need to: each time the mailcontentframe changes (new/delete messages, folder change, folder pagination, listmenulink actions).
I have no other ideas on how to solve this issue. I think there are no more possibilities.
See you!!
emi
comment:21 follow-up: ↓ 22 Changed 3 years ago by whitequark
- Cc whitequark@… added
Another css-only and very cross-browser solution: http://www.imaputz.com/cssStuff/bigFourVersion.html
Hope this will get it's way into 0.4-stable!
comment:22 in reply to: ↑ 21 Changed 3 years ago by alec
comment:23 Changed 3 years ago by thomasb
@emi: This is more ore less what I did on the attached listscrolling.diff patch.
@whitequark, @alec: This only works with fixed column widths and fixed tbody height. Not usabale with our flexible table layout.
comment:24 follow-up: ↓ 25 Changed 3 years ago by duelli
- Cc m.duelli@… added
Here are two examples for css-only solutions I originally reported in ticket #1486869:
comment:25 in reply to: ↑ 24 Changed 2 years ago by thomasb
comment:26 Changed 2 years ago by alec
- Milestone changed from 0.6-beta to 0.7-beta
comment:27 Changed 2 years ago by rosali
I have coded a plugin to fix the messagelist table header.
http://mail4us.net/dev/plugins/fixTHEAD.zip
As fas as I can see, it works with recent versions of IE, FF, Chrome, Opera. Other browsers have not been tested. It does not work with Safari. When fixing the table header in Safari, I get a weird offset. I'm not experienced enough with Safari. So I have simply disabled the plugin for this browser.
Please have also a look at my method to detect the subject of messages when dragging/dropping. It could be used in list.js to simplify things there.
comment:28 Changed 23 months ago by thomasb
Updated version can be found here: http://mail4us.net/dev/skins/default/templates/mail.zip
(from dev mailing list post)
comment:29 Changed 23 months ago by rosali
Please use fixTHEAD plugin instead (http://myroundcube.googlecode.com).
comment:30 Changed 22 months ago by duelli
Just tested rosali's fixTHEAD plugin and it works fine.
comment:31 Changed 21 months ago by rosali
I have updated fixTHEAD plugin (http://myroundcube.googlecode.com). As far as I can see it is working well now (including the ellipsis display for long column contents).
The only remaining issue the incompatibility with Safari.
comment:32 Changed 21 months ago by alec
- Milestone changed from 0.7-beta to 0.8-beta
- Priority changed from 3 to 5
- Version changed from 0.1-rc2 to svn-trunk
comment:33 Changed 14 months ago by roentgen
- Cc arthur@… added
comment:34 Changed 13 months ago by thomasb
- Description modified (diff)
- Milestone changed from 0.9-stable to 0.9-beta
comment:35 Changed 7 months ago by Lazlo
- Cc roundcube@… added
comment:36 Changed 4 months ago by thomasb
- Milestone changed from 0.9-rc to 1.0-beta
- Severity changed from minor to normal
After trying for another couple of hours, I still failed to apply any of the solutions out there to the Roundcube message list table structure. In order to make this work, both columns widths and table body height needs to be set to fixed values. The only sustainable solution I see for this is to extend our list.js widget to handle column sizes and properly adjust them on window or splitter resizing.
This is definitely a show stopper for 1.0 but unfortunately takes too much time and refactoring for 0.9.
comment:37 Changed 4 months ago by thomasb
Here are some candidates to help out:
