Plugin Directory

Changeset 2934107


Ignore:
Timestamp:
07/04/2023 08:07:12 PM (3 years ago)
Author:
tcordero
Message:

Update to version 1.6.5 from GitHub

Location:
safety-exit
Files:
10 added
2 deleted
14 edited
1 copied

Legend:

Unmodified
Added
Removed
  • safety-exit/tags/1.6.5/assets/css/admin.css

    r2837777 r2934107  
    1 #sftExt_color_picker_btn_bg_color,
    2 #sftExt_color_picker_btn_font_color {
    3   padding: 10px 20px;
    4   border: 1px solid #ddd;
    5   box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
    6   transition: background .5s linear;
    7   display: inline-block;
    8   color: #333;
    9   text-align: center;
    10   cursor: pointer; }
     1#sftExt_color_picker_btn_bg_color,#sftExt_color_picker_btn_font_color{padding:10px 20px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);display:inline-block;color:#333;text-align:center;cursor:pointer}.sftExt_alert{color:#000000;background:#FFCCCC}.sftExt_alert th{padding-left:10px}
  • safety-exit/tags/1.6.5/assets/css/frontend.css

    r2837777 r2934107  
    1 #sftExt-frontend-button {
    2   position: fixed;
    3   display: inline-block;
    4   cursor: pointer;
    5   z-index: 999999999999999999;
    6   left: 20px;
    7   top: 20px;
    8   padding: 10px 20px;
    9   font-family: inherit;
    10   width: 25px;
    11   height: 25px; }
    12   #sftExt-frontend-button.round {
    13     border-radius: 50%;
    14     padding: 10px;
    15     text-align: center;
    16     width: 45px;
    17     height: 45px; }
    18     #sftExt-frontend-button.round > i {
    19       position: relative;
    20       display: block;
    21       font-size: 25px;
    22       top: 50%;
    23       transform: translateY(-50%); }
    24   #sftExt-frontend-button.square {
    25     border-radius: 0;
    26     padding: 10px;
    27     text-align: center;
    28     width: 45px;
    29     height: 45px; }
    30     #sftExt-frontend-button.square > i {
    31       position: relative;
    32       display: block;
    33       font-size: 25px;
    34       top: 50%;
    35       transform: translateY(-50%); }
    36   #sftExt-frontend-button.rectangle {
    37     padding: 10px 20px;
    38     height: auto;
    39     width: auto;
    40     display: inline-flex;
    41     flex-direction: column; }
    42     #sftExt-frontend-button.rectangle:before, #sftExt-frontend-button.rectangle:after {
    43       content: '';
    44       flex: 1; }
    45     #sftExt-frontend-button.rectangle .sftExt-inner {
    46       position: relative;
    47       text-align: center; }
    48       #sftExt-frontend-button.rectangle .sftExt-inner > i {
    49         margin-right: 10px; }
    50       #sftExt-frontend-button.rectangle .sftExt-inner:before {
    51         position: absolute;
    52         left: 0;
    53         top: 0;
    54         height: 20px;
    55         width: 20px; }
    56   #sftExt-frontend-button.bottom {
    57     top: auto;
    58     bottom: 20px; }
    59   #sftExt-frontend-button.top {
    60     top: 20px; }
    61   #sftExt-frontend-button.right {
    62     left: auto;
    63     right: 20px; }
    64   #sftExt-frontend-button.left {
    65     left: 20px; }
     1#sftExt-frontend-button{position:fixed;border:none;display:inline-block;cursor:pointer;z-index:9999;left:20px;top:20px;padding:10px 20px;font-family:inherit;width:25px;height:25px}@media screen,speech{#sftExt-frontend-button .sr-only{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}}#sftExt-frontend-button.round{border-radius:50%;padding:10px;text-align:center;width:45px;height:45px}#sftExt-frontend-button.round>i{position:relative;display:block;font-size:25px;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}#sftExt-frontend-button.square{border-radius:0;padding:10px;text-align:center;width:45px;height:45px}#sftExt-frontend-button.square>i{position:relative;display:block;font-size:25px;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}#sftExt-frontend-button.rectangle{padding:10px 20px;height:auto;width:auto;display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}#sftExt-frontend-button.rectangle:before,#sftExt-frontend-button.rectangle:after{content:'';-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;flex:1}#sftExt-frontend-button.rectangle .sftExt-inner{position:relative;text-align:center}#sftExt-frontend-button.rectangle .sftExt-inner>i{margin-right:10px}#sftExt-frontend-button.rectangle .sftExt-inner:before{position:absolute;left:0;top:0;height:20px;width:20px}#sftExt-frontend-button.bottom{top:auto;bottom:20px}#sftExt-frontend-button.top{top:20px}#sftExt-frontend-button.right{left:auto;right:20px}#sftExt-frontend-button.left{left:20px}
  • safety-exit/tags/1.6.5/assets/js/admin.js

    r2837777 r2934107  
     1function calculateContrastRatio(color1, color2) {
     2  function parseColor(colorString) {
     3    const colorArray = colorString.match(/\d+/g);
     4    return colorArray.map(Number);
     5  }
     6
     7  function getLuminance(color) {
     8    const normalizedColor = color.map(value => {
     9      value /= 255;
     10      if (value <= 0.03928) {
     11        return value / 12.92;
     12      } else {
     13        return Math.pow((value + 0.055) / 1.055, 2.4);
     14      }
     15    });
     16
     17    return 0.2126 * normalizedColor[0] + 0.7152 * normalizedColor[1] + 0.0722 * normalizedColor[2];
     18  }
     19
     20  const colorArray1 = parseColor(color1);
     21  const colorArray2 = parseColor(color2);
     22
     23  const luminance1 = getLuminance(colorArray1);
     24  const luminance2 = getLuminance(colorArray2);
     25
     26  const ratio = (Math.max(luminance1, luminance2) + 0.05) / (Math.min(luminance1, luminance2) + 0.05);
     27
     28  const aaThreshold = 4.5;
     29  const aaaThreshold = 7;
     30
     31  const passesAA = ratio >= aaThreshold;
     32  const passesAAA = ratio >= aaaThreshold;
     33
     34  return { passesAA, passesAAA };
     35}
     36
     37
     38function calcContrastError(color1, color2) {
     39    const targetElement = document.querySelector('.sftExt_type');
     40
     41    // Insert the new row before the target element
     42    let accessibilityResults = calculateContrastRatio(color1, color2);
     43    if (accessibilityResults.passesAA && accessibilityResults.passesAAA) {
     44        if (document.querySelector('.sftExt_alert')) document.querySelector('.sftExt_alert').remove();
     45        return;
     46    }
     47
     48    // Create a new table row element
     49    const newRow = document.createElement('tr');
     50    newRow.classList.add('sftExt_alert');
     51    newRow.innerHTML = `<th>Warning:</th><td>The contrast ratio between the background color and text color does not meet the accessibility standards.<br/>AA: ${accessibilityResults.passesAA ? 'Passing' : 'Failing'}<br/>AAA: ${accessibilityResults.passesAAA ? 'Passing' : 'Failing'}`;
     52
     53
     54    if (targetElement && targetElement.parentNode) {
     55        if (document.querySelector('.sftExt_alert')) document.querySelector('.sftExt_alert').remove();
     56        targetElement.parentNode.insertBefore(newRow, targetElement);
     57    }
     58}
     59
     60
    161jQuery(function($){
    262
     
    46106        color:$('#sftExt_bg_color').val()
    47107    });
     108
     109
     110    var font_color_picker = new Picker({
     111        parent: $fontParent,
     112        color:$('#sftExt_font_color').val()
     113    });
    48114    bg_color_picker.onChange = function(color) {
    49115        $('#sftExt_bg_color').val(color.rgbaString);
     116        calcContrastError(color.rgbaString, font_color_picker.color.rgbaString);
    50117        $('#sftExt_color_picker_btn_bg_color').css({
    51118            'background-color': color.rgbaString
    52119        });
    53120    };
    54     var font_color_picker = new Picker({
    55         parent: $fontParent,
    56         color:$('#sftExt_font_color').val()
    57     });
    58121    font_color_picker.onChange = function(color) {
    59122        $('#sftExt_font_color').val(color.rgbaString);
     123        calcContrastError(bg_color_picker.color.rgbaString, color.rgbaString);
    60124        $('#sftExt_color_picker_btn_font_color').css({
    61125            'background-color': color.rgbaString
    62126        });
    63127    };
     128    calcContrastError(bg_color_picker.color.rgbaString, font_color_picker.color.rgbaString);
    64129})
    65130// sftExt_icon_display
  • safety-exit/tags/1.6.5/lib/views/button-settings.php

    r2837777 r2934107  
    1111    </form>
    1212</div>
    13 
  • safety-exit/tags/1.6.5/lib/views/frontend-button.php

    r2838741 r2934107  
    6262    }
    6363</style>
    64 <aside id="sftExt-frontend-button" class="<?= $classes; ?>" data-new-tab="<?= $sftExtSettings['sftExt_new_tab_url']; ?>" data-url="<?= $sftExtSettings['sftExt_current_tab_url']; ?>">
     64<button id="sftExt-frontend-button" class="<?= $classes; ?>" data-new-tab="<?= $sftExtSettings['sftExt_new_tab_url']; ?>" data-url="<?= $sftExtSettings['sftExt_current_tab_url']; ?>">
    6565    <?php if($sftExtSettings['sftExt_type'] != 'round' && $sftExtSettings['sftExt_type'] != 'square') { ?>
    6666        <div class="sftExt-inner"><?= $icon; ?><?= $sftExtSettings['sftExt_rectangle_text']; ?></div>
    6767    <?php }else{ ?>
     68        <div class="sr-only">Safety Exit</div>
    6869        <?= $icon; ?>
    6970    <?php } ?>
    70 </aside>
     71</button>
    7172
    7273<?php endif; ?>
  • safety-exit/tags/1.6.5/readme.txt

    r2838741 r2934107  
    44Donate link: https://tomascordero.com
    55Requires at least: 5.2.0
    6 Tested up to: 6.1.1
     6Tested up to: 6.2.2
    77Requires PHP: 5.2.4
    8 Stable tag: 1.6.4
     8Stable tag: 1.6.5
    99License: GPL-2.0+
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    4848
    4949== Changelog ==
     501.6.5:
     51    - Refactor: Build pipeline
     52    - Improved: Accessibility
    50531.6.4:
    5154    - Fix: Fixed Divi bug
  • safety-exit/tags/1.6.5/safety-exit.php

    r2838741 r2934107  
    1212 * Plugin URI:
    1313 * Description: This plugin will inject a button on your website that will allow a website user to quickly navigate away from your website.
    14  * Version:     1.6.4
     14 * Version:     1.6.5
    1515 * Author:      Tomas Cordero
    1616 * Author URI:  https://tomascordero.com
  • safety-exit/trunk/assets/css/admin.css

    r2837777 r2934107  
    1 #sftExt_color_picker_btn_bg_color,
    2 #sftExt_color_picker_btn_font_color {
    3   padding: 10px 20px;
    4   border: 1px solid #ddd;
    5   box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
    6   transition: background .5s linear;
    7   display: inline-block;
    8   color: #333;
    9   text-align: center;
    10   cursor: pointer; }
     1#sftExt_color_picker_btn_bg_color,#sftExt_color_picker_btn_font_color{padding:10px 20px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);display:inline-block;color:#333;text-align:center;cursor:pointer}.sftExt_alert{color:#000000;background:#FFCCCC}.sftExt_alert th{padding-left:10px}
  • safety-exit/trunk/assets/css/frontend.css

    r2837777 r2934107  
    1 #sftExt-frontend-button {
    2   position: fixed;
    3   display: inline-block;
    4   cursor: pointer;
    5   z-index: 999999999999999999;
    6   left: 20px;
    7   top: 20px;
    8   padding: 10px 20px;
    9   font-family: inherit;
    10   width: 25px;
    11   height: 25px; }
    12   #sftExt-frontend-button.round {
    13     border-radius: 50%;
    14     padding: 10px;
    15     text-align: center;
    16     width: 45px;
    17     height: 45px; }
    18     #sftExt-frontend-button.round > i {
    19       position: relative;
    20       display: block;
    21       font-size: 25px;
    22       top: 50%;
    23       transform: translateY(-50%); }
    24   #sftExt-frontend-button.square {
    25     border-radius: 0;
    26     padding: 10px;
    27     text-align: center;
    28     width: 45px;
    29     height: 45px; }
    30     #sftExt-frontend-button.square > i {
    31       position: relative;
    32       display: block;
    33       font-size: 25px;
    34       top: 50%;
    35       transform: translateY(-50%); }
    36   #sftExt-frontend-button.rectangle {
    37     padding: 10px 20px;
    38     height: auto;
    39     width: auto;
    40     display: inline-flex;
    41     flex-direction: column; }
    42     #sftExt-frontend-button.rectangle:before, #sftExt-frontend-button.rectangle:after {
    43       content: '';
    44       flex: 1; }
    45     #sftExt-frontend-button.rectangle .sftExt-inner {
    46       position: relative;
    47       text-align: center; }
    48       #sftExt-frontend-button.rectangle .sftExt-inner > i {
    49         margin-right: 10px; }
    50       #sftExt-frontend-button.rectangle .sftExt-inner:before {
    51         position: absolute;
    52         left: 0;
    53         top: 0;
    54         height: 20px;
    55         width: 20px; }
    56   #sftExt-frontend-button.bottom {
    57     top: auto;
    58     bottom: 20px; }
    59   #sftExt-frontend-button.top {
    60     top: 20px; }
    61   #sftExt-frontend-button.right {
    62     left: auto;
    63     right: 20px; }
    64   #sftExt-frontend-button.left {
    65     left: 20px; }
     1#sftExt-frontend-button{position:fixed;border:none;display:inline-block;cursor:pointer;z-index:9999;left:20px;top:20px;padding:10px 20px;font-family:inherit;width:25px;height:25px}@media screen,speech{#sftExt-frontend-button .sr-only{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}}#sftExt-frontend-button.round{border-radius:50%;padding:10px;text-align:center;width:45px;height:45px}#sftExt-frontend-button.round>i{position:relative;display:block;font-size:25px;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}#sftExt-frontend-button.square{border-radius:0;padding:10px;text-align:center;width:45px;height:45px}#sftExt-frontend-button.square>i{position:relative;display:block;font-size:25px;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}#sftExt-frontend-button.rectangle{padding:10px 20px;height:auto;width:auto;display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}#sftExt-frontend-button.rectangle:before,#sftExt-frontend-button.rectangle:after{content:'';-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;flex:1}#sftExt-frontend-button.rectangle .sftExt-inner{position:relative;text-align:center}#sftExt-frontend-button.rectangle .sftExt-inner>i{margin-right:10px}#sftExt-frontend-button.rectangle .sftExt-inner:before{position:absolute;left:0;top:0;height:20px;width:20px}#sftExt-frontend-button.bottom{top:auto;bottom:20px}#sftExt-frontend-button.top{top:20px}#sftExt-frontend-button.right{left:auto;right:20px}#sftExt-frontend-button.left{left:20px}
  • safety-exit/trunk/assets/js/admin.js

    r2837777 r2934107  
     1function calculateContrastRatio(color1, color2) {
     2  function parseColor(colorString) {
     3    const colorArray = colorString.match(/\d+/g);
     4    return colorArray.map(Number);
     5  }
     6
     7  function getLuminance(color) {
     8    const normalizedColor = color.map(value => {
     9      value /= 255;
     10      if (value <= 0.03928) {
     11        return value / 12.92;
     12      } else {
     13        return Math.pow((value + 0.055) / 1.055, 2.4);
     14      }
     15    });
     16
     17    return 0.2126 * normalizedColor[0] + 0.7152 * normalizedColor[1] + 0.0722 * normalizedColor[2];
     18  }
     19
     20  const colorArray1 = parseColor(color1);
     21  const colorArray2 = parseColor(color2);
     22
     23  const luminance1 = getLuminance(colorArray1);
     24  const luminance2 = getLuminance(colorArray2);
     25
     26  const ratio = (Math.max(luminance1, luminance2) + 0.05) / (Math.min(luminance1, luminance2) + 0.05);
     27
     28  const aaThreshold = 4.5;
     29  const aaaThreshold = 7;
     30
     31  const passesAA = ratio >= aaThreshold;
     32  const passesAAA = ratio >= aaaThreshold;
     33
     34  return { passesAA, passesAAA };
     35}
     36
     37
     38function calcContrastError(color1, color2) {
     39    const targetElement = document.querySelector('.sftExt_type');
     40
     41    // Insert the new row before the target element
     42    let accessibilityResults = calculateContrastRatio(color1, color2);
     43    if (accessibilityResults.passesAA && accessibilityResults.passesAAA) {
     44        if (document.querySelector('.sftExt_alert')) document.querySelector('.sftExt_alert').remove();
     45        return;
     46    }
     47
     48    // Create a new table row element
     49    const newRow = document.createElement('tr');
     50    newRow.classList.add('sftExt_alert');
     51    newRow.innerHTML = `<th>Warning:</th><td>The contrast ratio between the background color and text color does not meet the accessibility standards.<br/>AA: ${accessibilityResults.passesAA ? 'Passing' : 'Failing'}<br/>AAA: ${accessibilityResults.passesAAA ? 'Passing' : 'Failing'}`;
     52
     53
     54    if (targetElement && targetElement.parentNode) {
     55        if (document.querySelector('.sftExt_alert')) document.querySelector('.sftExt_alert').remove();
     56        targetElement.parentNode.insertBefore(newRow, targetElement);
     57    }
     58}
     59
     60
    161jQuery(function($){
    262
     
    46106        color:$('#sftExt_bg_color').val()
    47107    });
     108
     109
     110    var font_color_picker = new Picker({
     111        parent: $fontParent,
     112        color:$('#sftExt_font_color').val()
     113    });
    48114    bg_color_picker.onChange = function(color) {
    49115        $('#sftExt_bg_color').val(color.rgbaString);
     116        calcContrastError(color.rgbaString, font_color_picker.color.rgbaString);
    50117        $('#sftExt_color_picker_btn_bg_color').css({
    51118            'background-color': color.rgbaString
    52119        });
    53120    };
    54     var font_color_picker = new Picker({
    55         parent: $fontParent,
    56         color:$('#sftExt_font_color').val()
    57     });
    58121    font_color_picker.onChange = function(color) {
    59122        $('#sftExt_font_color').val(color.rgbaString);
     123        calcContrastError(bg_color_picker.color.rgbaString, color.rgbaString);
    60124        $('#sftExt_color_picker_btn_font_color').css({
    61125            'background-color': color.rgbaString
    62126        });
    63127    };
     128    calcContrastError(bg_color_picker.color.rgbaString, font_color_picker.color.rgbaString);
    64129})
    65130// sftExt_icon_display
  • safety-exit/trunk/lib/views/button-settings.php

    r2837777 r2934107  
    1111    </form>
    1212</div>
    13 
  • safety-exit/trunk/lib/views/frontend-button.php

    r2838741 r2934107  
    6262    }
    6363</style>
    64 <aside id="sftExt-frontend-button" class="<?= $classes; ?>" data-new-tab="<?= $sftExtSettings['sftExt_new_tab_url']; ?>" data-url="<?= $sftExtSettings['sftExt_current_tab_url']; ?>">
     64<button id="sftExt-frontend-button" class="<?= $classes; ?>" data-new-tab="<?= $sftExtSettings['sftExt_new_tab_url']; ?>" data-url="<?= $sftExtSettings['sftExt_current_tab_url']; ?>">
    6565    <?php if($sftExtSettings['sftExt_type'] != 'round' && $sftExtSettings['sftExt_type'] != 'square') { ?>
    6666        <div class="sftExt-inner"><?= $icon; ?><?= $sftExtSettings['sftExt_rectangle_text']; ?></div>
    6767    <?php }else{ ?>
     68        <div class="sr-only">Safety Exit</div>
    6869        <?= $icon; ?>
    6970    <?php } ?>
    70 </aside>
     71</button>
    7172
    7273<?php endif; ?>
  • safety-exit/trunk/readme.txt

    r2838741 r2934107  
    44Donate link: https://tomascordero.com
    55Requires at least: 5.2.0
    6 Tested up to: 6.1.1
     6Tested up to: 6.2.2
    77Requires PHP: 5.2.4
    8 Stable tag: 1.6.4
     8Stable tag: 1.6.5
    99License: GPL-2.0+
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    4848
    4949== Changelog ==
     501.6.5:
     51    - Refactor: Build pipeline
     52    - Improved: Accessibility
    50531.6.4:
    5154    - Fix: Fixed Divi bug
  • safety-exit/trunk/safety-exit.php

    r2838741 r2934107  
    1212 * Plugin URI:
    1313 * Description: This plugin will inject a button on your website that will allow a website user to quickly navigate away from your website.
    14  * Version:     1.6.4
     14 * Version:     1.6.5
    1515 * Author:      Tomas Cordero
    1616 * Author URI:  https://tomascordero.com
Note: See TracChangeset for help on using the changeset viewer.