CLUSTERIZE.JS */
let events_cluster = null,
organ_cluster = null;
const scrollMainEvents = document.querySelector('#contentArea-Events');
const scrollOrgans = document.querySelector('#contentArea-Organs');
const N_RENDER = 15;
const fetchDataOrganEvents = async () => {
try {
const APIURL = "https://eventsplusapp.it/api3/getOrganInfos.php";
const response = await (await fetch(APIURL, {
cache: "no-cache",
method: 'POST',
headers: {
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
},
body: JSON.stringify({
UserID: "1", //USERID to sets
organcode: "L0QN9U",
lat: "45.57437055013219",
lon: "11.894237128835881",
maxDistance: 50
})
})).json();
global_events_array = response.nextEvents;
if (global_events_array.length > 0) {
//get bit of elements and not all to speed up loading
const dummy_array = [...global_events_array.slice(0, N_RENDER)];
global_events_array = [...global_events_array].slice(N_RENDER);
events_cluster = new Clusterize({
rows: renderEvents(dummy_array),
scrollId: 'scrollArea-Events',
contentId: 'contentArea-Events',
no_data_text: ""
})
} else {
$("#containerOrganEvents").hide(0);
}
} catch (error) {
console.log("ERROR RETRIEVENING ORGAN EVENTS", error)
}
}
const fetchDataNearbyOrgans = async () => {
try {
const APIURL = "https://eventsplusapp.it/api3/getNearbyOrganizers_2.php";
const response = await (await fetch(APIURL, {
cache: "no-cache",
method: 'POST',
headers: {
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
},
body: JSON.stringify({
lat: "45.57437055013219",
lon: "11.894237128835881",
UserID: "1",
organcode: "L0QN9U",
maxDistance: 50, //Maxdistance to be set
})
})).json();
console.log("RESPONSE NEARBY ORGANS", response)
global_organ_array = response;
if (global_organ_array.length > 0) {
//get bit of elements and not all to speed up loading
const dummy_array = [...global_organ_array.slice(0, N_RENDER)];
global_organ_array = [...global_organ_array].slice(N_RENDER);
organ_cluster = new Clusterize({
rows: renderOrganizers(dummy_array),
scrollId: 'scrollArea-Organs',
contentId: 'contentArea-Organs',
no_data_text: ""
})
}
} catch (error) {
console.log("ERROR RETRIEVENING ORGANS", error)
}
}
Promise.all([
fetchDataOrganEvents(),
fetchDataNearbyOrgans()
])
function renderEvents(array) {
let divs_array = [];
for (let i = 0; i < array.length; i++) {
divs_array.push(`
${array[i]["name"]}
by
${array[i]["organname"]}
${array[i]["startDate"]}
${array[i]["startTime"]}
`);
}
return divs_array;
}
function renderOrganizers(array) {
const divs_array = [];
for (let i = 0; i < array.length; i++) {
divs_array.push(`
${array[i]["name"]}
${array[i]["distance"].toFixed(1)} km
distanza da te
`);
}
return divs_array;
}
// Horizontal scroll listener to progrevvsly load events
scrollMainEvents.addEventListener('scroll', function() {
// Get the horizontal scroll position
let scrollPosition = scrollMainEvents.scrollLeft;
// Get the scroll position and dimensions
let scrollWidth = scrollMainEvents.scrollWidth;
let clientWidth = scrollMainEvents.clientWidth;
// Check if the user is close to or at the end of the scrollable content
if (scrollPosition >= ((scrollWidth * 75) / 100)) {
let array = global_events_array.slice(0, N_RENDER);
events_cluster.append(renderEvents(array))
global_events_array = [...global_events_array].slice(N_RENDER);
}
});
// Horizontal scroll listener to progrevvsly load events
scrollOrgans.addEventListener('scroll', function() {
// Get the horizontal scroll position
let scrollPosition = scrollOrgans.scrollLeft;
// Get the scroll position and dimensions
let scrollWidth = scrollOrgans.scrollWidth;
let clientWidth = scrollOrgans.clientWidth;
// Check if the user is close to or at the end of the scrollable content
if (scrollPosition >= ((scrollWidth * 75) / 100)) {
let array = global_organ_array.slice(0, N_RENDER);
organ_cluster.append(renderOrganizers(array))
global_organ_array = [...global_organ_array].slice(N_RENDER);
}
});
function saveImpression() {
let request = $.ajax({
url: "https://eventsplusapp.it/api3/saveimpression.php",
type: "post",
data: {
ip: '',
useragent: '',
eventid: '' //ALWAYS REMEMBER USERs
},
});
request.done(function(res) {
console.log(res)
})
}
-->