merge of '792193186b20895dc235fa98dc63de1a0ece0a8f'
and 'bac00846545ecbaa355017083f8a425f751077c7' Monotone-Parent: 792193186b20895dc235fa98dc63de1a0ece0a8f Monotone-Parent: bac00846545ecbaa355017083f8a425f751077c7 Monotone-Revision: 04f60742d08acd7e35bf71da06a72013e783118c Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-12-19T22:14:37 Monotone-Branch: ca.inverse.sogomaint-2.0.2
commit
a621eae38f
|
@ -8,6 +8,13 @@
|
||||||
-recurrenceRangesWithinCalendarDateRange:_r]): idem. Also fixed
|
-recurrenceRangesWithinCalendarDateRange:_r]): idem. Also fixed
|
||||||
the handling of intervals.
|
the handling of intervals.
|
||||||
|
|
||||||
|
2008-12-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
|
* UI/Common/UIxPageFrame.m ([UIxPageFrame -userSettings]): new
|
||||||
|
accessor method to avoid loading the user settings with an
|
||||||
|
additional json request.
|
||||||
|
([UIxPageFrame -userDefaults]): same as above for user defaults.
|
||||||
|
|
||||||
2008-12-17 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
2008-12-17 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
* SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder
|
* SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder
|
||||||
|
|
|
@ -46,7 +46,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
static NSLock *lock;
|
static NSLock *channelLock;
|
||||||
|
static NSLock *adaptorLock;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@interface GCSChannelHandle : NSObject
|
@interface GCSChannelHandle : NSObject
|
||||||
|
@ -89,7 +90,8 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
ChannelCollectionTimer = 5*60;
|
ChannelCollectionTimer = 5*60;
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
lock = [NSLock new];
|
channelLock = [NSLock new];
|
||||||
|
adaptorLock = [NSLock new];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,12 +106,12 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
static GCSChannelManager *cm = nil;
|
static GCSChannelManager *cm = nil;
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock lock];
|
[channelLock lock];
|
||||||
#endif
|
#endif
|
||||||
if (!cm)
|
if (!cm)
|
||||||
cm = [self new];
|
cm = [self new];
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock unlock];
|
[channelLock unlock];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return cm;
|
return cm;
|
||||||
|
@ -125,7 +127,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
|
|
||||||
gcTimer = [[NSTimer scheduledTimerWithTimeInterval:
|
gcTimer = [[NSTimer scheduledTimerWithTimeInterval:
|
||||||
ChannelCollectionTimer
|
ChannelCollectionTimer
|
||||||
target: self selector: @selector (_garbageCollect: )
|
target: self selector: @selector (_garbageCollect:)
|
||||||
userInfo: nil repeats: YES] retain];
|
userInfo: nil repeats: YES] retain];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +202,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
if ((key = [self databaseKeyForURL: _url]))
|
if ((key = [self databaseKeyForURL: _url]))
|
||||||
{
|
{
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock lock];
|
[adaptorLock lock];
|
||||||
#endif
|
#endif
|
||||||
adaptor = [urlToAdaptor objectForKey: key];
|
adaptor = [urlToAdaptor objectForKey: key];
|
||||||
if (adaptor)
|
if (adaptor)
|
||||||
|
@ -209,7 +211,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
{
|
{
|
||||||
[self debugWithFormat: @"creating new adaptor for URL: %@", _url];
|
[self debugWithFormat: @"creating new adaptor for URL: %@", _url];
|
||||||
|
|
||||||
if ([EOAdaptor respondsToSelector: @selector (adaptorForURL: )])
|
if ([EOAdaptor respondsToSelector: @selector (adaptorForURL:)])
|
||||||
adaptor = [EOAdaptor adaptorForURL: _url];
|
adaptor = [EOAdaptor adaptorForURL: _url];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -234,7 +236,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
[urlToAdaptor setObject: adaptor forKey: key];
|
[urlToAdaptor setObject: adaptor forKey: key];
|
||||||
}
|
}
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock unlock];
|
[adaptorLock unlock];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -317,7 +319,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
/* look for cached handles */
|
/* look for cached handles */
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock lock];
|
[channelLock lock];
|
||||||
#endif
|
#endif
|
||||||
handle = [self findAvailChannelHandleForURL: _url];
|
handle = [self findAvailChannelHandleForURL: _url];
|
||||||
if (handle)
|
if (handle)
|
||||||
|
@ -364,7 +366,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock unlock];
|
[channelLock unlock];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return channel;
|
return channel;
|
||||||
|
@ -375,7 +377,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
GCSChannelHandle *handle;
|
GCSChannelHandle *handle;
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock lock];
|
[channelLock lock];
|
||||||
#endif
|
#endif
|
||||||
handle = [self findBusyChannelHandleForChannel: _channel];
|
handle = [self findBusyChannelHandleForChannel: _channel];
|
||||||
if (handle)
|
if (handle)
|
||||||
|
@ -411,7 +413,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
[_channel release];
|
[_channel release];
|
||||||
}
|
}
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock unlock];
|
[channelLock unlock];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -462,7 +464,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
GCSChannelHandle *handle;
|
GCSChannelHandle *handle;
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock lock];
|
[channelLock lock];
|
||||||
#endif
|
#endif
|
||||||
count = [availableChannels count];
|
count = [availableChannels count];
|
||||||
if (count)
|
if (count)
|
||||||
|
@ -499,7 +501,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
|
||||||
[handlesToRemove release];
|
[handlesToRemove release];
|
||||||
}
|
}
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
[lock unlock];
|
[channelLock unlock];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
#import <Foundation/NSArray.h>
|
#import <Foundation/NSArray.h>
|
||||||
#import <Foundation/NSDictionary.h>
|
#import <Foundation/NSDictionary.h>
|
||||||
|
#import <Foundation/NSLock.h>
|
||||||
#import <Foundation/NSString.h>
|
#import <Foundation/NSString.h>
|
||||||
#import <Foundation/NSUserDefaults.h>
|
#import <Foundation/NSUserDefaults.h>
|
||||||
|
|
||||||
|
@ -41,6 +42,10 @@ static NSString *LDAPContactInfoAttribute = nil;
|
||||||
static int timeLimit;
|
static int timeLimit;
|
||||||
static int sizeLimit;
|
static int sizeLimit;
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
static NSLock *lock;
|
||||||
|
#endif
|
||||||
|
|
||||||
@implementation LDAPSource
|
@implementation LDAPSource
|
||||||
|
|
||||||
+ (void) initialize
|
+ (void) initialize
|
||||||
|
@ -126,6 +131,10 @@ static int sizeLimit;
|
||||||
@"calFBURL", @"proxyAddresses",
|
@"calFBURL", @"proxyAddresses",
|
||||||
nil];
|
nil];
|
||||||
[commonSearchFields retain];
|
[commonSearchFields retain];
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
lock = [NSLock new];
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,6 +321,10 @@ static int sizeLimit;
|
||||||
NSString *userDN;
|
NSString *userDN;
|
||||||
NGLdapConnection *bindConnection;
|
NGLdapConnection *bindConnection;
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock lock];
|
||||||
|
#endif
|
||||||
|
|
||||||
didBind = NO;
|
didBind = NO;
|
||||||
|
|
||||||
if ([loginToCheck length] > 0)
|
if ([loginToCheck length] > 0)
|
||||||
|
@ -337,6 +350,10 @@ static int sizeLimit;
|
||||||
[bindConnection release];
|
[bindConnection release];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock unlock];
|
||||||
|
#endif
|
||||||
|
|
||||||
return didBind;
|
return didBind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -431,6 +448,10 @@ static int sizeLimit;
|
||||||
NGLdapEntry *currentEntry;
|
NGLdapEntry *currentEntry;
|
||||||
NSString *value;
|
NSString *value;
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock lock];
|
||||||
|
#endif
|
||||||
|
|
||||||
ids = [NSMutableArray array];
|
ids = [NSMutableArray array];
|
||||||
|
|
||||||
if ([self _initLDAPConnection])
|
if ([self _initLDAPConnection])
|
||||||
|
@ -455,6 +476,10 @@ static int sizeLimit;
|
||||||
|
|
||||||
[ldapConnection autorelease];
|
[ldapConnection autorelease];
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock unlock];
|
||||||
|
#endif
|
||||||
|
|
||||||
return ids;
|
return ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -552,6 +577,10 @@ static int sizeLimit;
|
||||||
NGLdapEntry *currentEntry;
|
NGLdapEntry *currentEntry;
|
||||||
NSEnumerator *entries;
|
NSEnumerator *entries;
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock lock];
|
||||||
|
#endif
|
||||||
|
|
||||||
contacts = [NSMutableArray array];
|
contacts = [NSMutableArray array];
|
||||||
|
|
||||||
if ([match length] > 0)
|
if ([match length] > 0)
|
||||||
|
@ -571,6 +600,10 @@ static int sizeLimit;
|
||||||
[ldapConnection release];
|
[ldapConnection release];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock unlock];
|
||||||
|
#endif
|
||||||
|
|
||||||
return contacts;
|
return contacts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -579,6 +612,10 @@ static int sizeLimit;
|
||||||
NSDictionary *contactEntry;
|
NSDictionary *contactEntry;
|
||||||
NGLdapEntry *ldapEntry;
|
NGLdapEntry *ldapEntry;
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock lock];
|
||||||
|
#endif
|
||||||
|
|
||||||
contactEntry = nil;
|
contactEntry = nil;
|
||||||
|
|
||||||
if ([entryID length] > 0)
|
if ([entryID length] > 0)
|
||||||
|
@ -597,6 +634,10 @@ static int sizeLimit;
|
||||||
[ldapConnection autorelease];
|
[ldapConnection autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock unlock];
|
||||||
|
#endif
|
||||||
|
|
||||||
return contactEntry;
|
return contactEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,6 +648,10 @@ static int sizeLimit;
|
||||||
NSEnumerator *entries;
|
NSEnumerator *entries;
|
||||||
EOQualifier *qualifier;
|
EOQualifier *qualifier;
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock lock];
|
||||||
|
#endif
|
||||||
|
|
||||||
contactEntry = nil;
|
contactEntry = nil;
|
||||||
|
|
||||||
if ([uid length] > 0)
|
if ([uid length] > 0)
|
||||||
|
@ -628,6 +673,10 @@ static int sizeLimit;
|
||||||
[ldapConnection release];
|
[ldapConnection release];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(THREADSAFE)
|
||||||
|
[lock unlock];
|
||||||
|
#endif
|
||||||
|
|
||||||
return contactEntry;
|
return contactEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ static BOOL defaultMailDomainIsConfigured = NO;
|
||||||
static BOOL forceImapLoginWithEmail = NO;
|
static BOOL forceImapLoginWithEmail = NO;
|
||||||
|
|
||||||
#if defined(THREADSAFE)
|
#if defined(THREADSAFE)
|
||||||
static NSLock *lock;
|
static NSLock *lock = nil;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@implementation LDAPUserManager
|
@implementation LDAPUserManager
|
||||||
|
@ -134,13 +134,14 @@ static NSLock *lock;
|
||||||
|
|
||||||
udSources = [ud arrayForKey: @"SOGoLDAPSources"];
|
udSources = [ud arrayForKey: @"SOGoLDAPSources"];
|
||||||
|
|
||||||
if (udSources && [udSources isKindOfClass: [NSArray class]]) {
|
if (udSources && [udSources isKindOfClass: [NSArray class]])
|
||||||
max = [udSources count];
|
{
|
||||||
for (count = 0; count < max; count++)
|
max = [udSources count];
|
||||||
[self _registerSource: [udSources objectAtIndex: count]];
|
for (count = 0; count < max; count++)
|
||||||
} else {
|
[self _registerSource: [udSources objectAtIndex: count]];
|
||||||
|
}
|
||||||
|
else
|
||||||
[self errorWithFormat: @"SOGoLDAPSources is not defined or it is not an array. Check your defaults."];
|
[self errorWithFormat: @"SOGoLDAPSources is not defined or it is not an array. Check your defaults."];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) init
|
- (id) init
|
||||||
|
|
|
@ -244,9 +244,7 @@ _timeValue (NSString *key)
|
||||||
LDAPUserManager *um;
|
LDAPUserManager *um;
|
||||||
NSString *realUID;
|
NSString *realUID;
|
||||||
|
|
||||||
if (// acceptAnyUser
|
if ([newLogin isEqualToString: @"anonymous"]
|
||||||
// ||
|
|
||||||
[newLogin isEqualToString: @"anonymous"]
|
|
||||||
|| [newLogin isEqualToString: @"freebusy"])
|
|| [newLogin isEqualToString: @"freebusy"])
|
||||||
realUID = newLogin;
|
realUID = newLogin;
|
||||||
else
|
else
|
||||||
|
|
|
@ -397,6 +397,34 @@
|
||||||
return language;
|
return language;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSString *) userSettings
|
||||||
|
{
|
||||||
|
NSUserDefaults *userSettings;
|
||||||
|
NSString *jsonResult;
|
||||||
|
|
||||||
|
userSettings = [[context activeUser] userSettings];
|
||||||
|
if (userSettings)
|
||||||
|
jsonResult = [userSettings jsonRepresentation];
|
||||||
|
else
|
||||||
|
jsonResult = @"{}";
|
||||||
|
|
||||||
|
return jsonResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *) userDefaults
|
||||||
|
{
|
||||||
|
NSUserDefaults *userDefaults;
|
||||||
|
NSString *jsonResult;
|
||||||
|
|
||||||
|
userDefaults = [[context activeUser] userDefaults];
|
||||||
|
if (userDefaults)
|
||||||
|
jsonResult = [userDefaults jsonRepresentation];
|
||||||
|
else
|
||||||
|
jsonResult = @"{}";
|
||||||
|
|
||||||
|
return jsonResult;
|
||||||
|
}
|
||||||
|
|
||||||
/* browser/os identification */
|
/* browser/os identification */
|
||||||
|
|
||||||
- (BOOL) isCompatibleBrowser
|
- (BOOL) isCompatibleBrowser
|
||||||
|
|
|
@ -88,6 +88,12 @@
|
||||||
|
|
||||||
categories = {
|
categories = {
|
||||||
SOGo = { // TODO: move decls to class
|
SOGo = { // TODO: move decls to class
|
||||||
|
slots = {
|
||||||
|
toolbar = {
|
||||||
|
value = "none"; // keep this in order to avoid lookups on username
|
||||||
|
// "toolbar"
|
||||||
|
};
|
||||||
|
};
|
||||||
methods = {
|
methods = {
|
||||||
view = {
|
view = {
|
||||||
protectedBy = "<public>";
|
protectedBy = "<public>";
|
||||||
|
|
|
@ -108,9 +108,11 @@
|
||||||
</var:if>
|
</var:if>
|
||||||
<var:if condition="shortUserNameForDisplay" const:value="anonymous"
|
<var:if condition="shortUserNameForDisplay" const:value="anonymous"
|
||||||
const:negate="YES"
|
const:negate="YES"
|
||||||
>var UserFolderURL = '<var:string value="userFolderPath" />';
|
>var UserFolderURL = '<var:string value="userFolderPath" const:escapeHTML="NO"/>';
|
||||||
var UserLogin = '<var:string value="shortUserNameForDisplay" />';
|
var UserLogin = '<var:string value="shortUserNameForDisplay" const:escapeHTML="NO"/>';
|
||||||
var UserLanguage = '<var:string value="userLanguage" />';</var:if>
|
var UserLanguage = '<var:string value="userLanguage" const:escapeHTML="NO"/>';
|
||||||
|
var UserSettings = <var:string value="userSettings" const:escapeHTML="NO"/>;
|
||||||
|
var UserDefaults = <var:string value="userDefaults" const:escapeHTML="NO"/>;</var:if>
|
||||||
<var:string value="commonLocalizableStrings" const:escapeHTML="NO"/>
|
<var:string value="commonLocalizableStrings" const:escapeHTML="NO"/>
|
||||||
<var:string value="productLocalizableStrings" const:escapeHTML="NO"/>
|
<var:string value="productLocalizableStrings" const:escapeHTML="NO"/>
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -583,7 +583,7 @@ function messageListCallback(http) {
|
||||||
var div = $('mailboxContent');
|
var div = $('mailboxContent');
|
||||||
var table = $('messageList');
|
var table = $('messageList');
|
||||||
|
|
||||||
var columnsOrder = userSettings["SOGoMailListViewColumnsOrder"];
|
var columnsOrder = UserSettings["SOGoMailListViewColumnsOrder"];
|
||||||
if ( typeof(columnsOrder) == "undefined" ) {
|
if ( typeof(columnsOrder) == "undefined" ) {
|
||||||
columnsOrder = defaultColumnsOrder;
|
columnsOrder = defaultColumnsOrder;
|
||||||
}
|
}
|
||||||
|
@ -1363,7 +1363,7 @@ function configureMessageListBodyEvents(table) {
|
||||||
// 4 => Unread
|
// 4 => Unread
|
||||||
// 5 => Date
|
// 5 => Date
|
||||||
// 6 => Priority
|
// 6 => Priority
|
||||||
var columnsOrder = userSettings["SOGoMailListViewColumnsOrder"];
|
var columnsOrder = UserSettings["SOGoMailListViewColumnsOrder"];
|
||||||
if ( typeof(columnsOrder) == "undefined" ) {
|
if ( typeof(columnsOrder) == "undefined" ) {
|
||||||
columnsOrder = defaultColumnsOrder;
|
columnsOrder = defaultColumnsOrder;
|
||||||
}
|
}
|
||||||
|
@ -1474,7 +1474,7 @@ function initMailer(event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function initMessageCheckTimer() {
|
function initMessageCheckTimer() {
|
||||||
var messageCheck = userDefaults["MessageCheck"];
|
var messageCheck = UserDefaults["MessageCheck"];
|
||||||
if (messageCheck && messageCheck != "manually") {
|
if (messageCheck && messageCheck != "manually") {
|
||||||
var interval;
|
var interval;
|
||||||
if (messageCheck == "once_per_hour")
|
if (messageCheck == "once_per_hour")
|
||||||
|
|
|
@ -312,7 +312,7 @@ function onTextIEUpdateCursorPos(event) {
|
||||||
|
|
||||||
function onTextFirstFocus() {
|
function onTextFirstFocus() {
|
||||||
var content = this.getValue();
|
var content = this.getValue();
|
||||||
var replyPlacement = userDefaults["ReplyPlacement"];
|
var replyPlacement = UserDefaults["ReplyPlacement"];
|
||||||
|
|
||||||
if (replyPlacement == "above") {
|
if (replyPlacement == "above") {
|
||||||
this.insertBefore(document.createTextNode("\r\r"), this.lastChild);
|
this.insertBefore(document.createTextNode("\r\r"), this.lastChild);
|
||||||
|
@ -547,7 +547,7 @@ function initMailEditor() {
|
||||||
if (sigLimit > -1)
|
if (sigLimit > -1)
|
||||||
MailEditor.signatureLength = (textContent.length - sigLimit);
|
MailEditor.signatureLength = (textContent.length - sigLimit);
|
||||||
}
|
}
|
||||||
if (userDefaults["ReplyPlacement"] != "above") {
|
if (UserDefaults["ReplyPlacement"] != "above") {
|
||||||
textarea.scrollTop = textarea.scrollHeight;
|
textarea.scrollTop = textarea.scrollHeight;
|
||||||
}
|
}
|
||||||
textarea.observe("focus", onTextFirstFocus);
|
textarea.observe("focus", onTextFirstFocus);
|
||||||
|
@ -655,7 +655,7 @@ function lineBreakCount(str){
|
||||||
|
|
||||||
function hasSignature() {
|
function hasSignature() {
|
||||||
try {
|
try {
|
||||||
return(userDefaults.MailAccounts[0].identities[0].signature.length > 0);
|
return(UserDefaults.MailAccounts[0].identities[0].signature.length > 0);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,9 +38,6 @@ var lastClickedRow = -1;
|
||||||
// logArea = null;
|
// logArea = null;
|
||||||
var allDocumentElements = null;
|
var allDocumentElements = null;
|
||||||
|
|
||||||
var userDefaults = null;
|
|
||||||
var userSettings = null;
|
|
||||||
|
|
||||||
// Ajax requests counts
|
// Ajax requests counts
|
||||||
var activeAjaxRequests = 0;
|
var activeAjaxRequests = 0;
|
||||||
var removeFolderRequestCount = 0;
|
var removeFolderRequestCount = 0;
|
||||||
|
@ -1402,7 +1399,7 @@ function indexColor(number) {
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPreferences() {
|
function reloadPreferences() {
|
||||||
var url = UserFolderURL + "jsonDefaults";
|
var url = UserFolderURL + "jsonDefaults";
|
||||||
var http = createHTTPClient();
|
var http = createHTTPClient();
|
||||||
http.open("GET", url, false);
|
http.open("GET", url, false);
|
||||||
|
@ -1410,9 +1407,9 @@ function loadPreferences() {
|
||||||
|
|
||||||
if (http.status == 200) {
|
if (http.status == 200) {
|
||||||
if (http.responseText.length > 0)
|
if (http.responseText.length > 0)
|
||||||
userDefaults = http.responseText.evalJSON(true);
|
UserDefaults = http.responseText.evalJSON(true);
|
||||||
else
|
else
|
||||||
userDefaults = {};
|
UserDefaults = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
url = UserFolderURL + "jsonSettings";
|
url = UserFolderURL + "jsonSettings";
|
||||||
|
@ -1420,15 +1417,13 @@ function loadPreferences() {
|
||||||
http.send("");
|
http.send("");
|
||||||
if (http.status == 200) {
|
if (http.status == 200) {
|
||||||
if (http.responseText.length > 0)
|
if (http.responseText.length > 0)
|
||||||
userSettings = http.responseText.evalJSON(true);
|
UserSettings = http.responseText.evalJSON(true);
|
||||||
else
|
else
|
||||||
userSettings = {};
|
UserSettings = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onLoadHandler(event) {
|
function onLoadHandler(event) {
|
||||||
if (typeof UserLogin != "undefined" && UserLogin != "wrongusernamepassword")
|
|
||||||
loadPreferences();
|
|
||||||
queryParameters = parseQueryParameters('' + window.location);
|
queryParameters = parseQueryParameters('' + window.location);
|
||||||
if (!$(document.body).hasClassName("popup")) {
|
if (!$(document.body).hasClassName("popup")) {
|
||||||
initLogConsole();
|
initLogConsole();
|
||||||
|
|
Loading…
Reference in New Issue