Plugin Directory

Changeset 3469203


Ignore:
Timestamp:
02/25/2026 08:52:00 AM (2 weeks ago)
Author:
wordplus
Message:

2.12.9

Location:
bp-better-messages
Files:
6 edited
1 moved

Legend:

Unmodified
Added
Removed
  • bp-better-messages/tags/2.12.9/addons/peepso.php

    r3468963 r3469203  
    564564                    headerButton.innerHTML += html;
    565565
    566                     var popup = headerButton.querySelector('.ps-notif__box,.pso-notifbox');
    567                     var link = headerButton.querySelector(':scope > a');
     566                    function getPopup() {
     567                        return headerButton.querySelector('.ps-notif__box,.pso-notifbox');
     568                    }
    568569
    569570                    function isVisible(el) {
     
    572573
    573574                    function togglePopup() {
     575                        var popup = getPopup();
    574576                        if( ! popup ) return;
    575                         if( isVisible(popup) ){
    576                             popup.style.display = 'none';
     577                        var $popup = jQuery(popup);
     578                        if( $popup.is(':visible') ){
     579                            $popup.stop().slideUp('fast');
    577580                        } else {
    578                             popup.style.display = '';
     581                            $popup.stop().slideDown('fast');
    579582                        }
    580583                    }
    581584
     585                    function addOutsideListener() {
     586                        document.addEventListener('click', handleClickOutside);
     587                        document.addEventListener('touchend', handleClickOutside);
     588                    }
     589
     590                    function removeOutsideListener() {
     591                        document.removeEventListener('click', handleClickOutside);
     592                        document.removeEventListener('touchend', handleClickOutside);
     593                    }
     594
    582595                    function handleClickOutside(event) {
    583                         if (!popup.contains(event.target) && !headerButton.contains(event.target)) {
     596                        var popup = getPopup();
     597                        if (popup && !popup.contains(event.target) && !headerButton.contains(event.target)) {
    584598                            if (isVisible(popup)) {
    585599                                togglePopup();
    586                                 document.removeEventListener('click', handleClickOutside);
     600                                removeOutsideListener();
    587601                            }
    588602                        }
    589603                    }
    590604
    591                     if( link ) {
    592                         link.onclick = function (event) {
    593                             event.preventDefault();
    594                             togglePopup();
    595 
    596                             if (isVisible(popup)) {
    597                                 document.addEventListener('click', handleClickOutside);
    598                             } else {
    599                                 document.removeEventListener('click', handleClickOutside);
    600                             }
    601                         };
    602                     }
     605                    function handleToggle(event) {
     606                        var link = event.target.closest('a');
     607                        if( !link || !headerButton.contains(link) ) return;
     608                        var popup = getPopup();
     609                        if( !popup ) return;
     610                        if( popup.contains(link) ) return;
     611
     612                        event.preventDefault();
     613                        event.stopPropagation();
     614                        togglePopup();
     615
     616                        if (isVisible(popup)) {
     617                            addOutsideListener();
     618                        } else {
     619                            removeOutsideListener();
     620                        }
     621                    }
     622
     623                    headerButton.addEventListener('click', handleToggle);
     624                    headerButton.addEventListener('touchend', handleToggle);
    603625                });
    604626
  • bp-better-messages/tags/2.12.9/bp-better-messages.php

    r3468989 r3469203  
    66    Plugin URI: https://www.wordplus.org
    77    Description: Realtime private messaging system for WordPress
    8     Version: 2.12.8
     8    Version: 2.12.9
    99    Author: WordPlus
    1010    Author URI: https://www.wordplus.org
     
    1717if ( !class_exists( 'Better_Messages' ) && !function_exists( 'bpbm_fs' ) ) {
    1818    class Better_Messages {
    19         public $version = '2.12.8';
     19        public $version = '2.12.9';
    2020
    2121        public $db_version = '1.0.4';
  • bp-better-messages/tags/2.12.9/readme.txt

    r3468989 r3469203  
    55Tested up to: 6.9.1
    66Requires PHP: 7.4
    7 Stable tag: 2.12.8
     7Stable tag: 2.12.9
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    230230== Changelog ==
    231231
    232 = 2.12.8 =
     232= 2.12.9 =
    233233* Added optional feature to enable messages forwarding
    234234* Reworked bulk messaging
  • bp-better-messages/trunk/addons/peepso.php

    r3468963 r3469203  
    564564                    headerButton.innerHTML += html;
    565565
    566                     var popup = headerButton.querySelector('.ps-notif__box,.pso-notifbox');
    567                     var link = headerButton.querySelector(':scope > a');
     566                    function getPopup() {
     567                        return headerButton.querySelector('.ps-notif__box,.pso-notifbox');
     568                    }
    568569
    569570                    function isVisible(el) {
     
    572573
    573574                    function togglePopup() {
     575                        var popup = getPopup();
    574576                        if( ! popup ) return;
    575                         if( isVisible(popup) ){
    576                             popup.style.display = 'none';
     577                        var $popup = jQuery(popup);
     578                        if( $popup.is(':visible') ){
     579                            $popup.stop().slideUp('fast');
    577580                        } else {
    578                             popup.style.display = '';
     581                            $popup.stop().slideDown('fast');
    579582                        }
    580583                    }
    581584
     585                    function addOutsideListener() {
     586                        document.addEventListener('click', handleClickOutside);
     587                        document.addEventListener('touchend', handleClickOutside);
     588                    }
     589
     590                    function removeOutsideListener() {
     591                        document.removeEventListener('click', handleClickOutside);
     592                        document.removeEventListener('touchend', handleClickOutside);
     593                    }
     594
    582595                    function handleClickOutside(event) {
    583                         if (!popup.contains(event.target) && !headerButton.contains(event.target)) {
     596                        var popup = getPopup();
     597                        if (popup && !popup.contains(event.target) && !headerButton.contains(event.target)) {
    584598                            if (isVisible(popup)) {
    585599                                togglePopup();
    586                                 document.removeEventListener('click', handleClickOutside);
     600                                removeOutsideListener();
    587601                            }
    588602                        }
    589603                    }
    590604
    591                     if( link ) {
    592                         link.onclick = function (event) {
    593                             event.preventDefault();
    594                             togglePopup();
    595 
    596                             if (isVisible(popup)) {
    597                                 document.addEventListener('click', handleClickOutside);
    598                             } else {
    599                                 document.removeEventListener('click', handleClickOutside);
    600                             }
    601                         };
    602                     }
     605                    function handleToggle(event) {
     606                        var link = event.target.closest('a');
     607                        if( !link || !headerButton.contains(link) ) return;
     608                        var popup = getPopup();
     609                        if( !popup ) return;
     610                        if( popup.contains(link) ) return;
     611
     612                        event.preventDefault();
     613                        event.stopPropagation();
     614                        togglePopup();
     615
     616                        if (isVisible(popup)) {
     617                            addOutsideListener();
     618                        } else {
     619                            removeOutsideListener();
     620                        }
     621                    }
     622
     623                    headerButton.addEventListener('click', handleToggle);
     624                    headerButton.addEventListener('touchend', handleToggle);
    603625                });
    604626
  • bp-better-messages/trunk/bp-better-messages.php

    r3468992 r3469203  
    66    Plugin URI: https://www.wordplus.org
    77    Description: Realtime private messaging system for WordPress
    8     Version: 2.12.8
     8    Version: 2.12.9
    99    Author: WordPlus
    1010    Author URI: https://www.wordplus.org
     
    1717if ( !class_exists( 'Better_Messages' ) && !function_exists( 'bpbm_fs' ) ) {
    1818    class Better_Messages {
    19         public $version = '2.12.8';
     19        public $version = '2.12.9';
    2020
    2121        public $db_version = '1.0.4';
  • bp-better-messages/trunk/readme.txt

    r3468992 r3469203  
    55Tested up to: 6.9.1
    66Requires PHP: 7.4
    7 Stable tag: 2.12.8
     7Stable tag: 2.12.9
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    230230== Changelog ==
    231231
    232 = 2.12.8 =
     232= 2.12.9 =
    233233* Added optional feature to enable messages forwarding
    234234* Reworked bulk messaging
Note: See TracChangeset for help on using the changeset viewer.