[RCD] Breaking the 'mail' / 'addressbook' divide in Roundcube

Ian Lewis ijl20 at cam.ac.uk
Wed Feb 29 18:02:23 CET 2012


Thanks Thomas - 0.8-SVN installed now and I'll re-start with that.

The changes to apps.js are similar to the changes I came up with so 
that's encouraging.

I see the new address book widget on the 'Compose' screen of the 'Larry' 
theme...

Good stuff...
  Ian

On 29/02/2012 15:17, Thomas Bruederli wrote:
> Hi Ian
>
> You pretty much figured out that the current architecture of Roundcube
> makes it hard to achieve what you have in mind. However, it's not entirely
> impossible. check out the address book widget we now have on the compose
> screen in the latest SVN version. It uses a command named 'list-contacts'
> which resides in the mail section.
>
> While it's currently bound to the compose step, the code could easily be
> moved or adjusted to also work on the main screen. See function
> rcmail_contacts_list() in program/steps/mail/compose.inc and line 277 in
> program/js/app.js
>
> But to make a long story short, we'll not refactor our code in the near
> future and you'll have to live with a huge patch.
>
> Good luck!
> Thomas
>
>
> Ian Lewis wrote:
>> To provide a brief answer to my own question, providing 'contacts list'
>> functionality on the same page as emails in Roundcube requires an
>> overhaul of the core logic (unless a replacement addressbook is
>> written). The challenge is simply illustrated if you try and place
>> <roundcube:object name='addresslist'>  on the 'mail' template. Basic
>> issues seem to be:
>>
>> * existing 'shared' logic is hard-coded with tests for task='mail'
>> (populating a template with a list of messages) and task='addressbook'
>> (providing a list of contacts) so that would need to be engineered out
>> to allow use of existing 'addressbook' and 'mail' code on the same page.
>>
>> * a small number of the php files in program/steps/mail and
>> program/steps/addressbook have the same name (e.g. list.php) with other
>> code doing an include of program/steps/$task/list.php so the name clash
>> would need files (and their references) renaming.
>>
>> * the 'mail' page assumes an action 'list' means 'list emails' while the
>> 'addressbook' page assumes the same command 'list' means 'list
>> contacts'. As far as I can tell this would need re-structuring to use
>> different command names for the two functions for the lists to coexist
>> on the same page (I am re-writing the code to use 'listcontacts' instead
>> of 'list' for the contacts list command.)
>>
>> Ian
>>
>>
>> _______________________________________________
>> List info: http://lists.roundcube.net/dev/
>> BT/0ddf6350

-- 
Ian Lewis
Director, University Computing Service
University of Cambridge
office: +44 1223 334702
mobile: +44 7774 017590

_______________________________________________
List info: http://lists.roundcube.net/dev/
BT/aba52c80



More information about the Dev mailing list