PluginProbe
CookieAdmin – Cookie Consent Banner / 1.2.1
CookieAdmin – Cookie Consent Banner v1.2.1
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.2.1, at assets/js/cookie.js

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