You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.2 KiB
PHP

<?php
/**
* Role Manager main view.
*
* @package RankMath
* @subpackage RankMath\Role_Manager
*/
use RankMath\KB;
defined( 'ABSPATH' ) || exit;
// Header.
rank_math()->admin->display_admin_header();
?>
<div class="wrap rank-math-wrap">
<div class="rank-math-box container">
<span class="wp-header-end"></span>
<form class="cmb-form" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" method="post">
<header>
<h2><?php echo esc_html( get_admin_page_title() ); ?></h2>
<p>
<?php
/* translators: %s is a Learn More link to the documentation. */
printf( esc_html__( 'Control which user has access to which options of Rank Math. %s', 'rank-math' ), '<a href="' . esc_url_raw( KB::get( 'role-manager', 'Role Manager Page' ) ) . '" target="_blank">' . esc_html__( 'Learn more', 'rank-math' ) . '</a>.' );
?>
</p>
</header>
<input type="hidden" name="action" value="rank_math_handle_capabilities">
<?php
wp_nonce_field( 'rank-math-handle-capabilities', 'security' );
$cmb = cmb2_get_metabox( 'rank-math-role-manager', 'rank-math-role-manager' );
$cmb->show_form();
?>
<footer class="form-footer rank-math-ui">
<input type="submit" name="reset-capabilities" id="rank-math-reset-cmb" value="<?php esc_attr_e( 'Reset', 'rank-math' ); ?>" class="button button-secondary reset-options alignleft">
<button type="submit" class="button button-primary"><?php esc_html_e( 'Update Capabilities', 'rank-math' ); ?></button>
</footer>
</form>
</div>
</div>
<script>
jQuery( function( $ ) {
var toggle = '<p><button class="button button-small toggle-all-capabilities"><?php echo esc_js( __( 'Toggle All', 'rank-math' ) ); ?></button></p>',
$table = $( '#cmb2-metabox-rank-math-role-manager' );
$( '.cmb-th', $table ).each( function( index, elem ) {
$( elem ).append( toggle );
} );
$( '.toggle-all-capabilities' ).on( 'click', function( e ) {
e.preventDefault();
var $checkboxes = $( this ).closest( '.cmb-row' ).find( 'input.cmb2-option:not(#administrator7)' ),
should_check = ! $checkboxes.filter(':checked').length;
$checkboxes.prop( 'checked', should_check );
} );
} );
</script>