diff --git a/Main/SOGo.m b/Main/SOGo.m index 4274d8385..1e361bc7d 100644 --- a/Main/SOGo.m +++ b/Main/SOGo.m @@ -72,10 +72,10 @@ static BOOL doCrashOnSessionCreate = NO; [[self soClassSecurityInfo] setDefaultAccess:@"allow"]; /* require Authenticated role for View and WebDAV */ - [[self soClassSecurityInfo] declareRole:SoRole_Authenticated - asDefaultForPermission:SoPerm_View]; - [[self soClassSecurityInfo] declareRole:SoRole_Authenticated - asDefaultForPermission:SoPerm_WebDAVAccess]; + [[self soClassSecurityInfo] declareRole: SoRole_Authenticated + asDefaultForPermission: SoPerm_View]; + [[self soClassSecurityInfo] declareRole: SoRole_Authenticated + asDefaultForPermission: SoPerm_WebDAVAccess]; } - (id)init { @@ -124,6 +124,8 @@ static BOOL doCrashOnSessionCreate = NO; } - (id)lookupUser:(NSString *)_key inContext:(id)_ctx { + + NSLog (@"lookupUser: %@", _key); return [[[NSClassFromString(@"SOGoUserFolder") alloc] initWithName:_key inContainer:self] autorelease]; } diff --git a/Main/SOGoProductLoader.m b/Main/SOGoProductLoader.m index 2d994ea2a..f53fa07ba 100644 --- a/Main/SOGoProductLoader.m +++ b/Main/SOGoProductLoader.m @@ -143,7 +143,7 @@ registry = [SoProductRegistry sharedProductRegistry]; fm = [NSFileManager defaultManager]; - + pathes = [[self productSearchPathes] objectEnumerator]; while ((lpath = [pathes nextObject]) != nil) { NSEnumerator *productNames; diff --git a/UI/Common/GNUmakefile b/UI/Common/GNUmakefile index 73ba23129..21e239e5b 100644 --- a/UI/Common/GNUmakefile +++ b/UI/Common/GNUmakefile @@ -23,7 +23,8 @@ CommonUI_OBJC_FILES += \ UIxTabView.m \ UIxTabItem.m \ \ - UIxToolbar.m + UIxToolbar.m \ + UIxUserLogoff.m CommonUI_RESOURCE_FILES += \ Version \ diff --git a/UI/Common/UIxPageFrame.m b/UI/Common/UIxPageFrame.m index d7949b1ff..a758d95ae 100644 --- a/UI/Common/UIxPageFrame.m +++ b/UI/Common/UIxPageFrame.m @@ -43,7 +43,7 @@ if ([self isUIxDebugEnabled]) return self->title; - return [self labelForKey:@"OpenGroupware.org"]; + return [self labelForKey: @"OpenGroupware.org"]; } - (void)setItem:(id)_item { @@ -60,10 +60,10 @@ /* Help URL/target */ - (NSString *)helpURL { - return [NSString stringWithFormat:@"help/%@.html", self->title]; + return [NSString stringWithFormat: @"help/%@.html", self->title]; } - (NSString *)helpWindowTarget { - return [NSString stringWithFormat:@"Help_%@", self->title]; + return [NSString stringWithFormat: @"Help_%@", self->title]; } @@ -78,19 +78,23 @@ // TODO: I think all this should be done by the clientObject?! - (NSString *)relativeHomePath { - return [self relativePathToUserFolderSubPath:@""]; + return [self relativePathToUserFolderSubPath: @""]; } - (NSString *)relativeCalendarPath { - return [self relativePathToUserFolderSubPath:@"Calendar/"]; + return [self relativePathToUserFolderSubPath: @"Calendar/"]; } - (NSString *)relativeContactsPath { - return [self relativePathToUserFolderSubPath:@"Contacts/"]; + return [self relativePathToUserFolderSubPath: @"Contacts/"]; } - (NSString *)relativeMailPath { - return [self relativePathToUserFolderSubPath:@"Mail/"]; + return [self relativePathToUserFolderSubPath: @"Mail/"]; +} + +- (NSString *)logoffPath { + return [self relativePathToUserFolderSubPath: @"logoff"]; } /* page based JavaScript */ @@ -132,7 +136,7 @@ pageToURL = [[NSMutableDictionary alloc] initWithCapacity:32]; rm = [self pageResourceManager]; - jsname = [pageName stringByAppendingString:@".js"]; + jsname = [pageName stringByAppendingString: @".js"]; url = [rm urlForResourceNamed: jsname inFramework: [[NSBundle bundleForClass: [page class]] bundlePath] @@ -164,7 +168,7 @@ pageToURL = [[NSMutableDictionary alloc] initWithCapacity:32]; rm = [self pageResourceManager]; - jsname = [[page frameworkName] stringByAppendingString:@".js"]; + jsname = [[page frameworkName] stringByAppendingString: @".js"]; url = [rm urlForResourceNamed: jsname inFramework: [[NSBundle bundleForClass: [page class]] bundlePath] diff --git a/UI/Common/product.plist b/UI/Common/product.plist index 760ed709a..390b6120a 100644 --- a/UI/Common/product.plist +++ b/UI/Common/product.plist @@ -14,7 +14,7 @@ box_left.gif, box_right.gif, box_botleft.gif, - box_bottom.gif, + box_bottom.gi88f, box_botright.gif, tab_selected.gif, tab_.gif, @@ -30,6 +30,15 @@ }; categories = { + SOGoUserLogin = { + methods = { + logoff = { + protectedBy = "View"; + pageName = "UIxUserLogoff"; + actionName = "logoffUser"; + } + }; + }; SOGoObject = { methods = { }; diff --git a/UI/MailerUI/UIxMailListView.m b/UI/MailerUI/UIxMailListView.m index b1008343a..a6b09cc7d 100644 --- a/UI/MailerUI/UIxMailListView.m +++ b/UI/MailerUI/UIxMailListView.m @@ -136,11 +136,14 @@ static int attachmentFlagSize = 8096; return [[[self message] valueForKey:@"uid"] stringValue]; } -- (NSString *)messageSubjectStyleClass { - return [self isMessageRead] - ? @"mailer_readmailsubject" - : @"mailer_unreadmailsubject"; +- (NSString *)messageSubjectCellStyleClass { + return [NSString stringWithFormat: @"%@ %@", + [self messageCellStyleClass], + ([self isMessageRead] + ? @"mailer_readmailsubject" + : @"mailer_unreadmailsubject")]; } + - (NSString *)messageCellStyleClass { return [self isMessageDeleted] ? @"mailer_listcell_deleted" @@ -322,25 +325,25 @@ static int attachmentFlagSize = 8096; /* JavaScript */ -- (NSString *)msgRowID { +- (NSString *)msgRowID +{ return [@"row_" stringByAppendingString:[self messageUidString]]; } -- (NSString *)msgDivID { + +- (NSString *)msgDivID +{ return [@"div_" stringByAppendingString:[self messageUidString]]; } -- (NSString *)msgIconReadDivID { +- (NSString *)msgIconReadImgID +{ return [@"readdiv_" stringByAppendingString:[self messageUidString]]; } -- (NSString *)msgIconUnreadDivID { + +- (NSString *)msgIconUnreadImgID +{ return [@"unreaddiv_" stringByAppendingString:[self messageUidString]]; } -- (NSString *)msgIconReadVisibility { - return [self isMessageRead] ? nil : @"display: none;"; -} -- (NSString *)msgIconUnreadVisibility { - return [self isMessageRead] ? @"display: none;" : nil; -} - (NSString *)clickedMsgJS { /* return 'false' aborts processing */ diff --git a/UI/MainUI/SOGoUserHomePage.m b/UI/MainUI/SOGoUserHomePage.m index 564fe0d2a..de90f20ad 100644 --- a/UI/MainUI/SOGoUserHomePage.m +++ b/UI/MainUI/SOGoUserHomePage.m @@ -153,7 +153,9 @@ static NSArray *internetAccessStates = nil; } - (NSString *)relativeMailPath { - return [self relativePathToUserFolderSubPath:@"Mail/"]; + return [NSString stringWithFormat: @"%@%@/view", + [self relativePathToUserFolderSubPath:@"Mail/"], + [self emailForUser]]; } /* objects */ diff --git a/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox b/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox index 7e8d5f4cc..3a65c7eb8 100644 --- a/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox +++ b/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox @@ -1,9 +1,9 @@ -
+>