From developer@opengroupware.org Mon Sep 3 15:54:02 2007 From: developer@opengroupware.org (=?ISO-8859-1?Q?Marcus_M=FCller?=) Date: Mon, 3 Sep 2007 16:54:02 +0200 Subject: [OGo-Developer] zOGI uploaded [Was: Re: Consonance Snapshot] In-Reply-To: <1188483516.5274.50.camel@aleph.wmmi.net> References: <1186434006.4519.2.camel@aleph.whitemice.org> <6AE0AEC7-553C-4D5B-B1BB-2372ED7DC76B@opengroupware.org> <1187546475.4256.3.camel@aleph.wmmi.net> <7AB6DBCC-4B40-4B31-A928-01B6FFB473A0@opengroupware.org> <1187704444.5045.4.camel@aleph.wmmi.net> <178BDA3C-A1E3-4FC6-B5CC-8C0D51957032@mulle-kybernetik.com> <1188483516.5274.50.camel@aleph.wmmi.net> Message-ID: --Apple-Mail-9-70644657 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed On 30.08.2007, at 16:18, Adam Tauno Williams wrote: >> Ooops, sorry - totally overlooked your post. I have to add all >> ChangeLogs manually into the ChangeBlogger's config. Should I add the >> zOGI ChangeLog? > > I'd like this, yes. Ok, done. It's i.e. in http://www.opengroupware.org/changeblogger/ 200708.html. Cheers, Marcus -- Marcus Mueller . . . crack-admin/coder ;-) Mulle kybernetiK . http://www.mulle-kybernetik.com Current projects: http://www.mulle-kybernetik.com/znek/ --Apple-Mail-9-70644657 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1
On 30.08.2007, at 16:18, Adam Tauno Williams = wrote:

Ooops, sorry = - totally overlooked your post. I have to add all
ChangeLogs manually into the ChangeBlogger's config. = Should I add the
zOGI ChangeLog?=A0

I'd like = this, yes.

Ok, done. It's i.e. in=A0http://www= .opengroupware.org/changeblogger/200708.html.

Cheers,


=A0=A0Marcus


--=A0

Marcus Mueller=A0=A0.=A0=A0.=A0=A0.=A0=A0crack-admin/coder = ;-)

Mulle = kybernetiK=A0=A0.=A0=A0http://www.mulle-kybernetik.com

Current = projects:=A0http://www.mulle-kybernetik= .com/znek/


=

