$(function () {
var itemsItems = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 1000,
prefetch: {
url: '/items.php',
ttl: 1,
filter: function (list) {
return $.map(list, function (item) {
return {
name: item.name,
category: item.category,
release: item.release,
id: item.id
};
});
}
}
});
itemsItems.initialize();
$('.typeahead').typeahead(null, {
name: 'itemsItems',
displayKey: 'name',
source: itemsItems.ttAdapter(),
templates: {
suggestion: function (data) {
return '' + data.name + ' (' + data.release + ')';
}
}
});
$('.region-title').on('click', function (e) {
$('.region-' + $(this).data('region')).toggleClass('hide');
$(this).toggleClass('region-hidden');
});
$('[rel=popover]').popover();
$('.typeahead').on('typeahead:selected', function (e, item) {
$(".container-result").empty();
$(".container-result").append('');
$.get("/home/_snippet/" + item.id, function (data) {
$(".container-result").empty();
$(".container-result").append(data);
});
}).on('typeahead:autocompleted', function (e, item) {
$(".container-result").empty();
$(".container-result").append('');
$.get("/result/" + item.id, function (data) {
$(".container-result").empty();
$(".container-result").append(data);
});
});
$('.frontpage-table tr:gt(0)').on('click', function (e) {
var tableRow = $(this);
if(tableRow.hasClass('tr-after-active')) {
tableRow.removeClass('tr-after-active');
$('.insert-after').remove();
} else {
$.get("/home/_snippet/" + $(this).data('id'), function (data) {
$('.insert-after').remove();
$('.tr-after-active').removeClass('tr-after-active');
tableRow.addClass('tr-after-active');
tableRow.after('
| ' + data + ' |
');
// $(".container-result").empty();
// $(".container-result").append(data);
//
// $('html, body').animate({
// scrollTop: $('#result').offset().top - 70
// });
});
}
});
/*
$(".typeahead").keypress(function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
return false;
}
});
$('.typeahead').autocomplete(
{
source: function(request, response) {
$.ajax({
url: 'search/' + request.term.replace(/\ /g, '+'),
success: function(data) {
var transformed = $.map(data, function(el) {
if(el.category !== null && el.category !== undefined) { } else { el.category = 'Unknown'; }
return {
id: el.id,
name: el.name,
category: el.category,
release: el.release,
};
});
response(transformed);
},
error: function() {
response([]);
}
});
},
select: function(event, ui) {
$(".container-result").slideToggle(100);
$(".container-result").empty();
$.get("result/" + ui.item.id, function(data) {
$(".container-result").append(data);
});
$(".container-result").slideToggle(100);
$(".typeahead").val(ui.item.name);
return false;
}
}).data("uiAutocomplete")._renderItem = function(ul, item) {
return $("")
.data("item.autocomplete", item)
.append("" + item.name + " (" + item.release + ")")
.appendTo(ul);
};
*/
/*var delay = (function() {
var timer = 0;
return function(callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
$('.form-register #username').keyup(function() {
var thisSel = $(this);
thisSel.parent().append('');
delay(function(){
thisSel.parent().next().remove();
}, 1000 );
});*/
});
$(function () {
if($('body').hasClass('logged-in')) {
initClickFavourites();
}
function initClickFavourites() {
$(document.body).on('click', '.js-favourite', function (e) {
var $thisCont = $(this);
$('i', $thisCont).addClass('animate-spin');
var number = parseInt($('.js-times-favourited', $thisCont).text(), 10);
var _click = {};
if($thisCont.hasClass('active')) {
var _click = {
url: 'item/_removeFavourite',
removeClass: 'active btn-primary',
addClass: 'btn-default',
newNumber: number-1
};
} else {
var _click = {
url: 'item/_addFavourite',
removeClass: 'btn-default',
addClass: 'btn-primary active',
newNumber: number+1
};
}
$.post('/' + _click.url, {
id: $thisCont.attr('data-id')
}).done(function (data) {
$thisCont.removeClass(_click.removeClass).addClass(_click.addClass);
$('.js-times-favourited', $thisCont).text(_click.newNumber);
setAlert('success', JSON.parse(data).message);
}).always(function () {
$('i', $thisCont).removeClass('animate-spin');
}).fail(function (data) {
setAlert('danger', JSON.parse(data.responseText).message);
});
// } else {
// $.post("/item/_addFavourite", {
// id: thisCont.attr('data-id')
// }).done(function (data) {
// thisCont.addClass('active').removeClass('btn-default').addClass('btn-primary');
// $('.js-times-favourited', thisCont).text(number + 1);
// setAlert('success', JSON.parse(data).message);
// }).always(function () {
// $('i', thisCont).removeClass('animate-spin');
// }).fail(function (data) {
// setAlert('danger', JSON.parse(data.responseText).message);
// });
// }
});
}
function setAlert(type, text) {
$('.js-alert').addClass('alert-' + type).removeClass('hidden').fadeIn(400);
$('.js-alert p').text(text);
setTimeout(function () {
$('.js-alert').fadeOut(600, function () {
removeAlert($(this), type);
});
}, 5000);
}
function removeAlert($alert, type) {
$alert.fadeOut(400, function () {
$(this).removeClass('alert-' + type).addClass('hidden');
$('p', this).text('');
});
}
$('.js-alert').on('click', function () {
removeAlert($(this), 'success');
});
});