[OGo-Discuss] Bug 1852: support creation of xmpp: field types in OGo

Sebastian Reitenbach discuss@opengroupware.org
Sun, 25 Mar 2007 12:28:09 +0200


Hi,
discuss@opengroupware.org wrote: 
> On Mar 24, 2007, at 18:30, Adam Tauno Williams wrote:
> > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1852
> >
> > This seems useful, and overdue;  it has come up on the mailing list
> > before although I can't seem to find the thread.  It also seems  
> > related
> > to Bug#1274
> >
> > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1274
> >
> > Outlook provides an IM address field and this is stored in the
> > im_address field of the person table.  But it doesn't seem to provide
> > any way to specify what kind of IM service is being used;  so I  
> > like the
> > Bug#1852 solution better.
> 
> Hm, yes. As mentioned IMHO an IM field is more like a phone number,  
> though thats not typed further either. The UI would need to check the  
> string contents to decide what to render.
> But I don't mind ;-)
good ;)

> > Question #1) Is there any kind of policy/philosophy with regard to
> > adding new types of extended attributes?
> 
> In general extattrs are bad because they slow down the system  
> (different relation in the DB, lots of joins, assemble/dissably in  
> the app etc).
> Eg email1 should have been company.email from the beginning (I think  
> it was added later on).
> 
> Now the questions was on "new types". Adding new types of course  
> doesn't hurt, only people using more of them does ;-)
I started with adding an xmpp: url link, but now I think it would be better 
to add sth. more generic than an xmpp link, just add,
The target attribute is used to decide whether to open the link in a new 
window or in the current window. For type 4 it defaults to _new, and for the 
rest of the types it defaults to _self.
The value stored in e.g. jabberid SkyPublicExtendedPersonAttributes of a 
person is used together with the corresponding urlpatterns from the 
OGoExtendedUrlAttributesMap Default.

Sebastian
> 
> What I always wondered is whether we are going to drop the  
> 'company_value' and use 'obj_property' like other objects. But I  
> suppose thats not going to happen in the OGo 5.x line given thats it  
> is a larger change.
> 
> 
> > Question #2) If the Bug#1852 solution is used perhaps we should  
> > consider
> > created an extended attribute type of each of the *major* IM service
> > types so a corresponding URL can be generated.  XMPP, OSCAR (AIM/ICQ),
> > MSN, SIP, YMSG (Yahoo) and Skype? (ex types 20, 21, 22, 23, 24, and  
> > 25?
> 
> Good question. Can't we just have one IM type which stores the IM  
> service URI. Like: aim:helje5?
> 
> Of course the component/element which shows the value must parse this  
> for display. And the editor might need to support the user.
> Its a bit more difficult to implement, but sounds like the better  
> option to me.
> 
> 20 would mean: URL which points to a chat identity (in every other  
> way it would be a regular URL field anyways? [do we have a URL  
> type?? ;-)])

 so I changed the patch to be able to define arbitrary link types via 
OGoExtendedUrlAttributesMap Default, for example:

        OGoExtendedUrlAttributesMap = (
            {
                type = 3;
                urlpattern = "mailto:%@";
            },
            {
                type = 4;
                urlpattern = "%@";
            },
            {
                type = 20;
                urlpattern = "xmpp:%@";
            },
            {
                type = 21;
                urlpattern = "fish://%@";
            },
            {
                type = 22;
                urlpattern = "imaps://%@";
            }
        );


SkyPublicExtendedPersonAttributes = (
            {
                key = jabberid;
                target = "_self";
                type = 20;
            },
            {
                key = anotherurl;
                target = "_new";
                type = 4;
            }
)

the ordinary url type is of type 4 (or has an attribute href) and email is 
type 3, 
I changed SkyObjectField.m to consider everything above 19 as a special link 
type, defined in OGoExtendedUrlAttributesMap, together with a definition of 
email and url type.

So this is not yet working for objects using LSWObjectViewer.m, should I add
the same there too? I am not sure whether it is really needed there.

kind regards
Sebastian