PageSourceSearch

https://www.athens24.gr/assets/js/modules/event/upcoming/event.upcoming.js

js athens24.gr collected 2026-10-02 14:00:18 UTC 7,045 bytes, 220 lines download raw bytes

1/* Checks namespace existence */
2if (typeof eDirectory == 'undefined') {
3    eDirectory = {};
4}
5
6if (typeof eDirectory.Event == 'undefined') {
7    eDirectory.Event = {};
8}
9
10var lazyLoadInstance = new LazyLoad({
11    elements_selector: '.lazy',
12});
13
14/**
15 * Used to prepare the parameters to use in the ajax
16 *
17 * @param target_div Element's Identification
18 * @param max_success Total of days shown
19 * @param max_executed Max attempts
20 */
21eDirectory.Event.upcomingEventsOneBlock = function (target_div, max_success, max_executed) {
22    var today = $(target_div).data('today');
23
24    if (!today) {
25        return;
26    }
27
28    today = today.split('-');
29    today = new Date(today[1] + '/' + today[2] + '/' + today[0]);
30
31    eDirectory.Event.upcomingEventsAjaxOneBlock(target_div, today, max_success, max_executed, 0);
32}
33
34/**
35 * Get events from a day
36 *
37 * @param target_div Element's Identification
38 * @param date
39 * @param max_success Total of days shown
40 * @param max_executed Max attempts
41 * @param success Number of days with events
42 */
43eDirectory.Event.upcomingEventsAjaxOneBlock = function (target_div, date, max_success, max_executed, success) {
44
45    $(target_div).find('.cards-slider').html('<div id="loading" class="text-center"><i class="fa fa-spinner fa-spin fa-3x"></i></div>');
46
47    $.get(Routing.generate('event_upcoming', {
48            day: date.getDate(),
49            month: date.getMonth() + 1, //Note: January is 0, February is 1, and so on. DO NOT CHANGE THIS LINE
50            year: date.getFullYear(),
51            wholeMonth: 1
52        }))
53        .done(function (data) {
54            if (data.events.length > 0) {
55                $(target_div).find('.cards-slider').html('');
56
57                var events_items = [];
58                for (var event in data.events) {
59                    if (success < max_success) {
60                        success++;
61                        events_items.push(data.events[event]);
62                    }
63                }
64
65                var events = $.templates('#upcoming-event-box').render(events_items);
66                $(target_div).removeClass('hidden');
67                $(target_div).find('.cards-slider').append(events);
68
69                var $cards = $(target_div).find('.cards-slider').flickity({
70                    imagesLoaded: true,
71                    cellAlign: 'left',
72                    contain: true,
73                    arrowShape: {
74                        x0: 25,
75                        x1: 55, y1: 30,
76                        x2: 65, y2: 20,
77                        x3: 45
78                    }
79                });
80
81                $cards.on('staticClick.flickity', function(event, pointer, cellElement, cellIndex){
82                    $cards.flickity('selectCell', cellIndex);
83                });
84            }
85        });
86};
87
88/**
89 *  Upcoming Event for event home.
90 *  Works like a calendar. Used in Upcoming Extension.
91 *
92 * @param target_div
93 */
94eDirectory.Event.upcomingEventsCarousel = function (target_div) {
95    var day = $(target_div).data('day');
96
97    if (!day) {
98        return;
99    }
100
101    day = day.split('-');
102    day = new Date(day[1] + '/' + day[2] + '/' + day[0]);
103
104    /* div#id */
105    var id = day.getDate() + '' + (day.getMonth() + 1) + '' + day.getFullYear(); //Note: January is 0, February is 1, and so on.
106    /* div to add events */
107    var block_container = $('.parent-cards-list');
108
109    /* class used in view */
110    block_container.find('.cards-list:visible').hide();
111
112    block_container.append('<div id="loading" class="text-center"><i class="fa fa-spinner fa-spin fa-3x"></i></div>');
113    $.get(Routing.generate('event_upcoming', {
114            day: day.getDate(),
115            month: day.getMonth() + 1, //Note: January is 0, February is 1, and so on. DO NOT CHANGE THIS LINE
116            year: day.getFullYear()
117        }))
118        .done(function (data) {
119            block_container.find('#loading').remove();
120
121            /* check if a event was found */
122            if (!(data.events.length > 0)) {
123                return;
124            }
125
126            //Limitando para aparecer somente 8 eventos
127             var limitedEvents = data.events.slice(0, 8);
128             data.events = limitedEvents;
129
130            /* #id used here */
131            var events = $.templates('#upcoming-event-carousel').render({data: data,id: id});
132            /* block_container used here */
133            $('.parent-cards-list').append(events);
134
135            lazyLoadInstance.update();
136        }).fail(function () {
137        block_container.find('#loading').remove();
138    });
139};
140
141/**
142 *  Upcoming Event for event home.
143 *  Works like a calendar. Used in Upcoming Extension.
144 *
145 * @param target_div
146 */
147eDirectory.Event.upcomingEventsCalendar = function (date) {
148    var day = new Date(date);
149
150    /* div#id */
151    var id = day.getDate() + '' + (day.getMonth() + 1) + '' + day.getFullYear(); //Note: January is 0, February is 1, and so on.
152    /* div to add events */
153    var block_container = $('.calendar-events');
154
155    /* class used in view */
156    block_container.find('.cards-list-calendar').hide();
157
158
159    block_container.addClass('is-loading');
160    block_container.prepend('<i id="loading" class="fa fa-spinner fa-spin fa-3x"></i>');
161    $.get(Routing.generate('event_upcoming', {
162        day: day.getDate(),
163        month: day.getMonth() + 1, //Note: January is 0, February is 1, and so on. DO NOT CHANGE THIS LINE
164        year: day.getFullYear()
165    }))
166        .done(function (data) {
167            block_container.find('#loading').remove();
168            block_container.removeClass('is-loading');
169
170            /* check if a event was found */
171            if (!(data.events.length > 0)) {
172                return;
173            }
174
175            //Limitando para aparecer somente 8 eventos
176            var limitedEvents = data.events.slice(0, 8);
177            data.events = limitedEvents;
178
179            /* #id used here */
180            var events = $.templates('#upcoming-event-calendar').render({data: data,id: id});
181            /* block_container used here */
182            block_container.prepend(events);
183
184            lazyLoadInstance.update();
185        }).fail(function () {
186        block_container.find('#loading').remove();
187        block_container.removeClass('is-loading');
188    });
189};
190
191/**
192 *  Populate dates on change Month.
193 *
194 * @param date
195 * @param eventDateObjs
196 */
197eDirectory.Event.populateDaysCalendar = function (date) {
198
199    var day = new Date(date);
200
201    var now = new Date(Date.now());
202
203    if (day.getMonth() <= (now.getMonth())) {
204        return;
205    }
206
207    $.get(Routing.generate('event_calendar', {
208        day: 1,
209        month: day.getMonth() + 1, //Note: January is 0, February is 1, and so on. DO NOT CHANGE THIS LINE
210        year: day.getFullYear()
211    })).done(function (data) {
212        data.result.map(function (elem) {
213            var date = new Date(elem.start + ' GMT+00:00');
214            date.setDate(date.getDate() + 1);
215
216            $('.day[data-date=' + date.getTime() + ']').removeClass('disabled').addClass('has-event');
217        });
218    });
219};
220

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.