From 6e180b86d1049290d9d2f0bc8293b02f3bcb8f31 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sun, 1 Dec 2013 16:53:05 -0500 Subject: [PATCH] VRFS-867 preload location data correctly when editing band details --- web/app/assets/javascripts/band_setup.js | 45 +++++++++++++++--------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/web/app/assets/javascripts/band_setup.js b/web/app/assets/javascripts/band_setup.js index e6611f874..ed03c4af2 100644 --- a/web/app/assets/javascripts/band_setup.js +++ b/web/app/assets/javascripts/band_setup.js @@ -230,32 +230,35 @@ function afterShow(data) { friendSelectorDialog.setCallback(friendSelectorCallback); loadFriends(); - loadGenres(); if (bandId) { $("#band-setup-title").html("edit band"); $("#btn-band-setup-save").html("SAVE CHANGES"); // retrieve and initialize band profile data points - initializeForm(); + loadBandDetails(); } else { - loadCountries(''); + loadGenres(); + loadCountries(); $("#band-setup-title").html("set up band"); $("#btn-band-setup-save").html("CREATE BAND"); } } - function initializeForm() { + function loadBandDetails() { rest.getBand(bandId).done(function(band) { $("#band-name").val(band.name); $("#band-website").val(band.website); $("#band-biography").val(band.biography); - $("#band-country").val(band.country); - loadCountries(band.country); - loadRegions(band.state); - loadCities(band.city); + loadGenres(); + + loadCountries(band.country, function() { + loadRegions(band.state, function () { + loadCities(band.city); + }); + }); // TODO: initialize avatar }); @@ -298,7 +301,7 @@ }); } - function loadCountries(initialValue) { + function loadCountries(initialCountry, onCountriesLoaded) { var $country = $("#band-country"); var nilOption = $(''); @@ -312,16 +315,20 @@ option.text(country); option.attr("value", country); - if (initialValue === country) { - option.attr("selected", true); + if (initialCountry === country) { + option.attr("selected", "selected"); } $country.append(option); }); + + if (onCountriesLoaded) { + onCountriesLoaded(); + } }); } - function loadRegions(initialValue) { + function loadRegions(initialRegion, onRegionsLoaded) { $("#band-region").empty(); var selectedCountry = $("#band-country").val(); var $region = $("#band-region"); @@ -337,16 +344,20 @@ option.text(region); option.attr("value", region); - if (initialValue === region) { - option.attr("selected", true); + if (initialRegion === region) { + option.attr("selected", "selected"); } $region.append(option); }); + + if (onRegionsLoaded) { + onRegionsLoaded(); + } }); } - function loadCities(initialValue) { + function loadCities(initialCity) { $("#band-city").empty(); var selectedCountry = $("#band-country").val(); var selectedRegion = $("#band-region").val(); @@ -363,8 +374,8 @@ option.text(city); option.attr("value", city); - if (initialValue === city) { - option.attr("selected", true); + if (initialCity === city) { + option.attr("selected", "selected"); } $city.append(option);