PageSourceSearch

https://presse.culturespaces.com/wp-content/themes/culturespaces/l…/assets/js/expireCart.js?ver=1.0.5

js culturespaces.com collected 2026-10-01 12:17:56 UTC 7,633 bytes, 226 lines download raw bytes

1function getcontentcart(param) {
2    var cartLS = localStorage.getItem(param),
3        cart = [];
4    if (cartLS)
5        cart = JSON.parse(cartLS);
6    return cart;
7}
8
9function getallkeyscart() {
10    var cart_key = [];
11    for (var i = 0, len = localStorage.length; i < len; ++i) {
12        var key = localStorage.key(i);
13        if (key.indexOf('cart') !== -1) {
14            if (key !== 'cart_expires')
15                cart_key.push(key);
16        }
17    }
18    return cart_key;
19}
20
21function clearcart() {
22    var durationcart = document.querySelector('.durationcart');
23    if (durationcart)
24        durationcart.style.display = "none";
25
26    localStorage.setItem('cart_expires', "");
27    jQuery('.cart_content').hide();
28    jQuery('.subtitle').hide();
29    jQuery('.loader').hide();
30    jQuery('.cartItemShow #listImgCartDropdown.eng').html('<div class="alert_msg" role="alert">Your selection is empty, please select an item</div>');
31    jQuery('.cartItemShow #listImgCartDropdown.nld').html('<div class="alert_msg" role="alert">Je selectie is leeg, selecteer een item</div>');
32    jQuery('.cartItemShow #listImgCartDropdown.fra').html('<div class="alert_msg" role="alert">Votre sélection est vide, merci de choisir un article</div>');
33    jQuery('.cartItemShow #listImgCartDropdown.deu').html('<div class="alert_msg" role="alert">Sie haben nichts ausgewählt. Bitte wählen Sie einen Artikel aus.</div>');
34    jQuery('.cartLoad, .modal-header').css('display', 'none');
35    jQuery("#countImg, .badge-selection").text('0').hide();
36    jQuery(".addImageToCart").children('i').removeClass('fas').addClass('fal');
37    jQuery('.cartItemShow').removeClass('cartload');
38}
39
40function add_months(dt, n)
41{
42    return new Date(dt.setMonth(dt.getMonth() + n));
43}
44
45function returnverifyfunction(dateTimeA, dateTimeB) {
46    var momentA = moment(dateTimeA,"DD/MM/YYYY");
47    var momentB = moment(dateTimeB,"DD/MM/YYYY");
48
49    var time = datediff(momentA,momentB)
50
51
52    var resultdate = momentB - momentA;
53
54
55
56    if (momentA >= momentB) return -1;
57    else return time;
58}
59
60function countitemincart() {
61    var cart_key = getallkeyscart();
62    var i = 0;
63    jQuery.each(cart_key, function(index, value) {
64        var mycart = getcontentcart(value);
65        if (mycart.length > 0)
66            i++;
67    });
68    if (i === 0) {
69        clearcart();
70    }
71}
72
73var body = jQuery("body");
74
75
76body.on('click', '.addCart, #confirmClearCart', function () {
77
78    var d = new Date();
79    var year = d.getFullYear();
80    var month = d.getMonth()+1;
81    var add_month = d.getMonth()+2;
82    var day = d.getDate();
83
84    var get_cart_expires = add_months(new Date(year,month,day),0);
85    var cart_expires = get_cart_expires.getTime() / 1000;
86
87    var ifExpire = localStorage.getItem('cart_expires');
88    if (ifExpire) {
89        // do nothing
90    } else {
91        setTimeout(function () {
92            localStorage.setItem("cart_expires", cart_expires.toString());
93        }, 1);
94    }
95    setTimeout(function () {
96        countitemincart();
97    }, 20);
98});
99
100body.on('click', '.imgDelete', function () {
101    countitemincart();
102});
103
104function datediff(date1, date2){
105    var diff = {}                           // Initialisation du retour
106    var tmp = date2 - date1;
107
108    tmp = Math.floor(tmp/1000);             // Nombre de secondes entre les 2 dates
109    diff.sec = tmp % 60;                    // Extraction du nombre de secondes
110
111    tmp = Math.floor((tmp-diff.sec)/60);    // Nombre de minutes (partie entière)
112    diff.min = tmp % 60;                    // Extraction du nombre de minutes
113
114    tmp = Math.floor((tmp-diff.min)/60);    // Nombre d'heures (entières)
115    diff.hour = tmp % 24;                   // Extraction du nombre d'heures
116
117    tmp = Math.floor((tmp-diff.hour)/24);   // Nombre de jours restants
118    diff.day = tmp;
119
120    return diff;
121}
122
123
124function cleartcartfromdate(){
125    var cart_key = getallkeyscart();
126    var cartExpire = getcontentcart('cart_expires');
127    var ifExpire = localStorage.getItem('cart_expires');
128    if (ifExpire) {
129        //console.log('cart expires exist');
130        if (cart_key.length > 0) {
131            var d = new Date();
132            var year = d.getFullYear();
133            var month = d.getMonth()+1;
134            var day = d.getDate();
135
136            var d_expires = new Date(cartExpire * 1000);
137            var year_expires = d_expires.getFullYear();
138            var month_expires = d_expires.getMonth()+1;
139            var day_expires = d_expires.getDate();
140            var today_date = day + '/' + month + '/' + year;
141            var expires_date = day_expires + '/' + month_expires + '/' + year_expires;
142            var check_expires_cart = returnverifyfunction(today_date, expires_date);
143
144            if (check_expires_cart === -1) {
145                jQuery.each(cart_key, function(index, value) {
146                    localStorage.setItem(value, JSON.stringify([]));
147                });
148                clearcart();
149            }
150            else
151                return check_expires_cart;
152        }
153    } else {
154        jQuery.each(cart_key, function(index, value) {
155            localStorage.setItem(value, JSON.stringify([]));
156        });
157        clearcart();
158    }
159}
160
161function deleteimgcard() {
162    var tableinlocalstorage = getallkeyscart();
163    if (tableinlocalstorage) {
164        for (let i = 0; i < tableinlocalstorage.length ; i++) {
165            var cartLS = localStorage.getItem(tableinlocalstorage[i]);
166            let array = JSON.parse(cartLS);
167            var request = jQuery.post({
168                method: "POST",
169                url: ajaxurlCartExpire,
170                data: {
171                    'action': 'checkIfAssetExist',
172                    'id': array
173                }
174            });
175            request.done(function (response) {
176                var parseReponse =  JSON.parse(response);
177                if (parseReponse.todelete) {
178                    for (let j = 0; j < parseReponse.todelete.length ; j++) {
179                        var positionarray = array.indexOf(parseReponse.todelete[j]);
180
181                        if (positionarray !== -1) {
182                            array = jQuery.grep(array, function(value) {
183                                return value != array[positionarray];
184                            });
185                            localStorage.setItem(tableinlocalstorage[i], JSON.stringify(array));
186                        }
187                    }
188                }
189            });
190        }
191    }
192}
193
194function showMessageReset() {
195    var resultreturnfunction = cleartcartfromdate();
196    if(resultreturnfunction){
197        var parsedUrl = new URL(window.location.href);
198        var sitelang = parsedUrl.searchParams.get("lang");
199        var durationfinal = resultreturnfunction.day;
200        var textContentStart = "Your selection will be reset in ";
201        var textContentEnd = " day(s).";
202
203        document.querySelectorAll(".durationcart").forEach(el => el.remove());
204
205        if (sitelang === "nld") {
206            textContentStart = "Je selectie wordt over ";
207            textContentEnd = " dag(en) gereset.";
208        } else if (sitelang === "fra") {
209            textContentStart = "Votre selection sera réinitialisée dans ";
210            textContentEnd = " jour(s).";
211        }
212
213        var parent = document.querySelector('.cart_content, #myCart');
214        let newsP = document.createElement('p');
215        newsP.className = "durationcart";
216        newsP.textContent = textContentStart + durationfinal + textContentEnd;
217        if (parent)
218            parent.prepend(newsP);
219    }
220}
221
222jQuery(document).ready(function($) {
223    deleteimgcard();
224
225    showMessageReset();
226});

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.