summaryrefslogtreecommitdiff
path: root/views/event.php
diff options
context:
space:
mode:
authorAaron Parecki <aaron@parecki.com>2018-07-11 07:47:27 -0700
committerAaron Parecki <aaron@parecki.com>2018-07-11 07:47:27 -0700
commit33796f7bd5def85a5753cc3b4430769379b60475 (patch)
treea83b138930149a428578a650220aafde5f3423d7 /views/event.php
parentb8c3b34c282249f1bdbc1757fcdfee19981d644b (diff)
set timezone automatically based on location
Diffstat (limited to 'views/event.php')
-rw-r--r--views/event.php48
1 files changed, 36 insertions, 12 deletions
diff --git a/views/event.php b/views/event.php
index aab5ef7..3c26f73 100644
--- a/views/event.php
+++ b/views/event.php
@@ -13,6 +13,14 @@
<input type="text" class="form-control" id="event_name" placeholder="" value="">
</div>
+ <div class="form-group" style="margin-top: 18px;">
+ <label>Location</label>
+ <input type="text" class="form-control" id="event_location" placeholder="" value="">
+ <span class="help-block" id="location_preview"></span>
+ </div>
+
+ <div id="map" class="hidden" style="width: 100%; height: 180px; border-radius: 4px; border: 1px #ccc solid;"></div>
+
<div class="form-group" id="start_date" style="margin-top: 18px;">
<label>Start Date/Time</label>
<div class="form-group">
@@ -32,14 +40,6 @@
</div>
<div class="form-group" style="margin-top: 18px;">
- <label>Location</label>
- <input type="text" class="form-control" id="event_location" placeholder="" value="">
- <span class="help-block" id="location_preview"></span>
- </div>
-
- <div id="map" class="hidden" style="width: 100%; height: 180px; border-radius: 4px; border: 1px #ccc solid;"></div>
-
- <div class="form-group" style="margin-top: 18px;">
<label for="note_category">Tags</label>
<input type="text" id="note_category" value="" class="form-control">
</div>
@@ -67,6 +67,9 @@
var map = null;
<?php endif ?>
+ var d = new Date();
+ var tzOffset = tz_seconds_to_offset(d.getTimezoneOffset() * 60 * -1);
+
var selectedPlace;
if(map) {
var gservice = new google.maps.places.AutocompleteService();
@@ -75,9 +78,17 @@
}
$(function(){
- var d = new Date();
- $("#start_date .timezone").val(tz_seconds_to_offset(d.getTimezoneOffset() * 60 * -1));
- /* $("#end_date .timezone").val(tz_seconds_to_offset(d.getTimezoneOffset() * 60 * -1)); */
+ // Start the event timezone offset in the browser's timezone
+ $("#start_date .timezone").attr("placeholder", tzOffset);
+ $("#end_date .timezone").attr("placeholder", tzOffset);
+
+ // As soon as a time is entered, move the placeholder offset to the value
+ $("#start_date .time").on("keydown", function(){
+ $("#start_date .timezone").val($("#start_date .timezone").attr("placeholder"));
+ });
+ $("#end_date .time").on("keydown", function(){
+ $("#end_date .timezone").val($("#end_date .timezone").attr("placeholder"));
+ });
if(map) {
$("#event_location").typeahead({
@@ -105,12 +116,13 @@
gplaces.getDetails({
placeId: suggestion.place_id,
- fields: ["geometry", "name", "address_component", "url"]
+ fields: ["geometry", "name", "address_component", "url", "utc_offset"]
}, function(result, status) {
if(status != google.maps.places.PlacesServiceStatus.OK) {
alert('Cannot find address');
return;
}
+ console.log(result);
map.setCenter(result.geometry.location);
@@ -168,6 +180,18 @@
selectedPlace['properties']['country-name'] = [country];
}
+ if(result.utc_offset) {
+ tzOffset = tz_seconds_to_offset(result.utc_offset * 60);
+ $("#start_date .timezone").attr("placeholder", tzOffset);
+ $("#end_date .timezone").attr("placeholder", tzOffset);
+ if($("#start_date .timezone").val()) {
+ $("#start_date .timezone").val($("#start_date .timezone").attr("placeholder"));
+ }
+ if($("#end_date .timezone").val()) {
+ $("#end_date .timezone").val($("#end_date .timezone").attr("placeholder"));
+ }
+ }
+
$("#map").removeClass("hidden");
$("#location_preview").text('');
});