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

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