From af5edd83eccc0a083ae3e2397b017c9f53239efa Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Wed, 8 Jan 2020 14:23:12 -0700 Subject: [PATCH] Add street autofill to notes page (#22) --- www/assets/js/autofill.js | 17 +++++++++++++++++ www/routes.js | 27 ++++++++++++--------------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/www/assets/js/autofill.js b/www/assets/js/autofill.js index 1df243d..91ec147 100644 --- a/www/assets/js/autofill.js +++ b/www/assets/js/autofill.js @@ -132,4 +132,21 @@ function searchAutofillByStreet(q) { } return streets; +} + +function setupStreetAutofill(streetBox, numberBox) { + app.autocomplete.create({ + inputEl: streetBox, + openIn: 'dropdown', + /* If we set valueProperty to "id" then input value on select will be set according to this property */ + valueProperty: 'name', //object's "value" property name + textProperty: 'name', //object's "text" property name + limit: 10, //limit to 10 results + typeahead: true, + dropdownPlaceholderText: '', + source: function (query, render) { + var streets = searchAutofill(query, $(numberBox).val()); + render(streets); + } + }); } \ No newline at end of file diff --git a/www/routes.js b/www/routes.js index 669bd63..8262977 100644 --- a/www/routes.js +++ b/www/routes.js @@ -41,20 +41,7 @@ var routes = [ }, on: { pageAfterIn: function () { - app.autocomplete.create({ - inputEl: '#streetInput', - openIn: 'dropdown', - /* If we set valueProperty to "id" then input value on select will be set according to this property */ - valueProperty: 'name', //object's "value" property name - textProperty: 'name', //object's "text" property name - limit: 10, //limit to 10 results - typeahead: true, - dropdownPlaceholderText: '', - source: function (query, render) { - var streets = searchAutofill(query, $("input[name=number]").val()); - render(streets); - } - }); + setupStreetAutofill("#streetInput", "input[name=number]"); } } }, @@ -126,6 +113,11 @@ var routes = [ routes: [ { path: '/addnote', + on: { + pageAfterIn: function () { + setupStreetAutofill("input[name=street]", "input[name=number]"); + } + }, async: function (routeTo, routeFrom, resolve, reject) { var uuid = uuidv4(); resolve({ @@ -149,6 +141,11 @@ var routes = [ { path: '/editnote', templateUrl: './pages/myroute/editnote.html', + on: { + pageAfterIn: function () { + setupStreetAutofill("input[name=street]", "input[name=number]"); + } + }, options: { context: { title: "Edit Note", @@ -323,7 +320,7 @@ var routes = [ setting: "login", title: "Account", text: "Log in to backup and sync your settings and data.", - onclick: "router.navigate('/login', {history: false})", + onclick: "router.navigate('/login')", link: true } );