This commit is contained in:
Ludovic Marcotte
2013-09-16 11:00:40 -04:00
8 changed files with 54 additions and 27 deletions
+6
View File
@@ -66,3 +66,9 @@ ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
Allow from all
</Proxy>
# For apple autoconfiguration
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^/.well-known/caldav/?$ /SOGo/dav [R=301]
</IfModule>
+2
View File
@@ -13,6 +13,8 @@ Bug fixes
- fixed position of red line of current time
- disabled verbose logging of smtp sessions by default
- fixed high CPU usage when there are no available child processes
- fixed crash in dav f/b lookups when using SQL addressbooks (#2418)
- fixed memory consumption issues when doing dav lookups with huge result set
2.0.7 (2013-07-19)
------------------
+3 -1
View File
@@ -294,7 +294,9 @@
contact = [contacts lastObject];
email = [contact valueForKey: @"c_email"];
source = [contact objectForKey: @"source"];
if ([email length] && [source MSExchangeHostname])
if ([email length]
&& [source conformsToProtocol: @protocol (SOGoDNSource)]
&& [source MSExchangeHostname])
{
exchangeFreeBusy = [[MSExchangeFreeBusy alloc] init];
[exchangeFreeBusy autorelease];
+37 -24
View File
@@ -21,6 +21,7 @@
*/
#import <Foundation/NSArray.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSEnumerator.h>
@@ -65,7 +66,7 @@
@"<D:href>"];
[r appendContentString: baseURL];
if (![baseURL hasSuffix: @"/"])
[r appendContentString: @"/"];
[r appendContentString: @"/"];
[r appendContentString: name];
[r appendContentString: @"</D:href>"
@"<D:propstat>"
@@ -89,9 +90,10 @@
- (void) _appendComponentsMatchingFilters: (NSArray *) filters
toResponse: (WOResponse *) response
context: (id) localContext
context: (id) localContext
{
unsigned int count, max;
unsigned int count,i , max;
NSAutoreleasePool *pool;
NSDictionary *currentFilter, *contact;
NSEnumerator *contacts;
NSString *baseURL, *domain;
@@ -103,16 +105,27 @@
for (count = 0; count < max; count++)
{
currentFilter = [filters objectAtIndex: count];
contacts = [[(id<SOGoContactFolder>)self lookupContactsWithFilter: [[currentFilter allValues] lastObject]
onCriteria: @"name_or_address"
sortBy: @"c_givenname"
ordering: NSOrderedDescending
inDomain: domain]
objectEnumerator];
contacts =
[[(id<SOGoContactFolder>)self lookupContactsWithFilter: [[currentFilter allValues] lastObject]
onCriteria: @"name_or_address"
sortBy: @"c_givenname"
ordering: NSOrderedDescending
inDomain: domain] objectEnumerator];
pool = [[NSAutoreleasePool alloc] init];
i = 0;
while ((contact = [contacts nextObject]))
[self _appendObject: contact withBaseURL: baseURL
toREPORTResponse: response];
{
[self _appendObject: contact withBaseURL: baseURL
toREPORTResponse: response];
if (i % 10 == 0)
{
RELEASE(pool);
pool = [[NSAutoreleasePool alloc] init];
}
i++;
}
RELEASE(pool);
}
}
@@ -123,10 +136,10 @@
newString = [theString lowercaseString];
return ([newString isEqualToString: @"sn"]
|| [newString isEqualToString: @"givenname"]
|| [newString isEqualToString: @"email"]
|| [newString isEqualToString: @"mail"]
|| [newString isEqualToString: @"telephonenumber"]);
|| [newString isEqualToString: @"givenname"]
|| [newString isEqualToString: @"email"]
|| [newString isEqualToString: @"mail"]
|| [newString isEqualToString: @"telephonenumber"]);
}
- (NSDictionary *) _parseContactFilter: (id <DOMElement>) filterElement
@@ -145,12 +158,12 @@
ranges = [filterElement getElementsByTagName: @"text-match"];
if ([(NSArray *) ranges count]
&& [(NSArray *) [[ranges objectAtIndex: 0] childNodes] count])
{
filterData = [NSMutableDictionary dictionary];
[filterData setObject: [(NGDOMNode *)[ranges objectAtIndex: 0] textValue]
forKey: [filterElement attribute: @"name"]];
}
&& [(NSArray *) [[ranges objectAtIndex: 0] childNodes] count])
{
filterData = [NSMutableDictionary dictionary];
[filterData setObject: [(NGDOMNode *)[ranges objectAtIndex: 0] textValue]
forKey: [filterElement attribute: @"name"]];
}
}
return filterData;
@@ -166,7 +179,7 @@
filters = [NSMutableArray array];
children = [(NSArray *)[parentNode getElementsByTagName: @"prop-filter"]
objectEnumerator];
objectEnumerator];
while ((node = [children nextObject]))
{
filter = [self _parseContactFilter: node];
@@ -193,7 +206,7 @@
[self _appendComponentsMatchingFilters: filters
toResponse: r
context: queryContext];
context: queryContext];
[r appendContentString: @"</D:multistatus>"];
return r;
@@ -7,6 +7,7 @@
className="UIxPageFrame"
title="title"
const:jsFiles="SOGoAutoCompletion.js"
const:userDefaultsKeys="SOGoMailDisplayRemoteInlineImages"
const:popup="YES">
<script type="text/javascript">
var messageName = '<var:string value="clientObject.relativeImap4Name"/>';
+1 -1
View File
@@ -192,7 +192,7 @@ function onComponentEditorLoad(event) {
initializeClassificationMenu();
var list = $("calendarList");
if (list) {
list.on("change", onChangeCalendar, false);
list.on("change", onChangeCalendar);
list.fire("mousedown");
}
@@ -13,6 +13,9 @@ function initPopupMailer(event) {
configureLoadImagesButton();
configureSignatureFlagImage();
if (UserDefaults["SOGoMailDisplayRemoteInlineImages"] == 'always')
loadRemoteImages();
window.messageUID = mailboxName + "/" + messageName;
handleReturnReceipt();
+1 -1
View File
@@ -115,7 +115,7 @@ function prototypeIfyFilters() {
function _setupEvents() {
var widgets = [ "timezone", "shortDateFormat", "longDateFormat",
"timeFormat", "weekStartDay", "dayStartTime", "dayEndTime",
"firstWeek", "messageCheck", "sortByThreads",
"firstWeek", "messageCheck", "sortByThreads", "displayRemoteInlineImages",
"subscribedFoldersOnly", "language", "defaultCalendar",
"enableVacation" ];
for (var i = 0; i < widgets.length; i++) {