+2005-02-14 Helge Hess <helge.hess@opengroupware.org>
+
+ * UIxContactsListView.h: properly protected header file (v0.9.19)
+
2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
* UIxContactEditor.m: changed to use NGLogging (v0.9.18)
License along with OGo; see the file COPYING. If not, write to the
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
- */
-// $Id$
+*/
+#ifndef __UIxContactsListView_H__
+#define __UIxContactsListView_H__
#include <SOGoUI/UIxComponent.h>
+@class NSString, NSArray;
+
@interface UIxContactsListView : UIxComponent
{
NSArray *allRecords;
NSArray *filteredRecords;
NSString *searchText;
- id contact;
+ id contact;
}
@end
+
+#endif /* __UIxContactsListView_H__ */
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
-// $Id$
-
#include "UIxContactsListView.h"
#include <Contacts/SOGoContactFolder.h>
- (id)searchText {
return self->searchText;
}
+
- (EOQualifier *)qualifier {
NSString *qs, *s;
-# $Id$
+# GNUstep makefile
-SUBMINOR_VERSION:=18
+SUBMINOR_VERSION:=19
# v0.9.18 requires NGExtensions v4.5.136
# v0.9.16 requires libSOGoUI v0.9.16
2005-02-14 Helge Hess <helge.hess@opengroupware.org>
-
+
+ * v0.9.107
+
+ * product.plist: mapped 'namespaced' "tb.view" SOPE method to the same
+ methods like "view". This allows us to use "tb.view" inside the
+ mailer without clashing with other UIs on top of the same SoObjects
+
+ * UIxMailTree.m: use Inbox icon for SOGoMailAccount and
+ SOGoMailAccounts folders, added ability to specify a
+ 'treeFolderAction' (relative URL to be triggered by clicks)
+
* v0.9.106
* UIxMailFilterPanel.wox: improved CSS styling of the search field
mailer.js \
MailerUI_RESOURCE_FILES += \
- screenshots/*.png \
Images/tbtv_*.gif \
Images/icon_*.gif \
Images/tbtb_*.png \
<div class="embedwhite_out">
<div class="embedwhite_in">
<var:component className="UIxMailTree"
- var:rootClassName="treeRootClassName" />
+ rootClassName="treeRootClassName"
+ const:treeFolderAction="tb.view"
+ />
</div>
</div>
</div>
@interface UIxMailTree : UIxComponent
{
NSString *rootClassName;
+ NSString *treeFolderAction;
id rootNodes;
id item;
}
}
- (void)dealloc {
- [self->rootClassName release];
+ [self->treeFolderAction release];
+ [self->rootClassName release];
[self->rootNodes release];
[self->item release];
[super dealloc];
return self->item;
}
+- (void)setTreeFolderAction:(NSString *)_action {
+ ASSIGNCOPY(self->treeFolderAction, _action);
+}
+- (NSString *)treeFolderAction {
+ return self->treeFolderAction;
+}
+
- (NSString *)itemIconName {
// TODO: only called once!
NSString *ftype;
unsigned i, count;
if ((names = [_object toManyRelationshipKeys]) == nil) {
- [self logWithFormat:@"no to-many: %@", _object];
+ if (debugBlocks) [self logWithFormat:@"no to-many: %@", _object];
return nil;
}
- (NSString *)treeNavigationLinkForObject:(id)_object atDepth:(int)_depth {
NSString *link;
unsigned i;
-
+
link = [[_object nameInContainer] stringByAppendingString:@"/"];
+ link = [link stringByAppendingString:[self treeFolderAction]];
+
+ switch (_depth) {
+ case 0: return link;
+ case 1: return [@"../" stringByAppendingString:link];
+ case 2: return [@"../../" stringByAppendingString:link];
+ case 3: return [@"../../../" stringByAppendingString:link];
+ }
+
for (i = 0; i < _depth; i++)
link = [@"../" stringByAppendingString:link];
return link;
*_t = [_object davDisplayName];
*_icon = nil;
+
+ if ([_object isKindOfClass:NSClassFromString(@"SOGoMailFolder")])
+ *_icon = nil;
+ else if ([_object isKindOfClass:NSClassFromString(@"SOGoMailAccount")])
+ *_icon = @"tbtv_inbox_17x17.gif";
+ else if ([_object isKindOfClass:NSClassFromString(@"SOGoMailAccounts")])
+ *_icon = @"tbtv_inbox_17x17.gif";
+ else if ([_object isKindOfClass:NSClassFromString(@"SOGoUserFolder")])
+ *_icon = @"tbtv_inbox_17x17.gif";
+ else {
+ // TODO: use drafts icon for other SOGo folders
+ *_icon = @"tbtv_drafts_17x17.gif";
+ }
+
return;
}
folders = [self fetchSubfoldersOfObject:_object];
count = [folders count];
- blocks = [NSMutableArray arrayWithCapacity:count];
+ blocks = [NSMutableArray arrayWithCapacity:count == 0 ? 1 : count];
for (i = 0; i < count; i++) {
UIxMailTreeBlock *block;
id folder;
if ([block isNotNull]) [blocks addObject:block];
}
- if ([blocks count] == 0) blocks = nil;
+ if ([blocks count] == 0) {
+ if (_activeChildBlock != nil) // if the parent has no proper fetchmethod!
+ [blocks addObject:_activeChildBlock];
+ else
+ blocks = nil;
+ }
/* build block */
# version file
-SUBMINOR_VERSION:=106
+SUBMINOR_VERSION:=107
# v0.9.100 requires libNGMime v4.5.213
# v0.9.99 requires libNGMime v4.5.212
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
-// $Id$
#import <Foundation/Foundation.h>
"title_thread.png",
"title_sortdown_12x12.png",
"title_sortup_12x12.png",
-
- "tbird_073_accountview.png",
- "tbird_073_compose.png",
- "tbird_073_mailwelcome.png",
- "tbird_073_settings.png",
- "tbird_073_viewer.png",
);
factories = {
protectedBy = "View";
pageName = "UIxMailListView";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxMailListView";
+ };
index = {
protectedBy = "View";
pageName = "UIxMailListView";
protectedBy = "View";
pageName = "UIxMailView";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxMailView";
+ };
getMail = {
protectedBy = "View";
protectedBy = "View";
pageName = "UIxMailAccountsView";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxMailAccountsView";
+ };
};
};
protectedBy = "View";
pageName = "UIxMailAccountView";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxMailAccountView";
+ };
addressbook = {
protectedBy = "View";
pageName = "UIxMailAddressbook";
protectedBy = "View";
pageName = "UIxMailListView";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxMailListView";
+ };
getMail = {
protectedBy = "View";
pageName = "UIxMailListView";
protectedBy = "View";
pageName = "UIxMailEditor";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxMailEditor";
+ };
edit = {
protectedBy = "View";
pageName = "UIxMailEditor";
protectedBy = "View";
pageName = "UIxFilterList";
};
+ "tb.view" = { /* primary entry for mailer actions */
+ protectedBy = "View";
+ pageName = "UIxFilterList";
+ };
create = {
protectedBy = "View";
pageName = "UIxFilterList";