Hello,
I have written an implementation of message threading for RoundCube.
You can find it here: http://www.atomice.com/blog/?page_id=34
I have split it into a number of separate patches to make it easier to
apply. The patches are against yesterday's SVN trunk. I hope it can be
committed, but I appreciate a few things may need tweaking first.
Please review it.
Regards,
Chris January
_______________________________________________
List info: http://lists.roundcube.net/dev/
I've been spending a lot of time in Firebug with RoundCube the past few
weeks. One thing I've noticed is that there are quite a lot of network
requests to freshly load the front page. With the default theme there are
around 45 separate requests for a little less than 250K. I was asking
myself how to reduce the number of requests and was reminded of something
interesting that I had noticed Gmail doing, and that is to consolidate many
icons into a single image and then use CSS to position the image as the
background of a fixed width/height block-level element.
As I went to implement this, I began to realize that not only does this
approach reduce the number of network requests, but it also seems to
simplify the code a bit. With this method the code doesn't have to worry
at all about images or file names, but becomes somewhat image-agnostic by
only specifying the *type* of behavior it would like to see in a given
location. How that bahavior is implemented then becomes a simple matter of
CSS.
Here is the consolidated image with not all but most of the usual icons:
https://natha.nkinka.de/devmail/skins/default/images/icons/rc_icons.png
And here are the patches to implement this:
http://code.nkinka.de/gitweb?p=roundcube.git;a=commitdiff;h=84a7acd0f42e3c3…
I found that doing this reduced the number of requests on a clean load of
the main mailbox view from 45 to 35, which is fairly significant. It does
add about 5K to the page size because it brings along a number of unneeded
icons for that page. 10 less requests may not be perceptible for many
people running on a fast machine with broadband Internet to a server that
isn't very loaded. However, for a busy machine, perhaps an installation of
RoundCube serving webmail for a university, for example, 10 less requests
per fresh page load could make a noticeable difference. 10 less requests
will probably also make a noticeable difference for those on a high latency
connection, where 5K extra is less of a problem than 10 more network
requests.
I have no idea whether this is of any use or interest to anyone else, but I
thought I'd share my experiment with the list.
Nathan
_______________________________________________
List info: http://lists.roundcube.net/dev/
On Fri, Feb 27, 2009 at 5:27 PM, emi daruma tai <emidaruma(a)gmail.com> wrote:
> Hi!
> Nice patches, Chris!
>
> You can do some AJAX loading for the first time you expand a thread. With
> that, you'll be able to do a thread counter for pagesize and pagination and
> make a growing per message counter, if it's needed. And, sure, it will look
> very well, only transmitting lots of info when it's needed (server-side
> thread caching also enabled).
Testing with MySQL I found it's very slow to cache the threads and was
faster simply calling IMAP THREADS again each time.
Chris
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi devs and list lurkers
The plugin API is making good progress and I really have fun when
developing some sample plugins. I think that we'll be ready soon to
merge the development branch back into trunk and publish a new beta
with the plugin API. I kindly ask you to try out the current branch
(devel-api) and find out what you can do with it. There's a basic
description about how to write and install plugins at
http://trac.roundcube.net/wiki/Doc_Plugins.
There are only a few hooks implemented so far
(http://trac.roundcube.net/wiki/Plugin_Hooks) and you're welcome to
share your needs for further hooks with us.
Have fun and let us know what you think or what's missing.
Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Guys,
Just tried to login at the trac (trac.roundcube.net), but it seems to be
blocked by a .htaccess file?
A user on the forums reported the problem.
Just wanted to let you know :).
Regards,
Timo
The Netherlands
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I've made some amendments to the Portuguese (Standard) dictionary.
Also, I'd like to recommend renaming Portuguese (Standard) to either,
in order of preference:
1. Portuguese
2. Portuguese (European)
3. Portuguese (Iberian)
Cheers,
Adriano
--
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/hA/K7z6Drcu/messages.inc
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Relative to the threading patches, a small bug was discovered as a result
of the differences in the way a given message list <tr> was constructed in
a message list. This difference was causing the subjects of selected and
dragged messages to not display in the generated <div> that follows the
mouse pointer while the messages are being dragged.
Upon inspection, I found that the code for making this happen wasn't very
robust in terms of even very slight changes to the structure of a given
<td> within each message row. Here is a proposed patch that I believe
rather simplifies it and should also make it tolerant of changes to the
structure of reach <tr> and <td> in a message list, for example, as
occurred with the threading patches. If follows this basic logic, which I
believe should be fairly safe (unless some browser doesn't support
node.textContent):
1) Is obj.childNodes[i].nodeName = 'TD'
2) AND is obj.childNodes[i].className = 'subject'
3) At this point I'm satisfied we're looking at the subject <td>, so just
grab every bit of text contained within it.
http://code.nkinka.de/gitweb?p=roundcube.git;a=commitdiff;h=89320766d84786d…
Nathan
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
i track the developing of Roundcube. In the moment i study the code of
drupal and found a function i never knew before: spl_autoload_register.
This Page in German explains the usage of this function very well:
http://aktuell.de.selfhtml.org/weblog/php-autoload
However, some time ago i saw that Thomas has to move some includes
forward for making some plugins to work with some plugins, but can't
find it right now. Maybe wrong reminder. However, since Roundcube uses
Classes, this functions seems to fit well in Roundcube. All the Requires
and Includes could be removed and the Includes would only happen then
when they are really needed.
Any thoughts?
BTW: Have you plans when to merge the different dev-trees to the main-trunk?
Best Regards
Eduard
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi!
I updated translation of "Azerbaijani".
Please update!
Best regards,
Orkhan.
Forex-AZ forex ticarəti.Vaxt və məkan anlayışı olmadan dünya birjalarında ticarət imkanı.
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/d7/PEG85FJs/labels.inc
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I have been experimenting with the devel_api branch, turning my patches
into plugins mostly; I thought I would try making a context menu for the
message list.
At the moment there are 2 problems that I can see and I was wondering if
any one had any suggestions…
I have tried to make the context menu take as much of its look from the
skin as possible but I am not certain how well it will play with anything
other than the default skin.
A more serious problem is the attachment of the event listener to the rows
in the message table. I can do it no problem when the page loads but I
can’t find a way to do with when switching between folders or when a new
message arrives.
Thanks very much,
Phil
Ps. So far I have tested it in FF3, Safari, IE6+7 all on window and it
works fine, it wont work in Opera since JavaScript right click stuff is
disabled by default.
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/Vc/eizvgS9y/contextmenu.tar.gz
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/