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