98 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 *  Admin Database Upgrade
 | 
						|
 *
 | 
						|
 *  Shows the databse upgrade process.
 | 
						|
 *
 | 
						|
 *  @date    24/8/18
 | 
						|
 *  @since   5.7.4
 | 
						|
 *  @param   void
 | 
						|
 */
 | 
						|
 | 
						|
?>
 | 
						|
<style type="text/css">
 | 
						|
	
 | 
						|
	/* hide steps */
 | 
						|
	.step-1,
 | 
						|
	.step-2,
 | 
						|
	.step-3 {
 | 
						|
		display: none;
 | 
						|
	}		
 | 
						|
	
 | 
						|
</style>
 | 
						|
<div id="acf-upgrade-wrap" class="wrap">
 | 
						|
	
 | 
						|
	<h1><?php _e( 'Upgrade Database', 'acf' ); ?></h1>
 | 
						|
	
 | 
						|
<?php if ( acf_has_upgrade() ) : ?>
 | 
						|
 | 
						|
	<p><?php _e( 'Reading upgrade tasks...', 'acf' ); ?></p>
 | 
						|
	<p class="step-1"><i class="acf-loading"></i> <?php printf( __( 'Upgrading data to version %s', 'acf' ), ACF_VERSION ); ?></p>
 | 
						|
	<p class="step-2"></p>
 | 
						|
	<p class="step-3"><?php echo sprintf( __( 'Database upgrade complete. <a href="%s">See what\'s new</a>', 'acf' ), admin_url( 'edit.php?post_type=acf-field-group' ) ); ?></p>
 | 
						|
	
 | 
						|
	<script type="text/javascript">
 | 
						|
	(function($) {
 | 
						|
		
 | 
						|
		var upgrader = new acf.Model({
 | 
						|
			initialize: function(){
 | 
						|
				
 | 
						|
				// allow user to read message for 1 second
 | 
						|
				this.setTimeout( this.upgrade, 1000 );
 | 
						|
			},
 | 
						|
			upgrade: function(){
 | 
						|
				
 | 
						|
				// show step 1
 | 
						|
				$('.step-1').show();
 | 
						|
				
 | 
						|
				// vars
 | 
						|
				var response = '';
 | 
						|
				var success = false;
 | 
						|
				
 | 
						|
				// send ajax request to upgrade DB
 | 
						|
				$.ajax({
 | 
						|
					url: acf.get('ajaxurl'),
 | 
						|
					dataType: 'json',
 | 
						|
					type: 'post',
 | 
						|
					data: acf.prepareForAjax({
 | 
						|
						action: 'acf/ajax/upgrade'
 | 
						|
					}),
 | 
						|
					success: function( json ){
 | 
						|
						success = true;
 | 
						|
					},
 | 
						|
					error: function( jqXHR, textStatus, errorThrown ){
 | 
						|
						response = '<?php _e( 'Upgrade failed.', 'acf' ); ?>';
 | 
						|
						if( error = acf.getXhrError(jqXHR) ) {
 | 
						|
							response += ' <code>' + error +  '</code>';
 | 
						|
						}
 | 
						|
					},
 | 
						|
					complete: this.proxy(function(){
 | 
						|
						
 | 
						|
						// remove spinner
 | 
						|
						$('.acf-loading').hide();
 | 
						|
						
 | 
						|
						// display response
 | 
						|
						if( response ) {
 | 
						|
							$('.step-2').show().html( response );
 | 
						|
						}
 | 
						|
						
 | 
						|
						// display success
 | 
						|
						if( success ) {
 | 
						|
							$('.step-3').show();
 | 
						|
						}
 | 
						|
					})
 | 
						|
				});
 | 
						|
			}
 | 
						|
		});
 | 
						|
				
 | 
						|
	})(jQuery);	
 | 
						|
	</script>
 | 
						|
 | 
						|
<?php else : ?>
 | 
						|
 | 
						|
	<p><?php _e( 'No updates available.', 'acf' ); ?></p>
 | 
						|
	
 | 
						|
<?php endif; ?>
 | 
						|
</div>
 |