Plugin Directory

Changeset 2683288


Ignore:
Timestamp:
02/22/2022 08:36:30 PM (4 years ago)
Author:
powerplugins
Message:

Minified asset files.

Location:
mini-wp-gdpr
Files:
11 edited
2 copied

Legend:

Unmodified
Added
Removed
  • mini-wp-gdpr/tags/1.0.11/assets/mini-gdpr-admin.css

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR Admin
    3  */
    4 .my-account-tab-chooser {
    5     margin-left:  1em;
    6 }
     1.my-account-tab-chooser{margin-left:1em}
  • mini-wp-gdpr/tags/1.0.11/assets/mini-gdpr-cookie-popup.css

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR Cookie Popup
    3  */
    4 .mgw-cnt {
    5     position: fixed;
    6     z-index: 1000;
    7 }
    8 
    9 .mgw-cnt.mgw-box {
    10     width: 16em;
    11     border: 3px solid black;
    12     /* border: 1px solid black; */
    13     border-radius: 0.25em;
    14     /* box-shadow: 0 0 0.5em #00000044; */
    15     box-shadow: 0 0 2em #00000066;
    16 }
    17 
    18 .mgw-cnt p,
    19 .mgw-nfo p {
    20     padding: 1em;
    21     margin: 0;
    22     background-color:  white;
    23     color:  black;
    24 }
    25 
    26 .mgw-cnt.mgw-top {
    27     top: 1em;
    28 }
    29 
    30 .mgw-cnt.mgw-lft {
    31     left: 1em;
    32 }
    33 
    34 .mgw-cnt.mgw-hcn {
    35     left: 50%;
    36     transform:  translateX(-50%);
    37 }
    38 
    39 .mgw-cnt.mgw-vcn {
    40     top: 50%;
    41     transform:  translateY(-50%);
    42 }
    43 
    44 .mgw-hcn.mgw-vcn {
    45     transform:  translate(-50%,-50%);
    46 }
    47 
    48 .mgw-cnt.mgw-rgt {
    49     right: 1em;
    50 }
    51 
    52 .mgw-cnt.mgw-btm {
    53     bottom: 1em;
    54 }
    55 
    56 .mgw-cnt .btn-box {
    57     display: flex;
    58     flex-direction: row;
    59     background-color:  #888;
    60     gap:  1px;
    61 }
    62 
    63 .mgw-cnt .btn-box button {
    64     flex-grow: 1;
    65     flex-basis: 0;
    66     padding: 0.75em 0;
    67     border-radius: 0;
    68 }
    69 
    70 .mgw-cnt .btn-box button.accept {
    71     font-weight: bold;
    72 }
    73 
    74 .mgw-cnt .btn-box button.more-info {
    75     /* background-color: transparent; */
    76     /* border-color: transparent; */
    77     /* color: grey; */
    78     opacity: 0.60;
    79 }
    80 
    81 .mgw-cnt.mgw-fin {
    82     opacity: 0.0;
    83     transition: 0.4s;
    84 }
    85 
    86 .mgw-ovl {
    87     position: fixed;
    88     z-index: 1001;
    89     left: 0;
    90     top: 0;
    91     width: 100%;
    92     height: 100%;
    93     background-color: #00000088;
    94 }
    95 
    96 .mgw-nfo {
    97     position: fixed;
    98     z-index: 1002;
    99     left: 50%;
    100     top: 50%;
    101     max-width: 80%;
    102     max-height: 80%;
    103     border-radius: 0.775em;
    104     transform: translate(-50%, -50%);
    105     border: 3px solid black;
    106     background-color: white;
    107     display: flex;
    108     flex-direction: column;
    109     align-items: center;
    110     overflow:  hidden;
    111     box-shadow: 0 0 0.5em #00000044;
    112 }
    113 
    114 .mgw-nfo .plglst {
    115     overflow-y: auto;
    116     width: 100%;
    117 }
    118 
    119 .mgw-nfo p {
    120     margin: 0.5em;
    121     font-weight: bold;
    122 }
    123 
    124 .mgw-nfo ul {
    125     list-style-type: none;
    126     padding: 0;
    127     margin: 0;
    128 }
    129 
    130 .mgw-nfo li:first-of-type {
    131     border-top: 1px solid #666;
    132 }
    133 
    134 .mgw-nfo li {
    135     padding: 0.75em 0;
    136     background-color: #f8f8f8;
    137     border-bottom: 1px solid #666;
    138     text-align: center;
    139     width: 100%;
    140 }
    141 
    142 .mgw-nfo button {
    143     width: 100%;
    144 }
     1.mgw-cnt{position:fixed;z-index:1000}.mgw-cnt.mgw-box{width:16em;border:3px solid black;border-radius:.25em;box-shadow:0 0 2em #00000066}.mgw-cnt p,.mgw-nfo p{padding:1em;margin:0;background-color:white;color:black}.mgw-cnt.mgw-top{top:1em}.mgw-cnt.mgw-lft{left:1em}.mgw-cnt.mgw-hcn{left:50%;transform:translateX(-50%)}.mgw-cnt.mgw-vcn{top:50%;transform:translateY(-50%)}.mgw-hcn.mgw-vcn{transform:translate(-50%,-50%)}.mgw-cnt.mgw-rgt{right:1em}.mgw-cnt.mgw-btm{bottom:1em}.mgw-cnt .btn-box{display:flex;flex-direction:row;background-color:#888;gap:1px}.mgw-cnt .btn-box button{flex-grow:1;flex-basis:0;padding:.75em 0;border-radius:0}.mgw-cnt .btn-box button.accept{font-weight:bold}.mgw-cnt .btn-box button.more-info{opacity:.60}.mgw-cnt.mgw-fin{opacity:0;transition:.4s}.mgw-ovl{position:fixed;z-index:1001;left:0;top:0;width:100%;height:100%;background-color:#00000088}.mgw-nfo{position:fixed;z-index:1002;left:50%;top:50%;max-width:80%;max-height:80%;border-radius:.775em;transform:translate(-50%,-50%);border:3px solid black;background-color:white;display:flex;flex-direction:column;align-items:center;overflow:hidden;box-shadow:0 0 .5em #00000044}.mgw-nfo .plglst{overflow-y:auto;width:100%}.mgw-nfo p{margin:.5em;font-weight:bold}.mgw-nfo ul{list-style-type:none;padding:0;margin:0}.mgw-nfo li:first-of-type{border-top:1px solid #666}.mgw-nfo li{padding:.75em 0;background-color:#f8f8f8;border-bottom:1px solid #666;text-align:center;width:100%}.mgw-nfo button{width:100%}
  • mini-wp-gdpr/tags/1.0.11/assets/mini-gdpr-cookie-popup.js

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR Cookie Popup
    3  */
    4 document.addEventListener('DOMContentLoaded', function() {
    5     'use strict';
    6 
    7     if (typeof mgwcsData != 'undefined') {
    8         var hasConsented = false;
    9 
    10         // console.log(typeof window.localStorage);
    11         mgwcsData.blkon = (mgwcsData.blkon == '1');
    12         mgwcsData.always = (mgwcsData.always == '1');
    13        
    14         console.log( mgwcsData );
    15 
    16         if (typeof localStorage !== 'undefined') {
    17             var consentDate = Date.parse(localStorage.getItem(mgwcsData.cn));
    18             if (consentDate) {
    19                 var now = new Date();
    20                 var consentAge = Math.round((now - consentDate) / 1000.0);
    21                 var maxAge = parseInt(mgwcsData.cd) * 86400; // 1 day === 86400 secs
    22 
    23                 // console.log( `Consent age: ${consentAge}`);
    24 
    25                 hasConsented = (consentAge < maxAge);
    26             }
    27         } else {
    28             // console.log( 'ccc' );
    29             document.cookie.split(';').forEach(function(keyValuePair) {
    30                 if (keyValuePair.split('=')[0].trim().startsWith(mgwcsData.cn)) {
    31                     // console.log(`Found: ${keyValuePair}`);
    32                     hasConsented = true;
    33                 }
    34             });
    35         }
    36 
    37         if (hasConsented) {
    38             // console.log('User has consented');
    39             insertBlockedScripts();
    40         } else {
    41             // console.log('User has NOT consented');
    42             mgwShowPopup();
    43         }
    44     }
    45 });
    46 
    47 
    48 function mgwShowPopup() {
    49     var popupContainer = document.createElement('div');
    50     popupContainer.innerHTML = `<p>${mgwcsData.msg}</p><div class="btn-box"><button class="accept" onclick="mgwConsentToScripts()">${mgwcsData.ok}</button><button class="more-info" onclick="mgwShowBlockedScripts()">${mgwcsData.mre}</button></div>`;
    51     popupContainer.id = 'mgwcsCntr';
    52 
    53     if (Array.isArray(mgwcsData.cls)) {
    54         popupContainer.className = mgwcsData.cls.join(' ');
    55     }
    56 
    57     document.body.appendChild(popupContainer);
    58 }
    59 
    60 
    61 function mgwConsentToScripts() {
    62     var container = document.getElementById('mgwcsCntr');
    63     if (container) {
    64         if (typeof localStorage !== 'undefined') {
    65             localStorage.setItem(mgwcsData.cn, new Date());
    66         } else {
    67             var expiresWhen = new Date();
    68             // console.log( `Duration: ${mgwcsData.cd}` );
    69             expiresWhen.setDate(expiresWhen.getDate() + parseInt(mgwcsData.cd));
    70             // console.log( `Expire: ${result.toUTCString()}` );
    71 
    72             document.cookie = `${mgwcsData.cn}=true; expires=${expiresWhen.toUTCString()}; Secure`;
    73         }
    74 
    75         insertBlockedScripts();
    76 
    77         container.className += ' mgw-fin';
    78 
    79         setTimeout(
    80             function() {
    81                 document.getElementById('mgwcsCntr').remove();
    82             },
    83             500
    84         );
    85     }
    86 }
    87 
    88 function insertBlockedScripts() {
    89     // console.log( `mgwcsData.blkon: ${mgwcsData.blkon}` );
    90     if (mgwcsData.blkon) {
    91         console.log('Unblocking scripts');
    92         for (const scriptHandle in mgwcsData.meta) {
    93             // console.log(mgwcsData.meta[scriptHandle].src);
    94 
    95             var scriptElement = document.createElement('script');
    96             scriptElement.setAttribute('src', mgwcsData.meta[scriptHandle].src);
    97             document.head.appendChild(scriptElement);
    98 
    99             if (mgwcsData.meta[scriptHandle].extra) {
    100                 scriptElement = document.createElement('extra');
    101                 scriptElement.appendChild(
    102                     document.createTextNode(mgwcsData.meta[scriptHandle].after)
    103                 );
    104                 document.head.appendChild(scriptElement);
    105             }
    106 
    107             if (mgwcsData.meta[scriptHandle].after) {
    108                 scriptElement = document.createElement('script');
    109                 scriptElement.appendChild(
    110                     document.createTextNode(mgwcsData.meta[scriptHandle].after)
    111                 );
    112                 document.head.appendChild(scriptElement);
    113             }
    114         }
    115     }
    116 }
    117 
    118 function mgwShowBlockedScripts() {
    119     var overlayContainer = document.createElement('div');
    120     overlayContainer.id = 'mgwcsOvly';
    121     overlayContainer.className = 'mgw-ovl';
    122     overlayContainer.addEventListener('click', mgwCloseBlockedScripts);
    123 
    124     var overlayPanel = document.createElement('div');
    125     overlayPanel.className = 'mgw-nfo';
    126     overlayContainer.appendChild(overlayPanel);
    127 
    128     // console.log( mgwcsData.meta );
    129     // console.log(Object.keys(mgwcsData.meta).length);
    130 
    131     // if( mgwcsData.meta.length ) {
    132     if (Object.keys(mgwcsData.meta).length) {
    133         var blurb = document.createElement('p');
    134         blurb.innerHTML = mgwcsData.nfo1;
    135         overlayPanel.appendChild(blurb);
    136 
    137         var scriptList = document.createElement('ul');
    138 
    139         // for( var foo = 0; foo < 20; ++foo ) {
    140         for (const scriptHandle in mgwcsData.meta) {
    141             var listItem = document.createElement('li');
    142             listItem.innerHTML = mgwcsData.meta[scriptHandle].description;
    143             scriptList.appendChild(listItem);
    144         }
    145         // }
    146 
    147         var wrapper = document.createElement('div');
    148         wrapper.className = 'plglst';
    149         wrapper.appendChild(scriptList);
    150         overlayPanel.appendChild(wrapper);
    151     } else {
    152         var blurb = document.createElement('p');
    153         blurb.innerHTML = mgwcsData.nfo2;
    154         overlayPanel.appendChild(blurb);
    155     }
    156 
    157     var closeButton = document.createElement('button');
    158     closeButton.innerText = 'Close';
    159     closeButton.addEventListener('DOMContentLoaded', mgwCloseBlockedScripts);
    160 
    161     overlayPanel.appendChild(closeButton);
    162 
    163     document.body.appendChild(overlayContainer);
    164 }
    165 
    166 function mgwCloseBlockedScripts() {
    167     var overlayContainer = document.getElementById('mgwcsOvly');
    168     if (overlayContainer) {
    169         overlayContainer.remove();
    170     }
    171 }
     1function mgwShowPopup(){var e=document.createElement("div");e.innerHTML=`<p>${mgwcsData.msg}</p><div class="btn-box"><button class="accept" onclick="mgwConsentToScripts()">${mgwcsData.ok}</button><button class="more-info" onclick="mgwShowBlockedScripts()">${mgwcsData.mre}</button></div>`,e.id="mgwcsCntr",Array.isArray(mgwcsData.cls)&&(e.className=mgwcsData.cls.join(" ")),document.body.appendChild(e)}function mgwConsentToScripts(){var e=document.getElementById("mgwcsCntr");if(e){if("undefined"!=typeof localStorage)localStorage.setItem(mgwcsData.cn,new Date);else{var t=new Date;t.setDate(t.getDate()+parseInt(mgwcsData.cd)),document.cookie=`${mgwcsData.cn}=true; expires=${t.toUTCString()}; Secure`}insertBlockedScripts(),e.className+=" mgw-fin",setTimeout((function(){document.getElementById("mgwcsCntr").remove()}),500)}}function insertBlockedScripts(){if(mgwcsData.blkon)for(const t in mgwcsData.meta){var e=document.createElement("script");e.setAttribute("src",mgwcsData.meta[t].src),document.head.appendChild(e),mgwcsData.meta[t].extra&&((e=document.createElement("extra")).appendChild(document.createTextNode(mgwcsData.meta[t].after)),document.head.appendChild(e)),mgwcsData.meta[t].after&&((e=document.createElement("script")).appendChild(document.createTextNode(mgwcsData.meta[t].after)),document.head.appendChild(e))}}function mgwShowBlockedScripts(){var e=document.createElement("div");e.id="mgwcsOvly",e.className="mgw-ovl",e.addEventListener("click",mgwCloseBlockedScripts);var t=document.createElement("div");if(t.className="mgw-nfo",e.appendChild(t),Object.keys(mgwcsData.meta).length){(m=document.createElement("p")).innerHTML=mgwcsData.nfo1,t.appendChild(m);var a=document.createElement("ul");for(const e in mgwcsData.meta){var n=document.createElement("li");n.innerHTML=mgwcsData.meta[e].description,a.appendChild(n)}var c=document.createElement("div");c.className="plglst",c.appendChild(a),t.appendChild(c)}else{var m;(m=document.createElement("p")).innerHTML=mgwcsData.nfo2,t.appendChild(m)}var o=document.createElement("button");o.innerText="Close",o.addEventListener("DOMContentLoaded",mgwCloseBlockedScripts),t.appendChild(o),document.body.appendChild(e)}function mgwCloseBlockedScripts(){var e=document.getElementById("mgwcsOvly");e&&e.remove()}document.addEventListener("DOMContentLoaded",(function(){"use strict";if("undefined"!=typeof mgwcsData){var e=!1;if(mgwcsData.blkon="1"==mgwcsData.blkon,mgwcsData.always="1"==mgwcsData.always,"undefined"!=typeof localStorage){var t=Date.parse(localStorage.getItem(mgwcsData.cn));if(t){var a=new Date,n=Math.round((a-t)/1e3),c=86400*parseInt(mgwcsData.cd);e=n<c}}else document.cookie.split(";").forEach((function(t){t.split("=")[0].trim().startsWith(mgwcsData.cn)&&(e=!0)}));e?insertBlockedScripts():mgwShowPopup()}}));
  • mini-wp-gdpr/tags/1.0.11/assets/mini-gdpr.css

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR
    3  */
    4 .mini-gdpr-form label {
    5     display:  inline-flex;
    6     flex-direction: row;
    7     gap:  0.5em;
    8     align-items: flex-start;
    9 }
    10 
    11 .mini-gdpr-form input[type="checkbox"] {
    12     margin-top:  0.5em;
    13 }
     1.mini-gdpr-form label{display:inline-flex;flex-direction:row;gap:.5em;align-items:flex-start}.mini-gdpr-form input[type="checkbox"]{margin-top:.5em}
  • mini-wp-gdpr/tags/1.0.11/assets/mini-gdpr.js

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR
    3  */
    4 (function($) {
    5     'use strict';
    6     $(window).on('load', function() {
    7         console.log('Mini GDPR : load');
    8 
    9         if (typeof miniWpGdpr != 'undefined') {
    10             $('form .mini-gdpr-checkbox').closest('form').submit(function(event) {
    11                 if (!$(event.target).find('.mini-gdpr-checkbox').prop('checked')) {
    12                     event.preventDefault();
    13 
    14                     alert(miniWpGdpr.termsNotAccepted);
    15                 }
    16             });
    17 
    18             if (miniWpGdpr.acceptAction) {
    19                 $('.mini-gdpr-form .mini-gdpr-checkbox').change(function(event) {
    20                     if ($(this).prop('checked')) {
    21                         var container = $(this).closest('.mini-gdpr-form');
    22                         $(this).delay(250).prop('disabled', true);
    23                         // $(this).css('cursor', 'wait');
    24 
    25                         var request = {
    26                             action: miniWpGdpr.acceptAction,
    27                             nonce: miniWpGdpr.acceptNonce,
    28                             terms: ($(this).prop("checked") ? '1' : '0'),
    29                         };
    30 
    31                         $.post(miniWpGdpr.ajaxUrl, request)
    32                             .done(function(response) {
    33                                 // OK
    34                                 if (response.success === '1') {
    35                                     if (!response.message) {
    36                                         response.message = 'OK';
    37                                     }
    38                                     $(container).fadeOut(400);
    39                                     $(`<p>${response.message}</p>`).insertAfter(container).hide().delay(400).fadeIn();
    40                                 }
    41                             })
    42                             .fail(function(response) {
    43                                 console.log(response);
    44                             })
    45                             .always(function(response) {
    46                                 // alert("always");
    47                             });
    48                     }
    49 
    50                 });
    51             }
    52         }
    53     });
    54 })(jQuery);
     1!function(e){"use strict";e(window).on("load",(function(){"undefined"!=typeof miniWpGdpr&&(e("form .mini-gdpr-checkbox").closest("form").submit((function(i){e(i.target).find(".mini-gdpr-checkbox").prop("checked")||(i.preventDefault(),alert(miniWpGdpr.termsNotAccepted))})),miniWpGdpr.acceptAction&&e(".mini-gdpr-form .mini-gdpr-checkbox").change((function(i){if(e(this).prop("checked")){var n=e(this).closest(".mini-gdpr-form");e(this).delay(250).prop("disabled",!0);var c={action:miniWpGdpr.acceptAction,nonce:miniWpGdpr.acceptNonce,terms:e(this).prop("checked")?"1":"0"};e.post(miniWpGdpr.ajaxUrl,c).done((function(i){"1"===i.success&&(i.message||(i.message="OK"),e(n).fadeOut(400),e(`<p>${i.message}</p>`).insertAfter(n).hide().delay(400).fadeIn())})).fail((function(e){})).always((function(e){}))}})))}))}(jQuery);
  • mini-wp-gdpr/tags/1.0.11/readme.txt

    r2683260 r2683288  
    1515Features include a cookie and tracking-script consent popup, and useful WooCommerce integration. It logs when users first accept your privacy policy and can also inject your Google Analytics tracking code for you.
    1616
    17 Installing this plugin is no guarantee that your site will magically become fully GDPR compliant, but it should make it nuch easier for you to get there.
     17Installing this plugin is no guarantee that your site will magically become fully GDPR compliant, but it should make it much easier for you to get there.
    1818
    1919== Installation ==
  • mini-wp-gdpr/trunk/assets/mini-gdpr-admin.css

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR Admin
    3  */
    4 .my-account-tab-chooser {
    5     margin-left:  1em;
    6 }
     1.my-account-tab-chooser{margin-left:1em}
  • mini-wp-gdpr/trunk/assets/mini-gdpr-cookie-popup.css

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR Cookie Popup
    3  */
    4 .mgw-cnt {
    5     position: fixed;
    6     z-index: 1000;
    7 }
    8 
    9 .mgw-cnt.mgw-box {
    10     width: 16em;
    11     border: 3px solid black;
    12     /* border: 1px solid black; */
    13     border-radius: 0.25em;
    14     /* box-shadow: 0 0 0.5em #00000044; */
    15     box-shadow: 0 0 2em #00000066;
    16 }
    17 
    18 .mgw-cnt p,
    19 .mgw-nfo p {
    20     padding: 1em;
    21     margin: 0;
    22     background-color:  white;
    23     color:  black;
    24 }
    25 
    26 .mgw-cnt.mgw-top {
    27     top: 1em;
    28 }
    29 
    30 .mgw-cnt.mgw-lft {
    31     left: 1em;
    32 }
    33 
    34 .mgw-cnt.mgw-hcn {
    35     left: 50%;
    36     transform:  translateX(-50%);
    37 }
    38 
    39 .mgw-cnt.mgw-vcn {
    40     top: 50%;
    41     transform:  translateY(-50%);
    42 }
    43 
    44 .mgw-hcn.mgw-vcn {
    45     transform:  translate(-50%,-50%);
    46 }
    47 
    48 .mgw-cnt.mgw-rgt {
    49     right: 1em;
    50 }
    51 
    52 .mgw-cnt.mgw-btm {
    53     bottom: 1em;
    54 }
    55 
    56 .mgw-cnt .btn-box {
    57     display: flex;
    58     flex-direction: row;
    59     background-color:  #888;
    60     gap:  1px;
    61 }
    62 
    63 .mgw-cnt .btn-box button {
    64     flex-grow: 1;
    65     flex-basis: 0;
    66     padding: 0.75em 0;
    67     border-radius: 0;
    68 }
    69 
    70 .mgw-cnt .btn-box button.accept {
    71     font-weight: bold;
    72 }
    73 
    74 .mgw-cnt .btn-box button.more-info {
    75     /* background-color: transparent; */
    76     /* border-color: transparent; */
    77     /* color: grey; */
    78     opacity: 0.60;
    79 }
    80 
    81 .mgw-cnt.mgw-fin {
    82     opacity: 0.0;
    83     transition: 0.4s;
    84 }
    85 
    86 .mgw-ovl {
    87     position: fixed;
    88     z-index: 1001;
    89     left: 0;
    90     top: 0;
    91     width: 100%;
    92     height: 100%;
    93     background-color: #00000088;
    94 }
    95 
    96 .mgw-nfo {
    97     position: fixed;
    98     z-index: 1002;
    99     left: 50%;
    100     top: 50%;
    101     max-width: 80%;
    102     max-height: 80%;
    103     border-radius: 0.775em;
    104     transform: translate(-50%, -50%);
    105     border: 3px solid black;
    106     background-color: white;
    107     display: flex;
    108     flex-direction: column;
    109     align-items: center;
    110     overflow:  hidden;
    111     box-shadow: 0 0 0.5em #00000044;
    112 }
    113 
    114 .mgw-nfo .plglst {
    115     overflow-y: auto;
    116     width: 100%;
    117 }
    118 
    119 .mgw-nfo p {
    120     margin: 0.5em;
    121     font-weight: bold;
    122 }
    123 
    124 .mgw-nfo ul {
    125     list-style-type: none;
    126     padding: 0;
    127     margin: 0;
    128 }
    129 
    130 .mgw-nfo li:first-of-type {
    131     border-top: 1px solid #666;
    132 }
    133 
    134 .mgw-nfo li {
    135     padding: 0.75em 0;
    136     background-color: #f8f8f8;
    137     border-bottom: 1px solid #666;
    138     text-align: center;
    139     width: 100%;
    140 }
    141 
    142 .mgw-nfo button {
    143     width: 100%;
    144 }
     1.mgw-cnt{position:fixed;z-index:1000}.mgw-cnt.mgw-box{width:16em;border:3px solid black;border-radius:.25em;box-shadow:0 0 2em #00000066}.mgw-cnt p,.mgw-nfo p{padding:1em;margin:0;background-color:white;color:black}.mgw-cnt.mgw-top{top:1em}.mgw-cnt.mgw-lft{left:1em}.mgw-cnt.mgw-hcn{left:50%;transform:translateX(-50%)}.mgw-cnt.mgw-vcn{top:50%;transform:translateY(-50%)}.mgw-hcn.mgw-vcn{transform:translate(-50%,-50%)}.mgw-cnt.mgw-rgt{right:1em}.mgw-cnt.mgw-btm{bottom:1em}.mgw-cnt .btn-box{display:flex;flex-direction:row;background-color:#888;gap:1px}.mgw-cnt .btn-box button{flex-grow:1;flex-basis:0;padding:.75em 0;border-radius:0}.mgw-cnt .btn-box button.accept{font-weight:bold}.mgw-cnt .btn-box button.more-info{opacity:.60}.mgw-cnt.mgw-fin{opacity:0;transition:.4s}.mgw-ovl{position:fixed;z-index:1001;left:0;top:0;width:100%;height:100%;background-color:#00000088}.mgw-nfo{position:fixed;z-index:1002;left:50%;top:50%;max-width:80%;max-height:80%;border-radius:.775em;transform:translate(-50%,-50%);border:3px solid black;background-color:white;display:flex;flex-direction:column;align-items:center;overflow:hidden;box-shadow:0 0 .5em #00000044}.mgw-nfo .plglst{overflow-y:auto;width:100%}.mgw-nfo p{margin:.5em;font-weight:bold}.mgw-nfo ul{list-style-type:none;padding:0;margin:0}.mgw-nfo li:first-of-type{border-top:1px solid #666}.mgw-nfo li{padding:.75em 0;background-color:#f8f8f8;border-bottom:1px solid #666;text-align:center;width:100%}.mgw-nfo button{width:100%}
  • mini-wp-gdpr/trunk/assets/mini-gdpr-cookie-popup.js

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR Cookie Popup
    3  */
    4 document.addEventListener('DOMContentLoaded', function() {
    5     'use strict';
    6 
    7     if (typeof mgwcsData != 'undefined') {
    8         var hasConsented = false;
    9 
    10         // console.log(typeof window.localStorage);
    11         mgwcsData.blkon = (mgwcsData.blkon == '1');
    12         mgwcsData.always = (mgwcsData.always == '1');
    13        
    14         console.log( mgwcsData );
    15 
    16         if (typeof localStorage !== 'undefined') {
    17             var consentDate = Date.parse(localStorage.getItem(mgwcsData.cn));
    18             if (consentDate) {
    19                 var now = new Date();
    20                 var consentAge = Math.round((now - consentDate) / 1000.0);
    21                 var maxAge = parseInt(mgwcsData.cd) * 86400; // 1 day === 86400 secs
    22 
    23                 // console.log( `Consent age: ${consentAge}`);
    24 
    25                 hasConsented = (consentAge < maxAge);
    26             }
    27         } else {
    28             // console.log( 'ccc' );
    29             document.cookie.split(';').forEach(function(keyValuePair) {
    30                 if (keyValuePair.split('=')[0].trim().startsWith(mgwcsData.cn)) {
    31                     // console.log(`Found: ${keyValuePair}`);
    32                     hasConsented = true;
    33                 }
    34             });
    35         }
    36 
    37         if (hasConsented) {
    38             // console.log('User has consented');
    39             insertBlockedScripts();
    40         } else {
    41             // console.log('User has NOT consented');
    42             mgwShowPopup();
    43         }
    44     }
    45 });
    46 
    47 
    48 function mgwShowPopup() {
    49     var popupContainer = document.createElement('div');
    50     popupContainer.innerHTML = `<p>${mgwcsData.msg}</p><div class="btn-box"><button class="accept" onclick="mgwConsentToScripts()">${mgwcsData.ok}</button><button class="more-info" onclick="mgwShowBlockedScripts()">${mgwcsData.mre}</button></div>`;
    51     popupContainer.id = 'mgwcsCntr';
    52 
    53     if (Array.isArray(mgwcsData.cls)) {
    54         popupContainer.className = mgwcsData.cls.join(' ');
    55     }
    56 
    57     document.body.appendChild(popupContainer);
    58 }
    59 
    60 
    61 function mgwConsentToScripts() {
    62     var container = document.getElementById('mgwcsCntr');
    63     if (container) {
    64         if (typeof localStorage !== 'undefined') {
    65             localStorage.setItem(mgwcsData.cn, new Date());
    66         } else {
    67             var expiresWhen = new Date();
    68             // console.log( `Duration: ${mgwcsData.cd}` );
    69             expiresWhen.setDate(expiresWhen.getDate() + parseInt(mgwcsData.cd));
    70             // console.log( `Expire: ${result.toUTCString()}` );
    71 
    72             document.cookie = `${mgwcsData.cn}=true; expires=${expiresWhen.toUTCString()}; Secure`;
    73         }
    74 
    75         insertBlockedScripts();
    76 
    77         container.className += ' mgw-fin';
    78 
    79         setTimeout(
    80             function() {
    81                 document.getElementById('mgwcsCntr').remove();
    82             },
    83             500
    84         );
    85     }
    86 }
    87 
    88 function insertBlockedScripts() {
    89     // console.log( `mgwcsData.blkon: ${mgwcsData.blkon}` );
    90     if (mgwcsData.blkon) {
    91         console.log('Unblocking scripts');
    92         for (const scriptHandle in mgwcsData.meta) {
    93             // console.log(mgwcsData.meta[scriptHandle].src);
    94 
    95             var scriptElement = document.createElement('script');
    96             scriptElement.setAttribute('src', mgwcsData.meta[scriptHandle].src);
    97             document.head.appendChild(scriptElement);
    98 
    99             if (mgwcsData.meta[scriptHandle].extra) {
    100                 scriptElement = document.createElement('extra');
    101                 scriptElement.appendChild(
    102                     document.createTextNode(mgwcsData.meta[scriptHandle].after)
    103                 );
    104                 document.head.appendChild(scriptElement);
    105             }
    106 
    107             if (mgwcsData.meta[scriptHandle].after) {
    108                 scriptElement = document.createElement('script');
    109                 scriptElement.appendChild(
    110                     document.createTextNode(mgwcsData.meta[scriptHandle].after)
    111                 );
    112                 document.head.appendChild(scriptElement);
    113             }
    114         }
    115     }
    116 }
    117 
    118 function mgwShowBlockedScripts() {
    119     var overlayContainer = document.createElement('div');
    120     overlayContainer.id = 'mgwcsOvly';
    121     overlayContainer.className = 'mgw-ovl';
    122     overlayContainer.addEventListener('click', mgwCloseBlockedScripts);
    123 
    124     var overlayPanel = document.createElement('div');
    125     overlayPanel.className = 'mgw-nfo';
    126     overlayContainer.appendChild(overlayPanel);
    127 
    128     // console.log( mgwcsData.meta );
    129     // console.log(Object.keys(mgwcsData.meta).length);
    130 
    131     // if( mgwcsData.meta.length ) {
    132     if (Object.keys(mgwcsData.meta).length) {
    133         var blurb = document.createElement('p');
    134         blurb.innerHTML = mgwcsData.nfo1;
    135         overlayPanel.appendChild(blurb);
    136 
    137         var scriptList = document.createElement('ul');
    138 
    139         // for( var foo = 0; foo < 20; ++foo ) {
    140         for (const scriptHandle in mgwcsData.meta) {
    141             var listItem = document.createElement('li');
    142             listItem.innerHTML = mgwcsData.meta[scriptHandle].description;
    143             scriptList.appendChild(listItem);
    144         }
    145         // }
    146 
    147         var wrapper = document.createElement('div');
    148         wrapper.className = 'plglst';
    149         wrapper.appendChild(scriptList);
    150         overlayPanel.appendChild(wrapper);
    151     } else {
    152         var blurb = document.createElement('p');
    153         blurb.innerHTML = mgwcsData.nfo2;
    154         overlayPanel.appendChild(blurb);
    155     }
    156 
    157     var closeButton = document.createElement('button');
    158     closeButton.innerText = 'Close';
    159     closeButton.addEventListener('DOMContentLoaded', mgwCloseBlockedScripts);
    160 
    161     overlayPanel.appendChild(closeButton);
    162 
    163     document.body.appendChild(overlayContainer);
    164 }
    165 
    166 function mgwCloseBlockedScripts() {
    167     var overlayContainer = document.getElementById('mgwcsOvly');
    168     if (overlayContainer) {
    169         overlayContainer.remove();
    170     }
    171 }
     1function mgwShowPopup(){var e=document.createElement("div");e.innerHTML=`<p>${mgwcsData.msg}</p><div class="btn-box"><button class="accept" onclick="mgwConsentToScripts()">${mgwcsData.ok}</button><button class="more-info" onclick="mgwShowBlockedScripts()">${mgwcsData.mre}</button></div>`,e.id="mgwcsCntr",Array.isArray(mgwcsData.cls)&&(e.className=mgwcsData.cls.join(" ")),document.body.appendChild(e)}function mgwConsentToScripts(){var e=document.getElementById("mgwcsCntr");if(e){if("undefined"!=typeof localStorage)localStorage.setItem(mgwcsData.cn,new Date);else{var t=new Date;t.setDate(t.getDate()+parseInt(mgwcsData.cd)),document.cookie=`${mgwcsData.cn}=true; expires=${t.toUTCString()}; Secure`}insertBlockedScripts(),e.className+=" mgw-fin",setTimeout((function(){document.getElementById("mgwcsCntr").remove()}),500)}}function insertBlockedScripts(){if(mgwcsData.blkon)for(const t in mgwcsData.meta){var e=document.createElement("script");e.setAttribute("src",mgwcsData.meta[t].src),document.head.appendChild(e),mgwcsData.meta[t].extra&&((e=document.createElement("extra")).appendChild(document.createTextNode(mgwcsData.meta[t].after)),document.head.appendChild(e)),mgwcsData.meta[t].after&&((e=document.createElement("script")).appendChild(document.createTextNode(mgwcsData.meta[t].after)),document.head.appendChild(e))}}function mgwShowBlockedScripts(){var e=document.createElement("div");e.id="mgwcsOvly",e.className="mgw-ovl",e.addEventListener("click",mgwCloseBlockedScripts);var t=document.createElement("div");if(t.className="mgw-nfo",e.appendChild(t),Object.keys(mgwcsData.meta).length){(m=document.createElement("p")).innerHTML=mgwcsData.nfo1,t.appendChild(m);var a=document.createElement("ul");for(const e in mgwcsData.meta){var n=document.createElement("li");n.innerHTML=mgwcsData.meta[e].description,a.appendChild(n)}var c=document.createElement("div");c.className="plglst",c.appendChild(a),t.appendChild(c)}else{var m;(m=document.createElement("p")).innerHTML=mgwcsData.nfo2,t.appendChild(m)}var o=document.createElement("button");o.innerText="Close",o.addEventListener("DOMContentLoaded",mgwCloseBlockedScripts),t.appendChild(o),document.body.appendChild(e)}function mgwCloseBlockedScripts(){var e=document.getElementById("mgwcsOvly");e&&e.remove()}document.addEventListener("DOMContentLoaded",(function(){"use strict";if("undefined"!=typeof mgwcsData){var e=!1;if(mgwcsData.blkon="1"==mgwcsData.blkon,mgwcsData.always="1"==mgwcsData.always,"undefined"!=typeof localStorage){var t=Date.parse(localStorage.getItem(mgwcsData.cn));if(t){var a=new Date,n=Math.round((a-t)/1e3),c=86400*parseInt(mgwcsData.cd);e=n<c}}else document.cookie.split(";").forEach((function(t){t.split("=")[0].trim().startsWith(mgwcsData.cn)&&(e=!0)}));e?insertBlockedScripts():mgwShowPopup()}}));
  • mini-wp-gdpr/trunk/assets/mini-gdpr.css

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR
    3  */
    4 .mini-gdpr-form label {
    5     display:  inline-flex;
    6     flex-direction: row;
    7     gap:  0.5em;
    8     align-items: flex-start;
    9 }
    10 
    11 .mini-gdpr-form input[type="checkbox"] {
    12     margin-top:  0.5em;
    13 }
     1.mini-gdpr-form label{display:inline-flex;flex-direction:row;gap:.5em;align-items:flex-start}.mini-gdpr-form input[type="checkbox"]{margin-top:.5em}
  • mini-wp-gdpr/trunk/assets/mini-gdpr.js

    r2683207 r2683288  
    1 /**
    2  * Mini GDPR
    3  */
    4 (function($) {
    5     'use strict';
    6     $(window).on('load', function() {
    7         console.log('Mini GDPR : load');
    8 
    9         if (typeof miniWpGdpr != 'undefined') {
    10             $('form .mini-gdpr-checkbox').closest('form').submit(function(event) {
    11                 if (!$(event.target).find('.mini-gdpr-checkbox').prop('checked')) {
    12                     event.preventDefault();
    13 
    14                     alert(miniWpGdpr.termsNotAccepted);
    15                 }
    16             });
    17 
    18             if (miniWpGdpr.acceptAction) {
    19                 $('.mini-gdpr-form .mini-gdpr-checkbox').change(function(event) {
    20                     if ($(this).prop('checked')) {
    21                         var container = $(this).closest('.mini-gdpr-form');
    22                         $(this).delay(250).prop('disabled', true);
    23                         // $(this).css('cursor', 'wait');
    24 
    25                         var request = {
    26                             action: miniWpGdpr.acceptAction,
    27                             nonce: miniWpGdpr.acceptNonce,
    28                             terms: ($(this).prop("checked") ? '1' : '0'),
    29                         };
    30 
    31                         $.post(miniWpGdpr.ajaxUrl, request)
    32                             .done(function(response) {
    33                                 // OK
    34                                 if (response.success === '1') {
    35                                     if (!response.message) {
    36                                         response.message = 'OK';
    37                                     }
    38                                     $(container).fadeOut(400);
    39                                     $(`<p>${response.message}</p>`).insertAfter(container).hide().delay(400).fadeIn();
    40                                 }
    41                             })
    42                             .fail(function(response) {
    43                                 console.log(response);
    44                             })
    45                             .always(function(response) {
    46                                 // alert("always");
    47                             });
    48                     }
    49 
    50                 });
    51             }
    52         }
    53     });
    54 })(jQuery);
     1!function(e){"use strict";e(window).on("load",(function(){"undefined"!=typeof miniWpGdpr&&(e("form .mini-gdpr-checkbox").closest("form").submit((function(i){e(i.target).find(".mini-gdpr-checkbox").prop("checked")||(i.preventDefault(),alert(miniWpGdpr.termsNotAccepted))})),miniWpGdpr.acceptAction&&e(".mini-gdpr-form .mini-gdpr-checkbox").change((function(i){if(e(this).prop("checked")){var n=e(this).closest(".mini-gdpr-form");e(this).delay(250).prop("disabled",!0);var c={action:miniWpGdpr.acceptAction,nonce:miniWpGdpr.acceptNonce,terms:e(this).prop("checked")?"1":"0"};e.post(miniWpGdpr.ajaxUrl,c).done((function(i){"1"===i.success&&(i.message||(i.message="OK"),e(n).fadeOut(400),e(`<p>${i.message}</p>`).insertAfter(n).hide().delay(400).fadeIn())})).fail((function(e){})).always((function(e){}))}})))}))}(jQuery);
  • mini-wp-gdpr/trunk/readme.txt

    r2683260 r2683288  
    1515Features include a cookie and tracking-script consent popup, and useful WooCommerce integration. It logs when users first accept your privacy policy and can also inject your Google Analytics tracking code for you.
    1616
    17 Installing this plugin is no guarantee that your site will magically become fully GDPR compliant, but it should make it nuch easier for you to get there.
     17Installing this plugin is no guarantee that your site will magically become fully GDPR compliant, but it should make it much easier for you to get there.
    1818
    1919== Installation ==
Note: See TracChangeset for help on using the changeset viewer.