Init version of editable calendar.

This commit is contained in:
Martin Edenhofer 2015-09-16 10:40:18 +02:00
parent a6e34ddcd8
commit c7ec0d9c5a
14 changed files with 267 additions and 718 deletions

View file

@ -0,0 +1,39 @@
class App.UiElement.business_hours
@render: (attribute, params) ->
hours = {
mon: {
active: true
timeframes: ['09:00-17:00']
}
tue: {
active: true
timeframes: ['00:00-24:00']
}
wed: {
active: true
timeframes: ['09:00-17:00']
}
thu: {
active: true
timeframes: ['09:00-12:00', '13:00-17:00']
}
fri: {
active: true
timeframes: ['09:00-17:00']
}
sat: {
active: false
timeframes: ['10:00-14:00']
}
sun: {
active: false
timeframes: ['10:00-14:00']
}
}
businessHours = new App.BusinessHours
hours: hours
businessHours.render()
businessHours.el

View file

@ -0,0 +1,12 @@
class App.UiElement.holiday_selector
@render: (attribute, params) ->
console.log('aa', attribute)
days = {}
if attribute.value
days = attribute.value
days_sorted = _.keys(days).sort()
days_new = {}
for day in days_sorted
days_new[day] = days[day]
item = $( App.view('calendar/holiday_selector')( attribute: attribute, days: days_new ) )

View file

@ -0,0 +1,35 @@
class App.UiElement.ical_feed extends App.UiElement.ApplicationUiElement
@render: (attribute, params) ->
console.log('A', attribute)
item = $( '<div>' + App.view('generic/input')( attribute: attribute ) + '</div>' )
ical_feeds = App.Config.get('ical_feeds')
if !_.isEmpty(ical_feeds)
attribute_ical =
options: ical_feeds
tag: 'searchable_select'
placeholder: App.i18n.translateInline('Search public ical feed...')
# build options list based on config
@getConfigOptionList( attribute_ical )
# add null selection if needed
@addNullOption( attribute_ical )
# sort attribute.options
@sortOptions( attribute_ical )
# finde selected/checked item of list
@selectedOptions( attribute_ical )
templateSelections = App.UiElement.searchable_select.render(attribute_ical)
templateSelections.find('.js-shadow').bind('change', (e) ->
val = $(e.target).val()
if val
item.find("[name=#{attribute.name}]").val(val)
)
item.append(templateSelections)
item

View file

@ -1,5 +1,5 @@
class App.UiElement.timezone extends App.UiElement.ApplicationUiElement class App.UiElement.timezone extends App.UiElement.ApplicationUiElement
@render: (attribute) -> @render: (attribute, params) ->
attribute.options = [] attribute.options = []
timezones = App.Config.get('timezones') timezones = App.Config.get('timezones')
@ -22,4 +22,6 @@ class App.UiElement.timezone extends App.UiElement.ApplicationUiElement
# finde selected/checked item of list # finde selected/checked item of list
@selectedOptions( attribute, params ) @selectedOptions( attribute, params )
$( App.view('generic/select')( attribute: attribute ) ) attribute.tag = 'searchable_select'
attribute.placeholder = App.i18n.translateInline('Enter timzone...')
App.UiElement.searchable_select.render(attribute)

View file

