<script type="text/javascript">
$(function () {
let selectorArea = '#areaSelectorContainer';
let selectorAreaLoader = '#areaLoader';
let selectorTopicsList = '#topicsList';
let selectorTopicsListLoader = '#topicsListLoader';
$('[data-remove-item]').on('click', function (e) {
e.preventDefault();
e.stopPropagation();
let post_id = $(this).attr('data-remove-item');
{% if app.user is not null %}
removeFavori(post_id);
$(this).closest('.colArticleItem').remove();
{% else %}
let myFavorite = getCookie('favorite');
if (myFavorite == null || myFavorite === '') {
myFavorite = [];
} else {
myFavorite = myFavorite.split(',');
}
if (jQuery.inArray(post_id, myFavorite) >= -1) {
myFavorite.splice($.inArray(post_id, myFavorite), 1);
}
setCookie('favorite', myFavorite, 360)
$(this).closest('.colArticleItem').remove();
{% endif %}
});
$('.fav').on('click', function (event) {
event.preventDefault();
let post_id = $(this).attr('data-id');
{% if app.user is not null %}
if ($(this).hasClass('_favorite')) {
$(this).removeClass('_favorite');
$(this).attr('aria-pressed', 'false');
removeFavori(post_id);
} else {
$(this).addClass('_favorite');
$(this).attr('aria-pressed', 'true');
addFavori(post_id);
}
{% else %}
let myFavorite = getCookie('favorite');
if (myFavorite == null || myFavorite === '') {
myFavorite = [];
} else {
myFavorite = myFavorite.split(',');
}
if ($(this).hasClass('_favorite')) {
$(this).removeClass('_favorite');
$(this).attr('aria-pressed', 'false');
if (jQuery.inArray(post_id, myFavorite) >= -1) {
myFavorite.splice($.inArray(post_id, myFavorite), 1);
}
} else {
$(this).addClass('_favorite');
$(this).attr('aria-pressed', 'true');
if (jQuery.inArray(post_id, myFavorite) === -1) {
myFavorite.push(post_id);
}
}
setCookie('favorite', myFavorite, 10);
{% endif %}
});
$('#search_territory').on('submit', function (event) {
event.preventDefault();
$('#containerResultTerritory').fadeIn();
$('#loadingSearchTerritory').fadeIn();
$('#myTerritory').fadeOut();
$('#loadingSearchTerritory')[0].setAttribute('aria-hidden', 'true');
$('#myTerritory')[0].setAttribute('aria-hidden', 'true');
$.ajax({
url: "{{ path('ajax_territory') }}",
data: {
'search': $('#commune').val()
},
type: "POST",
success: function (response) {
$('#loadingSearchTerritory').fadeOut();
$('#loadingSearchTerritory')[0].setAttribute('aria-hidden', 'true');
if (response.error === false) {
$('#myTerritory').empty().append("Mon territoire : " + response.t.name);
setTerritories();
} else {
$('#myTerritory').empty().append(response.error);
}
$('#myTerritory').fadeIn();
$('#myTerritory')[0].setAttribute('aria-hidden', 'false');
}
});
return false;
});
$('.select_territory').on('click', function () {
setTerritories();
});
$('.select_topic').on('click', function () {
setTopics();
});
function setTerritories() {
let myTerritories = [];
let allTerritories = [];
$(".button_select.active").each(function () {
if (this.id !== 0 && this.id !== '0') {
myTerritories.push(this.id);
}
});
$(".button_select").each(function () {
if (this.id !== 0 && this.id !== '0') {
allTerritories.push(this.id);
}
});
{% if app.user is not null %}
$(selectorArea).addClass('loading');
$(selectorAreaLoader).fadeIn();
updateTerritories(allTerritories, myTerritories);
{% else %}
eraseCookie('territories');
if (myTerritories.length !== 0) {
setCookie('territories', myTerritories, 360);
}
{% endif %}
}
function setTopics() {
let myTopics = [];
let allTopics = [];
$(".button_select.active").each(function () {
if (this.id !== 0 && this.id !== '0') {
myTopics.push(this.id);
}
});
$(".button_select").each(function () {
if (this.id !== 0 && this.id !== '0') {
allTopics.push(this.id);
}
});
{% if app.user is not null %}
$(selectorTopicsList).addClass('loading');
$(selectorTopicsListLoader).fadeIn();
updateTopics(allTopics, myTopics);
{% else %}
eraseCookie('topics');
myTopics = [];
$(".button_select.active").each(function () {
if (this.id !== 0) {
myTopics.push(this.id);
}
});
if (myTopics.length !== 0) {
setCookie('topics', myTopics, 360);
}
{% endif %}
}
function getFavoris() {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'getFavoris'
},
type: "POST",
success: function (response) {}
});
}
function addFavori(id) {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'addFavori',
'id': id
},
type: "POST",
success: function (response) {}
});
}
function removeFavori(id) {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'removeFavori',
'id': id
},
type: "POST",
success: function (response) {}
});
}
function getTopics() {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'getTopics'
},
type: "POST",
success: function (response) {
}
});
}
function updateTopics(allTopics, myTopics) {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'removeTopics',
'ids': allTopics
},
type: "POST",
success: function () {
if (myTopics.length > 0) {
addTopics(myTopics);
} else {
$(selectorTopicsList).removeClass('loading');
$(selectorTopicsListLoader).fadeOut();
}
}
});
}
function addTopics(ids) {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'addTopics',
'ids': ids
},
type: "POST",
success: function () {
$(selectorTopicsList).removeClass('loading');
$(selectorTopicsListLoader).fadeOut();
}
});
}
function getTerritories() {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'getTerritories'
},
type: "POST",
success: function (response) {
}
});
}
function updateTerritories(allTerritories, myTerritories) {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'removeTerritories',
'ids': allTerritories
},
type: "POST",
success: function () {
if (myTerritories.length > 0) {
addTerritories(myTerritories);
} else {
$(selectorArea).removeClass('loading');
$(selectorAreaLoader).fadeOut();
}
}
});
}
function addTerritories(ids) {
$.ajax({
url: "{{ path('ajax') }}",
data: {
'function': 'addTerritories',
'ids': ids
},
type: "POST",
success: function () {
$(selectorArea).removeClass('loading');
$(selectorAreaLoader).fadeOut();
}
});
}
function setCookie(key, value, expiry) {
let expires = new Date();
expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));
document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
}
function getCookie(key) {
let keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
return keyValue ? keyValue[2] : null;
}
function eraseCookie(key) {
let keyValue = getCookie(key);
setCookie(key, keyValue, '-1');
}
});
</script>