Add comments view, warnings to migrate page
This commit is contained in:
parent
8707387ab8
commit
055c22e9c3
5 changed files with 99 additions and 24 deletions
|
@ -5,12 +5,10 @@
|
||||||
if ( $('body').hasClass('edit-comments-php') ) {
|
if ( $('body').hasClass('edit-comments-php') ) {
|
||||||
//Insert Mentions into comment content on reply
|
//Insert Mentions into comment content on reply
|
||||||
$( '.comment-inline.button-link' ).on( 'click', function( event ) {
|
$( '.comment-inline.button-link' ).on( 'click', function( event ) {
|
||||||
// Summary/ContentWarning Syntax [CW]
|
|
||||||
var summary = $(this).attr('data-summary') ? '[' + $(this).attr('data-summary') + '] ' : '';
|
|
||||||
var recipients = $(this).attr('data-recipients') ? $(this).attr('data-recipients') + ' ' : '';
|
var recipients = $(this).attr('data-recipients') ? $(this).attr('data-recipients') + ' ' : '';
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
if ( summary || recipients ){
|
if ( recipients ){
|
||||||
$('#replycontent').val( summary + recipients )
|
$('#replycontent').val( recipients )
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
})
|
})
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Admin {
|
||||||
\add_action( 'admin_enqueue_scripts', array( '\Activitypub\Admin', 'enqueue_script_actions' ), 10, 2 );
|
\add_action( 'admin_enqueue_scripts', array( '\Activitypub\Admin', 'enqueue_script_actions' ), 10, 2 );
|
||||||
\add_action( 'wp_ajax_migrate_post', array( '\Activitypub\Admin', 'migrate_post_action' ) );
|
\add_action( 'wp_ajax_migrate_post', array( '\Activitypub\Admin', 'migrate_post_action' ) );
|
||||||
\add_filter( 'comment_row_actions', array( '\Activitypub\Admin', 'reply_comments_actions' ), 10, 2 );
|
\add_filter( 'comment_row_actions', array( '\Activitypub\Admin', 'reply_comments_actions' ), 10, 2 );
|
||||||
|
\add_filter( 'views_tools_page_activitypub_tools', array( '\Activitypub\Table\Migrate_List', 'get_activitypub_tools_views' ), 10 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -213,6 +213,10 @@ class Admin {
|
||||||
wp_die();
|
wp_die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hook comment_row_actions
|
||||||
|
* Reply to ActivityPub Comments from the edit-comments.php screen
|
||||||
|
*/
|
||||||
public static function reply_comments_actions( $actions, $comment ) {
|
public static function reply_comments_actions( $actions, $comment ) {
|
||||||
$recipients = \Activitypub\get_recipients( $comment->comment_ID );
|
$recipients = \Activitypub\get_recipients( $comment->comment_ID );
|
||||||
$summary = \Activitypub\get_summary( $comment->comment_ID );
|
$summary = \Activitypub\get_summary( $comment->comment_ID );
|
||||||
|
|
|
@ -39,13 +39,18 @@ class Posts {
|
||||||
public static function get_posts_with_activitypub_comments() {
|
public static function get_posts_with_activitypub_comments() {
|
||||||
$args = array(
|
$args = array(
|
||||||
'comment_type' => 'activitypub',
|
'comment_type' => 'activitypub',
|
||||||
|
'status' => 'all',
|
||||||
);
|
);
|
||||||
$activitypub_comments = \get_comments( $args );
|
$activitypub_comments = \get_comments( $args );
|
||||||
$activitypub_comments_posts = array();
|
$activitypub_comments_posts = array();
|
||||||
foreach ( $activitypub_comments as $comment ) {
|
foreach ( $activitypub_comments as $comment ) {
|
||||||
|
$meta = \get_post_meta( $comment->comment_post_ID, '_activitypub_permalink_compat', true );
|
||||||
|
if ( ! $meta ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$activitypub_comments_posts[] = $comment->comment_post_ID;
|
$activitypub_comments_posts[] = $comment->comment_post_ID;
|
||||||
}
|
}
|
||||||
return \get_posts( \array_unique( $activitypub_comments_posts ) );
|
return ( empty( \array_unique( $activitypub_comments_posts ) ) ? $activitypub_comments_posts : \get_posts( \array_unique( $activitypub_comments_posts ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function count_posts_to_migrate() {
|
public static function count_posts_to_migrate() {
|
||||||
|
@ -53,6 +58,11 @@ class Posts {
|
||||||
return \count( $posts );
|
return \count( $posts );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function count_posts_with_comments_to_migrate() {
|
||||||
|
$posts = self::get_posts_with_activitypub_comments();
|
||||||
|
return \count( $posts );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* migrate_post
|
* migrate_post
|
||||||
* Federate Delete
|
* Federate Delete
|
||||||
|
|
|
@ -22,14 +22,65 @@ class Migrate_List extends \WP_List_Table {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_bulk_actions() {
|
||||||
|
$actions = array(
|
||||||
|
'delete' => 'Remove backwards compatibility'
|
||||||
|
);
|
||||||
|
return $actions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function get_activitypub_tools_views() {
|
||||||
|
$posts_count = \Activitypub\Tools\Posts::count_posts_to_migrate();
|
||||||
|
$comments_posts_count = \Activitypub\Tools\Posts::count_posts_with_comments_to_migrate();
|
||||||
|
$activitypub_tools_page = 'tools.php?page=activitypub_tools';
|
||||||
|
$view_slugs = array(
|
||||||
|
array('all', NULL, __('All', 'activitypub'), $posts_count),
|
||||||
|
array('comments', 'activitypub', __('Posts with Comments', 'activitypub'), $comments_posts_count),
|
||||||
|
);
|
||||||
|
$post_status_var = get_query_var('comments');
|
||||||
|
$view_count = count($view_slugs);
|
||||||
|
for ($x = 0; $x < $view_count; $x++) {
|
||||||
|
$class = ($post_status_var == $view_slugs[$x][1]) ? ' class="current"' : '';
|
||||||
|
$post_status_temp = $view_slugs[$x][1];
|
||||||
|
if($post_status_temp != '') {
|
||||||
|
$post_status_temp = '&comments='.$view_slugs[$x][1];
|
||||||
|
}
|
||||||
|
$views[$view_slugs[$x][0]] = sprintf(__('<a href="' .
|
||||||
|
$activitypub_tools_page .
|
||||||
|
$post_status_temp . '"' .
|
||||||
|
$class .
|
||||||
|
' >' .
|
||||||
|
$view_slugs[$x][2] .
|
||||||
|
' <span class="count">(%d)</span></a>'),
|
||||||
|
$view_slugs[$x][3]);
|
||||||
|
}
|
||||||
|
return $views;
|
||||||
|
}
|
||||||
|
|
||||||
public function prepare_items() {
|
public function prepare_items() {
|
||||||
$columns = $this->get_columns();
|
$columns = $this->get_columns();
|
||||||
$hidden = array( 'post_author', 'migrate' );
|
$hidden = array( 'post_author', 'migrate' );
|
||||||
$sortable = $this->get_sortable_columns();
|
$sortable = $this->get_sortable_columns();
|
||||||
|
|
||||||
$this->process_action();
|
|
||||||
$this->_column_headers = array( $columns, $hidden, $sortable );
|
$this->_column_headers = array( $columns, $hidden, $sortable );
|
||||||
|
|
||||||
|
$this->items = array();
|
||||||
|
$this->process_action();
|
||||||
|
if ( 'activitypub_tools' === $_REQUEST['page'] ) {
|
||||||
|
if ( isset( $_REQUEST['comments'] ) && 'activitypub' === $_REQUEST['comments'] ) {
|
||||||
|
foreach ( \Activitypub\Tools\Posts::get_posts_with_activitypub_comments() as $ap_post ) {
|
||||||
|
$this->items[] = array(
|
||||||
|
'post_author' => $ap_post->post_author,
|
||||||
|
'title' => \sprintf(
|
||||||
|
'<a href="%1s">%2s</a>',
|
||||||
|
\get_permalink( $ap_post->ID ),
|
||||||
|
$ap_post->post_title
|
||||||
|
),
|
||||||
|
'comments' => $ap_post->comment_count,
|
||||||
|
'date' => $ap_post->post_date,
|
||||||
|
'migrate' => \get_post_meta( $ap_post->ID, '_activitypub_permalink_compat', true ),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
foreach ( \Activitypub\Tools\Posts::get_posts_to_migrate() as $post ) {
|
foreach ( \Activitypub\Tools\Posts::get_posts_to_migrate() as $post ) {
|
||||||
$this->items[] = array(
|
$this->items[] = array(
|
||||||
'post_author' => $post->post_author,
|
'post_author' => $post->post_author,
|
||||||
|
@ -43,6 +94,8 @@ class Migrate_List extends \WP_List_Table {
|
||||||
'migrate' => \get_post_meta( $post->ID, '_activitypub_permalink_compat', true ),
|
'migrate' => \get_post_meta( $post->ID, '_activitypub_permalink_compat', true ),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// pagination
|
// pagination
|
||||||
$per_page = $this->get_items_per_page( 'elements_per_page', 10 );
|
$per_page = $this->get_items_per_page( 'elements_per_page', 10 );
|
||||||
|
@ -64,7 +117,7 @@ class Migrate_List extends \WP_List_Table {
|
||||||
// delete
|
// delete
|
||||||
if ( isset( $_REQUEST['action'] ) && 'activitypub_tools' === $_REQUEST['page'] && 'delete_notice' === $_REQUEST['action'] ) {
|
if ( isset( $_REQUEST['action'] ) && 'activitypub_tools' === $_REQUEST['page'] && 'delete_notice' === $_REQUEST['action'] ) {
|
||||||
if ( wp_verify_nonce( $nonce, 'activitypub_migrate_actions' ) ) {
|
if ( wp_verify_nonce( $nonce, 'activitypub_migrate_actions' ) ) {
|
||||||
//\Activitypub\Tools\Posts::delete_url( rawurldecode( $_REQUEST['post_url'] ), absint( $_REQUEST['post_author'] ) );
|
\Activitypub\Tools\Posts::delete_url( rawurldecode( $_REQUEST['post_url'] ), absint( $_REQUEST['post_author'] ) );
|
||||||
\delete_post_meta( \url_to_postid( $_REQUEST['post_url'] ), '_activitypub_permalink_compat' );
|
\delete_post_meta( \url_to_postid( $_REQUEST['post_url'] ), '_activitypub_permalink_compat' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,15 @@ if ( isset( $_REQUEST['post_url'] ) && $_REQUEST['page'] == "activitypub_tools"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
<style>
|
||||||
|
#the-list tr.warning {
|
||||||
|
background-color: #fcf9e8;
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.1);
|
||||||
|
}
|
||||||
|
#the-list tr.warning th.check-column {
|
||||||
|
border-left: 4px solid #d63638;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<h1><?php \esc_html_e( 'Manage ActivityPub posts (Fediverse)', 'activitypub' ); ?></h1>
|
<h1><?php \esc_html_e( 'Manage ActivityPub posts (Fediverse)', 'activitypub' ); ?></h1>
|
||||||
|
|
||||||
|
@ -24,13 +33,14 @@ if ( isset( $_REQUEST['post_url'] ) && $_REQUEST['page'] == "activitypub_tools"
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p><?php \printf(
|
<p><?php \printf(
|
||||||
\__( 'You currently have %s posts to migrate.', 'activitypub' ),
|
\__( 'You currently have %s posts marked for review.', 'activitypub' ),
|
||||||
\esc_attr( \Activitypub\Tools\Posts::count_posts_to_migrate() )
|
\esc_attr( \Activitypub\Tools\Posts::count_posts_to_migrate() )
|
||||||
); ?></p>
|
); ?></p>
|
||||||
|
|
||||||
<?php $token_table = new \Activitypub\Table\Migrate_List(); ?>
|
<?php $token_table = new \Activitypub\Table\Migrate_List(); ?>
|
||||||
<form method="POST" id="table">
|
<form method="POST" id="table">
|
||||||
<?php
|
<?php
|
||||||
|
$token_table->views();
|
||||||
$token_table->prepare_items();
|
$token_table->prepare_items();
|
||||||
$token_table->display();
|
$token_table->display();
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in a new issue