= --Apple-Mail-9-70644657-- From developer@opengroupware.org Thu Sep 6 18:20:56 2007 From: developer@opengroupware.org (Wolfgang Sourdeau) Date: Thu, 06 Sep 2007 13:20:56 -0400 Subject: [OGo-Developer] sope-gdl1: escaping and datatypes Message-ID: <9fe39544a9eeedf1929b46f3c7b0e9f7@mozzarella> Hi Helge and all, There seems to be some confusion in the way GCS escape sequences such as "\" and "'". In -[GCSFolder _formatRowValue:], a GCSStringFormatter instance is invoked with the "stringByFormattingString:" method. But instead, wouldn't it be better if the escaping occured at the channel-level? For example, using postgres causes the string to be escaped and to be unescaped afterwards, which seems a bit unclean... Thanks, Wolfgang From developer@opengroupware.org Thu Sep 6 21:34:03 2007 From: developer@opengroupware.org (Helge Hess) Date: Thu, 6 Sep 2007 22:34:03 +0200 Subject: [OGo-Developer] sope-gdl1: escaping and datatypes In-Reply-To: <9fe39544a9eeedf1929b46f3c7b0e9f7@mozzarella> References: <9fe39544a9eeedf1929b46f3c7b0e9f7@mozzarella> Message-ID: <9A90183F-1B56-47CD-AAEA-5C3429D5BB76@opengroupware.org> On 06.09.2007, at 19:20, Wolfgang Sourdeau wrote: > There seems to be some confusion in the way GCS escape sequences such > as "\" and "'". In -[GCSFolder _formatRowValue:], a GCSStringFormatter > instance is invoked with the "stringByFormattingString:" method. But > instead, wouldn't it be better if the escaping occured at the > channel-level? I didn't look at the GCS code in detail, but the SQL escaping "should" be done in the appropriate EOAdaptor subclass. The relevant methods are -formatAttribute: -formatValue:forAttribute: Those call -expressionValueForContext: on the value which I think is overridden in the respective adaptor, but I'm not 100% sure. When I look at GCSFolder -_formatRowValue:, it looks quite "wrong" to me (well GCS was designed for PG only ...). > For example, using postgres causes the string to be escaped and to be > unescaped afterwards, which seems a bit unclean... Not sure what you mean by that. GCSFolder generates raw SQL, this isn't unescaped afterwards? Helge From developer@opengroupware.org Thu Sep 6 21:44:32 2007 From: developer@opengroupware.org (Wolfgang Sourdeau) Date: Thu, 06 Sep 2007 16:44:32 -0400 Subject: [OGo-Developer] sope-gdl1: escaping and datatypes In-Reply-To: <9A90183F-1B56-47CD-AAEA-5C3429D5BB76@opengroupware.org> Message-ID: <375718ea5b9e99cff6d5fbfb58b671eb@mozzarella> On 2007-09-06 15:34:03 -0500 Helge Hess wrote: > On 06.09.2007, at 19:20, Wolfgang Sourdeau wrote: >> There seems to be some confusion in the way GCS escape sequences such >> as "\" and "'". In -[GCSFolder _formatRowValue:], a >> GCSStringFormatter >> instance is invoked with the "stringByFormattingString:" method. But >> instead, wouldn't it be better if the escaping occured at the >> channel-level? > > I didn't look at the GCS code in detail, but the SQL escaping > "should" be > done in the appropriate EOAdaptor subclass. The relevant methods are > -formatAttribute: > -formatValue:forAttribute: Any chance you can apply my most recent patches soon? This would make things easier... This, even if we have to rewrite things later... >> For example, using postgres causes the string to be escaped and to be >> unescaped afterwards, which seems a bit unclean... > > Not sure what you mean by that. GCSFolder generates raw SQL, this > isn't > unescaped afterwards? GCSFolder escapes them and then the pg adaptor channel unescapes the escaped string just before the evaluation. W. From developer@opengroupware.org Thu Sep 6 21:52:13 2007 From: developer@opengroupware.org (Helge Hess) Date: Thu, 6 Sep 2007 22:52:13 +0200 Subject: [OGo-Developer] sope-gdl1: escaping and datatypes In-Reply-To: <375718ea5b9e99cff6d5fbfb58b671eb@mozzarella> References: <375718ea5b9e99cff6d5fbfb58b671eb@mozzarella> Message-ID: <59321FC5-61C3-44FC-8B24-E69F2AF0FAEA@opengroupware.org> On 06.09.2007, at 22:44, Wolfgang Sourdeau wrote: > Any chance you can apply my most recent patches soon? This would > make things easier... > This, even if we have to rewrite things later... Maybe I will find the time to look at pending patches this weekend. >>> For example, using postgres causes the string to be escaped and >>> to be >>> unescaped afterwards, which seems a bit unclean... >> Not sure what you mean by that. GCSFolder generates raw SQL, this >> isn't unescaped afterwards? > GCSFolder escapes them and then the pg adaptor channel unescapes > the escaped string just before the evaluation. This doesn't make any sense to me. Why would the adaptor *unescape* the raw SQL? Anyways, I'll have a look. Thanks, Helge From developer@opengroupware.org Thu Sep 6 22:32:10 2007 From: developer@opengroupware.org (Wolfgang Sourdeau) Date: Thu, 06 Sep 2007 17:32:10 -0400 Subject: [OGo-Developer] sope-gdl1: escaping and datatypes In-Reply-To: <59321FC5-61C3-44FC-8B24-E69F2AF0FAEA@opengroupware.org> Message-ID: <036222720db3d38f5d473e4cf6377126@mozzarella> On 2007-09-06 15:52:13 -0500 Helge Hess wrote: > Maybe I will find the time to look at pending patches this weekend. Thanks! > This doesn't make any sense to me. Why would the adaptor *unescape* > the raw > SQL? Anyways, I'll have a look. Well. Maybe I am wrong on that matter. I do plan to do some tests regarding this, but the escaping in GCSFolder should not occur in my opinion. Wolfgang From developer@opengroupware.org Fri Sep 14 07:56:04 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Fri, 14 Sep 2007 08:56:04 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070914065604.D5DC63CCBB@l00-bugdead-prods.de> Hi, I want to save searches for documents in projects. I took a quick look how it is done for contacts/companies. It just generates and uses user defaults like this: "person_custom_qualifiers" = { Friends = { maxSearchCount = 100; qualifier = "keywords like 'Friends*'"; searchFields = { companyValueValue = ""; keywords = Friends; }; showTab = 1; }; bugdead = { maxSearchCount = 100; qualifier = "email1 like '*@l00-bugdead-prods.de*'"; searchFields = { companyValueValue = ""; email1 = "*@l00-bugdead-prods.de"; }; showTab = 1; }; }; I thought it would be easiest for the projects to do sth. like this: "project_custom_qualifiers" = { = { Friends = { maxSearchCount = 100; qualifier = "extension like '*odt'"; searchFields = { documentValueValue = ""; keywords = extension; }; showTab = 1; }; }; }; I think this would only work for database based projects, but this is fine for me. sounds this like a good idea, any other idea? kind regards Sebastian From developer@opengroupware.org Fri Sep 14 10:40:18 2007 From: developer@opengroupware.org (Helge Hess) Date: Fri, 14 Sep 2007 11:40:18 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects In-Reply-To: <20070914065604.D5DC63CCBB@l00-bugdead-prods.de> References: <20070914065604.D5DC63CCBB@l00-bugdead-prods.de> Message-ID: On 14.09.2007, at 08:56, Sebastian Reitenbach wrote: > I want to save searches for documents in projects. I took a quick > look how it is done for contacts/companies. It just generates and > uses user defaults like this: > qualifier = "keywords like 'Friends*'"; ^^ I think this is the EOQualifier which is actually used for searching. > searchFields = { > companyValueValue = ""; > keywords = Friends; ^^ and I think this is used if the user edits a search to prefill the form. > I thought it would be easiest for the projects to do sth. like this: > "project_custom_qualifiers" = { > = { > Friends = { > maxSearchCount = 100; > qualifier = "extension like '*odt'"; > searchFields = { > documentValueValue = ""; > keywords = extension; > }; Looks fine. > I think this would only work for database based projects, but this > is fine for me. I think this should also work for filesystem projects. You just can't have extended attributes. > sounds this like a good idea, any other idea? Yup, sounds nice. Greets, Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Fri Sep 14 11:45:32 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Fri, 14 Sep 2007 12:45:32 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070914104533.5972E3CD72@l00-bugdead-prods.de> developer@opengroupware.org wrote: > On 14.09.2007, at 08:56, Sebastian Reitenbach wrote: > > I want to save searches for documents in projects. I took a quick > > look how it is done for contacts/companies. It just generates and > > uses user defaults like this: > > qualifier = "keywords like 'Friends*'"; > ^^ I think this is the EOQualifier which is actually used for searching. > > > searchFields = { > > companyValueValue = ""; > > keywords = Friends; > ^^ and I think this is used if the user edits a search to prefill the > form. ah, good to know. > > > I thought it would be easiest for the projects to do sth. like this: > > "project_custom_qualifiers" = { > > = { > > Friends = { > > maxSearchCount = 100; > > qualifier = "extension like '*odt'"; > > searchFields = { > > documentValueValue = ""; > > keywords = extension; > > }; > Looks fine. > > > I think this would only work for database based projects, but this > > is fine for me. > > I think this should also work for filesystem projects. You just can't > have extended attributes. thats good too. > > > sounds this like a good idea, any other idea? > > Yup, sounds nice. fine, then I'll take a look at it on the weekend, will see how far I get. thanks Sebastian From developer@opengroupware.org Fri Sep 14 16:49:06 2007 From: developer@opengroupware.org (Wolfgang Sourdeau) Date: Fri, 14 Sep 2007 11:49:06 -0400 Subject: [OGo-Developer] Changing the folder creation paradigm Message-ID: <0e7cb793ad897e315e68c26c5273ea20@mozzarella> Hi Helge and all, I am currently implementing support for multiple calendars per-user, bas= ed on what I did a few months earlier with the address book. Doing so, I= am refactoring things in a cleaner way. In the process, I wanted to imp= lement folder renaming (both for calendars and ab). Currently, when a user creates an addressbook, its nameInContainer will = be the same as its display name, which can be a problem whenever the use= r specifies special characters (:+&/" etc...). To avoid this and to make= things easier, I have been thinking that the nameInContainer should be = set to the lowest available positive integer, and that the display name = should be as wild as the user wants it too. The webui would relies on the displayName, and any correct DAV client mo= dule would do the same with the DAV:displayname property. Thus, I wanted to check with any people involved more or less in SOGo if= they find this approach appropriate. And if not, why. Thanks! --=20 Wolfgang Sourdeau T: +1 514 989-2000 ext. 2602 C: +1 514 755-3520 AVIS - Ce courriel pourrait contenir des renseignements confidentiels ou= privil=E9gi=E9s. Si vous n'en =EAtes pas le v=E9ritable destinataire, ve= uillez nous aviser imm=E9diatement. Merci. NOTICE - This e-mail may contain confidential or privileged information.= If you are not the intended recipient, please notify us immediately. Tha= nk you. From developer@opengroupware.org Fri Sep 14 17:21:35 2007 From: developer@opengroupware.org (Helge Hess) Date: Fri, 14 Sep 2007 18:21:35 +0200 Subject: [OGo-Developer] Changing the folder creation paradigm In-Reply-To: <0e7cb793ad897e315e68c26c5273ea20@mozzarella> References: <0e7cb793ad897e315e68c26c5273ea20@mozzarella> Message-ID: <2B2EF0E4-FD7F-4525-ACA3-807CBAE6D266@opengroupware.org> On 14.09.2007, at 17:49, Wolfgang Sourdeau wrote: > Currently, when a user creates an addressbook, its nameInContainer > will be the same as its display name, which can be a problem > whenever the user specifies special characters (:+&/" etc...). Well, not really since all characters in the URL can be properly escaped. But I agree that it doesn't make it simpler :-) > To avoid this and to make things easier, I have been thinking that > the nameInContainer should be set to the lowest available positive > integer, I suppose by "lowest positive integer" you mean that you want to use a numeric primary key in the folder table? > and that the display name should be as wild as the user wants it too. > The webui would relies on the displayName, and any correct DAV > client module would do the same with the DAV:displayname property. Hm. Outlook actually treats those values as two separate entities (folder name and PR_DISPLAY_NAME) and so does CalDAV/WebDAV etc. Though the names are usually 1:1 the same (and things start to get confusing when you rename a folder). I see the biggest problem with external clients which create new collections. If you create a new calendar via CalDAV the client would most likely issue a MKCALENDAR request with a readable URL name. Actually the point is that the client will use whatever it likes (most likely the name the user chooses for the calendar properly encoded in UTF-8/URL encoding). And IMHO it would be quite bad not to use the name requested by the client (only leads to a sequence of other issues). Another minor annoyance is that browsing using Cadaver (and pretty much every other generic WebDAV agent) will be much harder, with just the numeric index exposed. IMHO you should maintain the folder displayname and the folders relative URL as separate entities (I think we currently miss a separate displayname which we should add to allow for arbitary crap in the displayname - and in the same run we could add a folder description [longer text associated with the folder aka CALDAV:calendar-description]). When the user creates a new calendar/ab from inside SOGo, I would scan the choosen name for non-letter characters. If its plain letters, I would use the choosen name. Otherwise I would either flatten the name and append a number or use just the number. (the former is easier to debug) I don't think its a good idea to always use the numeric primary key, even though it is simpler to deal with at the server. In any case you do not really get around implementing proper encoding/ escaping if you want to allow external clients to create ABs/cals ... Greets, Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Fri Sep 14 18:48:47 2007 From: developer@opengroupware.org (Wolfgang Sourdeau) Date: Fri, 14 Sep 2007 13:48:47 -0400 Subject: [OGo-Developer] Changing the folder creation paradigm In-Reply-To: <2B2EF0E4-FD7F-4525-ACA3-807CBAE6D266@opengroupware.org> Message-ID: > I suppose by "lowest positive integer" you mean that you want to use = a=20 > numeric primary key in the folder table? Yes. But not specifically. I saw it as a way to generate a small unique = id. But I just noticed I might as well use the globallyUniqueId method. > Hm. Outlook actually treats those values as two separate entities (fo= lder=20 > name and PR_DISPLAY_NAME) and so does CalDAV/WebDAV etc. Though the n= ames=20 > are usually 1:1 the same (and things start to get confusing when you = rename=20 > a folder). That's one other problem. At least when the relative URL is cryptic, the= user will not try to associate it semantically with the folder name. > I see the biggest problem with external clients which create new =20 > collections. If you create a new calendar via CalDAV the client would = most=20 > likely issue a MKCALENDAR request with a readable URL name. Actually = the=20 > point is that the client will use whatever it likes (most likely the = name=20 > the user chooses for the calendar properly encoded in UTF-8/URL encod= ing). > And IMHO it would be quite bad not to use the name requested by the c= lient=20 > (only leads to a sequence of other issues). But we could assume those clients are generating URL-safe names, so it's= alright. > Another minor annoyance is that browsing using Cadaver (and pretty mu= ch=20 > every other generic WebDAV agent) will be much harder, with just the = numeric=20 > index exposed. As mentionned above, I can use globallyUniqueId instead. And the default= folder would be kept to the name "personal". > IMHO you should maintain the folder displayname and the folders relat= ive URL=20 > as separate entities (I think we currently miss a separate displaynam= e which=20 > we should add to allow for arbitary crap in the displayname - and in = the=20 > same run we could add a folder description [longer text associated wi= th the=20 > folder aka CALDAV:calendar-description]). For the display name, there is the column "c_foldername", the id being a= lready set in "c_path4". > In any case you do not really get around implementing proper encoding/= =20 > escaping if you want to allow external clients to create ABs/cals ... I think this is already handled in DAV. The problems this change would s= olve are mainly related to the web ui actually... Thanks! --=20 Wolfgang Sourdeau T: +1 514 989-2000 ext. 2602 C: +1 514 755-3520 AVIS - Ce courriel pourrait contenir des renseignements confidentiels ou= privil=E9gi=E9s. Si vous n'en =EAtes pas le v=E9ritable destinataire, ve= uillez nous aviser imm=E9diatement. Merci. NOTICE - This e-mail may contain confidential or privileged information.= If you are not the intended recipient, please notify us immediately. Tha= nk you. From developer@opengroupware.org Sun Sep 16 19:57:55 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Sun, 16 Sep 2007 20:57:55 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070916185755.ED4E83D387@l00-bugdead-prods.de> Hi, > > > I thought it would be easiest for the projects to do sth. like this: > > "project_custom_qualifiers" = { > > = { > > Friends = { > > maxSearchCount = 100; > > qualifier = "extension like '*odt'"; > > searchFields = { > > documentValueValue = ""; > > keywords = extension; > > }; > Looks fine. > > > I think this would only work for database based projects, but this > > is fine for me. > > I think this should also work for filesystem projects. You just can't > have extended attributes. > I have a problem with removing tabs. Below my removeTab method I added to SkyProject4DocumentViewer.m. When I click the "removeTab" button on a custom tab then I see the tab disappear in the webui, but it does not get synchronized to disk. Clicking on other tabs in the project will make the removed tabs appear again. In LSWPersons.m the removeTab works well in a similar way, I only needed to adapt it a bit. Anybody has an idea why the userdefaults are not written when I remove a tab? kind regards Sebastian - (id)removeTab { NSUserDefaults *ud; NSString *title; NSMutableDictionary *settings, *projectSettings; NSString *projectId; NSArray *ap; int maxp, j; title = [[self savedSearches] objectAtIndex:[self itemIndex]]; ud = [[self session] userDefaults]; projectId = [[self project] valueForKey:@"projectId"]; settings = [[ud dictionaryForKey:@"project_custom_qualifiers"] mutableCopy]; ap = [settings allKeys]; maxp = [ap count]; for (j = 0; j < maxp; j++) { NSString *pkey; pkey = [ap objectAtIndex:j]; if ( [pkey intValue] == [projectId intValue] ) { projectSettings = [settings objectForKey:pkey]; [projectSettings removeObjectForKey:title]; [settings setObject:projectSettings forKey:pkey]; [ud setObject:settings forKey:@"project_custom_qualifiers"]; [ud synchronize]; } } From developer@opengroupware.org Sun Sep 16 22:22:49 2007 From: developer@opengroupware.org (Helge Hess) Date: Sun, 16 Sep 2007 23:22:49 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects In-Reply-To: <20070916185755.ED4E83D387@l00-bugdead-prods.de> References: <20070916185755.ED4E83D387@l00-bugdead-prods.de> Message-ID: <154DC45C-36BB-4395-BFC4-06004967D3E0@opengroupware.org> On 16.09.2007, at 20:57, Sebastian Reitenbach wrote: ... > Anybody has an idea why the userdefaults are not written when I > remove a tab? ... > if ( [pkey intValue] == [projectId intValue] ) { > projectSettings = [settings objectForKey:pkey]; Well, most likely this section is never entered? Did you walk through it in the debugger? Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Mon Sep 17 02:32:34 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Sun, 16 Sep 2007 21:32:34 -0400 Subject: [OGo-Developer] Attributes available via appointment::list-participants Message-ID: <1189992754.4998.12.camel@aleph.wmmi.net> I enumerate the list of participants for an appointment with - [[self getCTX] runCommand:@"appointment::list-participants", @"gid", [self _getEOForPKey:[date valueForKey:@"dateId"]], @"attributes", [NSArray arrayWithObjects: @"role", @"companyId", @"partStatus", @"comment", @"rsvp", @"team.isTeam", @"team.email", @"team.description", @"team.companyId", @"person.extendedAttributes", @"dateId", nil], nil]; - but I'd like to have the person.isAccount an person.imAddress attributes as well. These don't appear to be supported by LSListParticipantsCommand. Is there a special reason only the subset of attributes available are added to personAttributes - personAttributes = [[NSArray alloc] initWithObjects: @"person.companyId", @"person.globalID", @"person.firstname", @"person.extendedAttributes", @"person.telephones", @"person.name", @"person.salutation", @"person.degree", @"person.enterprises", @"person.isPrivate", @"person.isAccount", @"person.imAddress", @"person.ownerId", @"person.isPerson", @"enterprises.description", @"enterprises.companyId", @"enterprises.globalID", nil]; - or is it OK to add "person.isAccount" and "person.imAddress"? As an aside (and there may be an obvious answer), but since LSListParticipantsCommand verifies the existence of the specified attribute in the specified entity, why is there a guardian list? ------ doesn't this check the existence of the attribute?----- entity = [[self databaseModel] entityNamed:@"Person"]; .... while ((one = [e nextObject]) != nil) { if (_subKey != nil) { // key must have a prefix (i.e.: 'team.') if (![one hasPrefix:_subKey]) continue; } if ([_maxAttr containsObject:one]) { // key allowed if (_subKey != nil) one = [one substringFromIndex:[_subKey length]]; if (_entity != nil) { /* create a proper EOAttribute */ EOAttribute *a; if ((a = [_entity attributeNamed:one]) == nil) { [self errorWithFormat: @"did not find attribute in entity %@: '%@'", _entity, one]; } else [ma addObject:a]; } ... From developer@opengroupware.org Mon Sep 17 06:02:03 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Mon, 17 Sep 2007 07:02:03 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070917050203.63E293D499@l00-bugdead-prods.de> Hi Helge, thanks for replying,... developer@opengroupware.org wrote: > On 16.09.2007, at 20:57, Sebastian Reitenbach wrote: > ... > > Anybody has an idea why the userdefaults are not written when I > > remove a tab? > ... > > if ( [pkey intValue] == [projectId intValue] ) { > > projectSettings = [settings objectForKey:pkey]; > > Well, most likely this section is never entered? Did you walk through > it in the debugger? it is going into there, I had NSLogs on every second line, like below. I saw the tabs disappearing in the WebUI, when I clicked the removeTab button, but they are still in the defaults file on the file system. for (j = 0; j < maxp; j++) { NSString *pkey; pkey = [ap objectAtIndex:j]; NSLog(@"savedSearches: pkey: %@, j: %i", pkey, j); if ( [pkey intValue] == [projectId intValue] ) { NSLog(@"pkey == projectId"); projectSettings = [settings objectForKey:pkey]; NSLog(@"removeTab: title: %@, projectId: %@, my settings before remove: %@", title, projectId, projectSettings); [projectSettings removeObjectForKey:title]; NSLog(@"removed the tab: %@, now the rest is: %@", title, projectSettings); [settings setObject:projectSettings forKey:pkey]; NSLog(@"removeTab: settings after removeObjectForKey:title: %@", settings); [ud setObject:settings forKey:@"project_custom_qualifiers"]; NSLog(@"ud: %@", ud); } [ud synchronize]; [settings release]; below the output of above sequence. maybe the [ud setObject: forKey] fails already, but why? Sep 17 06:46:17 ogo-webui-1.1 [15200]: savedSearches: pkey: 10890, j: 0 Sep 17 06:46:17 ogo-webui-1.1 [15200]: pkey == projectId Sep 17 06:46:17 ogo-webui-1.1 [15200]: removeTab: title: pdf, projectId: 10890, my settings before remove: { pdf = { maxSearchCount = 100; qualifier = "file_type='pdf'"; showTab = 1; }; txt = { maxSearchCount = 100; qualifier = "file_type='txt'"; showTab = 1; }; } Sep 17 06:46:17 ogo-webui-1.1 [15200]: removed the tab: pdf, now the rest is: { txt = { maxSearchCount = 100; qualifier = "file_type='txt'"; showTab = 1; }; } Sep 17 06:46:17 ogo-webui-1.1 [15200]: removeTab: settings after removeObjectForKey:title: { 10890 = { txt = { maxSearchCount = 100; qualifier = "file_type='txt'"; showTab = 1; }; }; 21660 = { txt = { maxSearchCount = 100; qualifier = "file_type='txt'"; showTab = 1; }; }; 69640 = { txt = { maxSearchCount = 100; qualifier = "file_type='txt'"; showTab = 1; }; }; } Sep 17 06:46:17 ogo-webui-1.1 [15200]: ud: Sep 17 06:46:17 ogo-webui-1.1 [15200]: savedSearches: pkey: 69640, j: 1 Sep 17 06:46:17 ogo-webui-1.1 [15200]: savedSearches: pkey: 21660, j: 2 I also noted an other problem. Now when I enter a project that has no CustomTabs associated, the webui segfaults with signal 11. I tried to add a BOOL showCustomTabs; to the instance variables, and initialize it in the -init method. Then surround the CustomTabs in the .html template with <#ShowCustomTabsCondition> tags. The line below called in the -init method does not return anything: projectId = [[self project] valueForKey:@"projectId"]; the same line works well in e.g. above -removeTab method, can't I refer to self from within the -init method or why is that not working there? anybody could give me a hint what my problem here is? kind regards Sebastian From developer@opengroupware.org Mon Sep 17 10:16:02 2007 From: developer@opengroupware.org (Helge Hess) Date: Mon, 17 Sep 2007 11:16:02 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects In-Reply-To: <20070917050203.63E293D499@l00-bugdead-prods.de> References: <20070917050203.63E293D499@l00-bugdead-prods.de> Message-ID: <143E55C9-324E-4542-AE51-03A66F837923@opengroupware.org> On 17.09.2007, at 07:02, Sebastian Reitenbach wrote: > can't I refer to self from within the -init method If self is set you can refer to it. The usual check is: - (id)init { if ((self = [super init]) != nil) { // do stuff self->now = [[NSDate alloc] init]; } return self; } Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Mon Sep 17 12:56:59 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Mon, 17 Sep 2007 13:56:59 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070917115659.D268B3D588@l00-bugdead-prods.de> Hi, developer@opengroupware.org wrote: > On 17.09.2007, at 07:02, Sebastian Reitenbach wrote: > > can't I refer to self from within the -init method > > If self is set you can refer to it. The usual check is: > > - (id)init { > if ((self = [super init]) != nil) { > // do stuff > self->now = [[NSDate alloc] init]; > } > return self; > } > I have a construct like that in my init method: - (id)init { if ((self = [super init]) != nil) { NSNotificationCenter *nc; NSUserDefaults *ud; NSArray *ap; int max, i; NSString *projectId; nc = [NSNotificationCenter defaultCenter]; ud = [[self session] userDefaults]; projectId = [[self project] valueForKey:@"projectId"]; NSLog(@"init: self project: %@, projectId: %@", [self description], projectId); // TODO: SkyNewJobNotification??? [nc addObserver:self selector:@selector(refreshView:) name:@"SkyNewJobNotification" object:nil]; [self setMaxSearchCount:maxSearchCountDef]; [self _setupDataSource]; self->searchArray = nil; self->hasSearched = 0; and here the output, when it is called: Sep 17 13:24:22 ogo-webui-1.1 [17313]: [ERROR] SkyProject4Viewer could not find valid project ID Sep 17 13:24:22 ogo-webui-1.1 [17313]: init: self project: <0x0x7c128604 [SkyProject4Viewer]: name=SkyProject4Viewer>, projectId: the -project method then starts here: - (id)project { id projectID; if (self->project != nil) return self->project; if ((projectID = [self fileSystemNumber]) == nil) { [self errorWithFormat:@"could not find valid project ID"]; return nil; } the -fileSystemNumber method looks like: - (id)fileSystemNumber { return [[self fileSystemAttributes] objectForKey:@"NSFileSystemNumber"]; } and the fileSystemAttributes method looks like: - (NSDictionary *)fileSystemAttributes { if (self->fsinfo) return self->fsinfo; self->fsinfo = [[[self fileManager] fileSystemAttributesAtPath:@"/"] copy]; //NSLog(@"self->fsinfo: %@", self->fsinfo); return self->fsinfo; } and the -fileManager method looks like: - (id)fileManager { return self->fileManager; } but I have no clue why it is not working from within the init method, but later it is... kind regards Sebastian From developer@opengroupware.org Mon Sep 17 13:00:08 2007 From: developer@opengroupware.org (Helge Hess) Date: Mon, 17 Sep 2007 14:00:08 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects In-Reply-To: <20070917115659.D268B3D588@l00-bugdead-prods.de> References: <20070917115659.D268B3D588@l00-bugdead-prods.de> Message-ID: <16232DEC-32A7-477E-8CA1-D696772778E6@opengroupware.org> On 17.09.2007, at 13:56, Sebastian Reitenbach wrote: > but I have no clue why it is not working from within the init > method, but later it is... I'm not sure on which page you are, but probably the page is not yet activated. (-prepare... methods). Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Mon Sep 17 13:43:46 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Mon, 17 Sep 2007 08:43:46 -0400 Subject: [OGo-Developer] Attributes available via appointment::list-participants In-Reply-To: <1189992754.4998.12.camel@aleph.wmmi.net> References: <1189992754.4998.12.camel@aleph.wmmi.net> Message-ID: <1190033026.5176.2.camel@aleph.wmmi.net> --=-uW1+Fma4D9HZBEV2kAwa Content-Type: text/plain Content-Transfer-Encoding: quoted-printable > I enumerate the list of participants for an appointment with - > [[self getCTX] runCommand:@"appointment::list-participants", > @"gid", [self _getEOForPKey:[date valueForKey:@"dateId"]], > @"attributes", [NSArray arrayWithObjects: @"role", @"companyId", > @"partStatus", @"comment", @"rsvp", > @"team.isTeam", @"team.email", > @"team.description", @"team.companyId", > @"person.extendedAttributes", > @"dateId", > nil], > nil]; > - but I'd like to have the person.isAccount an person.imAddress > attributes as well. These don't appear to be supported by > LSListParticipantsCommand. > Is there a special reason only the subset of attributes available are > added to personAttributes -=20 > personAttributes =3D > [[NSArray alloc] initWithObjects: > @"person.companyId", > @"person.globalID", > @"person.firstname", > @"person.extendedAttributes", > @"person.telephones", > @"person.name", > @"person.salutation", > @"person.degree", > @"person.enterprises", > @"person.isPrivate", > @"person.isAccount", > @"person.imAddress", > @"person.ownerId", > @"person.isPerson", >=20 > @"enterprises.description", > @"enterprises.companyId", > @"enterprises.globalID", > nil]; > - or is it OK to add "person.isAccount" and "person.imAddress"? It works to just add "person.isAccount" and "person.imAddress" http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=3D1913 > As an aside (and there may be an obvious answer), but since > LSListParticipantsCommand verifies the existence of the specified > attribute in the specified entity, why is there a guardian list? >=20 > ------ doesn't this check the existence of the attribute?----- > entity =3D [[self databaseModel] entityNamed:@"Person"]; > .... > while ((one =3D [e nextObject]) !=3D nil) { > if (_subKey !=3D nil) { > // key must have a prefix (i.e.: 'team.') > if (![one hasPrefix:_subKey]) continue; > } > if ([_maxAttr containsObject:one]) { > // key allowed > if (_subKey !=3D nil) one =3D [one substringFromIndex:[_subKey > length]]; > if (_entity !=3D nil) { > /* create a proper EOAttribute */ > EOAttribute *a; >=20 > if ((a =3D [_entity attributeNamed:one]) =3D=3D nil) { > [self errorWithFormat: > @"did not find attribute in entity %@: '%@'", > _entity, one]; > } > else > [ma addObject:a]; > } >=20 > ... >=20 --=-uW1+Fma4D9HZBEV2kAwa Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) iD8DBQBG7naCLRePpNle04MRApG1AJ9KwCPIUDwmG24nCPS7a4bRD1VFnACfSmXs YLxhvjBSobG4khamMCX6oYc= =E9EY -----END PGP SIGNATURE----- --=-uW1+Fma4D9HZBEV2kAwa-- From developer@opengroupware.org Mon Sep 17 13:52:21 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Mon, 17 Sep 2007 14:52:21 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070917125222.16CDA3D5EE@l00-bugdead-prods.de> developer@opengroupware.org wrote: > On 17.09.2007, at 13:56, Sebastian Reitenbach wrote: > > but I have no clue why it is not working from within the init > > method, but later it is... > > I'm not sure on which page you are, but probably the page is not yet > activated. (-prepare... methods). I am in SkyProject4Viewer.m, this one has no -prepare method. Thanks for the hint, I need to find out, how this prepare works... I also recognized that there is everything prepared in the .m file in the SkyProject4DocumentSearch.m file combine the qualifiers with either OR or AND, but there is no radio button in the webui, while there, I think I'll add one too ;). kind regards Sebastian > > Helge > -- > Helge Hess > http://www.helgehess.eu/ > > > -- > OpenGroupware.org Developer > developer@opengroupware.org > http://mail.opengroupware.org/mailman/listinfo/developer > From developer@opengroupware.org Mon Sep 17 14:08:41 2007 From: developer@opengroupware.org (Helge Hess) Date: Mon, 17 Sep 2007 15:08:41 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects In-Reply-To: <20070917125222.16CDA3D5EE@l00-bugdead-prods.de> References: <20070917125222.16CDA3D5EE@l00-bugdead-prods.de> Message-ID: <13344FCF-504F-4842-AB39-4ADA3CA9D2BB@opengroupware.org> On 17.09.2007, at 14:52, Sebastian Reitenbach wrote: > I am in SkyProject4Viewer.m, this one has no -prepare method. > Thanks for the hint, I need to find out, how this prepare works... Might be called something like -activate... too. (I think prepareXYZ stuff is oldstyle, -activateXYZ is new style). Activation in OGo works like this: you always have an object and a verb. Eg an EOKeyGlobalID which addresses a project and 'view' or 'edit' as the verb. Such an object/verb combination is mapped to a WOComponent subclass in the bundle-info.plist. Then, when the user 'activates' an object, the WOComponent is located and instantiated (the latter calls the -init thing). After that the component is 'activated' with the object/verb (this fills the component with the object). http://www.opengroupware.org/en/devs/docs/snippets/WebUI/activation.html Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Mon Sep 17 14:28:35 2007 From: developer@opengroupware.org (Helge Hess) Date: Mon, 17 Sep 2007 15:28:35 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects In-Reply-To: <13344FCF-504F-4842-AB39-4ADA3CA9D2BB@opengroupware.org> References: <20070917125222.16CDA3D5EE@l00-bugdead-prods.de> <13344FCF-504F-4842-AB39-4ADA3CA9D2BB@opengroupware.org> Message-ID: <962C36B7-D4CF-4226-807B-26EF3264F7E8@opengroupware.org> On 17.09.2007, at 15:08, Helge Hess wrote: > Then, when the user 'activates' an object, the WOComponent is > located and instantiated (the latter calls the -init thing). After > that the component is 'activated' with the object/verb (this fills > the component with the object). Oh, and in case this isn't obvious - a contact search panel is not associated with an object, and therefore not activated ... (unlike a project viewer which is bound to and activated with a project). Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Tue Sep 18 05:56:06 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Tue, 18 Sep 2007 06:56:06 +0200 Subject: [OGo-Developer] adding search save and create tab to document search in projects Message-ID: <20070918045607.0A1AD3D82D@l00-bugdead-prods.de> Hi Helge, developer@opengroupware.org wrote: > On 17.09.2007, at 14:52, Sebastian Reitenbach wrote: > > I am in SkyProject4Viewer.m, this one has no -prepare method. > > Thanks for the hint, I need to find out, how this prepare works... > > Might be called something like -activate... too. (I think prepareXYZ > stuff is oldstyle, -activateXYZ is new style). > > Activation in OGo works like this: you always have an object and a > verb. Eg an EOKeyGlobalID which addresses a project and 'view' or > 'edit' as the verb. > Such an object/verb combination is mapped to a WOComponent subclass > in the bundle-info.plist. I found these mappings for different types in the bundle-info.plist: { verb = view; type = "eo-gid/project"; component = SkyProject4Viewer; }, { verb = view; type = "eo/project"; component = SkyProject4Viewer; }, { verb = view; type = "objc/SkyProjectFileManager"; component = SkyProject4Viewer; }, { verb = view; type = "objc/SkyFSFileManager"; component = SkyProject4Viewer; }, > > Then, when the user 'activates' an object, the WOComponent is located > and instantiated (the latter calls the -init thing). After that the > component is 'activated' with the object/verb (this fills the > component with the object). > > http://www.opengroupware.org/en/devs/docs/snippets/WebUI/activation.html I added some NSLog statements to the activate... methods I found in SkyProject4Viewer.m, and I also added some new methods - (id)activateObject { - (id)activate { - (id)viewObject { - (id)view { all with an NSLog statement, to see whether they get called. Then I accessed a project, as explained on the link above, like this: http://[yourhost]/OpenGroupware/x/activate?oid=10890&verb=view but I haven't seen any output from any of the NSLog statements. I think I need a proper name for the activation method to make it work? How do I figure out what method name I need? kind regards Sebastian From developer@opengroupware.org Fri Sep 21 06:41:19 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Fri, 21 Sep 2007 07:41:19 +0200 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch Message-ID: <20070921054119.888FD3E315@l00-bugdead-prods.de> Hi, I uploaded a patch to add the possibility to choose between and AND or OR connection of the search qualifier to search for documents within projects. It is mostly copied from LSWPersonAdvancedSearch. *strings files for English and German are included. http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1914 It would be great if someone could take a look and maybe apply it to the tree. Now I go on try to add the saveSearch for SkyProject4DocumentSearch ;). kind regards Sebastian From developer@opengroupware.org Fri Sep 21 15:11:16 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Fri, 21 Sep 2007 10:11:16 -0400 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch In-Reply-To: <20070921054119.888FD3E315@l00-bugdead-prods.de> References: <20070921054119.888FD3E315@l00-bugdead-prods.de> Message-ID: <1190383876.5723.0.camel@aleph.wmmi.net> --=-GZoCvlfTv2ODhI4GJB9e Content-Type: text/plain Content-Transfer-Encoding: quoted-printable > I uploaded a patch to add the possibility to choose between and AND or OR= =20 > connection of the search qualifier to search for documents within project= s.=20 > It is mostly copied from LSWPersonAdvancedSearch. *strings files for Engl= ish=20 > and German are included. > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=3D1914 > It would be great if someone could take a look and maybe apply it to the=20 > tree. I'll try to give it a run through this weekend. > Now I go on try to add the saveSearch for SkyProject4DocumentSearch ;). --=-GZoCvlfTv2ODhI4GJB9e Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) iD8DBQBG89EELRePpNle04MRApoNAJwKXvE/FqpuFvNHusNM0VGt34Uf2gCfV6NW cBnGD9QDJO107J4w6jtJ4yw= =iYng -----END PGP SIGNATURE----- --=-GZoCvlfTv2ODhI4GJB9e-- From developer@opengroupware.org Sat Sep 22 05:11:48 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Sat, 22 Sep 2007 00:11:48 -0400 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch In-Reply-To: <1190383876.5723.0.camel@aleph.wmmi.net> References: <20070921054119.888FD3E315@l00-bugdead-prods.de> <1190383876.5723.0.camel@aleph.wmmi.net> Message-ID: <1190434308.5673.1.camel@aleph.wmmi.net> > > I uploaded a patch to add the possibility to choose between and AND or OR > > connection of the search qualifier to search for documents within projects. > > It is mostly copied from LSWPersonAdvancedSearch. *strings files for English > > and German are included. > > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1914 > > It would be great if someone could take a look and maybe apply it to the > > tree. > I'll try to give it a run through this weekend. Tested and committed. > > Now I go on try to add the saveSearch for SkyProject4DocumentSearch ;). For consistency would be nice to have the same and/or option in the "documents" search tab of the projects application. From developer@opengroupware.org Sat Sep 22 05:49:22 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Sat, 22 Sep 2007 06:49:22 +0200 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch Message-ID: <20070922044922.766803E687@l00-bugdead-prods.de> Hi, developer@opengroupware.org wrote: > > > I uploaded a patch to add the possibility to choose between and AND or OR > > > connection of the search qualifier to search for documents within projects. > > > It is mostly copied from LSWPersonAdvancedSearch. *strings files for English > > > and German are included. > > > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1914 > > > It would be great if someone could take a look and maybe apply it to the > > > tree. > > I'll try to give it a run through this weekend. > > Tested and committed. thanks a lot. > > > > Now I go on try to add the saveSearch for SkyProject4DocumentSearch ;). > > For consistency would be nice to have the same and/or option in the > "documents" search tab of the projects application. I already thought about that. I don't have much time on the weekend, but maybe on Sunday or beginning next week. kind regards Sebastian From developer@opengroupware.org Sun Sep 23 05:28:44 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Sun, 23 Sep 2007 00:28:44 -0400 Subject: [OGo-Developer] Job Import Message-ID: <1190521724.5196.8.camel@aleph.wmmi.net> In the source I see reference to a Job Import function/page - ./WebUI/Templates/JobUI/LSWJobImport.html ./WebUI/Templates/JobUI/LSWJobImport.wod ./WebUI/JobUI/LSWJobImport.m ./WebUI/JobUI/Headers/LSWJobImport.h - but I can't find this anywhere in the WebUI. Am I missing something or this is code dead? From developer@opengroupware.org Sun Sep 23 11:05:47 2007 From: developer@opengroupware.org (Helge Hess) Date: Sun, 23 Sep 2007 12:05:47 +0200 Subject: [OGo-Developer] Job Import In-Reply-To: <1190521724.5196.8.camel@aleph.wmmi.net> References: <1190521724.5196.8.camel@aleph.wmmi.net> Message-ID: <9A55DDCC-F747-4036-99F7-BEB20802BB9B@opengroupware.org> On 23.09.2007, at 06:28, Adam Tauno Williams wrote: > In the source I see reference to a Job Import function/page - > > Templates/JobUI/LSWJobImport.html > Templates/JobUI/LSWJobImport.wod > JobUI/LSWJobImport.m > JobUI/Headers/LSWJobImport.h > > - but I can't find this anywhere in the WebUI. Am I missing > something > or this is code dead? I suppose its dead. It might be the very old M$ Project task importer. ---snip--- helge@mbp$ grep JobImp JobUI/* JobUI/TODO:- is LSWJobImport still usable/being used? ^^^ JobUI/ChangeLog: * LSWJobImport.wo, LSWJobPreferences.wo, JobUI/ChangeLog: * LSWJobImport.wo: imageButton --> css submitButton JobUI/ChangeLog: * LSWJobImport.m/LSWJobAction.m: code cleanups (v4.1.10) JobUI/ChangeLog: * added Defaults.plist with JobImportFormat JobUI/ChangeLog: * LSWJobImport.m: posts notification LSWJobHasChanged JobUI/Defaults.plist: JobImportFormat = { JobUI/GNUmakefile: LSWJobImport.m \ JobUI/LSWJobImport.m:#include "LSWJobImport.h" JobUI/LSWJobImport.m:@implementation LSWJobImport JobUI/LSWJobImport.m:void _setParentJob(LSWJobImport *self, NSArray *_jobs, id _parent) { JobUI/LSWJobImport.m:@end /* LSWJobImport */ JobUI/bundle-info.plist: { name = LSWJobImport; }, JobUI/bundle-info.plist: { name = LSWJobImport; }, JobUI/bundle-info.plist: component = LSWJobImport; ---snap--- Greets, Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Sun Sep 23 21:27:57 2007 From: developer@opengroupware.org (Helge Hess) Date: Sun, 23 Sep 2007 22:27:57 +0200 Subject: [OGo-Developer] GDLContentStore Message-ID: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> Hi, I think it would be a good idea to move GDLContentStore out of SOPE into SOGo. When I added it to SOPE I thought that it might be useful for other SOPE applications, but right now plenty of SOGo specific stuff got added and its not very API stable aka 'work in progress' (several patches pending ...). So far no other SOPE application (I know of) uses it anyways. Summary: As mentioned I think GCS should be removed from SOPE and moved to the SOGo repository. Any objections? :-) Thanks, Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Mon Sep 24 14:10:45 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Mon, 24 Sep 2007 09:10:45 -0400 Subject: [OGo-Developer] GDLContentStore In-Reply-To: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> References: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> Message-ID: <1190639445.5490.5.camel@aleph.wmmi.net> --=-XJ1Qo+gz4P5uy8px8Fsj Content-Type: text/plain Content-Transfer-Encoding: quoted-printable > I think it would be a good idea to move GDLContentStore out of SOPE =20 > into SOGo. > When I added it to SOPE I thought that it might be useful for other =20 > SOPE applications, but right now plenty of SOGo specific stuff got =20 > added and its not very API stable aka 'work in progress' (several =20 > patches pending ...). > So far no other SOPE application (I know of) uses it anyways. > Summary: As mentioned I think GCS should be removed from SOPE and =20 > moved to the SOGo repository. Any objections? :-) Don't even know what it was for. --=-XJ1Qo+gz4P5uy8px8Fsj Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) iD8DBQBG97dVLRePpNle04MRAlOCAJ92s0p7heqK6s9mA1N4EyTXTZpgHACeJexw zB+3zOFXfDVoyDoX2Kew/y4= =ilo6 -----END PGP SIGNATURE----- --=-XJ1Qo+gz4P5uy8px8Fsj-- From developer@opengroupware.org Mon Sep 24 14:17:37 2007 From: developer@opengroupware.org (=?ISO-8859-1?Q?Marcus_M=FCller?=) Date: Mon, 24 Sep 2007 15:17:37 +0200 Subject: [OGo-Developer] GDLContentStore In-Reply-To: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> References: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> Message-ID: <16517454-8F1D-4C7A-8512-CAE2A5852261@mulle-kybernetik.com> --Apple-Mail-7--268223805 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed On 23.09.2007, at 22:27, Helge Hess wrote: > Summary: As mentioned I think GCS should be removed from SOPE and > moved to the SOGo repository. Any objections? :-) It's fine with me. If need be, we can re-import it later. Cheers, Marcus -- Marcus Mueller . . . crack-admin/coder ;-) Mulle kybernetiK . http://www.mulle-kybernetik.com Current projects: http://www.mulle-kybernetik.com/znek/ --Apple-Mail-7--268223805 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1
On 23.09.2007, at 22:27, Helge Hess wrote:

Summary: As mentioned I think = GCS should be removed from SOPE and moved to the SOGo repository. Any = objections? :-)

It's fine with = me. If need be, we can re-import it later.

Cheers,


=A0=A0Marcus


--=A0

Marcus Mueller=A0=A0.=A0=A0.=A0=A0.=A0=A0crack-admin/coder = ;-)

Mulle = kybernetiK=A0=A0.=A0=A0http://www.mulle-kybernetik.com

Current = projects:=A0http://www.mulle-kybernetik= .com/znek/


=

= --Apple-Mail-7--268223805-- From developer@opengroupware.org Mon Sep 24 14:25:39 2007 From: developer@opengroupware.org (Helge Hess) Date: Mon, 24 Sep 2007 15:25:39 +0200 Subject: [OGo-Developer] GDLContentStore In-Reply-To: <1190639445.5490.5.camel@aleph.wmmi.net> References: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> <1190639445.5490.5.camel@aleph.wmmi.net> Message-ID: <7E05CF53-1467-440F-B78B-E0DE078F9A46@opengroupware.org> On 24.09.2007, at 15:10, Adam Tauno Williams wrote: > Don't even know what it was for. :-) Just for completeness ... GDLContentStore (GCS) is a library for storing (small) BLOBs into PostgreSQL while maintaining an index on the contents of that BLOB. It was/is written for SOGo which stores vCard and iCalendar resources ("files") as-is. When you store a resource into GCS it will parse the entity (eg iCal VEVENT) and extract 'index information'. This information is then stored in separate "index tables" and can be SELECTed using SQL. This index is necessary for the SOGo web interface, eg when it wants to display a week of events. W/o the index it would need to parse all events on each query. Well and it also does all that table-on-the-server balancing stuff to distribute the files in a cluster. etc etc ;-) Greets, Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Mon Sep 24 16:43:27 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Mon, 24 Sep 2007 11:43:27 -0400 Subject: [OGo-Developer] Re: [OGo-Users] Conflict Detection (Bug?) In-Reply-To: References: <1190228723.5829.19.camel@aleph.wmmi.net> <5524A92D-4A1D-48BC-825B-88896BFEF5ED@opengroupware.org> <1190595739.5243.12.camel@aleph.wmmi.net> Message-ID: <1190648607.5490.11.camel@aleph.wmmi.net> --=-RymEwp6a1CLwpiiYH/5Y Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Switched to devel list. > > I'm interested in modifying this to perform an actual update of the > > standing record when a participant is already assigned. > Sure, do so. http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=3D1915 Committed in r2026 I've banged on it from multiple angles and everything still seems to work. Aside - there is a mistake in your last ChangeLog entry. You bumped the Version [to 104] but used the old version [103] in your entry. Is it OK to fix past ChangeLog entries? --=-RymEwp6a1CLwpiiYH/5Y Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) iD8DBQBG99sfLRePpNle04MRAoDiAJ42Ay6HUCCbSfhLOkZ22kM4raxZRQCdHCAU /9EyjnpWh43cMdlxlrtq8yc= =+4jP -----END PGP SIGNATURE----- --=-RymEwp6a1CLwpiiYH/5Y-- From developer@opengroupware.org Mon Sep 24 16:43:38 2007 From: developer@opengroupware.org (Helge Hess) Date: Mon, 24 Sep 2007 17:43:38 +0200 Subject: [OGo-Developer] Re: [OGo-Users] Conflict Detection (Bug?) In-Reply-To: <1190648607.5490.11.camel@aleph.wmmi.net> References: <1190228723.5829.19.camel@aleph.wmmi.net> <5524A92D-4A1D-48BC-825B-88896BFEF5ED@opengroupware.org> <1190595739.5243.12.camel@aleph.wmmi.net> <1190648607.5490.11.camel@aleph.wmmi.net> Message-ID: On 24.09.2007, at 17:43, Adam Tauno Williams wrote: > Aside - there is a mistake in your last ChangeLog entry. You > bumped the > Version [to 104] but used the old version [103] in your entry. Is > it OK > to fix past ChangeLog entries? Sure. Thanks, Helge -- Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Wed Sep 26 06:41:20 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Wed, 26 Sep 2007 07:41:20 +0200 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch Message-ID: <20070926054120.C97293EDE4@48.53.204.212.ediscom.de> Hi, > > > > Now I go on try to add the saveSearch for SkyProject4DocumentSearch ;). > > For consistency would be nice to have the same and/or option in the > "documents" search tab of the projects application. > I have that working too. In one place, the input fields are in the center, on the other, they are left aligned. Also the submit button is on the right in one place, and below the input fields on the other. I think this should be made consistent too. I am talking about the default UI. Any preferences? I'd suggest to have the macht all/match one and the submit button on one line, below the input fields. If nobody says anything against it, I'd change everything that it would look like this on both places. kind regards Sebastian From developer@opengroupware.org Wed Sep 26 12:46:37 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Wed, 26 Sep 2007 07:46:37 -0400 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch In-Reply-To: <20070926054120.C97293EDE4@48.53.204.212.ediscom.de> References: <20070926054120.C97293EDE4@48.53.204.212.ediscom.de> Message-ID: <1190807197.5702.37.camel@aleph.wmmi.net> > > > > Now I go on try to add the saveSearch for > SkyProject4DocumentSearch ;). > > For consistency would be nice to have the same and/or option in the > > "documents" search tab of the projects application. > I have that working too. In one place, the input fields are in the center, > on the other, they are left aligned. Also the submit button is on the right > in one place, and below the input fields on the other. I think this should > be made consistent too. I am talking about the default UI. > Any preferences? > I'd suggest to have the macht all/match one and the submit button on one > line, below the input fields. If nobody says anything against it, I'd change > everything that it would look like this on both places. I'd vote to have the operator select on top and the search button at the bottom (seems the traditional button-at-the-bottom approach). But this is just a matter of taste. I'd also vote for the form being left justified in all cases, the centered form looks odd. From developer@opengroupware.org Wed Sep 26 13:09:43 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Wed, 26 Sep 2007 14:09:43 +0200 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch Message-ID: <20070926120943.6DF303F0CA@48.53.204.212.ediscom.de> developer@opengroupware.org wrote: > > > > > Now I go on try to add the saveSearch for > > SkyProject4DocumentSearch ;). > > > For consistency would be nice to have the same and/or option in the > > > "documents" search tab of the projects application. > > I have that working too. In one place, the input fields are in the center, > > on the other, they are left aligned. Also the submit button is on the right > > in one place, and below the input fields on the other. I think this should > > be made consistent too. I am talking about the default UI. > > Any preferences? > > I'd suggest to have the macht all/match one and the submit button on one > > line, below the input fields. If nobody says anything against it, I'd change > > everything that it would look like this on both places. > > I'd vote to have the operator select on top and the search button at the > bottom (seems the traditional button-at-the-bottom approach). But this > is just a matter of taste. this would make 4 rows, one for the radio buttons, three for the input fields, one for the button. That was the reason I suggested the radio buttons on the bottom, I'd say on the left, and the search button on the same row on the right. > > I'd also vote for the form being left justified in all cases, the > centered form looks odd. I think so too. So if nobody else has sth. to say for it, I would do it as I proposed, being left aligned. kind regards Sebastian From developer@opengroupware.org Wed Sep 26 19:24:41 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Wed, 26 Sep 2007 20:24:41 +0200 Subject: [OGo-Developer] search operator for SkyProject4DocumentSearch Message-ID: <20070926182441.7AAE93F272@48.53.204.212.ediscom.de> Hi Adam, > > I'd vote to have the operator select on top and the search button at the > > bottom (seems the traditional button-at-the-bottom approach). But this > > is just a matter of taste. > this would make 4 rows, one for the radio buttons, three for the input > fields, one for the button. That was the reason I suggested the radio > buttons on the bottom, I'd say on the left, and the search button on the > same row on the right. > > > > > I'd also vote for the form being left justified in all cases, the > > centered form looks odd. > I think so too. > > So if nobody else has sth. to say for it, I would do it as I proposed, being > left aligned. > have done so, there is the patch: http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1918 while there I also recognized that this bug is still open: http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1592 maybe you can take a look there and apply that patch too. kind regards Sebastian From developer@opengroupware.org Thu Sep 27 22:26:48 2007 From: developer@opengroupware.org (Helge Hess) Date: Thu, 27 Sep 2007 23:26:48 +0200 Subject: [OGo-Developer] GDLContentStore In-Reply-To: <16517454-8F1D-4C7A-8512-CAE2A5852261@mulle-kybernetik.com> References: <9E5E1D7D-922C-48C3-94AD-DAFABCC1D1EA@opengroupware.org> <16517454-8F1D-4C7A-8512-CAE2A5852261@mulle-kybernetik.com> Message-ID: On 24.09.2007, at 15:17, Marcus M=FCller wrote: > On 23.09.2007, at 22:27, Helge Hess wrote: >> Summary: As mentioned I think GCS should be removed from SOPE and =20 >> moved to the SOGo repository. Any objections? :-) > It's fine with me. If need be, we can re-import it later. OK, I've moved it out of sope-gdl1 into the Recycler. Would be nice =20 if the Inverse guys would add it to the SOGo repository, thanks. Greets, Helge --=20 Helge Hess http://www.helgehess.eu/ From developer@opengroupware.org Sat Sep 29 12:48:42 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Sat, 29 Sep 2007 13:48:42 +0200 Subject: [OGo-Developer] Re: Automatically Lock an Account on Failed Logins Message-ID: <20070929114843.5883A3FAF5@48.53.204.212.ediscom.de> Hi, I moved this thread from the users to the developer list. > > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1917 > > > > > > It stores locked status in the isLocked attribute of > > Person; "is_locked" > > > > > in the "person" table. It looks like it tries to use the session log > > > > > to compute the failures. > > > > ok, so when it is persistently locked via the is_locked column in the > > > > database, then the Admin has to reenable the account via the WebUI. > > That's > > > > fine for me. thanks. > > > Yep, would be a good feature. > > I think so too, I hope I'll find some time to take a look at the source to > > figure out what is going wrong there. After some fiddling around with gdb, I changed the return value of the method canNestTransactions in sope's PostgreSQL72Context.m from NO to YES, see below, then everything was working fine. The account got locked when trying too many times to login with the wrong password ;) - (BOOL)canNestTransactions { return YES; } This is called from sope EOAdaptorContext.m, which is called from OGoContextManager.m AFAIK the nested transaction got introduced in postgres 8.0, and 7.X is also long time not supported anymore, so I doubt that it wouldn't harm to just make that little change to sope's PostgreSQL72Context.m. any thoughts on this? kind regards Sebastian From developer@opengroupware.org Sat Sep 29 12:54:14 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Sat, 29 Sep 2007 13:54:14 +0200 Subject: [OGo-Developer] Re: Automatically Lock an Account on Failed Logins Message-ID: <20070929115415.2B3363F837@48.53.204.212.ediscom.de> Hi, developer@opengroupware.org wrote: > Hi, > > I moved this thread from the users to the developer list. > > > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1917 > > > > > > > > It stores locked status in the isLocked attribute of > > > Person; "is_locked" > > > > > > in the "person" table. It looks like it tries to use the session > log > > > > > > to compute the failures. > > > > > ok, so when it is persistently locked via the is_locked column in > the > > > > > database, then the Admin has to reenable the account via the WebUI. > > > That's > > > > > fine for me. thanks. > > > > Yep, would be a good feature. > > > I think so too, I hope I'll find some time to take a look at the source > to > > > figure out what is going wrong there. > > After some fiddling around with gdb, I changed the return value of the > method canNestTransactions in sope's PostgreSQL72Context.m from NO to YES, > see below, then everything was working fine. The account got locked when > trying too many times to login with the wrong password ;) > > - (BOOL)canNestTransactions { > return YES; > } > > This is called from sope EOAdaptorContext.m, which is called from > OGoContextManager.m > > AFAIK the nested transaction got introduced in postgres 8.0, and 7.X is also > long time not supported anymore, so I doubt that it wouldn't harm to just > make that little change to sope's PostgreSQL72Context.m. > > any thoughts on this? I just recognized, Helge found a different solution to the problem, will try out that too. kind regards Sebastian From developer@opengroupware.org Sat Sep 29 14:02:30 2007 From: developer@opengroupware.org (Adam Tauno Williams) Date: Sat, 29 Sep 2007 9:02:30 -0400 Subject: [OGo-Developer] Re: Automatically Lock an Account on Failed Logins In-Reply-To: <20070929114843.5883A3FAF5@48.53.204.212.ediscom.de> References: <20070929114843.5883A3FAF5@48.53.204.212.ediscom.de> Message-ID: <7259-SnapperMsg05076A73C323FD6C@[70.217.150.220]> >I moved this thread from the users to the developer list. >> > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1917 I think Helge already did a patch that might fix this. Haven't tried it yet, at a conference this weekend. >After some fiddling around with gdb, I changed the return value of the >method canNestTransactions in sope's PostgreSQL72Context.m from NO to YES, >see below, then everything was working fine. The account got locked when >trying too many times to login with the wrong password ;) >- (BOOL)canNestTransactions { > return YES; Interesting. >This is called from sope EOAdaptorContext.m, which is called from >OGoContextManager.m >AFAIK the nested transaction got introduced in postgres 8.0, and 7.X is also >long time not supported anymore, so I doubt that it wouldn't harm to just >make that little change to sope's PostgreSQL72Context.m. >any thoughts on this? While I agree that pg7.2 is darn old and way obsolete my experience leads me to believe that there are ALLOT of shops hanging on to pg72. (Despite the fact that 7.2 will eventually eat your data as certainly as gravity turns the worlds; due to XID rollover among other issues.) And 8.x is magnitudes more scalable that 7.x. From developer@opengroupware.org Sat Sep 29 14:02:53 2007 From: developer@opengroupware.org (Sebastian Reitenbach) Date: Sat, 29 Sep 2007 15:02:53 +0200 Subject: [OGo-Developer] Re: Automatically Lock an Account on Failed Logins Message-ID: <20070929130253.5502A3FADF@48.53.204.212.ediscom.de> Hi, developer@opengroupware.org wrote: > Hi, > > developer@opengroupware.org wrote: > > Hi, > > > > I moved this thread from the users to the developer list. > > > > http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1917 > > > > > > > > > > It stores locked status in the isLocked attribute of > > > > Person; "is_locked" > > > > > > > in the "person" table. It looks like it tries to use the > session > > log > > > > > > > to compute the failures. > > > > > > ok, so when it is persistently locked via the is_locked column in > > the > > > > > > database, then the Admin has to reenable the account via the > WebUI. > > > > That's > > > > > > fine for me. thanks. > > > > > Yep, would be a good feature. > > > > I think so too, I hope I'll find some time to take a look at the > source > > to > > > > figure out what is going wrong there. > > > > After some fiddling around with gdb, I changed the return value of the > > method canNestTransactions in sope's PostgreSQL72Context.m from NO to YES, > > see below, then everything was working fine. The account got locked when > > trying too many times to login with the wrong password ;) > > > > - (BOOL)canNestTransactions { > > return YES; > > } > > > > This is called from sope EOAdaptorContext.m, which is called from > > OGoContextManager.m > > > > AFAIK the nested transaction got introduced in postgres 8.0, and 7.X is > also > > long time not supported anymore, so I doubt that it wouldn't harm to just > > make that little change to sope's PostgreSQL72Context.m. > > > > any thoughts on this? > > I just recognized, Helge found a different solution to the problem, will try > out that too. > I tested Helge's version, works well too. I closed that bug report. Thanks Sebastian From developer@opengroupware.org Sat Sep 29 18:42:55 2007 From: developer@opengroupware.org (Helge Hess) Date: Sat, 29 Sep 2007 19:42:55 +0200 Subject: [OGo-Developer] Re: Automatically Lock an Account on Failed Logins In-Reply-To: <20070929114843.5883A3FAF5@48.53.204.212.ediscom.de> References: <20070929114843.5883A3FAF5@48.53.204.212.ediscom.de> Message-ID: On 29.09.2007, at 13:48, Sebastian Reitenbach wrote: > After some fiddling around with gdb, I changed the return value of the > method canNestTransactions in sope's PostgreSQL72Context.m from NO > to YES, ... which gives you unclosed transactions. Not exactly useful ... Nested transactions are not used in OGo. The actual bug was that a transaction was not properly closed. Helge -- Helge Hess http://www.helgehess.eu/