From 9fa7819786abbce0cf020c66020c542421e909b9 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Mon, 3 Oct 2016 15:07:46 +0100 Subject: [PATCH 1/4] Hopefully fix issue 21, response now has a places array which contains the results, use this. Before results were directly in response --- resources/assets/js/newnote.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/assets/js/newnote.js b/resources/assets/js/newnote.js index 265da4d7..e3322456 100644 --- a/resources/assets/js/newnote.js +++ b/resources/assets/js/newnote.js @@ -31,10 +31,10 @@ function addPlacesMap(latitude, longitude, uncertainty) { if (j.length > 0) { var i; var places = []; - for (i = 0; i < j.length; ++i) { + for (i = 0; i < j.places.length; ++i) { var latlng = parseLocation(j[i].location); - var name = j[i].name; - var slug = j[i].slug; + var name = j.places[i].name; + var slug = j.places[i].slug; places.push([name, slug, latlng[0], latlng[1]]); } //add a map with the nearby places From a6d206c8f168a929750b330f0fde06302f66afed Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Mon, 3 Oct 2016 15:14:46 +0100 Subject: [PATCH 2/4] public resources derived from newnote.js asset --- public/assets/js/maps/newnote.js.map | 2 +- public/assets/js/newnote.js | 2 +- public/assets/js/newnote.js.br | Bin 1603 -> 1612 bytes public/assets/js/newnote.js.gz | Bin 1817 -> 1822 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/assets/js/maps/newnote.js.map b/public/assets/js/maps/newnote.js.map index e3de2347..24c841ea 100644 --- a/public/assets/js/maps/newnote.js.map +++ b/public/assets/js/maps/newnote.js.map @@ -1 +1 @@ -{"version":3,"sources":["newnote.js"],"names":["getLocation","navigator","geolocation","getCurrentPosition","position","addPlacesMap","coords","latitude","longitude","accuracy","uncertainty","fetch","credentials","method","then","response","json","j","error","alertify","reset","error_description","length","i","places","latlng","parseLocation","location","name","slug","push","addMap","catch","err","console","arguments","form","button","parentNode","div","document","createElement","setAttribute","appendChild","L","mapbox","accessToken","map","setView","addLayer","tileLayer","detectRetina","marker","draggable","addTo","on","placeFormLatitude","querySelector","value","getLatitudeFromMapboxMarker","getLatLng","placeFormLongitude","getLongitudeFromMapboxMarker","selectEl","noLocation","noLocText","createTextNode","insertBefore","forEach","item","option","text","dataset","placeMarker","icon","marker-size","marker-symbol","marker-color","bindPopup","closeButton","panTo","selectPlace","addEventListener","placeLat","selectedIndex","placeLon","newLocButton","nameLabel","classList","add","nameEl","descLabel","descEl","latLabel","latEl","lonLabel","lonEl","placeSubmit","formData","FormData","append","body","placeJson","Error","urlParts","split","pop","removeChild","labels","querySelectorAll","removeLayer","newOption","newPlaceMarker","newName","placeError","point","re","resultArray","exec","selected","replace","disabled"],"mappings":"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","file":"newnote.js","sourcesContent":["/* global L, alertify */\nif ('geolocation' in navigator) {\n var button = document.querySelector('#locate');\n if (button.addEventListener) {\n //if we have javascript, event listeners and geolocation, make the locate\n //button clickable and add event\n button.disabled = false;\n button.addEventListener('click', getLocation);\n }\n}\n\nfunction getLocation() {\n navigator.geolocation.getCurrentPosition(function (position) {\n //the locate button has been clicked so add the places/map\n addPlacesMap(position.coords.latitude, position.coords.longitude, position.coords.accuracy);\n });\n}\n\nfunction addPlacesMap(latitude, longitude, uncertainty) {\n //get the nearby places\n fetch('/places/near/' + latitude + '/' + longitude + '?u=' + uncertainty, {\n credentials: 'same-origin',\n method: 'get'\n }).then(function (response) {\n return response.json();\n }).then(function (j) {\n if (j.error == true) {\n alertify.reset();\n alertify.error(j.error_description);\n }\n if (j.length > 0) {\n var i;\n var places = [];\n for (i = 0; i < j.length; ++i) {\n var latlng = parseLocation(j[i].location);\n var name = j[i].name;\n var slug = j[i].slug;\n places.push([name, slug, latlng[0], latlng[1]]);\n }\n //add a map with the nearby places\n addMap(latitude, longitude, places);\n } else {\n //add a map with just current location\n addMap(latitude, longitude);\n }\n }).catch(function (err) {\n console.error(err);\n });\n}\n\nfunction addMap(latitude, longitude, places) {\n //make places null if not supplied\n if (arguments.length == 2) {\n places = null;\n }\n var form = button.parentNode;\n var div = document.createElement('div');\n div.setAttribute('id', 'map');\n //add the map div\n form.appendChild(div);\n L.mapbox.accessToken = 'pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiVlpndW1EYyJ9.aP9fxAqLKh7lj0LpFh5k1w';\n var map = L.mapbox.map('map', 'jonnybarnes.gnoihnim')\n .setView([latitude, longitude], 15)\n .addLayer(L.mapbox.tileLayer('jonnybarnes.gnoihnim', {\n detectRetina: true\n }));\n //add a marker for the current location\n var marker = L.marker([latitude, longitude], {\n draggable: true\n }).addTo(map);\n //when the location marker is dragged, if the new place form elements exist\n //update the lat/lng values\n marker.on('dragend', function () {\n var placeFormLatitude = document.querySelector('#place-latitude');\n if (placeFormLatitude !== null) {\n placeFormLatitude.value = getLatitudeFromMapboxMarker(marker.getLatLng());\n }\n var placeFormLongitude = document.querySelector('#place-longitude');\n if (placeFormLongitude !== null) {\n placeFormLongitude.value = getLongitudeFromMapboxMarker(marker.getLatLng());\n }\n });\n //create the \n places.forEach(function (item) {\n var option = document.createElement('option');\n option.setAttribute('value', item[1]);\n var text = document.createTextNode(item[0]);\n option.appendChild(text);\n option.dataset.latitude = item[2];\n option.dataset.longitude = item[3];\n selectEl.appendChild(option);\n var placeMarker = L.marker([item[2], item[3]], {\n icon: L.mapbox.marker.icon({\n 'marker-size': 'large',\n 'marker-symbol': 'building',\n 'marker-color': '#fa0'\n })\n }).addTo(map);\n var name = 'Name: ' + item[0];\n placeMarker.bindPopup(name, {\n closeButton: true\n });\n placeMarker.on('click', function () {\n map.panTo([item[2], item[3]]);\n selectPlace(item[1]);\n });\n });\n //add an event listener\n selectEl.addEventListener('change', function () {\n if (selectEl.value !== 'no-location') {\n var placeLat = selectEl[selectEl.selectedIndex].dataset.latitude;\n var placeLon = selectEl[selectEl.selectedIndex].dataset.longitude;\n map.panTo([placeLat, placeLon]);\n }\n });\n }\n //add a button to add a new place\n var newLocButton = document.createElement('button');\n newLocButton.setAttribute('type', 'button');\n newLocButton.setAttribute('id', 'create-new-place');\n newLocButton.appendChild(document.createTextNode('Create New Place?'));\n //the event listener\n newLocButton.addEventListener('click', function() {\n //add the form elements\n var nameLabel = document.createElement('label');\n nameLabel.setAttribute('for', 'place-name');\n nameLabel.classList.add('place-label');\n nameLabel.appendChild(document.createTextNode('Place Name:'));\n var nameEl = document.createElement('input');\n nameEl.setAttribute('placeholder', 'Name');\n nameEl.setAttribute('name', 'place-name');\n nameEl.setAttribute('id', 'place-name');\n nameEl.setAttribute('type', 'text');\n var descLabel = document.createElement('label');\n descLabel.setAttribute('for', 'place-description');\n descLabel.classList.add('place-label');\n descLabel.appendChild(document.createTextNode('Place Description:'));\n var descEl = document.createElement('input');\n descEl.setAttribute('placeholder', 'Description');\n descEl.setAttribute('name', 'place-description');\n descEl.setAttribute('id', 'place-description');\n descEl.setAttribute('type', 'text');\n var latLabel = document.createElement('label');\n latLabel.setAttribute('for', 'place-latitude');\n latLabel.classList.add('place-label');\n latLabel.appendChild(document.createTextNode('Place Latitude:'));\n var latEl = document.createElement('input');\n latEl.setAttribute('name', 'place-latitude');\n latEl.setAttribute('id', 'place-latitude');\n latEl.setAttribute('type', 'text');\n latEl.value = getLatitudeFromMapboxMarker(marker.getLatLng());\n var lonLabel = document.createElement('label');\n lonLabel.setAttribute('for', 'place-longitude');\n lonLabel.classList.add('place-label');\n lonLabel.appendChild(document.createTextNode('Place Longitude:'));\n var lonEl = document.createElement('input');\n lonEl.setAttribute('name', 'place-longitude');\n lonEl.setAttribute('id', 'place-longitude');\n lonEl.setAttribute('type', 'text');\n lonEl.value = getLongitudeFromMapboxMarker(marker.getLatLng());\n var placeSubmit = document.createElement('button');\n placeSubmit.setAttribute('id', 'place-submit');\n placeSubmit.setAttribute('value', 'Submit New Place');\n placeSubmit.setAttribute('name', 'place-submit');\n placeSubmit.setAttribute('type', 'button');\n placeSubmit.appendChild(document.createTextNode('Submit New Place'));\n form.appendChild(nameLabel);\n form.appendChild(nameEl);\n form.appendChild(descLabel);\n form.appendChild(descEl);\n form.appendChild(latLabel);\n form.appendChild(latEl);\n form.appendChild(lonLabel);\n form.appendChild(lonEl);\n form.appendChild(placeSubmit);\n //the event listener for the new place form\n placeSubmit.addEventListener('click', function () {\n //create the form data to send\n var formData = new FormData();\n formData.append('place-name', document.querySelector('#place-name').value);\n formData.append('place-description', document.querySelector('#place-description').value);\n formData.append('place-latitude', document.querySelector('#place-latitude').value);\n formData.append('place-longitude', document.querySelector('#place-longitude').value);\n //post the new place\n fetch('/places/new', {\n //send cookies with the request\n credentials: 'same-origin',\n method: 'post',\n body: formData\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (placeJson) {\n if (placeJson.error == true) {\n throw new Error(placeJson.error_description);\n }\n //create the slug from the url\n var urlParts = placeJson.split('/');\n var slug = urlParts.pop();\n //remove un-needed form elements\n form.removeChild(document.querySelector('#place-name'));\n form.removeChild(document.querySelector('#place-description'));\n form.removeChild(document.querySelector('#place-latitude'));\n form.removeChild(document.querySelector('#place-longitude'));\n var labels = document.querySelectorAll('.place-label');\n for (var i = 0; i < labels.length; ++i) {\n form.removeChild(labels[i]);\n }\n form.removeChild(document.querySelector('#place-submit'));\n form.removeChild(document.querySelector('#create-new-place'));\n //remove location marker\n map.removeLayer(marker);\n //add place marker\n var newOption = document.createElement('option');\n newOption.setAttribute('value', slug);\n newOption.appendChild(document.createTextNode(placeJson['name']));\n newOption.dataset.latitude = placeJson['latitude'];\n newOption.dataset.longitude = placeJson['longitude'];\n selectEl.appendChild(newOption);\n var newPlaceMarker = L.marker([placeJson['latitude'], placeJson['longitude']], {\n icon: L.mapbox.marker.icon({\n 'marker-size': 'large',\n 'marker-symbol': 'building',\n 'marker-color': '#fa0'\n })\n }).addTo(map);\n var newName = 'Name: ' + placeJson['name'];\n newPlaceMarker.bindPopup(newName, {\n closeButton: true\n });\n newPlaceMarker.on('click', function () {\n map.panTo([placeJson['latitude'], placeJson['longitude']]);\n selectPlace(slug);\n });\n //make selected\n selectPlace(slug);\n }).catch(function (placeError) {\n alertify.reset();\n alertify.error(placeError);\n });\n });\n });\n form.insertBefore(newLocButton, div);\n}\n\nfunction parseLocation(point) {\n var re = /\\((.*)\\)/;\n var resultArray = re.exec(point);\n var location = resultArray[1].split(' ');\n\n return [location[1], location[0]];\n}\n\nfunction selectPlace(slug) {\n document.querySelector('select [value=' + slug + ']').selected = true;\n}\n\nfunction getLatitudeFromMapboxMarker(latlng) {\n var resultArray = /\\((.*)\\)/.exec(latlng);\n var location = resultArray[1].split(' ');\n\n return location[0].replace(',', '');\n}\n\nfunction getLongitudeFromMapboxMarker(latlng) {\n var resultArray = /\\((.*)\\)/.exec(latlng);\n var location = resultArray[1].split(' ');\n\n return location[1];\n}\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["newnote.js"],"names":["getLocation","navigator","geolocation","getCurrentPosition","position","addPlacesMap","coords","latitude","longitude","accuracy","uncertainty","fetch","credentials","method","then","response","json","j","error","alertify","reset","error_description","length","i","places","latlng","parseLocation","location","name","slug","push","addMap","catch","err","console","arguments","form","button","parentNode","div","document","createElement","setAttribute","appendChild","L","mapbox","accessToken","map","setView","addLayer","tileLayer","detectRetina","marker","draggable","addTo","on","placeFormLatitude","querySelector","value","getLatitudeFromMapboxMarker","getLatLng","placeFormLongitude","getLongitudeFromMapboxMarker","selectEl","noLocation","noLocText","createTextNode","insertBefore","forEach","item","option","text","dataset","placeMarker","icon","marker-size","marker-symbol","marker-color","bindPopup","closeButton","panTo","selectPlace","addEventListener","placeLat","selectedIndex","placeLon","newLocButton","nameLabel","classList","add","nameEl","descLabel","descEl","latLabel","latEl","lonLabel","lonEl","placeSubmit","formData","FormData","append","body","placeJson","Error","urlParts","split","pop","removeChild","labels","querySelectorAll","removeLayer","newOption","newPlaceMarker","newName","placeError","point","re","resultArray","exec","selected","replace","disabled"],"mappings":"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","file":"newnote.js","sourcesContent":["/* global L, alertify */\nif ('geolocation' in navigator) {\n var button = document.querySelector('#locate');\n if (button.addEventListener) {\n //if we have javascript, event listeners and geolocation, make the locate\n //button clickable and add event\n button.disabled = false;\n button.addEventListener('click', getLocation);\n }\n}\n\nfunction getLocation() {\n navigator.geolocation.getCurrentPosition(function (position) {\n //the locate button has been clicked so add the places/map\n addPlacesMap(position.coords.latitude, position.coords.longitude, position.coords.accuracy);\n });\n}\n\nfunction addPlacesMap(latitude, longitude, uncertainty) {\n //get the nearby places\n fetch('/places/near/' + latitude + '/' + longitude + '?u=' + uncertainty, {\n credentials: 'same-origin',\n method: 'get'\n }).then(function (response) {\n return response.json();\n }).then(function (j) {\n if (j.error == true) {\n alertify.reset();\n alertify.error(j.error_description);\n }\n if (j.length > 0) {\n var i;\n var places = [];\n for (i = 0; i < j.places.length; ++i) {\n var latlng = parseLocation(j[i].location);\n var name = j.places[i].name;\n var slug = j.places[i].slug;\n places.push([name, slug, latlng[0], latlng[1]]);\n }\n //add a map with the nearby places\n addMap(latitude, longitude, places);\n } else {\n //add a map with just current location\n addMap(latitude, longitude);\n }\n }).catch(function (err) {\n console.error(err);\n });\n}\n\nfunction addMap(latitude, longitude, places) {\n //make places null if not supplied\n if (arguments.length == 2) {\n places = null;\n }\n var form = button.parentNode;\n var div = document.createElement('div');\n div.setAttribute('id', 'map');\n //add the map div\n form.appendChild(div);\n L.mapbox.accessToken = 'pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiVlpndW1EYyJ9.aP9fxAqLKh7lj0LpFh5k1w';\n var map = L.mapbox.map('map', 'jonnybarnes.gnoihnim')\n .setView([latitude, longitude], 15)\n .addLayer(L.mapbox.tileLayer('jonnybarnes.gnoihnim', {\n detectRetina: true\n }));\n //add a marker for the current location\n var marker = L.marker([latitude, longitude], {\n draggable: true\n }).addTo(map);\n //when the location marker is dragged, if the new place form elements exist\n //update the lat/lng values\n marker.on('dragend', function () {\n var placeFormLatitude = document.querySelector('#place-latitude');\n if (placeFormLatitude !== null) {\n placeFormLatitude.value = getLatitudeFromMapboxMarker(marker.getLatLng());\n }\n var placeFormLongitude = document.querySelector('#place-longitude');\n if (placeFormLongitude !== null) {\n placeFormLongitude.value = getLongitudeFromMapboxMarker(marker.getLatLng());\n }\n });\n //create the \n places.forEach(function (item) {\n var option = document.createElement('option');\n option.setAttribute('value', item[1]);\n var text = document.createTextNode(item[0]);\n option.appendChild(text);\n option.dataset.latitude = item[2];\n option.dataset.longitude = item[3];\n selectEl.appendChild(option);\n var placeMarker = L.marker([item[2], item[3]], {\n icon: L.mapbox.marker.icon({\n 'marker-size': 'large',\n 'marker-symbol': 'building',\n 'marker-color': '#fa0'\n })\n }).addTo(map);\n var name = 'Name: ' + item[0];\n placeMarker.bindPopup(name, {\n closeButton: true\n });\n placeMarker.on('click', function () {\n map.panTo([item[2], item[3]]);\n selectPlace(item[1]);\n });\n });\n //add an event listener\n selectEl.addEventListener('change', function () {\n if (selectEl.value !== 'no-location') {\n var placeLat = selectEl[selectEl.selectedIndex].dataset.latitude;\n var placeLon = selectEl[selectEl.selectedIndex].dataset.longitude;\n map.panTo([placeLat, placeLon]);\n }\n });\n }\n //add a button to add a new place\n var newLocButton = document.createElement('button');\n newLocButton.setAttribute('type', 'button');\n newLocButton.setAttribute('id', 'create-new-place');\n newLocButton.appendChild(document.createTextNode('Create New Place?'));\n //the event listener\n newLocButton.addEventListener('click', function() {\n //add the form elements\n var nameLabel = document.createElement('label');\n nameLabel.setAttribute('for', 'place-name');\n nameLabel.classList.add('place-label');\n nameLabel.appendChild(document.createTextNode('Place Name:'));\n var nameEl = document.createElement('input');\n nameEl.setAttribute('placeholder', 'Name');\n nameEl.setAttribute('name', 'place-name');\n nameEl.setAttribute('id', 'place-name');\n nameEl.setAttribute('type', 'text');\n var descLabel = document.createElement('label');\n descLabel.setAttribute('for', 'place-description');\n descLabel.classList.add('place-label');\n descLabel.appendChild(document.createTextNode('Place Description:'));\n var descEl = document.createElement('input');\n descEl.setAttribute('placeholder', 'Description');\n descEl.setAttribute('name', 'place-description');\n descEl.setAttribute('id', 'place-description');\n descEl.setAttribute('type', 'text');\n var latLabel = document.createElement('label');\n latLabel.setAttribute('for', 'place-latitude');\n latLabel.classList.add('place-label');\n latLabel.appendChild(document.createTextNode('Place Latitude:'));\n var latEl = document.createElement('input');\n latEl.setAttribute('name', 'place-latitude');\n latEl.setAttribute('id', 'place-latitude');\n latEl.setAttribute('type', 'text');\n latEl.value = getLatitudeFromMapboxMarker(marker.getLatLng());\n var lonLabel = document.createElement('label');\n lonLabel.setAttribute('for', 'place-longitude');\n lonLabel.classList.add('place-label');\n lonLabel.appendChild(document.createTextNode('Place Longitude:'));\n var lonEl = document.createElement('input');\n lonEl.setAttribute('name', 'place-longitude');\n lonEl.setAttribute('id', 'place-longitude');\n lonEl.setAttribute('type', 'text');\n lonEl.value = getLongitudeFromMapboxMarker(marker.getLatLng());\n var placeSubmit = document.createElement('button');\n placeSubmit.setAttribute('id', 'place-submit');\n placeSubmit.setAttribute('value', 'Submit New Place');\n placeSubmit.setAttribute('name', 'place-submit');\n placeSubmit.setAttribute('type', 'button');\n placeSubmit.appendChild(document.createTextNode('Submit New Place'));\n form.appendChild(nameLabel);\n form.appendChild(nameEl);\n form.appendChild(descLabel);\n form.appendChild(descEl);\n form.appendChild(latLabel);\n form.appendChild(latEl);\n form.appendChild(lonLabel);\n form.appendChild(lonEl);\n form.appendChild(placeSubmit);\n //the event listener for the new place form\n placeSubmit.addEventListener('click', function () {\n //create the form data to send\n var formData = new FormData();\n formData.append('place-name', document.querySelector('#place-name').value);\n formData.append('place-description', document.querySelector('#place-description').value);\n formData.append('place-latitude', document.querySelector('#place-latitude').value);\n formData.append('place-longitude', document.querySelector('#place-longitude').value);\n //post the new place\n fetch('/places/new', {\n //send cookies with the request\n credentials: 'same-origin',\n method: 'post',\n body: formData\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (placeJson) {\n if (placeJson.error == true) {\n throw new Error(placeJson.error_description);\n }\n //create the slug from the url\n var urlParts = placeJson.split('/');\n var slug = urlParts.pop();\n //remove un-needed form elements\n form.removeChild(document.querySelector('#place-name'));\n form.removeChild(document.querySelector('#place-description'));\n form.removeChild(document.querySelector('#place-latitude'));\n form.removeChild(document.querySelector('#place-longitude'));\n var labels = document.querySelectorAll('.place-label');\n for (var i = 0; i < labels.length; ++i) {\n form.removeChild(labels[i]);\n }\n form.removeChild(document.querySelector('#place-submit'));\n form.removeChild(document.querySelector('#create-new-place'));\n //remove location marker\n map.removeLayer(marker);\n //add place marker\n var newOption = document.createElement('option');\n newOption.setAttribute('value', slug);\n newOption.appendChild(document.createTextNode(placeJson['name']));\n newOption.dataset.latitude = placeJson['latitude'];\n newOption.dataset.longitude = placeJson['longitude'];\n selectEl.appendChild(newOption);\n var newPlaceMarker = L.marker([placeJson['latitude'], placeJson['longitude']], {\n icon: L.mapbox.marker.icon({\n 'marker-size': 'large',\n 'marker-symbol': 'building',\n 'marker-color': '#fa0'\n })\n }).addTo(map);\n var newName = 'Name: ' + placeJson['name'];\n newPlaceMarker.bindPopup(newName, {\n closeButton: true\n });\n newPlaceMarker.on('click', function () {\n map.panTo([placeJson['latitude'], placeJson['longitude']]);\n selectPlace(slug);\n });\n //make selected\n selectPlace(slug);\n }).catch(function (placeError) {\n alertify.reset();\n alertify.error(placeError);\n });\n });\n });\n form.insertBefore(newLocButton, div);\n}\n\nfunction parseLocation(point) {\n var re = /\\((.*)\\)/;\n var resultArray = re.exec(point);\n var location = resultArray[1].split(' ');\n\n return [location[1], location[0]];\n}\n\nfunction selectPlace(slug) {\n document.querySelector('select [value=' + slug + ']').selected = true;\n}\n\nfunction getLatitudeFromMapboxMarker(latlng) {\n var resultArray = /\\((.*)\\)/.exec(latlng);\n var location = resultArray[1].split(' ');\n\n return location[0].replace(',', '');\n}\n\nfunction getLongitudeFromMapboxMarker(latlng) {\n var resultArray = /\\((.*)\\)/.exec(latlng);\n var location = resultArray[1].split(' ');\n\n return location[1];\n}\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/public/assets/js/newnote.js b/public/assets/js/newnote.js index c5ad8983..996d37c5 100644 --- a/public/assets/js/newnote.js +++ b/public/assets/js/newnote.js @@ -1,2 +1,2 @@ -function getLocation(){navigator.geolocation.getCurrentPosition(function(e){addPlacesMap(e.coords.latitude,e.coords.longitude,e.coords.accuracy)})}function addPlacesMap(e,t,a){fetch("/places/near/"+e+"/"+t+"?u="+a,{credentials:"same-origin",method:"get"}).then(function(e){return e.json()}).then(function(a){if(1==a.error&&(alertify.reset(),alertify.error(a.error_description)),a.length>0){var n,r=[];for(n=0;n0){var n,r=[];for(n=0;n|9EE+W(dZ1;Gh3{_L;bVW|}EFtxiN z_i3o$39aIF*RJi*Tdeza|HWr)?Ad7|%rb90s&=}(j6J%rPigV40=c9wsqHKu*D3G4 z_*>fO*RlQ?A~(&By_vqvoioU0W=zKPm)^pEr|9KQTX>FN!f?g+IZI+SX4EIX$u(9x zV?5&mOP}Q@>Hh9!&RMt3CaX_t_**1C&EmooJ6i>@>sz^HIj5*{zv|egR9SV>_Sm%q zzI(#YR_&9G;xT`JKiuao&*#_E?<|g=-T7aY)%Md29m~C+bNtUQRu`}1oBd|i;hD$R z+z37VJHz_b+rIa{YJV#*Vq5wqy7J14Uhc1{n0i5X2#bh{oh^p^ZT#6eMj}JKd)Z?-+oVg&e!y-?O(Ds z7RJRN3h+43-X|84Y!_wGedhY|88fGCdn_R)!?xh#f|zRoypon%>Rz_q+wW5mbGeYy zHkCc%-G^)Ieb?3~bN1|hyei@Tq{lz!6#dnEaIq(LxxxeS`sZKI$p^aH?(JQ}@W}Uw z+?8Nuj{hqHJa6aq?<{Cvc`8`&d*i|`gGUY>j}x`uws!e; zf$Oyo{4ygJ=+0Dq%|9_oNS{O0O!T+#+NTDWUcH;Yigjm^`LAaZD>pr1lI-MNwIH;@ zzQTxkrO58*dEt*N=B~X|Z(e_4>YXnd5@PA6j`q8;Pb~QJ!t64qZO&WU$oGy{XYuo2 zH(axDuE}NZ5GIek6C^qmYOVcz=jy4pOYVp;jf#5nU~!Tym!7B2+3dbqSACrO7Cc!a z`71_fukusY)eHsp_v~!d#ax@3roUP8T&(E8UMsf`ZPIsjtXqBd|6Z)S;YYpmPyf`>lQL@s9Pf3C6Rd7yG{B_9}E1i~HgpwLiSuO!0rm-^@ow z3q5r;mK^?*zHRT9Ai+B6p^#O!d4z9yF_FiXelxelA+hgoJ*;%pb2Z=F*k_jl3J ziN^KQ7FU0$WdEOgyfRDi=7OtDyL}ax=w{?MZ(sTIgk1Bcl@tG55v{p2;8J+W-8n(tC)ID>=+M0B_%@Sia`cInXAj@W9UrsIZIcHEG*zEdsrk*}?)kjvYcar-9 zPt9;CtvT4BI%js*)rc!8J8r4eZ19S#Y`JAra6#9o^2d=2bIv4At&DdPV9hJFd;j^= z>;kT3IZMx$Z2hNSv`1#*rXNN#5;*5({9od;aNqv9jbd|eh)lk8Sf4$xqDx;!Y|2~7 zOP_pBExhZs>#L#TAo4topaw9 zd;W_&%2>Vqj?FBeL-zJrd)0ITGIZ8=N3cz-nWPxiKIzexOqZQEkBdjn*ZJMgtN&QI zto~KpO%<<|qSfDh7N4COXntABl}FU|t7rLrnMDO%J?2FzR|IBPoPXn>S^qnr{)=<0 z%wp}Vw|89Iedm7W(Jsig+uEjHI$^ff%D8XL*BT|}I#j#$esA3P(z$)Q+;_dg$E$8F zShry7-#g!G7f<$9&RKQmx~DiBPs6;Y|Alw{{`A_!X2a&iH~v3=r6yx?b%cyl z6-&;RUjixLm%aLII`3$2Hn+j;Q=3iJ$z1<37G^X(w-44--D19e0_ HQtDU%O4S)7 delta 1567 zcmX@ZbC`!&`j^B+X3P3(HSu?s>b$-%a}O^^aC(t(vGx21UelQl-+A};_*wNL){xAW zZ0(7uQ-7|zc5R2=Bef6J{`t{aAK47qZd{$%Q`C29ch_B6S2x~=N=IHi=Hq-6>rl1$ zdwR;3UU@^!O}RZc^>h1$mQ)ydFN|L%?)&BNt}W4RR`JP47ThbIRJJgot$yS4voj3N zCpZcJ(4KI=B1XpN!kuk1Z8oyJnZA3&k;Y|TIvsWNvc#=~G`z)31ae)YUg&+7h-zl7 zh@G+eS6PN(%-;HV!&1{T>)#jkuf5g!~fQrMl!o?Q?L8-N{4uYQNn=HC|myQE&goP7ZO4aH5Vq-naz#fRTsYBwwtkiZqcdQAHSc+ z{`_A5Jo(3mKX)JfJpbpF@bCLyPw&6}zD%d?=FE88zyBZpO53pZ*1SOT|m6%fnR3C z0=3LZp{*X4C&gQed~<6*XIu7&RQy<&<+$L`Uc2Y6tJdsr_?FPAm65ww^v`ytl_Krp z&sr_~W{3WI#lLIP?D~jP;*7POZx~fwjx?WfQ`)f^x@TY!@d0KkHQRl;2OET({ zZYyhTZFE=2cKtmq?Ev%g;_qt@>@-8|{4mzqRKVT)eu zk2QVU5 z@z&(yiLJBUKCJhNv3MVKO-_$PS8S>LG-mca(|DIMpMRmND?Xon|BH>~$2RR}pI`Q& zetp@T>0({HQMxTVTLQK%*vorvX=Q%Dy&iZo1+USue);e&{ew$ z7p}2C_Q~{!S|OsUwb@8x?1k=nj<`Vt#tpQlZ@ zI^)Wc=v*PY=%s6H<`^;GHui3-PRf{hMsP}Iywe_*a|!#7&YocYNW?tS^YqJ@zwu8h zER|AkpH65}^;-0IGGEuLzi)ZAyg0IK#uT}I&)e^4+7(9xd|U2++F0|qnfI>T#7B+6 zC-ls}YgA%7Uc6LPU^49r2nZMUqXWZN~$(K+6X*n#vJN#Q~Q07rPo69-H zj#pwc`jxC$eS|Ol&EyMYaXlt&DVEjYyCVsW;ULNyifl-@9b46m6D6N9eC&0s|RW(Hm!;+zOFq39M6K5Zakh`f|y|$y|5NOxg2$ z&c*1n`l(0fZmeW=%Y9+_Y0v#A?pw8)QZFO7|2AH*ePV$^{fk-aswW@&G$VP=y|@PL z>5`T!{~qdO%kw`WC?ojiy6nX5x0_@N%c7$M7R-IJ%2J&-{@})qnE0uQ}7Vv&jvexFB*Sz)EzklB)!xQH2*>O_WPBMq*zWB?TxH)t;)7x!%r9VV>g?9Pb)^ic#~{`~oR*>tH-rS==|4UT3;k#V6l3l9{RRP8gJxiENYvWVw)E~&=X z%+lwicy9c^Ro}GtC!5GBqm0w}e;TdsEi*s1u=~+#S4N4T6Z$)|7QR?@s_mh2c3A%& z_x`3>E&kQUv8hwqKJ2c(DjDngOXgLv^)II5f4QzZrdEC^F^#j-(pt=X?WxGIlG#Nn z9Fy2tXI33nQ+9M@R(NyR{Zx|Pd#Ozs#WE{JHlE6VcubDepQG2Fq)Pb4hD`zSHbe0osuq(=Zf46Qw1Gj%cyL<`z2B(D$6SvMW zn$G>s!t3pBAI8u2wl|kb$L5Ov`=j#ddT#c)3EFkl$Gaqzy%(SVZNei{>3$~9^GDg8 z6ZK4%>Rq?FY+tT4U)>t$Q6Il$h1;vF2(4ZtvGBU$gZ?LHy;D)z%vyOSyueP;eeUky zx%x}Q;%DtzYuv5tJCp6+=c5X?UrwG8M#8Y_}#AE5;>%FQp>f;uy^|&@%)(ws&^P0%w&tU zV|nw|cd>iao$f6bEpaK!EEr;sOg+@w$$r1{*P-ccyL=sO?@W)FeQZ~)z%`9>p0Zl~ z8($qa)GIr`X3jXC}lX?q0IeK>A zes%Rwd3gOFucjFfl9>8A&D2iJP)Kr;7JfBjgVTJu3%;gRUnXu`&A;Pu@C}bsWzwA9 z`*oRw@5bars3e6b2~SG8cbMt-p^4MX4Afk{Moye2YN1@8Snj43{v?!5V{4{NBDZqh zxrg^9mmDaYut`!TVEdM5S(jQr9yajUVQqHvp07fFma44OUDGFro^D-fY;|>K>(res z8mvJVm+5TOl)Q1|UWvqI>C1+T>+D4CD!J{x7pkRPdBwGGp340#hZQ_8ZDcIdn{Okq zFJQXdgVT4r%~I1go7VT3hg{jpzhC9(zelGuh1Z9$9_&A=vFUxK!#DYvH@^4C*txIw z-1zpo_4<>J*Us(x|NrtPxp~tLe$CwddB>XXHhQ>c;yH*uA` ztv~*_bK1?hk;(R=vgcL(>P~L@)Bi=h>XA2VjPuLtn1df>_voq!+k`GmI$Li#Y34EU zACn!wtmD`CaY2zkXL99^${#zw2s`~Y&u_f&O-cCrf!b}~%NFxjznxcLBFVUB@5Gje z`A)}Q8F>Bot@Vg2U)(rXUQl4A`rq?>O&1CrEp4uUj%GZ{c5KJva^`PmyC(3)ui!go zEM|QCdh=ZQ^nhJ;Z=XCdpL}e~HkL2Dr%CVn_3m|KSg5i-^L5dCl)BwznrzMdh)lYhQ}@T?q&$r zGcF4H-73s`XWj&53#A|Ht(Ee(vsylSvu=xmgZ0VKVn3;UP07irs-}tB1>VZ%IDa`^ zGb#7JQGTc?d+j`je~VsDsOV(PogjWQGVp`U8q;sz_n+Uv^!mxs+`NU1(*v&w+qiFg zSfjQ;bL|>yLy?(9th?%qPH*>nc~^A1@Yx*0dZWDucz0RMePzC#=kj7@*$AJ&;@b}L z>UP)tKjoHa1h=YZluV!cuz2yUtgO$wa;M#l**IzD&zHh~p1(OMyvwa-`-!MsY*!DY zD3s2dE_3jn^Kz42hFoTSjxy`!I{f7n+!VT->FumuW!aF{ys3+V-xqAmm|Jgb<-UBv z>y3g90vy4=d@C~>t$zeKe%DoYiWBTwr*P=KRl4fC)*cT>iO7$$0+toWU0-nYxA#hy zG|kyhcWf{)zx%Lh+0Sb+O?n=+GY`K_PoKZfVAA@37xlJGvj6)d^7rTd{wHt#o}VWB zw>mWY<`@=Yo8IPfE1wb*&d?P4H0M|7ca~B5eifw*EDdwx8r|xyn}BtT|UQ zHBjo%`*)$~C895jSDb(Qf?MXhb`1N}r!QV+?I{WgabsWOt=99>?4*Z)iu>f3OfvPy zp8L2l6$$66Syw-av*I{)%C_l^klQP^HP!rjJ*{g}#4;Jv?=8*hd%|BC!tm?F(!J&F zf0=Y_4$9iS;!9|CVywPabSg$~$77AH`5LTe{(niCo>#Ip_Q&VRC*rrSwRB$hX+YJC+4PDdvTG}%GHT0O-@C`{5;EQ zubRDUa>p65Cx-C{f40b!zVj>HHzBGf^VPOS*(Z-RvUM{}j|tzPE?9m0-owL(1KL_{i***o zJ-aRZXQfy{{pTl3PZ&&p^y;yR?3r}FvoZNv&em1?oDLuOeAVsw>ATlnxbHuA%ehvG z!}?l5?Hlc$=eJK!+Q?IVzka?=+w0EbUvr%b-z&O27GS;LCL2`4$o04JM4XSUiNzJi z_$H0!Jt2ECtzzds%GtbY;(-TOZ9YEp|MO6pqugrl(sj}03bXgtKU*5eWTh?7{`=0t zQ<6UgK6^}j_JaBK1xBNgK9d9L^T3ct#C&FX4iu2o!W_9@2~#tO*74lzpNLw zDR{rs&Lg#tCEL~sZgksmgh}{r?pLpe)(h%NLNDHU<2pBHxeft|L~iB0^AGROoOz%uZIh%-!1gWAsxGyDJZ#`$VW4>P&g6}( zqV-K0tU(u->Fm`Mz47Iqi^OH=V8g|AB3r7vJIeR24srXmqWjSckA0c#7bhvDkP296^(K_3IlSJCPwU_(s2@++o=U;rH?g8V?`jkf(jEjEA z>{UCuE&lx;HTFpB-~aympRTHiV!OWl?YYOB>^|(sslVKR+VJ|K>1xYg&nPHps<^*F z!x?e!9g^)zhEsFU7y;)E6yaUi!X}^?3P*Z4-PxgtT^ Date: Mon, 3 Oct 2016 15:16:44 +0100 Subject: [PATCH 3/4] Update changelog --- changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog.md b/changelog.md index 79b6b079..9daa80ac 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # Changelog +## Version {next} + - Use the actual results of places in `newnote.js` (issue#21) + ## Version 0.0.13.2 (2016-10-03) - Fix issues with fetch API and places when using micropub client From c7517b91e107055012f331458150662835d453d3 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Mon, 3 Oct 2016 15:17:46 +0100 Subject: [PATCH 4/4] Bump version number --- changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 9daa80ac..5eb6ddad 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,6 @@ # Changelog -## Version {next} +## Version 0.0.13.3 (2016-10-03) - Use the actual results of places in `newnote.js` (issue#21) ## Version 0.0.13.2 (2016-10-03)