MOBILE-4362 user: Fix timezone names
parent
b39bd13227
commit
4cee48ff8b
|
@ -120,11 +120,7 @@ export class CoreUserAboutPage implements OnInit, OnDestroy {
|
||||||
|
|
||||||
this.user.address = CoreUserHelper.formatAddress('', user.city, user.country);
|
this.user.address = CoreUserHelper.formatAddress('', user.city, user.country);
|
||||||
|
|
||||||
const serverTimezone = CoreSites.getCurrentSite()?.getStoredConfig('timezone');
|
this.fillTimezone();
|
||||||
this.displayTimezone = !!serverTimezone;
|
|
||||||
if (this.displayTimezone && this.user.timezone === USER_PROFILE_SERVER_TIMEZONE) {
|
|
||||||
this.user.timezone = serverTimezone;
|
|
||||||
}
|
|
||||||
|
|
||||||
await this.checkUserImageUpdated();
|
await this.checkUserImageUpdated();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -261,6 +257,30 @@ export class CoreUserAboutPage implements OnInit, OnDestroy {
|
||||||
return avatarUrl;
|
return avatarUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fill user timezone depending on the server and fix the legacy timezones.
|
||||||
|
*/
|
||||||
|
protected fillTimezone(): void {
|
||||||
|
if (!this.user) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const serverTimezone = CoreSites.getRequiredCurrentSite().getStoredConfig('timezone');
|
||||||
|
this.displayTimezone = !!serverTimezone;
|
||||||
|
|
||||||
|
if (!this.displayTimezone) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.user.timezone === USER_PROFILE_SERVER_TIMEZONE) {
|
||||||
|
this.user.timezone = serverTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.user.timezone) {
|
||||||
|
this.user.timezone = CoreUserHelper.translateLegacyTimezone(this.user.timezone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open a user interest.
|
* Open a user interest.
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,6 +25,63 @@ import { CoreUserProfile, CoreUserRole } from './user';
|
||||||
@Injectable({ providedIn: 'root' })
|
@Injectable({ providedIn: 'root' })
|
||||||
export class CoreUserHelperProvider {
|
export class CoreUserHelperProvider {
|
||||||
|
|
||||||
|
protected static readonly LEGACY_TIMEZONES = {
|
||||||
|
'-13.0': 'Australia/Perth',
|
||||||
|
'-12.5': 'Etc/GMT+12',
|
||||||
|
'-12.0': 'Etc/GMT+12',
|
||||||
|
'-11.5': 'Etc/GMT+11',
|
||||||
|
'-11.0': 'Etc/GMT+11',
|
||||||
|
'-10.5': 'Etc/GMT+10',
|
||||||
|
'-10.0': 'Etc/GMT+10',
|
||||||
|
'-9.5': 'Etc/GMT+9',
|
||||||
|
'-9.0': 'Etc/GMT+9',
|
||||||
|
'-8.5': 'Etc/GMT+8',
|
||||||
|
'-8.0': 'Etc/GMT+8',
|
||||||
|
'-7.5': 'Etc/GMT+7',
|
||||||
|
'-7.0': 'Etc/GMT+7',
|
||||||
|
'-6.5': 'Etc/GMT+6',
|
||||||
|
'-6.0': 'Etc/GMT+6',
|
||||||
|
'-5.5': 'Etc/GMT+5',
|
||||||
|
'-5.0': 'Etc/GMT+5',
|
||||||
|
'-4.5': 'Etc/GMT+4',
|
||||||
|
'-4.0': 'Etc/GMT+4',
|
||||||
|
'-3.5': 'Etc/GMT+3',
|
||||||
|
'-3.0': 'Etc/GMT+3',
|
||||||
|
'-2.5': 'Etc/GMT+2',
|
||||||
|
'-2.0': 'Etc/GMT+2',
|
||||||
|
'-1.5': 'Etc/GMT+1',
|
||||||
|
'-1.0': 'Etc/GMT+1',
|
||||||
|
'-0.5': 'Etc/GMT',
|
||||||
|
'0': 'Etc/GMT',
|
||||||
|
'0.0': 'Etc/GMT',
|
||||||
|
'0.5': 'Etc/GMT',
|
||||||
|
'1.0': 'Etc/GMT-1',
|
||||||
|
'1.5': 'Etc/GMT-1',
|
||||||
|
'2.0': 'Etc/GMT-2',
|
||||||
|
'2.5': 'Etc/GMT-2',
|
||||||
|
'3.0': 'Etc/GMT-3',
|
||||||
|
'3.5': 'Etc/GMT-3',
|
||||||
|
'4.0': 'Etc/GMT-4',
|
||||||
|
'4.5': 'Asia/Kabul',
|
||||||
|
'5.0': 'Etc/GMT-5',
|
||||||
|
'5.5': 'Asia/Kolkata',
|
||||||
|
'6.0': 'Etc/GMT-6',
|
||||||
|
'6.5': 'Asia/Rangoon',
|
||||||
|
'7.0': 'Etc/GMT-7',
|
||||||
|
'7.5': 'Etc/GMT-7',
|
||||||
|
'8.0': 'Etc/GMT-8',
|
||||||
|
'8.5': 'Etc/GMT-8',
|
||||||
|
'9.0': 'Etc/GMT-9',
|
||||||
|
'9.5': 'Australia/Darwin',
|
||||||
|
'10.0': 'Etc/GMT-10',
|
||||||
|
'10.5': 'Etc/GMT-10',
|
||||||
|
'11.0': 'Etc/GMT-11',
|
||||||
|
'11.5': 'Etc/GMT-11',
|
||||||
|
'12.0': 'Etc/GMT-12',
|
||||||
|
'12.5': 'Etc/GMT-12',
|
||||||
|
'13.0': 'Etc/GMT-13',
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats a user address, concatenating address, city and country.
|
* Formats a user address, concatenating address, city and country.
|
||||||
*
|
*
|
||||||
|
@ -98,6 +155,16 @@ export class CoreUserHelperProvider {
|
||||||
return (user.firstname?.charAt(0) || '') + (user.lastname?.charAt(0) || '');
|
return (user.firstname?.charAt(0) || '') + (user.lastname?.charAt(0) || '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translates legacy timezone names.
|
||||||
|
*
|
||||||
|
* @param tz Timezone name.
|
||||||
|
* @returns Readable timezone name.
|
||||||
|
*/
|
||||||
|
translateLegacyTimezone(tz: string): string {
|
||||||
|
return CoreUserHelperProvider.LEGACY_TIMEZONES[tz] ?? tz;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CoreUserHelper = makeSingleton(CoreUserHelperProvider);
|
export const CoreUserHelper = makeSingleton(CoreUserHelperProvider);
|
||||||
|
|
Loading…
Reference in New Issue