FEATURE: Add user preferences field to select region (#44)
This commit is contained in:
parent
13be89627a
commit
b832232268
|
|
@ -0,0 +1,25 @@
|
|||
import { action } from "@ember/object";
|
||||
import { TIME_ZONE_TO_REGION } from "discourse/plugins/discourse-calendar/lib/regions";
|
||||
|
||||
export default {
|
||||
setupComponent(args, component) {
|
||||
component.setProperties({
|
||||
@action
|
||||
onChange(value) {
|
||||
this.model.set("custom_fields.holidays-region", value);
|
||||
},
|
||||
|
||||
@action
|
||||
useCurrentRegion() {
|
||||
this.model.set(
|
||||
"custom_fields.holidays-region",
|
||||
TIME_ZONE_TO_REGION[moment.tz.guess()] || "us"
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
shouldRender(args, component) {
|
||||
return component.siteSettings.calendar_enabled;
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
import { computed } from "@ember/object";
|
||||
import { HOLIDAY_REGIONS } from "discourse/plugins/discourse-calendar/lib/regions";
|
||||
import I18n from "I18n";
|
||||
import ComboBoxComponent from "select-kit/components/combo-box";
|
||||
|
||||
export default ComboBoxComponent.extend({
|
||||
pluginApiIdentifiers: ["timezone-input"],
|
||||
classNames: ["timezone-input"],
|
||||
|
||||
selectKitOptions: {
|
||||
filterable: true,
|
||||
allowAny: false
|
||||
},
|
||||
|
||||
content: computed(function() {
|
||||
const localeNames = {};
|
||||
JSON.parse(this.siteSettings.available_locales).forEach(locale => {
|
||||
localeNames[locale.value] = locale.name;
|
||||
});
|
||||
|
||||
return HOLIDAY_REGIONS.map(region => {
|
||||
return {
|
||||
name: I18n.t(`discourse_calendar.region.names.${region}`),
|
||||
id: region
|
||||
};
|
||||
});
|
||||
})
|
||||
});
|
||||
|
|
@ -0,0 +1,454 @@
|
|||
// DO NOT EDIT THIS FILE!!!
|
||||
// Update it by running `rake javascript:update_constants`
|
||||
|
||||
export const HOLIDAY_REGIONS = [
|
||||
"ar",
|
||||
"at",
|
||||
"au",
|
||||
"au_nsw",
|
||||
"au_vic",
|
||||
"au_qld",
|
||||
"au_nt",
|
||||
"au_act",
|
||||
"au_sa",
|
||||
"au_wa",
|
||||
"au_tas",
|
||||
"au_tas_south",
|
||||
"au_qld_cairns",
|
||||
"au_qld_brisbane",
|
||||
"au_tas_north",
|
||||
"au_vic_melbourne",
|
||||
"be_fr",
|
||||
"be_nl",
|
||||
"br",
|
||||
"bg_en",
|
||||
"bg_bg",
|
||||
"ca",
|
||||
"ca_qc",
|
||||
"ca_ab",
|
||||
"ca_sk",
|
||||
"ca_on",
|
||||
"ca_bc",
|
||||
"ca_nb",
|
||||
"ca_mb",
|
||||
"ca_ns",
|
||||
"ca_pe",
|
||||
"ca_nl",
|
||||
"ca_nt",
|
||||
"ca_nu",
|
||||
"ca_yt",
|
||||
"us",
|
||||
"ch_zh",
|
||||
"ch_be",
|
||||
"ch_lu",
|
||||
"ch_ur",
|
||||
"ch_sz",
|
||||
"ch_ow",
|
||||
"ch_nw",
|
||||
"ch_gl",
|
||||
"ch_zg",
|
||||
"ch_fr",
|
||||
"ch_so",
|
||||
"ch_bs",
|
||||
"ch_bl",
|
||||
"ch_sh",
|
||||
"ch_ar",
|
||||
"ch_ai",
|
||||
"ch_sg",
|
||||
"ch_gr",
|
||||
"ch_ag",
|
||||
"ch_tg",
|
||||
"ch_ti",
|
||||
"ch_vd",
|
||||
"ch_ne",
|
||||
"ch_ge",
|
||||
"ch_ju",
|
||||
"ch_vs",
|
||||
"ch",
|
||||
"cl",
|
||||
"co",
|
||||
"cr",
|
||||
"cz",
|
||||
"dk",
|
||||
"de",
|
||||
"de_bw",
|
||||
"de_by",
|
||||
"de_he",
|
||||
"de_nw",
|
||||
"de_rp",
|
||||
"de_sl",
|
||||
"de_sn_sorbian",
|
||||
"de_th_cath",
|
||||
"de_sn",
|
||||
"de_st",
|
||||
"de_be",
|
||||
"de_by_cath",
|
||||
"de_by_augsburg",
|
||||
"de_bb",
|
||||
"de_mv",
|
||||
"de_th",
|
||||
"de_hb",
|
||||
"de_hh",
|
||||
"de_ni",
|
||||
"de_sh",
|
||||
"ee",
|
||||
"el",
|
||||
"es_pv",
|
||||
"es_na",
|
||||
"es_an",
|
||||
"es_ib",
|
||||
"es_cm",
|
||||
"es_mu",
|
||||
"es_m",
|
||||
"es_ar",
|
||||
"es_cl",
|
||||
"es_cn",
|
||||
"es_lo",
|
||||
"es_ga",
|
||||
"es_ce",
|
||||
"es_o",
|
||||
"es_ex",
|
||||
"es",
|
||||
"es_ct",
|
||||
"es_v",
|
||||
"es_vc",
|
||||
"fi",
|
||||
"fr_a",
|
||||
"fr_m",
|
||||
"fr",
|
||||
"gb",
|
||||
"gb_eng",
|
||||
"gb_wls",
|
||||
"gb_eaw",
|
||||
"gb_nir",
|
||||
"je",
|
||||
"gb_jsy",
|
||||
"gg",
|
||||
"gb_gsy",
|
||||
"gb_sct",
|
||||
"gb_con",
|
||||
"im",
|
||||
"gb_iom",
|
||||
"ge",
|
||||
"hr",
|
||||
"hk",
|
||||
"hu",
|
||||
"ie",
|
||||
"is",
|
||||
"it",
|
||||
"it_ve",
|
||||
"it_tv",
|
||||
"it_vr",
|
||||
"it_pd",
|
||||
"it_fi",
|
||||
"it_ge",
|
||||
"it_to",
|
||||
"it_rm",
|
||||
"it_vi",
|
||||
"it_bl",
|
||||
"it_ro",
|
||||
"kr",
|
||||
"li",
|
||||
"lt",
|
||||
"lv",
|
||||
"ma",
|
||||
"mt_mt",
|
||||
"mt_en",
|
||||
"mx",
|
||||
"mx_pue",
|
||||
"nl",
|
||||
"lu",
|
||||
"no",
|
||||
"nyse",
|
||||
"nz",
|
||||
"nz_sl",
|
||||
"nz_we",
|
||||
"nz_ak",
|
||||
"nz_nl",
|
||||
"nz_ne",
|
||||
"nz_ot",
|
||||
"nz_ta",
|
||||
"nz_sc",
|
||||
"nz_hb",
|
||||
"nz_mb",
|
||||
"nz_ca",
|
||||
"nz_ch",
|
||||
"nz_wl",
|
||||
"pe",
|
||||
"ph",
|
||||
"pl",
|
||||
"pt",
|
||||
"pt_li",
|
||||
"pt_po",
|
||||
"ro",
|
||||
"rs_cyrl",
|
||||
"rs_la",
|
||||
"ru",
|
||||
"se",
|
||||
"tn",
|
||||
"tr",
|
||||
"ua",
|
||||
"us_fl",
|
||||
"us_la",
|
||||
"us_ct",
|
||||
"us_de",
|
||||
"us_gu",
|
||||
"us_hi",
|
||||
"us_in",
|
||||
"us_ky",
|
||||
"us_nj",
|
||||
"us_nc",
|
||||
"us_nd",
|
||||
"us_pr",
|
||||
"us_tn",
|
||||
"us_ms",
|
||||
"us_id",
|
||||
"us_ar",
|
||||
"us_tx",
|
||||
"us_dc",
|
||||
"us_md",
|
||||
"us_va",
|
||||
"us_vt",
|
||||
"us_ak",
|
||||
"us_ca",
|
||||
"us_me",
|
||||
"us_ma",
|
||||
"us_al",
|
||||
"us_ga",
|
||||
"us_ne",
|
||||
"us_mo",
|
||||
"us_sc",
|
||||
"us_wv",
|
||||
"us_vi",
|
||||
"us_ut",
|
||||
"us_ri",
|
||||
"us_az",
|
||||
"us_co",
|
||||
"us_il",
|
||||
"us_mt",
|
||||
"us_nm",
|
||||
"us_ny",
|
||||
"us_oh",
|
||||
"us_pa",
|
||||
"us_mi",
|
||||
"us_mn",
|
||||
"us_nv",
|
||||
"us_or",
|
||||
"us_sd",
|
||||
"us_wa",
|
||||
"us_wi",
|
||||
"us_wy",
|
||||
"us_ia",
|
||||
"us_ks",
|
||||
"us_nh",
|
||||
"us_ok",
|
||||
"za",
|
||||
"ve",
|
||||
"sk",
|
||||
"si",
|
||||
"jp",
|
||||
"vi",
|
||||
"sg",
|
||||
"my",
|
||||
"th",
|
||||
];
|
||||
|
||||
export const TIME_ZONE_TO_REGION = {
|
||||
"America/Argentina/Buenos_Aires": "ar",
|
||||
"America/Argentina/Cordoba": "ar",
|
||||
"America/Argentina/Salta": "ar",
|
||||
"America/Argentina/Jujuy": "ar",
|
||||
"America/Argentina/Tucuman": "ar",
|
||||
"America/Argentina/Catamarca": "ar",
|
||||
"America/Argentina/La_Rioja": "ar",
|
||||
"America/Argentina/San_Juan": "ar",
|
||||
"America/Argentina/Mendoza": "ar",
|
||||
"America/Argentina/San_Luis": "ar",
|
||||
"America/Argentina/Rio_Gallegos": "ar",
|
||||
"America/Argentina/Ushuaia": "ar",
|
||||
"Europe/Vienna": "at",
|
||||
"Australia/Lord_Howe": "au",
|
||||
"Antarctica/Macquarie": "au",
|
||||
"Australia/Hobart": "au",
|
||||
"Australia/Currie": "au",
|
||||
"Australia/Melbourne": "au",
|
||||
"Australia/Sydney": "au",
|
||||
"Australia/Broken_Hill": "au",
|
||||
"Australia/Brisbane": "au",
|
||||
"Australia/Lindeman": "au",
|
||||
"Australia/Adelaide": "au",
|
||||
"Australia/Darwin": "au",
|
||||
"Australia/Perth": "au",
|
||||
"Australia/Eucla": "au",
|
||||
"America/Noronha": "br",
|
||||
"America/Belem": "br",
|
||||
"America/Fortaleza": "br",
|
||||
"America/Recife": "br",
|
||||
"America/Araguaina": "br",
|
||||
"America/Maceio": "br",
|
||||
"America/Bahia": "br",
|
||||
"America/Sao_Paulo": "br",
|
||||
"America/Campo_Grande": "br",
|
||||
"America/Cuiaba": "br",
|
||||
"America/Santarem": "br",
|
||||
"America/Porto_Velho": "br",
|
||||
"America/Boa_Vista": "br",
|
||||
"America/Manaus": "br",
|
||||
"America/Eirunepe": "br",
|
||||
"America/Rio_Branco": "br",
|
||||
"America/St_Johns": "ca",
|
||||
"America/Halifax": "ca",
|
||||
"America/Glace_Bay": "ca",
|
||||
"America/Moncton": "ca",
|
||||
"America/Goose_Bay": "ca",
|
||||
"America/Blanc-Sablon": "ca",
|
||||
"America/Toronto": "ca",
|
||||
"America/Nipigon": "ca",
|
||||
"America/Thunder_Bay": "ca",
|
||||
"America/Iqaluit": "ca",
|
||||
"America/Pangnirtung": "ca",
|
||||
"America/Atikokan": "ca",
|
||||
"America/Winnipeg": "ca",
|
||||
"America/Rainy_River": "ca",
|
||||
"America/Resolute": "ca",
|
||||
"America/Rankin_Inlet": "ca",
|
||||
"America/Regina": "ca",
|
||||
"America/Swift_Current": "ca",
|
||||
"America/Edmonton": "ca",
|
||||
"America/Cambridge_Bay": "ca",
|
||||
"America/Yellowknife": "ca",
|
||||
"America/Inuvik": "ca",
|
||||
"America/Creston": "ca",
|
||||
"America/Dawson_Creek": "ca",
|
||||
"America/Fort_Nelson": "ca",
|
||||
"America/Vancouver": "ca",
|
||||
"America/Whitehorse": "ca",
|
||||
"America/Dawson": "ca",
|
||||
"Europe/Zurich": "ch",
|
||||
"America/Santiago": "cl",
|
||||
"America/Punta_Arenas": "cl",
|
||||
"Pacific/Easter": "cl",
|
||||
"America/Bogota": "co",
|
||||
"America/Costa_Rica": "cr",
|
||||
"Europe/Prague": "cz",
|
||||
"Europe/Berlin": "de",
|
||||
"Europe/Copenhagen": "dk",
|
||||
"Europe/Tallinn": "ee",
|
||||
"Europe/Madrid": "es",
|
||||
"Africa/Ceuta": "es",
|
||||
"Atlantic/Canary": "es",
|
||||
"Europe/Helsinki": "fi",
|
||||
"Europe/Paris": "fr",
|
||||
"Europe/London": "gb",
|
||||
"Asia/Tbilisi": "ge",
|
||||
"Asia/Hong_Kong": "hk",
|
||||
"Europe/Budapest": "hu",
|
||||
"Europe/Dublin": "ie",
|
||||
"Atlantic/Reykjavik": "is",
|
||||
"Europe/Rome": "it",
|
||||
"Asia/Tokyo": "jp",
|
||||
"Asia/Seoul": "kr",
|
||||
"Europe/Vilnius": "lt",
|
||||
"Europe/Luxembourg": "lu",
|
||||
"Europe/Riga": "lv",
|
||||
"Africa/Casablanca": "ma",
|
||||
"America/Mexico_City": "mx",
|
||||
"America/Cancun": "mx",
|
||||
"America/Merida": "mx",
|
||||
"America/Monterrey": "mx",
|
||||
"America/Matamoros": "mx",
|
||||
"America/Mazatlan": "mx",
|
||||
"America/Chihuahua": "mx",
|
||||
"America/Ojinaga": "mx",
|
||||
"America/Hermosillo": "mx",
|
||||
"America/Tijuana": "mx",
|
||||
"America/Bahia_Banderas": "mx",
|
||||
"Asia/Kuala_Lumpur": "my",
|
||||
"Asia/Kuching": "my",
|
||||
"Europe/Amsterdam": "nl",
|
||||
"Europe/Oslo": "no",
|
||||
"Pacific/Auckland": "nz",
|
||||
"Pacific/Chatham": "nz",
|
||||
"America/Lima": "pe",
|
||||
"Asia/Manila": "ph",
|
||||
"Europe/Warsaw": "pl",
|
||||
"Europe/Lisbon": "pt",
|
||||
"Atlantic/Madeira": "pt",
|
||||
"Atlantic/Azores": "pt",
|
||||
"Europe/Bucharest": "ro",
|
||||
"Europe/Kaliningrad": "ru",
|
||||
"Europe/Moscow": "ru",
|
||||
"Europe/Simferopol": "ru",
|
||||
"Europe/Kirov": "ru",
|
||||
"Europe/Astrakhan": "ru",
|
||||
"Europe/Volgograd": "ru",
|
||||
"Europe/Saratov": "ru",
|
||||
"Europe/Ulyanovsk": "ru",
|
||||
"Europe/Samara": "ru",
|
||||
"Asia/Yekaterinburg": "ru",
|
||||
"Asia/Omsk": "ru",
|
||||
"Asia/Novosibirsk": "ru",
|
||||
"Asia/Barnaul": "ru",
|
||||
"Asia/Tomsk": "ru",
|
||||
"Asia/Novokuznetsk": "ru",
|
||||
"Asia/Krasnoyarsk": "ru",
|
||||
"Asia/Irkutsk": "ru",
|
||||
"Asia/Chita": "ru",
|
||||
"Asia/Yakutsk": "ru",
|
||||
"Asia/Khandyga": "ru",
|
||||
"Asia/Vladivostok": "ru",
|
||||
"Asia/Ust-Nera": "ru",
|
||||
"Asia/Magadan": "ru",
|
||||
"Asia/Sakhalin": "ru",
|
||||
"Asia/Srednekolymsk": "ru",
|
||||
"Asia/Kamchatka": "ru",
|
||||
"Asia/Anadyr": "ru",
|
||||
"Europe/Stockholm": "se",
|
||||
"Asia/Singapore": "sg",
|
||||
"Asia/Bangkok": "th",
|
||||
"Africa/Tunis": "tn",
|
||||
"Europe/Istanbul": "tr",
|
||||
"Europe/Kiev": "ua",
|
||||
"Europe/Uzhgorod": "ua",
|
||||
"Europe/Zaporozhye": "ua",
|
||||
"America/New_York": "us",
|
||||
"America/Detroit": "us",
|
||||
"America/Kentucky/Louisville": "us",
|
||||
"America/Kentucky/Monticello": "us",
|
||||
"America/Indiana/Indianapolis": "us",
|
||||
"America/Indiana/Vincennes": "us",
|
||||
"America/Indiana/Winamac": "us",
|
||||
"America/Indiana/Marengo": "us",
|
||||
"America/Indiana/Petersburg": "us",
|
||||
"America/Indiana/Vevay": "us",
|
||||
"America/Chicago": "us",
|
||||
"America/Indiana/Tell_City": "us",
|
||||
"America/Indiana/Knox": "us",
|
||||
"America/Menominee": "us",
|
||||
"America/North_Dakota/Center": "us",
|
||||
"America/North_Dakota/New_Salem": "us",
|
||||
"America/North_Dakota/Beulah": "us",
|
||||
"America/Denver": "us",
|
||||
"America/Boise": "us",
|
||||
"America/Phoenix": "us",
|
||||
"America/Los_Angeles": "us",
|
||||
"America/Anchorage": "us",
|
||||
"America/Juneau": "us",
|
||||
"America/Sitka": "us",
|
||||
"America/Metlakatla": "us",
|
||||
"America/Yakutat": "us",
|
||||
"America/Nome": "us",
|
||||
"America/Adak": "us",
|
||||
"Pacific/Honolulu": "us",
|
||||
"America/Caracas": "ve",
|
||||
"Africa/Johannesburg": "za",
|
||||
"Europe/Busingen": "de",
|
||||
"Europe/Guernsey": "gg",
|
||||
"Europe/Zagreb": "hr",
|
||||
"Europe/Isle_of_Man": "im",
|
||||
"Europe/Jersey": "je",
|
||||
"Europe/Vaduz": "li",
|
||||
"Europe/Ljubljana": "si",
|
||||
"Europe/Bratislava": "sk",
|
||||
"America/St_Thomas": "vi",
|
||||
};
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<div class="control-group">
|
||||
<label class="control-label">{{i18n 'discourse_calendar.region.title'}}</label>
|
||||
<div class="controls">
|
||||
{{region-input
|
||||
value=model.custom_fields.holidays-region
|
||||
onChange=(action "onChange")
|
||||
class="input-xxlarge"
|
||||
}}
|
||||
</div>
|
||||
{{d-button icon="globe" label="discourse_calendar.region.use_current_region" action=(action "useCurrentRegion") }}
|
||||
</div>
|
||||
|
|
@ -11,10 +11,262 @@ en:
|
|||
on_holiday: "On Holiday"
|
||||
holiday: "Holiday"
|
||||
add_to_calendar: "Add to Google Calendar"
|
||||
timezone:
|
||||
title: "Timezone"
|
||||
instructions: "Your current timezone is %{timezone}."
|
||||
none: "Select a timezone..."
|
||||
region:
|
||||
title: "Region"
|
||||
none: "Select a region..."
|
||||
use_current_region: "Use Current Region"
|
||||
names:
|
||||
ar: "Argentina"
|
||||
at: "Austria"
|
||||
au_act: "Australia (au_act)"
|
||||
au_nsw: "Australia (au_nsw)"
|
||||
au_nt: "Australia (au_nt)"
|
||||
au_qld_brisbane: "Australia (au_qld_brisbane)"
|
||||
au_qld_cairns: "Australia (au_qld_cairns)"
|
||||
au_qld: "Australia (au_qld)"
|
||||
au_sa: "Australia (au_sa)"
|
||||
au_tas_north: "Australia (au_tas_north)"
|
||||
au_tas_south: "Australia (au_tas_south)"
|
||||
au_tas: "Australia (au_tas)"
|
||||
au_vic_melbourne: "Australia (au_vic_melbourne)"
|
||||
au_vic: "Australia (au_vic)"
|
||||
au_wa: "Australia (au_wa)"
|
||||
au: "Australia"
|
||||
be_fr: "Belgium (be_fr)"
|
||||
be_nl: "Belgium (be_nl)"
|
||||
bg_bg: "Bulgaria (bg_bg)"
|
||||
bg_en: "Bulgaria (bg_en)"
|
||||
br: "Brazil"
|
||||
ca_ab: "Canada (ca_ab)"
|
||||
ca_bc: "Canada (ca_bc)"
|
||||
ca_mb: "Canada (ca_mb)"
|
||||
ca_nb: "Canada (ca_nb)"
|
||||
ca_nl: "Canada (ca_nl)"
|
||||
ca_ns: "Canada (ca_ns)"
|
||||
ca_nt: "Canada (ca_nt)"
|
||||
ca_nu: "Canada (ca_nu)"
|
||||
ca_on: "Canada (ca_on)"
|
||||
ca_pe: "Canada (ca_pe)"
|
||||
ca_qc: "Canada (ca_qc)"
|
||||
ca_sk: "Canada (ca_sk)"
|
||||
ca_yt: "Canada (ca_yt)"
|
||||
ca: "Canada"
|
||||
ch_ag: "Switzerland (ch_ag)"
|
||||
ch_ai: "Switzerland (ch_ai)"
|
||||
ch_ar: "Switzerland (ch_ar)"
|
||||
ch_be: "Switzerland (ch_be)"
|
||||
ch_bl: "Switzerland (ch_bl)"
|
||||
ch_bs: "Switzerland (ch_bs)"
|
||||
ch_fr: "Switzerland (ch_fr)"
|
||||
ch_ge: "Switzerland (ch_ge)"
|
||||
ch_gl: "Switzerland (ch_gl)"
|
||||
ch_gr: "Switzerland (ch_gr)"
|
||||
ch_ju: "Switzerland (ch_ju)"
|
||||
ch_lu: "Switzerland (ch_lu)"
|
||||
ch_ne: "Switzerland (ch_ne)"
|
||||
ch_nw: "Switzerland (ch_nw)"
|
||||
ch_ow: "Switzerland (ch_ow)"
|
||||
ch_sg: "Switzerland (ch_sg)"
|
||||
ch_sh: "Switzerland (ch_sh)"
|
||||
ch_so: "Switzerland (ch_so)"
|
||||
ch_sz: "Switzerland (ch_sz)"
|
||||
ch_tg: "Switzerland (ch_tg)"
|
||||
ch_ti: "Switzerland (ch_ti)"
|
||||
ch_ur: "Switzerland (ch_ur)"
|
||||
ch_vd: "Switzerland (ch_vd)"
|
||||
ch_vs: "Switzerland (ch_vs)"
|
||||
ch_zg: "Switzerland (ch_zg)"
|
||||
ch_zh: "Switzerland (ch_zh)"
|
||||
ch: "Switzerland"
|
||||
cl: "Chile"
|
||||
co: "Colombia"
|
||||
cr: "Costa Rica"
|
||||
cz: "Czech Republic"
|
||||
de_bb: "Germany (de_bb)"
|
||||
de_be: "Germany (de_be)"
|
||||
de_bw: "Germany (de_bw)"
|
||||
de_by_augsburg: "Germany (de_by_augsburg)"
|
||||
de_by_cath: "Germany (de_by_cath)"
|
||||
de_by: "Germany (de_by)"
|
||||
de_hb: "Germany (de_hb)"
|
||||
de_he: "Germany (de_he)"
|
||||
de_hh: "Germany (de_hh)"
|
||||
de_mv: "Germany (de_mv)"
|
||||
de_ni: "Germany (de_ni)"
|
||||
de_nw: "Germany (de_nw)"
|
||||
de_rp: "Germany (de_rp)"
|
||||
de_sh: "Germany (de_sh)"
|
||||
de_sl: "Germany (de_sl)"
|
||||
de_sn_sorbian: "Germany (de_sn_sorbian)"
|
||||
de_sn: "Germany (de_sn)"
|
||||
de_st: "Germany (de_st)"
|
||||
de_th_cath: "Germany (de_th_cath)"
|
||||
de_th: "Germany (de_th)"
|
||||
de: "Germany"
|
||||
dk: "Denmark"
|
||||
ee: "Estonia"
|
||||
el: "Greece"
|
||||
es_an: "Spain (es_an)"
|
||||
es_ar: "Spain (es_ar)"
|
||||
es_ce: "Spain (es_ce)"
|
||||
es_cl: "Spain (es_cl)"
|
||||
es_cm: "Spain (es_cm)"
|
||||
es_cn: "Spain (es_cn)"
|
||||
es_ct: "Spain (es_ct)"
|
||||
es_ex: "Spain (es_ex)"
|
||||
es_ga: "Spain (es_ga)"
|
||||
es_ib: "Spain (es_ib)"
|
||||
es_lo: "Spain (es_lo)"
|
||||
es_m: "Spain (es_m)"
|
||||
es_mu: "Spain (es_mu)"
|
||||
es_na: "Spain (es_na)"
|
||||
es_o: "Spain (es_o)"
|
||||
es_pv: "Spain (es_pv)"
|
||||
es_v: "Spain (es_v)"
|
||||
es_vc: "Spain (es_vc)"
|
||||
es: "Spain"
|
||||
fi: "Finland"
|
||||
fr_a: "France (fr_a)"
|
||||
fr_m: "France (fr_m)"
|
||||
fr: "France"
|
||||
gb_con: "United Kingdom (gb_con)"
|
||||
gb_eaw: "United Kingdom (gb_eaw)"
|
||||
gb_eng: "United Kingdom (gb_eng)"
|
||||
gb_gsy: "United Kingdom (gb_gsy)"
|
||||
gb_iom: "United Kingdom (gb_iom)"
|
||||
gb_jsy: "United Kingdom (gb_jsy)"
|
||||
gb_nir: "United Kingdom (gb_nir)"
|
||||
gb_sct: "United Kingdom (gb_sct)"
|
||||
gb_wls: "United Kingdom (gb_wls)"
|
||||
gb: "United Kingdom"
|
||||
ge: "Georgia"
|
||||
gg: "Guernsey"
|
||||
hk: "Hong Kong"
|
||||
hr: "Croatia"
|
||||
hu: "Hungary"
|
||||
ie: "Ireland"
|
||||
im: "Isle of Man"
|
||||
is: "Iceland"
|
||||
it_bl: "Italy (it_bl)"
|
||||
it_fi: "Italy (it_fi)"
|
||||
it_ge: "Italy (it_ge)"
|
||||
it_pd: "Italy (it_pd)"
|
||||
it_rm: "Italy (it_rm)"
|
||||
it_ro: "Italy (it_ro)"
|
||||
it_to: "Italy (it_to)"
|
||||
it_tv: "Italy (it_tv)"
|
||||
it_ve: "Italy (it_ve)"
|
||||
it_vi: "Italy (it_vi)"
|
||||
it_vr: "Italy (it_vr)"
|
||||
it: "Italy"
|
||||
je: "Jersey"
|
||||
jp: "Japan"
|
||||
kr: "Korea (Republic of)"
|
||||
li: "Liechtenstein"
|
||||
lt: "Lithuania"
|
||||
lu: "Luxembourg"
|
||||
lv: "Latvia"
|
||||
ma: "Morocco"
|
||||
mt_en: "Malta (mt_en)"
|
||||
mt_mt: "Malta (mt_mt)"
|
||||
mx_pue: "Mexico (mx_pue)"
|
||||
mx: "Mexico"
|
||||
my: "Malaysia"
|
||||
ng: "Nigeria"
|
||||
nl: "Netherlands"
|
||||
no: "Norway"
|
||||
nz_ak: "New Zealand (nz_ak)"
|
||||
nz_ca: "New Zealand (nz_ca)"
|
||||
nz_ch: "New Zealand (nz_ch)"
|
||||
nz_hb: "New Zealand (nz_hb)"
|
||||
nz_mb: "New Zealand (nz_mb)"
|
||||
nz_ne: "New Zealand (nz_ne)"
|
||||
nz_nl: "New Zealand (nz_nl)"
|
||||
nz_ot: "New Zealand (nz_ot)"
|
||||
nz_sc: "New Zealand (nz_sc)"
|
||||
nz_sl: "New Zealand (nz_sl)"
|
||||
nz_ta: "New Zealand (nz_ta)"
|
||||
nz_we: "New Zealand (nz_we)"
|
||||
nz_wl: "New Zealand (nz_wl)"
|
||||
nz: "New Zealand"
|
||||
pe: "Peru"
|
||||
ph: "Philippines"
|
||||
pl: "Poland"
|
||||
pt_li: "Portugal (pt_li)"
|
||||
pt_po: "Portugal (pt_po)"
|
||||
pt: "Portugal"
|
||||
ro: "Romania"
|
||||
rs_cyrl: "Serbia (rs_cyrl)"
|
||||
rs_la: "Serbia (rs_la)"
|
||||
ru: "Russian Federation"
|
||||
se: "Sweden"
|
||||
sg: "Singapore"
|
||||
si: "Slovenia"
|
||||
sk: "Slovakia"
|
||||
th: "Thailand"
|
||||
tn: "Tunisia"
|
||||
tr: "Turkey"
|
||||
ua: "Ukraine"
|
||||
unitednations: " (unitednations)"
|
||||
ups: " (ups)"
|
||||
us_ak: "United States (us_ak)"
|
||||
us_al: "United States (us_al)"
|
||||
us_ar: "United States (us_ar)"
|
||||
us_az: "United States (us_az)"
|
||||
us_ca: "United States (us_ca)"
|
||||
us_co: "United States (us_co)"
|
||||
us_ct: "United States (us_ct)"
|
||||
us_dc: "United States (us_dc)"
|
||||
us_de: "United States (us_de)"
|
||||
us_fl: "United States (us_fl)"
|
||||
us_ga: "United States (us_ga)"
|
||||
us_gu: "United States (us_gu)"
|
||||
us_hi: "United States (us_hi)"
|
||||
us_ia: "United States (us_ia)"
|
||||
us_id: "United States (us_id)"
|
||||
us_il: "United States (us_il)"
|
||||
us_in: "United States (us_in)"
|
||||
us_ks: "United States (us_ks)"
|
||||
us_ky: "United States (us_ky)"
|
||||
us_la: "United States (us_la)"
|
||||
us_ma: "United States (us_ma)"
|
||||
us_md: "United States (us_md)"
|
||||
us_me: "United States (us_me)"
|
||||
us_mi: "United States (us_mi)"
|
||||
us_mn: "United States (us_mn)"
|
||||
us_mo: "United States (us_mo)"
|
||||
us_ms: "United States (us_ms)"
|
||||
us_mt: "United States (us_mt)"
|
||||
us_nc: "United States (us_nc)"
|
||||
us_nd: "United States (us_nd)"
|
||||
us_ne: "United States (us_ne)"
|
||||
us_nh: "United States (us_nh)"
|
||||
us_nj: "United States (us_nj)"
|
||||
us_nm: "United States (us_nm)"
|
||||
us_nv: "United States (us_nv)"
|
||||
us_ny: "United States (us_ny)"
|
||||
us_oh: "United States (us_oh)"
|
||||
us_ok: "United States (us_ok)"
|
||||
us_or: "United States (us_or)"
|
||||
us_pa: "United States (us_pa)"
|
||||
us_pr: "United States (us_pr)"
|
||||
us_ri: "United States (us_ri)"
|
||||
us_sc: "United States (us_sc)"
|
||||
us_sd: "United States (us_sd)"
|
||||
us_tn: "United States (us_tn)"
|
||||
us_tx: "United States (us_tx)"
|
||||
us_ut: "United States (us_ut)"
|
||||
us_va: "United States (us_va)"
|
||||
us_vi: "United States (us_vi)"
|
||||
us_vt: "United States (us_vt)"
|
||||
us_wa: "United States (us_wa)"
|
||||
us_wi: "United States (us_wi)"
|
||||
us_wv: "United States (us_wv)"
|
||||
us_wy: "United States (us_wy)"
|
||||
us: "United States"
|
||||
ve: "Venezuela"
|
||||
vi: "Virgin Islands (U.S.)"
|
||||
za: "South Africa"
|
||||
group_timezones:
|
||||
search: "Search..."
|
||||
group_availability: "%{group} availability"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
TIMEZONES_DEFINITIONS = 'https://raw.githubusercontent.com/moment/moment-timezone/develop/data/meta/latest.json'
|
||||
UNUSED_REGIONS = ["ecbtarget", "federalreserve", "federalreservebanks", "fedex", "nerc", "unitednations", "ups"]
|
||||
|
||||
task 'javascript:update_constants' => :environment do
|
||||
require 'holidays'
|
||||
holiday_regions = Holidays.available_regions.map(&:to_s) - UNUSED_REGIONS
|
||||
|
||||
time_zone_to_region = {}
|
||||
data = JSON.parse(URI.open(TIMEZONES_DEFINITIONS).read)
|
||||
data['zones'].each do |timezone, timezone_data|
|
||||
country_code = timezone_data['countries'].first.downcase
|
||||
next if !holiday_regions.include?(country_code)
|
||||
time_zone_to_region[timezone] = country_code
|
||||
end
|
||||
|
||||
write_template("../../../plugins/discourse-calendar/assets/javascripts/lib/regions.js.es6", <<~JS)
|
||||
export const HOLIDAY_REGIONS = #{holiday_regions.to_json};
|
||||
|
||||
export const TIME_ZONE_TO_REGION = #{time_zone_to_region.to_json};
|
||||
JS
|
||||
end
|
||||
|
|
@ -240,6 +240,9 @@ after_initialize do
|
|||
register_user_custom_field_type(DiscourseCalendar::HOLIDAY_CUSTOM_FIELD, :boolean)
|
||||
whitelist_staff_user_custom_field(DiscourseCalendar::HOLIDAY_CUSTOM_FIELD)
|
||||
|
||||
register_editable_user_custom_field(DiscourseCalendar::REGION_CUSTOM_FIELD)
|
||||
whitelist_staff_user_custom_field(DiscourseCalendar::REGION_CUSTOM_FIELD)
|
||||
|
||||
on(:site_setting_changed) do |name, old_value, new_value|
|
||||
next unless [:all_day_event_start_time, :all_day_event_end_time].include? name
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue