|
|
|
@ -1,15 +1,20 @@
|
|
|
|
|
/*
|
|
|
|
|
/*
|
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
var autofillDB = {};
|
|
|
|
|
var autofillStreetDB = [];
|
|
|
|
|
|
|
|
|
|
if (localStorage.getItem("autofill_db") != null) {
|
|
|
|
|
autofillDB = JSON.parse(localStorage.getItem("autofill_db"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (localStorage.getItem("autofill_streetdb") != null) {
|
|
|
|
|
autofillStreetDB = JSON.parse(localStorage.getItem("autofill_streetdb"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function addressToNumberAndStreet(address) {
|
|
|
|
|
var number = "";
|
|
|
|
|
var street = "";
|
|
|
|
@ -50,9 +55,39 @@ function addAutofillEntry(address) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
localStorage.setItem("autofill_db", JSON.stringify(autofillDB));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var found = false;
|
|
|
|
|
for (var i = 0; i < autofillStreetDB.length; i++) {
|
|
|
|
|
if (autofillStreetDB[i][0] == street) {
|
|
|
|
|
autofillStreetDB[i][1]++;
|
|
|
|
|
found = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!found) {
|
|
|
|
|
autofillStreetDB.push([street, 1]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
localStorage.setItem("autofill_streetdb", JSON.stringify(autofillStreetDB));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function searchAutofill(q, number) {
|
|
|
|
|
var byNumber = [];
|
|
|
|
|
if (typeof number != 'undefined') {
|
|
|
|
|
byNumber = searchAutofillByNumber(number);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var byStreet = [];
|
|
|
|
|
if (q.length > 0) {
|
|
|
|
|
byStreet = searchAutofillByStreet(q);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return byNumber.concat(byStreet.filter((item) => byNumber.indexOf(item) < 0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function searchAutofill(number) {
|
|
|
|
|
function searchAutofillByNumber(number) {
|
|
|
|
|
if (typeof autofillDB[number] == 'undefined') {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
@ -67,5 +102,26 @@ function searchAutofill(number) {
|
|
|
|
|
streets.push(sorted[i][0]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return streets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function searchAutofillByStreet(q) {
|
|
|
|
|
var streets = [];
|
|
|
|
|
|
|
|
|
|
var sortedDB = autofillStreetDB.sort(function (a, b) {
|
|
|
|
|
return b[1] - a[1];
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
console.log(sortedDB);
|
|
|
|
|
|
|
|
|
|
q = q.toLowerCase();
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < sortedDB.length; i++) {
|
|
|
|
|
console.log(sortedDB[i][0].toLowerCase().indexOf(q));
|
|
|
|
|
if (sortedDB[i][0].toLowerCase().includes(q)) {
|
|
|
|
|
streets.push(sortedDB[i][0]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return streets;
|
|
|
|
|
}
|