Skip to:
Content

BuddyPress.org

Ticket #6569: 6569.02.patch

File 6569.02.patch, 12.4 KB (added by imath, 4 years ago)
  • src/bp-activity/bp-activity-template.php

    diff --git src/bp-activity/bp-activity-template.php src/bp-activity/bp-activity-template.php
    index e73a259..ba3c58c 100644
    function bp_activity_per_page() { 
    993993                return apply_filters( 'bp_get_activity_per_page', (int) $activities_template->pag_num );
    994994        }
    995995
     996
     997function bp_activity_whats_new_placeholder() {
     998        echo bp_get_activity_whats_new_placeholder();
     999}
     1000
     1001        function bp_get_activity_whats_new_placeholder() {
     1002                $placeholder = sprintf( __( "What's new, %s?", 'buddypress' ), bp_get_user_firstname( bp_get_loggedin_user_fullname() ) );
     1003
     1004                if ( bp_is_group() ) {
     1005                        $placeholder = sprintf( __( "What's new in %s, %s?", 'buddypress' ), bp_get_group_name(), bp_get_user_firstname( bp_get_loggedin_user_fullname() ) );
     1006                }
     1007
     1008                return apply_filters( 'bp_get_activity_whats_new_placeholder', $placeholder );
     1009        }
     1010
    9961011/**
    9971012 * Output the activities title.
    9981013 *
  • src/bp-templates/bp-legacy/buddypress/activity/post-form.php

    diff --git src/bp-templates/bp-legacy/buddypress/activity/post-form.php src/bp-templates/bp-legacy/buddypress/activity/post-form.php
    index 12023a8..eca55e4 100644
     
    2626                </a>
    2727        </div>
    2828
    29         <p class="activity-greeting"><?php if ( bp_is_group() )
    30                 printf( __( "What's new in %s, %s?", 'buddypress' ), bp_get_group_name(), bp_get_user_firstname( bp_get_loggedin_user_fullname() ) );
    31         else
    32                 printf( __( "What's new, %s?", 'buddypress' ), bp_get_user_firstname( bp_get_loggedin_user_fullname() ) );
    33         ?></p>
    34 
    3529        <div id="whats-new-content">
     30
    3631                <div id="whats-new-textarea">
    37                         <textarea class="bp-suggestions" name="whats-new" id="whats-new" cols="50" rows="10"
     32                        <textarea class="bp-suggestions" name="whats-new" id="whats-new" cols="50" rows="1"
    3833                                <?php if ( bp_is_group() ) : ?>data-suggestions-group-id="<?php echo esc_attr( (int) bp_get_current_group_id() ); ?>" <?php endif; ?>
    39                         ><?php if ( isset( $_GET['r'] ) ) : ?>@<?php echo esc_textarea( $_GET['r'] ); ?> <?php endif; ?></textarea>
     34                        placeholder="<?php echo esc_attr( bp_get_activity_whats_new_placeholder() ) ;?>"><?php if ( isset( $_GET['r'] ) ) : ?>@<?php echo esc_textarea( $_GET['r'] ); ?> <?php endif; ?></textarea>
    4035                </div>
    4136
    42                 <div id="whats-new-options">
    43                         <div id="whats-new-submit">
    44                                 <input type="submit" name="aw-whats-new-submit" id="aw-whats-new-submit" value="<?php esc_attr_e( 'Post Update', 'buddypress' ); ?>" />
    45                         </div>
     37                <div id="whats-new-actions">
     38                        <?php
     39                        /**
     40                         * Fires before the activity post form options.
     41                         *
     42                         * @since BuddyPress (2.4.0)
     43                         */
     44                        do_action( 'bp_activity_post_form_before_options' ); ?>
    4645
    47                         <?php if ( bp_is_active( 'groups' ) && !bp_is_my_profile() && !bp_is_group() ) : ?>
     46                        <div id="whats-new-options">
    4847
    49                                 <div id="whats-new-post-in-box">
     48                                <?php if ( bp_is_active( 'groups' ) && !bp_is_my_profile() && !bp_is_group() ) : ?>
    5049
    51                                         <?php _e( 'Post in', 'buddypress' ); ?>:
     50                                        <div id="whats-new-post-in-box">
    5251
    53                                         <select id="whats-new-post-in" name="whats-new-post-in">
    54                                                 <option selected="selected" value="0"><?php _e( 'My Profile', 'buddypress' ); ?></option>
     52                                                <?php _e( 'Post in', 'buddypress' ); ?>:
    5553
    56                                                 <?php if ( bp_has_groups( 'user_id=' . bp_loggedin_user_id() . '&type=alphabetical&max=100&per_page=100&populate_extras=0&update_meta_cache=0' ) ) :
    57                                                         while ( bp_groups() ) : bp_the_group(); ?>
     54                                                <select id="whats-new-post-in" name="whats-new-post-in">
     55                                                        <option selected="selected" value="0"><?php _e( 'My Profile', 'buddypress' ); ?></option>
    5856
    59                                                                 <option value="<?php bp_group_id(); ?>"><?php bp_group_name(); ?></option>
     57                                                        <?php if ( bp_has_groups( 'user_id=' . bp_loggedin_user_id() . '&type=alphabetical&max=100&per_page=100&populate_extras=0&update_meta_cache=0' ) ) :
     58                                                                while ( bp_groups() ) : bp_the_group(); ?>
    6059
    61                                                         <?php endwhile;
    62                                                 endif; ?>
     60                                                                        <option value="<?php bp_group_id(); ?>"><?php bp_group_name(); ?></option>
    6361
    64                                         </select>
    65                                 </div>
    66                                 <input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
     62                                                                <?php endwhile;
     63                                                        endif; ?>
    6764
    68                         <?php elseif ( bp_is_group_home() ) : ?>
     65                                                </select>
     66                                        </div>
     67                                        <input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
    6968
    70                                 <input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
    71                                 <input type="hidden" id="whats-new-post-in" name="whats-new-post-in" value="<?php bp_group_id(); ?>" />
     69                                <?php elseif ( bp_is_group_home() ) : ?>
    7270
    73                         <?php endif; ?>
     71                                        <input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
     72                                        <input type="hidden" id="whats-new-post-in" name="whats-new-post-in" value="<?php bp_group_id(); ?>" />
    7473
    75                         <?php
     74                                <?php endif; ?>
    7675
     76                                <?php
     77
     78                                /**
     79                                 * Fires at the end of the activity post form options.
     80                                 *
     81                                 * @since BuddyPress (1.2.0)
     82                                 */
     83                                do_action( 'bp_activity_post_form_options' ); ?>
     84
     85                        </div><!-- #whats-new-options -->
     86
     87                        <?php
    7788                        /**
    78                          * Fires at the end of the activity post form markup.
     89                         * Fires before the activity post form submit.
    7990                         *
    80                          * @since BuddyPress (1.2.0)
     91                         * @since BuddyPress (2.4.0)
    8192                         */
    82                         do_action( 'bp_activity_post_form_options' ); ?>
     93                        do_action( 'bp_activity_post_form_before_submit' ); ?>
     94
     95                        <div id="whats-new-submit">
     96
     97                                <input type="submit" name="aw-whats-new-submit" id="aw-whats-new-submit" value="<?php esc_attr_e( 'Post Update', 'buddypress' ); ?>" />
    8398
    84                 </div><!-- #whats-new-options -->
     99                                 <?php
     100                                /**
     101                                 * Fires at the end of the activity post form submit.
     102                                 *
     103                                 * @since BuddyPress (2.4.0)
     104                                 */
     105                                do_action( 'bp_activity_post_form_submit' ); ?>
     106                        </div><!-- #whats-new-submit -->
     107                </div><!-- #whats-new-actions -->
    85108        </div><!-- #whats-new-content -->
    86109
    87110        <?php wp_nonce_field( 'post_update', '_wpnonce_post_update' ); ?>
  • src/bp-templates/bp-legacy/css/buddypress.css

    diff --git src/bp-templates/bp-legacy/css/buddypress.css src/bp-templates/bp-legacy/css/buddypress.css
    index 1957cef..1df06ff 100644
    Hello, this is the BuddyPress Legacy stylesheet. 
    127127        color: #555;
    128128        font-family: inherit;
    129129        font-size: medium;
    130         height: 20px;
    131130        padding: 6px;
    132         width: 98%;
     131        width: 97.5%;
     132        resize: none;
     133        overflow: hidden;
    133134}
    134135body.no-js #buddypress form#whats-new-form textarea {
    135136        height: 50px;
     137        resize: vertical;
     138        overflow: auto;
    136139}
    137140#buddypress form#whats-new-form #whats-new-options select {
    138141        max-width: 200px;
    body.no-js #buddypress form#whats-new-form textarea { 
    142145        float: right;
    143146        margin-top: 12px;
    144147}
     148
    145149#buddypress #whats-new-options {
    146150        overflow: auto;
    147         height: 0;
     151        height: auto;
     152        float:left;
     153}
     154
     155#buddypress #whats-new-content #whats-new-actions {
     156        height:0;
     157}
     158
     159#buddypress #whats-new-content.active #whats-new-actions {
     160        width:auto;
    148161}
     162
    149163body.no-js #buddypress #whats-new-options {
    150164        height: auto;
    151165}
    body.no-js #buddypress #whats-new-options { 
    154168        outline-color: rgba(31, 179, 221, 0.9);
    155169}
    156170
     171#buddypress #whats-new-content, #buddypress #whats-new-actions {
     172        overflow: hidden;
     173}
     174
    157175/*--------------------------------------------------------------
    1581763.1.1 - Activity Listing
    159177--------------------------------------------------------------*/
  • src/bp-templates/bp-legacy/js/buddypress.js

    diff --git src/bp-templates/bp-legacy/js/buddypress.js src/bp-templates/bp-legacy/js/buddypress.js
    index 4c5e139..5683791 100644
    jq(document).ready( function() { 
    3232        if ( $whats_new.length && bp_get_querystring('r') ) {
    3333                var $member_nicename = $whats_new.val();
    3434
    35                 jq('#whats-new-options').animate({
    36                         height:'50px'
    37                 });
    38 
    39                 $whats_new.animate({
    40                         height:'50px'
     35                jq('#whats-new-actions').animate({
     36                        height:'100%'
    4137                });
    4238
    4339                jq.scrollTo( $whats_new, 500, {
    jq(document).ready( function() { 
    5248
    5349        /* Textarea focus */
    5450        $whats_new.focus( function(){
    55                 jq('#whats-new-options').animate({
    56                         height:'50px'
    57                 });
    58                 jq('#whats-new-form textarea').animate({
    59                         height:'50px'
     51                jq('#whats-new-actions').animate({
     52                        height:'100%'
    6053                });
     54
    6155                jq('#aw-whats-new-submit').prop('disabled', false);
    6256
    6357                jq( '#whats-new-content' ).addClass( 'active' );
    jq(document).ready( function() { 
    8882                if ( document.activeElement !== this ) {
    8983                        if (!this.value.match(/\S+/)) {
    9084                                this.value = '';
    91                                 jq('#whats-new-options').animate({
     85                                jq('#whats-new-actions').animate({
    9286                                        height:'0'
    9387                                });
    94                                 jq('form#whats-new-form textarea').animate({
    95                                         height:'20px'
    96                                 });
     88
     89                                jq('#whats-new-form textarea').css( {
     90                                        height:'auto'
     91                                } );
     92
    9793                                jq('#aw-whats-new-submit').prop('disabled', true);
    9894                                jq( '#whats-new-content' ).removeClass( 'active' );
    9995                        }
    10096                }
    10197        });
    10298
     99        /* Texarea auto-resize */
     100        $whats_new.on( 'keyup', function( event ) {
     101                var self = jq( this );
     102
     103                if ( this.scrollHeight <= self.innerHeight() ) {
     104                        return;
     105                }
     106
     107                self.css( {
     108                        height: this.scrollHeight + 'px'
     109                } );
     110        } );
     111
    103112        /* New posts */
    104113        jq('#aw-whats-new-submit').on( 'click', function() {
    105114                var last_date_recorded = 0,
    106115                        button = jq(this),
    107                         form   = button.closest('form#whats-new-form');
     116                        form   = button.closest('form#whats-new-form'),
     117                        inputs = {}, post_data;
     118
     119                // Get all inputs and organize them into an object {name: value}
     120                jq.each( form.serializeArray(), function( key, input ) {
     121                        // Only include public extra data
     122                        if ( '_' !== input.name.substr( 0, 1 ) && 'whats-new' !== input.name.substr( 0, 9 ) ) {
     123                                if ( ! inputs[ input.name ] ) {
     124                                        inputs[ input.name ] = input.value;
     125                                } else {
     126                                        // Checkboxes/dropdown list can have multiple selected value
     127                                        if ( ! jq.isArray( inputs[ input.name ] ) ) {
     128                                                inputs[ input.name ] = new Array( inputs[ input.name ], input.value );
     129                                        } else {
     130                                                inputs[ input.name ].push( input.value );
     131                                        }
     132                                }
     133                        }
     134                } );
    108135
    109                 form.children().each( function() {
    110                         if ( jq.nodeName(this, 'textarea') || jq.nodeName(this, 'input') ) {
     136                form.find( '*' ).each( function() {
     137                        if ( jq.nodeName( this, 'textarea') || jq.nodeName( this, 'input' ) ) {
    111138                                jq(this).prop( 'disabled', true );
    112139                        }
    113                 });
     140                } );
    114141
    115142                /* Remove any errors */
    116143                jq('div.error').remove();
    jq(document).ready( function() { 
    145172                        object = jq('#whats-new-post-object').val();
    146173                }
    147174
    148                 jq.post( ajaxurl, {
    149                         action: 'post_update',
    150                         'cookie': bp_get_cookies(),
    151                         '_wpnonce_post_update': jq('#_wpnonce_post_update').val(),
    152                         'content': content,
    153                         'object': object,
    154                         'item_id': item_id,
    155                         'since': last_date_recorded,
    156                         '_bp_as_nonce': jq('#_bp_as_nonce').val() || ''
    157                 },
    158                 function(response) {
     175                // Include the public data to the post data
     176                post_data = jq.extend( {
     177                        action                 : 'post_update',
     178                        'cookie'               : bp_get_cookies(),
     179                        '_wpnonce_post_update' : jq('#_wpnonce_post_update').val(),
     180                        'content'              : content,
     181                        'object'               : object,
     182                        'item_id'              : item_id,
     183                        'since'                : last_date_recorded,
     184                        '_bp_as_nonce'         : jq('#_bp_as_nonce').val() || '',
     185                }, inputs );
    159186
    160                         form.children().each( function() {
    161                                 if ( jq.nodeName(this, 'textarea') || jq.nodeName(this, 'input') ) {
    162                                         jq(this).prop( 'disabled', false );
     187                jq.post( ajaxurl, post_data, function( response ) {
     188
     189                        form.find( '*' ).each( function() {
     190                                if ( jq.nodeName( this, 'textarea') || jq.nodeName( this, 'input' ) ) {
     191                                        jq( this ).prop( 'disabled', false );
    163192                                }
    164                         });
     193                        } );
    165194
    166195                        /* Check for errors and append if found. */
    167196                        if ( response[0] + response[1] === '-1' ) {
    jq(document).ready( function() { 
    204233
    205234                                jq('li.new-update').hide().slideDown( 300 );
    206235                                jq('li.new-update').removeClass( 'new-update' );
    207                                 jq('#whats-new').val('');
     236
     237                                // Reset the form
     238                                form.get(0).reset();
    208239
    209240                                // reset vars to get newest activities
    210241                                newest_activities = '';
    211242                                activity_last_recorded  = 0;
    212243                        }
    213244
    214                         jq('#whats-new-options').animate({
     245                        jq('#whats-new-actions').animate({
    215246                                height:'0px'
    216247                        });
    217                         jq('#whats-new-form textarea').animate({
    218                                 height:'20px'
    219                         });
     248
    220249                        jq('#aw-whats-new-submit').prop('disabled', true).removeClass('loading');
    221250                        jq( '#whats-new-content' ).removeClass( 'active' );
    222                 });
     251                } );
    223252
    224253                return false;
    225254        });