@ -1,47 +1,33 @@
class Index extends App.ControllerContent class Index extends App.ControllerContent
events: events:
'click .js-new': 'newDialog' 'click .js-new': 'new'
'click .js-edit': 'edit'
'click .js-description': 'description' 'click .js-description': 'description'
hours: {
mon: {
active: true
timeframes: ['09:00-17:00']
}
tue: {
active: true
timeframes: ['00:00-24:00']
}
wed: {
active: true
timeframes: ['09:00-17:00']
}
thu: {
active: true
timeframes: ['09:00-12:00', '13:00-17:00']
}
fri: {
active: true
timeframes: ['09:00-17:00']
}
sat: {
active: false
timeframes: ['10:00-14:00']
}
sun: {
active: false
timeframes: ['10:00-14:00']
}
}
constructor: -> constructor: ->
super super
# check authentication # check authentication
return if !@authenticate() return if !@authenticate()
@subscribeId = App.Calendar.subscribe(@render) @load()
App.Calendar.fetch()
load: =>
@ajax(
id: 'calendar_index'
type: 'GET'
url: @apiPath + '/calendars'
processData: true
success: (data, status, xhr) =>
App.Config.set('ical_feeds', data.ical_feeds)
App.Config.set('timezones', data.timezones)
# load assets
App.Collection.loadAssets(data.assets)
@render(data)
)
render: => render: =>
calendars = App.Calendar.search( calendars = App.Calendar.search(
@ -80,22 +66,31 @@ class Index extends App.ControllerContent
if @subscribeId if @subscribeId
App.Calendar.unsubscribe(@subscribeId) App.Calendar.unsubscribe(@subscribeId)
newDialog: => new: =>
@newItemModal = new App.ControllerModal new App.ControllerGenericNew(
large: true pageData:
head: 'New Calendar' title: 'Calendars'
content: App.view('calendar/new')() object: 'Calendar'
button: 'Create' objects: 'Calendars'
shown: true genericObject: 'Calendar'
cancel: true callback: @load
container: @el.closest('.content') container: @el.closest('.content')
onShown: => large: true
businessHours = new App.BusinessHours )
hours: @hours
businessHours.render() edit: (e) =>
id = $(e.target).closest('.action').data('id')
@el.closest('.content').find('.js-business-hours').html(businessHours.el) new App.ControllerGenericEdit(
id: id
pageData:
title: 'Calendars'
object: 'Calendar'
objects: 'Calendars'
genericObject: 'Calendar'
callback: @load
container: @el.closest('.content')
large: true
)
description: (e) => description: (e) =>
new App.ControllerGenericDescription( new App.ControllerGenericDescription(

View file

@ -12,7 +12,6 @@ class Index extends App.ControllerContent
return if !@authenticate() return if !@authenticate()
@load() @load()
#@subscribeId = App.Calendar.subscribe(@render)
load: => load: =>
@ajax( @ajax(

View file

@ -3,6 +3,19 @@ class App.Calendar extends App.Model
@extend Spine.Model.Ajax @extend Spine.Model.Ajax
@url: @apiPath + '/calendars' @url: @apiPath + '/calendars'
@configure_attributes = [
{ name: 'name', display: 'Name', tag: 'input', type: 'text', limit: 100, null: false },
{ name: 'timezone', display: 'Timezone', tag: 'timezone', null: false }
{ name: 'business_hours', display: 'Business Hours', tag: 'business_hours', null: true }
{ name: 'ical_url', display: 'Public Holidays iCal Feed', tag: 'ical_feed', placeholder: 'http://example.com/public_holidays.ical', null: true }
{ name: 'public_holidays',display: 'Public Holidays', tag: 'holiday_selector', null: true }
{ name: 'note', display: 'Note', tag: 'textarea', limit: 250, null: true },
{ name: 'created_by_id', display: 'Created by', relation: 'User', readonly: 1 },
{ name: 'created_at', display: 'Created', tag: 'datetime', readonly: 1 },
{ name: 'updated_by_id', display: 'Updated by', relation: 'User', readonly: 1 },
{ name: 'updated_at', display: 'Updated', tag: 'datetime', readonly: 1 },
]
displayName: -> displayName: ->
"#{@name} - #{@timezone}" "#{@name} - #{@timezone}"

View file

@ -0,0 +1,69 @@
<table class="settings-list">
<thead>
<tr>
<th><%- @T('Active') %>
<th><%- @T('Date') %>
<th><%- @T('Description') %>
<th><%- @T('Action') %>
</thead>
<tbody>
<% for day, meta of @days: %>
<tr <% if !meta.active: %>class="is-inactive"<% end %>>
<td>
<label class="checkbox-replacement">
<input type="checkbox" checked>
<%- @Icon('checkbox', 'icon-unchecked') %>
<%- @Icon('checkbox-checked', 'icon-checked') %>
</label>
<td><%- @Tdate(day) %>
<td><%= meta.summary %>
<td>
<div class="settings-list-rowControls">
<div class="btn btn--text js-remove">
<%- @Icon('trash') %> <%- @T('Remove') %>
</div>
</div>
<% end %>
<tr>
<td>
<label class="checkbox-replacement">
<input type="checkbox" checked>
<%- @Icon('checkbox', 'icon-unchecked') %>
<%- @Icon('checkbox-checked', 'icon-checked') %>
</label>
<td><%- @Tdate('2015-12-25') %>
<td>Some Description
<td>
<div class="settings-list-rowControls">
<div class="btn btn--text js-remove">
<%- @Icon('trash') %> <%- @T('Remove') %>
</div>
</div>
<tr class="is-inactive">
<td>
<label class="checkbox-replacement">
<input type="checkbox">
<%- @Icon('checkbox', 'icon-unchecked') %>
<%- @Icon('checkbox-checked', 'icon-checked') %>
</label>
<td><%- @Tdate('2015-12-26') %>
<td>Some Description
<td>
<div class="settings-list-rowControls">
<div class="btn btn--text js-remove">
<%- @Icon('trash') %> <%- @T('Remove') %>
</div>
</div>
<tr class="settings-list-controlRow">
<td>
<td>
<!-- Hallo Martin! Allow to add by pressing enter! -->
<input class="form-control form-control--small" type="date" name="public_holidays_date" placeholder="<%- @T('Date') %>"/>
<td>
<input class="form-control form-control--small" type="text" name="public_holidays_description" placeholder="<%- @T('Date Description') %>"/>
<td>
<div class="btn btn--text js-add">
<%- @Icon('plus-small') %> <%- @T('Add') %>
</div>
</tbody>
</table>

View file

@ -16,7 +16,7 @@
<% end %> <% end %>
<% for calendar in @calendars: %> <% for calendar in @calendars: %>
<div class="action"> <div class="action" data-id="<%- calendar.id %>">
<div class="action-flow"> <div class="action-flow">
<div class="action-block"> <div class="action-block">
<h3><span title="Last iCal Feed sync at: <%= calendar.last_sync %>: <%= calendar.last_log %>"><%- @Icon('status', 'ok inline') %></span> <%= calendar.name %></h3> <h3><span title="Last iCal Feed sync at: <%= calendar.last_sync %>: <%= calendar.last_log %>"><%- @Icon('status', 'ok inline') %></span> <%= calendar.name %></h3>

View file

@ -1,659 +0,0 @@
<div class="input form-group">
<div class="formGroup-label">
<label for="name">Name <span>*</span></label>
</div>
<div class="controls">
<input id="name" type="text" name="name" value="" class="form-control " required>
</div>
</div>
<div class="input form-group">
<div class="formGroup-label">
<label for="name">Timezone <span>*</span></label>
</div>
<div class="controls" style="position: relative">
<select class="form-control js-selectTimezone" name="timezone">
<option value="Africa/Abidjan">Africa/Abidjan (GMT0)</option>
<option value="Africa/Accra">Africa/Accra (GMT0)</option>
<option value="Africa/Addis_Ababa">Africa/Addis_Ababa (GMT+3)</option>
<option value="Africa/Algiers">Africa/Algiers (GMT+1)</option>
<option value="Africa/Asmara">Africa/Asmara (GMT+3)</option>
<option value="Africa/Asmera">Africa/Asmera (GMT+3)</option>
<option value="Africa/Bamako">Africa/Bamako (GMT0)</option>
<option value="Africa/Bangui">Africa/Bangui (GMT+1)</option>
<option value="Africa/Banjul">Africa/Banjul (GMT0)</option>
<option value="Africa/Bissau">Africa/Bissau (GMT0)</option>
<option value="Africa/Blantyre">Africa/Blantyre (GMT+2)</option>
<option value="Africa/Brazzaville">Africa/Brazzaville (GMT+1)</option>
<option value="Africa/Bujumbura">Africa/Bujumbura (GMT+2)</option>
<option value="Africa/Cairo">Africa/Cairo (GMT+2)</option>
<option value="Africa/Casablanca">Africa/Casablanca (GMT0)</option>
<option value="Africa/Ceuta">Africa/Ceuta (GMT+2)</option>
<option value="Africa/Conakry">Africa/Conakry (GMT0)</option>
<option value="Africa/Dakar">Africa/Dakar (GMT0)</option>
<option value="Africa/Dar_es_Salaam">Africa/Dar_es_Salaam (GMT+3)</option>
<option value="Africa/Djibouti">Africa/Djibouti (GMT+3)</option>
<option value="Africa/Douala">Africa/Douala (GMT+1)</option>
<option value="Africa/El_Aaiun">Africa/El_Aaiun (GMT0)</option>
<option value="Africa/Freetown">Africa/Freetown (GMT0)</option>
<option value="Africa/Gaborone">Africa/Gaborone (GMT+2)</option>
<option value="Africa/Harare">Africa/Harare (GMT+2)</option>
<option value="Africa/Johannesburg">Africa/Johannesburg (GMT+2)</option>
<option value="Africa/Juba">Africa/Juba (GMT+3)</option>
<option value="Africa/Kampala">Africa/Kampala (GMT+3)</option>
<option value="Africa/Khartoum">Africa/Khartoum (GMT+3)</option>
<option value="Africa/Kigali">Africa/Kigali (GMT+2)</option>
<option value="Africa/Kinshasa">Africa/Kinshasa (GMT+1)</option>
<option value="Africa/Lagos">Africa/Lagos (GMT+1)</option>
<option value="Africa/Libreville">Africa/Libreville (GMT+1)</option>
<option value="Africa/Lome">Africa/Lome (GMT0)</option>
<option value="Africa/Luanda">Africa/Luanda (GMT+1)</option>
<option value="Africa/Lubumbashi">Africa/Lubumbashi (GMT+2)</option>
<option value="Africa/Lusaka">Africa/Lusaka (GMT+2)</option>
<option value="Africa/Malabo">Africa/Malabo (GMT+1)</option>
<option value="Africa/Maputo">Africa/Maputo (GMT+2)</option>
<option value="Africa/Maseru">Africa/Maseru (GMT+2)</option>
<option value="Africa/Mbabane">Africa/Mbabane (GMT+2)</option>
<option value="Africa/Mogadishu">Africa/Mogadishu (GMT+3)</option>
<option value="Africa/Monrovia">Africa/Monrovia (GMT0)</option>
<option value="Africa/Nairobi">Africa/Nairobi (GMT+3)</option>
<option value="Africa/Ndjamena">Africa/Ndjamena (GMT+1)</option>
<option value="Africa/Niamey">Africa/Niamey (GMT+1)</option>
<option value="Africa/Nouakchott">Africa/Nouakchott (GMT0)</option>
<option value="Africa/Ouagadougou">Africa/Ouagadougou (GMT0)</option>
<option value="Africa/Porto-Novo">Africa/Porto-Novo (GMT+1)</option>
<option value="Africa/Sao_Tome">Africa/Sao_Tome (GMT0)</option>
<option value="Africa/Timbuktu">Africa/Timbuktu (GMT0)</option>
<option value="Africa/Tripoli">Africa/Tripoli (GMT+2)</option>
<option value="Africa/Tunis">Africa/Tunis (GMT+1)</option>
<option value="Africa/Windhoek">Africa/Windhoek (GMT+1)</option>
<option value="America/Adak">America/Adak (GMT-9)</option>
<option value="America/Anchorage">America/Anchorage (GMT-8)</option>
<option value="America/Anguilla">America/Anguilla (GMT-4)</option>
<option value="America/Antigua">America/Antigua (GMT-4)</option>
<option value="America/Araguaina">America/Araguaina (GMT-3)</option>
<option value="America/Argentina/Buenos_Aires">America/Argentina/Buenos_Aires (GMT-3)</option>
<option value="America/Argentina/Catamarca">America/Argentina/Catamarca (GMT-3)</option>
<option value="America/Argentia/ComodRivadavia">America/Argentina/ComodRivadavia (GMT-3)</option>
<optio value="America/Argentina/Cordoba">America/Argentina/Cordoba (GMT-3)</option>
<optio value="America/Argentina/Jujuy">America/Argentina/Jujuy (GMT-3)</option>
<option alue="America/Argentina/La_Rioja">America/Argentina/La_Rioja (GMT-3)</option>
<optio value="America/Argentina/Mendoza">America/Argentina/Mendoza (GMT-3)</option>
<option value="America/Argentina/Rio_Gallegos">America/Argentina/Rio_Gallegos (GMT-3)</option>
<optio value="America/Argentina/Salta">America/Argentina/Salta (GMT-3)</option>
<option alue="America/Argentina/San_Juan">America/Argentina/San_Juan (GMT-3)</option>
<option alue="America/Argentina/San_Luis">America/Argentina/San_Luis (GMT-3)</option>
<optio value="America/Argentina/Tucuman">America/Argentina/Tucuman (GMT-3)</option>
<optio value="America/Argentina/Ushuaia">America/Argentina/Ushuaia (GMT-3)</option>
<option value="America/Aruba">America/Aruba (GMT-4)</option>
<option value="America/Asuncion">America/Asuncion (GMT-4)</option>
<option value="America/Atikokan">America/Atikokan (GMT-5)</option>
<option value="America/Atka">America/Atka (GMT-9)</option>
<option value="America/Bahia">America/Bahia (GMT-3)</option>
<option value="America/Bahia_Banderas">America/Bahia_Banderas (GMT-5)</option>
<option value="America/Barbados">America/Barbados (GMT-4)</option>
<option value="America/Belem">America/Belem (GMT-3)</option>
<option value="America/Belize">America/Belize (GMT-6)</option>
<option value="America/Blanc-Sablon">America/Blanc-Sablon (GMT-4)</option>
<option value="America/Boa_Vista">America/Boa_Vista (GMT-4)</option>
<option value="America/Bogota">America/Bogota (GMT-5)</option>
<option value="America/Boise">America/Boise (GMT-6)</option>
<option value="America/Buenos_Aires">America/Buenos_Aires (GMT-3)</option>
<option value="America/Cambridge_Bay">America/Cambridge_Bay (GMT-6)</option>
<option value="America/Campo_Grande">America/Campo_Grande (GMT-4)</option>
<option value="America/Cancun">America/Cancun (GMT-5)</option>
<option value="America/Caracas">America/Caracas (GMT-5)</option>
<option value="America/Catamarca">America/Catamarca (GMT-3)</option>
<option value="America/Cayenne">America/Cayenne (GMT-3)</option>
<option value="America/Cayman">America/Cayman (GMT-5)</option>
<option value="America/Chicago">America/Chicago (GMT-5)</option>
<option value="America/Chihuahua">America/Chihuahua (GMT-6)</option>
<option value="America/Coral_Harbour">America/Coral_Harbour (GMT-5)</option>
<option value="America/Cordoba">America/Cordoba (GMT-3)</option>
<option value="America/Costa_Rica">America/Costa_Rica (GMT-6)</option>
<option value="America/Creston">America/Creston (GMT-7)</option>
<option value="America/Cuiaba">America/Cuiaba (GMT-4)</option>
<option value="America/Curacao">America/Curacao (GMT-4)</option>
<option value="America/Danmarkshavn">America/Danmarkshavn (GMT0)</option>
<option value="America/Dawson">America/Dawson (GMT-7)</option>
<option value="America/Dawson_Creek">America/Dawson_Creek (GMT-7)</option>
<option value="America/Denver">America/Denver (GMT-6)</option>
<option value="America/Detroit">America/Detroit (GMT-4)</option>
<option value="America/Dominica">America/Dominica (GMT-4)</option>
<option value="America/Edmonton">America/Edmonton (GMT-6)</option>
<option value="America/Eirunepe">America/Eirunepe (GMT-5)</option>
<option value="America/El_Salvador">America/El_Salvador (GMT-6)</option>
<option value="America/Ensenada">America/Ensenada (GMT-7)</option>
<option value="America/Fort_Wayne">America/Fort_Wayne (GMT-4)</option>
<option value="America/Fortaleza">America/Fortaleza (GMT-3)</option>
<option value="America/Glace_Bay">America/Glace_Bay (GMT-3)</option>
<option value="America/Godthab">America/Godthab (GMT-2)</option>
<option value="America/Goose_Bay">America/Goose_Bay (GMT-3)</option>
<option value="America/Grand_Turk">America/Grand_Turk (GMT-4)</option>
<option value="America/Grenada">America/Grenada (GMT-4)</option>
<option value="America/Guadeloupe">America/Guadeloupe (GMT-4)</option>
<option value="America/Guatemala">America/Guatemala (GMT-6)</option>
<option value="America/Guayaquil">America/Guayaquil (GMT-5)</option>
<option value="America/Guyana">America/Guyana (GMT-4)</option>
<option value="America/Halifax">America/Halifax (GMT-3)</option>
<option value="America/Havana">America/Havana (GMT-4)</option>
<option value="America/Hermosillo">America/Hermosillo (GMT-7)</option>
<option value="America/Indiana/Indianapolis">America/Indiana/Indianapolis (GMT-4)</option>
<option value="America/Indiana/Knox">America/Indiana/Knox (GMT-5)</option>
<optio value="America/Indiana/Marengo">America/Indiana/Marengo (GMT-4)</option>
<option alue="America/Indiana/Petersburg">America/Indiana/Petersburg (GMT-4)</option>
<optio value="America/Indiana/Tell_City">America/Indiana/Tell_City (GMT-5)</option>
<option value="America/Indiana/Vevay">America/Indiana/Vevay (GMT-4)</option>
<optio value="America/Indiana/Vincennes">America/Indiana/Vincennes (GMT-4)</option>
<optio value="America/Indiana/Winamac">America/Indiana/Winamac (GMT-4)</option>
<option value="America/Indianapolis">America/Indianapolis (GMT-4)</option>
<option value="America/Inuvik">America/Inuvik (GMT-6)</option>
<option value="America/Iqaluit">America/Iqaluit (GMT-4)</option>
<option value="America/Jamaica">America/Jamaica (GMT-5)</option>
<option value="America/Jujuy">America/Jujuy (GMT-3)</option>
<option value="America/Juneau">America/Juneau (GMT-8)</option>
<option value="America/Kentucky/Louisville">America/Kentucky/Louisville (GMT-4)</option>
<option value="America/Kentucky/Monticello">America/Kentucky/Monticello (GMT-4)</option>
<option value="America/Knox_IN">America/Knox_IN (GMT-5)</option>
<option value="America/Kralendijk">America/Kralendijk (GMT-4)</option>
<option value="America/La_Paz">America/La_Paz (GMT-4)</option>
<option value="America/Lima">America/Lima (GMT-5)</option>
<option value="America/Los_Angeles">America/Los_Angeles (GMT-7)</option>
<option value="America/Louisville">America/Louisville (GMT-4)</option>
<option value="America/Lower_Princes">America/Lower_Princes (GMT-4)</option>
<option value="America/Maceio">America/Maceio (GMT-3)</option>
<option value="America/Managua">America/Managua (GMT-6)</option>
<option value="America/Manaus">America/Manaus (GMT-4)</option>
<option value="America/Marigot">America/Marigot (GMT-4)</option>
<option value="America/Martinique">America/Martinique (GMT-4)</option>
<option value="America/Matamoros">America/Matamoros (GMT-5)</option>
<option value="America/Mazatlan">America/Mazatlan (GMT-6)</option>
<option value="America/Mendoza">America/Mendoza (GMT-3)</option>
<option value="America/Menominee">America/Menominee (GMT-5)</option>
<option value="America/Merida">America/Merida (GMT-5)</option>
<option value="America/Metlakatla">America/Metlakatla (GMT-8)</option>
<option value="America/Mexico_City">America/Mexico_City (GMT-5)</option>
<option value="America/Miquelon">America/Miquelon (GMT-2)</option>
<option value="America/Moncton">America/Moncton (GMT-3)</option>
<option value="America/Monterrey">America/Monterrey (GMT-5)</option>
<option value="America/Montevideo">America/Montevideo (GMT-3)</option>
<option value="America/Montreal">America/Montreal (GMT-4)</option>
<option value="America/Montserrat">America/Montserrat (GMT-4)</option>
<option value="America/Nassau">America/Nassau (GMT-4)</option>
<option value="America/New_York">America/New_York (GMT-4)</option>
<option value="America/Nipigon">America/Nipigon (GMT-4)</option>
<option value="America/Nome">America/Nome (GMT-8)</option>
<option value="America/Noronha">America/Noronha (GMT-2)</option>
<option value="America/North_Dakota/Beulah">America/North_Dakota/Beulah (GMT-5)</option>
<option value="America/North_Dakota/Center">America/North_Dakota/Center (GMT-5)</option>
<option value="America/North_Dakota/New_Salem">America/North_Dakota/New_Salem (GMT-5)</option>
<option value="America/Ojinaga">America/Ojinaga (GMT-6)</option>
<option value="America/Panama">America/Panama (GMT-5)</option>
<option value="America/Pangnirtung">America/Pangnirtung (GMT-4)</option>
<option value="America/Paramaribo">America/Paramaribo (GMT-3)</option>
<option value="America/Phoenix">America/Phoenix (GMT-7)</option>
<option value="America/Port-au-Prince">America/Port-au-Prince (GMT-4)</option>
<option value="America/Port_of_Spain">America/Port_of_Spain (GMT-4)</option>
<option value="America/Porto_Acre">America/Porto_Acre (GMT-5)</option>
<option value="America/Porto_Velho">America/Porto_Velho (GMT-4)</option>
<option value="America/Puerto_Rico">America/Puerto_Rico (GMT-4)</option>
<option value="America/Rainy_River">America/Rainy_River (GMT-5)</option>
<option value="America/Rankin_Inlet">America/Rankin_Inlet (GMT-5)</option>
<option value="America/Recife">America/Recife (GMT-3)</option>
<option value="America/Regina">America/Regina (GMT-6)</option>
<option value="America/Resolute">America/Resolute (GMT-5)</option>
<option value="America/Rio_Branco">America/Rio_Branco (GMT-5)</option>
<option value="America/Rosario">America/Rosario (GMT-3)</option>
<option value="America/Santa_Isabel">America/Santa_Isabel (GMT-7)</option>
<option value="America/Santarem">America/Santarem (GMT-3)</option>
<option value="America/Santiago">America/Santiago (GMT-3)</option>
<option value="America/Santo_Domingo">America/Santo_Domingo (GMT-4)</option>
<option value="America/Sao_Paulo">America/Sao_Paulo (GMT-3)</option>
<option value="America/Scoresbysund">America/Scoresbysund (GMT0)</option>
<option value="America/Shiprock">America/Shiprock (GMT-6)</option>
<option value="America/Sitka">America/Sitka (GMT-8)</option>
<option value="America/St_Barthelemy">America/St_Barthelemy (GMT-4)</option>
<option value="America/St_Johns">America/St_Johns (GMT-3)</option>
<option value="America/St_Kitts">America/St_Kitts (GMT-4)</option>
<option value="America/St_Lucia">America/St_Lucia (GMT-4)</option>
<option value="America/St_Thomas">America/St_Thomas (GMT-4)</option>
<option value="America/St_Vincent">America/St_Vincent (GMT-4)</option>
<option value="America/Swift_Current">America/Swift_Current (GMT-6)</option>
<option value="America/Tegucigalpa">America/Tegucigalpa (GMT-6)</option>
<option value="America/Thule">America/Thule (GMT-3)</option>
<option value="America/Thunder_Bay">America/Thunder_Bay (GMT-4)</option>
<option value="America/Tijuana">America/Tijuana (GMT-7)</option>
<option value="America/Toronto">America/Toronto (GMT-4)</option>
<option value="America/Tortola">America/Tortola (GMT-4)</option>
<option value="America/Vancouver">America/Vancouver (GMT-7)</option>
<option value="America/Virgin">America/Virgin (GMT-4)</option>
<option value="America/Whitehorse">America/Whitehorse (GMT-7)</option>
<option value="America/Winnipeg">America/Winnipeg (GMT-5)</option>
<option value="America/Yakutat">America/Yakutat (GMT-8)</option>
<option value="America/Yellowknife">America/Yellowknife (GMT-6)</option>
<option value="Antarctica/Casey">Antarctica/Casey (GMT+8)</option>
<option value="Antarctica/Davis">Antarctica/Davis (GMT+7)</option>
<optio value="Antarctica/DumontDUrville">Antarctica/DumontDUrville (GMT+10)</option>
<option value="Antarctica/Macquarie">Antarctica/Macquarie (GMT+11)</option>
<option value="Antarctica/Mawson">Antarctica/Mawson (GMT+5)</option>
<option value="Antarctica/McMurdo">Antarctica/McMurdo (GMT+12)</option>
<option value="Antarctica/Palmer">Antarctica/Palmer (GMT-3)</option>
<option value="Antarctica/Rothera">Antarctica/Rothera (GMT-3)</option>
<option value="Antarctica/South_Pole">Antarctica/South_Pole (GMT+12)</option>
<option value="Antarctica/Syowa">Antarctica/Syowa (GMT+3)</option>
<option value="Antarctica/Troll">Antarctica/Troll (GMT+2)</option>
<option value="Antarctica/Vostok">Antarctica/Vostok (GMT+6)</option>
<option value="Arctic/Longyearbyen">Arctic/Longyearbyen (GMT+2)</option>
<option value="Asia/Aden">Asia/Aden (GMT+3)</option>
<option value="Asia/Almaty">Asia/Almaty (GMT+6)</option>
<option value="Asia/Amman">Asia/Amman (GMT+3)</option>
<option value="Asia/Anadyr">Asia/Anadyr (GMT+12)</option>
<option value="Asia/Aqtau">Asia/Aqtau (GMT+5)</option>
<option value="Asia/Aqtobe">Asia/Aqtobe (GMT+5)</option>
<option value="Asia/Ashgabat">Asia/Ashgabat (GMT+5)</option>
<option value="Asia/Ashkhabad">Asia/Ashkhabad (GMT+5)</option>
<option value="Asia/Baghdad">Asia/Baghdad (GMT+3)</option>
<option value="Asia/Bahrain">Asia/Bahrain (GMT+3)</option>
<option value="Asia/Baku">Asia/Baku (GMT+5)</option>
<option value="Asia/Bangkok">Asia/Bangkok (GMT+7)</option>
<option value="Asia/Beirut">Asia/Beirut (GMT+3)</option>
<option value="Asia/Bishkek">Asia/Bishkek (GMT+6)</option>
<option value="Asia/Brunei">Asia/Brunei (GMT+8)</option>
<option value="Asia/Calcutta">Asia/Calcutta (GMT+5)</option>
<option value="Asia/Chita">Asia/Chita (GMT+8)</option>
<option value="Asia/Choibalsan">Asia/Choibalsan (GMT+8)</option>
<option value="Asia/Chongqing">Asia/Chongqing (GMT+8)</option>
<option value="Asia/Chungking">Asia/Chungking (GMT+8)</option>
<option value="Asia/Colombo">Asia/Colombo (GMT+5)</option>
<option value="Asia/Dacca">Asia/Dacca (GMT+6)</option>
<option value="Asia/Damascus">Asia/Damascus (GMT+3)</option>
<option value="Asia/Dhaka">Asia/Dhaka (GMT+6)</option>
<option value="Asia/Dili">Asia/Dili (GMT+9)</option>
<option value="Asia/Dubai">Asia/Dubai (GMT+4)</option>
<option value="Asia/Dushanbe">Asia/Dushanbe (GMT+5)</option>
<option value="Asia/Gaza">Asia/Gaza (GMT+3)</option>
<option value="Asia/Harbin">Asia/Harbin (GMT+8)</option>
<option value="Asia/Hebron">Asia/Hebron (GMT+3)</option>
<option value="Asia/Ho_Chi_Minh">Asia/Ho_Chi_Minh (GMT+7)</option>
<option value="Asia/Hong_Kong">Asia/Hong_Kong (GMT+8)</option>
<option value="Asia/Hovd">Asia/Hovd (GMT+7)</option>
<option value="Asia/Irkutsk">Asia/Irkutsk (GMT+8)</option>
<option value="Asia/Istanbul">Asia/Istanbul (GMT+3)</option>
<option value="Asia/Jakarta">Asia/Jakarta (GMT+7)</option>
<option value="Asia/Jayapura">Asia/Jayapura (GMT+9)</option>
<option value="Asia/Jerusalem">Asia/Jerusalem (GMT+3)</option>
<option value="Asia/Kabul">Asia/Kabul (GMT+4)</option>
<option value="Asia/Kamchatka">Asia/Kamchatka (GMT+12)</option>
<option value="Asia/Karachi">Asia/Karachi (GMT+5)</option>
<option value="Asia/Kashgar">Asia/Kashgar (GMT+6)</option>
<option value="Asia/Kathmandu">Asia/Kathmandu (GMT+5)</option>
<option value="Asia/Katmandu">Asia/Katmandu (GMT+5)</option>
<option value="Asia/Khandyga">Asia/Khandyga (GMT+9)</option>
<option value="Asia/Kolkata">Asia/Kolkata (GMT+5)</option>
<option value="Asia/Krasnoyarsk">Asia/Krasnoyarsk (GMT+7)</option>
<option value="Asia/Kuala_Lumpur">Asia/Kuala_Lumpur (GMT+8)</option>
<option value="Asia/Kuching">Asia/Kuching (GMT+8)</option>
<option value="Asia/Kuwait">Asia/Kuwait (GMT+3)</option>
<option value="Asia/Macao">Asia/Macao (GMT+8)</option>
<option value="Asia/Macau">Asia/Macau (GMT+8)</option>
<option value="Asia/Magadan">Asia/Magadan (GMT+10)</option>
<option value="Asia/Makassar">Asia/Makassar (GMT+8)</option>
<option value="Asia/Manila">Asia/Manila (GMT+8)</option>
<option value="Asia/Muscat">Asia/Muscat (GMT+4)</option>
<option value="Asia/Nicosia">Asia/Nicosia (GMT+3)</option>
<option value="Asia/Novokuznetsk">Asia/Novokuznetsk (GMT+7)</option>
<option value="Asia/Novosibirsk">Asia/Novosibirsk (GMT+6)</option>
<option value="Asia/Omsk">Asia/Omsk (GMT+6)</option>
<option value="Asia/Oral">Asia/Oral (GMT+5)</option>
<option value="Asia/Phnom_Penh">Asia/Phnom_Penh (GMT+7)</option>
<option value="Asia/Pontianak">Asia/Pontianak (GMT+7)</option>
<option value="Asia/Pyongyang">Asia/Pyongyang (GMT+9)</option>
<option value="Asia/Qatar">Asia/Qatar (GMT+3)</option>
<option value="Asia/Qyzylorda">Asia/Qyzylorda (GMT+6)</option>
<option value="Asia/Rangoon">Asia/Rangoon (GMT+6)</option>
<option value="Asia/Riyadh">Asia/Riyadh (GMT+3)</option>
<option value="Asia/Saigon">Asia/Saigon (GMT+7)</option>
<option value="Asia/Sakhalin">Asia/Sakhalin (GMT+10)</option>
<option value="Asia/Samarkand">Asia/Samarkand (GMT+5)</option>
<option value="Asia/Seoul">Asia/Seoul (GMT+9)</option>
<option value="Asia/Shanghai">Asia/Shanghai (GMT+8)</option>
<option value="Asia/Singapore">Asia/Singapore (GMT+8)</option>
<option value="Asia/Srednekolymsk">Asia/Srednekolymsk (GMT+11)</option>
<option value="Asia/Taipei">Asia/Taipei (GMT+8)</option>
<option value="Asia/Tashkent">Asia/Tashkent (GMT+5)</option>
<option value="Asia/Tbilisi">Asia/Tbilisi (GMT+4)</option>
<option value="Asia/Tehran">Asia/Tehran (GMT+4)</option>
<option value="Asia/Tel_Aviv">Asia/Tel_Aviv (GMT+3)</option>
<option value="Asia/Thimbu">Asia/Thimbu (GMT+6)</option>
<option value="Asia/Thimphu">Asia/Thimphu (GMT+6)</option>
<option value="Asia/Tokyo">Asia/Tokyo (GMT+9)</option>
<option value="Asia/Ujung_Pandang">Asia/Ujung_Pandang (GMT+8)</option>
<option value="Asia/Ulaanbaatar">Asia/Ulaanbaatar (GMT+8)</option>
<option value="Asia/Ulan_Bator">Asia/Ulan_Bator (GMT+8)</option>
<option value="Asia/Urumqi">Asia/Urumqi (GMT+6)</option>
<option value="Asia/Ust-Nera">Asia/Ust-Nera (GMT+10)</option>
<option value="Asia/Vientiane">Asia/Vientiane (GMT+7)</option>
<option value="Asia/Vladivostok">Asia/Vladivostok (GMT+10)</option>
<option value="Asia/Yakutsk">Asia/Yakutsk (GMT+9)</option>
<option value="Asia/Yekaterinburg">Asia/Yekaterinburg (GMT+5)</option>
<option value="Asia/Yerevan">Asia/Yerevan (GMT+4)</option>
<option value="Atlantic/Azores">Atlantic/Azores (GMT0)</option>
<option value="Atlantic/Bermuda">Atlantic/Bermuda (GMT-3)</option>
<option value="Atlantic/Canary">Atlantic/Canary (GMT+1)</option>
<option value="Atlantic/Cape_Verde">Atlantic/Cape_Verde (GMT-1)</option>
<option value="Atlantic/Faeroe">Atlantic/Faeroe (GMT+1)</option>
<option value="Atlantic/Faroe">Atlantic/Faroe (GMT+1)</option>
<option value="Atlantic/Jan_Mayen">Atlantic/Jan_Mayen (GMT+2)</option>
<option value="Atlantic/Madeira">Atlantic/Madeira (GMT+1)</option>
<option value="Atlantic/Reykjavik">Atlantic/Reykjavik (GMT0)</option>
<option value="Atlantic/South_Georgia">Atlantic/South_Georgia (GMT-2)</option>
<option value="Atlantic/St_Helena">Atlantic/St_Helena (GMT0)</option>
<option value="Atlantic/Stanley">Atlantic/Stanley (GMT-3)</option>
<option value="Australia/ACT">Australia/ACT (GMT+10)</option>
<option value="Australia/Adelaide">Australia/Adelaide (GMT+9)</option>
<option value="Australia/Brisbane">Australia/Brisbane (GMT+10)</option>
<option value="Australia/Broken_Hill">Australia/Broken_Hill (GMT+9)</option>
<option value="Australia/Canberra">Australia/Canberra (GMT+10)</option>
<option value="Australia/Currie">Australia/Currie (GMT+10)</option>
<option value="Australia/Darwin">Australia/Darwin (GMT+9)</option>
<option value="Australia/Eucla">Australia/Eucla (GMT+8)</option>
<option value="Australia/Hobart">Australia/Hobart (GMT+10)</option>
<option value="Australia/LHI">Australia/LHI (GMT+10)</option>
<option value="Australia/Lindeman">Australia/Lindeman (GMT+10)</option>
<option value="Australia/Lord_Howe">Australia/Lord_Howe (GMT+10)</option>
<option value="Australia/Melbourne">Australia/Melbourne (GMT+10)</option>
<option value="Australia/NSW">Australia/NSW (GMT+10)</option>
<option value="Australia/North">Australia/North (GMT+9)</option>
<option value="Australia/Perth">Australia/Perth (GMT+8)</option>
<option value="Australia/Queensland">Australia/Queensland (GMT+10)</option>
<option value="Australia/South">Australia/South (GMT+9)</option>
<option value="Australia/Sydney">Australia/Sydney (GMT+10)</option>
<option value="Australia/Tasmania">Australia/Tasmania (GMT+10)</option>
<option value="Australia/Victoria">Australia/Victoria (GMT+10)</option>
<option value="Australia/West">Australia/West (GMT+8)</option>
<option value="Australia/Yancowinna">Australia/Yancowinna (GMT+9)</option>
<option value="Brazil/Acre">Brazil/Acre (GMT-5)</option>
<option value="Brazil/DeNoronha">Brazil/DeNoronha (GMT-2)</option>
<option value="Brazil/East">Brazil/East (GMT-3)</option>
<option value="Brazil/West">Brazil/West (GMT-4)</option>
<option value="CET">CET (GMT+2)</option>
<option value="CST6CDT">CST6CDT (GMT-5)</option>
<option value="Canada/Atlantic">Canada/Atlantic (GMT-3)</option>
<option value="Canada/Central">Canada/Central (GMT-5)</option>
<optio value="Canada/East-Saskatchewan">Canada/East-Saskatchewan (GMT-6)</option>
<option value="Canada/Eastern">Canada/Eastern (GMT-4)</option>
<option value="Canada/Mountain">Canada/Mountain (GMT-6)</option>
<option value="Canada/Newfoundland">Canada/Newfoundland (GMT-3)</option>
<option value="Canada/Pacific">Canada/Pacific (GMT-7)</option>
<option value="Canada/Saskatchewan">Canada/Saskatchewan (GMT-6)</option>
<option value="Canada/Yukon">Canada/Yukon (GMT-7)</option>
<option value="Chile/Continental">Chile/Continental (GMT-3)</option>
<option value="Chile/EasterIsland">Chile/EasterIsland (GMT-5)</option>
<option value="Cuba">Cuba (GMT-4)</option>
<option value="EET">EET (GMT+3)</option>
<option value="EST">EST (GMT-5)</option>
<option value="EST5EDT">EST5EDT (GMT-4)</option>
<option value="Egypt">Egypt (GMT+2)</option>
<option value="Eire">Eire (GMT+1)</option>
<option value="Europe/Amsterdam">Europe/Amsterdam (GMT+2)</option>
<option value="Europe/Andorra">Europe/Andorra (GMT+2)</option>
<option value="Europe/Athens">Europe/Athens (GMT+3)</option>
<option value="Europe/Belfast">Europe/Belfast (GMT+1)</option>
<option value="Europe/Belgrade">Europe/Belgrade (GMT+2)</option>
<option value="Europe/Berlin">Europe/Berlin (GMT+2)</option>
<option value="Europe/Bratislava">Europe/Bratislava (GMT+2)</option>
<option value="Europe/Brussels">Europe/Brussels (GMT+2)</option>
<option value="Europe/Bucharest">Europe/Bucharest (GMT+3)</option>
<option value="Europe/Budapest">Europe/Budapest (GMT+2)</option>
<option value="Europe/Busingen">Europe/Busingen (GMT+2)</option>
<option value="Europe/Chisinau">Europe/Chisinau (GMT+3)</option>
<option value="Europe/Copenhagen">Europe/Copenhagen (GMT+2)</option>
<option value="Europe/Dublin">Europe/Dublin (GMT+1)</option>
<option value="Europe/Gibraltar">Europe/Gibraltar (GMT+2)</option>
<option value="Europe/Guernsey">Europe/Guernsey (GMT+1)</option>
<option value="Europe/Helsinki">Europe/Helsinki (GMT+3)</option>
<option value="Europe/Isle_of_Man">Europe/Isle_of_Man (GMT+1)</option>
<option value="Europe/Istanbul">Europe/Istanbul (GMT+3)</option>
<option value="Europe/Jersey">Europe/Jersey (GMT+1)</option>
<option value="Europe/Kaliningrad">Europe/Kaliningrad (GMT+2)</option>
<option value="Europe/Kiev">Europe/Kiev (GMT+3)</option>
<option value="Europe/Lisbon">Europe/Lisbon (GMT+1)</option>
<option value="Europe/Ljubljana">Europe/Ljubljana (GMT+2)</option>
<option value="Europe/London">Europe/London (GMT+1)</option>
<option value="Europe/Luxembourg">Europe/Luxembourg (GMT+2)</option>
<option value="Europe/Madrid">Europe/Madrid (GMT+2)</option>
<option value="Europe/Malta">Europe/Malta (GMT+2)</option>
<option value="Europe/Mariehamn">Europe/Mariehamn (GMT+3)</option>
<option value="Europe/Minsk">Europe/Minsk (GMT+3)</option>
<option value="Europe/Monaco">Europe/Monaco (GMT+2)</option>
<option value="Europe/Moscow">Europe/Moscow (GMT+3)</option>
<option value="Europe/Nicosia">Europe/Nicosia (GMT+3)</option>
<option value="Europe/Oslo">Europe/Oslo (GMT+2)</option>
<option value="Europe/Paris">Europe/Paris (GMT+2)</option>
<option value="Europe/Podgorica">Europe/Podgorica (GMT+2)</option>
<option value="Europe/Prague">Europe/Prague (GMT+2)</option>
<option value="Europe/Riga">Europe/Riga (GMT+3)</option>
<option value="Europe/Rome">Europe/Rome (GMT+2)</option>
<option value="Europe/Samara">Europe/Samara (GMT+4)</option>
<option value="Europe/San_Marino">Europe/San_Marino (GMT+2)</option>
<option value="Europe/Sarajevo">Europe/Sarajevo (GMT+2)</option>
<option value="Europe/Simferopol">Europe/Simferopol (GMT+3)</option>
<option value="Europe/Skopje">Europe/Skopje (GMT+2)</option>
<option value="Europe/Sofia">Europe/Sofia (GMT+3)</option>
<option value="Europe/Stockholm">Europe/Stockholm (GMT+2)</option>
<option value="Europe/Tallinn">Europe/Tallinn (GMT+3)</option>
<option value="Europe/Tirane">Europe/Tirane (GMT+2)</option>
<option value="Europe/Tiraspol">Europe/Tiraspol (GMT+3)</option>
<option value="Europe/Uzhgorod">Europe/Uzhgorod (GMT+3)</option>
<option value="Europe/Vaduz">Europe/Vaduz (GMT+2)</option>
<option value="Europe/Vatican">Europe/Vatican (GMT+2)</option>
<option value="Europe/Vienna">Europe/Vienna (GMT+2)</option>
<option value="Europe/Vilnius">Europe/Vilnius (GMT+3)</option>
<option value="Europe/Volgograd">Europe/Volgograd (GMT+3)</option>
<option value="Europe/Warsaw">Europe/Warsaw (GMT+2)</option>
<option value="Europe/Zagreb">Europe/Zagreb (GMT+2)</option>
<option value="Europe/Zaporozhye">Europe/Zaporozhye (GMT+3)</option>
<option value="Europe/Zurich">Europe/Zurich (GMT+2)</option>
<option value="GB">GB (GMT+1)</option>
<option value="GB-Eire">GB-Eire (GMT+1)</option>
<option value="Greenwich">Greenwich (GMT0)</option>
<option value="HST">HST (GMT-10)</option>
<option value="Hongkong">Hongkong (GMT+8)</option>
<option value="Iceland">Iceland (GMT0)</option>
<option value="Indian/Antananarivo">Indian/Antananarivo (GMT+3)</option>
<option value="Indian/Chagos">Indian/Chagos (GMT+6)</option>
<option value="Indian/Christmas">Indian/Christmas (GMT+7)</option>
<option value="Indian/Cocos">Indian/Cocos (GMT+6)</option>
<option value="Indian/Comoro">Indian/Comoro (GMT+3)</option>
<option value="Indian/Kerguelen">Indian/Kerguelen (GMT+5)</option>
<option value="Indian/Mahe">Indian/Mahe (GMT+4)</option>
<option value="Indian/Maldives">Indian/Maldives (GMT+5)</option>
<option value="Indian/Mauritius">Indian/Mauritius (GMT+4)</option>
<option value="Indian/Mayotte">Indian/Mayotte (GMT+3)</option>
<option value="Indian/Reunion">Indian/Reunion (GMT+4)</option>
<option value="Iran">Iran (GMT+4)</option>
<option value="Israel">Israel (GMT+3)</option>
<option value="Jamaica">Jamaica (GMT-5)</option>
<option value="Japan">Japan (GMT+9)</option>
<option value="Kwajalein">Kwajalein (GMT+12)</option>
<option value="Libya">Libya (GMT+2)</option>
<option value="Mexico/BajaNorte">Mexico/BajaNorte (GMT-7)</option>
<option value="Mexico/BajaSur">Mexico/BajaSur (GMT-6)</option>
<option value="Mexico/General">Mexico/General (GMT-5)</option>
<option value="NZ">NZ (GMT+12)</option>
<option value="NZ-CHAT">NZ-CHAT (GMT+12)</option>
<option value="Navajo">Navajo (GMT-6)</option>
<option value="PRC">PRC (GMT+8)</option>
<option value="PST8PDT">PST8PDT (GMT-7)</option>
<option value="Pacific/Apia">Pacific/Apia (GMT+13)</option>
<option value="Pacific/Auckland">Pacific/Auckland (GMT+12)</option>
<option value="Pacific/Bougainville">Pacific/Bougainville (GMT+11)</option>
<option value="Pacific/Chatham">Pacific/Chatham (GMT+12)</option>
<option value="Pacific/Chuuk">Pacific/Chuuk (GMT+10)</option>
<option value="Pacific/Easter">Pacific/Easter (GMT-5)</option>
<option value="Pacific/Efate">Pacific/Efate (GMT+11)</option>
<option value="Pacific/Enderbury">Pacific/Enderbury (GMT+13)</option>
<option value="Pacific/Fakaofo">Pacific/Fakaofo (GMT+13)</option>
<option value="Pacific/Fiji">Pacific/Fiji (GMT+12)</option>
<option value="Pacific/Funafuti">Pacific/Funafuti (GMT+12)</option>
<option value="Pacific/Galapagos">Pacific/Galapagos (GMT-6)</option>
<option value="Pacific/Gambier">Pacific/Gambier (GMT-9)</option>
<option value="Pacific/Guadalcanal">Pacific/Guadalcanal (GMT+11)</option>
<option value="Pacific/Guam">Pacific/Guam (GMT+10)</option>
<option value="Pacific/Honolulu">Pacific/Honolulu (GMT-10)</option>
<option value="Pacific/Johnston">Pacific/Johnston (GMT-10)</option>
<option value="Pacific/Kiritimati">Pacific/Kiritimati (GMT+14)</option>
<option value="Pacific/Kosrae">Pacific/Kosrae (GMT+11)</option>
<option value="Pacific/Kwajalein">Pacific/Kwajalein (GMT+12)</option>
<option value="Pacific/Majuro">Pacific/Majuro (GMT+12)</option>
<option value="Pacific/Marquesas">Pacific/Marquesas (GMT-10)</option>
<option value="Pacific/Midway">Pacific/Midway (GMT-11)</option>
<option value="Pacific/Nauru">Pacific/Nauru (GMT+12)</option>
<option value="Pacific/Niue">Pacific/Niue (GMT-11)</option>
<option value="Pacific/Norfolk">Pacific/Norfolk (GMT+11)</option>
<option value="Pacific/Noumea">Pacific/Noumea (GMT+11)</option>
<option value="Pacific/Pago_Pago">Pacific/Pago_Pago (GMT-11)</option>
<option value="Pacific/Palau">Pacific/Palau (GMT+9)</option>
<option value="Pacific/Pitcairn">Pacific/Pitcairn (GMT-8)</option>
<option value="Pacific/Pohnpei">Pacific/Pohnpei (GMT+11)</option>
<option value="Pacific/Ponape">Pacific/Ponape (GMT+11)</option>
<option value="Pacific/Port_Moresby">Pacific/Port_Moresby (GMT+10)</option>
<option value="Pacific/Rarotonga">Pacific/Rarotonga (GMT-10)</option>
<option value="Pacific/Saipan">Pacific/Saipan (GMT+10)</option>
<option value="Pacific/Samoa">Pacific/Samoa (GMT-11)</option>
<option value="Pacific/Tahiti">Pacific/Tahiti (GMT-10)</option>
<option value="Pacific/Tarawa">Pacific/Tarawa (GMT+12)</option>
<option value="Pacific/Tongatapu">Pacific/Tongatapu (GMT+13)</option>
<option value="Pacific/Truk">Pacific/Truk (GMT+10)</option>
<option value="Pacific/Wake">Pacific/Wake (GMT+12)</option>
<option value="Pacific/Wallis">Pacific/Wallis (GMT+12)</option>
<option value="Pacific/Yap">Pacific/Yap (GMT+10)</option>
<option value="Poland">Poland (GMT+2)</option>
<option value="Portugal">Portugal (GMT+1)</option>
<option value="Singapore">Singapore (GMT+8)</option>
<option value="Turkey">Turkey (GMT+3)</option>
<option value="UCT">UCT (GMT0)</option>
<option value="US/Alaska">US/Alaska (GMT-8)</option>
<option value="US/Aleutian">US/Aleutian (GMT-9)</option>
<option value="US/Arizona">US/Arizona (GMT-7)</option>
<option value="US/Central">US/Central (GMT-5)</option>
<option value="US/East-Indiana">US/East-Indiana (GMT-4)</option>
<option value="US/Eastern">US/Eastern (GMT-4)</option>
<option value="US/Hawaii">US/Hawaii (GMT-10)</option>
<option value="US/Indiana-Starke">US/Indiana-Starke (GMT-5)</option>
<option value="US/Michigan">US/Michigan (GMT-4)</option>
<option value="US/Mountain">US/Mountain (GMT-6)</option>
<option value="US/Pacific">US/Pacific (GMT-7)</option>
<option value="US/Pacific-New">US/Pacific-New (GMT-7)</option>
<option value="US/Samoa">US/Samoa (GMT-11)</option>
<option value="UTC">UTC (GMT0)</option>
<option value="Universal">Universal (GMT0)</option>
<option value="W-SU">W-SU (GMT+3)</option>
<option value="WET">WET (GMT+1)</option>
<option value="Zulu">Zulu (GMT0)</option>
</select>
<svg class="icon icon-arrow-down dropdown-arrow"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-arrow-down"></use></svg>
</div>
</div>
<div class="input form-group">
<div class="formGroup-label">
<label for="name">Business Hours <span>*</span></label>
</div>
<div class="controls js-business-hours"></div>
</div>
<div class="input form-group">
<div class="formGroup-label">
<label for="name">Public Holidays iCal Feed </label>
</div>
<div class="controls">
<input type="text" name="name" class="form-control " value="http://www.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics"/>
</div>
</div>
<div class="input form-group">
<div class="formGroup-label">
<label for="name">Public Holidays</label>
</div>
<div class="controls">
<table class="settings-list">
<thead>
<tr>
<th><%- @T('Active') %>
<th><%- @T('Date') %>
<th><%- @T('Description') %>
<th><%- @T('Action') %>
</thead>
<tbody>
<tr>
<td>
<label class="checkbox-replacement">
<input type="checkbox" checked>
<%- @Icon('checkbox', 'icon-unchecked') %>
<%- @Icon('checkbox-checked', 'icon-checked') %>
</label>
<td><%- @Tdate('2015-12-24') %>
<td>Some Description
<td>
<div class="settings-list-rowControls">
<div class="btn btn--text js-remove">
<%- @Icon('trash') %> <%- @T('Remove') %>
</div>
</div>
<tr>
<td>
<label class="checkbox-replacement">
<input type="checkbox" checked>
<%- @Icon('checkbox', 'icon-unchecked') %>
<%- @Icon('checkbox-checked', 'icon-checked') %>
</label>
<td><%- @Tdate('2015-12-25') %>
<td>Some Description
<td>
<div class="settings-list-rowControls">
<div class="btn btn--text js-remove">
<%- @Icon('trash') %> <%- @T('Remove') %>
</div>
</div>
<tr class="is-inactive">
<td>
<label class="checkbox-replacement">
<input type="checkbox">
<%- @Icon('checkbox', 'icon-unchecked') %>
<%- @Icon('checkbox-checked', 'icon-checked') %>
</label>
<td><%- @Tdate('2015-12-26') %>
<td>Some Description
<td>
<div class="settings-list-rowControls">
<div class="btn btn--text js-remove">
<%- @Icon('trash') %> <%- @T('Remove') %>
</div>
</div>
<tr class="settings-list-controlRow">
<td>
<td>
<!-- Hallo Martin! Allow to add by pressing enter! -->
<input class="form-control form-control--small" type="date" name="public_holidays_date" placeholder="<%- @T('Date') %>"/>
<td>
<input class="form-control form-control--small" type="text" name="public_holidays_description" placeholder="<%- @T('Date Description') %>"/>
<td>
<div class="btn btn--text js-add">
<%- @Icon('plus-small') %> Add Date
</div>
</tbody>
</table>
</div>
</div>
<div class="input form-group">
<div class="formGroup-label">
<label for="name">Note </label>
</div>
<div class="controls">
<textarea class="form-control "></textarea>
</div>
</div>

View file

@ -0,0 +1,26 @@
<div class="horizontal-filters">
<div class="horizontal-filter js-filterElement">
<div class="horizontal-filter-body">
<div class="controls">
<div class="u-positionOrigin js-attributeSelector">
<%- @Icon('arrow-down', 'dropdown-arrow') %>
</div>
</div>
<div class="controls">
<div class="u-positionOrigin js-operator">
<select></select>
<%- @Icon('arrow-down', 'dropdown-arrow') %>
</div>
</div>
<div class="controls js-value"></div>
</div>
<div class="filter-controls">
<div class="filter-control filter-control-remove js-remove" title="<%- @T('Remove rule') %>">
<%- @Icon('minus') %>
</div>
<div class="filter-control filter-control-add js-add" title="<%- @T('Add new rule') %>">
<%- @Icon('plus') %>
</div>
</div>
</div>
</div>

View file

@ -286,9 +286,6 @@ class ApplicationController < ActionController::Base
config[setting.name] = Setting.get(setting.name) config[setting.name] = Setting.get(setting.name)
} }
# get all time zones
config['timezones'] = Calendar.timezones
# remember if we can to swich back to user # remember if we can to swich back to user
if session[:switched_from_user_id] if session[:switched_from_user_id]
config['switch_back_to_possible'] = true config['switch_back_to_possible'] = true

View file

@ -5,7 +5,24 @@ class CalendarsController < ApplicationController
def index def index
return if deny_if_not_role(Z_ROLENAME_ADMIN) return if deny_if_not_role(Z_ROLENAME_ADMIN)
model_index_render(Calendar, params)
assets = {}
# calendars
calendar_ids = []
Calendar.all.each {|calendar|
calendar_ids.push calendar.id
assets = calendar.assets(assets)
}
ical_feeds = Calendar.ical_feeds
timezones = Calendar.timezones
render json: {
calendar_ids: calendar_ids,
ical_feeds: ical_feeds,
timezones: timezones,
assets: assets,
}, status: :ok
end end
def show def show

View file

@ -80,10 +80,11 @@ returns
'US Holidays' => 'en.usa', 'US Holidays' => 'en.usa',
'Vietnamese Holidays' => 'en.vietnamese', 'Vietnamese Holidays' => 'en.vietnamese',
} }
all_feeds = {}
gfeeds.each {|key, name| gfeeds.each {|key, name|
gfeeds[key] = "http://www.google.com/calendar/ical/#{name}%23holiday%40group.v.calendar.google.com/public/basic.ics" all_feeds["http://www.google.com/calendar/ical/#{name}%23holiday%40group.v.calendar.google.com/public/basic.ics"] = key
} }
gfeeds all_feeds
end end
=begin =begin
@ -189,6 +190,9 @@ returns
if !comment.valid_encoding? if !comment.valid_encoding?
comment = comment.encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '?') comment = comment.encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '?')
end end
# ignore daylight saving time entries
next if comment =~ /(daylight saving|sommerzeit|summertime)/i
events[day] = comment events[day] = comment
} }
events.sort.to_h events.sort.to_h