[#22] Change page url when changing item

* Update page title when changing items
* Update page URL to reflect proper url when changing items
* Send another pageview to Google Analytics after changing the page
This commit is contained in:
Andrew Miner
2013-08-19 18:05:44 -07:00
parent 50fdab3ff1
commit 0dbf775f35
+14 -2
View File
@@ -26,15 +26,17 @@ $(function() {
function onCraftingSelectorChanged() { function onCraftingSelectorChanged() {
var recipeName = $("#crafting_selector option:selected").val(); var recipeName = $("#crafting_selector option:selected").val();
var count = parseInt($("#crafting_count option:selected").val());
if (recipeName === undefined) return; if (recipeName === undefined) return;
if (count === undefined) return;
updatePageState(count, receipeName);
var recipe = findRecipe(recipeName); var recipe = findRecipe(recipeName);
if (recipe === undefined) { if (recipe === undefined) {
$("#crafting_error").html("Cannot find recipe for " + recipeName); $("#crafting_error").html("Cannot find recipe for " + recipeName);
$("#crafting_error").fadeIn(FADE_DURATION).delay(ERROR_DISPLAY_DURATION).fadeOut(FADE_DURATION); $("#crafting_error").fadeIn(FADE_DURATION).delay(ERROR_DISPLAY_DURATION).fadeOut(FADE_DURATION);
} else { } else {
var count = parseInt($("#crafting_count option:selected").val());
var inventory = createManifest(); var inventory = createManifest();
var missingMaterials = createManifest(); var missingMaterials = createManifest();
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
@@ -129,6 +131,16 @@ function updateCraftingSelector() {
} }
} }
function updatePageState() {
var newTitle = "Crafting Guide: " + count + " " + recipeName;
var newLink = "?count=" + count + "&recipeName=" + encodeURIComponent(recipeName);
newLink = newLink.replace(/%20/g, "+");
document.title = newTitle;
history.pushState({count: count, name: recipeName}, newTitle, newLink);
ga('send', 'pageview');
}
// Manifest Object //////////////////////////////////////////////////////////////////////////////////////////////////// // Manifest Object ////////////////////////////////////////////////////////////////////////////////////////////////////
function createManifest() { function createManifest() {