summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Parecki <aaron@parecki.com>2014-05-24 14:55:15 -0700
committerAaron Parecki <aaron@parecki.com>2014-05-24 14:55:15 -0700
commite357730b316827789a6a677d197a58135033fce6 (patch)
tree07064e6caa0a695eb5f7cc2ef405eabf1174bc20
parent3f82ec2f757c62c25a31b461e0a0cddc14886117 (diff)
remember if the user checks the "location" checkbox and always find their location in the future if so
-rw-r--r--README.md22
-rw-r--r--controllers/controllers.php14
-rw-r--r--views/dashboard.php61
3 files changed, 73 insertions, 24 deletions
diff --git a/README.md b/README.md
index 1cf12a4..9a58be1 100644
--- a/README.md
+++ b/README.md
@@ -4,3 +4,25 @@ IndiePost
Work in progress. Do not use!
https://indiepost.micropub.net/
+
+
+### Contributing
+
+By submitting code to this project, you agree to irrevocably release it under the same license as this project.
+
+
+### License
+
+Copyright 2013 by Aaron Parecki
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/controllers/controllers.php b/controllers/controllers.php
index 18879e3..3ff111e 100644
--- a/controllers/controllers.php
+++ b/controllers/controllers.php
@@ -32,12 +32,24 @@ $app->get('/new', function() use($app) {
'micropub_scope' => $user->micropub_scope,
'micropub_access_token' => $user->micropub_access_token,
'response_date' => $user->last_micropub_response_date,
- 'test_response' => $test_response
+ 'test_response' => $test_response,
+ 'location_enabled' => $user->location_enabled
));
$app->response()->body($html);
}
});
+$app->post('/prefs', function() use($app) {
+ if($user=require_login($app)) {
+ $params = $app->request()->params();
+ $user->location_enabled = $params['enabled'];
+ $user->save();
+ }
+ $app->response()->body(json_encode(array(
+ 'result' => 'ok'
+ )));
+});
+
$app->get('/creating-a-token-endpoint', function() use($app) {
$app->redirect('http://indiewebcamp.com/token-endpoint', 301);
});
diff --git a/views/dashboard.php b/views/dashboard.php
index 7a35ba1..120d0bf 100644
--- a/views/dashboard.php
+++ b/views/dashboard.php
@@ -24,6 +24,7 @@
<input type="text" id="note_location_msg" value="" class="form-control" placeholder="" readonly="readonly">
<input type="hidden" id="note_location">
+ <input type="hidden" id="location_enabled" value="<?= $this->location_enabled ?>">
<div id="note_location_img" style="display: none;">
<img src="" height="180" id="note_location_img_wide" class="img-responsive">
@@ -112,33 +113,38 @@ $(function(){
var map_template_wide = "<?= static_map('{lat}', '{lng}', 180, 700, 15) ?>";
var map_template_small = "<?= static_map('{lat}', '{lng}', 320, 480, 15) ?>";
+ function fetch_location() {
+ $("#note_location_loading").show();
+
+ navigator.geolocation.getCurrentPosition(function(position){
+
+ $("#note_location_loading").hide();
+ var geo = "geo:" + (Math.round(position.coords.latitude * 100000) / 100000) + "," + (Math.round(position.coords.longitude * 100000) / 100000) + ";u=" + position.coords.accuracy;
+ $("#note_location_msg").val(geo);
+ $("#note_location").val(geo);
+ $("#note_location_img_small").attr("src", map_template_small.replace('{lat}', position.coords.latitude).replace('{lng}', position.coords.longitude));
+ $("#note_location_img_wide").attr("src", map_template_wide.replace('{lat}', position.coords.latitude).replace('{lng}', position.coords.longitude));
+ $("#note_location_img").show();
+ $("#note_location_msg").addClass("img-visible");
+
+ }, function(err){
+ if(err.code == 1) {
+ location_error("The website was not able to get permission");
+ } else if(err.code == 2) {
+ location_error("Location information was unavailable");
+ } else if(err.code == 3) {
+ location_error("Timed out getting location");
+ }
+ });
+ }
+
$("#note_location_chk").click(function(){
if($(this).attr("checked") == "checked") {
if(navigator.geolocation) {
- $("#note_location_loading").show();
-
- navigator.geolocation.getCurrentPosition(function(position){
-
- $("#note_location_loading").hide();
- console.log(position);
- var geo = "geo:" + (Math.round(position.coords.latitude * 100000) / 100000) + "," + (Math.round(position.coords.longitude * 100000) / 100000) + ";u=" + position.coords.accuracy;
- $("#note_location_msg").val(geo);
- $("#note_location").val(geo);
- $("#note_location_img_small").attr("src", map_template_small.replace('{lat}', position.coords.latitude).replace('{lng}', position.coords.longitude));
- $("#note_location_img_wide").attr("src", map_template_wide.replace('{lat}', position.coords.latitude).replace('{lng}', position.coords.longitude));
- $("#note_location_img").show();
- $("#note_location_msg").addClass("img-visible");
-
- }, function(err){
- if(err.code == 1) {
- location_error("The website was not able to get permission");
- } else if(err.code == 2) {
- location_error("Location information was unavailable");
- } else if(err.code == 3) {
- location_error("Timed out getting location");
- }
+ $.post("/prefs", {
+ enabled: 1
});
-
+ fetch_location();
} else {
location_error("Browser location is not supported");
}
@@ -147,9 +153,18 @@ $(function(){
$("#note_location_msg").removeClass("img-visible");
$("#note_location_msg").val('');
$("#note_location").val('');
+
+ $.post("/prefs", {
+ enabled: 0
+ });
}
});
+ if($("#location_enabled").val() == 1) {
+ $("#note_location_chk").attr("checked","checked");
+ fetch_location();
+ }
+
});
</script>
<style type="text/css">