Ticket #8045: 8045.2.group-admin.patch
File 8045.2.group-admin.patch, 7.6 KB (added by , 6 years ago) |
---|
-
src/bp-groups/admin/css/admin.css
diff --git src/bp-groups/admin/css/admin.css src/bp-groups/admin/css/admin.css index 0a7887a10..0260c25bf 100644
body.toplevel_page_bp-groups table.groups th#last_active { 63 63 position: relative; 64 64 } 65 65 66 .bp-groups-member-type tr.error td:first-child { 67 border-left: solid 4px #a00; 68 font-weight: bold; 69 } 70 71 .bp-groups-member-type-hide { 72 display: none; 73 } 74 66 75 .bp-groups-member-type > h4 { 67 76 margin-bottom: 0.5em; 68 77 } -
src/bp-groups/admin/js/admin.js
diff --git src/bp-groups/admin/js/admin.js src/bp-groups/admin/js/admin.js index 349d77f5e..fec0c88b3 100644
30 30 } ); 31 31 32 32 /* Warn before leaving unsaved changes */ 33 $(document).on( 'change', 'input#bp-groups-name, input#bp-groups-description, select.bp-groups-role,#bp-groups-settings-section-status input[type="radio"]', function() {33 $(document).on( 'change', 'input#bp-groups-name, input#bp-groups-description, #bp-groups-settings-section-status input[type="radio"]', function() { 34 34 window.warn_on_leave = true; 35 35 }); 36 36 -
src/bp-groups/bp-groups-admin.php
diff --git src/bp-groups/bp-groups-admin.php src/bp-groups/bp-groups-admin.php index 94ef62829..dced9f519 100644
function bp_groups_admin_load() { 153 153 // Enqueue JavaScript files. 154 154 wp_enqueue_script( 'postbox' ); 155 155 wp_enqueue_script( 'dashboard' ); 156 wp_enqueue_script( 'bp-groups-manage' ); 157 wp_localize_script( 'bp-groups-manage', 'bpGroupsManage', array( 158 'endpoint' => sprintf( '/buddypress/v1/%1$s/%2$d/members', buddypress()->groups->id, $_GET['gid'] ), 159 ) ); 156 160 157 161 // Index screen. 158 162 } else { … … function bp_groups_admin_edit_metabox_members( $item ) { 951 955 <?php echo $pagination[ $member_type ] ?> 952 956 </div> 953 957 954 <?php if ( !empty( $type_users ) ) : ?>955 956 958 <table class="widefat bp-group-members"> 957 959 <thead> 958 960 <tr> … … function bp_groups_admin_edit_metabox_members( $item ) { 964 966 965 967 <tbody> 966 968 967 <?php foreach ( $type_users as $type_user ) : ?> 969 <tr class="<?php echo empty( $type_users ) ? '' : 'bp-groups-member-type-hide'; ?>"> 970 <td scope="row" colspan="3"> 971 <p class="bp-groups-no-members description"><?php esc_html_e( 'No members of this type', 'buddypress' ); ?></p> 972 </td> 973 </tr> 974 975 <?php if ( ! empty( $type_users ) ) : foreach ( $type_users as $type_user ) : ?> 968 976 <tr> 969 977 <th scope="row" class="uid-column"><?php echo esc_html( $type_user->ID ); ?></th> 970 978 … … function bp_groups_admin_edit_metabox_members( $item ) { 1030 1038 </tr> 1031 1039 <?php endif; ?> 1032 1040 1033 <?php endforeach; ?>1041 <?php endforeach; endif ?> 1034 1042 1035 1043 </tbody> 1036 1044 </table> 1037 1045 1038 <?php else : ?>1039 1040 <p class="bp-groups-no-members description"><?php esc_html_e( 'No members of this type', 'buddypress' ); ?></p>1041 1042 <?php endif; ?>1043 1044 1046 </div><!-- .bp-groups-member-type --> 1045 1047 1046 1048 <?php endforeach; -
src/bp-groups/bp-groups-cssjs.php
diff --git src/bp-groups/bp-groups-cssjs.php src/bp-groups/bp-groups-cssjs.php index e69de29bb..06218c222 100644
1 <?php 2 /** 3 * Groups component CSS/JS 4 * 5 * @package BuddyPress 6 * @subpackage GroupsScripts 7 * @since 5.0.0 8 */ 9 10 // Exit if accessed directly. 11 defined( 'ABSPATH' ) || exit; 12 13 function bp_groups_register_scripts() { 14 $min = bp_core_get_minified_asset_suffix(); 15 16 wp_register_script( 17 'bp-groups-manage', 18 buddypress()->plugin_url . "bp-groups/js/manage{$min}.js", 19 array( 'wp-api-request', 'wp-backbone' ), 20 bp_get_version(), 21 true 22 ); 23 } 24 add_action( 'bp_init', 'bp_groups_register_scripts' ); -
src/bp-groups/classes/class-bp-groups-component.php
diff --git src/bp-groups/classes/class-bp-groups-component.php src/bp-groups/classes/class-bp-groups-component.php index f7d45658d..d35f14454 100644
class BP_Groups_Component extends BP_Component { 128 128 'template', 129 129 'adminbar', 130 130 'functions', 131 'notifications' 131 'notifications', 132 'cssjs' 132 133 ); 133 134 134 135 // Conditional includes. -
src/bp-groups/js/manage.js
diff --git src/bp-groups/js/manage.js src/bp-groups/js/manage.js index e69de29bb..d169cf3f3 100644
1 /** 2 * Manage Group script. 3 */ 4 5 /* global bpGroupsManage */ 6 7 ( function( $, wp ) { 8 if ( 'undefined' === typeof bpGroupsManage || ! bpGroupsManage.endpoint ) { 9 return; 10 } 11 12 $( '#bp_group_members' ).on( 'change', '.bp-groups-role', function( event ) { 13 var roleSelect = $( event.target ), userId = parseInt( roleSelect.prop( 'id' ).replace( 'bp-groups-role-', '' ), 10 ), 14 newRole = roleSelect.val(), currentRole = $( event.target ).parent().find( '[type="hidden"]' ).first(), 15 actionData = { action: 'promote' }, methodOverride = 'PUT'; 16 17 if ( currentRole === newRole ) { 18 return; 19 } 20 21 // Set the new role. 22 actionData.role = newRole; 23 24 if ( 'admin' === currentRole.val() || ( 'mod' === currentRole.val() && 'member' === newRole ) ) { 25 actionData.action = 'demote'; 26 } 27 28 if ( 'banned' === newRole ) { 29 actionData = { action: 'ban' }; 30 } else if ( 'banned' === currentRole.val() ) { 31 actionData = { action: 'unban' }; 32 } else if ( 'remove' === newRole ) { 33 actionData = {}; 34 methodOverride = 'DELETE'; 35 } 36 37 wp.apiRequest( { 38 path: bpGroupsManage.endpoint + '/' + userId, 39 type: 'POST', 40 headers: { 'X-HTTP-Method-Override': methodOverride }, 41 data: actionData, 42 dataType: 'json', 43 context: 'edit' 44 } ).done( function( response ) { 45 currentRole.val( newRole ); 46 47 if ( response[0] && response[0][ 'is_' + newRole ] ) { 48 $( '#bp-groups-member-type-' + newRole ).find( 'tr' ).last().after( 49 roleSelect.closest( 'tr' ) 50 ); 51 } else if ( 'DELETE' === methodOverride ) { 52 roleSelect.closest( 'tr' ).remove(); 53 } else { 54 // Reset the current role. 55 currentRole.val( 'member' ); 56 57 // Reset the selected option. 58 $.each( roleSelect.find( 'option' ), function( o, option ) { 59 if ( 'member' === $( option ).val() ) { 60 $( option ).prop( 'selected', true ); 61 } else { 62 $( option ).prop( 'selected', false ); 63 } 64 } ); 65 66 $( '#bp-groups-member-type-member' ).find( 'tr' ).last().after( 67 roleSelect.closest( 'tr' ) 68 ); 69 } 70 71 $.each( $( 'table.bp-group-members tbody' ), function( t, tbody ) { 72 if ( 1 === parseInt( $( tbody ).find( 'tr' ).length, 10 ) ) { 73 $( tbody ).find( 'tr' ).first().removeClass( 'bp-groups-member-type-hide' ); 74 } else { 75 $( tbody ).find( 'tr' ).first().addClass( 'bp-groups-member-type-hide' ); 76 } 77 } ); 78 79 } ).fail( function( response ) { 80 roleSelect.closest( 'tr' ).before( 81 $( '<tr class="error"></tr' ).html( '<td colspan="4">' + response.responseJSON.message + '</td>' ) 82 ); 83 84 roleSelect.closest( 'tr' ).parent().find( '.error' ).fadeOut( 2000 ); 85 } ); 86 } ); 87 88 } )( jQuery, window.wp || {} );