Files
mattermost/utils/timezone.go
Chris Duarte 74e703f58d Timezone feature (#8185)
* Add supported timezones into config

Remove Timezone list creation in favor of timezone from configs

Add Timezone field to Users table

Clean up format of SupportedTimezones in config

* Remove unwanted change

* Add test for updating user timezone

* Add empty map[string]string if Timezone is null

* Add EnableTimezoneSelection config

* Revert back to map[string]string for ClientConfig

* Refactor SupportedTimezones into timezones.json

* Include timezones.json in TestConfigFlag

* Add timezone api endpoint

* Bump varchar size to 256 and setMaxSize in user_store

* Refactor LoadConfig to LoadConfig and LoadTimezoneConfig

* Remove unnecessary argument in LoadConfig, mail_test

* Add test for timezone endpoint

* Add license header

* Refactor timezones endpoint to system.go

* Add system base route to timezone endpoint

* db timezone upgrade in db v4.9

* Avoid saving SupportedTimezones to config.json

* Add timezonePath support in config

* Remove EnableTimezoneSelection from config

* Use return statement without return parameter

* Refactor test for SupportedTimezones

* Check for supportedTimezone != nil instead of using len

* Decouple SupportedTimezones out of Config

* Fix failing test

* Add LastTeamIconUpdate back in upgrade.go

* Write timezone config in config_flag_test

* Add code fallback for default timezone support
2018-03-22 09:53:43 -04:00

26 lines
706 B
Go

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package utils
import (
"encoding/json"
"io/ioutil"
"github.com/mattermost/mattermost-server/model"
)
func LoadTimezones(fileName string) model.SupportedTimezones {
var supportedTimezones model.SupportedTimezones
if timezoneFile := FindConfigFile(fileName); timezoneFile == "" {
return model.DefaultSupportedTimezones
} else if raw, err := ioutil.ReadFile(timezoneFile); err != nil {
return model.DefaultSupportedTimezones
} else if err := json.Unmarshal(raw, &supportedTimezones); err != nil {
return model.DefaultSupportedTimezones
} else {
return supportedTimezones
}
}