Hey all.
This is a known bug with Safari / Konqueror.
http://archivist.incutio.com/viewlist/css-discuss/62531
There are some CSS3 things you can apparently do to fix this - but rather than risk those, I did this.
change line 395 of /program/steps/mail/func.inc to
$out .= '<td class="'.$col.'"><div class="'.$col.'">'.$cont."</div></td>\n";
and add three classes to the main.css file which are structured like this
#messagelist div.subject { font-size:11px; overflow:hidden; }
You'll have to make one for subject, one for from and one for date. Apparently, DIV's cannot inherit font-size from table elements, so you have to put that in there again.
It seems that perhaps the table markup should be in the template file? That way the template could do this as nessecary, rather than having to merge a style fix into the actual code.
This doesn't break it in Firefox 1.0 for Mac. I don't have a PC to test on.
Awesome program by the way.
Stephen
Of course, if you navigate away from the mail list and then come back it's broken again.
THAT, I don't know about. Don't understand why the style assignment wouldn't "stick."
Stephen
On Wed, 16 Nov 2005 7:52:15 -0800, Stephen Prater me@stephenprater.com wrote:
Hey all.
This is a known bug with Safari / Konqueror.
http://archivist.incutio.com/viewlist/css-discuss/62531
There are some CSS3 things you can apparently do to fix this - but rather than risk those, I did this.
change line 395 of /program/steps/mail/func.inc to
$out .= '<td class="'.$col.'"><div class="'.$col.'">'.$cont."</div></td>\n";
and add three classes to the main.css file which are structured like this
#messagelist div.subject { font-size:11px; overflow:hidden; }
You'll have to make one for subject, one for from and one for date. Apparently, DIV's cannot inherit font-size from table elements, so you have to put that in there again.
It seems that perhaps the table markup should be in the template file? That way the template could do this as nessecary, rather than having to merge a style fix into the actual code.
This doesn't break it in Firefox 1.0 for Mac. I don't have a PC to test on.
Awesome program by the way.
Stephen
Hi Stephen Prater me@stephenprater.com,
THAT, I don't know about. Don't understand why the style assignment wouldn't "stick."
Are you sure that isn't just an old cached page?
Craig Webster | web: http://xeriom.net/ | Monkey see, monkey do: Okay. Xeriom.NET | tel: +44 (0)131 516 8595 | Monkey top post: Bad monkey.
Yep. Cleared the cache, restarted the browser. Actually, it only occurs when you navigate to a different folder or mailbox. Once you reload the "mail" task, it goes back to normal. I tried putting style="overflow:hidden" into each of the DIV's but that didn't fix it either. It's fine when you first load "mail" but when you replace the list the overflow returns.
On Wed, 16 Nov 2005 16:26:22 +0000, Craig Webster craig@xeriom.net wrote:
Hi Stephen Prater me@stephenprater.com,
THAT, I don't know about. Don't understand why the style assignment
wouldn't "stick."
Are you sure that isn't just an old cached page?
C
Craig Webster | web: http://xeriom.net/ | Monkey see, monkey do: Okay. Xeriom.NET | tel: +44 (0)131 516 8595 | Monkey top post: Bad monkey.
this behaviour (your fix goes away when you move to another folder) is because roundcube renders message lists two ways, and your fix only corrects one of them.
when you first view the mailbox, the html is generated server side, and your change is picked up. when you subsequently click on another folder, a request is sent back to the server, where the data is put in some javascript that is sent back to the client and eval'ed, which creates the new mailbox list.
if you want to see it in action, put an alert line after line 2419 of program/js/app.js: alert(request_obj.responseText);
the code that adds the new list to the DOM is in the add_message_row method, line 2166 of app.js. you'll need to add your style patch there as well to make this work for switching folders as well.
cheers justin
Stephen Prater wrote:
Yep. Cleared the cache, restarted the browser. Actually, it only occurs when you navigate to a different folder or mailbox. Once you reload the "mail" task, it goes back to normal. I tried putting style="overflow:hidden" into each of the DIV's but that didn't fix it either. It's fine when you first load "mail" but when you replace the list the overflow returns.
On Wed, 16 Nov 2005 16:26:22 +0000, Craig Webster craig@xeriom.net wrote:
You are correct sir.
starting on line 2190 change to this:
for (var c in cols) { col = document.createElement('TD'); col.className = String(c).toLowerCase(); div = document.createElement('DIV'); div.className = String(c).toLowerCase(); div.innerHTML = cols[c]; row.appendChild(col); col.appendChild(div); }
One problem - it works perfectly in everything but the "sent" folder. In this particular folder - the "sent to" column doesn't pick up the new style. The Safari DOM viewer shows the correct source, and it shows the DIV as being properly classed - but the style's not getting picked up on the "to" column.
stephen
On Thu, 17 Nov 2005 09:10:08 +1100, justin randell justin@babel.com.au wrote:
this behaviour (your fix goes away when you move to another folder) is because roundcube renders message lists two ways, and your fix only corrects one of them.
when you first view the mailbox, the html is generated server side, and your change is picked up. when you subsequently click on another folder, a request is sent back to the server, where the data is put in some javascript that is sent back to the client and eval'ed, which creates the new mailbox list.
if you want to see it in action, put an alert line after line 2419 of program/js/app.js: alert(request_obj.responseText);
the code that adds the new list to the DOM is in the add_message_row method, line 2166 of app.js. you'll need to add your style patch there as well to make this work for switching folders as well.
cheers justin
Stephen Prater wrote:
Yep. Cleared the cache, restarted the browser. Actually, it only occurs
when you navigate to a different folder or mailbox.
Once you reload the "mail" task, it goes back to normal. I tried putting
style="overflow:hidden" into each of the DIV's but that didn't fix it either. It's fine when you first load "mail" but when you replace the list the overflow returns.
On Wed, 16 Nov 2005 16:26:22 +0000, Craig Webster craig@xeriom.net
wrote:
Hi all,
Thanks for all the posts and patches to solve this issue. Nevertheless I'm not going to add these patches to the RoundCube core because the philosophy of this application is just to deliver simple XHTML and have all the styling done within the skin. Adding <div>s to table cells in PHP and in JavaScript would solve this particular issue but break the main idea of RoundCube. Also, RC is built for standards compliant browsers of the future and I'm sure Safari will handle this CSS code until we have a stable version ready.
I hope you guys understand my point of view... Thomas
Stephen Prater wrote:
You are correct sir.
starting on line 2190 change to this:
for (var c in cols) { col = document.createElement('TD'); col.className = String(c).toLowerCase(); div = document.createElement('DIV'); div.className = String(c).toLowerCase(); div.innerHTML = cols[c]; row.appendChild(col); col.appendChild(div); }
One problem - it works perfectly in everything but the "sent" folder. In this particular folder - the "sent to" column doesn't pick up the new style. The Safari DOM viewer shows the correct source, and it shows the DIV as being properly classed - but the style's not getting picked up on the "to" column.
stephen
On Thu, 17 Nov 2005 09:10:08 +1100, justin randell justin@babel.com.au wrote:
this behaviour (your fix goes away when you move to another folder) is because roundcube renders message lists two ways, and your fix only corrects one of them.
when you first view the mailbox, the html is generated server side, and your change is picked up. when you subsequently click on another folder, a request is sent back to the server, where the data is put in some javascript that is sent back to the client and eval'ed, which creates the new mailbox list.
if you want to see it in action, put an alert line after line 2419 of program/js/app.js: alert(request_obj.responseText);
the code that adds the new list to the DOM is in the add_message_row method, line 2166 of app.js. you'll need to add your style patch there as well to make this work for switching folders as well.
cheers justin
Stephen Prater wrote:
Yep. Cleared the cache, restarted the browser. Actually, it only occurs
when you navigate to a different folder or mailbox.
Once you reload the "mail" task, it goes back to normal. I tried putting
style="overflow:hidden" into each of the DIV's but that didn't fix it either. It's fine when you first load "mail" but when you replace the list the overflow returns.
On Wed, 16 Nov 2005 16:26:22 +0000, Craig Webster craig@xeriom.net
wrote:
I agree - there isn't enough Safari usage out there to warrant making this a "permanent" fix. I wonder whether there is a way to merge the "table making" code into the template file. This would also let the skin choose if certain columns shouldn't be displayed, and could theoretically allow live resizing of columns with the mouse, since you could address the "width" property of each cell with Javascript.
Stephen
Thomas Bruederli wrote:
Hi all,
Thanks for all the posts and patches to solve this issue. Nevertheless I'm not going to add these patches to the RoundCube core because the philosophy of this application is just to deliver simple XHTML and have all the styling done within the skin. Adding <div>s to table cells in PHP and in JavaScript would solve this particular issue but break the main idea of RoundCube. Also, RC is built for standards compliant browsers of the future and I'm sure Safari will handle this CSS code until we have a stable version ready.
I hope you guys understand my point of view... Thomas
Stephen Prater wrote:
You are correct sir.
starting on line 2190 change to this:
for (var c in cols) { col = document.createElement('TD'); col.className = String(c).toLowerCase(); div = document.createElement('DIV'); div.className = String(c).toLowerCase(); div.innerHTML = cols[c]; row.appendChild(col); col.appendChild(div); }
One problem - it works perfectly in everything but the "sent" folder. In this particular folder - the "sent to" column doesn't pick up the new style. The Safari DOM viewer shows the correct source, and it shows the DIV as being properly classed - but the style's not getting picked up on the "to" column.
stephen
On Thu, 17 Nov 2005 09:10:08 +1100, justin randell justin@babel.com.au wrote:
this behaviour (your fix goes away when you move to another folder) is because roundcube renders message lists two ways, and your fix only corrects one of them.
when you first view the mailbox, the html is generated server side, and your change is picked up. when you subsequently click on another folder, a request is sent back to the server, where the data is put in some javascript that is sent back to the client and eval'ed, which creates the new mailbox list.
if you want to see it in action, put an alert line after line 2419 of program/js/app.js: alert(request_obj.responseText);
the code that adds the new list to the DOM is in the add_message_row method, line 2166 of app.js. you'll need to add your style patch there as well to make this work for switching folders as well.
cheers justin
Stephen Prater wrote:
Yep. Cleared the cache, restarted the browser. Actually, it only occurs
when you navigate to a different folder or mailbox.
Once you reload the "mail" task, it goes back to normal. I tried putting
style="overflow:hidden" into each of the DIV's but that didn't fix it either. It's fine when you first load "mail" but when you replace the list the overflow returns.
On Wed, 16 Nov 2005 16:26:22 +0000, Craig Webster craig@xeriom.net
wrote:
Stephen Prater wrote:
I agree - there isn't enough Safari usage out there to warrant making this a "permanent" fix. I wonder whether there is a way to merge the "table making" code into the template file. This would also let the skin choose if certain columns shouldn't be displayed, and could theoretically allow live resizing of columns with the mouse, since you could address the "width" property of each cell with Javascript.
Not a bad idea. I think we have to wait for the plugin-API and provide the according hooks there to do this.
Regards, Thomas
Stephen
Thomas Bruederli wrote:
Hi all,
Thanks for all the posts and patches to solve this issue. Nevertheless I'm not going to add these patches to the RoundCube core because the philosophy of this application is just to deliver simple XHTML and have all the styling done within the skin. Adding <div>s to table cells in PHP and in JavaScript would solve this particular issue but break the main idea of RoundCube. Also, RC is built for standards compliant browsers of the future and I'm sure Safari will handle this CSS code until we have a stable version ready.
I hope you guys understand my point of view... Thomas
Stephen Prater wrote:
You are correct sir. starting on line 2190 change to this:
for (var c in cols) { col = document.createElement('TD'); col.className = String(c).toLowerCase(); div = document.createElement('DIV'); div.className = String(c).toLowerCase(); div.innerHTML = cols[c]; row.appendChild(col); col.appendChild(div); }
One problem - it works perfectly in everything but the "sent" folder. In this particular folder - the "sent to" column doesn't pick up the new style. The Safari DOM viewer shows the correct source, and it shows the DIV as being properly classed - but the style's not getting picked up on the "to" column.
stephen
On Thu, 17 Nov 2005 09:10:08 +1100, justin randell justin@babel.com.au wrote:
this behaviour (your fix goes away when you move to another folder) is because roundcube renders message lists two ways, and your fix only corrects one of them.
when you first view the mailbox, the html is generated server side, and your change is picked up. when you subsequently click on another folder, a request is sent back to the server, where the data is put in some javascript that is sent back to the client and eval'ed, which creates the new mailbox list.
if you want to see it in action, put an alert line after line 2419 of program/js/app.js: alert(request_obj.responseText);
the code that adds the new list to the DOM is in the add_message_row method, line 2166 of app.js. you'll need to add your style patch there as well to make this work for switching folders as well.
cheers justin
Stephen Prater wrote:
Yep. Cleared the cache, restarted the browser. Actually, it only occurs
when you navigate to a different folder or mailbox.
Once you reload the "mail" task, it goes back to normal. I tried putting
style="overflow:hidden" into each of the DIV's but that didn't fix it either. It's fine when you first load "mail" but when you replace the list the overflow returns.