plugin updates
This commit is contained in:
@@ -1,612 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Schema List Table
|
||||
*
|
||||
* @package Schema Pro
|
||||
**/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// Load WP_List_Table if not loaded.
|
||||
if ( ! class_exists( 'WP_List_Table' ) ) {
|
||||
include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Customizer Initialization
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class BSF_Custom_Post_List_Table extends WP_List_Table {
|
||||
|
||||
/**
|
||||
* Member Variable
|
||||
*
|
||||
* @var int $per_page items per page
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public $per_page = 30;
|
||||
|
||||
/**
|
||||
* Member Variable
|
||||
*
|
||||
* @var int $per_page items per page
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public $custom_post_type = 'post';
|
||||
|
||||
/**
|
||||
* BSF_Custom_Post_List_Table
|
||||
*
|
||||
* @param string $post_type Custom post type slug.
|
||||
*/
|
||||
public function __construct( $post_type ) {
|
||||
global $status, $page;
|
||||
|
||||
$this->custom_post_type = $post_type;
|
||||
parent::__construct(
|
||||
array(
|
||||
'singular' => $post_type,
|
||||
'plural' => $post_type . 's',
|
||||
'ajax' => false,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* No Advanced Headers found message
|
||||
*/
|
||||
public function no_items() {
|
||||
$post_type_object = get_post_type_object( $this->custom_post_type );
|
||||
echo sprintf(
|
||||
/* translators: %s: post type label */
|
||||
esc_html__( 'No %s found', 'wp-schema-pro' ),
|
||||
esc_html( $post_type_object->labels->singular_name )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default columns
|
||||
*
|
||||
* @param array $item default column items.
|
||||
* @param array $column_name default column names.
|
||||
* @return void
|
||||
*/
|
||||
public function column_default( $item, $column_name ) {
|
||||
|
||||
switch ( $column_name ) {
|
||||
case 'post_title':
|
||||
case 'date':
|
||||
default:
|
||||
}
|
||||
|
||||
do_action( 'manage_' . $this->custom_post_type . '_posts_custom_column', $column_name, $item['ID'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Set sortable columns
|
||||
*
|
||||
* @return sortable_columns sortable columns.
|
||||
*/
|
||||
public function get_sortable_columns() {
|
||||
$sortable_columns = array(
|
||||
'post_title' => array( 'post_title', false ),
|
||||
'date' => array( 'date', false ),
|
||||
);
|
||||
return apply_filters( 'manage_' . $this->custom_post_type . '_sortable_columns', $sortable_columns );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort columns
|
||||
*
|
||||
* @param array $a default column items.
|
||||
* @param array $b default column names.
|
||||
* @return array $result sortable columns.
|
||||
*/
|
||||
public function usort_reorder( $a, $b ) {
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
// If no sort, default to title.
|
||||
$orderby = ( ! empty( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'post_title';
|
||||
// If no order, default to asc.
|
||||
$order = ( ! empty( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'asc';
|
||||
// Determine sort order.
|
||||
$result = strcmp( $a[ $orderby ], $b[ $orderby ] );
|
||||
// Send final sort direction to usort.
|
||||
return ( 'asc' === $order ) ? $result : -$result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get columns
|
||||
*
|
||||
* @return array $columns display columns.
|
||||
*/
|
||||
public function get_columns() {
|
||||
$columns = array(
|
||||
'cb' => '<input type="checkbox" />',
|
||||
'post_title' => esc_html__( 'Title', 'wp-schema-pro' ),
|
||||
'date' => esc_html__( 'Date', 'wp-schema-pro' ),
|
||||
);
|
||||
return apply_filters( 'manage_' . $this->custom_post_type . '_posts_columns', $columns );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bulk actions
|
||||
*
|
||||
* @return array $actions bulk actions.
|
||||
*/
|
||||
public function get_bulk_actions() {
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
$current = ( ! empty( $_REQUEST['post_status'] ) ? sanitize_text_field( $_REQUEST['post_status'] ) : 'all' );
|
||||
if ( 'trash' === $current ) {
|
||||
$actions = array(
|
||||
'restore' => esc_html__( 'Restore', 'wp-schema-pro' ),
|
||||
'delete' => esc_html__( 'Delete Permanently', 'wp-schema-pro' ),
|
||||
);
|
||||
} elseif ( 'draft' === $current ) {
|
||||
$actions = array(
|
||||
'trash' => esc_html__( 'Move to Trash', 'wp-schema-pro' ),
|
||||
);
|
||||
} else {
|
||||
$actions = array(
|
||||
'draft' => esc_html__( 'Draft', 'wp-schema-pro' ),
|
||||
'trash' => esc_html__( 'Move to Trash', 'wp-schema-pro' ),
|
||||
);
|
||||
}
|
||||
return $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process bulk actions
|
||||
*/
|
||||
public function process_bulk_action() {
|
||||
|
||||
// security check!
|
||||
$action = $this->current_action();
|
||||
if ( 'trash' === $action || 'delete' === $action || 'draft' === $action || 'restore' === $action ) {
|
||||
if ( isset( $_POST['_wpnonce'] ) && ! empty( $_POST['_wpnonce'] ) ) {
|
||||
|
||||
$nonce = sanitize_text_field( $_POST['_wpnonce'] );
|
||||
$action = 'bulk-' . $this->_args['plural'];
|
||||
|
||||
if ( ! wp_verify_nonce( $nonce, $action ) ) {
|
||||
wp_die( 'Nope! Security check failed!' );
|
||||
}
|
||||
} else {
|
||||
wp_die( 'Nope! Security check failed!' );
|
||||
}
|
||||
|
||||
// Detect when a bulk action is being triggered...
|
||||
if ( 'trash' === $this->current_action() && isset( $_POST[ $this->_args['singular'] ] ) ) {
|
||||
foreach ( array_map( 'sanitize_text_field', $_POST[ $this->_args['singular'] ] ) as $id ) {
|
||||
wp_trash_post( $id );
|
||||
}
|
||||
}
|
||||
if ( 'delete' === $this->current_action() && isset( $_POST[ $this->_args['singular'] ] ) ) {
|
||||
foreach ( array_map( 'sanitize_text_field', $_POST[ $this->_args['singular'] ] ) as $id ) {
|
||||
wp_delete_post( $id );
|
||||
}
|
||||
}
|
||||
if ( 'draft' === $this->current_action() && isset( $_POST[ $this->_args['singular'] ] ) ) {
|
||||
foreach ( array_map( 'sanitize_text_field', $_POST[ $this->_args['singular'] ] ) as $id ) {
|
||||
$post = array(
|
||||
'ID' => $id,
|
||||
'post_status' => 'draft',
|
||||
);
|
||||
wp_update_post( $post );
|
||||
}
|
||||
}
|
||||
if ( 'restore' === $this->current_action() && isset( $_POST[ $this->_args['singular'] ] ) ) {
|
||||
foreach ( array_map( 'sanitize_text_field', $_POST[ $this->_args['singular'] ] ) as $id ) {
|
||||
wp_untrash_post( $id );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bulk actions
|
||||
*
|
||||
* @param array $item first columns checkbox.
|
||||
* @return array check box columns.
|
||||
*/
|
||||
public function column_cb( $item ) {
|
||||
return sprintf(
|
||||
'<input type="checkbox" name="%1$s[]" value="%2$s" />',
|
||||
$this->_args['singular'],
|
||||
$item['ID']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get columns headers
|
||||
*
|
||||
* @param array $item columns header item.
|
||||
* @return array columns.
|
||||
*/
|
||||
public function column_post_title( $item ) {
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$edit_post_link = get_edit_post_link( $item['ID'] );
|
||||
|
||||
$post_type_object = get_post_type_object( $this->custom_post_type );
|
||||
$can_edit_post = current_user_can( 'edit_post', $item['ID'] );
|
||||
$actions = array();
|
||||
$title = _draft_or_post_title();
|
||||
|
||||
$post_status = ( ! empty( $_REQUEST['post_status'] ) ) ? sanitize_text_field( $_REQUEST['post_status'] ) : 'all';
|
||||
if ( $can_edit_post && 'trash' !== $post_status ) {
|
||||
$actions['edit'] = sprintf(
|
||||
'<a href="%s" aria-label="%s">%s</a>',
|
||||
get_edit_post_link( $item['ID'] ),
|
||||
/* translators: %s: post title */
|
||||
esc_attr( sprintf( __( 'Edit “%s”', 'wp-schema-pro' ), $title ) ),
|
||||
__( 'Edit', 'wp-schema-pro' )
|
||||
);
|
||||
}
|
||||
|
||||
if ( current_user_can( 'delete_post', $item['ID'] ) ) {
|
||||
if ( 'trash' === $post_status ) {
|
||||
$actions['untrash'] = sprintf(
|
||||
'<a href="%s" aria-label="%s">%s</a>',
|
||||
wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&action=untrash', $item['ID'] ) ), 'untrash-post_' . $item['ID'] ),
|
||||
/* translators: %s: post title */
|
||||
esc_attr( sprintf( __( 'Restore “%s” from the Trash', 'wp-schema-pro' ), $title ) ),
|
||||
__( 'Restore', 'wp-schema-pro' )
|
||||
);
|
||||
} elseif ( EMPTY_TRASH_DAYS ) {
|
||||
$actions['trash'] = sprintf(
|
||||
'<a href="%s" class="submitdelete" aria-label="%s">%s</a>',
|
||||
get_delete_post_link( $item['ID'] ),
|
||||
/* translators: %s: post title */
|
||||
esc_attr( sprintf( __( 'Move “%s” to the Trash', 'wp-schema-pro' ), $title ) ),
|
||||
_x( 'Trash', 'verb', 'wp-schema-pro' )
|
||||
);
|
||||
}
|
||||
if ( 'trash' === $post_status || ! EMPTY_TRASH_DAYS ) {
|
||||
$actions['delete'] = sprintf(
|
||||
'<a href="%s" class="submitdelete" aria-label="%s">%s</a>',
|
||||
get_delete_post_link( $item['ID'], '', true ),
|
||||
/* translators: %s: post title */
|
||||
esc_attr( sprintf( __( 'Delete “%s” permanently', 'wp-schema-pro' ), $title ) ),
|
||||
__( 'Delete Permanently', 'wp-schema-pro' )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_post_type_viewable( $post_type_object ) ) {
|
||||
if ( in_array( $post_status, array( 'pending', 'draft', 'future' ), true ) ) {
|
||||
if ( $can_edit_post ) {
|
||||
$preview_link = get_preview_post_link( $post );
|
||||
$actions['view'] = sprintf(
|
||||
'<a href="%s" rel="bookmark" aria-label="%s">%s</a>',
|
||||
esc_url( $preview_link ),
|
||||
/* translators: %s: post title */
|
||||
esc_attr( sprintf( __( 'Preview “%s”', 'wp-schema-pro' ), $title ) ),
|
||||
__( 'Preview', 'wp-schema-pro' )
|
||||
);
|
||||
}
|
||||
} elseif ( 'trash' !== $post_status ) {
|
||||
$actions['view'] = sprintf(
|
||||
'<a href="%s" rel="bookmark" aria-label="%s">%s</a>',
|
||||
get_permalink( $item['ID'] ),
|
||||
/* translators: %s: post title */
|
||||
esc_attr( sprintf( __( 'View “%s”', 'wp-schema-pro' ), $title ) ),
|
||||
__( 'View', 'wp-schema-pro' )
|
||||
);
|
||||
}
|
||||
}
|
||||
global $post;
|
||||
$post = get_post( $item['ID'], OBJECT ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
|
||||
setup_postdata( $post );
|
||||
|
||||
ob_start();
|
||||
_post_states( $post );
|
||||
$post_states = ob_get_clean();
|
||||
|
||||
$actions = apply_filters( 'post_row_actions', $actions, $post );
|
||||
wp_reset_postdata();
|
||||
if ( 'trash' === $post_status ) {
|
||||
return sprintf( '<strong>%1$s%2$s</strong>%3$s', $item['post_title'], $post_states, $this->row_actions( $actions ) );
|
||||
} else {
|
||||
return sprintf( '<strong><a class="row-title" href="%1$s" aria-label="%2$s">%2$s</a>%3$s</strong>%4$s', $edit_post_link, $item['post_title'], $post_states, $this->row_actions( $actions ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the current page number
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @return int Current page number
|
||||
*/
|
||||
public function get_paged() {
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get date column
|
||||
*
|
||||
* @param array $post date column.
|
||||
*/
|
||||
public function column_date( $post ) {
|
||||
global $mode;
|
||||
|
||||
$post_id = $post['ID'];
|
||||
|
||||
if ( '0000-00-00 00:00:00' === $post['date'] ) {
|
||||
$t_time = __( 'Unpublished', 'wp-schema-pro' );
|
||||
$h_time = __( 'Unpublished', 'wp-schema-pro' );
|
||||
$time_diff = 0;
|
||||
} else {
|
||||
$t_time = get_the_time( __( 'Y/m/d g:i:s a', 'wp-schema-pro' ) );
|
||||
$m_time = $post['date'];
|
||||
$time = get_post_time( 'G', true, $post );
|
||||
|
||||
$time_diff = time() - $time;
|
||||
|
||||
if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) {
|
||||
/* translators: 1: time */
|
||||
$h_time = sprintf( __( '%s ago', 'wp-schema-pro' ), human_time_diff( $time ) );
|
||||
} else {
|
||||
$h_time = mysql2date( __( 'Y/m/d', 'wp-schema-pro' ), $m_time );
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'publish' === get_post_status( $post_id ) ) {
|
||||
$status = __( 'Published', 'wp-schema-pro' );
|
||||
} elseif ( 'future' === get_post_status( $post_id ) ) {
|
||||
if ( $time_diff > 0 ) {
|
||||
$status = '<strong class="error-message">' . __( 'Missed schedule', 'wp-schema-pro' ) . '</strong>';
|
||||
} else {
|
||||
$status = __( 'Scheduled', 'wp-schema-pro' );
|
||||
}
|
||||
} else {
|
||||
$status = __( 'Last Modified', 'wp-schema-pro' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the status text of the post.
|
||||
*
|
||||
* @since 4.8.0
|
||||
*
|
||||
* @param string $status The status text.
|
||||
* @param WP_Post $post Post object.
|
||||
* @param string $column_name The column name.
|
||||
* @param string $mode The list display mode ('excerpt' or 'list').
|
||||
*/
|
||||
$status = apply_filters( 'post_date_column_status', $status, $post, 'date', $mode );
|
||||
|
||||
if ( $status ) {
|
||||
echo esc_html( $status ) . '<br />';
|
||||
}
|
||||
|
||||
if ( 'excerpt' === $mode ) {
|
||||
/**
|
||||
* Filters the published time of the post.
|
||||
*
|
||||
* If `$mode` equals 'excerpt', the published time and date are both displayed.
|
||||
* If `$mode` equals 'list' (default), the publish date is displayed, with the
|
||||
* time and date together available as an abbreviation definition.
|
||||
*
|
||||
* @since 2.5.1
|
||||
*
|
||||
* @param string $t_time The published time.
|
||||
* @param WP_Post $post Post object.
|
||||
* @param string $column_name The column name.
|
||||
* @param string $mode The list display mode ('excerpt' or 'list').
|
||||
*/
|
||||
echo esc_html( apply_filters( 'post_date_column_time', $t_time, $post, 'date', $mode ) );
|
||||
} else {
|
||||
|
||||
/** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */
|
||||
echo '<abbr title="' . esc_attr( $t_time ) . '">' . esc_html( apply_filters( 'post_date_column_time', $h_time, $post, 'date', $mode ) ) . '</abbr>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the total number of {{custom-post}}
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @return int $total Total number of {{custom-post}}
|
||||
*/
|
||||
public function get_total_custom_posts() {
|
||||
$num_posts = wp_count_posts( $this->custom_post_type, 'readable' );
|
||||
$total_posts = array_sum( (array) $num_posts );
|
||||
// Subtract post types that are not included in the admin all list.
|
||||
foreach ( get_post_stati(
|
||||
array(
|
||||
'show_in_admin_all_list' => false,
|
||||
)
|
||||
) as $state ) {
|
||||
$total_posts -= $num_posts->$state;
|
||||
}
|
||||
return $total_posts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all items.
|
||||
*
|
||||
* @param string $search search string.
|
||||
*/
|
||||
public function prepare_items( $search = '' ) {
|
||||
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
$post_status = ( ! empty( $_REQUEST['post_status'] ) ) ? sanitize_text_field( $_REQUEST['post_status'] ) : 'any';
|
||||
$data = array();
|
||||
$args = array(
|
||||
'post_type' => $this->custom_post_type,
|
||||
'posts_per_page' => $this->per_page,
|
||||
'paged' => $this->get_paged(),
|
||||
's' => $search,
|
||||
'post_status' => $post_status,
|
||||
);
|
||||
|
||||
$the_query = new WP_Query( $args );
|
||||
if ( $the_query->have_posts() ) :
|
||||
$key = 0;
|
||||
while ( $the_query->have_posts() ) :
|
||||
$the_query->the_post();
|
||||
$data[ $key ] = array(
|
||||
'ID' => get_the_ID(),
|
||||
'post_title' => get_the_title(),
|
||||
'date' => get_the_date(),
|
||||
);
|
||||
$key++;
|
||||
endwhile;
|
||||
endif;
|
||||
wp_reset_postdata();
|
||||
|
||||
$columns = $this->get_columns();
|
||||
|
||||
$hidden = array(); // No hidden columns.
|
||||
|
||||
$sortable = $this->get_sortable_columns();
|
||||
|
||||
$this->_column_headers = array( $columns, $hidden, $sortable );
|
||||
|
||||
$this->process_bulk_action();
|
||||
|
||||
usort( $data, array( $this, 'usort_reorder' ) );
|
||||
|
||||
$total_items = $this->get_total_custom_posts();
|
||||
|
||||
$this->items = $data;
|
||||
|
||||
$this->set_pagination_args(
|
||||
array(
|
||||
'total_items' => $total_items,
|
||||
'per_page' => $this->per_page,
|
||||
'total_pages' => ceil( $total_items / $this->per_page ),
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Views.
|
||||
*
|
||||
* @return array list of all views.
|
||||
*/
|
||||
public function get_views() {
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
$status_links = array();
|
||||
$num_posts = wp_count_posts( $this->custom_post_type, 'readable' );
|
||||
$class = '';
|
||||
$total_posts = array_sum( (array) $num_posts );
|
||||
|
||||
// Subtract post types that are not included in the admin all list.
|
||||
foreach ( get_post_stati(
|
||||
array(
|
||||
'show_in_admin_all_list' => false,
|
||||
)
|
||||
) as $state ) {
|
||||
$total_posts -= $num_posts->$state;
|
||||
}
|
||||
|
||||
$class = empty( $class ) && empty( $_REQUEST['post_status'] ) ? ' class="current"' : '';
|
||||
$query_all_var = remove_query_arg( 'post_status' );
|
||||
/* translators: %s: count */
|
||||
$status_links['all'] = "<a href='" . esc_url( $query_all_var ) . "'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_posts, 'posts', 'wp-schema-pro' ), number_format_i18n( $total_posts ) ) . '</a>';
|
||||
|
||||
foreach ( get_post_stati(
|
||||
array(
|
||||
'show_in_admin_status_list' => true,
|
||||
),
|
||||
'objects'
|
||||
) as $status ) {
|
||||
$class = '';
|
||||
$status_name = $status->name;
|
||||
|
||||
if ( ! in_array( $status_name, array( 'publish', 'draft', 'pending', 'trash', 'future', 'private', 'auto-draft' ), true ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( empty( $num_posts->$status_name ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( isset( $_REQUEST['post_status'] ) && $status_name === $_REQUEST['post_status'] ) {
|
||||
$class = ' class="current"';
|
||||
}
|
||||
|
||||
$label = $status->label_count;
|
||||
$query_var = add_query_arg( 'post_status', $status_name );
|
||||
$status_links[ $status_name ] = "<a href='" . esc_url( $query_var ) . "'$class>" . sprintf( translate_nooped_plural( $label, $num_posts->$status_name ), number_format_i18n( $num_posts->$status_name ) ) . '</a>';
|
||||
}
|
||||
|
||||
return $status_links;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render List Table Markup.
|
||||
*/
|
||||
public function render_markup() {
|
||||
if ( isset( $_REQUEST['wp_schema_pro_admin_page_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['wp_schema_pro_admin_page_nonce'] ), 'wp_schema_pro_admin_page' ) ) {
|
||||
return;
|
||||
}
|
||||
$this->prepare_items();
|
||||
$post_type = $this->_args['singular'];
|
||||
$post_obj = get_post_type_object( $post_type );
|
||||
?>
|
||||
<div class="wrap">
|
||||
<h1 class="wp-heading-inline"><?php echo esc_html( $post_obj->labels->name ); ?></h1>
|
||||
<?php
|
||||
$post_new_file = 'post-new.php?post_type=' . $post_type;
|
||||
|
||||
if ( isset( $post_new_file ) && current_user_can( $post_obj->cap->create_posts ) ) {
|
||||
echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="page-title-action">' . esc_html( $post_obj->labels->add_new_item ) . '</a>';
|
||||
}
|
||||
// Search results for.
|
||||
$s = isset( $_REQUEST['s'] ) && strlen( sanitize_text_field( $_REQUEST['s'] ) ) ? sanitize_text_field( $_REQUEST['s'] ) : null;
|
||||
if ( $s ) {
|
||||
/* translators: %s: search keywords */
|
||||
printf( '<span class="subtitle">' . esc_html__( 'Search results for “%s”', 'wp-schema-pro' ) . '</span>', esc_html( $s ) );
|
||||
}
|
||||
?>
|
||||
<br><br>
|
||||
<?php
|
||||
// table post views with count.
|
||||
$this->views();
|
||||
?>
|
||||
<form id="<?php echo esc_attr( $post_type ); ?>-filter" method="post">
|
||||
<?php
|
||||
if ( $s ) {
|
||||
$this->prepare_items( $s );
|
||||
} else {
|
||||
$this->prepare_items();
|
||||
}
|
||||
$this->search_box(
|
||||
sprintf(
|
||||
/* translators: %s: Post Label */
|
||||
esc_html__( 'Search %s', 'wp-schema-pro' ),
|
||||
$post_obj->labels->name
|
||||
),
|
||||
'search_id'
|
||||
);
|
||||
$this->display();
|
||||
?>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,484 +0,0 @@
|
||||
.select2-container {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
vertical-align: middle; }
|
||||
.select2-container .select2-selection--single {
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 30px;
|
||||
user-select: none;
|
||||
-webkit-user-select: none; }
|
||||
.select2-container .select2-selection--single .select2-selection__rendered {
|
||||
display: block;
|
||||
padding-left: 8px;
|
||||
padding-right: 20px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap; }
|
||||
.select2-container .select2-selection--single .select2-selection__clear {
|
||||
position: relative; }
|
||||
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
|
||||
padding-right: 8px;
|
||||
padding-left: 20px; }
|
||||
.select2-container .select2-selection--multiple {
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
min-height: 32px;
|
||||
user-select: none;
|
||||
-webkit-user-select: none; }
|
||||
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
padding-left: 8px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap; }
|
||||
.select2-container .select2-search--inline {
|
||||
float: left; }
|
||||
.select2-container .select2-search--inline .select2-search__field {
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
font-size: 100%;
|
||||
margin-top: 5px;
|
||||
padding: 0; }
|
||||
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none; }
|
||||
|
||||
.select2-dropdown {
|
||||
background-color: white;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: -100000px;
|
||||
width: 100%;
|
||||
z-index: 1051; }
|
||||
|
||||
.select2-results {
|
||||
display: block; }
|
||||
|
||||
.select2-results__options {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
|
||||
.select2-results__option {
|
||||
padding: 6px;
|
||||
user-select: none;
|
||||
-webkit-user-select: none; }
|
||||
.select2-results__option[aria-selected] {
|
||||
cursor: pointer; }
|
||||
|
||||
.select2-container--open .select2-dropdown {
|
||||
left: 0; }
|
||||
|
||||
.select2-container--open .select2-dropdown--above {
|
||||
border-bottom: none;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0; }
|
||||
|
||||
.select2-container--open .select2-dropdown--below {
|
||||
border-top: none;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0; }
|
||||
|
||||
.select2-search--dropdown {
|
||||
display: block;
|
||||
padding: 4px; }
|
||||
.select2-search--dropdown .select2-search__field {
|
||||
padding: 4px;
|
||||
width: 100%;
|
||||
box-sizing: border-box; }
|
||||
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none; }
|
||||
.select2-search--dropdown.select2-search--hide {
|
||||
display: none; }
|
||||
|
||||
.select2-close-mask {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
min-height: 100%;
|
||||
min-width: 100%;
|
||||
height: auto;
|
||||
width: auto;
|
||||
opacity: 0;
|
||||
z-index: 99;
|
||||
background-color: #fff;
|
||||
filter: alpha(opacity=0); }
|
||||
|
||||
.select2-hidden-accessible {
|
||||
border: 0 !important;
|
||||
clip: rect(0 0 0 0) !important;
|
||||
height: 1px !important;
|
||||
margin: -1px !important;
|
||||
overflow: hidden !important;
|
||||
padding: 0 !important;
|
||||
position: absolute !important;
|
||||
width: 1px !important; }
|
||||
|
||||
.select2-container--default .select2-selection--single {
|
||||
background-color: #fff;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px; }
|
||||
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
||||
color: #444;
|
||||
line-height: 28px; }
|
||||
.select2-container--default .select2-selection--single .select2-selection__clear {
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
font-weight: bold; }
|
||||
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
||||
color: #999; }
|
||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
||||
height: 26px;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
right: 1px;
|
||||
width: 20px; }
|
||||
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
||||
border-color: #888 transparent transparent transparent;
|
||||
border-style: solid;
|
||||
border-width: 5px 4px 0 4px;
|
||||
height: 0;
|
||||
left: 50%;
|
||||
margin-left: -4px;
|
||||
margin-top: -2px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 0; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
||||
float: left; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
||||
left: 1px;
|
||||
right: auto; }
|
||||
|
||||
.select2-container--default.select2-container--disabled .select2-selection--single {
|
||||
background-color: #eee;
|
||||
cursor: default; }
|
||||
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
||||
display: none; }
|
||||
|
||||
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
||||
border-color: transparent transparent #888 transparent;
|
||||
border-width: 0 4px 5px 4px; }
|
||||
|
||||
.select2-container--default .select2-selection--multiple {
|
||||
background-color: white;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px;
|
||||
cursor: text; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
|
||||
box-sizing: border-box;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
width: 100%; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
|
||||
list-style: none; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
|
||||
color: #999;
|
||||
margin-top: 5px;
|
||||
float: left; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__clear {
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-right: 10px; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
||||
background-color: #e4e4e4;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px;
|
||||
cursor: default;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
margin-top: 5px;
|
||||
padding: 0 5px; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
||||
color: #999;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
margin-right: 2px; }
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
||||
color: #333; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
||||
float: right; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
||||
margin-left: 5px;
|
||||
margin-right: auto; }
|
||||
|
||||
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
||||
margin-left: 2px;
|
||||
margin-right: auto; }
|
||||
|
||||
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
||||
border: solid black 1px;
|
||||
outline: 0; }
|
||||
|
||||
.select2-container--default.select2-container--disabled .select2-selection--multiple {
|
||||
background-color: #eee;
|
||||
cursor: default; }
|
||||
|
||||
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
||||
display: none; }
|
||||
|
||||
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0; }
|
||||
|
||||
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0; }
|
||||
|
||||
.select2-container--default .select2-search--dropdown .select2-search__field {
|
||||
border: 1px solid #aaa; }
|
||||
|
||||
.select2-container--default .select2-search--inline .select2-search__field {
|
||||
background: transparent;
|
||||
border: none;
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
-webkit-appearance: textfield; }
|
||||
|
||||
.select2-container--default .select2-results > .select2-results__options {
|
||||
max-height: 200px;
|
||||
overflow-y: auto; }
|
||||
|
||||
.select2-container--default .select2-results__option[role=group] {
|
||||
padding: 0; }
|
||||
|
||||
.select2-container--default .select2-results__option[aria-disabled=true] {
|
||||
color: #999; }
|
||||
|
||||
.select2-container--default .select2-results__option[aria-selected=true] {
|
||||
background-color: #ddd; }
|
||||
|
||||
.select2-container--default .select2-results__option .select2-results__option {
|
||||
padding-left: 1em; }
|
||||
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
||||
padding-left: 0; }
|
||||
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
||||
margin-left: -1em;
|
||||
padding-left: 2em; }
|
||||
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
||||
margin-left: -2em;
|
||||
padding-left: 3em; }
|
||||
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
||||
margin-left: -3em;
|
||||
padding-left: 4em; }
|
||||
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
||||
margin-left: -4em;
|
||||
padding-left: 5em; }
|
||||
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
||||
margin-left: -5em;
|
||||
padding-left: 6em; }
|
||||
|
||||
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
||||
background-color: #5897fb;
|
||||
color: white; }
|
||||
|
||||
.select2-container--default .select2-results__group {
|
||||
cursor: default;
|
||||
display: block;
|
||||
padding: 6px; }
|
||||
|
||||
.select2-container--classic .select2-selection--single {
|
||||
background-color: #f7f7f7;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px;
|
||||
outline: 0;
|
||||
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
|
||||
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
||||
.select2-container--classic .select2-selection--single:focus {
|
||||
border: 1px solid #5897fb; }
|
||||
.select2-container--classic .select2-selection--single .select2-selection__rendered {
|
||||
color: #444;
|
||||
line-height: 28px; }
|
||||
.select2-container--classic .select2-selection--single .select2-selection__clear {
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
font-weight: bold;
|
||||
margin-right: 10px; }
|
||||
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
|
||||
color: #999; }
|
||||
.select2-container--classic .select2-selection--single .select2-selection__arrow {
|
||||
background-color: #ddd;
|
||||
border: none;
|
||||
border-left: 1px solid #aaa;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
height: 26px;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
right: 1px;
|
||||
width: 20px;
|
||||
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
||||
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
||||
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
|
||||
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
|
||||
border-color: #888 transparent transparent transparent;
|
||||
border-style: solid;
|
||||
border-width: 5px 4px 0 4px;
|
||||
height: 0;
|
||||
left: 50%;
|
||||
margin-left: -4px;
|
||||
margin-top: -2px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 0; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
||||
float: left; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
||||
border: none;
|
||||
border-right: 1px solid #aaa;
|
||||
border-radius: 0;
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
left: 1px;
|
||||
right: auto; }
|
||||
|
||||
.select2-container--classic.select2-container--open .select2-selection--single {
|
||||
border: 1px solid #5897fb; }
|
||||
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
|
||||
background: transparent;
|
||||
border: none; }
|
||||
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
||||
border-color: transparent transparent #888 transparent;
|
||||
border-width: 0 4px 5px 4px; }
|
||||
|
||||
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
|
||||
border-top: none;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
|
||||
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
|
||||
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
||||
|
||||
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
|
||||
border-bottom: none;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
|
||||
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
|
||||
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
|
||||
|
||||
.select2-container--classic .select2-selection--multiple {
|
||||
background-color: white;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px;
|
||||
cursor: text;
|
||||
outline: 0; }
|
||||
.select2-container--classic .select2-selection--multiple:focus {
|
||||
border: 1px solid #5897fb; }
|
||||
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0 5px; }
|
||||
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
|
||||
display: none; }
|
||||
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
|
||||
background-color: #e4e4e4;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 4px;
|
||||
cursor: default;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
margin-top: 5px;
|
||||
padding: 0 5px; }
|
||||
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
|
||||
color: #888;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
margin-right: 2px; }
|
||||
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
|
||||
color: #555; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
||||
float: right; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
||||
margin-left: 5px;
|
||||
margin-right: auto; }
|
||||
|
||||
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
||||
margin-left: 2px;
|
||||
margin-right: auto; }
|
||||
|
||||
.select2-container--classic.select2-container--open .select2-selection--multiple {
|
||||
border: 1px solid #5897fb; }
|
||||
|
||||
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
|
||||
border-top: none;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0; }
|
||||
|
||||
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
|
||||
border-bottom: none;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0; }
|
||||
|
||||
.select2-container--classic .select2-search--dropdown .select2-search__field {
|
||||
border: 1px solid #aaa;
|
||||
outline: 0; }
|
||||
|
||||
.select2-container--classic .select2-search--inline .select2-search__field {
|
||||
outline: 0;
|
||||
box-shadow: none; }
|
||||
|
||||
.select2-container--classic .select2-dropdown {
|
||||
background-color: white;
|
||||
border: 1px solid transparent; }
|
||||
|
||||
.select2-container--classic .select2-dropdown--above {
|
||||
border-bottom: none; }
|
||||
|
||||
.select2-container--classic .select2-dropdown--below {
|
||||
border-top: none; }
|
||||
|
||||
.select2-container--classic .select2-results > .select2-results__options {
|
||||
max-height: 200px;
|
||||
overflow-y: auto; }
|
||||
|
||||
.select2-container--classic .select2-results__option[role=group] {
|
||||
padding: 0; }
|
||||
|
||||
.select2-container--classic .select2-results__option[aria-disabled=true] {
|
||||
color: grey; }
|
||||
|
||||
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
|
||||
background-color: #3875d7;
|
||||
color: white; }
|
||||
|
||||
.select2-container--classic .select2-results__group {
|
||||
cursor: default;
|
||||
display: block;
|
||||
padding: 6px; }
|
||||
|
||||
.select2-container--classic.select2-container--open .select2-dropdown {
|
||||
border-color: #5897fb; }
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,103 +0,0 @@
|
||||
/* Select2 */
|
||||
span.select2.select2-container.select2-container--default {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
li.select2-results__option.select2-results__message {
|
||||
background: #ecebeb;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
tr td .select2-container {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.select2-container--default.select2-container--focus .select2-selection--multiple,
|
||||
.select2-container--default .select2-selection--multiple {
|
||||
border: 1px solid #ddd;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.select2-container .select2-search--inline,
|
||||
.select2-container--default .select2-search--inline .select2-search__field {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Target Rule field */
|
||||
.bsf-target-rule-condition,
|
||||
.bsf-user-role-condition {
|
||||
position: relative;
|
||||
padding: 0 30px 0 0;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.target_rule-specific-page-wrap {
|
||||
position: relative;
|
||||
padding: 0 30px 0 0;
|
||||
}
|
||||
|
||||
.user_role-add-rule-wrap,
|
||||
.target_rule-add-rule-wrap,
|
||||
.target_rule-add-exclusion-rule,
|
||||
.user_role-add-rule-wrap {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.bsf-target-rule-display-on,
|
||||
.bsf-target-rule-exclude-on {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.target_rule-condition-delete,
|
||||
.user_role-condition-delete {
|
||||
position: absolute;
|
||||
color: #999;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
font-size: 18px;
|
||||
line-height: 18px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.target_rule-condition-delete:hover {
|
||||
color: #d54e21;
|
||||
}
|
||||
|
||||
.target_rule-add-rule-wrap {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.target_rule-add-exclusion-rule {
|
||||
display: inline-block;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.configure-content [data-element="exclude_from"],
|
||||
.configure-content [data-element="exclusive_on"] {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.configure-content .bsf-allow-specific-posts input,
|
||||
.configure-content .bsf-post-types {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.hide-on-devices input[type=checkbox] {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.search-panel.search-close-icon {
|
||||
pointer-events: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bsf-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
@@ -1,279 +0,0 @@
|
||||
/* eslint-env jquery */
|
||||
(function ($) {
|
||||
const initTargetRuleSelect2 = function (selector) {
|
||||
$(selector).select2({
|
||||
placeholder: 'Search pages / post / archives',
|
||||
|
||||
ajax: {
|
||||
url: ajaxurl,
|
||||
dataType: 'json',
|
||||
method: 'post',
|
||||
delay: 250,
|
||||
data(params) {
|
||||
return {
|
||||
q: params.term, // search term
|
||||
page: params.page,
|
||||
action: 'bsf_get_posts_by_query',
|
||||
nonce: Targetrule.security,
|
||||
};
|
||||
},
|
||||
processResults(data) {
|
||||
// console.log(data);
|
||||
// console.log("inside");
|
||||
// parse the results into the format expected by Select2.
|
||||
// since we are using custom formatting functions we do not need to
|
||||
// alter the remote JSON data
|
||||
|
||||
return {
|
||||
results: data,
|
||||
};
|
||||
},
|
||||
cache: true,
|
||||
},
|
||||
minimumInputLength: 2,
|
||||
});
|
||||
};
|
||||
|
||||
const updateTargetRuleInput = function (wrapper) {
|
||||
const ruleInput = wrapper.find('.bsf-target_rule-input');
|
||||
const newValue = [];
|
||||
|
||||
wrapper.find('.bsf-target-rule-condition').each(function () {
|
||||
const $this = $(this);
|
||||
let tempObj = {};
|
||||
const ruleCondition = $this.find('select.target_rule-condition');
|
||||
const specificPage = $this.find('select.target_rule-specific-page');
|
||||
|
||||
const ruleConditionVal = ruleCondition.val();
|
||||
const specificPageVal = specificPage.val();
|
||||
|
||||
if ('' !== ruleConditionVal) {
|
||||
tempObj = {
|
||||
type: ruleConditionVal,
|
||||
specific: specificPageVal,
|
||||
};
|
||||
|
||||
newValue.push(tempObj);
|
||||
}
|
||||
});
|
||||
|
||||
const rulesString = JSON.stringify(newValue);
|
||||
ruleInput.val(rulesString);
|
||||
};
|
||||
|
||||
const updateCloseButton = function (wrapper) {
|
||||
const type = wrapper
|
||||
.closest('.bsf-target-rule-wrapper')
|
||||
.attr('data-type');
|
||||
const rules = wrapper.find('.bsf-target-rule-condition');
|
||||
let showClose = false;
|
||||
|
||||
if ('display' === type) {
|
||||
if (rules.length > 1) {
|
||||
showClose = true;
|
||||
}
|
||||
} else {
|
||||
showClose = true;
|
||||
}
|
||||
|
||||
rules.each(function () {
|
||||
if (showClose) {
|
||||
jQuery(this)
|
||||
.find('.target_rule-condition-delete')
|
||||
.removeClass('bsf-hidden');
|
||||
} else {
|
||||
jQuery(this)
|
||||
.find('.target_rule-condition-delete')
|
||||
.addClass('bsf-hidden');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const updateExclusionButton = function (forceShow, forceHide) {
|
||||
const displayOn = $('.bsf-target-rule-display-on-wrap');
|
||||
const excludeOn = $('.bsf-target-rule-exclude-on-wrap');
|
||||
|
||||
const excludeFieldWrap = excludeOn.closest('tr');
|
||||
const addExcludeBlock = displayOn.find(
|
||||
'.target_rule-add-exclusion-rule'
|
||||
);
|
||||
const excludeConditions = excludeOn.find('.bsf-target-rule-condition');
|
||||
|
||||
if (true === forceHide) {
|
||||
excludeFieldWrap.addClass('bsf-hidden');
|
||||
addExcludeBlock.removeClass('bsf-hidden');
|
||||
} else if (true === forceShow) {
|
||||
excludeFieldWrap.removeClass('bsf-hidden');
|
||||
addExcludeBlock.addClass('bsf-hidden');
|
||||
} else if (
|
||||
1 === excludeConditions.length &&
|
||||
'' ===
|
||||
$(excludeConditions[0])
|
||||
.find('select.target_rule-condition')
|
||||
.val()
|
||||
) {
|
||||
excludeFieldWrap.addClass('bsf-hidden');
|
||||
addExcludeBlock.removeClass('bsf-hidden');
|
||||
} else {
|
||||
excludeFieldWrap.removeClass('bsf-hidden');
|
||||
addExcludeBlock.addClass('bsf-hidden');
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
jQuery('.bsf-target-rule-condition').each(function () {
|
||||
const $this = $(this),
|
||||
condition = $this.find('select.target_rule-condition'),
|
||||
conditionVal = condition.val(),
|
||||
specificPage = $this.next('.target_rule-specific-page-wrap');
|
||||
|
||||
if ('specifics' === conditionVal) {
|
||||
specificPage.slideDown(300);
|
||||
}
|
||||
});
|
||||
|
||||
jQuery(
|
||||
'.bsf-target-rule-selector-wrapper select.target-rule-select2'
|
||||
).each(function (index, el) {
|
||||
initTargetRuleSelect2(el);
|
||||
});
|
||||
|
||||
jQuery('.bsf-target-rule-selector-wrapper').each(function () {
|
||||
updateCloseButton(jQuery(this));
|
||||
});
|
||||
|
||||
jQuery(document).on(
|
||||
'change',
|
||||
'.bsf-target-rule-condition select.target_rule-condition',
|
||||
function () {
|
||||
const $this = jQuery(this),
|
||||
thisVal = $this.val(),
|
||||
fieldWrap = $this.closest('.bsf-target-rule-wrapper');
|
||||
|
||||
if ('specifics' === thisVal) {
|
||||
$this
|
||||
.closest('.bsf-target-rule-condition')
|
||||
.next('.target_rule-specific-page-wrap')
|
||||
.slideDown(300);
|
||||
} else {
|
||||
$this
|
||||
.closest('.bsf-target-rule-condition')
|
||||
.next('.target_rule-specific-page-wrap')
|
||||
.slideUp(300);
|
||||
}
|
||||
|
||||
updateTargetRuleInput(fieldWrap);
|
||||
}
|
||||
);
|
||||
|
||||
jQuery('.bsf-target-rule-selector-wrapper').on(
|
||||
'change',
|
||||
'.target-rule-select2',
|
||||
function () {
|
||||
const $this = jQuery(this),
|
||||
fieldWrap = $this.closest('.bsf-target-rule-wrapper');
|
||||
|
||||
updateTargetRuleInput(fieldWrap);
|
||||
}
|
||||
);
|
||||
|
||||
jQuery('.bsf-target-rule-selector-wrapper').on(
|
||||
'click',
|
||||
'.target_rule-add-rule-wrap a',
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
const $this = jQuery(this),
|
||||
id = $this.attr('data-rule-id'),
|
||||
newId = parseInt(id) + 1,
|
||||
type = $this.attr('data-rule-type'),
|
||||
ruleWrap = $this
|
||||
.closest('.bsf-target-rule-selector-wrapper')
|
||||
.find('.target_rule-builder-wrap'),
|
||||
template = wp.template(
|
||||
'bsf-target-rule-' + type + '-condition'
|
||||
),
|
||||
fieldWrap = $this.closest('.bsf-target-rule-wrapper');
|
||||
|
||||
ruleWrap.append(template({ id: newId, type }));
|
||||
|
||||
initTargetRuleSelect2(
|
||||
'.bsf-target-rule-' + type + '-on .target-rule-select2'
|
||||
);
|
||||
|
||||
$this.attr('data-rule-id', newId);
|
||||
|
||||
updateCloseButton(fieldWrap);
|
||||
}
|
||||
);
|
||||
|
||||
jQuery('.bsf-target-rule-selector-wrapper').on(
|
||||
'click',
|
||||
'.target_rule-condition-delete',
|
||||
function () {
|
||||
const $this = jQuery(this),
|
||||
ruleCondition = $this.closest('.bsf-target-rule-condition'),
|
||||
fieldWrap = $this.closest('.bsf-target-rule-wrapper');
|
||||
let cnt = 0;
|
||||
const dataType = fieldWrap.attr('data-type');
|
||||
if (
|
||||
'exclude' === dataType &&
|
||||
fieldWrap.find('.bsf-target-rule-condition').length === 1
|
||||
) {
|
||||
fieldWrap.find('.target_rule-condition').val('');
|
||||
fieldWrap.find('.target_rule-specific-page').val('');
|
||||
fieldWrap.find('.target_rule-condition').trigger('change');
|
||||
updateExclusionButton(false, true);
|
||||
} else {
|
||||
$this
|
||||
.parent('.bsf-target-rule-condition')
|
||||
.next('.target_rule-specific-page-wrap')
|
||||
.remove();
|
||||
ruleCondition.remove();
|
||||
}
|
||||
|
||||
fieldWrap.find('.bsf-target-rule-condition').each(function (i) {
|
||||
const condition = jQuery(this),
|
||||
oldRuleId = condition.attr('data-rule'),
|
||||
selectLocation = condition.find(
|
||||
'.target_rule-condition'
|
||||
),
|
||||
locationName = selectLocation.attr('name');
|
||||
|
||||
condition.attr('data-rule', i);
|
||||
|
||||
selectLocation.attr(
|
||||
'name',
|
||||
locationName.replace(
|
||||
'[' + oldRuleId + ']',
|
||||
'[' + i + ']'
|
||||
)
|
||||
);
|
||||
|
||||
condition
|
||||
.removeClass('bsf-target-rule-' + oldRuleId)
|
||||
.addClass('bsf-target-rule-' + i);
|
||||
|
||||
cnt = i;
|
||||
});
|
||||
|
||||
fieldWrap
|
||||
.find('.target_rule-add-rule-wrap a')
|
||||
.attr('data-rule-id', cnt);
|
||||
|
||||
updateCloseButton(fieldWrap);
|
||||
updateTargetRuleInput(fieldWrap);
|
||||
}
|
||||
);
|
||||
|
||||
jQuery('.bsf-target-rule-selector-wrapper').on(
|
||||
'click',
|
||||
'.target_rule-add-exclusion-rule a',
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
updateExclusionButton(true);
|
||||
}
|
||||
);
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -1,97 +0,0 @@
|
||||
/* eslint-env jquery */
|
||||
( function ( $ ) {
|
||||
const userRoleUpdateCloseButton = function ( wrapper ) {
|
||||
const rules = wrapper.find( '.bsf-user-role-condition' );
|
||||
let showClose = false;
|
||||
|
||||
if ( rules.length > 1 ) {
|
||||
showClose = true;
|
||||
}
|
||||
|
||||
rules.each( function () {
|
||||
if ( showClose ) {
|
||||
jQuery( this )
|
||||
.find( '.user_role-condition-delete' )
|
||||
.removeClass( 'bsf-hidden' );
|
||||
} else {
|
||||
jQuery( this )
|
||||
.find( '.user_role-condition-delete' )
|
||||
.addClass( 'bsf-hidden' );
|
||||
}
|
||||
} );
|
||||
};
|
||||
|
||||
$( document ).ready( function () {
|
||||
jQuery( '.bsf-user-role-selector-wrapper' ).each( function () {
|
||||
userRoleUpdateCloseButton( jQuery( this ) );
|
||||
} );
|
||||
|
||||
jQuery( '.bsf-user-role-selector-wrapper' ).on(
|
||||
'click',
|
||||
'.user_role-add-rule-wrap a',
|
||||
function ( e ) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
const $this = jQuery( this ),
|
||||
id = $this.attr( 'data-rule-id' ),
|
||||
newId = parseInt( id ) + 1,
|
||||
ruleWrap = $this
|
||||
.closest( '.bsf-user-role-selector-wrapper' )
|
||||
.find( '.user_role-builder-wrap' ),
|
||||
template = wp.template( 'bsf-user-role-condition' ),
|
||||
fieldWrap = $this.closest( '.bsf-user-role-wrapper' );
|
||||
|
||||
ruleWrap.append( template( { id: newId } ) );
|
||||
|
||||
$this.attr( 'data-rule-id', newId );
|
||||
|
||||
userRoleUpdateCloseButton( fieldWrap );
|
||||
}
|
||||
);
|
||||
|
||||
jQuery( '.bsf-user-role-selector-wrapper' ).on(
|
||||
'click',
|
||||
'.user_role-condition-delete',
|
||||
function () {
|
||||
const $this = jQuery( this ),
|
||||
ruleCondition = $this.closest( '.bsf-user-role-condition' ),
|
||||
fieldWrap = $this.closest( '.bsf-user-role-wrapper' );
|
||||
let cnt = 0;
|
||||
ruleCondition.remove();
|
||||
|
||||
fieldWrap
|
||||
.find( '.bsf-user-role-condition' )
|
||||
.each( function ( i ) {
|
||||
const condition = jQuery( this ),
|
||||
oldRuleId = condition.attr( 'data-rule' ),
|
||||
selectLocation = condition.find(
|
||||
'.user_role-condition'
|
||||
),
|
||||
locationName = selectLocation.attr( 'name' );
|
||||
|
||||
condition.attr( 'data-rule', i );
|
||||
|
||||
selectLocation.attr(
|
||||
'name',
|
||||
locationName.replace(
|
||||
'[' + oldRuleId + ']',
|
||||
'[' + i + ']'
|
||||
)
|
||||
);
|
||||
|
||||
condition
|
||||
.removeClass( 'bsf-user-role-' + oldRuleId )
|
||||
.addClass( 'bsf-user-role-' + i );
|
||||
|
||||
cnt = i;
|
||||
} );
|
||||
|
||||
fieldWrap
|
||||
.find( '.user_role-add-rule-wrap a' )
|
||||
.attr( 'data-rule-id', cnt );
|
||||
|
||||
userRoleUpdateCloseButton( fieldWrap );
|
||||
}
|
||||
);
|
||||
} );
|
||||
} )( jQuery );
|
||||
Reference in New Issue
Block a user