PageSourceSearch

https://media.edenred.com/wp-content/themes/epp-root/lib/modules/a…/assets/js/expireCart.js?ver=1.1.6

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