public static function index() {

		$model = new Ai1wmge_Settings;

		// Google Drive update
		if ( isset( $_POST['ai1wmge-gdrive-update'] ) ) {

			// Cron update
			if ( ! empty( $_POST['ai1wmge-gdrive-cron'] ) ) {
				$model->cron( (array) $_POST['ai1wmge-gdrive-cron'] );
			} else {
				$model->cron( array() );
			}

			// Set SSL mode
			if ( ! empty( $_POST['ai1wmge-gdrive-ssl'] ) ) {
				$model->ssl( 0 );
			} else {
				$model->ssl( 1 );
			}

			// Set number of backups
			if ( ! empty( $_POST['ai1wmge-gdrive-backups'] ) ) {
				$model->backups( (int) $_POST['ai1wmge-gdrive-backups'] );
			} else {
				$model->backups( 0 );
			}

			// Set size of backups
			if ( ! empty( $_POST['ai1wmge-gdrive-total'] ) && ! empty( $_POST['ai1wmge-gdrive-total-unit'] ) ) {
				$model->total( (int) $_POST['ai1wmge-gdrive-total'] . trim( $_POST['ai1wmge-gdrive-total-unit'] ) );
			} else {
				$model->total( 0 );
			}

			$model->email( $_POST['ai1wmge-notification-email'] );

			$model->toggle( isset( $_POST['ai1wmge-notification-toggle'] ) );
		}

		// Google Drive logout
		if ( isset( $_POST['ai1wmge-gdrive-logout'] ) ) {
			$model->revoke();
		}

		Ai1wm_Template::render(
			'settings/index',
			array(
				'backups'   => get_option( 'ai1wmge_gdrive_backups', false ),
				'cron'      => get_option( 'ai1wmge_gdrive_cron', array() ),
				'email'     => get_option( 'ai1wmge_gdrive_notify_email', get_option( 'admin_email', '' ) ),
				'notify'    => get_option( 'ai1wmge_gdrive_notify_toggle', false ),
				'ssl'       => get_option( 'ai1wmge_gdrive_ssl', true ),
				'timestamp' => get_option( 'ai1wmge_gdrive_timestamp', false ),
				'token'     => get_option( 'ai1wmge_gdrive_token', false ),
				'total'     => get_option( 'ai1wmge_gdrive_total', false ),
			),
			AI1WMGE_TEMPLATES_PATH
		);
	}
	public static function button() {
		return Ai1wm_Template::get_content(
			'export/button',
			array( 'token' => get_option( 'ai1wmge_gdrive_token' ) ),
			AI1WMGE_TEMPLATES_PATH
		);
	}
	public static function picker() {
		Ai1wm_Template::render(
			'import/picker',
			array(),
			AI1WMGE_TEMPLATES_PATH
		);
	}
 public static function index()
 {
     try {
         $is_accessible = StorageArea::getInstance()->getRootPath();
     } catch (Exception $e) {
         $is_accessible = false;
     }
     Ai1wm_Template::render('import/index', array('is_accessible' => $is_accessible, 'max_file_size' => apply_filters('ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE)));
 }
 public static function index()
 {
     try {
         $storage = new StorageArea();
         $is_accessible = $storage->makeFile();
         $storage->flush();
     } catch (Exception $e) {
         $is_accessible = false;
     }
     Ai1wm_Template::render('import/index', array('is_accessible' => $is_accessible));
 }
 public static function index()
 {
     try {
         $is_accessible = StorageArea::getInstance()->getRootPath();
     } catch (Exception $e) {
         $is_accessible = false;
     }
     // Messages
     $model = new Ai1wm_Message();
     $messages = $model->get_messages();
     Ai1wm_Template::render('export/index', array('messages' => $messages, 'is_accessible' => $is_accessible));
 }
 public static function index()
 {
     $model = new Ai1wm_Backup();
     // Username
     if (isset($_POST['ai1wm-username'])) {
         update_site_option(AI1WM_AUTH_USER, $_POST['ai1wm-username']);
     }
     // Password
     if (isset($_POST['ai1wm-password'])) {
         update_site_option(AI1WM_AUTH_PASSWORD, $_POST['ai1wm-password']);
     }
     Ai1wm_Template::render('backup/index', array('backups' => $model->get_files(), 'free_space' => $model->get_free_space(), 'total_space' => $model->get_total_space(), 'username' => get_site_option(AI1WM_AUTH_USER, false), 'password' => get_site_option(AI1WM_AUTH_PASSWORD, false)));
 }
 public static function index()
 {
     try {
         $storage = new StorageArea();
         $is_accessible = $storage->makeFile();
         $storage->flush();
     } catch (Exception $e) {
         $is_accessible = false;
     }
     // Message
     $message = new Ai1wm_Message();
     $is_closed = $message->is_closed(Ai1wm_Message::MESSAGE_INFO);
     Ai1wm_Template::render('export/index', array('list_plugins' => get_plugins(), 'is_accessible' => $is_accessible, 'is_closed' => $is_closed));
 }
 /**
  * Register scripts and styles for Import Controller
  *
  * @return void
  */
 public function register_import_scripts_and_styles()
 {
     do_action('ai1mw-register-import-scripts-and-styles');
     // we don't want heartbeat to occur when importing
     wp_deregister_script('heartbeat');
     wp_enqueue_script('ai1wm-js-import', Ai1wm_Template::asset_link('javascript/import.min.js'), array('plupload-all', 'jquery'));
     wp_enqueue_style('ai1wm-css-import', Ai1wm_Template::asset_link('css/import.min.css'));
     wp_localize_script('ai1wm-js-import', 'ai1wm_uploader', array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'ai1wm-import-file', 'container' => 'ai1wm-plupload-upload-ui', 'drop_element' => 'ai1wm-drag-drop-area', 'file_data_name' => 'upload-file', 'chunk_size' => apply_filters('ai1wm_max_chunk_size', AI1WM_MAX_CHUNK_SIZE), 'max_retries' => apply_filters('ai1wm_max_chunk_retries', AI1WM_MAX_CHUNK_RETRIES), 'url' => admin_url('admin-ajax.php?action=ai1wm_import'), 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'multiple_queues' => false, 'multi_selection' => false, 'urlstream_upload' => true, 'unique_names' => true, 'multipart' => true, 'multipart_params' => array('provider' => 'file', 'method' => 'import', 'secret_key' => get_site_option(AI1WM_SECRET_KEY, false, false)), 'filters' => array('ai1wm_archive_extension' => 'wpress', 'ai1wm_archive_size' => apply_filters('ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE))));
     wp_localize_script('ai1wm-js-import', 'ai1wm_feedback', array('ajax' => array('url' => admin_url('admin-ajax.php?action=ai1wm_leave_feedback'))));
     wp_localize_script('ai1wm-js-import', 'ai1wm_report', array('ajax' => array('url' => admin_url('admin-ajax.php?action=ai1wm_report_problem'))));
     wp_localize_script('ai1wm-js-import', 'ai1wm_maintenance', array('ajax' => array('url' => admin_url('admin-ajax.php?action=ai1wm_disable_maintenance'))));
     wp_localize_script('ai1wm-js-import', 'ai1wm_import', array('ajax' => array('url' => admin_url('admin-ajax.php?action=ai1wm_import')), 'status' => array('url' => AI1WM_STORAGE_URL), 'secret_key' => get_site_option(AI1WM_SECRET_KEY, false, false), 'oversize' => sprintf(__('The file that you are trying to import is over the maximum upload file size limit of <strong>%s</strong>.' . '<br />You can remove this restriction by purchasing our ' . '<a href="https://servmask.com/products/unlimited-extension" target="_blank">Unlimited Extension</a>.', AI1WM_PLUGIN_NAME), size_format(apply_filters('ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE))), 'invalid_extension' => sprintf(__('Version 2.1.1 of All in One WP Migration introduces new compression algorithm. ' . 'It makes exporting and importing 10 times faster.' . '<br />Unfortunately, the new format is not back compatible with backups made with earlier ' . 'versions of the plugin.' . '<br />You can either create a new backup with the latest version of the ' . 'plugin, or convert the archive to the new format using our tools ' . '<a href="%s" target="_blank">here</a>.', AI1WM_PLUGIN_NAME), AI1WM_ARCHIVE_TOOLS_URL)));
 }
 public static function buttons()
 {
     return array(apply_filters('ai1wm_import_file', Ai1wm_Template::get_content('import/button-file')), apply_filters('ai1wm_import_url', Ai1wm_Template::get_content('import/button-url')), apply_filters('ai1wm_import_ftp', Ai1wm_Template::get_content('import/button-ftp')), apply_filters('ai1wm_import_dropbox', Ai1wm_Template::get_content('import/button-dropbox')), apply_filters('ai1wm_import_gdrive', Ai1wm_Template::get_content('import/button-gdrive')), apply_filters('ai1wm_import_s3', Ai1wm_Template::get_content('import/button-s3')));
 }
 /**
  * Add "Check for updates" link
  *
  * @param  array  $links The array having default links for the plugin.
  * @param  string $file  The name of the plugin file.
  * @return array
  */
 public static function plugin_row_meta($links, $file)
 {
     $modal = 0;
     // Add link for each extension
     foreach (Ai1wm_Extensions::get() as $slug => $extension) {
         $modal++;
         // Get plugin details
         if ($file === $extension['basename']) {
             $url = add_query_arg(array('ai1wm_updater' => 1), network_admin_url('plugins.php'));
             // Check Purchase ID
             if (get_option($extension['key'])) {
                 // Add "Check for updates" link
                 $links[] = Ai1wm_Template::get_content('updater/check', array('url' => wp_nonce_url($url, 'ai1wm_updater_nonce')));
             } else {
                 // Add modal
                 $links[] = Ai1wm_Template::get_content('updater/modal', array('url' => wp_nonce_url($url, 'ai1wm_updater_nonce'), 'modal' => $modal));
             }
         }
     }
     return $links;
 }
	/**
	 * Outputs menu icon between head tags
	 *
	 * @return void
	 */
	public function admin_head() {
		global $wp_version;

		// Admin header
		Ai1wm_Template::render( 'main/admin-head', array( 'version' => $wp_version ) );
	}
 /**
  * Register scripts and styles for Import Controller
  */
 public function register_import_scripts_and_styles()
 {
     wp_enqueue_script('ai1wm-js-import', Ai1wm_Template::asset_link('javascript/import.min.js'), array('plupload-all', 'jquery'));
     wp_enqueue_style('ai1wm-css-import', Ai1wm_Template::asset_link('css/import.min.css'));
     $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'ai1wm-browse-button', 'container' => 'ai1wm-plupload-upload-ui', 'drop_element' => 'ai1wm-drag-drop-area', 'file_data_name' => 'upload-file', 'max_file_size' => apply_filters('ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE), 'chunk_size' => apply_filters('ai1wm_max_chunk_size', AI1WM_MAX_CHUNK_SIZE), 'max_retries' => apply_filters('ai1wm_max_chunk_retries', AI1WM_MAX_CHUNK_RETRIES), 'url' => admin_url('admin-ajax.php'), 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'multiple_queues' => false, 'urlstream_upload' => true, 'unique_names' => true, 'multipart' => true, 'multipart_params' => array('action' => 'import'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => 'zip')));
     wp_localize_script('ai1wm-js-import', 'ai1wm_uploader', $plupload_init);
     $feedback_init = array('ajax' => array('url' => admin_url('admin-ajax.php') . '?action=leave_feedback'));
     wp_localize_script('ai1wm-js-import', 'ai1wm_feedback', $feedback_init);
     $report_init = array('ajax' => array('url' => admin_url('admin-ajax.php') . '?action=report_problem'));
     wp_localize_script('ai1wm-js-import', 'ai1wm_report', $report_init);
     $maintenance_init = array('ajax' => array('url' => admin_url('admin-ajax.php') . '?action=disable_maintenance'));
     wp_localize_script('ai1wm-js-import', 'ai1wm_maintenance', $maintenance_init);
     $import_init = array('ajax' => array('url' => admin_url('admin-ajax.php') . '?action=import'));
     wp_localize_script('ai1wm-js-import', 'ai1wm_import', $import_init);
 }
	/**
	 * Register scripts and styles for Settings Controller
	 *
	 * @return void
	 */
	public function register_settings_scripts_and_styles() {
		wp_enqueue_script(
			'ai1wmge-js-settings',
			Ai1wm_Template::asset_link( 'javascript/settings.min.js', 'AI1WMGE' ),
			array( 'jquery' )
		);
		wp_enqueue_style(
			'ai1wm-css-export',
			Ai1wm_Template::asset_link( 'css/export.min.css' )
		);
		wp_enqueue_style(
			'ai1wmge-css-settings',
			Ai1wm_Template::asset_link( 'css/settings.min.css', 'AI1WMGE' )
		);
		wp_localize_script( 'ai1wmge-js-settings', 'ai1wmge_settings', array(
			'token' => get_option( 'ai1wmge_gdrive_token' ),
			'ajax'  => array(
				'account_url' => admin_url( 'admin-ajax.php?action=ai1wmge_gdrive_account' ),
			),
		) );
		wp_localize_script( 'ai1wmge-js-settings', 'ai1wm_feedback', array(
			'ajax' => array(
				'url' => admin_url( 'admin-ajax.php?action=ai1wm_feedback' ),
			),
		) );
	}