Skip to:
Content

BuddyPress.org

Changeset 12458


Ignore:
Timestamp:
09/16/2019 08:38:34 PM (7 years ago)
Author:
imath
Message:

Hello BuddyPress Modal for BuddyPress 5.0.0

Use the WordPress modal used to display plugin details to display information about new BuddyPress major release.

Props johnjamesjacoby, dcavins, boonebgorges

Fixes #8132

Location:
trunk/src/bp-core
Files:
4 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/admin/css/hello-rtl.css

    r12236 r12458  
    10102.0 - Dashicons
    11113.0 - Elements
    12         3.1 - Backdrop and container
    13         3.2 - Modal footer
    14         3.3 - Modal header
    15         3.4 - Modal content
     12        3.1 - Modal footer
     13        3.2 - Modal content
    16144.0 - Content styles
    17         4.1 - Backdrop and container
    18         4.2 - Footer content
    19         4.3 - Header content
    20         4.4 - Content content
     15        4.1 - Footer content
     16        4.2 - Header content
     17        4.3 - Content content
    21185.0 - Media
    22196.0 - Media Queries
     
    3330}
    3431
    35 #bp-hello-container a {
    36         color: var(--bp-hello-color-primary);
    37 }
    38 
    39 #bp-hello-container a:hover {
    40         transition: all 0.1s ease-in-out;
    41         color: black;
    42 }
    43 
    44 #bp-hello-container .bp-hello-header h1 {
    45         line-height: 1.7;
    46         font-size: 21px;
    47         font-weight: 400;
    48 }
    49 
    5032.bp-hello-content p {
    5133        font-size: 16px;
    5234}
    5335
     36.bp-hello-content ul,
     37.bp-hello-content ol {
     38        list-style: inherit;
     39}
     40
     41.bp-hello-content h3 {
     42        font-size: 1.1em;
     43        font-weight: 500;
     44}
     45
    5446/*------------------------------------------------------------------------------
    5547 * 2.0 - Dashicons
    5648 *----------------------------------------------------------------------------*/
    57 .bp-hello-close .button {
    58         padding: 5px !important;
    59 }
    60 
    61 .bp-hello-close .close-modal:before {
    62         content: "\f158";
    63         color: #23282d;
    64         /* wp toolbar */
    65         font: 400 1.5em/1 dashicons;
    66         speak: none;
    67         -webkit-font-smoothing: antialiased;
    68         -moz-osx-font-smoothing: grayscale;
    69         background-image: none !important;
    70 }
    71 
    72 .bp-hello-close .close-modal:focus:before, .bp-hello-close .close-modal:hover:before {
    73         transition: all 0.1s ease-in-out;
    74         color: var(--bp-hello-color-primary);
    75 }
    76 
    7749.bp-hello-social li a:before {
    7850        color: #23282d;
     
    9870}
    9971
     72div.dashicons {
     73        width: -webkit-fit-content;
     74        width: fit-content;
     75}
     76
     77div.dashicons.big {
     78        font-size: 128px;
     79        display: block;
     80        color: var(--bp-hello-color-primary);
     81        height: 128px;
     82        width: 128px;
     83}
     84
    10085/*------------------------------------------------------------------------------
    10186 * 3.0 - Elements
    10287 *----------------------------------------------------------------------------*/
    10388/*
    104  * 3.1 - Backdrop and container
    105  */
    106 #bp-hello-backdrop {
    107         position: fixed;
    108         top: 0;
    109         right: 0;
    110         left: 0;
    111         bottom: 0;
    112         z-index: 9998;
    113         display: none;
    114 }
    115 
    116 #bp-hello-container {
    117         position: fixed;
    118         top: 0;
    119         bottom: 80px;
    120         z-index: 99999;
    121 }
    122 
    123 .bp-disable-scroll {
    124         overflow: hidden;
    125 }
    126 
    127 /*
    128  * 3.2 - Modal footer
    129  */
    130 .bp-hello-footer {
     89 * 3.1 - Modal footer
     90 */
     91#plugin-information-footer {
    13192        display: flex;
    13293        flex-wrap: wrap;
    133         height: 58px;
    134         max-height: 58px;
     94        padding: 0 16px;
     95        height: auto;
     96}
     97
     98#plugin-information-footer .dashicons-heart {
     99        color: #be3631;
    135100}
    136101
     
    157122
    158123/*
    159  * 3.3 - Modal header
    160  */
    161 .bp-hello-header {
    162         height: 58px;
    163         max-height: 58px;
    164 }
    165 
    166 /*
    167  * 3.4 - Modal content
    168  */
     124 * 3.2 - Modal content
     125 */
     126#bp-hello-container {
     127        display: none;
     128}
     129
    169130.bp-hello-content {
    170131        padding: 0 25px;
    171         height: calc(100% - 58px);
    172         overflow-y: auto;
    173         -webkit-overflow-scrolling: touch;
     132        padding-bottom: 20px;
     133}
     134
     135#dynamic-content {
     136        padding-bottom: 40px;
     137        display: none;
     138}
     139
     140#dynamic-content.show {
     141        display: block;
     142}
     143
     144.plugin-details-modal #TB_title {
     145        /* stylelint-disable-line */
     146        height: 0;
     147        background: none;
     148        border: none;
     149}
     150
     151#TB_window.plugin-details-modal.thickbox-loading:before {
     152        /* stylelint-disable-line */
     153        z-index: 10;
     154        margin-top: 40px;
     155        background-color: none;
     156}
     157
     158.bp-hello-aligncenter * {
     159        margin: 10px auto;
     160}
     161
     162.bp-hello-alignleft {
     163        float: right;
     164}
     165
     166.bp-hello-alignleft:after {
     167        content: "";
     168        clear: right;
     169}
     170
     171.bp-hello-alignright {
     172        float: left;
     173}
     174
     175.bp-hello-alignright:after {
     176        content: "";
     177        clear: left;
     178}
     179
     180.bp-hello-divider {
     181        clear: both;
     182        border: none;
     183        margin-bottom: 20px;
    174184}
    175185
     
    178188 *----------------------------------------------------------------------------*/
    179189/*
    180  * 4.1 - Backdrop and container
    181  */
    182 #bp-hello-backdrop {
    183         background-color: rgba(0, 0, 0, 0.8);
    184         transition: opacity 0.15s ease-out;
    185 }
    186 
    187 #bp-hello-container {
    188         background-color: white;
    189 }
    190 
    191 /*
    192  * 4.2 - Footer content
    193  */
    194 .bp-hello-footer {
    195         border-radius: 0 0 3px 3px;
    196         background-color: white;
    197         border-top: 1px solid var(--bp-hello-color-secondary);
    198         padding: 6px 25px;
    199 }
    200 
    201 .bp-hello-footer p {
    202         font-size: 15px;
    203 }
    204 
     190 * 4.1 - Footer content
     191 */
    205192.bp-hello-social-cta {
    206193        text-align: right;
     
    216203
    217204/*
    218  * 4.3 - Header content
    219  */
    220 .bp-hello-header {
    221         padding: 6px 25px;
    222 }
    223 
    224 .bp-hello-header h1 {
    225         width: calc(100% - 51px);
    226 }
    227 
    228 #bp-hello-container .bp-hello-header {
    229         border-bottom: 1px solid var(--bp-hello-color-secondary);
    230 }
    231 
    232 .bp-hello-title {
    233         text-align: right;
    234 }
    235 
    236 .bp-hello-close {
    237         position: absolute;
    238         top: 20px;
    239         left: 25px;
    240         text-align: left;
    241 }
    242 
    243 /*
    244  * 4.4 - Content content
     205 * 4.2 - Header content
     206 */
     207#plugin-information-title.with-banner {
     208        background-image: url(https://ps.w.org/buddypress/assets/banner-772x250.png);
     209}
     210
     211/*
     212 * 4.3 - Content content
    245213 */
    246214.bp-hello-content {
     
    260228}
    261229
     230.bp-hello-content .bp-hello-alignleft img,
     231.bp-hello-content .bp-hello-alignright img {
     232        max-width: 200px;
     233}
     234
    262235/*------------------------------------------------------------------------------
    263236 * 6.0 - Media Queries
     
    267240 */
    268241@media only screen and (min-width: 1024px) {
    269         #bp-hello-backdrop {
    270                 display: block;
    271         }
    272         #bp-hello-container {
    273                 position: fixed;
    274                 top: 60px;
    275                 right: var(--bp-hello-container-size);
    276                 left: var(--bp-hello-container-size);
    277                 bottom: 30px;
    278                 z-index: 9999;
    279                 border-radius: 3px;
    280         }
    281         #bp-hello-container .bp-hello-header h1 {
    282                 line-height: inherit;
    283         }
    284         .bp-hello-header {
    285                 height: auto;
    286                 max-height: inherit;
    287                 padding: 6px 30px;
    288         }
    289         .bp-hello-close {
    290                 left: 30px;
    291         }
    292         .bp-hello-close .close-modal:before {
    293                 line-height: 0.7;
    294         }
    295         .bp-hello-footer {
    296                 position: fixed;
    297                 right: var(--bp-hello-container-size);
    298                 left: var(--bp-hello-container-size);
    299                 bottom: 30px;
    300                 z-index: 10000;
    301                 height: auto;
    302                 max-height: inherit;
    303                 padding: 6px 30px;
    304         }
    305242        .bp-hello-content {
    306                 height: calc(100% - 90px);
    307                 padding: 0 30px;
     243                padding: 0 30px 20px;
    308244        }
    309245        .bp-hello-content p {
     
    315251 * 6.2 - Desktop Large
    316252 */
    317 @media screen and (min-width: 1280px) {
    318         #bp-hello-container,
    319         .bp-hello-footer {
    320                 right: calc((100% - 896px) / 2);
    321                 left: calc((100% - 896px) / 2);
     253@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
     254        #plugin-information-title.with-banner {
     255                background-image: url(https://ps.w.org/buddypress/assets/banner-1544x500.png);
    322256        }
    323257}
  • trunk/src/bp-core/admin/css/hello.css

    r12297 r12458  
    10102.0 - Dashicons
    11113.0 - Elements
    12         3.1 - Backdrop and container
    13         3.2 - Modal footer
    14         3.3 - Modal header
    15         3.4 - Modal content
     12        3.1 - Modal footer
     13        3.2 - Modal content
    16144.0 - Content styles
    17         4.1 - Backdrop and container
    18         4.2 - Footer content
    19         4.3 - Header content
    20         4.4 - Content content
     15        4.1 - Footer content
     16        4.2 - Header content
     17        4.3 - Content content
    21185.0 - Media
    22196.0 - Media Queries
     
    3330}
    3431
    35 #bp-hello-container a {
    36         color: var(--bp-hello-color-primary);
    37 }
    38 
    39 #bp-hello-container a:hover {
    40         transition: all 0.1s ease-in-out;
    41         color: black;
    42 }
    43 
    44 #bp-hello-container .bp-hello-header h1 {
    45         line-height: 1.7;
    46         font-size: 21px;
    47         font-weight: 400;
    48 }
    49 
    5032.bp-hello-content p {
    5133        font-size: 16px;
    5234}
    5335
     36.bp-hello-content ul,
     37.bp-hello-content ol {
     38        list-style: inherit;
     39}
     40
     41.bp-hello-content h3 {
     42        font-size: 1.1em;
     43        font-weight: 500;
     44}
     45
    5446/*------------------------------------------------------------------------------
    5547 * 2.0 - Dashicons
    5648 *----------------------------------------------------------------------------*/
    57 .bp-hello-close .button {
    58         padding: 5px !important;
    59 }
    60 
    61 .bp-hello-close .close-modal:before {
    62         content: "\f158";
    63         color: #23282d;
    64         /* wp toolbar */
    65         font: 400 1.5em/1 dashicons;
    66         speak: none;
    67         -webkit-font-smoothing: antialiased;
    68         -moz-osx-font-smoothing: grayscale;
    69         background-image: none !important;
    70 }
    71 
    72 .bp-hello-close .close-modal:focus:before, .bp-hello-close .close-modal:hover:before {
    73         transition: all 0.1s ease-in-out;
    74         color: var(--bp-hello-color-primary);
    75 }
    76 
    7749.bp-hello-social li a:before {
    7850        color: #23282d;
     
    9870}
    9971
     72div.dashicons {
     73        width: -webkit-fit-content;
     74        width: fit-content;
     75}
     76
     77div.dashicons.big {
     78        font-size: 128px;
     79        display: block;
     80        color: var(--bp-hello-color-primary);
     81        height: 128px;
     82        width: 128px;
     83}
     84
    10085/*------------------------------------------------------------------------------
    10186 * 3.0 - Elements
    10287 *----------------------------------------------------------------------------*/
    10388/*
    104  * 3.1 - Backdrop and container
    105  */
    106 #bp-hello-backdrop {
    107         position: fixed;
    108         top: 0;
    109         left: 0;
    110         right: 0;
    111         bottom: 0;
    112         z-index: 9998;
    113         display: none;
    114 }
    115 
    116 #bp-hello-container {
    117         position: fixed;
    118         top: 0;
    119         bottom: 80px;
    120         z-index: 99999;
    121 }
    122 
    123 .bp-disable-scroll {
    124         overflow: hidden;
    125 }
    126 
    127 /*
    128  * 3.2 - Modal footer
    129  */
    130 .bp-hello-footer {
     89 * 3.1 - Modal footer
     90 */
     91#plugin-information-footer {
    13192        display: flex;
    13293        flex-wrap: wrap;
    133         height: 58px;
    134         max-height: 58px;
     94        padding: 0 16px;
     95        height: auto;
     96}
     97
     98#plugin-information-footer .dashicons-heart {
     99        color: #be3631;
    135100}
    136101
     
    157122
    158123/*
    159  * 3.3 - Modal header
    160  */
    161 .bp-hello-header {
    162         height: 58px;
    163         max-height: 58px;
    164 }
    165 
    166 /*
    167  * 3.4 - Modal content
    168  */
     124 * 3.2 - Modal content
     125 */
     126#bp-hello-container {
     127        display: none;
     128}
     129
    169130.bp-hello-content {
    170131        padding: 0 25px;
    171         height: calc(100% - 58px);
    172         overflow-y: auto;
    173         -webkit-overflow-scrolling: touch;
     132        padding-bottom: 20px;
     133}
     134
     135#dynamic-content {
     136        padding-bottom: 40px;
     137        display: none;
     138}
     139
     140#dynamic-content.show {
     141        display: block;
     142}
     143
     144.plugin-details-modal #TB_title {
     145        /* stylelint-disable-line */
     146        height: 0;
     147        background: none;
     148        border: none;
     149}
     150
     151#TB_window.plugin-details-modal.thickbox-loading:before {
     152        /* stylelint-disable-line */
     153        z-index: 10;
     154        margin-top: 40px;
     155        background-color: none;
     156}
     157
     158.bp-hello-aligncenter * {
     159        margin: 10px auto;
     160}
     161
     162.bp-hello-alignleft {
     163        float: left;
     164}
     165
     166.bp-hello-alignleft:after {
     167        content: "";
     168        clear: left;
     169}
     170
     171.bp-hello-alignright {
     172        float: right;
     173}
     174
     175.bp-hello-alignright:after {
     176        content: "";
     177        clear: right;
     178}
     179
     180.bp-hello-divider {
     181        clear: both;
     182        border: none;
     183        margin-bottom: 20px;
    174184}
    175185
     
    178188 *----------------------------------------------------------------------------*/
    179189/*
    180  * 4.1 - Backdrop and container
    181  */
    182 #bp-hello-backdrop {
    183         background-color: rgba(0, 0, 0, 0.8);
    184         transition: opacity 0.15s ease-out;
    185 }
    186 
    187 #bp-hello-container {
    188         background-color: white;
    189 }
    190 
    191 /*
    192  * 4.2 - Footer content
    193  */
    194 .bp-hello-footer {
    195         border-radius: 0 0 3px 3px;
    196         background-color: white;
    197         border-top: 1px solid var(--bp-hello-color-secondary);
    198         padding: 6px 25px;
    199 }
    200 
    201 .bp-hello-footer p {
    202         font-size: 15px;
    203 }
    204 
     190 * 4.1 - Footer content
     191 */
    205192.bp-hello-social-cta {
    206193        text-align: left;
     
    216203
    217204/*
    218  * 4.3 - Header content
    219  */
    220 .bp-hello-header {
    221         padding: 6px 25px;
    222 }
    223 
    224 .bp-hello-header h1 {
    225         width: calc(100% - 51px);
    226 }
    227 
    228 #bp-hello-container .bp-hello-header {
    229         border-bottom: 1px solid var(--bp-hello-color-secondary);
    230 }
    231 
    232 .bp-hello-title {
    233         text-align: left;
    234 }
    235 
    236 .bp-hello-close {
    237         position: absolute;
    238         top: 20px;
    239         right: 25px;
    240         text-align: right;
    241 }
    242 
    243 /*
    244  * 4.4 - Content content
     205 * 4.2 - Header content
     206 */
     207#plugin-information-title.with-banner {
     208        background-image: url(https://ps.w.org/buddypress/assets/banner-772x250.png);
     209}
     210
     211/*
     212 * 4.3 - Content content
    245213 */
    246214.bp-hello-content {
     
    260228}
    261229
     230.bp-hello-content .bp-hello-alignleft img,
     231.bp-hello-content .bp-hello-alignright img {
     232        max-width: 200px;
     233}
     234
    262235/*------------------------------------------------------------------------------
    263236 * 6.0 - Media Queries
     
    267240 */
    268241@media only screen and (min-width: 1024px) {
    269         #bp-hello-backdrop {
    270                 display: block;
    271         }
    272         #bp-hello-container {
    273                 position: fixed;
    274                 top: 60px;
    275                 left: var(--bp-hello-container-size);
    276                 right: var(--bp-hello-container-size);
    277                 bottom: 30px;
    278                 z-index: 9999;
    279                 border-radius: 3px;
    280         }
    281         #bp-hello-container .bp-hello-header h1 {
    282                 line-height: inherit;
    283         }
    284         .bp-hello-header {
    285                 height: auto;
    286                 max-height: inherit;
    287                 padding: 6px 30px;
    288         }
    289         .bp-hello-close {
    290                 right: 30px;
    291         }
    292         .bp-hello-close .close-modal:before {
    293                 line-height: 0.7;
    294         }
    295         .bp-hello-footer {
    296                 position: fixed;
    297                 left: var(--bp-hello-container-size);
    298                 right: var(--bp-hello-container-size);
    299                 bottom: 30px;
    300                 z-index: 10000;
    301                 height: auto;
    302                 max-height: inherit;
    303                 padding: 6px 30px;
    304         }
    305242        .bp-hello-content {
    306                 height: calc(100% - 90px);
    307                 padding: 0 30px;
     243                padding: 0 30px 20px;
    308244        }
    309245        .bp-hello-content p {
     
    315251 * 6.2 - Desktop Large
    316252 */
    317 @media screen and (min-width: 1280px) {
    318         #bp-hello-container,
    319         .bp-hello-footer {
    320                 left: calc((100% - 896px) / 2);
    321                 right: calc((100% - 896px) / 2);
     253@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
     254        #plugin-information-title.with-banner {
     255                background-image: url(https://ps.w.org/buddypress/assets/banner-1544x500.png);
    322256        }
    323257}
  • trunk/src/bp-core/admin/js/hello.js

    r12101 r12458  
     1/* global bpHelloStrings */
    12/**
    23 * Loads for BuddyPress Hello in wp-admin for query string `hello=buddypress`.
     
    45 * @since 3.0.0
    56 */
    6 (function() {
     7(function( $, bp ) {
     8        // Bail if not set
     9        if ( typeof bpHelloStrings === 'undefined' ) {
     10                return;
     11        }
     12
    713        /**
    814         * Open the BuddyPress Hello modal.
    915         */
    10         var bp_hello_open_modal = function() {
    11                 var backdrop = document.getElementById( 'bp-hello-backdrop' ),
    12                         modal = document.getElementById( 'bp-hello-container' );
     16        var bpHelloOpenModal = function() {
     17                if ( 'function' !== typeof window.tb_show ) {
     18                        return false;
     19                }
    1320
    14                 document.body.classList.add( 'bp-disable-scroll' );
     21                window.tb_show( 'BuddyPress', '#TB_inline?inlineId=bp-hello-container' );
    1522
    16                 // Show modal and overlay.
    17                 backdrop.style.display = '';
    18                 modal.style.display    = '';
     23                $( '#TB_window' ).attr( {
     24                                                        'role': 'dialog',
     25                                                        'aria-label': bpHelloStrings.modalLabel
     26                                                } )
     27                                                .addClass( 'plugin-details-modal' )
     28                                                .removeClass( 'thickbox-loading' );
    1929
    20                 // Focus the "X" so bp_hello_handle_keyboard_events() works.
    21                 var focus_target = modal.querySelectorAll( 'a[href], button' );
    22                 focus_target     = Array.prototype.slice.call( focus_target );
    23                 focus_target[0].focus();
    24 
    25                 // Events.
    26                 modal.addEventListener( 'keydown', bp_hello_handle_keyboard_events );
    27                 backdrop.addEventListener( 'click', bp_hello_close_modal );
     30                $( '#TB_ajaxContent' ).prop( 'style', 'height: 100%; width: auto; padding: 0; border: none;' );
    2831        };
    2932
    3033        /**
    31          * Close modal if "X" or background is touched.
     34         * Prints an error message.
    3235         *
    33          * @param {Event} event - A click event.
     36         * @param {string} message The error message to display.
    3437         */
    35         document.addEventListener( 'click', function( event ) {
    36                 var backdrop = document.getElementById( 'bp-hello-backdrop' );
    37                 if ( ! backdrop || ! document.getElementById( 'bp-hello-container' ) ) {
    38                         return;
     38        var printErrorMessage = function( message ) {
     39                if ( ! message ) {
     40                        message = bpHelloStrings.pageNotFound;
    3941                }
    4042
    41                 var backdrop_click    = backdrop.contains( event.target ),
    42                         modal_close_click = event.target.classList.contains( 'close-modal' );
    43 
    44                 if ( ! modal_close_click && ! backdrop_click ) {
    45                         return;
    46                 }
    47 
    48                 bp_hello_close_modal();
    49         }, false );
    50 
    51         /**
    52          * Close the Hello modal.
    53          */
    54         var bp_hello_close_modal = function() {
    55                 var backdrop = document.getElementById( 'bp-hello-backdrop' ),
    56                         modal = document.getElementById( 'bp-hello-container' );
    57 
    58                 document.body.classList.remove( 'bp-disable-scroll' );
    59 
    60                 // Remove modal and overlay.
    61                 modal.parentNode.removeChild( modal );
    62                 backdrop.parentNode.removeChild( backdrop );
     43                $( '#dynamic-content' ).html(
     44                        $('<div></div>' ).prop( 'id', 'message' )
     45                                        .addClass( 'notice notice-error error' )
     46                                        .html(
     47                                                $( '<p></p>' ).html( message )
     48                                        )
     49                );
    6350        };
    6451
    65         /**
    66          * Restrict keyboard focus to elements within the BuddyPress Hello modal.
    67          *
    68          * @param {Event} event - A keyboard focus event.
    69          */
    70         var bp_hello_handle_keyboard_events = function( event ) {
    71                 var modal = document.getElementById( 'bp-hello-container' ),
    72                         focus_targets = Array.prototype.slice.call(
    73                                 modal.querySelectorAll( 'a[href], button' )
    74                         ),
    75                         first_tab_stop = focus_targets[0],
    76                         last_tab_stop  = focus_targets[ focus_targets.length - 1 ];
     52        // Listen to Tab Menu clicks to display the different screens.
     53        $( '#plugin-information-tabs').on( 'click', 'a', function( event ) {
     54                event.preventDefault();
    7755
    78                 // Check for TAB key press.
    79                 if ( event.keyCode !== 9 ) {
    80                         return;
     56                var anchor = $( event.currentTarget ), target = $( '#dynamic-content' );
     57
     58                if ( anchor.hasClass( 'dynamic' ) ) {
     59                        $( '#top-features' ).hide();
     60                        target.html( '' );
     61                        target.addClass( 'show' );
     62
     63                        $( '#TB_window' ).addClass( 'thickbox-loading' );
     64
     65                        bp.apiRequest( {
     66                                url: anchor.data( 'endpoint' ),
     67                                type: 'GET',
     68                                beforeSend: function( xhr, settings ) {
     69                                        settings.url = settings.url.replace( '&_wpnonce=none', '' );
     70                                },
     71                                data: {
     72                                        context: 'view',
     73                                        slug: anchor.data( 'slug' ),
     74                                        _wpnonce: 'none'
     75                                }
     76                        } ).done( function( data ) {
     77                                var page = _.first( data );
     78
     79                                if ( page && page.content ) {
     80                                        target.html( page.content.rendered );
     81                                } else {
     82                                        printErrorMessage();
     83                                }
     84
     85                        } ).fail( function( error ) {
     86                                if ( ! error || ! error.message ) {
     87                                        return false;
     88                                }
     89
     90                                printErrorMessage( error.message );
     91
     92                        } ).always( function() {
     93                                $( '#TB_window' ).removeClass( 'thickbox-loading' );
     94                        } );
     95
     96                } else {
     97                        $( '#top-features' ).show();
     98                        target.html( '' );
     99                        target.removeClass( 'show' );
    81100                }
    82 
    83                 // When SHIFT+TAB on first tab stop, go to last tab stop in modal.
    84                 if ( event.shiftKey && document.activeElement === first_tab_stop ) {
    85                         event.preventDefault();
    86                         last_tab_stop.focus();
    87 
    88                 // When TAB reaches last tab stop, go to first tab stop in modal.
    89                 } else if ( document.activeElement === last_tab_stop ) {
    90                         event.preventDefault();
    91                         first_tab_stop.focus();
    92                 }
    93         };
    94 
    95         /**
    96          * Close modal if escape key is presssed.
    97          *
    98          * @param {Event} event - A keyboard focus event.
    99          */
    100         document.addEventListener( 'keyup', function( event ) {
    101                 if ( event.keyCode === 27 ) {
    102                         if ( ! document.getElementById( 'bp-hello-backdrop' ) || ! document.getElementById( 'bp-hello-container' ) ) {
    103                                 return;
    104                         }
    105 
    106                         bp_hello_close_modal();
    107                 }
    108         }, false );
     101        } );
    109102
    110103        // Init modal after the screen's loaded.
    111         if ( document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading' ) {
    112                 bp_hello_open_modal();
    113         } else {
    114                 document.addEventListener( 'DOMContentLoaded', bp_hello_open_modal );
    115         }
    116 }());
     104        $( document ).ready( function() {
     105                bpHelloOpenModal();
     106        } );
     107
     108}( jQuery, window.bp || {} ) );
  • trunk/src/bp-core/admin/sass/hello.scss

    r12236 r12458  
    10102.0 - Dashicons
    11113.0 - Elements
    12         3.1 - Backdrop and container
    13         3.2 - Modal footer
    14         3.3 - Modal header
    15         3.4 - Modal content
     12        3.1 - Modal footer
     13        3.2 - Modal content
    16144.0 - Content styles
    17         4.1 - Backdrop and container
    18         4.2 - Footer content
    19         4.3 - Header content
    20         4.4 - Content content
     15        4.1 - Footer content
     16        4.2 - Header content
     17        4.3 - Content content
    21185.0 - Media
    22196.0 - Media Queries
     
    3431}
    3532
    36 #bp-hello-container {
    37 
    38         a {
    39                 color: var(--bp-hello-color-primary);
    40 
    41                 &:hover {
    42                         -webkit-transition: all 0.1s ease-in-out;
    43                         -o-transition: all 0.1s ease-in-out;
    44                         transition: all 0.1s ease-in-out;
    45                         color: rgb(0, 0, 0);
    46                 }
    47         }
    48 
    49         .bp-hello-header {
    50 
    51                 h1 {
    52                         line-height: 1.7;
    53                         font-size: 21px;
    54                         font-weight: 400;
    55                 }
    56         }
    57 }
    58 
    5933.bp-hello-content {
    6034
     
    6236                font-size: 16px;
    6337        }
     38
     39        ul,
     40        ol {
     41                list-style: inherit;
     42        }
     43
     44        h3 {
     45                font-size: 1.1em;
     46                font-weight: 500;
     47        }
    6448}
    6549
     
    6751 * 2.0 - Dashicons
    6852 *----------------------------------------------------------------------------*/
    69 .bp-hello-close {
    70 
    71         .button {
    72                 padding: 5px !important;
    73         }
    74 
    75         .close-modal {
    76 
    77                 &:before {
    78                         content: "\f158";
    79                         color: #23282d; /* wp toolbar */
    80                         font: 400 1.5em/1 dashicons;
    81                         speak: none;
    82                         -webkit-font-smoothing: antialiased;
    83                         -moz-osx-font-smoothing: grayscale;
    84                         background-image: none !important;
    85                 }
    86 
    87                 &:focus:before,
    88                 &:hover:before {
    89                         -webkit-transition: all 0.1s ease-in-out;
    90                         -o-transition: all 0.1s ease-in-out;
    91                         transition: all 0.1s ease-in-out;
    92                         color: var(--bp-hello-color-primary);
    93                 }
    94         }
    95 }
    96 
    9753.bp-hello-social {
    9854
     
    12581}
    12682
     83div.dashicons {
     84
     85        width: fit-content;
     86
     87        &.big {
     88                font-size: 128px;
     89                display: block;
     90                color: var(--bp-hello-color-primary);
     91                height: 128px;
     92                width: 128px;
     93        }
     94}
     95
    12796/*------------------------------------------------------------------------------
    12897 * 3.0 - Elements
     
    13099
    131100/*
    132  * 3.1 - Backdrop and container
    133  */
    134 #bp-hello-backdrop {
    135         position: fixed;
    136         top: 0;
    137         left: 0;
    138         right: 0;
    139         bottom: 0;
    140         z-index: 9998;
    141 
    142         display: none;
    143 }
    144 
    145 #bp-hello-container {
    146         position: fixed;
    147         top: 0;
    148         bottom: 80px;
    149         z-index: 99999;
    150 }
    151 
    152 .bp-disable-scroll {
    153         overflow: hidden;
    154 }
    155 
    156 /*
    157  * 3.2 - Modal footer
    158  */
    159 .bp-hello-footer {
    160         display: -webkit-box;
    161         display: -ms-flexbox;
     101 * 3.1 - Modal footer
     102 */
     103#plugin-information-footer {
     104
    162105        display: flex;
    163         -ms-flex-wrap: wrap;
    164106        flex-wrap: wrap;
    165 
    166         height: 58px;
    167         max-height: 58px;
     107        padding: 0 16px;
     108        height: auto;
     109
     110        .dashicons-heart {
     111                color: #be3631;
     112        }
    168113}
    169114
     
    197142
    198143/*
    199  * 3.3 - Modal header
    200  */
    201 .bp-hello-header {
    202         height: 58px;
    203         max-height: 58px;
    204 }
    205 
    206 /*
    207  * 3.4 - Modal content
    208  */
     144 * 3.2 - Modal content
     145 */
     146
     147#bp-hello-container {
     148        display: none;
     149}
     150
    209151.bp-hello-content {
    210152        padding: 0 25px;
    211 
    212         // Force scrolling.
    213         height: calc(100% - 58px);
    214         overflow-y: auto;
    215         -webkit-overflow-scrolling: touch;
     153        padding-bottom: 20px;
     154}
     155
     156#dynamic-content {
     157        padding-bottom: 40px;
     158        display: none;
     159
     160        &.show {
     161                display: block;
     162        }
     163}
     164
     165.plugin-details-modal #TB_title { /* stylelint-disable-line */
     166        height: 0;
     167        background: none;
     168        border: none;
     169}
     170
     171#TB_window.plugin-details-modal.thickbox-loading:before { /* stylelint-disable-line */
     172        z-index: 10;
     173        margin-top: 40px;
     174        background-color: none;
     175}
     176
     177.bp-hello-aligncenter * {
     178        margin: 10px auto;
     179}
     180
     181.bp-hello-alignleft {
     182        float: left;
     183
     184        &:after {
     185                content: "";
     186                clear: left;
     187        }
     188}
     189
     190.bp-hello-alignright {
     191        float: right;
     192
     193        &:after {
     194                content: "";
     195                clear: right;
     196        }
     197}
     198
     199.bp-hello-divider {
     200        clear: both;
     201        border: none;
     202        margin-bottom: 20px;
    216203}
    217204
     
    221208
    222209/*
    223  * 4.1 - Backdrop and container
    224  */
    225 #bp-hello-backdrop {
    226         background-color: rgba(0, 0, 0, 0.8);
    227         -webkit-transition: opacity 0.15s ease-out;
    228         -o-transition: opacity 0.15s ease-out;
    229         transition: opacity 0.15s ease-out;
    230 }
    231 
    232 #bp-hello-container {
    233         background-color: rgb(255, 255, 255);
    234 }
    235 
    236 /*
    237  * 4.2 - Footer content
    238  */
    239 .bp-hello-footer {
    240         border-radius: 0 0 3px 3px;
    241         background-color: rgb(255, 255, 255);
    242         border-top: 1px solid var(--bp-hello-color-secondary);
    243         padding: 6px 25px;
    244 
    245         p {
    246                 font-size: 15px;
    247         }
    248 }
    249 
     210 * 4.1 - Footer content
     211 */
    250212.bp-hello-social-cta {
    251213        text-align: left;
     
    267229
    268230/*
    269  * 4.3 - Header content
    270  */
    271 .bp-hello-header {
    272         padding: 6px 25px;
    273 
    274         h1 {
    275                 width: calc(100% - 51px);  // Approx. width of "X" button block.
    276         }
    277 }
    278 
    279 #bp-hello-container {
    280 
    281         .bp-hello-header {
    282                 border-bottom: 1px solid var(--bp-hello-color-secondary);
    283         }
    284 }
    285 
    286 .bp-hello-title {
    287         text-align: left;
    288 }
    289 
    290 .bp-hello-close {
    291         position: absolute;
    292         top: 20px;
    293         right: 25px;
    294         text-align: right;
    295 }
    296 
    297 /*
    298  * 4.4 - Content content
     231 * 4.2 - Header content
     232 */
     233#plugin-information-title.with-banner {
     234        background-image: url(https://ps.w.org/buddypress/assets/banner-772x250.png);
     235}
     236
     237/*
     238 * 4.3 - Content content
    299239 */
    300240.bp-hello-content {
     
    315255                width: 100%;
    316256        }
     257
     258        .bp-hello-alignleft img,
     259        .bp-hello-alignright img {
     260                max-width: 200px;
     261        }
    317262}
    318263
     
    326271@media only screen and (min-width: 1024px) {
    327272
    328         #bp-hello-backdrop {
    329                 display: block;
    330         }
    331 
    332         #bp-hello-container {
    333                 position: fixed;
    334                 top: 60px;
    335                 left: var(--bp-hello-container-size);
    336                 right: var(--bp-hello-container-size);
    337                 bottom: 30px;
    338                 z-index: 9999;
    339 
    340                 border-radius: 3px;
    341 
    342                 .bp-hello-header {
    343 
    344                         h1 {
    345                                 line-height: inherit;
    346                         }
    347                 }
    348         }
    349 
    350         .bp-hello-header {
    351                 height: auto;
    352                 max-height: inherit;
    353                 padding: 6px 30px;
    354         }
    355 
    356         .bp-hello-close {
    357                 right: 30px;
    358 
    359                 .close-modal:before {
    360                         line-height: 0.7;
    361                 }
    362         }
    363 
    364         .bp-hello-footer {
    365                 position: fixed; // Fixed position above "content" div.
    366                 left: var(--bp-hello-container-size);
    367                 right: var(--bp-hello-container-size);
    368                 bottom: 30px;
    369                 z-index: 10000; // See #bp-hello-backdrop
    370 
    371                 height: auto;
    372                 max-height: inherit;
    373 
    374                 padding: 6px 30px;
    375         }
    376 
    377273        .bp-hello-content {
    378                 // Very very approx. height of header and footer.
    379                 height: calc(100% - 90px);
    380                 padding: 0 30px;
    381 
    382                 p {
    383                         font-size: 14px;
    384                 }
     274                padding: 0 30px 20px;
     275        }
     276
     277        .bp-hello-content p {
     278                font-size: 14px;
    385279        }
    386280}
     
    389283 * 6.2 - Desktop Large
    390284 */
    391 @media screen and (min-width: 1280px) {
    392 
    393         #bp-hello-container,
    394         .bp-hello-footer {
    395                 // Approx. max-width of modal at Desktop Medium size.
    396                 left: calc((100% - 896px) / 2);
    397                 right: calc((100% - 896px) / 2);
    398         }
    399 }
     285@media only screen and ( -webkit-min-device-pixel-ratio: 1.5 ) {
     286
     287        #plugin-information-title.with-banner {
     288                background-image: url(https://ps.w.org/buddypress/assets/banner-1544x500.png);
     289        }
     290}
  • trunk/src/bp-core/classes/class-bp-admin.php

    r12401 r12458  
    537537                wp_enqueue_style( 'bp-admin-common-css' );
    538538
    539                 // BuddyPress Hello
     539                // BuddyPress Hello.
    540540                if ( 0 === strpos( get_current_screen()->id, 'dashboard' ) && ! empty( $_GET['hello'] ) && $_GET['hello'] === 'buddypress' ) {
    541541                        wp_enqueue_style( 'bp-hello-css' );
    542542                        wp_enqueue_script( 'bp-hello-js' );
     543                        wp_localize_script( 'bp-hello-js', 'bpHelloStrings', array(
     544                                'pageNotFound' => __( 'Sorry, the page you requested was not found.', 'buddypress' ),
     545                                'modalLabel'   => __( 'Hello BuddyPress', 'buddypress' ),
     546                        ) );
    543547                }
    544548        }
     
    547551         * Registers BuddyPress's suggested privacy policy language.
    548552         *
    549          * @since 3.x.y
     553         * @since 4.0.0
    550554         */
    551555        public function add_privacy_policy_content() {
     
    618622                        return;
    619623                }
     624
     625                // Get BuddyPress stable version.
     626                $version      =  preg_replace( '/-.*/', '', bp_get_version() );
     627                $version_slug = 'version-' . str_replace( '.', '-', $version );
    620628        ?>
    621629
    622                 <div id="bp-hello-backdrop" style="display: none;">
    623                 </div>
    624 
    625                 <div id="bp-hello-container" role="dialog" aria-labelledby="bp-hello-title" style="display: none;">
    626                         <div class="bp-hello-header" role="document">
    627                                 <div class="bp-hello-close">
    628                                         <button type="button" class="close-modal button bp-tooltip" data-bp-tooltip="<?php esc_attr_e( 'Close pop-up', 'buddypress' ); ?>">
    629                                                 <span class="screen-reader-text"><?php esc_html_e( 'Close pop-up', 'buddypress' ); ?></span>
    630                                         </button>
     630                <div id="bp-hello-container">
     631                        <div id="plugin-information-scrollable">
     632                                <div id='plugin-information-title' class="with-banner">
     633                                        <div class='vignette'></div>
     634                                        <h2>
     635                                                <?php printf(
     636                                                        /* translators: %s is the placehoder for the BuddyPress version number. */
     637                                                        esc_html__( 'BuddyPress %s', 'buddypress' ),
     638                                                        $version
     639                                                ); ?>
     640                                        </h2>
    631641                                </div>
    632 
    633                                 <div class="bp-hello-title">
    634                                         <h1 id="bp-hello-title" tabindex="-1"><?php echo esc_html( _x( 'New in BuddyPress', 'section heading', 'buddypress' ) ); ?></h1>
     642                                <div id="plugin-information-tabs">
     643                                        <a name="whats-new" href="#whats-new" class="current"><?php esc_html_e( 'What\'s new?', 'buddypress' ); ?></a>
     644                                        <a name="changelog" href="#changelog" class="dynamic" data-slug="<?php echo esc_attr( $version_slug ); ?>" data-endpoint="https://codex.buddypress.org/wp-json/wp/v2/pages"><?php esc_html_e( 'Changelog', 'buddypress' ); ?></a>
     645                                        <a name="get-involved" href="#get-involved" class="dynamic" data-slug="participate-and-contribute" data-endpoint="https://codex.buddypress.org/wp-json/wp/v2/pages"><?php esc_html_e( 'Get involved', 'buddypress' ); ?></a>
     646                                </div>
     647
     648                                <div class="bp-hello-content">
     649                                        <div id="dynamic-content"></div>
     650                                        <div id="top-features">
     651                                                <h2><?php esc_html_e( 'Introducing the BP REST API', 'buddypress' ); ?></h2>
     652                                                <figure class="bp-hello-alignleft">
     653                                                        <div class="dashicons dashicons-rest-api big"></div>
     654                                                </figure>
     655                                                <p>
     656                                                        <?php esc_html_e( 'BuddyPress 5.0.0 comes with REST API endpoints for members, groups, activities, users, private messages, screen notifications and extended profiles.', 'buddypress' ); ?>
     657                                                </p>
     658                                                <p>
     659                                                        <?php esc_html_e( 'BuddyPress endpoints provide machine-readable external access to your WordPress site with a clear, standards-driven interface, paving the way for new and innovative methods of interacting with your community through plugins, themes, apps, and beyond.', 'buddypress' ); ?>
     660                                                        <?php printf(
     661                                                                /* translators: %s is the placehoder for the link to the BP REST API documentation site. */
     662                                                                esc_html__( 'Ready to get started with development? Check out the %s.', 'buddypress' ),
     663                                                                sprintf(
     664                                                                        '<a href="%1$s">%2$s</a>',
     665                                                                        esc_url( 'https://developer.buddypress.org/bp-rest-api/' ),
     666                                                                        esc_html__( 'BP REST API reference', 'buddypress' )
     667                                                                )
     668                                                        ); ?>
     669                                                </p>
     670
     671                                                <hr class="bp-hello-divider"/>
     672
     673                                                <h2><?php esc_html_e( 'A new interface for managing group members.', 'buddypress' ); ?></h2>
     674                                                <p>
     675                                                        <?php esc_html_e( 'The best way to show the power of the BP REST API is to start using it for one of our Core features.', 'buddypress' ); ?>
     676                                                </p>
     677                                                <figure class="bp-hello-aligncenter">
     678                                                        <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/manage-members-interface.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of the Group Members management interface in the administration and on the front-end of your site.', 'buddypress' ); ?>" />
     679                                                </figure>
     680                                                <p>
     681                                                        <?php esc_html_e( 'Group administrators will love our new interface for managing group membership. Whether you\'re working as a group admin on the front-end Manage tab, or as the site admin on the Dashboard, the new REST API-based tools are faster, easier to use, and more consistent.', 'buddypress' ); ?>
     682                                                </p>
     683
     684                                                <hr class="bp-hello-divider"/>
     685
     686                                                <h2><?php esc_html_e( 'Improved Group invites and membership requests.', 'buddypress' ); ?></h2>
     687                                                <figure class="bp-hello-alignright">
     688                                                        <div class="dashicons dashicons-buddicons-groups big"></div>
     689                                                </figure>
     690                                                <p>
     691                                                        <?php esc_html_e( 'Thanks to the new BP Invitations API, Group invites and membership requests are now managed in a more consistent way.', 'buddypress' ); ?>
     692                                                </p>
     693                                                <p>
     694                                                        <?php esc_html_e( 'The BP Invitations API abstracts how these two actions are handled and allows developers to use them for any object on your site (e.g., Sites of a WordPress network).', 'buddypress' ); ?>
     695                                                        <?php printf(
     696                                                                /* translators: %s is the placehoder for the link to the BP Invitations API development note. */
     697                                                                esc_html__( 'Read more about the %s.', 'buddypress' ),
     698                                                                sprintf(
     699                                                                        '<a href="%1$s">%2$s</a>',
     700                                                                        esc_url( 'https://bpdevel.wordpress.com/2019/09/16/new-invitations-api-coming-in-buddypress-5-0/' ),
     701                                                                        esc_html__( 'BP Invitations API', 'buddypress' )
     702                                                                )
     703                                                        ); ?>
     704                                                </p>
     705
     706                                                <hr class="bp-hello-divider"/>
     707
     708                                                <h2><?php esc_html_e( 'Help our support volunteers help you.', 'buddypress' ); ?></h2>
     709                                                <p>
     710                                                        <?php esc_html_e( 'Knowing your WordPress and BuddyPress configuration is very important when one of our beloved support volunteers tries to help you fix an issue. That\'s why we added a BuddyPress section to the Site Health Info Administration screen.', 'buddypress' ); ?>
     711                                                </p>
     712                                                <figure class="bp-hello-aligncenter">
     713                                                        <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/site-health-buddypress-section.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of the BuddyPress section of the Site Health Info Administration screen.', 'buddypress' ); ?>" />
     714                                                </figure>
     715                                                <p>
     716                                                        <?php esc_html_e( 'The panel is displayed at the bottom of the screen. It includes the BuddyPress version, active components, active template pack, and a list of other component-specific settings information.', 'buddypress' ); ?>
     717                                                </p>
     718
     719                                                <hr class="bp-hello-divider"/>
     720
     721                                                <h2><?php esc_html_e( 'Improved integrations with WordPress', 'buddypress' ); ?></h2>
     722                                                <figure class="bp-hello-aligncenter">
     723                                                        <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/bp-nouveau-improvements.png' );?>" alt="<?php esc_attr_e( 'Screenshot of the BuddyPress members directory & Password control in Twenty Ninteen.', 'buddypress' ); ?>" />
     724                                                </figure>
     725
     726                                                <p>
     727                                                        <?php esc_html_e( 'In BuddyPress 5.0.0, the BP Nouveau template pack looks better than ever with the Twenty Nineteen theme.', 'buddypress' ); ?>
     728                                                        <?php esc_html_e( 'Nouveau also now uses the same password control as the one used in WordPress Core, for better consistency between BuddyPress and WordPress spaces.', 'buddypress' ); ?>
     729                                                </p>
     730
     731                                                <p>
     732                                                        <strong><?php esc_html_e( 'BuddyPress Blocks now have their own category into the Block Editor.', 'buddypress' ); ?></strong>
     733                                                </p>
     734                                                <figure class="bp-hello-aligncenter">
     735                                                        <img src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/buddypress-blocks-category.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of the BuddyPress block category.', 'buddypress' ); ?>" />
     736                                                </figure>
     737                                                <p>
     738                                                        <?php esc_html_e( 'Developers building tools for the Block Editor can now add their blocks to the BuddyPress category. This change provides a foundation for organizing custom BuddyPress blocks.', 'buddypress' ); ?>
     739                                                        <?php printf(
     740                                                                /* translators: %s is the placehoder for the link to the blocks category development note. */
     741                                                                esc_html__( 'Read more about this feature in the %s.', 'buddypress' ),
     742                                                                sprintf(
     743                                                                        '<a href="%1$s">%2$s</a>',
     744                                                                        esc_url( 'https://bpdevel.wordpress.com/2019/07/31/a-category-to-store-your-buddypress-blocks/' ),
     745                                                                        esc_html__( 'development note', 'buddypress' )
     746                                                                )
     747                                                        ); ?>
     748                                                </p>
     749
     750                                                <hr class="bp-hello-divider"/>
     751
     752                                                <h2><?php echo esc_html( _x( 'Your feedback', 'screen heading', 'buddypress' ) ); ?></h2>
     753                                                <p>
     754                                                        <?php
     755                                                        printf(
     756                                                                /* translators: %s is the placehoder for the link to BuddyPress support forums. */
     757                                                                esc_html__( ' How are you using BuddyPress? Receiving your feedback and suggestions for future versions of BuddyPress genuinely motivates and encourages our contributors. Please %s about this version of BuddyPress on our website. ', 'buddypress' ),
     758                                                                sprintf(
     759                                                                        '<a href="%1$s">%2$s</a>',
     760                                                                        esc_url( 'https://buddypress.org/support/' ),
     761                                                                        esc_html__( 'share your feedback', 'buddypress' )
     762                                                                )
     763                                                        );
     764                                                        ?>
     765                                                </p>
     766                                                <p><?php esc_html_e( 'Thank you for using BuddyPress! 😊', 'buddypress' ); ?></p>
     767
     768                                                <br /><br />
     769                                        </div>
    635770                                </div>
    636771                        </div>
    637 
    638                         <div class="bp-hello-content">
    639                                 <h2><?php esc_html_e( 'New tools for data control and privacy', 'buddypress' ); ?></h2>
    640                                 <p>
    641                                         <?php esc_html_e( 'BuddyPress boasts a proud history of letting community members and managers control their data, independent of third-party, commercial entities. In this spirit, as well as the spirit of recent regulations like the EU\'s General Data Protection Regulation (GDPR), BuddyPress 4.0 introduces a suite of tools allowing users and site admins to manage member data and privacy.', 'buddypress' ); ?>
    642                                 </p>
    643 
    644                                 <figure class="bp-hello-alignright">
    645                                         <img class="bp-hello-img-border" src="<?php echo esc_url( buddypress()->plugin_url . 'bp-core/images/data-export.png' ); ?>" alt="<?php esc_attr_e( 'Screenshot of Export Data settings panel', 'buddypress' ); ?>" />
    646                                         <figcaption>
    647                                                 <?php esc_html_e( 'Improved user control over data exports', 'buddypress' ); ?>
    648                                         </figcaption>
    649                                 </figure>
    650 
    651                                 <p><?php esc_html_e( 'The new "Export Data" Settings panel lets users request an export of all BuddyPress data they\'ve created. BuddyPress integrates seamlessly with the data export functionality introduced in WordPress 4.9.8, and BP data is included in exports that are initiated either from the Export Data panel or via WP\'s Tools > Export Personal Data interface.', 'buddypress' ); ?></p>
    652 
    653                                 <p><?php esc_html_e( 'BuddyPress 4.0 also integrates with WordPress 4.9.8\'s Privacy Policy tools. When you create or update your Privacy Policy, BP will suggest text that\'s specifically tailored to the kinds of social data generated on a BuddyPress site. And will prompt registering users to agree to the Privacy Policy, if your theme supports it.', 'buddypress' ); ?></p>
    654 
    655                                 <h2><?php esc_html_e( 'Nouveau template improvements', 'buddypress' ); ?></h2>
    656                                 <p><?php esc_html_e( 'BuddyPress 3.0 introduced a new set of default templates, which we call "Nouveau". In 4.0, we\'ve fixed bugs and smoothed the edges in these templates, including more accessible markup and improved appearance on mobile devices.', 'buddypress' ); ?></p>
    657 
    658                                 <h2><?php esc_html_e( "BuddyPress: leaner, faster, stronger", 'buddypress' ); ?></h2>
    659                                 <p><?php esc_html_e( 'With every BuddyPress version, we strive to make internal improvements to performance and code quality in addition to introducing new features and fixes. In BuddyPress 4.0, we\'ve improved PHP compatibility both in our codebase and in our automated testing tools; we\'ve reworked some automated tests for faster performance; we\'ve ensured compatibility with upcoming changes in WordPress; and we\'ve fixed a number of bugs in the formatting and sending of emails.', 'buddypress' ); ?></p>
    660 
    661                                 <p><em>
    662                                         <?php
    663                                         printf(
    664                                                 __( 'To read the full list of features, fixes, and changes in this version of BuddyPress, <a href="%s">visit Trac</a>.', 'buddypress' ),
    665                                                 esc_url( 'https://buddypress.trac.wordpress.org/query?group=status&milestone=4.0' )
    666                                         );
    667                                         ?>
    668                                 </em></p>
    669 
    670                                 <h2><?php echo esc_html( _x( 'Your feedback', 'screen heading', 'buddypress' ) ); ?></h2>
    671                                 <p>
    672                                         <?php
    673                                         printf(
    674                                                 __( ' How are you using BuddyPress? Receiving your feedback and suggestions for future versions of BuddyPress genuinely motivates and encourages our contributors. Please <a href="%s">share your feedback</a> about this version of BuddyPress on our website. ', 'buddypress' ),
    675                                                 esc_url( 'https://buddypress.org/support/' )
    676                                         );
    677                                         ?>
    678                                 </p>
    679                                 <p><?php esc_html_e( 'Thank you for using BuddyPress! 😊', 'buddypress' ); ?></p>
    680 
    681                                 <br /><br />
    682                         </div>
    683 
    684                         <div class="bp-hello-footer">
     772                        <div id="plugin-information-footer">
    685773                                <div class="bp-hello-social-cta">
    686774                                        <p>
    687775                                                <?php
    688776                                                printf(
    689                                                         _n( 'Built by <a href="%s">%s volunteer</a>.', 'Built by <a href="%s">%s volunteers</a>.', 35, 'buddypress' ),
     777                                                        _n( 'Built with %1$s by <a href="%2$s">%3$d volunteer</a>.', 'Built with %1$s by <a href="%2$s">%3$d volunteers</a>.', 35, 'buddypress' ),
     778                                                        '<span class="dashicons dashicons-heart"></span>',
    690779                                                        esc_url( bp_get_admin_url( 'admin.php?page=bp-credits' ) ),
    691780                                                        number_format_i18n( 35 )
     
    10981187                        'bp-hello-css' => array(
    10991188                                'file'         => "{$url}hello{$min}.css",
    1100                                 'dependencies' => array( 'bp-admin-common-css' ),
     1189                                'dependencies' => array( 'bp-admin-common-css', 'thickbox' ),
    11011190                        ),
    11021191                ) );
     
    11411230                        'bp-hello-js' => array(
    11421231                                'file'         => "{$url}hello{$min}.js",
    1143                                 'dependencies' => array(),
     1232                                'dependencies' => array( 'thickbox', 'bp-api-request' ),
    11441233                                'footer'       => true,
    11451234                        ),
Note: See TracChangeset for help on using the changeset viewer.