From 1dd0589a8101a5ee99215edf6188db5407920b44 Mon Sep 17 00:00:00 2001 From: James Bate Date: Tue, 15 Sep 2015 16:05:26 +0100 Subject: [PATCH] Change country to countryList and use a method to set it And add a placeholder for creating a new dropdown list if the user hasn't supplied us with one... --- demo.html | 2 +- src/js/contact-data-services.js | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/demo.html b/demo.html index f106391..f031159 100644 --- a/demo.html +++ b/demo.html @@ -24,7 +24,7 @@ address: { elements: { input: document.querySelector("input[name='address-input']"), - country: document.querySelector("select"), + countryList: document.querySelector("select"), picklist: document.querySelector("#picklist"), formattedAddress: document.querySelector("#formatted-address") } diff --git a/src/js/contact-data-services.js b/src/js/contact-data-services.js index a4c9608..3165773 100644 --- a/src/js/contact-data-services.js +++ b/src/js/contact-data-services.js @@ -44,9 +44,10 @@ var contactDataServices = { if(!contactDataServices.token){ console.log("Please provide a token for ContactDataServices."); } + + contactDataServices.address.setCountryList(); contactDataServices.address.input = contactDataServices.address.elements.input; - contactDataServices.address.input.addEventListener("keyup", contactDataServices.address.search); - contactDataServices.address.country = contactDataServices.address.elements.country; + contactDataServices.address.input.addEventListener("keyup", contactDataServices.address.search); }, address: { input: null, @@ -60,7 +61,7 @@ var contactDataServices = { search: function(){ console.log(contactDataServices.address.input.value); contactDataServices.address.currentSearchTerm = contactDataServices.address.input.value, - contactDataServices.address.currentCountryCode = contactDataServices.address.country.value; + contactDataServices.address.currentCountryCode = contactDataServices.address.countryList.value; // Check is searching is permitted if(contactDataServices.address.canSearch()){ @@ -92,6 +93,19 @@ var contactDataServices = { // If search term is not empty and not the same as previous search term return (contactDataServices.address.currentSearchTerm !== "" && contactDataServices.address.lastSearchTerm !== contactDataServices.address.currentSearchTerm); }, + // Bind a list of countries. Using either a user-defined list or creating a new one. + setCountryList: function(){ + contactDataServices.address.countryList = contactDataServices.address.elements.countryList; + + // If the user hasn't passed us a country list, then create new list + if(!contactDataServices.address.countryList){ + contactDataServices.address.createCountryDropdown(); + } + }, + createCountryDropdown: function(){ + // What countries? + // Where to position it? + }, // Get a final (Formatted) address format: function(url){ contactDataServices.address.currentFormatUrl = contactDataServices.urls.construct.address.format(url);