Added (un)favourite buttons to other relevant places

Fixes issue #28

Signed-off-by: Gergely Polonkai <polesz@w00d5t0ck.info>
This commit is contained in:
Polonkai Gergely
2012-08-25 17:03:08 +02:00
parent 293e1b24fc
commit 6747a48332
4 changed files with 99 additions and 65 deletions

View File

@@ -0,0 +1,78 @@
/* TODO: The following two functions should also update the top-left profile
* box
*/
function favouriteOn()
{
var elem = $(this)
var topicSlug = elem.attr('id').replace(/^favourite-topic-button-/, '');
classList = elem.attr('class').split(/\s+/);
topicGroupSlug = null;
for (i in classList) {
if (classList[i].match(/^topicgroup-/)) {
topicGroupSlug = classList[i].replace(/^topicgroup-/, '');
break;
}
}
if (topicGroupSlug == null) {
return false;
}
url = Routing.generate('KekRozsakFrontBundle_forumFavouriteTopic', {
topicGroupSlug: topicGroupSlug,
topicSlug: topicSlug
});
$.ajax({
type: 'GET',
url: url
}).done(function() {
elem.html('[Kedvenc ikon]');
elem.removeClass('favourite-topic-button');
elem.addClass('unfavourite-topic-button');
elem.attr('id', 'unfavourite-topic-button-' + topicSlug);
elem.off('click.updateFav');
elem.on('click.updateFav', favouriteOff);
}).error(function() {
alert('Nem siker!');
});
}
function favouriteOff()
{
var elem = $(this)
var topicSlug = elem.attr('id').replace(/^unfavourite-topic-button-/, '');
classList = elem.attr('class').split(/\s+/);
topicGroupSlug = null;
for (i in classList) {
if (classList[i].match(/^topicgroup-/)) {
topicGroupSlug = classList[i].replace(/^topicgroup-/, '');
break;
}
}
if (topicGroupSlug == null) {
return false;
}
url = Routing.generate('KekRozsakFrontBundle_forumUnfavouriteTopic', {
topicGroupSlug: topicGroupSlug,
topicSlug: topicSlug
});
$.ajax({
type: 'GET',
url: url
}).done(function() {
elem.html('[Nem kedvenc ikon]');
elem.removeClass('unfavourite-topic-button');
elem.addClass('favourite-topic-button');
elem.attr('id', 'favourite-topic-button-' + topicSlug);
elem.off('click.updateFav');
elem.on('click.updateFav', favouriteOn);
}).error(function() {
alert('Nem siker!');
});
}
function setupFavButtons()
{
$('.favourite-topic-button').on('click.updateFav', favouriteOn);
$('.unfavourite-topic-button').on('click.updateFav', favouriteOff);
}
$(document).ready(setupFavButtons);