PluginProbe
CookieAdmin – Cookie Consent Banner / 1.1.5
CookieAdmin – Cookie Consent Banner v1.1.5
1.2.3 1.2.2 1.2.1 1.2.0 1.1.9 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
cookieadmin / assets / js / cookie.js

cookie.js in CookieAdmin – Cookie Consent Banner 1.1.5, at assets/js/cookie.js

675 lines 25.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // This file is a part of the admin side of CookieAdmin
2
3 jQuery(document).ready(function($){
4
5 var law = '';
6
7 function cookieadminSelectFooterLayout(){
8 $("input[name=cookieadmin_position]").prop("checked", false);
9 $(".consent-position").slideDown();
10 $(".cookieadmin_foter_layout").fadeIn(800);
11 $(".cookieadmin_box_layout").hide();
12 $(".consent-modal-layout").show();
13 }
14 $("#cookieadmin_layout_footer").on("change", cookieadminSelectFooterLayout);
15
16 function cookieadminSelectBoxLayout(){
17 $("input[name=cookieadmin_position]").prop("checked", false);
18 $(".consent-position").slideDown();
19 $(".cookieadmin_foter_layout").hide();
20 $(".cookieadmin_box_layout").fadeIn(800);
21 $(".consent-modal-layout").slideDown();
22 }
23 $("#cookieadmin_layout_box").on("change", cookieadminSelectBoxLayout);
24
25 function cookieadminSelectPopLayout(){
26 $("input[name=cookieadmin_position]").prop("checked", false);
27 $(".consent-position").slideUp();
28 $(".consent-modal-layout").slideUp();
29 }
30 $("#cookieadmin_layout_popup").on("change", cookieadminSelectPopLayout);
31
32 setTimeout( function(){
33 $('.updated, .error').not('.no-autohide').fadeOut('slow');
34 }, 5000);
35
36 //==== Notice Section Preview Live Change
37
38 $('#cookieadmin_notice_title_layout').on('input', function () {
39 const titleValue = $(this).val().trim();
40 $('#cookieadmin_notice_title').text(titleValue);
41 });
42
43 $('#cookieadmin_notice_layout').on('input', function () {
44 const detailValue = $(this).val().trim();
45 $('#cookieadmin_notice').text(detailValue);
46 });
47
48 $('#cookieadmin_consent_inside_bg_color_box').on('input', function () {
49 const color = $(this).val().trim();
50 $('.cookieadmin_consent_inside').css('background-color', color);
51 });
52
53 $('#cookieadmin_consent_inside_border_color_box').on('input', function () {
54 const color = $(this).val().trim();
55 $('.cookieadmin_consent_inside').css('border', "1px solid" + color);
56 });
57
58 $('#cookieadmin_notice_color_box').on('input', function () {
59 const color = $(this).val().trim();
60 $('#cookieadmin_notice').css('color', color);
61 });
62
63 $('#cookieadmin_notice_title_color_box').on('input', function () {
64 const color = $(this).val().trim();
65 $('#cookieadmin_notice_title').css('color', color);
66 });
67
68 //====== Notice Buttons Preview
69
70 $('#cookieadmin_customize_btn').on('input', function () {
71 const textData = $(this).val().trim();
72 $('#cookieadmin_customize_button').text(textData);
73 $('#cookieadmin_customize_modal_button').text(textData);
74 });
75
76 $('#cookieadmin_reject_btn').on('input', function () {
77 const textData = $(this).val().trim();
78 $('#cookieadmin_reject_button').text(textData);
79 $('#cookieadmin_reject_modal_button').text(textData);
80 });
81
82 $('#cookieadmin_accept_btn').on('input', function () {
83 const textData = $(this).val().trim();
84 $('#cookieadmin_accept_button').text(textData);
85 $('#cookieadmin_accept_modal_button').text(textData);
86 });
87
88 $('#cookieadmin_save_btn').on('input', function () {
89 const textData = $(this).val().trim();
90 $('#cookieadmin_prf_modal_button').text(textData);
91 });
92
93 $('#cookieadmin_customize_btn_color_box').on('input', function () {
94 const color = $(this).val().trim();
95 $('#cookieadmin_customize_button').css('color', color);
96 $('#cookieadmin_customize_modal_button').css('color', color);
97 });
98
99 $('#cookieadmin_accept_btn_color_box').on('input', function () {
100 const color = $(this).val().trim();
101 $('#cookieadmin_accept_button').css('color', color);
102 $('#cookieadmin_accept_modal_button').css('color', color);
103 });
104
105 $('#cookieadmin_reject_btn_color_box').on('input', function () {
106 const color = $(this).val().trim();
107 $('#cookieadmin_reject_button').css('color', color);
108 $('#cookieadmin_reject_modal_button').css('color', color);
109 });
110
111 $('#cookieadmin_save_btn_color_box').on('input', function () {
112 const color = $(this).val().trim();
113 $('#cookieadmin_prf_modal_button').css('color', color);
114 });
115
116 $('#cookieadmin_customize_btn_bg_color_box').on('input', function () {
117 const color = $(this).val().trim();
118 $('#cookieadmin_customize_button').css('background-color', color);
119 $('#cookieadmin_customize_modal_button').css('background-color', color);
120 });
121
122 $('#cookieadmin_accept_btn_bg_color_box').on('input', function () {
123 const color = $(this).val().trim();
124 $('#cookieadmin_accept_button').css('background-color', color);
125 $('#cookieadmin_accept_modal_button').css('background-color', color);
126
127 });
128
129 $('#cookieadmin_reject_btn_bg_color_box').on('input', function () {
130 const color = $(this).val().trim();
131 $('#cookieadmin_reject_button').css('background-color', color);
132 $('#cookieadmin_reject_modal_button').css('background-color', color);
133 });
134
135 $('#cookieadmin_save_btn_bg_color_box').on('input', function () {
136 const color = $(this).val().trim();
137 $('#cookieadmin_prf_modal_button').css('background-color', color);
138 });
139
140 //======= Preference Section Preview
141
142 $('#cookieadmin_preference_title_layout').on('input', function () {
143 const titleValue = $(this).val().trim();
144 $('#cookieadmin_preference_title').text(titleValue);
145 });
146
147 $('#cookieadmin_preference_layout').on('input', function () {
148 const detailValue = $(this).val().trim();
149 $('#cookieadmin_preference').text(detailValue);
150 });
151
152 $("#cookieadmin_cookie_modal_bg_color_box").on('input', function () {
153 const color = $(this).val().trim();
154 $(".cookieadmin_cookie_modal").css('background-color', color);
155 });
156
157 $("#cookieadmin_cookie_modal_border_color_box").on('input', function () {
158 const color = $(this).val().trim();
159 $(".cookieadmin_cookie_modal").css('border', "1px solid" + color);
160 });
161
162 $("#cookieadmin_details_wrapper_color_box").on('input', function () {
163 const color = $(this).val().trim();
164 $(".cookieadmin_details_wrapper").css('color', color);
165 });
166
167 $("#cookieadmin_preference_title_color_box").on('input', function () {
168 const color = $(this).val().trim();
169 $("#cookieadmin_preference_title").css('color', color);
170 });
171
172 //set default or set values in input and preview on page load.
173 for(law in cookieadmin_policy){
174
175 law = cookieadmin_policy[cookieadmin_policy["set"]];
176
177 $("#cookieadmin_consent_type").find("#"+cookieadmin_policy["set"]).attr("selected", true);
178
179 $("#cookieadmin_consent_expiry").val(law.cookieadmin_days);
180 $("#cookieadmin_layout_"+law.cookieadmin_layout).prop("checked", true).trigger("change");
181
182 if(!!law.cookieadmin_position){
183 $("#cookieadmin_position_"+law.cookieadmin_position).prop("checked", true);
184 }else{
185 $(".consent-position").hide();
186 }
187 $("#cookieadmin_modal_" + law.cookieadmin_modal).prop("checked", true);
188 $(".cookieadmin_cookie_modal").addClass("cookieadmin_" + law.cookieadmin_modal);
189
190 $(".cookieadmin_consent_inside").css('background-color', law.cookieadmin_consent_inside_bg_color);
191 $("#cookieadmin_notice_title").css('color', law.cookieadmin_notice_title_color);
192 $("#cookieadmin_notice").css('color', law.cookieadmin_notice_color);
193 $(".cookieadmin_consent_inside").css('border', "1px solid" + law.cookieadmin_consent_inside_border_color);
194
195 $(".cookieadmin_cookie_modal").css('background-color', law.cookieadmin_cookie_modal_bg_color);
196 $("#cookieadmin_preference_title").css('color', law.cookieadmin_preference_title_color);
197 $(".cookieadmin_details_wrapper").css('color', law.cookieadmin_details_wrapper_color);
198 $(".cookieadmin_cookie_modal").css('border', "1px solid" + law.cookieadmin_cookie_modal_border_color);
199
200 // $("#cookieadmin_notice_title_layout").val(law.cookieadmin_notice_title);
201 $("#cookieadmin_notice_title").html(law.cookieadmin_notice_title);
202
203 // $("#cookieadmin_notice_layout").val(law.cookieadmin_notice);
204 $("#cookieadmin_notice").html(law.cookieadmin_notice);
205
206 // $("#cookieadmin_preference_title_layout").val(law.cookieadmin_preference_title);
207 $("#cookieadmin_preference_title").html(law.cookieadmin_preference_title);
208
209 // $("#cookieadmin_preference_layout").val(law.cookieadmin_preference);
210 $("#cookieadmin_preference").html(law.cookieadmin_preference);
211
212 $(".cookieadmin_customize_btn").text(law.cookieadmin_customize_btn);
213 $(".cookieadmin_customize_btn").css('background-color', $("#cookieadmin_customize_btn_bg_color").val());
214 $(".cookieadmin_customize_btn").css('color', $("#cookieadmin_customize_btn_color").val());
215
216 $(".cookieadmin_reject_btn").text(law.cookieadmin_reject_btn);
217 $(".cookieadmin_reject_btn").css('background-color', $("#cookieadmin_reject_btn_bg_color").val());
218 $(".cookieadmin_reject_btn").css('color', $("#cookieadmin_reject_btn_color").val());
219
220 $(".cookieadmin_accept_btn").text(law.cookieadmin_accept_btn);
221 $(".cookieadmin_accept_btn").css('background-color', $("#cookieadmin_accept_btn_bg_color").val());
222 $(".cookieadmin_accept_btn").css('color', $("#cookieadmin_accept_btn_color").val());
223
224 $(".cookieadmin_save_btn").text(law.cookieadmin_save_btn);
225 $(".cookieadmin_save_btn").css('background-color', $("#cookieadmin_save_btn_bg_color").val());
226 $(".cookieadmin_save_btn").css('color', $("#cookieadmin_save_btn_color").val());
227
228 $(".act").css('color', law.cookieadmin_links_color);
229
230 const sliders = $("#cookieadmin_wrapper .cookieadmin_slider");
231 $(sliders[0]).css('background-color', law.cookieadmin_slider_off_bg_color);
232 $(sliders[1]).css('background-color', law.cookieadmin_slider_off_bg_color);
233 $(sliders[2]).css('background-color', law.cookieadmin_slider_off_bg_color);
234
235 //Also set layout of consents
236 if(!!law.cookieadmin_position){
237 $.each(law.cookieadmin_position.split("_"), function(i,v){
238 $(".cookieadmin_law_container").addClass("cookieadmin_" + v);
239 });
240 }
241
242 if(!!law.cookieadmin_layout){
243 $.each(law.cookieadmin_layout.split("_"), function(i,v){
244 $(".cookieadmin_law_container").addClass("cookieadmin_" + v);
245 });
246 }
247
248 cookieadmin_policy['set'] == 'cookieadmin_gdpr' ? $(".setting-prior").show() : $(".setting-prior").hide();
249
250 break;
251 }
252
253 function show_modal(){
254 if($(".cookieadmin_cookie_modal").css("display") === "none"){
255 $(".cookieadmin_cookie_modal").css("display", "flex");
256 }
257 else{
258 $(".cookieadmin_cookie_modal").css("display", "none");
259 }
260 }
261
262 function cookieadminShowPreview(){
263 if($("#cookieadmin_layout_popup").prop("checked")){
264 show_modal();
265 }else{
266 $(".cookieadmin_law_container").toggle();
267 }
268 }
269 $("#cookieadmin_show_preview").on("click", cookieadminShowPreview);
270
271 $(".cookieadmin_customize_btn").on("click", function(){
272 show_modal();
273 });
274
275 $(".cookieadmin_close_pref").on("click", function(){
276 $(".cookieadmin_cookie_modal").hide();
277 });
278
279 function cookieadminChangeLaw(){
280
281 var law = $("#cookieadmin_consent_type").find(":selected").attr("name");
282
283 $("#cookieadmin_consent_expiry").val(cookieadmin_policy[law].cookieadmin_days);
284
285 $("[id^=cookieadmin_layout_]").prop("checked", false);
286 $("#cookieadmin_layout_"+cookieadmin_policy[law].cookieadmin_layout).prop("checked", true);
287
288 if(cookieadmin_policy[law].cookieadmin_layout == "box"){
289 $(".cookieadmin_foter_layout").hide();
290 $(".cookieadmin_box_layout").show();
291 }else{
292 $(".cookieadmin_foter_layout").show();
293 $(".cookieadmin_box_layout").hide();
294 }
295
296 $("[id^=cookieadmin_position_]").prop("checked", false);
297 $("#cookieadmin_position_"+cookieadmin_policy[law].cookieadmin_position).prop("checked", true);
298
299 $("[id^=cookieadmin_modal_]").prop("checked", false);
300 $("#cookieadmin_modal_"+cookieadmin_policy[law].cookieadmin_modal).prop("checked", true);
301
302 $("#cookieadmin_notice_title_layout").val(cookieadmin_policy[law].cookieadmin_notice_title);
303 $("#cookieadmin_notice_layout").val(cookieadmin_policy[law].cookieadmin_notice);
304
305 $("#cookieadmin_notice_title_color_box").val(cookieadmin_policy[law].cookieadmin_notice_title_color);
306 $("#cookieadmin_notice_title_color").val(cookieadmin_policy[law].cookieadmin_notice_title_color);
307 $("#cookieadmin_notice_color_box").val(cookieadmin_policy[law].cookieadmin_notice_color);
308 $("#cookieadmin_notice_color").val(cookieadmin_policy[law].cookieadmin_notice_color);
309 $("#cookieadmin_consent_inside_bg_color_box").val(cookieadmin_policy[law].cookieadmin_consent_inside_bg_color);
310 $("#cookieadmin_consent_inside_bg_color").val(cookieadmin_policy[law].cookieadmin_consent_inside_bg_color);
311 $("#cookieadmin_consent_inside_border_color_box").val(cookieadmin_policy[law].cookieadmin_consent_inside_border_color);
312 $("#cookieadmin_consent_inside_border_color").val(cookieadmin_policy[law].cookieadmin_consent_inside_border_color);
313
314 $("#cookieadmin_customize_btn").val(cookieadmin_policy[law].cookieadmin_customize_btn);
315 $("#cookieadmin_customize_btn_color_box").val(cookieadmin_policy[law].cookieadmin_customize_btn_color);
316 $("#cookieadmin_customize_btn_color").val(cookieadmin_policy[law].cookieadmin_customize_btn_color);
317 $("#cookieadmin_customize_btn_bg_color_box").val(cookieadmin_policy[law].cookieadmin_customize_btn_bg_color);
318 $("#cookieadmin_customize_btn_bg_color").val(cookieadmin_policy[law].cookieadmin_customize_btn_bg_color);
319
320 $("#cookieadmin_reject_btn").val(cookieadmin_policy[law].cookieadmin_reject_btn);
321 $("#cookieadmin_reject_btn_color_box").val(cookieadmin_policy[law].cookieadmin_reject_btn_color);
322 $("#cookieadmin_reject_btn_color").val(cookieadmin_policy[law].cookieadmin_reject_btn_color);
323 $("#cookieadmin_reject_btn_bg_color_box").val(cookieadmin_policy[law].cookieadmin_reject_btn_bg_color);
324 $("#cookieadmin_reject_btn_bg_color").val(cookieadmin_policy[law].cookieadmin_reject_btn_bg_color);
325
326 $("#cookieadmin_accept_btn").val(cookieadmin_policy[law].cookieadmin_accept_btn);
327 $("#cookieadmin_accept_btn_color_box").val(cookieadmin_policy[law].cookieadmin_accept_btn_color);
328 $("#cookieadmin_accept_btn_color").val(cookieadmin_policy[law].cookieadmin_accept_btn_color);
329 $("#cookieadmin_accept_btn_bg_color_box").val(cookieadmin_policy[law].cookieadmin_accept_btn_bg_color);
330 $("#cookieadmin_accept_btn_bg_color").val(cookieadmin_policy[law].cookieadmin_accept_btn_bg_color);
331
332 $("#cookieadmin_save_btn").val(cookieadmin_policy[law].cookieadmin_save_btn);
333 $("#cookieadmin_save_btn_color_box").val(cookieadmin_policy[law].cookieadmin_save_btn_color);
334 $("#cookieadmin_save_btn_color").val(cookieadmin_policy[law].cookieadmin_save_btn_color);
335 $("#cookieadmin_save_btn_bg_color_box").val(cookieadmin_policy[law].cookieadmin_save_btn_bg_color);
336 $("#cookieadmin_save_btn_bg_color").val(cookieadmin_policy[law].cookieadmin_save_btn_bg_color);
337
338 $("#cookieadmin_preference_title_layout").val(cookieadmin_policy[law].cookieadmin_preference_title);
339 $("#cookieadmin_preference_layout").val(cookieadmin_policy[law].cookieadmin_preference);
340
341 $("#cookieadmin_preference_title_color_box").val(cookieadmin_policy[law].cookieadmin_preference_title_color);
342 $("#cookieadmin_preference_title_color").val(cookieadmin_policy[law].cookieadmin_preference_title_color);
343 $("#cookieadmin_details_wrapper_color_box").val(cookieadmin_policy[law].cookieadmin_details_wrapper_color);
344 $("#cookieadmin_details_wrapper_color").val(cookieadmin_policy[law].cookieadmin_details_wrapper_color);
345 $("#cookieadmin_cookie_modal_bg_color_box").val(cookieadmin_policy[law].cookieadmin_cookie_modal_bg_color);
346 $("#cookieadmin_cookie_modal_bg_color").val(cookieadmin_policy[law].cookieadmin_cookie_modal_bg_color);
347 $("#cookieadmin_cookie_modal_border_color_box").val(cookieadmin_policy[law].cookieadmin_cookie_modal_border_color);
348 $("#cookieadmin_cookie_modal_border_color").val(cookieadmin_policy[law].cookieadmin_cookie_modal_border_color);
349
350 $("#cookieadmin_slider_on_bg_color_box").val(cookieadmin_policy[law].cookieadmin_slider_on_bg_color);
351 $("#cookieadmin_slider_on_bg_color").val(cookieadmin_policy[law].cookieadmin_slider_on_bg_color);
352 $("#cookieadmin_slider_off_bg_color_box").val(cookieadmin_policy[law].cookieadmin_slider_off_bg_color);
353 $("#cookieadmin_slider_off_bg_color").val(cookieadmin_policy[law].cookieadmin_slider_off_bg_color);
354
355 $("#cookieadmin_links_color_box").val(cookieadmin_policy[law].cookieadmin_links_color);
356 $("#cookieadmin_links_color").val(cookieadmin_policy[law].cookieadmin_links_color);
357
358 law == 'cookieadmin_gdpr' ? $(".setting-prior").show() : $(".setting-prior").hide();
359 }
360 $("#cookieadmin_consent_type").on("change", cookieadminChangeLaw);
361
362 function cookieadminSubmitConsent(e){
363 var checked = false;
364
365 if (!$("input[name=cookieadmin_position]:checked").length && !$("#cookieadmin_layout_popup").prop("checked")) {
366 alert('Please select a notice position.');
367 e.preventDefault(); // Prevent form submission
368 }
369 }
370 $("#consent_submenu").submit(cookieadminSubmitConsent);
371
372 function cookieadminPreloadCookies(){
373
374 if(!($(".setting-prior").find("[id$=_preload]:checked").length - 1) && $(".cookieadmin-settings").find(".cookieadmin-collapsible-notice").length){
375 $(".cookieadmin-settings").find(".cookieadmin-collapsible-notice").remove();
376 return;
377 }
378
379 if(!$(".cookieadmin-settings").find(".cookieadmin-collapsible-notice").length){
380 $(".setting-prior").after("<p class=\"cookieadmin-collapsible-notice\">Loading cookies prior to receiving user consent will make your website non-compliant with GDPR.</p>");
381 $(".cookieadmin-collapsible-notice").show();
382 }
383
384 }
385 $("[id$=_preload]").on("click", cookieadminPreloadCookies);
386
387 function cookieadminScanCookies(){
388
389 let cookieadmin_btn_val = $(this).prop('value');
390 var this_btn = $(this);
391 this_btn.prop("disabled", true).prop('value', 'Scanning...');
392
393 $.ajax({
394 url: cookieadmin_policy.admin_url,
395 method: "POST",
396 data : {
397 action : 'cookieadmin_ajax_handler',
398 cookieadmin_act : 'scan_cookies',
399 cookieadmin_security : cookieadmin_policy.cookieadmin_nonce,
400 },
401 success: function(result){
402
403 if(result.success){
404 if(typeof cookieadmin_pro_policy === 'object'){
405 alert(cookieadmin_pro_policy.lang.background_scan);
406 }else{
407 alert(cookieadmin_policy.lang.scan_completed);
408 window.location.reload();
409 }
410 }else{
411 alert(result.message);
412 }
413
414 },
415 error: function(xhr, status, error) {
416 console.log('CookieAdmin AJAX Error:', status, error);
417 console.log('CookieAdmin response: ' + xhr.responseText); // Check the error message
418 alert("Request failed: " + error);
419 },
420 complete: function() {
421 this_btn.prop("disabled", false).prop("value", cookieadmin_btn_val);
422 }
423 });
424 }
425 $(".cookieadmin-scan").on("click", cookieadminScanCookies);
426
427 function cookieadminSaveCookie(){
428
429 $('#cookieadmin-message').removeClass().addClass('spinner is-active').text('').css('height','auto');
430 $(this).prop("disabled", true);
431
432 //set 0 to add real id to delete
433 cookie_id = $(this).attr("cookieadmin_cookie_id");
434
435 let cookie_info = {
436 name: $("#cookieadmin-dialog-cookie-name").val(),
437 id: cookie_id,
438 description: $("#cookieadmin-dialog-cookie-desc").val(),
439 duration: $("#cookieadmin-dialog-cookie-duration").val(),
440 type: $("#cookieadmin-dialog-cookie-category").val()
441 };
442
443 $.each(cookie_info, function (i, val){
444 if(!val){
445 cookie_info = null;
446 return false;
447 }
448 });
449
450 if(!cookie_info){
451 $(this).prop("disabled", false);
452 $('#cookieadmin-message').removeClass().addClass('cookieadmin-error-message').text('Please fill all the fields');
453 return false;
454 }
455
456 // Used to call add cookie, in the Pro file.
457 if(cookie_id == 0 && typeof cookieadminProSaveCookie === 'function'){
458 cookieadminProSaveCookie(cookie_info);
459 return;
460 }
461
462 $.ajax({
463 url: cookieadmin_policy.admin_url,
464 method: "POST",
465 data : {
466 action : 'cookieadmin_ajax_handler',
467 cookieadmin_act : 'cookieadmin-edit-cookie',
468 cookie_info : cookie_info,
469 cookieadmin_security : cookieadmin_policy.cookieadmin_nonce,
470 },
471 success: function(result){
472
473 if(result.success){
474 cookieadminAddCookieToTable(cookie_info);
475 $('#cookieadmin-message').removeClass().addClass('cookieadmin-success-message').text(result.message);
476 }else{
477 alert(result.message);
478 }
479 },
480 error: function(xhr, status, error) {
481 console.log('CookieAdmin AJAX Error:', status, error);
482 console.log('CookieAdmin response: ' + xhr.responseText); // Check the error message
483 alert("Request failed: " + error);
484 }
485 });
486 $(this).prop("disabled", false);
487 }
488 $("#cookieadmin_dialog_save_btn").on("click", cookieadminSaveCookie);
489
490 $("input[type=color]").on("input", function(){
491 elemt = $(this).attr("id").replace("_box", "");
492 $("#"+elemt).val($(this).val());
493 });
494
495
496 function cookieadminDeleteCookie(){
497
498 if(confirm("Are you sure you want to delete ?")){
499
500 cookie_raw_id = $(this).attr("id").replace("delete_", "");
501 var row = $(this).parents("tr")
502
503 $.ajax({
504 url: cookieadmin_policy.admin_url,
505 method: "POST",
506 data : {
507 action : 'cookieadmin_ajax_handler',
508 cookieadmin_act : 'cookieadmin-delete-cookie',
509 cookie_raw_id : cookie_raw_id,
510 cookieadmin_security : cookieadmin_policy.cookieadmin_nonce,
511 },
512 success: function(result){
513 if (result.success) {
514 row.remove();
515 delete categorized_cookies[cookie_raw_id];
516 }else{
517 alert(result.message);
518 }
519 },
520 error: function(xhr, status, error) {
521 console.log('CookieAdmin AJAX Error:', status, error);
522 console.log('CookieAdmin response: ' + xhr.responseText); // Check the error message
523 alert("Request failed: " + error);
524 }
525 });
526 }
527 }
528 $('.cookieadmin-metabox-holder').on("click", ".cookieadmin_delete_icon", cookieadminDeleteCookie);
529
530 function cookieadminOpenCookieDialog(){
531
532 const modal = document.getElementById('edit-cookie-modal');
533
534 if(modal.classList.contains("active")){
535 modal.classList.remove('active');
536 }else{
537 modal.classList.add('active');
538
539 if($(this).hasClass('cookieadmin-add-cookie')){
540 $("#cookieadmin_dialog_save_btn").attr("cookieadmin_cookie_id", 0);
541 $('.cookieadmin_modal-header').children()[0].innerHTML = 'Add Cookie';
542 $('.cookieadmin_modal-container').find('input,textarea,select').val('');
543 }else{
544
545 $('.cookieadmin_modal-header').children()[0].innerHTML = 'Edit Cookie';
546 var cookie_id = $(this).attr("id").replace("edit_", "");
547
548 $("#cookieadmin_dialog_save_btn").attr("cookieadmin_cookie_id", cookie_id);
549 $("#cookieadmin-dialog-cookie-name").val(categorized_cookies[cookie_id]['cookie_name']);
550 $("#cookieadmin-dialog-cookie-desc").val(categorized_cookies[cookie_id]['description']);
551 $("#cookieadmin-dialog-cookie-duration").val(categorized_cookies[cookie_id]['expires']);
552 if(!!categorized_cookies[cookie_id]['category']){
553 $("#cookieadmin-dialog-cookie-category").val(categorized_cookies[cookie_id]['category']);
554 }else{
555 $("#cookieadmin-dialog-cookie-category").val("unknown");
556 }
557 }
558
559 $('.cookieadmin-metabox-holder').on('mousedown.cookieadmin-close-dialog2', function(e){
560 if ( !$(".cookieadmin_modal-container").is(e.target) && $(".cookieadmin_modal-container").has(e.target).length === 0 && !$(".cookieadmin_modal-container").is(e.target) && $(".cookieadmin_modal-container").has(e.target).length === 0) {
561 modal.classList.remove('active');
562 $('#cookieadmin-message').removeClass().addClass('cookieadmin-success-message').text('');
563 $('.cookieadmin-metabox-holder').off('mousedown.cookieadmin-close-dialog2');
564 }
565 });
566 }
567 }
568 $(document).on("click", ".cookieadmin_edit_icon, .cookieadmin_dialog_modal_close_btn, .cookieadmin-add-cookie", cookieadminOpenCookieDialog);
569
570
571 function cookieadminExpandCollapseCookiesList() {
572 var $tbody = $(this).closest('tbody');
573 var $rows = $tbody.find('tr:not(:first-child)');
574
575 if ($rows.is(':visible')) {
576 $rows.slideUp();
577 $tbody.addClass('collapsed');
578 } else {
579 $rows.slideDown();
580 $tbody.removeClass('collapsed');
581 }
582 }
583 $('.cookieadmin-metabox-holder').on('click', '.cookieadmin-cookie-categorized tbody > tr:first-child', cookieadminExpandCollapseCookiesList);
584
585 // Tooltip
586 let cookieadminToolTip;
587
588 function cookieadminCreateTooltip(){
589 cookieadminToolTip = $('<div>', {
590 class: 'cookieadmin-tooltip'
591 }).appendTo('body');
592 }
593
594 $('.cookieadmin-tooltip-box').on('mouseenter', function(e){
595
596 if(!cookieadminToolTip){
597 cookieadminCreateTooltip();
598 }
599
600 var tip = $(this).attr('data-tip') || '';
601 cookieadminToolTip.text(tip).css('opacity', 1);
602
603 }).on('mousemove', function(e){
604
605 if(!cookieadminToolTip){
606 return;
607 }
608
609 var offset = 12;
610 var tooltipRect = cookieadminToolTip[0].getBoundingClientRect();
611
612 var top = e.clientY - tooltipRect.height - offset;
613 var left = e.clientX + offset;
614
615 // Flip below if not enough space above
616 if(top < 8){
617 top = e.clientY + offset;
618 }
619
620 // Prevent right overflow
621 if(left + tooltipRect.width > window.innerWidth - 8){
622 left = e.clientX - tooltipRect.width - offset;
623 }
624
625 cookieadminToolTip.css({
626 top: top + 'px',
627 left: left + 'px'
628 });
629 })
630 .on('mouseleave', function(){
631
632 if(!cookieadminToolTip){
633 return;
634 }
635
636 cookieadminToolTip.css('opacity', 0);
637 });
638
639
640 });
641
642 function cookieadminAddCookieToTable(cookie_info){
643
644 var row = '';
645
646 categorized_cookies[cookie_info.id] = !categorized_cookies[cookie_info.id] ? {} : categorized_cookies[cookie_info.id];
647
648 categorized_cookies[cookie_info.id]['id'] = cookie_info.id;
649 categorized_cookies[cookie_info.id]['cookie_name'] = cookie_info.name;
650 categorized_cookies[cookie_info.id]['description'] = cookie_info.description;
651 categorized_cookies[cookie_info.id]['expires'] = cookie_info.duration;
652 categorized_cookies[cookie_info.id]['category'] = cookie_info.type;
653
654 if(cookie_info.duration > 0){
655 cookie_info.duration += ' ' + cookieadmin_policy.lang.days;
656 }else{
657 cookie_info.duration = cookieadmin_policy.lang.session;
658 }
659
660 row = '<tr>';
661 row += '<td>' + cookie_info.name + '</td>';
662 row += '<td>' + cookie_info.description + '</td>';
663 row += '<td>' + cookie_info.duration + '</td>';
664 row += '<td> <span class="dashicons dashicons-edit cookieadmin_edit_icon" id="edit_'+cookie_info.id+'"></span> <span class="dashicons dashicons-trash cookieadmin_delete_icon" id="edit_'+cookie_info.id+'"></span> </td>';
665 row += '</tr>';
666
667 jQuery("#edit_"+cookie_info.id).parents("tr").remove();
668 tbody = "#" + cookie_info.type.toLowerCase() + "_tbody";
669 jQuery(tbody).find('.cookieadmin-empty-row').remove();
670 jQuery(tbody).append(row);
671
672 if(!categorized_cookies[cookie_id]){
673 jQuery('.cookieadmin_modal-container').find('input,textarea,select').val('');
674 }
675 }