Skip to:
Content

BuddyPress.org

Ticket #7540: 7540-4.patch

File 7540-4.patch, 56.8 KB (added by vapvarun, 5 years ago)

updated with missing new file

  • new file src/bp-messages/actions/quit.php

    diff --git src/bp-messages/actions/quit.php src/bp-messages/actions/quit.php
    new file mode 100644
    index 000000000..889bb8a8d
    - +  
     1<?php
     2/**
     3 * Messages: Quit action handler.
     4 *
     5 * @package BuddyPress
     6 * @subpackage MessageActions
     7 * @since 10.0.0
     8 */
     9
     10/**
     11 * Process a request to quit a message.
     12 *
     13 * @return bool False on failure.
     14 */
     15function bp_messages_action_quit_message() {
     16
     17        if ( ! bp_is_messages_component() || bp_is_current_action( 'notices' ) || ! bp_is_action_variable( 'quit', 0 ) ) {
     18                return false;
     19        }
     20
     21        $thread_id = bp_action_variable( 1 );
     22
     23        if ( ! $thread_id || ! is_numeric( $thread_id ) || ! messages_check_thread_access( $thread_id ) ) {
     24                bp_core_redirect( trailingslashit( bp_displayed_user_domain() . bp_get_messages_slug() . '/' . bp_current_action() ) );
     25        } else {
     26                if ( ! check_admin_referer( 'bp_messages_quit_thread' ) ) {
     27                        return false;
     28                }
     29
     30                // quit message.
     31                if ( ! bp_messages_quit_thread( $thread_id ) ) {
     32                        bp_core_add_message( __('There was an error quit that conversation.', 'buddypress'), 'error' );
     33                } else {
     34                        bp_core_add_message( __('You have left the message thread.', 'buddypress') );
     35                }
     36                bp_core_redirect( trailingslashit( bp_displayed_user_domain() . bp_get_messages_slug() . '/' . bp_current_action() ) );
     37        }
     38}
     39add_action( 'bp_actions', 'bp_messages_action_quit_message' );
  • src/bp-messages/bp-messages-functions.php

    diff --git src/bp-messages/bp-messages-functions.php src/bp-messages/bp-messages-functions.php
    index 08b30d7cc..64980c34b 100644
    function bp_messages_dismiss_sitewide_notice( $user_id = 0, $notice_id = 0 ) {  
    799799
    800800        return $retval;
    801801}
     802
     803
     804/**
     805 * Quit message thread(s) for a given user.
     806 *
     807 * Note that "deleting" a thread for a user means removing it from the user's
     808 * message boxes. A thread is not deleted from the database until it's been
     809 * "deleted" by all recipients.
     810 *
     811 * @since 2.7.0 The $user_id parameter was added. Previously the current user
     812 *              was always assumed.
     813 *
     814 * @param int|array $thread_ids Thread ID or array of thread IDs.
     815 * @param int       $user_id    ID of the user to delete the threads for. Defaults
     816 *                              to the current logged-in user.
     817 * @return bool True on success, false on failure.
     818 */
     819function bp_messages_quit_thread( $thread_ids, $user_id = 0 ) {
     820
     821        if ( empty( $user_id ) ) {
     822                $user_id =
     823                        bp_displayed_user_id() ?
     824                        bp_displayed_user_id() :
     825                        bp_loggedin_user_id();
     826        }
     827
     828        /**
     829         * Fires before specified thread IDs have been deleted.
     830         *
     831         * @since 1.5.0
     832         * @since 2.7.0 The $user_id parameter was added.
     833         *
     834         * @param int|array $thread_ids Thread ID or array of thread IDs to be deleted.
     835         * @param int       $user_id    ID of the user the threads are being deleted for.
     836         */
     837        do_action( 'bp_messages_before_quit_thread', $thread_ids, $user_id );
     838
     839        if ( is_array( $thread_ids ) ) {
     840                $error = 0;
     841                for ( $i = 0, $count = count( $thread_ids ); $i < $count; ++$i ) {
     842                        if ( ! BP_Messages_Thread::quit( $thread_ids[ $i ], $user_id ) ) {
     843                                $error = 1;
     844                        }
     845                }
     846
     847                if ( ! empty( $error ) ) {
     848                        return false;
     849                }
     850
     851                /**
     852                 * Fires after specified thread IDs have been deleted.
     853                 *
     854                 * @since 1.0.0
     855                 * @since 2.7.0 The $user_id parameter was added.
     856                 *
     857                 * @param int|array Thread ID or array of thread IDs that were deleted.
     858                 * @param int       ID of the user that the threads were deleted for.
     859                 */
     860                do_action( 'bp_messages_quit_thread', $thread_ids, $user_id );
     861
     862                return true;
     863        } else {
     864                if ( ! BP_Messages_Thread::quit( $thread_ids, $user_id ) ) {
     865                        return false;
     866                }
     867
     868                /** This action is documented in bp-messages/bp-messages-functions.php */
     869                do_action( 'bp_messages_quit_thread', $thread_ids, $user_id );
     870
     871                return true;
     872        }
     873}
     874 No newline at end of file
  • src/bp-messages/bp-messages-template.php

    diff --git src/bp-messages/bp-messages-template.php src/bp-messages/bp-messages-template.php
    index 6c100fe98..1c6d0d091 100644
    function bp_the_thread_delete_link() {  
    21872187                 */
    21882188                return apply_filters( 'bp_get_message_thread_delete_link', wp_nonce_url( bp_displayed_user_domain() . bp_get_messages_slug() . '/inbox/delete/' . bp_get_the_thread_id(), 'messages_delete_thread' ) );
    21892189        }
     2190       
     2191/**
     2192 * Output the URL for quit the current thread.
     2193 *
     2194 * @since 10.0.0
     2195 */
     2196function bp_the_thread_quit_link() {
     2197        echo esc_url( bp_get_the_thread_quit_link() );
     2198}
     2199        /**
     2200         * Get the URL for quit the current thread.
     2201         *
     2202         * @since 10.0.0
     2203         *
     2204         * @return string URL
     2205         */
     2206        function bp_get_the_thread_quit_link() {
     2207
     2208                /**
     2209                 * Filters the URL for quit the current thread.
     2210                 *
     2211                 * @since 1.0.0
     2212                 *
     2213                 * @param string $value URL for quit the current thread.
     2214                 * @param string $value Text indicating action being executed.
     2215                 */
     2216                return apply_filters( 'bp_get_message_thread_quit_link', wp_nonce_url( bp_displayed_user_domain() . bp_get_messages_slug() . '/inbox/quit/' . bp_get_the_thread_id(), 'bp_messages_quit_thread' ) );
     2217        }
    21902218
    21912219/**
    21922220 * Output the 'Sent x hours ago' string for the current message.
  • src/bp-messages/classes/class-bp-messages-component.php

    diff --git src/bp-messages/classes/class-bp-messages-component.php src/bp-messages/classes/class-bp-messages-component.php
    index 15f8d0748..d8e530b5e 100644
    class BP_Messages_Component extends BP_Component {  
    102102
    103103                        // Authenticated action variables.
    104104                        if ( is_user_logged_in() && bp_action_variable( 0 ) &&
    105                                 in_array( bp_action_variable( 0 ), array( 'delete', 'read', 'unread', 'bulk-manage', 'bulk-delete' ), true )
     105                                in_array( bp_action_variable( 0 ), array( 'delete', 'read', 'unread', 'bulk-manage', 'bulk-delete', 'quit' ), true )
    106106                        ) {
    107107                                require $this->path . 'bp-messages/actions/' . bp_action_variable( 0 ) . '.php';
    108108                        }
  • src/bp-messages/classes/class-bp-messages-thread.php

    diff --git src/bp-messages/classes/class-bp-messages-thread.php src/bp-messages/classes/class-bp-messages-thread.php
    index 9b2dd3601..aca68ee1b 100644
    class BP_Messages_Thread {  
    533533
    534534                return true;
    535535        }
     536       
     537        /**
     538         * Mark messages in a thread as deleted or delete all messages in a thread.
     539         *
     540         * Note: All messages in a thread are deleted once every recipient in a thread
     541         * has marked the thread as deleted.
     542         *
     543         * @since 10.0.0
     544         * @since 2.7.0 The $user_id parameter was added. Previously the current user
     545         *              was always assumed.
     546         *
     547         * @global BuddyPress $bp The one true BuddyPress instance.
     548         * @global wpdb $wpdb WordPress database object.
     549         *
     550         * @param int $thread_id The message thread ID.
     551         * @param int $user_id The ID of the user in the thread to mark messages as
     552         *                     deleted for. Defaults to the current logged-in user.
     553         *
     554         * @return bool
     555         */
     556        public static function quit( $thread_id = 0, $user_id = 0 ) {
     557                global $wpdb;
     558               
     559                $thread_id = (int) $thread_id;
     560                $user_id = (int) $user_id;
     561
     562                if ( empty( $user_id ) ) {
     563                        $user_id = bp_loggedin_user_id();
     564                }
     565
     566                /**
     567                 * Fires before a message thread is marked as deleted.
     568                 *
     569                 * @since 2.2.0
     570                 * @since 2.7.0 The $user_id parameter was added.
     571                 *
     572                 * @param int $thread_id ID of the thread being deleted.
     573                 * @param int $user_id   ID of the user that the thread is being deleted for.
     574                 */
     575                do_action( 'bp_messages_thread_before_mark_quit', $thread_id, $user_id );
     576
     577                $bp = buddypress();
     578
     579                // Delete from messages recipients
     580                $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d AND user_id = %d", $thread_id, $user_id ) );
     581
     582                // Get the message ids in order to pass to the action.
     583                $message_ids = $wpdb->get_col( $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_messages} WHERE thread_id = %d", $thread_id ) );
     584
     585               
     586
     587                /**
     588                 * Fires after a message thread is either marked as deleted or deleted.
     589                 *
     590                 * @since 2.2.0
     591                 * @since 2.7.0 The $user_id parameter was added.
     592                 *
     593                 * @param int   $thread_id   ID of the thread being deleted.
     594                 * @param array $message_ids IDs of messages being deleted.
     595                 * @param int   $user_id     ID of the user the threads were deleted for.
     596                 */
     597                do_action( 'bp_messages_thread_after_quit', $thread_id, $message_ids, $user_id );
     598
     599                return true;
     600        }
    536601
    537602        /**
    538603         * Get current message threads for a user.
  • src/bp-templates/bp-legacy/buddypress/members/single/messages/single.php

    diff --git src/bp-templates/bp-legacy/buddypress/members/single/messages/single.php src/bp-templates/bp-legacy/buddypress/members/single/messages/single.php
    index bc423b740..1ffca47dd 100644
     
    4949                        </span>
    5050
    5151                        <a class="button confirm" href="<?php bp_the_thread_delete_link(); ?>"><?php _e( 'Delete', 'buddypress' ); ?></a>
    52 
     52                       
     53                        <?php if ( bp_get_thread_recipients_count() > 2 ):?>
     54                       
     55                                <a class="button confirm" href="<?php bp_the_thread_quit_link(); ?>"><?php _e( 'Quit Conversation', 'buddypress' ); ?></a>
     56                               
     57                        <?php endif;?>
     58                       
    5359                        <?php
    5460
    5561                        /**
  • src/bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php

    diff --git src/bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php src/bp-templates/bp-nouveau/buddypress/common/js-templates/messages/index.php
    index 6b2a5c69f..f92afe6ac 100644
     
    189189                                                <span class="bp-screen-reader-text"><?php esc_html_e( 'Delete conversation.', 'buddypress' ); ?></span>
    190190                                        </button>
    191191
     192                                        <button type="button" class="message-action-quit bp-tooltip bp-icons" data-bp-action="quit" data-bp-tooltip="<?php esc_attr_e( 'Quit Conversation.', 'buddypress' ); ?>">
     193                                                <span class="bp-screen-reader-text"><?php esc_html_e( 'Quit Conversation.', 'buddypress' ); ?></span>
     194                                        </button>
     195
    192196                                        <# if ( undefined !== data.star_link ) { #>
    193197
    194198                                                <# if ( false !== data.is_starred ) { #>
    … …  
    250254                        <button type="button" class="message-action-delete bp-tooltip bp-icons" data-bp-action="delete" data-bp-tooltip="<?php esc_attr_e( 'Delete conversation.', 'buddypress' ); ?>">
    251255                                <span class="bp-screen-reader-text"><?php esc_html_e( 'Delete conversation.', 'buddypress' ); ?></span>
    252256                        </button>
     257
     258                        <button type="button" class="message-action-quit bp-tooltip bp-icons" data-bp-action="quit" data-bp-tooltip="<?php esc_attr_e( 'Quit Conversation.', 'buddypress' ); ?>">
     259                                <span class="bp-screen-reader-text"><?php esc_html_e( 'Quit Conversation.', 'buddypress' ); ?></span>
     260                        </button>
    253261                </div>
    254262        </header>
    255263</script>
  • src/bp-templates/bp-nouveau/css/buddypress-rtl.css

    diff --git src/bp-templates/bp-nouveau/css/buddypress-rtl.css src/bp-templates/bp-nouveau/css/buddypress-rtl.css
    index e8a2edaa1..fdb3dfff9 100644
    body #buddypress select,  
    6969body #buddypress input[type="search"],
    7070body #buddypress input[type="submit"],
    7171body #buddypress input[type="reset"] {
     72        -webkit-border-radius: 2px;
     73        -moz-border-radius: 2px;
     74        -ms-border-radius: 2px;
    7275        border-radius: 2px;
    7376        background-clip: padding-box;
    7477}
    … … body #buddypress .bp-lists blockquote {  
    7982}
    8083
    8184body #buddypress .bp-list .action {
     85        -webkit-box-sizing: border-box;
     86        -moz-box-sizing: border-box;
    8287        box-sizing: border-box;
    8388}
    8489
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    375380        .buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links) {
    376381                border-bottom: 1px solid #eee;
    377382                border-top: 1px solid #eee;
     383                -webkit-box-shadow: 0 2px 12px 0 #fafafa;
     384                -moz-box-shadow: 0 2px 12px 0 #fafafa;
    378385                box-shadow: 0 2px 12px 0 #fafafa;
    379386        }
    380387}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    868875}
    869876
    870877.bp-list {
     878        -webkit-box-sizing: border-box;
     879        -moz-box-sizing: border-box;
    871880        box-sizing: border-box;
    872881        border-top: 1px solid #eaeaea;
    873882        clear: both;
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    10181027.activity-list.bp-list .activity-item {
    10191028        background: #fff;
    10201029        border: 1px solid #b7b7b7;
     1030        -webkit-box-shadow: 0 0 6px #d2d2d2;
     1031        -moz-box-shadow: 0 0 6px #d2d2d2;
    10211032        box-shadow: 0 0 6px #d2d2d2;
    10221033        margin: 20px 0;
    10231034}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    10381049@media screen and (min-width: 46.8em) {
    10391050        .friends-request-list li,
    10401051        .membership-requests-list li {
     1052                display: -webkit-flex;
    10411053                display: -moz-flex;
    10421054                display: -ms-flex;
    10431055                display: -o-flex;
    10441056                display: flex;
     1057                -webkit-flex-flow: row nowrap;
     1058                -moz-flex-flow: row nowrap;
     1059                -ms-flex-flow: row nowrap;
    10451060                -o-flex-flow: row nowrap;
    10461061                flex-flow: row nowrap;
    10471062        }
    10481063        .friends-request-list li .item,
    10491064        .membership-requests-list li .item {
     1065                -webkit-flex: 1 1 auto;
    10501066                -moz-flex: 1 1 auto;
     1067                -ms-flex: 1 1 auto;
    10511068                -o-flex: 1 1 auto;
    10521069                flex: 1 1 auto;
    10531070        }
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11031120
    11041121.activity-update-form {
    11051122        border: 1px solid #ccc;
     1123        -webkit-box-shadow: inset 0 0 6px #eee;
     1124        -moz-box-shadow: inset 0 0 6px #eee;
    11061125        box-shadow: inset 0 0 6px #eee;
    11071126        margin: 15px 0;
    11081127}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11251144
    11261145.activity-update-form #whats-new-textarea textarea {
    11271146        background: #fff;
     1147        -webkit-box-sizing: border-box;
     1148        -moz-box-sizing: border-box;
    11281149        box-sizing: border-box;
    11291150        color: #333;
    11301151        font-family: inherit;
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11361157}
    11371158
    11381159.activity-update-form #whats-new-textarea textarea:focus {
     1160        -webkit-box-shadow: 0 0 6px 0 #d6d6d6;
     1161        -moz-box-shadow: 0 0 6px 0 #d6d6d6;
    11391162        box-shadow: 0 0 6px 0 #d6d6d6;
    11401163}
    11411164
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11641187}
    11651188
    11661189.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object {
     1190        display: -webkit-box;
     1191        display: -ms-flexbox;
     1192        display: -webkit-flex;
    11671193        display: flex;
     1194        -ms-flex-align: center;
     1195        -webkit-align-items: center;
     1196        -webkit-box-align: center;
    11681197        align-items: center;
    11691198        padding: 0.2em;
    11701199}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    15121541.buddypress-wrap .activity-list .load-newest:focus,
    15131542.buddypress-wrap .activity-list .load-newest:hover {
    15141543        border-color: #e1e1e1;
     1544        -webkit-box-shadow: 0 0 6px 0 #eaeaea;
     1545        -moz-box-shadow: 0 0 6px 0 #eaeaea;
    15151546        box-shadow: 0 0 6px 0 #eaeaea;
    15161547}
    15171548
    … … body.activity-permalink .activity-list .activity-comments {  
    15771608                top: -20px;
    15781609        }
    15791610        body.activity-permalink .activity-list .activity-avatar img {
     1611                -webkit-box-shadow: 0 0 0 8px #fff;
    15801612                box-shadow: 0 0 0 8px #fff;
    15811613        }
    15821614        body.activity-permalink .activity-list .activity-content {
    … … body.activity-permalink .activity-list .activity-comments {  
    15971629.bp-member-preview-cover img,
    15981630.bp-group-preview-cover img {
    15991631        background: #c5c5c5;
    1600         -o-object-fit: cover;
    16011632        object-fit: cover;
    16021633        border: 0;
    16031634        display: block;
    … … form.ac-form .ac-reply-content .ac-textarea textarea {  
    18451876}
    18461877
    18471878form.ac-form .ac-reply-content .ac-textarea textarea:focus {
     1879        -webkit-box-shadow: 0 0 6px #d6d6d6;
     1880        -moz-box-shadow: 0 0 6px #d6d6d6;
    18481881        box-shadow: 0 0 6px #d6d6d6;
    18491882}
    18501883
    … … form.ac-form .ac-reply-content input {  
    19081941
    19091942.buddypress-wrap .groups-list li .group-desc {
    19101943        border: 1px solid #eaeaea;
     1944        -webkit-border-radius: 10px;
     1945        -moz-border-radius: 10px;
     1946        -ms-border-radius: 10px;
    19111947        border-radius: 10px;
    19121948        background-clip: padding-box;
    19131949        font-size: 13px;
    … … form.ac-form .ac-reply-content input {  
    19832019
    19842020.buddypress-wrap .members-list li .user-update {
    19852021        border: 1px solid #eaeaea;
     2022        -webkit-border-radius: 10px;
     2023        -moz-border-radius: 10px;
     2024        -ms-border-radius: 10px;
    19862025        border-radius: 10px;
    19872026        background-clip: padding-box;
    19882027        color: #737373;
    … … form.ac-form .ac-reply-content input {  
    20322071*-------------------------------------------------------------------------------
    20332072*/
    20342073.register-page .register-section {
     2074        -webkit-box-sizing: border-box;
     2075        -moz-box-sizing: border-box;
    20352076        box-sizing: border-box;
    20362077}
    20372078
    … … body.no-js .single-item-header .js-self-profile-button {  
    24412482}
    24422483
    24432484.groups-header .moderators-lists img.avatar {
     2485        -moz-box-shadow: none;
     2486        -webkit-box-shadow: none;
    24442487        box-shadow: none;
    24452488        float: none;
    24462489        height: 30px;
    … … body.no-js .single-item-header .js-self-profile-button {  
    24782521
    24792522.groups-header .desc-wrap .group-description {
    24802523        background: #fafafa;
     2524        -webkit-box-shadow: inset 0 0 9px #ccc;
     2525        -moz-box-shadow: inset 0 0 9px #ccc;
    24812526        box-shadow: inset 0 0 9px #ccc;
    24822527        padding: 1em;
    24832528        text-align: right;
    … … body.buddypress.bp-user .buddypress-wrap .member-header-actions * > * {  
    27562801}
    27572802
    27582803.buddypress .bp-invites-content ul.item-list li.selected {
     2804        -webkit-box-shadow: inset 0 0 12px 0 rgba(237, 187, 52, 0.2);
     2805        -moz-box-shadow: inset 0 0 12px 0 rgba(237, 187, 52, 0.2);
    27592806        box-shadow: inset 0 0 12px 0 rgba(237, 187, 52, 0.2);
    27602807}
    27612808
    … … body.buddypress.bp-user .buddypress-wrap .member-header-actions * > * {  
    28272874
    28282875@media screen and (min-width: 46.8em) {
    28292876        .buddypress .bp-invites-content ul.item-list > li {
     2877                -webkit-box-sizing: border-box;
     2878                -moz-box-sizing: border-box;
    28302879                box-sizing: border-box;
    28312880                border: 1px solid #eaeaea;
    28322881                float: right;
    … … body.buddypress.bp-user .buddypress-wrap .member-header-actions * > * {  
    28482897
    28492898@media screen and (min-width: 46.8em) {
    28502899        :not(.vertical) + .item-body #group-invites-container {
     2900                display: -ms-grid;
    28512901                display: grid;
     2902                -ms-grid-columns: 25% auto;
    28522903                grid-template-columns: 25% auto;
    28532904                grid-template-areas: "group-invites-nav group-invites-column";
    28542905        }
    … … body.register .buddypress-wrap .page ul {  
    30713122.message-action-star:before,
    30723123.message-action-unstar:before,
    30733124.message-action-view:before,
    3074 .message-action-delete:before {
     3125.message-action-delete:before,
     3126.message-action-quit:before {
    30753127        font-family: dashicons;
    30763128        font-size: 18px;
    30773129}
    … … body.register .buddypress-wrap .page ul {  
    30943146        content: "\f153";
    30953147}
    30963148
     3149.message-action-quit:before {
     3150        content: "\f14a";
     3151}
     3152
    30973153.message-action-delete:hover:before {
    30983154        color: #a00;
    30993155}
    … … body.register .buddypress-wrap .page ul {  
    31073163}
    31083164
    31093165.bp-messages-content .avatar {
     3166        -moz-box-shadow: none;
     3167        -webkit-box-shadow: none;
    31103168        box-shadow: none;
    31113169}
    31123170
    … … body.register .buddypress-wrap .page ul {  
    31373195
    31383196#message-threads li {
    31393197        border-bottom: 1px solid #eaeaea;
     3198        display: -webkit-flex;
    31403199        display: -moz-flex;
    31413200        display: -ms-flex;
    31423201        display: -o-flex;
    31433202        display: flex;
     3203        -webkit-flex-flow: row nowrap;
     3204        -moz-flex-flow: row nowrap;
     3205        -ms-flex-flow: row nowrap;
    31443206        -o-flex-flow: row nowrap;
    31453207        flex-flow: row nowrap;
    31463208        margin: 0;
    … … body.register .buddypress-wrap .page ul {  
    31493211}
    31503212
    31513213#message-threads li .thread-cb {
     3214        display: -webkit-box;
     3215        display: -ms-flexbox;
     3216        display: -webkit-flex;
    31523217        display: flex;
     3218        -ms-flex-align: center;
     3219        -webkit-align-items: center;
     3220        -webkit-box-align: center;
    31533221        align-items: center;
     3222        -webkit-flex: 1 2 5%;
    31543223        -moz-flex: 1 2 5%;
     3224        -ms-flex: 1 2 5%;
    31553225        -o-flex: 1 2 5%;
    31563226        flex: 1 2 5%;
    31573227}
    31583228
    31593229#message-threads li .thread-from,
    31603230#message-threads li .thread-to {
     3231        -webkit-flex: 1 2 20%;
    31613232        -moz-flex: 1 2 20%;
     3233        -ms-flex: 1 2 20%;
    31623234        -o-flex: 1 2 20%;
    31633235        flex: 1 2 20%;
    31643236}
    … … body.register .buddypress-wrap .page ul {  
    31843256}
    31853257
    31863258#message-threads li .thread-content {
     3259        -webkit-flex: 1 2 60%;
    31873260        -moz-flex: 1 2 60%;
     3261        -ms-flex: 1 2 60%;
    31883262        -o-flex: 1 2 60%;
    31893263        flex: 1 2 60%;
    31903264}
    31913265
    31923266#message-threads li .thread-date {
     3267        -webkit-flex: 1 2 15%;
    31933268        -moz-flex: 1 2 15%;
     3269        -ms-flex: 1 2 15%;
    31943270        -o-flex: 1 2 15%;
    31953271        flex: 1 2 15%;
    31963272}
    … … body.register .buddypress-wrap .page ul {  
    32923368
    32933369.bp-messages-content #bp-message-thread-list .message-metadata {
    32943370        border-bottom: 1px solid #ccc;
     3371        -webkit-box-shadow: 2px 1px 9px 0 #eee;
     3372        -moz-box-shadow: 2px 1px 9px 0 #eee;
    32953373        box-shadow: 2px 1px 9px 0 #eee;
    32963374        display: table;
    32973375        padding: 0.2em;
    … … body.buddypress.settings.data #buddypress.buddypress-wrap .item-body p a {  
    35353613.buddypress-wrap input[type="url"]:focus,
    35363614.buddypress-wrap input[type="tel"]:focus,
    35373615.buddypress-wrap input[type="password"]:focus {
     3616        -webkit-box-shadow: 0 0 8px #eaeaea;
     3617        -moz-box-shadow: 0 0 8px #eaeaea;
    35383618        box-shadow: 0 0 8px #eaeaea;
    35393619}
    35403620
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    37743854}
    37753855
    37763856.buddypress-wrap .select-wrap select {
     3857        -moz-appearance: none;
    37773858        -webkit-appearance: none;
    37783859        -o-appearance: none;
    37793860        appearance: none;
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    38683949.buddypress-wrap form#group-members-search button[type="submit"] {
    38693950        background: none;
    38703951        border: 0;
     3952        -webkit-border-radius: 0;
     3953        -moz-border-radius: 0;
     3954        -ms-border-radius: 0;
    38713955        border-radius: 0;
    38723956        background-clip: padding-box;
    38733957}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    41444228}
    41454229
    41464230.center-vert {
     4231        display: -ms-flexbox;
     4232        display: -webkit-flex;
    41474233        display: flex;
     4234        -ms-flex-align: center;
     4235        -webkit-align-items: center;
     4236        -webkit-box-align: center;
    41484237        align-items: center;
    41494238}
    41504239
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    42584347.buddypress .buddypress-wrap input.text-button {
    42594348        background: none;
    42604349        border: 0;
     4350        -moz-box-shadow: none;
     4351        -webkit-box-shadow: none;
    42614352        box-shadow: none;
    42624353        color: #767676;
    42634354}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    43534444
    43544445.buddypress #buddypress .create-button a {
    43554446        border: 1px solid #ccc;
     4447        -webkit-border-radius: 5px;
     4448        -moz-border-radius: 5px;
     4449        -ms-border-radius: 5px;
    43564450        border-radius: 5px;
    43574451        background-clip: padding-box;
     4452        -webkit-box-shadow: inset 0 0 6px 0 #eaeaea;
     4453        -moz-box-shadow: inset 0 0 6px 0 #eaeaea;
    43584454        box-shadow: inset 0 0 6px 0 #eaeaea;
    43594455        margin: 0.2em 0;
    43604456        width: auto;
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    43634459.buddypress #buddypress .create-button a:focus, .buddypress #buddypress .create-button a:hover {
    43644460        background: none;
    43654461        border-color: #ccc;
     4462        -webkit-box-shadow: inset 0 0 12px 0 #eaeaea;
     4463        -moz-box-shadow: inset 0 0 12px 0 #eaeaea;
    43664464        box-shadow: inset 0 0 12px 0 #eaeaea;
    43674465}
    43684466
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    43844482.buddypress #buddypress.bp-dir-hori-nav .create-button a:hover {
    43854483        background: none;
    43864484        border: 0;
     4485        -moz-box-shadow: none;
     4486        -webkit-box-shadow: none;
    43874487        box-shadow: none;
    43884488        margin: 0;
    43894489}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    44844584.buddypress-wrap #group-create-body .bp-cover-image-status p.warning {
    44854585        background: #0b80a4;
    44864586        border: 0;
     4587        -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
     4588        -moz-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
    44874589        box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
    44884590        color: #fff;
    44894591}
    44904592
    44914593.buddypress-wrap .bp-feedback:not(.custom-homepage-info) {
     4594        display: -webkit-flex;
    44924595        display: -moz-flex;
    44934596        display: -ms-flex;
    44944597        display: -o-flex;
    44954598        display: flex;
     4599        -webkit-flex-flow: row nowrap;
     4600        -moz-flex-flow: row nowrap;
     4601        -ms-flex-flow: row nowrap;
    44964602        -o-flex-flow: row nowrap;
    44974603        flex-flow: row nowrap;
     4604        -ms-flex-align: stretch;
     4605        -webkit-align-items: stretch;
     4606        -webkit-box-align: stretch;
    44984607        align-items: stretch;
    44994608        align-items: center;
    45004609}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    45024611.buddypress-wrap .bp-feedback {
    45034612        background: #fff;
    45044613        color: #807f7f;
     4614        -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
     4615        -moz-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    45054616        box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    45064617        color: #737373;
    45074618        margin: 10px 0;
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    45804691.buddypress-wrap .bp-feedback.loading .bp-icon,
    45814692.buddypress-wrap .bp-feedback.success .bp-icon,
    45824693.buddypress-wrap .bp-feedback.updated .bp-icon {
     4694        display: -webkit-box;
     4695        display: -ms-flexbox;
     4696        display: -webkit-flex;
    45834697        display: flex;
     4698        -ms-flex-align: center;
     4699        -webkit-align-items: center;
     4700        -webkit-box-align: center;
    45844701        align-items: center;
    45854702        align-self: stretch;
    45864703}
    … … body.create-blog #buddypress .error,  
    47034820body.create-blog #buddypress .success {
    47044821        background: #fff;
    47054822        color: #807f7f;
     4823        -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
     4824        -moz-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    47064825        box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    47074826        color: #737373;
    47084827        padding: 10px 15px;
    … … body.create-blog #buddypress .success {  
    48224941}
    48234942
    48244943.buddypress.widget .avatar-block {
     4944        display: -webkit-flex;
    48254945        display: -moz-flex;
    48264946        display: -ms-flex;
    48274947        display: -o-flex;
    48284948        display: flex;
     4949        -webkit-flex-flow: row wrap;
     4950        -moz-flex-flow: row wrap;
     4951        -ms-flex-flow: row wrap;
    48294952        -o-flex-flow: row wrap;
    48304953        flex-flow: row wrap;
    48314954}
    … … body.create-blog #buddypress .success {  
    48724995.buddypress-wrap .buddypress.widget ul#friends-list,
    48734996.buddypress-wrap .buddypress.widget ul#groups-list,
    48744997.buddypress-wrap .buddypress.widget ul#members-list {
     4998        display: -webkit-flex;
    48754999        display: -moz-flex;
    48765000        display: -ms-flex;
    48775001        display: -o-flex;
    48785002        display: flex;
     5003        -webkit-flex-flow: column nowrap;
     5004        -moz-flex-flow: column nowrap;
     5005        -ms-flex-flow: column nowrap;
    48795006        -o-flex-flow: column nowrap;
    48805007        flex-flow: column nowrap;
    48815008}
    … … body.create-blog #buddypress .success {  
    48845011        .buddypress-wrap .buddypress.widget ul#friends-list,
    48855012        .buddypress-wrap .buddypress.widget ul#groups-list,
    48865013        .buddypress-wrap .buddypress.widget ul#members-list {
     5014                display: -webkit-flex;
    48875015                display: -moz-flex;
    48885016                display: -ms-flex;
    48895017                display: -o-flex;
    48905018                display: flex;
     5019                -webkit-flex-flow: row wrap;
     5020                -moz-flex-flow: row wrap;
     5021                -ms-flex-flow: row wrap;
    48915022                -o-flex-flow: row wrap;
    48925023                flex-flow: row wrap;
    48935024        }
    … … body.create-blog #buddypress .success {  
    48975028.buddypress-wrap .buddypress.widget ul#groups-list li,
    48985029.buddypress-wrap .buddypress.widget ul#members-list li {
    48995030        border: 1px solid #eee;
     5031        -ms-flex-align: stretch;
     5032        -webkit-align-items: stretch;
     5033        -webkit-box-align: stretch;
    49005034        align-items: stretch;
     5035        -webkit-flex: 1 1 46%;
    49015036        -moz-flex: 1 1 46%;
     5037        -ms-flex: 1 1 46%;
    49025038        -o-flex: 1 1 46%;
    49035039        flex: 1 1 46%;
    49045040        margin: 2%;
    … … body.create-blog #buddypress .success {  
    49085044        .buddypress-wrap .buddypress.widget ul#friends-list li,
    49095045        .buddypress-wrap .buddypress.widget ul#groups-list li,
    49105046        .buddypress-wrap .buddypress.widget ul#members-list li {
     5047                -webkit-flex: 0 1 20%;
    49115048                -moz-flex: 0 1 20%;
     5049                -ms-flex: 0 1 20%;
    49125050                -o-flex: 0 1 20%;
    49135051                flex: 0 1 20%;
    49145052        }
    … … body.create-blog #buddypress .success {  
    49445082        .buddypress-wrap .buddypress.widget ul#friends-list li,
    49455083        .buddypress-wrap .buddypress.widget ul#groups-list li,
    49465084        .buddypress-wrap .buddypress.widget ul#members-list li {
     5085                -webkit-flex: 0 1 auto;
    49475086                -moz-flex: 0 1 auto;
     5087                -ms-flex: 0 1 auto;
    49485088                -o-flex: 0 1 auto;
    49495089                flex: 0 1 auto;
    49505090                margin: 10px 2% 1%;
    … … body.create-blog #buddypress .success {  
    49725112
    49735113.buddypress-wrap a.loading,
    49745114.buddypress-wrap input.loading {
     5115        -moz-animation: loader-pulsate 0.5s infinite ease-in-out alternate;
     5116        -webkit-animation: loader-pulsate 0.5s infinite ease-in-out alternate;
    49755117        animation: loader-pulsate 0.5s infinite ease-in-out alternate;
    49765118        border-color: #aaa;
    49775119}
    49785120
     5121@-webkit-keyframes loader-pulsate {
     5122        from {
     5123                border-color: #aaa;
     5124                -webkit-box-shadow: 0 0 6px #ccc;
     5125                box-shadow: 0 0 6px #ccc;
     5126        }
     5127        to {
     5128                border-color: #ccc;
     5129                -webkit-box-shadow: 0 0 6px #f8f8f8;
     5130                box-shadow: 0 0 6px #f8f8f8;
     5131        }
     5132}
     5133
     5134@-moz-keyframes loader-pulsate {
     5135        from {
     5136                border-color: #aaa;
     5137                -moz-box-shadow: 0 0 6px #ccc;
     5138                box-shadow: 0 0 6px #ccc;
     5139        }
     5140        to {
     5141                border-color: #ccc;
     5142                -moz-box-shadow: 0 0 6px #f8f8f8;
     5143                box-shadow: 0 0 6px #f8f8f8;
     5144        }
     5145}
     5146
    49795147@keyframes loader-pulsate {
    49805148        from {
    49815149                border-color: #aaa;
     5150                -moz-box-shadow: 0 0 6px #ccc;
    49825151                box-shadow: 0 0 6px #ccc;
    49835152        }
    49845153        to {
    49855154                border-color: #ccc;
     5155                -moz-box-shadow: 0 0 6px #f8f8f8;
    49865156                box-shadow: 0 0 6px #f8f8f8;
    49875157        }
    49885158}
    … … body.create-blog #buddypress .success {  
    50015171        display: none;
    50025172        opacity: 0;
    50035173        position: absolute;
     5174        -webkit-transform: translate3d(0, 0, 0);
     5175        -ms-transform: translate3d(0, 0, 0);
    50045176        transform: translate3d(0, 0, 0);
    50055177        visibility: hidden;
    50065178}
    … … body.create-blog #buddypress .success {  
    50215193        pointer-events: none;
    50225194        text-shadow: none;
    50235195        text-transform: none;
     5196        -webkit-transition: all 1.5s ease;
     5197        -ms-transition: all 1.5s ease;
    50245198        transition: all 1.5s ease;
    50255199        white-space: nowrap;
    50265200        word-wrap: break-word;
    … … body.create-blog #buddypress .success {  
    50445218        right: 50%;
    50455219        margin-top: 7px;
    50465220        top: 110%;
     5221        -webkit-transform: translate(50%, 0);
     5222        -ms-transform: translate(50%, 0);
    50475223        transform: translate(50%, 0);
    50485224}
    50495225
    50505226.user-list .bp-tooltip:after {
    50515227        right: 0;
     5228        -webkit-transform: translate(0, 0);
     5229        -ms-transform: translate(0, 0);
    50525230        transform: translate(0, 0);
    50535231}
    50545232
    … … body.create-blog #buddypress .success {  
    50565234        .user-list .bp-tooltip:after {
    50575235                right: auto;
    50585236                left: 0;
     5237                -webkit-transform: translate(0, 0);
     5238                -ms-transform: translate(0, 0);
    50595239                transform: translate(0, 0);
    50605240        }
    50615241}
    … … body.create-blog #buddypress .success {  
    50665246.notification-actions .bp-tooltip:after,
    50675247.participants-list .bp-tooltip:after {
    50685248        right: 0;
     5249        -webkit-transform: translate(0, 0);
     5250        -ms-transform: translate(0, 0);
    50695251        transform: translate(0, 0);
    50705252}
    50715253
    … … body.create-blog #buddypress .success {  
    50745256.single-message-thread-header .actions .bp-tooltip:after {
    50755257        right: auto;
    50765258        left: 0;
     5259        -webkit-transform: translate(0, 0);
     5260        -ms-transform: translate(0, 0);
    50775261        transform: translate(0, 0);
    50785262}
    50795263
    … … body.create-blog #buddypress .success {  
    50895273*/
    50905274#item-body,
    50915275.single-screen-navs {
     5276        -webkit-box-sizing: border-box;
     5277        -moz-box-sizing: border-box;
    50925278        box-sizing: border-box;
    50935279}
    50945280
    50955281.grid > li,
    50965282.grid > li .generic-button a {
     5283        -webkit-box-sizing: border-box;
     5284        -moz-box-sizing: border-box;
    50975285        box-sizing: border-box;
    50985286}
    50995287
  • src/bp-templates/bp-nouveau/css/buddypress.css

    diff --git src/bp-templates/bp-nouveau/css/buddypress.css src/bp-templates/bp-nouveau/css/buddypress.css
    index be35e509e..64f683dd9 100644
    body #buddypress select,  
    6969body #buddypress input[type="search"],
    7070body #buddypress input[type="submit"],
    7171body #buddypress input[type="reset"] {
     72        -webkit-border-radius: 2px;
     73        -moz-border-radius: 2px;
     74        -ms-border-radius: 2px;
    7275        border-radius: 2px;
    7376        background-clip: padding-box;
    7477}
    … … body #buddypress .bp-lists blockquote {  
    7982}
    8083
    8184body #buddypress .bp-list .action {
     85        -webkit-box-sizing: border-box;
     86        -moz-box-sizing: border-box;
    8287        box-sizing: border-box;
    8388}
    8489
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    375380        .buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links) {
    376381                border-bottom: 1px solid #eee;
    377382                border-top: 1px solid #eee;
     383                -webkit-box-shadow: 0 2px 12px 0 #fafafa;
     384                -moz-box-shadow: 0 2px 12px 0 #fafafa;
    378385                box-shadow: 0 2px 12px 0 #fafafa;
    379386        }
    380387}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    868875}
    869876
    870877.bp-list {
     878        -webkit-box-sizing: border-box;
     879        -moz-box-sizing: border-box;
    871880        box-sizing: border-box;
    872881        border-top: 1px solid #eaeaea;
    873882        clear: both;
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    10181027.activity-list.bp-list .activity-item {
    10191028        background: #fff;
    10201029        border: 1px solid #b7b7b7;
     1030        -webkit-box-shadow: 0 0 6px #d2d2d2;
     1031        -moz-box-shadow: 0 0 6px #d2d2d2;
    10211032        box-shadow: 0 0 6px #d2d2d2;
    10221033        margin: 20px 0;
    10231034}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    10381049@media screen and (min-width: 46.8em) {
    10391050        .friends-request-list li,
    10401051        .membership-requests-list li {
     1052                display: -webkit-flex;
    10411053                display: -moz-flex;
    10421054                display: -ms-flex;
    10431055                display: -o-flex;
    10441056                display: flex;
     1057                -webkit-flex-flow: row nowrap;
     1058                -moz-flex-flow: row nowrap;
     1059                -ms-flex-flow: row nowrap;
    10451060                -o-flex-flow: row nowrap;
    10461061                flex-flow: row nowrap;
    10471062        }
    10481063        .friends-request-list li .item,
    10491064        .membership-requests-list li .item {
     1065                -webkit-flex: 1 1 auto;
    10501066                -moz-flex: 1 1 auto;
     1067                -ms-flex: 1 1 auto;
    10511068                -o-flex: 1 1 auto;
    10521069                flex: 1 1 auto;
    10531070        }
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11031120
    11041121.activity-update-form {
    11051122        border: 1px solid #ccc;
     1123        -webkit-box-shadow: inset 0 0 6px #eee;
     1124        -moz-box-shadow: inset 0 0 6px #eee;
    11061125        box-shadow: inset 0 0 6px #eee;
    11071126        margin: 15px 0;
    11081127}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11251144
    11261145.activity-update-form #whats-new-textarea textarea {
    11271146        background: #fff;
     1147        -webkit-box-sizing: border-box;
     1148        -moz-box-sizing: border-box;
    11281149        box-sizing: border-box;
    11291150        color: #333;
    11301151        font-family: inherit;
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11361157}
    11371158
    11381159.activity-update-form #whats-new-textarea textarea:focus {
     1160        -webkit-box-shadow: 0 0 6px 0 #d6d6d6;
     1161        -moz-box-shadow: 0 0 6px 0 #d6d6d6;
    11391162        box-shadow: 0 0 6px 0 #d6d6d6;
    11401163}
    11411164
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    11641187}
    11651188
    11661189.activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object {
     1190        display: -webkit-box;
     1191        display: -ms-flexbox;
     1192        display: -webkit-flex;
    11671193        display: flex;
     1194        -ms-flex-align: center;
     1195        -webkit-align-items: center;
     1196        -webkit-box-align: center;
    11681197        align-items: center;
    11691198        padding: 0.2em;
    11701199}
    … … body.buddypress article.page > .entry-header:not(.alignwide):not(.alignfull) .en  
    15121541.buddypress-wrap .activity-list .load-newest:focus,
    15131542.buddypress-wrap .activity-list .load-newest:hover {
    15141543        border-color: #e1e1e1;
     1544        -webkit-box-shadow: 0 0 6px 0 #eaeaea;
     1545        -moz-box-shadow: 0 0 6px 0 #eaeaea;
    15151546        box-shadow: 0 0 6px 0 #eaeaea;
    15161547}
    15171548
    … … body.activity-permalink .activity-list .activity-comments {  
    15771608                top: -20px;
    15781609        }
    15791610        body.activity-permalink .activity-list .activity-avatar img {
     1611                -webkit-box-shadow: 0 0 0 8px #fff;
    15801612                box-shadow: 0 0 0 8px #fff;
    15811613        }
    15821614        body.activity-permalink .activity-list .activity-content {
    … … body.activity-permalink .activity-list .activity-comments {  
    15971629.bp-member-preview-cover img,
    15981630.bp-group-preview-cover img {
    15991631        background: #c5c5c5;
    1600         -o-object-fit: cover;
    16011632        object-fit: cover;
    16021633        border: 0;
    16031634        display: block;
    … … form.ac-form .ac-reply-content .ac-textarea textarea {  
    18451876}
    18461877
    18471878form.ac-form .ac-reply-content .ac-textarea textarea:focus {
     1879        -webkit-box-shadow: 0 0 6px #d6d6d6;
     1880        -moz-box-shadow: 0 0 6px #d6d6d6;
    18481881        box-shadow: 0 0 6px #d6d6d6;
    18491882}
    18501883
    … … form.ac-form .ac-reply-content input {  
    19081941
    19091942.buddypress-wrap .groups-list li .group-desc {
    19101943        border: 1px solid #eaeaea;
     1944        -webkit-border-radius: 10px;
     1945        -moz-border-radius: 10px;
     1946        -ms-border-radius: 10px;
    19111947        border-radius: 10px;
    19121948        background-clip: padding-box;
    19131949        font-size: 13px;
    … … form.ac-form .ac-reply-content input {  
    19832019
    19842020.buddypress-wrap .members-list li .user-update {
    19852021        border: 1px solid #eaeaea;
     2022        -webkit-border-radius: 10px;
     2023        -moz-border-radius: 10px;
     2024        -ms-border-radius: 10px;
    19862025        border-radius: 10px;
    19872026        background-clip: padding-box;
    19882027        color: #737373;
    … … form.ac-form .ac-reply-content input {  
    20322071*-------------------------------------------------------------------------------
    20332072*/
    20342073.register-page .register-section {
     2074        -webkit-box-sizing: border-box;
     2075        -moz-box-sizing: border-box;
    20352076        box-sizing: border-box;
    20362077}
    20372078
    … … body.no-js .single-item-header .js-self-profile-button {  
    24412482}
    24422483
    24432484.groups-header .moderators-lists img.avatar {
     2485        -moz-box-shadow: none;
     2486        -webkit-box-shadow: none;
    24442487        box-shadow: none;
    24452488        float: none;
    24462489        height: 30px;
    … … body.no-js .single-item-header .js-self-profile-button {  
    24782521
    24792522.groups-header .desc-wrap .group-description {
    24802523        background: #fafafa;
     2524        -webkit-box-shadow: inset 0 0 9px #ccc;
     2525        -moz-box-shadow: inset 0 0 9px #ccc;
    24812526        box-shadow: inset 0 0 9px #ccc;
    24822527        padding: 1em;
    24832528        text-align: left;
    … … body.buddypress.bp-user .buddypress-wrap .member-header-actions * > * {  
    27562801}
    27572802
    27582803.buddypress .bp-invites-content ul.item-list li.selected {
     2804        -webkit-box-shadow: inset 0 0 12px 0 rgba(237, 187, 52, 0.2);
     2805        -moz-box-shadow: inset 0 0 12px 0 rgba(237, 187, 52, 0.2);
    27592806        box-shadow: inset 0 0 12px 0 rgba(237, 187, 52, 0.2);
    27602807}
    27612808
    … … body.buddypress.bp-user .buddypress-wrap .member-header-actions * > * {  
    28272874
    28282875@media screen and (min-width: 46.8em) {
    28292876        .buddypress .bp-invites-content ul.item-list > li {
     2877                -webkit-box-sizing: border-box;
     2878                -moz-box-sizing: border-box;
    28302879                box-sizing: border-box;
    28312880                border: 1px solid #eaeaea;
    28322881                float: left;
    … … body.buddypress.bp-user .buddypress-wrap .member-header-actions * > * {  
    28482897
    28492898@media screen and (min-width: 46.8em) {
    28502899        :not(.vertical) + .item-body #group-invites-container {
     2900                display: -ms-grid;
    28512901                display: grid;
     2902                -ms-grid-columns: 25% auto;
    28522903                grid-template-columns: 25% auto;
    28532904                grid-template-areas: "group-invites-nav group-invites-column";
    28542905        }
    … … body.register .buddypress-wrap .page ul {  
    30713122.message-action-star:before,
    30723123.message-action-unstar:before,
    30733124.message-action-view:before,
    3074 .message-action-delete:before {
     3125.message-action-delete:before,
     3126.message-action-quit:before {
    30753127        font-family: dashicons;
    30763128        font-size: 18px;
    30773129}
    … … body.register .buddypress-wrap .page ul {  
    30943146        content: "\f153";
    30953147}
    30963148
     3149.message-action-quit:before {
     3150        content: "\f14a";
     3151}
     3152
    30973153.message-action-delete:hover:before {
    30983154        color: #a00;
    30993155}
    … … body.register .buddypress-wrap .page ul {  
    31073163}
    31083164
    31093165.bp-messages-content .avatar {
     3166        -moz-box-shadow: none;
     3167        -webkit-box-shadow: none;
    31103168        box-shadow: none;
    31113169}
    31123170
    … … body.register .buddypress-wrap .page ul {  
    31373195
    31383196#message-threads li {
    31393197        border-bottom: 1px solid #eaeaea;
     3198        display: -webkit-flex;
    31403199        display: -moz-flex;
    31413200        display: -ms-flex;
    31423201        display: -o-flex;
    31433202        display: flex;
     3203        -webkit-flex-flow: row nowrap;
     3204        -moz-flex-flow: row nowrap;
     3205        -ms-flex-flow: row nowrap;
    31443206        -o-flex-flow: row nowrap;
    31453207        flex-flow: row nowrap;
    31463208        margin: 0;
    … … body.register .buddypress-wrap .page ul {  
    31493211}
    31503212
    31513213#message-threads li .thread-cb {
     3214        display: -webkit-box;
     3215        display: -ms-flexbox;
     3216        display: -webkit-flex;
    31523217        display: flex;
     3218        -ms-flex-align: center;
     3219        -webkit-align-items: center;
     3220        -webkit-box-align: center;
    31533221        align-items: center;
     3222        -webkit-flex: 1 2 5%;
    31543223        -moz-flex: 1 2 5%;
     3224        -ms-flex: 1 2 5%;
    31553225        -o-flex: 1 2 5%;
    31563226        flex: 1 2 5%;
    31573227}
    31583228
    31593229#message-threads li .thread-from,
    31603230#message-threads li .thread-to {
     3231        -webkit-flex: 1 2 20%;
    31613232        -moz-flex: 1 2 20%;
     3233        -ms-flex: 1 2 20%;
    31623234        -o-flex: 1 2 20%;
    31633235        flex: 1 2 20%;
    31643236}
    … … body.register .buddypress-wrap .page ul {  
    31843256}
    31853257
    31863258#message-threads li .thread-content {
     3259        -webkit-flex: 1 2 60%;
    31873260        -moz-flex: 1 2 60%;
     3261        -ms-flex: 1 2 60%;
    31883262        -o-flex: 1 2 60%;
    31893263        flex: 1 2 60%;
    31903264}
    31913265
    31923266#message-threads li .thread-date {
     3267        -webkit-flex: 1 2 15%;
    31933268        -moz-flex: 1 2 15%;
     3269        -ms-flex: 1 2 15%;
    31943270        -o-flex: 1 2 15%;
    31953271        flex: 1 2 15%;
    31963272}
    … … body.register .buddypress-wrap .page ul {  
    32923368
    32933369.bp-messages-content #bp-message-thread-list .message-metadata {
    32943370        border-bottom: 1px solid #ccc;
     3371        -webkit-box-shadow: -2px 1px 9px 0 #eee;
     3372        -moz-box-shadow: -2px 1px 9px 0 #eee;
    32953373        box-shadow: -2px 1px 9px 0 #eee;
    32963374        display: table;
    32973375        padding: 0.2em;
    … … body.buddypress.settings.data #buddypress.buddypress-wrap .item-body p a {  
    35353613.buddypress-wrap input[type="url"]:focus,
    35363614.buddypress-wrap input[type="tel"]:focus,
    35373615.buddypress-wrap input[type="password"]:focus {
     3616        -webkit-box-shadow: 0 0 8px #eaeaea;
     3617        -moz-box-shadow: 0 0 8px #eaeaea;
    35383618        box-shadow: 0 0 8px #eaeaea;
    35393619}
    35403620
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    37743854}
    37753855
    37763856.buddypress-wrap .select-wrap select {
     3857        -moz-appearance: none;
    37773858        -webkit-appearance: none;
    37783859        -o-appearance: none;
    37793860        appearance: none;
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    38683949.buddypress-wrap form#group-members-search button[type="submit"] {
    38693950        background: none;
    38703951        border: 0;
     3952        -webkit-border-radius: 0;
     3953        -moz-border-radius: 0;
     3954        -ms-border-radius: 0;
    38713955        border-radius: 0;
    38723956        background-clip: padding-box;
    38733957}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    41444228}
    41454229
    41464230.center-vert {
     4231        display: -ms-flexbox;
     4232        display: -webkit-flex;
    41474233        display: flex;
     4234        -ms-flex-align: center;
     4235        -webkit-align-items: center;
     4236        -webkit-box-align: center;
    41484237        align-items: center;
    41494238}
    41504239
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    42584347.buddypress .buddypress-wrap input.text-button {
    42594348        background: none;
    42604349        border: 0;
     4350        -moz-box-shadow: none;
     4351        -webkit-box-shadow: none;
    42614352        box-shadow: none;
    42624353        color: #767676;
    42634354}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    43534444
    43544445.buddypress #buddypress .create-button a {
    43554446        border: 1px solid #ccc;
     4447        -webkit-border-radius: 5px;
     4448        -moz-border-radius: 5px;
     4449        -ms-border-radius: 5px;
    43564450        border-radius: 5px;
    43574451        background-clip: padding-box;
     4452        -webkit-box-shadow: inset 0 0 6px 0 #eaeaea;
     4453        -moz-box-shadow: inset 0 0 6px 0 #eaeaea;
    43584454        box-shadow: inset 0 0 6px 0 #eaeaea;
    43594455        margin: 0.2em 0;
    43604456        width: auto;
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    43634459.buddypress #buddypress .create-button a:focus, .buddypress #buddypress .create-button a:hover {
    43644460        background: none;
    43654461        border-color: #ccc;
     4462        -webkit-box-shadow: inset 0 0 12px 0 #eaeaea;
     4463        -moz-box-shadow: inset 0 0 12px 0 #eaeaea;
    43664464        box-shadow: inset 0 0 12px 0 #eaeaea;
    43674465}
    43684466
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    43844482.buddypress #buddypress.bp-dir-hori-nav .create-button a:hover {
    43854483        background: none;
    43864484        border: 0;
     4485        -moz-box-shadow: none;
     4486        -webkit-box-shadow: none;
    43874487        box-shadow: none;
    43884488        margin: 0;
    43894489}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    44844584.buddypress-wrap #group-create-body .bp-cover-image-status p.warning {
    44854585        background: #0b80a4;
    44864586        border: 0;
     4587        -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
     4588        -moz-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
    44874589        box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
    44884590        color: #fff;
    44894591}
    44904592
    44914593.buddypress-wrap .bp-feedback:not(.custom-homepage-info) {
     4594        display: -webkit-flex;
    44924595        display: -moz-flex;
    44934596        display: -ms-flex;
    44944597        display: -o-flex;
    44954598        display: flex;
     4599        -webkit-flex-flow: row nowrap;
     4600        -moz-flex-flow: row nowrap;
     4601        -ms-flex-flow: row nowrap;
    44964602        -o-flex-flow: row nowrap;
    44974603        flex-flow: row nowrap;
     4604        -ms-flex-align: stretch;
     4605        -webkit-align-items: stretch;
     4606        -webkit-box-align: stretch;
    44984607        align-items: stretch;
    44994608        align-items: center;
    45004609}
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    45024611.buddypress-wrap .bp-feedback {
    45034612        background: #fff;
    45044613        color: #807f7f;
     4614        -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
     4615        -moz-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    45054616        box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    45064617        color: #737373;
    45074618        margin: 10px 0;
    … … body.no-js .buddypress #messages-bulk-management #select-all-messages {  
    45804691.buddypress-wrap .bp-feedback.loading .bp-icon,
    45814692.buddypress-wrap .bp-feedback.success .bp-icon,
    45824693.buddypress-wrap .bp-feedback.updated .bp-icon {
     4694        display: -webkit-box;
     4695        display: -ms-flexbox;
     4696        display: -webkit-flex;
    45834697        display: flex;
     4698        -ms-flex-align: center;
     4699        -webkit-align-items: center;
     4700        -webkit-box-align: center;
    45844701        align-items: center;
    45854702        align-self: stretch;
    45864703}
    … … body.create-blog #buddypress .error,  
    47034820body.create-blog #buddypress .success {
    47044821        background: #fff;
    47054822        color: #807f7f;
     4823        -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
     4824        -moz-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    47064825        box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
    47074826        color: #737373;
    47084827        padding: 10px 15px;
    … … body.create-blog #buddypress .success {  
    48224941}
    48234942
    48244943.buddypress.widget .avatar-block {
     4944        display: -webkit-flex;
    48254945        display: -moz-flex;
    48264946        display: -ms-flex;
    48274947        display: -o-flex;
    48284948        display: flex;
     4949        -webkit-flex-flow: row wrap;
     4950        -moz-flex-flow: row wrap;
     4951        -ms-flex-flow: row wrap;
    48294952        -o-flex-flow: row wrap;
    48304953        flex-flow: row wrap;
    48314954}
    … … body.create-blog #buddypress .success {  
    48724995.buddypress-wrap .buddypress.widget ul#friends-list,
    48734996.buddypress-wrap .buddypress.widget ul#groups-list,
    48744997.buddypress-wrap .buddypress.widget ul#members-list {
     4998        display: -webkit-flex;
    48754999        display: -moz-flex;
    48765000        display: -ms-flex;
    48775001        display: -o-flex;
    48785002        display: flex;
     5003        -webkit-flex-flow: column nowrap;
     5004        -moz-flex-flow: column nowrap;
     5005        -ms-flex-flow: column nowrap;
    48795006        -o-flex-flow: column nowrap;
    48805007        flex-flow: column nowrap;
    48815008}
    … … body.create-blog #buddypress .success {  
    48845011        .buddypress-wrap .buddypress.widget ul#friends-list,
    48855012        .buddypress-wrap .buddypress.widget ul#groups-list,
    48865013        .buddypress-wrap .buddypress.widget ul#members-list {
     5014                display: -webkit-flex;
    48875015                display: -moz-flex;
    48885016                display: -ms-flex;
    48895017                display: -o-flex;
    48905018                display: flex;
     5019                -webkit-flex-flow: row wrap;
     5020                -moz-flex-flow: row wrap;
     5021                -ms-flex-flow: row wrap;
    48915022                -o-flex-flow: row wrap;
    48925023                flex-flow: row wrap;
    48935024        }
    … … body.create-blog #buddypress .success {  
    48975028.buddypress-wrap .buddypress.widget ul#groups-list li,
    48985029.buddypress-wrap .buddypress.widget ul#members-list li {
    48995030        border: 1px solid #eee;
     5031        -ms-flex-align: stretch;
     5032        -webkit-align-items: stretch;
     5033        -webkit-box-align: stretch;
    49005034        align-items: stretch;
     5035        -webkit-flex: 1 1 46%;
    49015036        -moz-flex: 1 1 46%;
     5037        -ms-flex: 1 1 46%;
    49025038        -o-flex: 1 1 46%;
    49035039        flex: 1 1 46%;
    49045040        margin: 2%;
    … … body.create-blog #buddypress .success {  
    49085044        .buddypress-wrap .buddypress.widget ul#friends-list li,
    49095045        .buddypress-wrap .buddypress.widget ul#groups-list li,
    49105046        .buddypress-wrap .buddypress.widget ul#members-list li {
     5047                -webkit-flex: 0 1 20%;
    49115048                -moz-flex: 0 1 20%;
     5049                -ms-flex: 0 1 20%;
    49125050                -o-flex: 0 1 20%;
    49135051                flex: 0 1 20%;
    49145052        }
    … … body.create-blog #buddypress .success {  
    49445082        .buddypress-wrap .buddypress.widget ul#friends-list li,
    49455083        .buddypress-wrap .buddypress.widget ul#groups-list li,
    49465084        .buddypress-wrap .buddypress.widget ul#members-list li {
     5085                -webkit-flex: 0 1 auto;
    49475086                -moz-flex: 0 1 auto;
     5087                -ms-flex: 0 1 auto;
    49485088                -o-flex: 0 1 auto;
    49495089                flex: 0 1 auto;
    49505090                margin: 10px 2% 1%;
    … … body.create-blog #buddypress .success {  
    49725112
    49735113.buddypress-wrap a.loading,
    49745114.buddypress-wrap input.loading {
     5115        -moz-animation: loader-pulsate 0.5s infinite ease-in-out alternate;
     5116        -webkit-animation: loader-pulsate 0.5s infinite ease-in-out alternate;
    49755117        animation: loader-pulsate 0.5s infinite ease-in-out alternate;
    49765118        border-color: #aaa;
    49775119}
    49785120
     5121@-webkit-keyframes loader-pulsate {
     5122        from {
     5123                border-color: #aaa;
     5124                -webkit-box-shadow: 0 0 6px #ccc;
     5125                box-shadow: 0 0 6px #ccc;
     5126        }
     5127        to {
     5128                border-color: #ccc;
     5129                -webkit-box-shadow: 0 0 6px #f8f8f8;
     5130                box-shadow: 0 0 6px #f8f8f8;
     5131        }
     5132}
     5133
     5134@-moz-keyframes loader-pulsate {
     5135        from {
     5136                border-color: #aaa;
     5137                -moz-box-shadow: 0 0 6px #ccc;
     5138                box-shadow: 0 0 6px #ccc;
     5139        }
     5140        to {
     5141                border-color: #ccc;
     5142                -moz-box-shadow: 0 0 6px #f8f8f8;
     5143                box-shadow: 0 0 6px #f8f8f8;
     5144        }
     5145}
     5146
    49795147@keyframes loader-pulsate {
    49805148        from {
    49815149                border-color: #aaa;
     5150                -moz-box-shadow: 0 0 6px #ccc;
    49825151                box-shadow: 0 0 6px #ccc;
    49835152        }
    49845153        to {
    49855154                border-color: #ccc;
     5155                -moz-box-shadow: 0 0 6px #f8f8f8;
    49865156                box-shadow: 0 0 6px #f8f8f8;
    49875157        }
    49885158}
    … … body.create-blog #buddypress .success {  
    50015171        display: none;
    50025172        opacity: 0;
    50035173        position: absolute;
     5174        -webkit-transform: translate3d(0, 0, 0);
     5175        -ms-transform: translate3d(0, 0, 0);
    50045176        transform: translate3d(0, 0, 0);
    50055177        visibility: hidden;
    50065178}
    … … body.create-blog #buddypress .success {  
    50215193        pointer-events: none;
    50225194        text-shadow: none;
    50235195        text-transform: none;
     5196        -webkit-transition: all 1.5s ease;
     5197        -ms-transition: all 1.5s ease;
    50245198        transition: all 1.5s ease;
    50255199        white-space: nowrap;
    50265200        word-wrap: break-word;
    … … body.create-blog #buddypress .success {  
    50445218        left: 50%;
    50455219        margin-top: 7px;
    50465220        top: 110%;
     5221        -webkit-transform: translate(-50%, 0);
     5222        -ms-transform: translate(-50%, 0);
    50475223        transform: translate(-50%, 0);
    50485224}
    50495225
    50505226.user-list .bp-tooltip:after {
    50515227        left: 0;
     5228        -webkit-transform: translate(0, 0);
     5229        -ms-transform: translate(0, 0);
    50525230        transform: translate(0, 0);
    50535231}
    50545232
    … … body.create-blog #buddypress .success {  
    50565234        .user-list .bp-tooltip:after {
    50575235                left: auto;
    50585236                right: 0;
     5237                -webkit-transform: translate(0, 0);
     5238                -ms-transform: translate(0, 0);
    50595239                transform: translate(0, 0);
    50605240        }
    50615241}
    … … body.create-blog #buddypress .success {  
    50665246.notification-actions .bp-tooltip:after,
    50675247.participants-list .bp-tooltip:after {
    50685248        left: 0;
     5249        -webkit-transform: translate(0, 0);
     5250        -ms-transform: translate(0, 0);
    50695251        transform: translate(0, 0);
    50705252}
    50715253
    … … body.create-blog #buddypress .success {  
    50745256.single-message-thread-header .actions .bp-tooltip:after {
    50755257        left: auto;
    50765258        right: 0;
     5259        -webkit-transform: translate(0, 0);
     5260        -ms-transform: translate(0, 0);
    50775261        transform: translate(0, 0);
    50785262}
    50795263
    … … body.create-blog #buddypress .success {  
    50895273*/
    50905274#item-body,
    50915275.single-screen-navs {
     5276        -webkit-box-sizing: border-box;
     5277        -moz-box-sizing: border-box;
    50925278        box-sizing: border-box;
    50935279}
    50945280
    50955281.grid > li,
    50965282.grid > li .generic-button a {
     5283        -webkit-box-sizing: border-box;
     5284        -moz-box-sizing: border-box;
    50975285        box-sizing: border-box;
    50985286}
    50995287
  • src/bp-templates/bp-nouveau/css/twentytwentyone-rtl.css

    diff --git src/bp-templates/bp-nouveau/css/twentytwentyone-rtl.css src/bp-templates/bp-nouveau/css/twentytwentyone-rtl.css
    index d3d05a346..e8542dc8d 100644
    body.activity-permalink #buddypress.twentytwentyone .activity-list .activity-ava  
    906906        background: none;
    907907}
    908908
    909 #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:before {
     909#buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:before, #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-quit:before {
    910910        width: 32px;
    911911        height: 32px;
    912912        color: var(--global--color-primary);
    913913        background: var(--global--color-background);
    914914}
    915915
    916 #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:hover:before {
     916#buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:hover:before, #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-quit:hover:before {
    917917        border-radius: 50%;
    918918        color: var(--global--color-background);
    919919        background: var(--global--color-primary);
  • src/bp-templates/bp-nouveau/css/twentytwentyone.css

    diff --git src/bp-templates/bp-nouveau/css/twentytwentyone.css src/bp-templates/bp-nouveau/css/twentytwentyone.css
    index a8837db02..ccc352cad 100644
    body.activity-permalink #buddypress.twentytwentyone .activity-list .activity-ava  
    906906        background: none;
    907907}
    908908
    909 #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:before {
     909#buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:before, #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-quit:before {
    910910        width: 32px;
    911911        height: 32px;
    912912        color: var(--global--color-primary);
    913913        background: var(--global--color-background);
    914914}
    915915
    916 #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:hover:before {
     916#buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-delete:hover:before, #buddypress.twentytwentyone .bp-messages-content .actions button.bp-tooltip.message-action-quit:hover:before {
    917917        border-radius: 50%;
    918918        color: var(--global--color-background);
    919919        background: var(--global--color-primary);
  • src/bp-templates/bp-nouveau/includes/messages/ajax.php

    diff --git src/bp-templates/bp-nouveau/includes/messages/ajax.php src/bp-templates/bp-nouveau/includes/messages/ajax.php
    index 1ab7b4259..47dfccadc 100644
    add_action( 'admin_init', function() {  
    1717                array( 'messages_thread_read'              => array( 'function' => 'bp_nouveau_ajax_messages_thread_read', 'nopriv' => false ) ),
    1818                array( 'messages_get_thread_messages'      => array( 'function' => 'bp_nouveau_ajax_get_thread_messages', 'nopriv' => false ) ),
    1919                array( 'messages_delete'                   => array( 'function' => 'bp_nouveau_ajax_delete_thread_messages', 'nopriv' => false ) ),
     20                array( 'messages_quit'                   => array( 'function' => 'bp_nouveau_ajax_quit_thread_messages', 'nopriv' => false ) ),
    2021                array( 'messages_unstar'                   => array( 'function' => 'bp_nouveau_ajax_star_thread_messages', 'nopriv' => false ) ),
    2122                array( 'messages_star'                     => array( 'function' => 'bp_nouveau_ajax_star_thread_messages', 'nopriv' => false ) ),
    2223                array( 'messages_unread'                   => array( 'function' => 'bp_nouveau_ajax_readunread_thread_messages', 'nopriv' => false ) ),
    … … function bp_nouveau_ajax_dismiss_sitewide_notice() {  
    780781                ) );
    781782        }
    782783}
     784
     785/**
     786 * @since 10.0.0
     787 */
     788function bp_nouveau_ajax_quit_thread_messages() {
     789        $response = array(
     790                'feedback' => __( 'There was a problem quiting your conversation. Please try again.', 'buddypress' ),
     791                'type'     => 'error',
     792        );
     793
     794        if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'bp_nouveau_messages' ) ) {
     795                wp_send_json_error( $response );
     796        }
     797
     798        if ( empty( $_POST['id'] ) ) {
     799                wp_send_json_error( $response );
     800        }
     801
     802        $thread_ids = wp_parse_id_list( $_POST['id'] );
     803
     804        foreach ( $thread_ids as $thread_id ) {
     805                if ( ! messages_check_thread_access( $thread_id ) && ! bp_current_user_can( 'bp_moderate' ) ) {
     806                        wp_send_json_error( $response );
     807                }
     808
     809                bp_messages_quit_thread( $thread_id );
     810        }
     811
     812        wp_send_json_success( array(
     813                'feedback' => __( 'You have left the message thread.', 'buddypress' ),
     814                'type'     => 'success',
     815        ) );
     816}
     817 No newline at end of file
  • src/bp-templates/bp-nouveau/js/buddypress-messages.js

    diff --git src/bp-templates/bp-nouveau/js/buddypress-messages.js src/bp-templates/bp-nouveau/js/buddypress-messages.js
    index 73a6e0afd..db9ced0aa 100644
    window.bp = window.bp || {};  
    978978
    979979                                bp.Nouveau.Messages.displayFeedback( response.feedback, response.type );
    980980
    981                                 if ( 'delete' === action || ( 'starred' === self.collection.options.box && 'unstar' === action ) ) {
     981                                if ( 'delete' === action || 'quit' === action || ( 'starred' === self.collection.options.box && 'unstar' === action ) ) {
    982982                                        // Remove from the list of messages.
    983983                                        self.collection.remove( model.get( 'id' ) );
    984984
    … … window.bp = window.bp || {};  
    10891089
    10901090                                bp.Nouveau.Messages.displayFeedback( response.feedback, response.type );
    10911091
    1092                                 if ( 'delete' === action || ( 'starred' === self.collection.options.box && 'unstar' === action ) ) {
     1092                                if ( 'delete' === action || 'quit' === action || ( 'starred' === self.collection.options.box && 'unstar' === action ) ) {
    10931093                                        // Remove from the list of messages.
    10941094                                        self.collection.remove( thread_ids );
    10951095
    … … window.bp = window.bp || {};  
    12411241
    12421242                        bp.Nouveau.Messages.threads.doAction( action, this.model.get( 'id' ), options ).done( function( response ) {
    12431243                                // Remove all views
    1244                                 if ( 'delete' === action ) {
     1244                                if ( 'delete' === action || 'quit' === action ) {
    12451245                                        bp.Nouveau.Messages.clearViews();
    12461246                                } else if ( response.messages ) {
    12471247                                        self.model.set( _.first( response.messages ) );
  • src/bp-templates/bp-nouveau/sass/_nouveau_messages.scss

    diff --git src/bp-templates/bp-nouveau/sass/_nouveau_messages.scss src/bp-templates/bp-nouveau/sass/_nouveau_messages.scss
    index a04c262ce..e39a5dd15 100644
     
    77.message-action-star:before,
    88.message-action-unstar:before,
    99.message-action-view:before,
    10 .message-action-delete:before {
     10.message-action-delete:before,
     11.message-action-quit:before {
    1112        font-family: dashicons;
    1213        font-size: 18px;
    1314}
    … …  
    3031        content: "\f153";
    3132}
    3233
     34.message-action-quit:before {
     35        content: "\f14a";
     36}
     37
    3338.message-action-delete:hover:before {
    3439        color: #a00;
    3540}
  • src/bp-templates/bp-nouveau/sass/twentytwentyone.scss

    diff --git src/bp-templates/bp-nouveau/sass/twentytwentyone.scss src/bp-templates/bp-nouveau/sass/twentytwentyone.scss
    index 2bc6a8de3..a4ae7a33c 100644
    body {  
    12271227                                border: none;
    12281228                                background: none;
    12291229
    1230                                 &.message-action-delete {
     1230                                &.message-action-delete,
     1231                                &.message-action-quit {
    12311232
    12321233                                        &:before {
    12331234                                                width: 32px;