You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.8 KiB
107 lines
3.8 KiB
<html>
|
|
<head>
|
|
<title>Poogie Recommends</title>
|
|
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
|
|
|
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" />
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
|
|
|
|
<script src="/js/common.js"></script>
|
|
|
|
<style>
|
|
.flex {
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
label {
|
|
font-weight: bold;
|
|
font-family: sans, sans-serif;
|
|
}
|
|
|
|
#output { flex: 99 1 auto; }
|
|
</style>
|
|
|
|
<script type="text/javascript">
|
|
var DATA_PATH = get_base_path() + "/rewards/";
|
|
|
|
$(document).ready(function(){
|
|
$("#search").click(update_search);
|
|
$("#item").keypress(function(e) {
|
|
if (e.which == 13) { update_search(); }
|
|
});
|
|
setup_item_autocomplete("#item");
|
|
var item_name = $.QueryString["item"];
|
|
if (item_name) {
|
|
console.log("qs item: " + item_name);
|
|
if (history.state && history.state["item_name"]) {
|
|
item_name = history.state["item_name"];
|
|
console.log("override qs with state item: " + item_name);
|
|
}
|
|
var normalized_name = normalize_name(item_name);
|
|
var encoded_name = encodeURIComponent(normalized_name);
|
|
display_item(normalized_name);
|
|
console.log("replaceState: " + normalized_name);
|
|
window.history.replaceState({ "item_name": normalized_name }, "",
|
|
"recommends.html?item="
|
|
+ encoded_name );
|
|
}
|
|
$(window).on("popstate", function(e) {
|
|
var oe = e.originalEvent;
|
|
if (oe.state !== null) {
|
|
console.log("popState:" + JSON.stringify(oe.state));
|
|
display_item(oe.state["item_name"]);
|
|
}
|
|
});
|
|
});
|
|
|
|
function update_search() {
|
|
// update the item search based on the text field, and also push
|
|
// the state to history
|
|
var item_name = $.trim($("#item").val());
|
|
var normalized_name = normalize_name(item_name);
|
|
if (window.history.state
|
|
&& window.history.state["item_name"] == normalized_name) {
|
|
console.log("item not changed, skipping update");
|
|
return;
|
|
}
|
|
var encoded_name = encodeURIComponent(normalized_name);
|
|
display_item(normalized_name);
|
|
console.log("pushState: " + normalized_name);
|
|
window.history.pushState({ "item_name": normalized_name }, "",
|
|
"recommends.html?item=" + encoded_name );
|
|
}
|
|
|
|
function display_item(normalized_name) {
|
|
// display the exact item name if available; does not push state
|
|
$("#item").val(normalized_name);
|
|
var encoded_name = encodeURIComponent(normalized_name);
|
|
|
|
$.get(DATA_PATH + encoded_name + ".txt",
|
|
function(data) {
|
|
$("#output").text(data);
|
|
}).fail(
|
|
function() {
|
|
$("#output").text("Error: item '"
|
|
+ normalized_name + "' not found");
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="flex">
|
|
<div>
|
|
<label for="item">Item:</label>
|
|
<input id="item" type="text" size="20" />
|
|
<button id="search">Ask Poogie</button>
|
|
<a href="https://github.com/bd4/monster-hunter-scripts/blob/master/RECOMMENDATIONS.adoc">Understanding Results</a>
|
|
(<a href="https://github.com/bd4/monster-hunter-scripts">source</a>)
|
|
</div>
|
|
<br />
|
|
<textarea readonly="true" rows="10" cols="80" id="output"></textarea>
|
|
</div>
|
|
</body>
|