Ubuntu

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 'use strict'; jQuery( document ).ready( function( $ ) { var REFRESH_EVERY_X_SECONDS = 2; var STATIC_PAGES_PER_PAGE = 50; // max number of pages to show at once var done = true; var refreshTimer = null; // display the export and activity log on page load display_export_log(); display_activity_log(); initiate_action(); $( '#sistContainer #generate' ).click( function( e ) { $( '#sistContainer #activityLog' ).html(''); initiate_action( 'start' ); } ); $( '#sistContainer #cancel' ).click( function( e ) { initiate_action( 'cancel' ); } ); // disable all actions and show spinner function initiate_action( action ) { if ( action == null ) { action = 'ping'; } else { $( '#sistContainer .actions input' ).attr( 'disabled', 'disabled' ); $( '#sistContainer .actions .spinner' ).addClass( 'is-active' ); } // cancel existing timer if ( refreshTimer != null ) { clearInterval( refreshTimer ); } // send action now send_action_to_archive_manager( action ); // set loop for pinging server refreshTimer = setInterval( function() { send_action_to_archive_manager( 'ping' ); }, REFRESH_EVERY_X_SECONDS * 1000 ); } // where action is one of 'start', 'continue', 'cancel' function send_action_to_archive_manager( action ) { var data = { '_ajax_nonce': $('#_wpnonce').val(), 'action': 'static_archive_action', 'perform': action }; $.post( window.ajaxurl, data, function( response ) { handle_response_from_archive_manager( response ); } ); } function handle_response_from_archive_manager( response ) { // loop through the responses and create an .activity div for each one // in #activityLog var $activityLog = $( '#activityLog' ); $activityLog.html( response.activity_log_html ) .scrollTop( $activityLog.prop( 'scrollHeight' ) ); if ( response.done == true && done == false ) { display_export_log(); } done = response.done; // only adjust the button/spinner state on a 'ping' // (ensures that the job has had time to process the action) if ( response.action == 'ping' ) { // re-enable and hide all actions $( '#sistContainer .actions input' ) .removeAttr( 'disabled' ) .addClass( 'hide' ); if ( done == true ) { // remove spinner and show #generate $( '#sistContainer .actions .spinner' ).removeClass( 'is-active' ); $( '#sistContainer #generate' ).removeClass( 'hide' ); } else { $( '#sistContainer #cancel' ).removeClass( 'hide' ); } } } function display_export_log() { var data = { '_ajax_nonce': $('#_wpnonce').val(), 'action': 'render_export_log', 'page': 1, 'per_page': STATIC_PAGES_PER_PAGE }; var $exportLog = $( '#exportLog' ); $exportLog.html( "" ); $.post( window.ajaxurl, data, function( response ) { $exportLog.html( response.html ); } ); } function display_activity_log() { var data = { '_ajax_nonce': $('#_wpnonce').val(), 'action': 'render_activity_log' }; var $activityLog = $( '#activityLog' ); $activityLog.html( "" ); $.post( window.ajaxurl, data, function( response ) { $activityLog.html( response.html ) .scrollTop( $activityLog.prop( 'scrollHeight' ) ); } ); } // -- AJAX pagination ----------------------------------------------------// $( '#sistContainer #exportLog' ).on( 'click', 'a.page-numbers', function( e ) { e.preventDefault(); var url = $( this ).attr( 'href' ); var re = /page=(\d+)/; var matches = re.exec( url ); var page = 1; if ( matches ) { page = matches[1]; } var data = { '_ajax_nonce': $('#_wpnonce').val(), 'action': 'render_export_log', 'page': page, 'per_page': STATIC_PAGES_PER_PAGE }; $.post( window.ajaxurl, data, function( response ) { $( '#exportLog' ).html( response.html ); } ); } ); } );