70 lines
1.9 KiB
PHP
70 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace WPML\TM\Troubleshooting\SynchronizeSourceIdOfATEJobs;
|
|
|
|
use WPML\TM\Upgrade\Commands\SynchronizeSourceIdOfATEJobs\Command;
|
|
use WPML\Upgrade\CommandsStatus;
|
|
|
|
class TriggerSynchronization implements \IWPML_Backend_Action, \IWPML_DIC_Action {
|
|
|
|
const ACTION_ID = 'wpml-tm-ate-source-id-migration';
|
|
|
|
/** @var CommandsStatus */
|
|
private $commandStatus;
|
|
|
|
/**
|
|
* @param CommandsStatus $commandStatus
|
|
*/
|
|
public function __construct( CommandsStatus $commandStatus ) {
|
|
$this->commandStatus = $commandStatus;
|
|
}
|
|
|
|
|
|
public function add_hooks() {
|
|
add_action( 'wpml_troubleshooting_after_fix_element_type_collation', [ $this, 'displayButton' ] );
|
|
add_action( 'admin_enqueue_scripts', array( $this, 'enqueueScripts' ) );
|
|
add_action( 'wp_ajax_' . self::ACTION_ID, array( $this, 'clearExecutedStateToForceUpgrade' ) );
|
|
}
|
|
|
|
public function displayButton() {
|
|
?>
|
|
|
|
<p>
|
|
<input id="wpml_tm_ate_source_id_migration_btn"
|
|
type="button"
|
|
class="button-secondary"
|
|
value="<?php esc_attr_e( 'Synchronize local job ids with ATE jobs', 'wpml-translation-manager' ); ?>"
|
|
data-action="<?php echo self::ACTION_ID; ?>"
|
|
data-nonce="<?php echo wp_create_nonce( self::ACTION_ID ); ?>"
|
|
/>
|
|
<br/>
|
|
|
|
<small style="margin-left:10px;">
|
|
<?php
|
|
esc_attr_e(
|
|
'Synchronize local job ids with their ATE counterparts. You will have to refresh a few times any admin page to accomplish the process.',
|
|
'wpml-translation-manager'
|
|
)
|
|
?>
|
|
</small>
|
|
</p>
|
|
<?php
|
|
}
|
|
|
|
public function enqueueScripts( $hook ) {
|
|
if ( WPML_PLUGIN_FOLDER . '/menu/troubleshooting.php' === $hook ) {
|
|
wp_enqueue_script(
|
|
self::ACTION_ID,
|
|
WPML_TM_URL . '/res/js/ate-jobs-migration.js',
|
|
[ 'jquery' ],
|
|
WPML_TM_VERSION
|
|
);
|
|
}
|
|
}
|
|
|
|
public function clearExecutedStateToForceUpgrade() {
|
|
$this->commandStatus->markAsExecuted( Command::class, false );
|
|
wp_send_json_success();
|
|
}
|
|
}
|