Summary | Menu Fix |
Queue | Horde Base |
Queue Version | 3.0-RC2 |
Type | Bug |
State | Resolved |
Priority | 2. Medium |
Owners | Horde Developers (at) |
Requester | lee (at) disinfo (dot) com |
Created | 11/26/2004 (7549 days ago) |
Due | |
Updated | 12/04/2004 (7541 days ago) |
Assigned | 12/02/2004 (7543 days ago) |
Resolved | 12/04/2004 (7541 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
State ⇒ Resolved
State ⇒ Feedback
(double specification) , touches the fewest possible lines, and has
cleaner width determination code, I'll look at it. The PDF looks nice
enough to make me reconsider a bit.
menu in these applications; in Horde you need to go to the options and
change it from there, trying as long until all folders appear.
New Attachment: Picture 1.pdf
definitively improve the usability of imp/horde, even just slightly,
with just a few lines of code thats already written, why not do it?
While my coding abilities are passable, my area of expertise is much
closer to UI design as it relates to usability. In this case i really
believe there is a good reason that almost every desktop mail client
(Mac Mail, Outlook etc..) horizontally truncate the folder list with
ellipses, as opposed letting it run off to the right with horizontal
scroll bars. When a user sees text cut off, they get an implicit sense
of something being broken. The ellipses say "there is more to these
names, and its not broken, but you have set the frame set to something
that needs to truncate teh text. Aesthetically, maintaining a
consistent spacial border improves overall look. If i had a spare
week, id spend the time writing truncation/ellipses code in javascript
that would extend this to mozilla as well as IE.
Anyway, thats my 2cents. I wont bring it up again, its up to you.
what I applied. Nothing wraps to a new line, and that's the important
part. Scrollbars are okay on the menu frame, since they ensure that
everything can be seen, and people can adjust their sidebar width in
their preferences anyway.
The width stuff is essential for two things in Internet Explorer:
1) With the diff you applied there are no ellipses. The width stuff
forces the div to end and create the ellipses. This makes things much
cleaner looking.
2) With the diff you applied, the text in the menu forces the left
menu page to extend as far to the right as the text will take it. This
can create a long horizontal scroller in the left menu frame. With teh
width stuff in tact, this doesnt happen, again making things look much
cleaner.
If you want to see this in action, try applying your modified diff vs.
the original i submitted with an account with a multi-level folder
tree (particularly if there are some long folder names) in Internet
Explorer. You'll see a pretty significant difference (i just tried it
on my local install to confirm this).
State ⇒ Resolved
I've committed the patch minus the width specifications, which don't
seem necessary to me.
patches in one file. I removed the commented stuff, and rebuilt the
patch off a 100% stock download, so it should apply without warnings.
State ⇒ Feedback
cleanly, there is a stray "alert" in there and some outcommented code.
Assigned to
State ⇒ Assigned
1) diff templates/portal/sidebar.inc.orig templates/portal/sidebar.inc.new
1,2c1,2
< <div id="expandedSidebar">
< <div id="menu">
---
< </div>
24,26c23,24
< <!--a75c305b1c0a6022--><table cellspacing="0" width="100%">
< <tr>
< <td valign="top" id="sidebarPanel" width="100%" colspan="2">
---
<div id="sidebarPanel" style="overflow: hidden; width: width:<?php
if ($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) { echo
isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; } else
{ echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) : 150;
} ?>; text-overflow:ellipsis; white-space:nowrap;">
< </td>
< <td> </td>
< </tr>
< </table>
---
165c165
< var line = '<div style="height:20px; clear:both"' + className + '>';
---
text-overflow:ellipsis; overflow:hidden; white-space:nowrap;
width:<?php if ($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) {
echo isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; }
else { echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) :
150; } ?>;' + className + '>';
< style = 'float:left;';
< if (this.header[column] && this.header[column]['width']) {
---
overflow:hidden; white-space:nowrap; width:<?php if
($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) { echo
isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; } else
{ echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) : 150;
} ?>;';
/*if (this.header[column] && this.header[column]['width']) {
< }
---
< alert(line);
475c474
< document.body.style.marginRight = '15px';
---
Priority ⇒ 3. High
Type ⇒ Bug
Summary ⇒ Menu Fix
Queue ⇒ Horde Base
State ⇒ Unconfirmed
things off (when the foldernames were more than x chars long),
creating a long bottom scroll bar. RC2 remedied this problem, but
caused folder names to wrap to a new line below their icon
(firefox/mozilla) - which looks much worse.
Using some fun CSS properties and a little tweaking of the code ive
fixed the problem. In the code below the folder names do not wrap,
they just get cut off when the frame ends, they also dont cause the
whole frame to expand right the length of the longest menu item. In IE
things are a little cooler, the folder names actually get elipsed
(i.e. longfoldernamehere becomes longfoldernameh... right before the
frame's right barrier.
Tested in mozilla and IE, looks alot better than before to me.
Here are the two diff files (not at an expert in submitting diffs, i
just made them running the straight old diff command with teh two
files as arguments). If you need a different format diff let me know.
1) HORDE: TEMPLATES/PORTAL/SIDEBAR.INC:
1,2c1,2
< <div id="expandedSidebar" style="width: width:<?php if
($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) { echo
isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; } else {
echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) : 150; }
?>; overflow: hidden; padding: 0; margin: 0;">
< <div id="menu" style="width: width:<?php if
($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) { echo
isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; } else {
echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) : 150; }
?>; overflow: hidden; padding: 0; margin: 0;">
---
<div id="menu">
< </div>
< <div id="sidebarPanel" style="overflow: hidden; width: width:<?php
if ($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) { echo
isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; } else {
echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) : 150; }
?>; text-overflow:ellipsis; white-space:nowrap;">
---
<tr>
<td valign="top" id="sidebarPanel" width="100%" colspan="2">
< </div>
---
<td> </td>
</tr>
</table>
165c165
< var line = '<div style="height:20px; clear:both;
text-overflow:ellipsis; overflow:hidden; white-space:nowrap;
width:<?php if ($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) {
echo isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; }
else { echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) :
150; } ?>;' + className + '>';
---
< style = 'float:left; text-overflow:ellipsis;
overflow:hidden; white-space:nowrap; width:<?php if
($GLOBALS['browser']->hasQuirk('scrollbar_in_way')) { echo
isset($prefs) ? ($prefs->getValue('sidebar_width')-35) : 133; } else {
echo isset($prefs) ? ($prefs->getValue('sidebar_width')-50) : 150; }
?>;';
< /*if (this.header[column] && this.header[column]['width']) {
---
if (this.header[column] && this.header[column]['width']) {
< }*/
---
< document.body.style.marginRight = '0px';
---