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.
k4ever/k4ever/media/js/k4ever.js

92 lines
2.3 KiB

jQuery(document).ready(function($) {
var search_input = $("div.search input.autocomplete");
var selected_item = [];
var selection = false;
var lock = false;
var items = [false];
$.getJSON('/api/store/', function(data) {
if(data.error === undefined) {
source = [];
$.each(data, function(key, val) {
items[val.pk] = val;
source.push({
value: val.pk,
label: "<span class='preview pk" + val.pk + "'><img src='" +
MEDIA_URL + val.fields.image + "' alt='" +
val.fields.name + "' /></span>" +
"<span class='meta'>" + val.fields.name +
"<br />Preis: " + val.fields.price.toFixed(2) +
" €</span><span class='buy'></span>"
});
});
search_input.val("");
$("div.search form").removeAttr("action")
.children("input[type='submit']").remove();
search_input.autocomplete({
source: source,
html: true,
appendTo: ".search",
close: function(event, ui) {
},
focus: function(event, ui) {
selection = ui.item;
//search_input.val(items[selection.value].fields.name);
$("ul.ui-autocomplete").children().removeClass("focus");
$(".pk" + selection.value).parent().parent()
.addClass("focus");
event.preventDefault();
},
select: function(event, ui) {
location.href = "/store/show/" + ui.item.value + "/";
search_input.val(items[ui.item.value].fields.name);
event.preventDefault();
}
});
search_input.keydown(function(event) {
selected_item = $(".pk" + selection.value).siblings(".buy");
if(lock && event.keyCode === 39) {
selected_item.addClass("load");
$.get("/api/store/buy/" + selection.value + "/", {
}, function(data, status) {
selected_item.removeClass("load");
if(status === "success") {
selected_item.addClass("success");
//TODO neuer kontostand wär schnaffte
} else {
selected_item.addClass("failure");
}
lock = false;
});
} else {
lock = (event.keyCode === 18 && selection)
}
if(!lock)
selected_item.removeClass("lock");
else
selected_item.addClass("lock");
selected_item.removeClass("failure success");
});
search_input.removeAttr("disabled"); search_input.focus();
} else {
search_input.val("Fehler beim Laden der Daten...");
}
});
});