mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-14 01:38:51 +00:00
1
NEWS
1
NEWS
@@ -16,6 +16,7 @@ Bug fixes
|
||||
- [core] newly subscribed calendars are excluded from freebusy (#3354)
|
||||
- [core] strip cr during LDIF import process (#4172)
|
||||
- [web] fixed mail delegation of pristine user accounts (#4160)
|
||||
- [web] respect SOGoLanguage and SOGoSupportedLanguages (#4169)
|
||||
- [eas] fixed opacity in EAS freebusy (#4033)
|
||||
- [eas] set reply/forwarded flags when ReplaceMime is set (#4133)
|
||||
- [eas] remove alarms over EAS if we don't want them (#4059)
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
SOGoEnableDomainBasedUID = NO;
|
||||
|
||||
SOGoLoginModule = "Mail";
|
||||
WODefaultLanguages = ();
|
||||
SOGoLanguage = "English";
|
||||
SOGoSupportedLanguages = (
|
||||
"Arabic",
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#import <NGObjWeb/WOSession.h>
|
||||
|
||||
#import "SOGoDomainDefaults.h"
|
||||
#import "SOGoSystemDefaults.h"
|
||||
#import "SOGoUser.h"
|
||||
#import "SOGoUserDefaults.h"
|
||||
|
||||
@@ -36,34 +37,43 @@
|
||||
- (NSArray *) resourceLookupLanguages
|
||||
{
|
||||
NSMutableArray *languages;
|
||||
NSArray *browserLanguages;
|
||||
NSArray *browserLanguages, *supportedLanguages;
|
||||
SOGoSystemDefaults *sd;
|
||||
SOGoUser *user;
|
||||
NSString *language;
|
||||
|
||||
languages = [NSMutableArray array];
|
||||
user = [self activeUser];
|
||||
|
||||
// Retrieve language parameter
|
||||
language = [[self request] formValueForKey: @"language"];
|
||||
if ([language length] > 0)
|
||||
[languages addObject: language];
|
||||
|
||||
if (!user || [[user login] isEqualToString: @"anonymous"])
|
||||
{
|
||||
// Use browser's languages
|
||||
browserLanguages = [[self request] browserLanguages];
|
||||
[languages addObjectsFromArray: browserLanguages];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use user's language or domain's language
|
||||
language = [[user userDefaults] language];
|
||||
[languages addObject: language];
|
||||
language = [[user domainDefaults] language];
|
||||
[languages addObject: language];
|
||||
}
|
||||
|
||||
// if (activeUser && [activeUser language])
|
||||
// [languages addObject: [activeUser language]];
|
||||
|
||||
// if ([self hasSession])
|
||||
// [languages addObjectsFromArray: [[self session] languages]];
|
||||
// else
|
||||
// [languages addObjectsFromArray: [[self request] browserLanguages]];
|
||||
// Return the first language matching a supported language or the SOGoLanguage
|
||||
// default if none is matching.
|
||||
sd = [SOGoSystemDefaults sharedSystemDefaults];
|
||||
supportedLanguages = [sd supportedLanguages];
|
||||
language = [languages firstObjectCommonWithArray: supportedLanguages];
|
||||
if (!(language && [language isKindOfClass: [NSString class]]))
|
||||
language = [sd stringForKey: @"SOGoLanguage"];
|
||||
|
||||
return languages;
|
||||
return [NSArray arrayWithObject: language];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
NSString *cookieLogin;
|
||||
}
|
||||
|
||||
- (NSArray *) languages;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* SOGOROOTPAGE_H */
|
||||
|
||||
@@ -521,6 +521,16 @@
|
||||
return item;
|
||||
}
|
||||
|
||||
- (BOOL) hasManyLanguages
|
||||
{
|
||||
return [[self languages] count] > 1;
|
||||
}
|
||||
|
||||
- (NSString *) language
|
||||
{
|
||||
return [[context resourceLookupLanguages] objectAtIndex: 0];
|
||||
}
|
||||
|
||||
- (NSArray *) languages
|
||||
{
|
||||
return [[SOGoSystemDefaults sharedSystemDefaults] supportedLanguages];
|
||||
|
||||
@@ -42,20 +42,22 @@
|
||||
<label><var:string label:value="Password"/><br/>
|
||||
<input class="textField" id="password"
|
||||
name="password" type="password" var:value="password" /></label>
|
||||
<var:if condition="hasManyLanguages">
|
||||
<label><var:string label:value="Language"/><br/>
|
||||
<var:popup const:id="language" const:name="language"
|
||||
list="languages"
|
||||
item="item"
|
||||
var:value="item"
|
||||
var:selection="language"
|
||||
string="languageText"
|
||||
label:noSelectionString="choose"
|
||||
/></label>
|
||||
</var:if>
|
||||
<var:if condition="hasLoginDomains">
|
||||
<label><var:string label:value="Domain"/><br/>
|
||||
<var:popup const:id="domain" const:name="domain"
|
||||
list="loginDomains"
|
||||
item="item"
|
||||
var:selection="item"
|
||||
var:value="item"
|
||||
string="item"
|
||||
/></label>
|
||||
|
||||
@@ -24,6 +24,15 @@ function initLogin() {
|
||||
event.stop() });
|
||||
}
|
||||
|
||||
var language = $("language");
|
||||
if (language)
|
||||
language.on("change", function(event) {
|
||||
var value = $("language").value;
|
||||
if (value != "WONoSelectionString")
|
||||
// Reload page
|
||||
window.location.href = ApplicationBaseURL + '/login?language=' + value;
|
||||
});
|
||||
|
||||
var submit = $("submit");
|
||||
submit.observe("click", onLoginClick);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user