Version Description
- Support Visual Composer plugin
- Support Jetpack Photon module
- Improved Maria DB support
- Disable WordPress authentication checking during migration
- Clean any temporary files after migration
Download this release
Release Info
| Developer | bangelov |
| Plugin | |
| Version | 6.41 |
| Comparing to | |
| See all releases | |
Code changes from version 6.40 to 6.41
- all-in-one-wp-migration.php +1 -1
- constants.php +6 -1
- functions.php +13 -33
- lib/controller/class-ai1wm-main-controller.php +16 -4
- lib/model/export/class-ai1wm-export-clean.php +7 -10
- lib/model/export/class-ai1wm-export-database.php +3 -0
- lib/model/import/class-ai1wm-import-clean.php +7 -10
- lib/model/import/class-ai1wm-import-database.php +3 -0
- lib/model/import/class-ai1wm-import-done.php +12 -0
- lib/vendor/servmask/database/class-ai1wm-database-mysql.php +2 -2
- lib/vendor/servmask/database/class-ai1wm-database-mysqli.php +2 -2
- lib/vendor/servmask/database/class-ai1wm-database-utility.php +14 -0
- lib/vendor/servmask/database/class-ai1wm-database.php +136 -57
- lib/vendor/servmask/filesystem/class-ai1wm-file-htaccess.php +8 -1
- lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php +12 -6
- lib/view/assets/javascript/backups.min.js +167 -104
- lib/view/assets/javascript/export.min.js +142 -98
- lib/view/assets/javascript/import.min.js +160 -100
- lib/view/assets/javascript/updater.min.js +12 -2
- lib/view/common/leave-feedback.php +4 -2
- lib/view/common/report-problem.php +4 -2
- lib/view/export/advanced-settings.php +44 -22
- readme.txt +9 -2
all-in-one-wp-migration.php
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
* Description: Migration tool for all your blog data. Import or Export your blog content with a single click.
|
| 6 |
* Author: ServMask
|
| 7 |
* Author URI: https://servmask.com/
|
| 8 |
-
* Version: 6.
|
| 9 |
* Text Domain: all-in-one-wp-migration
|
| 10 |
* Domain Path: /languages
|
| 11 |
* Network: True
|
| 5 |
* Description: Migration tool for all your blog data. Import or Export your blog content with a single click.
|
| 6 |
* Author: ServMask
|
| 7 |
* Author URI: https://servmask.com/
|
| 8 |
+
* Version: 6.41
|
| 9 |
* Text Domain: all-in-one-wp-migration
|
| 10 |
* Domain Path: /languages
|
| 11 |
* Network: True
|
constants.php
CHANGED
|
@@ -31,7 +31,7 @@ define( 'AI1WM_DEBUG', false );
|
|
| 31 |
// ==================
|
| 32 |
// = Plugin Version =
|
| 33 |
// ==================
|
| 34 |
-
define( 'AI1WM_VERSION', '6.
|
| 35 |
|
| 36 |
// ===============
|
| 37 |
// = Plugin Name =
|
|
@@ -208,6 +208,11 @@ define( 'AI1WM_ACTIVE_PLUGINS', 'active_plugins' );
|
|
| 208 |
// ===========================
|
| 209 |
define( 'AI1WM_ACTIVE_SITEWIDE_PLUGINS', 'active_sitewide_plugins' );
|
| 210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 211 |
// ======================
|
| 212 |
// = MS Files Rewriting =
|
| 213 |
// ======================
|
| 31 |
// ==================
|
| 32 |
// = Plugin Version =
|
| 33 |
// ==================
|
| 34 |
+
define( 'AI1WM_VERSION', '6.41' );
|
| 35 |
|
| 36 |
// ===============
|
| 37 |
// = Plugin Name =
|
| 208 |
// ===========================
|
| 209 |
define( 'AI1WM_ACTIVE_SITEWIDE_PLUGINS', 'active_sitewide_plugins' );
|
| 210 |
|
| 211 |
+
// ==========================
|
| 212 |
+
// = Jetpack Active Modules =
|
| 213 |
+
// ==========================
|
| 214 |
+
define( 'AI1WM_JETPACK_ACTIVE_MODULES', 'jetpack_active_modules' );
|
| 215 |
+
|
| 216 |
// ======================
|
| 217 |
// = MS Files Rewriting =
|
| 218 |
// ======================
|
functions.php
CHANGED
|
@@ -795,8 +795,8 @@ function ai1wm_unlink( $file ) {
|
|
| 795 |
/**
|
| 796 |
* Copies one file's contents to another
|
| 797 |
*
|
| 798 |
-
* @param string
|
| 799 |
-
* @param string
|
| 800 |
*/
|
| 801 |
function ai1wm_copy( $source_file, $destination_file ) {
|
| 802 |
$source_handle = ai1wm_open( $source_file, 'rb' );
|
|
@@ -808,37 +808,6 @@ function ai1wm_copy( $source_file, $destination_file ) {
|
|
| 808 |
ai1wm_close( $destination_handle );
|
| 809 |
}
|
| 810 |
|
| 811 |
-
/**
|
| 812 |
-
* Sanitize path
|
| 813 |
-
*
|
| 814 |
-
* @param string $path Path string
|
| 815 |
-
* @param boolean $leading_slash Add leading slash
|
| 816 |
-
* @param boolean $trailing_slash Add trailing slash
|
| 817 |
-
* @return string
|
| 818 |
-
*/
|
| 819 |
-
function ai1wm_sanitize_path( $path, $leading_slash = false, $trailing_slash = false ) {
|
| 820 |
-
// Strip leadning and trailing whitespaces
|
| 821 |
-
$path = trim( $path );
|
| 822 |
-
|
| 823 |
-
// Strip leading backward and forward slashes
|
| 824 |
-
$path = ltrim( $path, '/\\' );
|
| 825 |
-
|
| 826 |
-
// Strip trailing backward and forward slashes
|
| 827 |
-
$path = rtrim( $path, '/\\' );
|
| 828 |
-
|
| 829 |
-
// Add forward leading slash
|
| 830 |
-
if ( $leading_slash ) {
|
| 831 |
-
$path = sprintf( '/%s', $path );
|
| 832 |
-
}
|
| 833 |
-
|
| 834 |
-
// Add forward trailing slash
|
| 835 |
-
if ( $trailing_slash ) {
|
| 836 |
-
$path = sprintf( '%s/', $path );
|
| 837 |
-
}
|
| 838 |
-
|
| 839 |
-
return preg_replace( '/[\\\\\/]+/', '/', $path );
|
| 840 |
-
}
|
| 841 |
-
|
| 842 |
/**
|
| 843 |
* Get the size of file in bytes
|
| 844 |
*
|
|
@@ -901,3 +870,14 @@ function ai1wm_fseek( $file_handle, Math_BigInteger $offset ) {
|
|
| 901 |
$chunk_size = ai1wm_find_smaller_number( $chunk_size, $offset );
|
| 902 |
}
|
| 903 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 795 |
/**
|
| 796 |
* Copies one file's contents to another
|
| 797 |
*
|
| 798 |
+
* @param string $source_file File to copy the contents from
|
| 799 |
+
* @param string $destination_file File to copy the contents to
|
| 800 |
*/
|
| 801 |
function ai1wm_copy( $source_file, $destination_file ) {
|
| 802 |
$source_handle = ai1wm_open( $source_file, 'rb' );
|
| 808 |
ai1wm_close( $destination_handle );
|
| 809 |
}
|
| 810 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 811 |
/**
|
| 812 |
* Get the size of file in bytes
|
| 813 |
*
|
| 870 |
$chunk_size = ai1wm_find_smaller_number( $chunk_size, $offset );
|
| 871 |
}
|
| 872 |
}
|
| 873 |
+
|
| 874 |
+
/**
|
| 875 |
+
* Disable Jetpack Photon module
|
| 876 |
+
*
|
| 877 |
+
* @return void
|
| 878 |
+
*/
|
| 879 |
+
function ai1wm_disable_jetpack_photon() {
|
| 880 |
+
if ( ( $jetpack = get_option( AI1WM_JETPACK_ACTIVE_MODULES, array() ) ) ) {
|
| 881 |
+
update_option( AI1WM_JETPACK_ACTIVE_MODULES, array_values( array_diff( $jetpack, array( 'photon' ) ) ) );
|
| 882 |
+
}
|
| 883 |
+
}
|
lib/controller/class-ai1wm-main-controller.php
CHANGED
|
@@ -87,16 +87,16 @@ class Ai1wm_Main_Controller {
|
|
| 87 |
add_action( 'plugins_loaded', array( $this, 'ai1wm_buttons' ), 10 );
|
| 88 |
|
| 89 |
// Add export scripts and styles
|
| 90 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'register_export_scripts_and_styles' ),
|
| 91 |
|
| 92 |
// Add import scripts and styles
|
| 93 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'register_import_scripts_and_styles' ),
|
| 94 |
|
| 95 |
// Add backups scripts and styles
|
| 96 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'register_backups_scripts_and_styles' ),
|
| 97 |
|
| 98 |
// Add updater scripts and styles
|
| 99 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'register_updater_scripts_and_styles' ),
|
| 100 |
|
| 101 |
return $this;
|
| 102 |
}
|
|
@@ -368,6 +368,9 @@ class Ai1wm_Main_Controller {
|
|
| 368 |
// we don't want heartbeat to occur when exporting
|
| 369 |
wp_deregister_script( 'heartbeat' );
|
| 370 |
|
|
|
|
|
|
|
|
|
|
| 371 |
wp_enqueue_style(
|
| 372 |
'ai1wm-css-export',
|
| 373 |
Ai1wm_Template::asset_link( 'css/export.min.css' )
|
|
@@ -413,6 +416,9 @@ class Ai1wm_Main_Controller {
|
|
| 413 |
// we don't want heartbeat to occur when importing
|
| 414 |
wp_deregister_script( 'heartbeat' );
|
| 415 |
|
|
|
|
|
|
|
|
|
|
| 416 |
wp_enqueue_style(
|
| 417 |
'ai1wm-css-import',
|
| 418 |
Ai1wm_Template::asset_link( 'css/import.min.css' )
|
|
@@ -490,6 +496,12 @@ class Ai1wm_Main_Controller {
|
|
| 490 |
|
| 491 |
do_action( 'ai1mw_register_backups_scripts_and_styles' );
|
| 492 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 493 |
wp_enqueue_style(
|
| 494 |
'ai1wm-css-backups',
|
| 495 |
Ai1wm_Template::asset_link( 'css/backups.min.css' )
|
| 87 |
add_action( 'plugins_loaded', array( $this, 'ai1wm_buttons' ), 10 );
|
| 88 |
|
| 89 |
// Add export scripts and styles
|
| 90 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'register_export_scripts_and_styles' ), 5 );
|
| 91 |
|
| 92 |
// Add import scripts and styles
|
| 93 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'register_import_scripts_and_styles' ), 5 );
|
| 94 |
|
| 95 |
// Add backups scripts and styles
|
| 96 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'register_backups_scripts_and_styles' ), 5 );
|
| 97 |
|
| 98 |
// Add updater scripts and styles
|
| 99 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'register_updater_scripts_and_styles' ), 5 );
|
| 100 |
|
| 101 |
return $this;
|
| 102 |
}
|
| 368 |
// we don't want heartbeat to occur when exporting
|
| 369 |
wp_deregister_script( 'heartbeat' );
|
| 370 |
|
| 371 |
+
// we don't want auth check for monitoring whether the user is still logged in
|
| 372 |
+
remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
|
| 373 |
+
|
| 374 |
wp_enqueue_style(
|
| 375 |
'ai1wm-css-export',
|
| 376 |
Ai1wm_Template::asset_link( 'css/export.min.css' )
|
| 416 |
// we don't want heartbeat to occur when importing
|
| 417 |
wp_deregister_script( 'heartbeat' );
|
| 418 |
|
| 419 |
+
// we don't want auth check for monitoring whether the user is still logged in
|
| 420 |
+
remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
|
| 421 |
+
|
| 422 |
wp_enqueue_style(
|
| 423 |
'ai1wm-css-import',
|
| 424 |
Ai1wm_Template::asset_link( 'css/import.min.css' )
|
| 496 |
|
| 497 |
do_action( 'ai1mw_register_backups_scripts_and_styles' );
|
| 498 |
|
| 499 |
+
// we don't want heartbeat to occur when restoring
|
| 500 |
+
wp_deregister_script( 'heartbeat' );
|
| 501 |
+
|
| 502 |
+
// we don't want auth check for monitoring whether the user is still logged in
|
| 503 |
+
remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
|
| 504 |
+
|
| 505 |
wp_enqueue_style(
|
| 506 |
'ai1wm-css-backups',
|
| 507 |
Ai1wm_Template::asset_link( 'css/backups.min.css' )
|
lib/model/export/class-ai1wm-export-clean.php
CHANGED
|
@@ -27,26 +27,23 @@ class Ai1wm_Export_Clean {
|
|
| 27 |
|
| 28 |
public static function execute( $params ) {
|
| 29 |
|
| 30 |
-
//
|
| 31 |
-
|
| 32 |
|
| 33 |
-
//
|
| 34 |
-
$iterator = new RecursiveIteratorIterator(
|
| 35 |
-
new Ai1wm_Recursive_Directory_Iterator( ai1wm_storage_path( $params ) ),
|
| 36 |
-
RecursiveIteratorIterator::CHILD_FIRST
|
| 37 |
-
);
|
| 38 |
|
| 39 |
// Remove files and directories
|
| 40 |
foreach ( $iterator as $item ) {
|
| 41 |
if ( $item->isDir() ) {
|
| 42 |
-
rmdir( $item->getPathname() );
|
| 43 |
} else {
|
| 44 |
-
unlink( $item->getPathname() );
|
| 45 |
}
|
| 46 |
}
|
| 47 |
|
| 48 |
// Remove storage path
|
| 49 |
-
rmdir( ai1wm_storage_path( $params ) );
|
| 50 |
|
| 51 |
exit;
|
| 52 |
}
|
| 27 |
|
| 28 |
public static function execute( $params ) {
|
| 29 |
|
| 30 |
+
// Iterate over storage directory
|
| 31 |
+
$iterator = new Ai1wm_Recursive_Directory_Iterator( ai1wm_storage_path( $params ) );
|
| 32 |
|
| 33 |
+
// Recursively iterate over storage directory
|
| 34 |
+
$iterator = new RecursiveIteratorIterator( $iterator, RecursiveIteratorIterator::CHILD_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD );
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
// Remove files and directories
|
| 37 |
foreach ( $iterator as $item ) {
|
| 38 |
if ( $item->isDir() ) {
|
| 39 |
+
@rmdir( $item->getPathname() );
|
| 40 |
} else {
|
| 41 |
+
@unlink( $item->getPathname() );
|
| 42 |
}
|
| 43 |
}
|
| 44 |
|
| 45 |
// Remove storage path
|
| 46 |
+
@rmdir( ai1wm_storage_path( $params ) );
|
| 47 |
|
| 48 |
exit;
|
| 49 |
}
|
lib/model/export/class-ai1wm-export-database.php
CHANGED
|
@@ -114,6 +114,9 @@ class Ai1wm_Export_Database {
|
|
| 114 |
// Exclude active plugins and status options
|
| 115 |
$client->set_table_query_clauses( ai1wm_table_prefix() . 'options', sprintf( " WHERE option_name NOT IN ('%s', '%s') ", AI1WM_ACTIVE_PLUGINS, AI1WM_STATUS ) );
|
| 116 |
|
|
|
|
|
|
|
|
|
|
| 117 |
// Set current table index
|
| 118 |
if ( isset( $params['current_table_index'] ) ) {
|
| 119 |
$current_table_index = (int) $params['current_table_index'];
|
| 114 |
// Exclude active plugins and status options
|
| 115 |
$client->set_table_query_clauses( ai1wm_table_prefix() . 'options', sprintf( " WHERE option_name NOT IN ('%s', '%s') ", AI1WM_ACTIVE_PLUGINS, AI1WM_STATUS ) );
|
| 116 |
|
| 117 |
+
// Set Visual Composer
|
| 118 |
+
$client->set_visual_composer( ! is_wp_error( validate_plugin( 'js_composer/js_composer.php' ) ) );
|
| 119 |
+
|
| 120 |
// Set current table index
|
| 121 |
if ( isset( $params['current_table_index'] ) ) {
|
| 122 |
$current_table_index = (int) $params['current_table_index'];
|
lib/model/import/class-ai1wm-import-clean.php
CHANGED
|
@@ -27,26 +27,23 @@ class Ai1wm_Import_Clean {
|
|
| 27 |
|
| 28 |
public static function execute( $params ) {
|
| 29 |
|
| 30 |
-
//
|
| 31 |
-
|
| 32 |
|
| 33 |
-
//
|
| 34 |
-
$iterator = new RecursiveIteratorIterator(
|
| 35 |
-
new Ai1wm_Recursive_Directory_Iterator( ai1wm_storage_path( $params ) ),
|
| 36 |
-
RecursiveIteratorIterator::CHILD_FIRST
|
| 37 |
-
);
|
| 38 |
|
| 39 |
// Remove files and directories
|
| 40 |
foreach ( $iterator as $item ) {
|
| 41 |
if ( $item->isDir() ) {
|
| 42 |
-
rmdir( $item->getPathname() );
|
| 43 |
} else {
|
| 44 |
-
unlink( $item->getPathname() );
|
| 45 |
}
|
| 46 |
}
|
| 47 |
|
| 48 |
// Remove storage path
|
| 49 |
-
rmdir( ai1wm_storage_path( $params ) );
|
| 50 |
|
| 51 |
exit;
|
| 52 |
}
|
| 27 |
|
| 28 |
public static function execute( $params ) {
|
| 29 |
|
| 30 |
+
// Iterate over storage directory
|
| 31 |
+
$iterator = new Ai1wm_Recursive_Directory_Iterator( ai1wm_storage_path( $params ) );
|
| 32 |
|
| 33 |
+
// Recursively iterate over storage directory
|
| 34 |
+
$iterator = new RecursiveIteratorIterator( $iterator, RecursiveIteratorIterator::CHILD_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD );
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
// Remove files and directories
|
| 37 |
foreach ( $iterator as $item ) {
|
| 38 |
if ( $item->isDir() ) {
|
| 39 |
+
@rmdir( $item->getPathname() );
|
| 40 |
} else {
|
| 41 |
+
@unlink( $item->getPathname() );
|
| 42 |
}
|
| 43 |
}
|
| 44 |
|
| 45 |
// Remove storage path
|
| 46 |
+
@rmdir( ai1wm_storage_path( $params ) );
|
| 47 |
|
| 48 |
exit;
|
| 49 |
}
|
lib/model/import/class-ai1wm-import-database.php
CHANGED
|
@@ -433,6 +433,9 @@ class Ai1wm_Import_Database {
|
|
| 433 |
}
|
| 434 |
}
|
| 435 |
|
|
|
|
|
|
|
|
|
|
| 436 |
// Import database
|
| 437 |
$client->import( ai1wm_database_path( $params ) );
|
| 438 |
|
| 433 |
}
|
| 434 |
}
|
| 435 |
|
| 436 |
+
// Set Visual Composer
|
| 437 |
+
$client->set_visual_composer( ! is_wp_error( validate_plugin( 'js_composer/js_composer.php' ) ) );
|
| 438 |
+
|
| 439 |
// Import database
|
| 440 |
$client->import( ai1wm_database_path( $params ) );
|
| 441 |
|
lib/model/import/class-ai1wm-import-done.php
CHANGED
|
@@ -45,7 +45,11 @@ class Ai1wm_Import_Done {
|
|
| 45 |
|
| 46 |
// Activate sitewide plugins
|
| 47 |
if ( isset( $multisite['Plugins'] ) && ( $plugins = $multisite['Plugins'] ) ) {
|
|
|
|
| 48 |
ai1wm_activate_plugins( $plugins );
|
|
|
|
|
|
|
|
|
|
| 49 |
}
|
| 50 |
} else {
|
| 51 |
|
|
@@ -64,7 +68,11 @@ class Ai1wm_Import_Done {
|
|
| 64 |
|
| 65 |
// Activate plugins
|
| 66 |
if ( isset( $package['Plugins'] ) && ( $plugins = $package['Plugins'] ) ) {
|
|
|
|
| 67 |
ai1wm_activate_plugins( $plugins );
|
|
|
|
|
|
|
|
|
|
| 68 |
}
|
| 69 |
}
|
| 70 |
}
|
|
@@ -85,7 +93,11 @@ class Ai1wm_Import_Done {
|
|
| 85 |
// Activate plugins
|
| 86 |
foreach ( $blogs as $blog ) {
|
| 87 |
if ( isset( $blog['New']['Plugins'] ) && ( $plugins = $blog['New']['Plugins'] ) ) {
|
|
|
|
| 88 |
ai1wm_activate_plugins( $plugins );
|
|
|
|
|
|
|
|
|
|
| 89 |
}
|
| 90 |
}
|
| 91 |
}
|
| 45 |
|
| 46 |
// Activate sitewide plugins
|
| 47 |
if ( isset( $multisite['Plugins'] ) && ( $plugins = $multisite['Plugins'] ) ) {
|
| 48 |
+
// Activate sitewide plugins
|
| 49 |
ai1wm_activate_plugins( $plugins );
|
| 50 |
+
|
| 51 |
+
// Disable Jetpack Photon module
|
| 52 |
+
ai1wm_disable_jetpack_photon();
|
| 53 |
}
|
| 54 |
} else {
|
| 55 |
|
| 68 |
|
| 69 |
// Activate plugins
|
| 70 |
if ( isset( $package['Plugins'] ) && ( $plugins = $package['Plugins'] ) ) {
|
| 71 |
+
// Activate plugins
|
| 72 |
ai1wm_activate_plugins( $plugins );
|
| 73 |
+
|
| 74 |
+
// Disable Jetpack Photon module
|
| 75 |
+
ai1wm_disable_jetpack_photon();
|
| 76 |
}
|
| 77 |
}
|
| 78 |
}
|
| 93 |
// Activate plugins
|
| 94 |
foreach ( $blogs as $blog ) {
|
| 95 |
if ( isset( $blog['New']['Plugins'] ) && ( $plugins = $blog['New']['Plugins'] ) ) {
|
| 96 |
+
// Activate plugins
|
| 97 |
ai1wm_activate_plugins( $plugins );
|
| 98 |
+
|
| 99 |
+
// Disable Jetpack Photon module
|
| 100 |
+
ai1wm_disable_jetpack_photon();
|
| 101 |
}
|
| 102 |
}
|
| 103 |
}
|
lib/vendor/servmask/database/class-ai1wm-database-mysql.php
CHANGED
|
@@ -41,8 +41,8 @@ class Ai1wm_Database_Mysql extends Ai1wm_Database {
|
|
| 41 |
* @param string $input String to escape
|
| 42 |
* @return string
|
| 43 |
*/
|
| 44 |
-
public function
|
| 45 |
-
return
|
| 46 |
}
|
| 47 |
|
| 48 |
/**
|
| 41 |
* @param string $input String to escape
|
| 42 |
* @return string
|
| 43 |
*/
|
| 44 |
+
public function escape( $input ) {
|
| 45 |
+
return mysql_real_escape_string( $input, $this->wpdb->dbh );
|
| 46 |
}
|
| 47 |
|
| 48 |
/**
|
lib/vendor/servmask/database/class-ai1wm-database-mysqli.php
CHANGED
|
@@ -41,8 +41,8 @@ class Ai1wm_Database_Mysqli extends Ai1wm_Database {
|
|
| 41 |
* @param string $input String to escape
|
| 42 |
* @return string
|
| 43 |
*/
|
| 44 |
-
public function
|
| 45 |
-
return
|
| 46 |
}
|
| 47 |
|
| 48 |
/**
|
| 41 |
* @param string $input String to escape
|
| 42 |
* @return string
|
| 43 |
*/
|
| 44 |
+
public function escape( $input ) {
|
| 45 |
+
return mysqli_real_escape_string( $this->wpdb->dbh, $input );
|
| 46 |
}
|
| 47 |
|
| 48 |
/**
|
lib/vendor/servmask/database/class-ai1wm-database-utility.php
CHANGED
|
@@ -89,6 +89,20 @@ class Ai1wm_Database_Utility {
|
|
| 89 |
return $data;
|
| 90 |
}
|
| 91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
/**
|
| 93 |
* Unescape MySQL special characters
|
| 94 |
*
|
| 89 |
return $data;
|
| 90 |
}
|
| 91 |
|
| 92 |
+
/**
|
| 93 |
+
* Escape MySQL special characters
|
| 94 |
+
*
|
| 95 |
+
* @param string $data Data to replace.
|
| 96 |
+
* @return string
|
| 97 |
+
*/
|
| 98 |
+
public static function escape_mysql( $data ) {
|
| 99 |
+
return str_ireplace(
|
| 100 |
+
array( '\\', '\0', "\n", "\r", "\x1a", "'", '"', "\0" ),
|
| 101 |
+
array( '\\\\', '\\0', "\\n", "\\r", '\Z', "\'", '\"', '\0' ),
|
| 102 |
+
$data
|
| 103 |
+
);
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
/**
|
| 107 |
* Unescape MySQL special characters
|
| 108 |
*
|
lib/vendor/servmask/database/class-ai1wm-database.php
CHANGED
|
@@ -112,6 +112,14 @@ abstract class Ai1wm_Database {
|
|
| 112 |
*/
|
| 113 |
protected $number_of_replaces = 0;
|
| 114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
/**
|
| 116 |
* Constructor
|
| 117 |
*
|
|
@@ -314,6 +322,27 @@ abstract class Ai1wm_Database {
|
|
| 314 |
return $this->exclude_table_prefixes;
|
| 315 |
}
|
| 316 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 317 |
/**
|
| 318 |
* Get tables
|
| 319 |
*
|
|
@@ -382,11 +411,6 @@ abstract class Ai1wm_Database {
|
|
| 382 |
* @return bool
|
| 383 |
*/
|
| 384 |
public function export( $file_name, &$current_table_index = 0, $timeout = 0 ) {
|
| 385 |
-
// Add support for MariaDB
|
| 386 |
-
if ( stripos( $this->version(), 'mariadb' ) !== false ) {
|
| 387 |
-
$this->query( "SET SESSION sql_mode = 'NO_TABLE_OPTIONS'" );
|
| 388 |
-
}
|
| 389 |
-
|
| 390 |
// Set file handler
|
| 391 |
$file_handler = ai1wm_open( $file_name, 'ab' );
|
| 392 |
|
|
@@ -432,8 +456,11 @@ abstract class Ai1wm_Database {
|
|
| 432 |
// Replace create table prefixes
|
| 433 |
$create_table = $this->replace_table_prefixes( $table['Create Table'], 14 );
|
| 434 |
|
| 435 |
-
//
|
| 436 |
-
$create_table = $this->
|
|
|
|
|
|
|
|
|
|
| 437 |
|
| 438 |
// Write table structure
|
| 439 |
ai1wm_write( $file_handler, $create_table );
|
|
@@ -468,7 +495,7 @@ abstract class Ai1wm_Database {
|
|
| 468 |
}
|
| 469 |
|
| 470 |
// Replace table values
|
| 471 |
-
$items[] = is_null( $value ) ? 'NULL' : $this->
|
| 472 |
}
|
| 473 |
|
| 474 |
// Set table values
|
|
@@ -520,11 +547,6 @@ abstract class Ai1wm_Database {
|
|
| 520 |
* @return bool
|
| 521 |
*/
|
| 522 |
public function import( $file_name ) {
|
| 523 |
-
// Add support for MariaDB
|
| 524 |
-
if ( stripos( $this->version(), 'mariadb' ) !== false ) {
|
| 525 |
-
$this->query( "SET SESSION sql_mode = 'IGNORE_BAD_TABLE_OPTIONS'" );
|
| 526 |
-
}
|
| 527 |
-
|
| 528 |
// Set max allowed packet
|
| 529 |
$max_allowed_packet = $this->get_max_allowed_packet();
|
| 530 |
|
|
@@ -548,12 +570,12 @@ abstract class Ai1wm_Database {
|
|
| 548 |
// Replace table prefixes
|
| 549 |
$query = $this->replace_table_prefixes( $query );
|
| 550 |
|
| 551 |
-
// Replace table values
|
| 552 |
-
$query = $this->replace_table_values( $query, true );
|
| 553 |
-
|
| 554 |
// Replace table collations
|
| 555 |
$query = $this->replace_table_collations( $query );
|
| 556 |
|
|
|
|
|
|
|
|
|
|
| 557 |
try {
|
| 558 |
|
| 559 |
// Run SQL query
|
|
@@ -669,7 +691,7 @@ abstract class Ai1wm_Database {
|
|
| 669 |
* Replace table prefixes
|
| 670 |
*
|
| 671 |
* @param string $input Table value
|
| 672 |
-
* @param
|
| 673 |
* @return string
|
| 674 |
*/
|
| 675 |
protected function replace_table_prefixes( $input, $position = false ) {
|
|
@@ -694,75 +716,93 @@ abstract class Ai1wm_Database {
|
|
| 694 |
}
|
| 695 |
|
| 696 |
/**
|
| 697 |
-
* Replace table values
|
| 698 |
*
|
| 699 |
* @param string $input Table value
|
| 700 |
-
* @param boolean $parse Parse value
|
| 701 |
* @return string
|
| 702 |
*/
|
| 703 |
-
protected function
|
| 704 |
-
|
| 705 |
-
$old = $this->get_old_replace_values();
|
| 706 |
-
$new = $this->get_new_replace_values();
|
| 707 |
|
| 708 |
-
|
| 709 |
-
$
|
|
|
|
|
|
|
| 710 |
|
| 711 |
-
//
|
| 712 |
-
|
| 713 |
-
|
| 714 |
-
$old_values[] = $old[$i];
|
| 715 |
-
$new_values[] = $new[$i];
|
| 716 |
-
}
|
| 717 |
}
|
| 718 |
|
| 719 |
-
//
|
| 720 |
-
|
| 721 |
-
if ( $parse ) {
|
| 722 |
-
return $this->parse_serialized_values( $old_values, $new_values, $input );
|
| 723 |
-
}
|
| 724 |
|
| 725 |
-
|
|
|
|
|
|
|
| 726 |
}
|
| 727 |
|
| 728 |
return $input;
|
| 729 |
}
|
| 730 |
|
| 731 |
/**
|
| 732 |
-
*
|
| 733 |
*
|
| 734 |
-
* @param
|
| 735 |
-
* @param array $new_values New replace values
|
| 736 |
-
* @param string $input Table value
|
| 737 |
* @return string
|
| 738 |
*/
|
| 739 |
-
protected function
|
|
|
|
|
|
|
| 740 |
// Serialization format
|
| 741 |
-
$array = '(a:\d+:{
|
| 742 |
-
$string = '(s:\d
|
| 743 |
-
$object = '(O:\d
|
| 744 |
|
| 745 |
-
//
|
| 746 |
-
$this->
|
|
|
|
|
|
|
| 747 |
|
| 748 |
// Replace serialized values
|
| 749 |
-
$input = preg_replace_callback( "/'($array|$string|$object)'/", array( $this, '
|
| 750 |
|
| 751 |
// Replace values
|
| 752 |
if ( $this->number_of_replaces === 0 ) {
|
| 753 |
-
$input = Ai1wm_Database_Utility::replace_values( $
|
| 754 |
}
|
| 755 |
|
| 756 |
return $input;
|
| 757 |
}
|
| 758 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 759 |
/**
|
| 760 |
* Replace serialized values (callback)
|
| 761 |
*
|
| 762 |
* @param array $matches List of matches
|
| 763 |
* @return string
|
| 764 |
*/
|
| 765 |
-
protected function
|
| 766 |
$this->number_of_replaces++;
|
| 767 |
|
| 768 |
// Unescape MySQL special characters
|
|
@@ -771,8 +811,10 @@ abstract class Ai1wm_Database {
|
|
| 771 |
// Replace serialized values
|
| 772 |
$input = Ai1wm_Database_Utility::replace_serialized_values( $this->get_old_replace_values(), $this->get_new_replace_values(), $input );
|
| 773 |
|
| 774 |
-
//
|
| 775 |
-
|
|
|
|
|
|
|
| 776 |
}
|
| 777 |
|
| 778 |
/**
|
|
@@ -789,10 +831,10 @@ abstract class Ai1wm_Database {
|
|
| 789 |
if ( empty( $search ) || empty( $replace ) ) {
|
| 790 |
if ( ! $this->wpdb->has_cap( 'utf8mb4_520' ) ) {
|
| 791 |
if ( ! $this->wpdb->has_cap( 'utf8mb4' ) ) {
|
| 792 |
-
$search
|
| 793 |
$replace = array( 'utf8_unicode_ci', 'utf8' );
|
| 794 |
} else {
|
| 795 |
-
$search
|
| 796 |
$replace = array( 'utf8mb4_unicode_ci' );
|
| 797 |
}
|
| 798 |
}
|
|
@@ -802,12 +844,12 @@ abstract class Ai1wm_Database {
|
|
| 802 |
}
|
| 803 |
|
| 804 |
/**
|
| 805 |
-
*
|
| 806 |
*
|
| 807 |
* @param string $input SQL statement
|
| 808 |
* @return string
|
| 809 |
*/
|
| 810 |
-
protected function
|
| 811 |
$pattern = array(
|
| 812 |
'/\s+CONSTRAINT(.+)REFERENCES(.+),/i',
|
| 813 |
'/,\s+CONSTRAINT(.+)REFERENCES(.+)/i',
|
|
@@ -816,6 +858,43 @@ abstract class Ai1wm_Database {
|
|
| 816 |
return preg_replace( $pattern, '', $input );
|
| 817 |
}
|
| 818 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 819 |
/**
|
| 820 |
* Returns header for dump file
|
| 821 |
*
|
|
@@ -853,7 +932,7 @@ abstract class Ai1wm_Database {
|
|
| 853 |
* @param string $input String to escape
|
| 854 |
* @return string
|
| 855 |
*/
|
| 856 |
-
abstract public function
|
| 857 |
|
| 858 |
/**
|
| 859 |
* Return the error code for the most recent function call
|
| 112 |
*/
|
| 113 |
protected $number_of_replaces = 0;
|
| 114 |
|
| 115 |
+
/**
|
| 116 |
+
* Visual Composer
|
| 117 |
+
*
|
| 118 |
+
* @access protected
|
| 119 |
+
* @var bool
|
| 120 |
+
*/
|
| 121 |
+
protected $visual_composer = false;
|
| 122 |
+
|
| 123 |
/**
|
| 124 |
* Constructor
|
| 125 |
*
|
| 322 |
return $this->exclude_table_prefixes;
|
| 323 |
}
|
| 324 |
|
| 325 |
+
/**
|
| 326 |
+
* Set Visual Composer
|
| 327 |
+
*
|
| 328 |
+
* @param bool $active Is Visual Composer Active?
|
| 329 |
+
* @return Ai1wm_Database
|
| 330 |
+
*/
|
| 331 |
+
public function set_visual_composer( $active ) {
|
| 332 |
+
$this->visual_composer = $active;
|
| 333 |
+
|
| 334 |
+
return $this;
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
/**
|
| 338 |
+
* Get Visual Composer
|
| 339 |
+
*
|
| 340 |
+
* @return bool
|
| 341 |
+
*/
|
| 342 |
+
public function get_visual_composer() {
|
| 343 |
+
return $this->visual_composer;
|
| 344 |
+
}
|
| 345 |
+
|
| 346 |
/**
|
| 347 |
* Get tables
|
| 348 |
*
|
| 411 |
* @return bool
|
| 412 |
*/
|
| 413 |
public function export( $file_name, &$current_table_index = 0, $timeout = 0 ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 414 |
// Set file handler
|
| 415 |
$file_handler = ai1wm_open( $file_name, 'ab' );
|
| 416 |
|
| 456 |
// Replace create table prefixes
|
| 457 |
$create_table = $this->replace_table_prefixes( $table['Create Table'], 14 );
|
| 458 |
|
| 459 |
+
// Replace table constraints
|
| 460 |
+
$create_table = $this->replace_table_constraints( $create_table );
|
| 461 |
+
|
| 462 |
+
// Replace create table options
|
| 463 |
+
$create_table = $this->replace_table_options( $create_table );
|
| 464 |
|
| 465 |
// Write table structure
|
| 466 |
ai1wm_write( $file_handler, $create_table );
|
| 495 |
}
|
| 496 |
|
| 497 |
// Replace table values
|
| 498 |
+
$items[] = is_null( $value ) ? 'NULL' : "'" . $this->replace_table_export_values( $this->escape( $value ) ) . "'";
|
| 499 |
}
|
| 500 |
|
| 501 |
// Set table values
|
| 547 |
* @return bool
|
| 548 |
*/
|
| 549 |
public function import( $file_name ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 550 |
// Set max allowed packet
|
| 551 |
$max_allowed_packet = $this->get_max_allowed_packet();
|
| 552 |
|
| 570 |
// Replace table prefixes
|
| 571 |
$query = $this->replace_table_prefixes( $query );
|
| 572 |
|
|
|
|
|
|
|
|
|
|
| 573 |
// Replace table collations
|
| 574 |
$query = $this->replace_table_collations( $query );
|
| 575 |
|
| 576 |
+
// Replace table values
|
| 577 |
+
$query = $this->replace_table_import_values( $query );
|
| 578 |
+
|
| 579 |
try {
|
| 580 |
|
| 581 |
// Run SQL query
|
| 691 |
* Replace table prefixes
|
| 692 |
*
|
| 693 |
* @param string $input Table value
|
| 694 |
+
* @param bool $position Replace first occurrence at a specified position
|
| 695 |
* @return string
|
| 696 |
*/
|
| 697 |
protected function replace_table_prefixes( $input, $position = false ) {
|
| 716 |
}
|
| 717 |
|
| 718 |
/**
|
| 719 |
+
* Replace table export values
|
| 720 |
*
|
| 721 |
* @param string $input Table value
|
|
|
|
| 722 |
* @return string
|
| 723 |
*/
|
| 724 |
+
protected function replace_table_export_values( $input ) {
|
| 725 |
+
$this->number_of_replaces = 0;
|
|
|
|
|
|
|
| 726 |
|
| 727 |
+
// Serialization format
|
| 728 |
+
$array = '(a:\d+:{.+?})';
|
| 729 |
+
$string = '(s:\d+:\\\\?"(.+?)\\\\?";)';
|
| 730 |
+
$object = '(O:\d+:\\\\?"(.+?)\\\\?":\d+:{.*?})';
|
| 731 |
|
| 732 |
+
// Replace base64 encoded values (Visual Composer)
|
| 733 |
+
if ( $this->get_visual_composer() ) {
|
| 734 |
+
$input = preg_replace_callback( "/(?<=\[vc_raw_html\])(.+?)(?=\[\/vc_raw_html\])/S", array( $this, 'replace_base64_values_callback' ), $input );
|
|
|
|
|
|
|
|
|
|
| 735 |
}
|
| 736 |
|
| 737 |
+
// Replace serialized values
|
| 738 |
+
$input = preg_replace_callback( "/(?<=\A)($array|$string|$object)(?=\z)/S", array( $this, 'replace_serialized_values_callback' ), $input );
|
|
|
|
|
|
|
|
|
|
| 739 |
|
| 740 |
+
// Replace values
|
| 741 |
+
if ( $this->number_of_replaces === 0 ) {
|
| 742 |
+
$input = Ai1wm_Database_Utility::replace_values( $this->get_old_replace_values(), $this->get_new_replace_values(), $input );
|
| 743 |
}
|
| 744 |
|
| 745 |
return $input;
|
| 746 |
}
|
| 747 |
|
| 748 |
/**
|
| 749 |
+
* Replace table import values
|
| 750 |
*
|
| 751 |
+
* @param string $input Table value
|
|
|
|
|
|
|
| 752 |
* @return string
|
| 753 |
*/
|
| 754 |
+
protected function replace_table_import_values( $input ) {
|
| 755 |
+
$this->number_of_replaces = 0;
|
| 756 |
+
|
| 757 |
// Serialization format
|
| 758 |
+
$array = '(a:\d+:{.+?})';
|
| 759 |
+
$string = '(s:\d+:\\\\?"(.+?)\\\\?";)';
|
| 760 |
+
$object = '(O:\d+:\\\\?"(.+?)\\\\?":\d+:{.*?})';
|
| 761 |
|
| 762 |
+
// Replace base64 encoded values (Visual Composer)
|
| 763 |
+
if ( $this->get_visual_composer() ) {
|
| 764 |
+
$input = preg_replace_callback( "/(?<=\[vc_raw_html\])(.+?)(?=\[\/vc_raw_html\])/S", array( $this, 'replace_base64_values_callback' ), $input );
|
| 765 |
+
}
|
| 766 |
|
| 767 |
// Replace serialized values
|
| 768 |
+
$input = preg_replace_callback( "/(?<=')($array|$string|$object)(?=')/S", array( $this, 'replace_serialized_values_callback' ), $input );
|
| 769 |
|
| 770 |
// Replace values
|
| 771 |
if ( $this->number_of_replaces === 0 ) {
|
| 772 |
+
$input = Ai1wm_Database_Utility::replace_values( $this->get_old_replace_values(), $this->get_new_replace_values(), $input );
|
| 773 |
}
|
| 774 |
|
| 775 |
return $input;
|
| 776 |
}
|
| 777 |
|
| 778 |
+
/**
|
| 779 |
+
* Replace base64 values (callback)
|
| 780 |
+
*
|
| 781 |
+
* @param array $matches List of matches
|
| 782 |
+
* @return string
|
| 783 |
+
*/
|
| 784 |
+
protected function replace_base64_values_callback( $matches ) {
|
| 785 |
+
$this->number_of_replaces++;
|
| 786 |
+
|
| 787 |
+
// Decode base64 characters
|
| 788 |
+
$input = rawurldecode( base64_decode( strip_tags( $matches[1] ) ) );
|
| 789 |
+
|
| 790 |
+
// Replace serialized values
|
| 791 |
+
$input = Ai1wm_Database_Utility::replace_values( $this->get_old_replace_values(), $this->get_new_replace_values(), $input );
|
| 792 |
+
|
| 793 |
+
// Encode base64 characters
|
| 794 |
+
$input = base64_encode( rawurlencode( $input ) );
|
| 795 |
+
|
| 796 |
+
return $input;
|
| 797 |
+
}
|
| 798 |
+
|
| 799 |
/**
|
| 800 |
* Replace serialized values (callback)
|
| 801 |
*
|
| 802 |
* @param array $matches List of matches
|
| 803 |
* @return string
|
| 804 |
*/
|
| 805 |
+
protected function replace_serialized_values_callback( $matches ) {
|
| 806 |
$this->number_of_replaces++;
|
| 807 |
|
| 808 |
// Unescape MySQL special characters
|
| 811 |
// Replace serialized values
|
| 812 |
$input = Ai1wm_Database_Utility::replace_serialized_values( $this->get_old_replace_values(), $this->get_new_replace_values(), $input );
|
| 813 |
|
| 814 |
+
// Escape MySQL special characters
|
| 815 |
+
$input = Ai1wm_Database_Utility::escape_mysql( $input );
|
| 816 |
+
|
| 817 |
+
return $input;
|
| 818 |
}
|
| 819 |
|
| 820 |
/**
|
| 831 |
if ( empty( $search ) || empty( $replace ) ) {
|
| 832 |
if ( ! $this->wpdb->has_cap( 'utf8mb4_520' ) ) {
|
| 833 |
if ( ! $this->wpdb->has_cap( 'utf8mb4' ) ) {
|
| 834 |
+
$search = array( 'utf8mb4_unicode_520_ci', 'utf8mb4' );
|
| 835 |
$replace = array( 'utf8_unicode_ci', 'utf8' );
|
| 836 |
} else {
|
| 837 |
+
$search = array( 'utf8mb4_unicode_520_ci' );
|
| 838 |
$replace = array( 'utf8mb4_unicode_ci' );
|
| 839 |
}
|
| 840 |
}
|
| 844 |
}
|
| 845 |
|
| 846 |
/**
|
| 847 |
+
* Replace table constraints
|
| 848 |
*
|
| 849 |
* @param string $input SQL statement
|
| 850 |
* @return string
|
| 851 |
*/
|
| 852 |
+
protected function replace_table_constraints( $input ) {
|
| 853 |
$pattern = array(
|
| 854 |
'/\s+CONSTRAINT(.+)REFERENCES(.+),/i',
|
| 855 |
'/,\s+CONSTRAINT(.+)REFERENCES(.+)/i',
|
| 858 |
return preg_replace( $pattern, '', $input );
|
| 859 |
}
|
| 860 |
|
| 861 |
+
/**
|
| 862 |
+
* Replace table options
|
| 863 |
+
*
|
| 864 |
+
* @param string $input SQL statement
|
| 865 |
+
* @return string
|
| 866 |
+
*/
|
| 867 |
+
protected function replace_table_options( $input ) {
|
| 868 |
+
// Set table replace options
|
| 869 |
+
$search = array(
|
| 870 |
+
'ENGINE=Aria',
|
| 871 |
+
'TRANSACTIONAL=0',
|
| 872 |
+
'TRANSACTIONAL=1',
|
| 873 |
+
'PAGE_CHECKSUM=0',
|
| 874 |
+
'PAGE_CHECKSUM=1',
|
| 875 |
+
'TABLE_CHECKSUM=0',
|
| 876 |
+
'TABLE_CHECKSUM=1',
|
| 877 |
+
'ROW_FORMAT=PAGE',
|
| 878 |
+
'ROW_FORMAT=FIXED',
|
| 879 |
+
'ROW_FORMAT=DYNAMIC',
|
| 880 |
+
|
| 881 |
+
);
|
| 882 |
+
$replace = array(
|
| 883 |
+
'ENGINE=MyISAM',
|
| 884 |
+
'',
|
| 885 |
+
'',
|
| 886 |
+
'',
|
| 887 |
+
'',
|
| 888 |
+
'',
|
| 889 |
+
'',
|
| 890 |
+
'',
|
| 891 |
+
'',
|
| 892 |
+
'',
|
| 893 |
+
);
|
| 894 |
+
|
| 895 |
+
return str_ireplace( $search, $replace, $input );
|
| 896 |
+
}
|
| 897 |
+
|
| 898 |
/**
|
| 899 |
* Returns header for dump file
|
| 900 |
*
|
| 932 |
* @param string $input String to escape
|
| 933 |
* @return string
|
| 934 |
*/
|
| 935 |
+
abstract public function escape( $input );
|
| 936 |
|
| 937 |
/**
|
| 938 |
* Return the error code for the most recent function call
|
lib/vendor/servmask/filesystem/class-ai1wm-file-htaccess.php
CHANGED
|
@@ -34,7 +34,14 @@ class Ai1wm_File_Htaccess {
|
|
| 34 |
* @return boolean|null
|
| 35 |
*/
|
| 36 |
public static function create( $path ) {
|
| 37 |
-
$contents = "<IfModule mod_mime.c>\
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
return Ai1wm_File::create( $path, $contents );
|
| 39 |
}
|
| 40 |
}
|
| 34 |
* @return boolean|null
|
| 35 |
*/
|
| 36 |
public static function create( $path ) {
|
| 37 |
+
$contents = "<IfModule mod_mime.c>\n" .
|
| 38 |
+
"AddType application/octet-stream .wpress\n" .
|
| 39 |
+
"</IfModule>\n" .
|
| 40 |
+
"<IfModule mod_dir.c>\n" .
|
| 41 |
+
"DirectoryIndex index.php\n" .
|
| 42 |
+
"</IfModule>\n" .
|
| 43 |
+
"Options -Indexes\n";
|
| 44 |
+
|
| 45 |
return Ai1wm_File::create( $path, $contents );
|
| 46 |
}
|
| 47 |
}
|
lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php
CHANGED
|
@@ -35,12 +35,18 @@ class Ai1wm_File_Webconfig {
|
|
| 35 |
*/
|
| 36 |
public static function create( $path ) {
|
| 37 |
$contents = "<configuration>\n" .
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
return Ai1wm_File::create( $path, $contents );
|
| 46 |
}
|
| 35 |
*/
|
| 36 |
public static function create( $path ) {
|
| 37 |
$contents = "<configuration>\n" .
|
| 38 |
+
"<system.webServer>\n" .
|
| 39 |
+
"<staticContent>\n" .
|
| 40 |
+
"<mimeMap fileExtension=\".wpress\" mimeType=\"application/octet-stream\" />\n" .
|
| 41 |
+
"</staticContent>\n" .
|
| 42 |
+
"<defaultDocument>\n" .
|
| 43 |
+
"<files>\n" .
|
| 44 |
+
"<add value=\"index.php\" />\n" .
|
| 45 |
+
"</files>\n" .
|
| 46 |
+
"</defaultDocument>\n" .
|
| 47 |
+
"<directoryBrowse enabled=\"false\" />\n" .
|
| 48 |
+
"</system.webServer>\n" .
|
| 49 |
+
"</configuration>\n";
|
| 50 |
|
| 51 |
return Ai1wm_File::create( $path, $contents );
|
| 52 |
}
|
lib/view/assets/javascript/backups.min.js
CHANGED
|
@@ -71,8 +71,8 @@
|
|
| 71 |
*/
|
| 72 |
|
| 73 |
var Report = __webpack_require__(1),
|
| 74 |
-
Feedback = __webpack_require__(
|
| 75 |
-
Util = __webpack_require__(
|
| 76 |
Import = __webpack_require__(4);
|
| 77 |
|
| 78 |
jQuery(document).ready(function ($) {
|
|
@@ -91,11 +91,15 @@
|
|
| 91 |
// Delete file
|
| 92 |
if (confirm('Are you sure you want to delete this file?')) {
|
| 93 |
$.ajax({
|
| 94 |
-
type: 'POST',
|
| 95 |
url: ai1wm_backups.ajax.url,
|
|
|
|
|
|
|
| 96 |
data: { 'archive': self.data('archive') },
|
| 97 |
-
|
| 98 |
-
|
|
|
|
|
|
|
|
|
|
| 99 |
if (errors.length === 0) {
|
| 100 |
self.closest('tr').remove();
|
| 101 |
if ($('.ai1wm-backups tbody tr').length === 0) {
|
|
@@ -103,8 +107,7 @@
|
|
| 103 |
$('.ai1wm-backups-empty').removeClass('ai1wm-hide');
|
| 104 |
}
|
| 105 |
}
|
| 106 |
-
}
|
| 107 |
-
dataType: 'json'
|
| 108 |
});
|
| 109 |
}
|
| 110 |
|
|
@@ -130,7 +133,7 @@
|
|
| 130 |
|
| 131 |
/***/ },
|
| 132 |
/* 1 */
|
| 133 |
-
/***/ function(module, exports) {
|
| 134 |
|
| 135 |
'use strict';
|
| 136 |
|
|
@@ -158,6 +161,8 @@
|
|
| 158 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 159 |
*/
|
| 160 |
|
|
|
|
|
|
|
| 161 |
jQuery(document).ready(function ($) {
|
| 162 |
'use strict';
|
| 163 |
|
|
@@ -179,33 +184,36 @@
|
|
| 179 |
var terms = $('.ai1wm-report-terms').is(':checked');
|
| 180 |
|
| 181 |
$.ajax({
|
| 182 |
-
type: 'POST',
|
| 183 |
url: ai1wm_report.ajax.url,
|
|
|
|
|
|
|
|
|
|
| 184 |
data: { 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
|
|
|
|
|
|
|
|
|
| 185 |
success: function success(data) {
|
| 186 |
var errors = data.errors;
|
| 187 |
if (errors.length > 0) {
|
| 188 |
// Reset previous messages
|
| 189 |
$('.ai1wm-report-problem-dialog .ai1wm-message').remove();
|
| 190 |
|
| 191 |
-
var
|
| 192 |
$.each(errors, function (key, value) {
|
| 193 |
-
|
| 194 |
});
|
| 195 |
|
| 196 |
-
$('.ai1wm-report-problem-dialog').prepend(
|
| 197 |
} else {
|
| 198 |
-
var
|
| 199 |
-
$('.ai1wm-report-problem-dialog').html(
|
| 200 |
|
| 201 |
// Hide message
|
| 202 |
setTimeout(function () {
|
| 203 |
$('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active');
|
| 204 |
}, 2000);
|
| 205 |
}
|
| 206 |
-
}
|
| 207 |
-
dataType: 'json',
|
| 208 |
-
async: false
|
| 209 |
});
|
| 210 |
});
|
| 211 |
});
|
|
@@ -240,6 +248,84 @@
|
|
| 240 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 241 |
*/
|
| 242 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
jQuery(document).ready(function ($) {
|
| 244 |
'use strict';
|
| 245 |
|
|
@@ -298,102 +384,35 @@
|
|
| 298 |
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
| 299 |
|
| 300 |
$.ajax({
|
| 301 |
-
type: 'POST',
|
| 302 |
url: ai1wm_feedback.ajax.url,
|
|
|
|
|
|
|
|
|
|
| 303 |
data: { 'ai1wm_type': type, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
|
|
|
|
|
|
|
|
|
| 304 |
success: function success(data) {
|
| 305 |
var errors = data.errors;
|
| 306 |
if (errors.length > 0) {
|
| 307 |
// Reset previous messages
|
| 308 |
$('.ai1wm-feedback .ai1wm-message').remove();
|
| 309 |
|
| 310 |
-
var
|
| 311 |
$.each(errors, function (key, value) {
|
| 312 |
-
|
| 313 |
});
|
| 314 |
|
| 315 |
-
$('.ai1wm-feedback').prepend(
|
| 316 |
} else {
|
| 317 |
-
var
|
| 318 |
-
$('.ai1wm-feedback').html(
|
| 319 |
}
|
| 320 |
-
}
|
| 321 |
-
dataType: 'json',
|
| 322 |
-
async: false
|
| 323 |
});
|
| 324 |
});
|
| 325 |
});
|
| 326 |
|
| 327 |
-
/***/ },
|
| 328 |
-
/* 3 */
|
| 329 |
-
/***/ function(module, exports) {
|
| 330 |
-
|
| 331 |
-
'use strict';
|
| 332 |
-
|
| 333 |
-
/**
|
| 334 |
-
* Copyright (C) 2014-2017 ServMask Inc.
|
| 335 |
-
*
|
| 336 |
-
* This program is free software: you can redistribute it and/or modify
|
| 337 |
-
* it under the terms of the GNU General Public License as published by
|
| 338 |
-
* the Free Software Foundation, either version 3 of the License, or
|
| 339 |
-
* (at your option) any later version.
|
| 340 |
-
*
|
| 341 |
-
* This program is distributed in the hope that it will be useful,
|
| 342 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 343 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 344 |
-
* GNU General Public License for more details.
|
| 345 |
-
*
|
| 346 |
-
* You should have received a copy of the GNU General Public License
|
| 347 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 348 |
-
*
|
| 349 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
| 350 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
| 351 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
| 352 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
| 353 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
| 354 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 355 |
-
*/
|
| 356 |
-
|
| 357 |
-
var $ = jQuery;
|
| 358 |
-
|
| 359 |
-
module.exports = {
|
| 360 |
-
random: function random(len) {
|
| 361 |
-
var text = '';
|
| 362 |
-
var possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
| 363 |
-
|
| 364 |
-
for (var i = 0; i < len; i++) {
|
| 365 |
-
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 366 |
-
}
|
| 367 |
-
|
| 368 |
-
return text;
|
| 369 |
-
},
|
| 370 |
-
form: function form(id) {
|
| 371 |
-
return $(id).serializeArray();
|
| 372 |
-
},
|
| 373 |
-
ucfirst: function ucfirst(text) {
|
| 374 |
-
return text.charAt(0).toUpperCase() + text.slice(1);
|
| 375 |
-
},
|
| 376 |
-
list: function list(input) {
|
| 377 |
-
// Convert object to list
|
| 378 |
-
if ($.isPlainObject(input)) {
|
| 379 |
-
var result = [];
|
| 380 |
-
var params = decodeURIComponent($.param(input)).split('&');
|
| 381 |
-
|
| 382 |
-
// Loop over params
|
| 383 |
-
$.each(params, function (index, item) {
|
| 384 |
-
var value = item.split('=');
|
| 385 |
-
|
| 386 |
-
// Add item
|
| 387 |
-
result.push({ name: value[0], value: value[1] });
|
| 388 |
-
});
|
| 389 |
-
|
| 390 |
-
return result;
|
| 391 |
-
}
|
| 392 |
-
|
| 393 |
-
return input;
|
| 394 |
-
}
|
| 395 |
-
};
|
| 396 |
-
|
| 397 |
/***/ },
|
| 398 |
/* 4 */
|
| 399 |
/***/ function(module, exports, __webpack_require__) {
|
|
@@ -424,7 +443,7 @@
|
|
| 424 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 425 |
*/
|
| 426 |
|
| 427 |
-
var Util = __webpack_require__(
|
| 428 |
Modal = __webpack_require__(5),
|
| 429 |
$ = jQuery;
|
| 430 |
|
|
@@ -491,7 +510,15 @@
|
|
| 491 |
}
|
| 492 |
|
| 493 |
// Import
|
| 494 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 495 |
self.getStatus();
|
| 496 |
}).done(function (params) {
|
| 497 |
if (params) {
|
|
@@ -522,7 +549,15 @@
|
|
| 522 |
}
|
| 523 |
|
| 524 |
// Import
|
| 525 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 526 |
if (params) {
|
| 527 |
self.run(params);
|
| 528 |
}
|
|
@@ -553,7 +588,15 @@
|
|
| 553 |
}
|
| 554 |
|
| 555 |
// Confirm
|
| 556 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 557 |
self.getStatus();
|
| 558 |
}).done(function (params) {
|
| 559 |
if (params) {
|
|
@@ -592,7 +635,15 @@
|
|
| 592 |
}
|
| 593 |
|
| 594 |
// Blogs
|
| 595 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 596 |
self.getStatus();
|
| 597 |
}).done(function (params) {
|
| 598 |
if (params) {
|
|
@@ -632,7 +683,15 @@
|
|
| 632 |
}
|
| 633 |
|
| 634 |
// Clean
|
| 635 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 636 |
// Unbinding the beforeunload event when we stop importing
|
| 637 |
$(window).unbind('beforeunload');
|
| 638 |
|
|
@@ -662,9 +721,13 @@
|
|
| 662 |
}
|
| 663 |
|
| 664 |
$.ajax({
|
| 665 |
-
cache: false,
|
| 666 |
url: ai1wm_import.status.url,
|
| 667 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 668 |
}).done(function (params) {
|
| 669 |
if (params) {
|
| 670 |
self.setStatus(params);
|
| 71 |
*/
|
| 72 |
|
| 73 |
var Report = __webpack_require__(1),
|
| 74 |
+
Feedback = __webpack_require__(3),
|
| 75 |
+
Util = __webpack_require__(2),
|
| 76 |
Import = __webpack_require__(4);
|
| 77 |
|
| 78 |
jQuery(document).ready(function ($) {
|
| 91 |
// Delete file
|
| 92 |
if (confirm('Are you sure you want to delete this file?')) {
|
| 93 |
$.ajax({
|
|
|
|
| 94 |
url: ai1wm_backups.ajax.url,
|
| 95 |
+
type: 'POST',
|
| 96 |
+
dataType: 'json',
|
| 97 |
data: { 'archive': self.data('archive') },
|
| 98 |
+
dataFilter: function dataFilter(data, type) {
|
| 99 |
+
return Util.json(data);
|
| 100 |
+
},
|
| 101 |
+
success: function success(data) {
|
| 102 |
+
var errors = data.errors;
|
| 103 |
if (errors.length === 0) {
|
| 104 |
self.closest('tr').remove();
|
| 105 |
if ($('.ai1wm-backups tbody tr').length === 0) {
|
| 107 |
$('.ai1wm-backups-empty').removeClass('ai1wm-hide');
|
| 108 |
}
|
| 109 |
}
|
| 110 |
+
}
|
|
|
|
| 111 |
});
|
| 112 |
}
|
| 113 |
|
| 133 |
|
| 134 |
/***/ },
|
| 135 |
/* 1 */
|
| 136 |
+
/***/ function(module, exports, __webpack_require__) {
|
| 137 |
|
| 138 |
'use strict';
|
| 139 |
|
| 161 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 162 |
*/
|
| 163 |
|
| 164 |
+
var Util = __webpack_require__(2);
|
| 165 |
+
|
| 166 |
jQuery(document).ready(function ($) {
|
| 167 |
'use strict';
|
| 168 |
|
| 184 |
var terms = $('.ai1wm-report-terms').is(':checked');
|
| 185 |
|
| 186 |
$.ajax({
|
|
|
|
| 187 |
url: ai1wm_report.ajax.url,
|
| 188 |
+
type: 'POST',
|
| 189 |
+
dataType: 'json',
|
| 190 |
+
async: false,
|
| 191 |
data: { 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
| 192 |
+
dataFilter: function dataFilter(data, type) {
|
| 193 |
+
return Util.json(data);
|
| 194 |
+
},
|
| 195 |
success: function success(data) {
|
| 196 |
var errors = data.errors;
|
| 197 |
if (errors.length > 0) {
|
| 198 |
// Reset previous messages
|
| 199 |
$('.ai1wm-report-problem-dialog .ai1wm-message').remove();
|
| 200 |
|
| 201 |
+
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
| 202 |
$.each(errors, function (key, value) {
|
| 203 |
+
errorMessage.append('<p>' + value + '</p>');
|
| 204 |
});
|
| 205 |
|
| 206 |
+
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
| 207 |
} else {
|
| 208 |
+
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message').append('<p>Thanks for submitting your request!</p>');
|
| 209 |
+
$('.ai1wm-report-problem-dialog').html(successMessage);
|
| 210 |
|
| 211 |
// Hide message
|
| 212 |
setTimeout(function () {
|
| 213 |
$('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active');
|
| 214 |
}, 2000);
|
| 215 |
}
|
| 216 |
+
}
|
|
|
|
|
|
|
| 217 |
});
|
| 218 |
});
|
| 219 |
});
|
| 248 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 249 |
*/
|
| 250 |
|
| 251 |
+
var $ = jQuery;
|
| 252 |
+
|
| 253 |
+
module.exports = {
|
| 254 |
+
random: function random(len) {
|
| 255 |
+
var text = '';
|
| 256 |
+
var possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
| 257 |
+
|
| 258 |
+
for (var i = 0; i < len; i++) {
|
| 259 |
+
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 260 |
+
}
|
| 261 |
+
|
| 262 |
+
return text;
|
| 263 |
+
},
|
| 264 |
+
form: function form(id) {
|
| 265 |
+
return $(id).serializeArray();
|
| 266 |
+
},
|
| 267 |
+
ucfirst: function ucfirst(text) {
|
| 268 |
+
return text.charAt(0).toUpperCase() + text.slice(1);
|
| 269 |
+
},
|
| 270 |
+
list: function list(input) {
|
| 271 |
+
// Convert object to list
|
| 272 |
+
if ($.isPlainObject(input)) {
|
| 273 |
+
var result = [];
|
| 274 |
+
var params = decodeURIComponent($.param(input)).split('&');
|
| 275 |
+
|
| 276 |
+
// Loop over params
|
| 277 |
+
$.each(params, function (index, item) {
|
| 278 |
+
var value = item.split('=');
|
| 279 |
+
|
| 280 |
+
// Add item
|
| 281 |
+
result.push({ name: value[0], value: value[1] });
|
| 282 |
+
});
|
| 283 |
+
|
| 284 |
+
return result;
|
| 285 |
+
}
|
| 286 |
+
|
| 287 |
+
return input;
|
| 288 |
+
},
|
| 289 |
+
json: function json(input) {
|
| 290 |
+
var result = input.match(/{[\s\S]+}/);
|
| 291 |
+
if (result !== null) {
|
| 292 |
+
return result[0];
|
| 293 |
+
}
|
| 294 |
+
}
|
| 295 |
+
};
|
| 296 |
+
|
| 297 |
+
/***/ },
|
| 298 |
+
/* 3 */
|
| 299 |
+
/***/ function(module, exports, __webpack_require__) {
|
| 300 |
+
|
| 301 |
+
'use strict';
|
| 302 |
+
|
| 303 |
+
/**
|
| 304 |
+
* Copyright (C) 2014-2017 ServMask Inc.
|
| 305 |
+
*
|
| 306 |
+
* This program is free software: you can redistribute it and/or modify
|
| 307 |
+
* it under the terms of the GNU General Public License as published by
|
| 308 |
+
* the Free Software Foundation, either version 3 of the License, or
|
| 309 |
+
* (at your option) any later version.
|
| 310 |
+
*
|
| 311 |
+
* This program is distributed in the hope that it will be useful,
|
| 312 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 313 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 314 |
+
* GNU General Public License for more details.
|
| 315 |
+
*
|
| 316 |
+
* You should have received a copy of the GNU General Public License
|
| 317 |
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 318 |
+
*
|
| 319 |
+
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
| 320 |
+
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
| 321 |
+
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
| 322 |
+
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
| 323 |
+
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
| 324 |
+
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 325 |
+
*/
|
| 326 |
+
|
| 327 |
+
var Util = __webpack_require__(2);
|
| 328 |
+
|
| 329 |
jQuery(document).ready(function ($) {
|
| 330 |
'use strict';
|
| 331 |
|
| 384 |
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
| 385 |
|
| 386 |
$.ajax({
|
|
|
|
| 387 |
url: ai1wm_feedback.ajax.url,
|
| 388 |
+
type: 'POST',
|
| 389 |
+
dataType: 'json',
|
| 390 |
+
async: false,
|
| 391 |
data: { 'ai1wm_type': type, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
| 392 |
+
dataFilter: function dataFilter(data, type) {
|
| 393 |
+
return Util.json(data);
|
| 394 |
+
},
|
| 395 |
success: function success(data) {
|
| 396 |
var errors = data.errors;
|
| 397 |
if (errors.length > 0) {
|
| 398 |
// Reset previous messages
|
| 399 |
$('.ai1wm-feedback .ai1wm-message').remove();
|
| 400 |
|
| 401 |
+
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
| 402 |
$.each(errors, function (key, value) {
|
| 403 |
+
errorMessage.append('<p>' + value + '</p>');
|
| 404 |
});
|
| 405 |
|
| 406 |
+
$('.ai1wm-feedback').prepend(errorMessage);
|
| 407 |
} else {
|
| 408 |
+
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message').append('<p>Thanks for submitting your feedback!</p>');
|
| 409 |
+
$('.ai1wm-feedback').html(successMessage);
|
| 410 |
}
|
| 411 |
+
}
|
|
|
|
|
|
|
| 412 |
});
|
| 413 |
});
|
| 414 |
});
|
| 415 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 416 |
/***/ },
|
| 417 |
/* 4 */
|
| 418 |
/***/ function(module, exports, __webpack_require__) {
|
| 443 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 444 |
*/
|
| 445 |
|
| 446 |
+
var Util = __webpack_require__(2),
|
| 447 |
Modal = __webpack_require__(5),
|
| 448 |
$ = jQuery;
|
| 449 |
|
| 510 |
}
|
| 511 |
|
| 512 |
// Import
|
| 513 |
+
$.ajax({
|
| 514 |
+
url: ai1wm_import.ajax.url,
|
| 515 |
+
type: 'POST',
|
| 516 |
+
dataType: 'json',
|
| 517 |
+
data: params,
|
| 518 |
+
dataFilter: function dataFilter(data, type) {
|
| 519 |
+
return Util.json(data);
|
| 520 |
+
}
|
| 521 |
+
}).done(function () {
|
| 522 |
self.getStatus();
|
| 523 |
}).done(function (params) {
|
| 524 |
if (params) {
|
| 549 |
}
|
| 550 |
|
| 551 |
// Import
|
| 552 |
+
$.ajax({
|
| 553 |
+
url: ai1wm_import.ajax.url,
|
| 554 |
+
type: 'POST',
|
| 555 |
+
dataType: 'json',
|
| 556 |
+
data: params,
|
| 557 |
+
dataFilter: function dataFilter(data, type) {
|
| 558 |
+
return Util.json(data);
|
| 559 |
+
}
|
| 560 |
+
}).done(function (params) {
|
| 561 |
if (params) {
|
| 562 |
self.run(params);
|
| 563 |
}
|
| 588 |
}
|
| 589 |
|
| 590 |
// Confirm
|
| 591 |
+
$.ajax({
|
| 592 |
+
url: ai1wm_import.ajax.url,
|
| 593 |
+
type: 'POST',
|
| 594 |
+
dataType: 'json',
|
| 595 |
+
data: params,
|
| 596 |
+
dataFilter: function dataFilter(data, type) {
|
| 597 |
+
return Util.json(data);
|
| 598 |
+
}
|
| 599 |
+
}).done(function () {
|
| 600 |
self.getStatus();
|
| 601 |
}).done(function (params) {
|
| 602 |
if (params) {
|
| 635 |
}
|
| 636 |
|
| 637 |
// Blogs
|
| 638 |
+
$.ajax({
|
| 639 |
+
url: ai1wm_import.ajax.url,
|
| 640 |
+
type: 'POST',
|
| 641 |
+
dataType: 'json',
|
| 642 |
+
data: params,
|
| 643 |
+
dataFilter: function dataFilter(data, type) {
|
| 644 |
+
return Util.json(data);
|
| 645 |
+
}
|
| 646 |
+
}).done(function () {
|
| 647 |
self.getStatus();
|
| 648 |
}).done(function (params) {
|
| 649 |
if (params) {
|
| 683 |
}
|
| 684 |
|
| 685 |
// Clean
|
| 686 |
+
$.ajax({
|
| 687 |
+
url: ai1wm_import.ajax.url,
|
| 688 |
+
type: 'POST',
|
| 689 |
+
dataType: 'json',
|
| 690 |
+
data: params,
|
| 691 |
+
dataFilter: function dataFilter(data, type) {
|
| 692 |
+
return Util.json(data);
|
| 693 |
+
}
|
| 694 |
+
}).done(function () {
|
| 695 |
// Unbinding the beforeunload event when we stop importing
|
| 696 |
$(window).unbind('beforeunload');
|
| 697 |
|
| 721 |
}
|
| 722 |
|
| 723 |
$.ajax({
|
|
|
|
| 724 |
url: ai1wm_import.status.url,
|
| 725 |
+
type: 'GET',
|
| 726 |
+
dataType: 'json',
|
| 727 |
+
cache: false,
|
| 728 |
+
dataFilter: function dataFilter(data, type) {
|
| 729 |
+
return Util.json(data);
|
| 730 |
+
}
|
| 731 |
}).done(function (params) {
|
| 732 |
if (params) {
|
| 733 |
self.setStatus(params);
|
lib/view/assets/javascript/export.min.js
CHANGED
|
@@ -73,8 +73,8 @@
|
|
| 73 |
var Query = __webpack_require__(6),
|
| 74 |
FindReplace = __webpack_require__(7),
|
| 75 |
Report = __webpack_require__(1),
|
| 76 |
-
Feedback = __webpack_require__(
|
| 77 |
-
Util = __webpack_require__(
|
| 78 |
Deprecated = __webpack_require__(8),
|
| 79 |
Export = __webpack_require__(10);
|
| 80 |
|
|
@@ -115,7 +115,7 @@
|
|
| 115 |
|
| 116 |
/***/ },
|
| 117 |
/* 1 */
|
| 118 |
-
/***/ function(module, exports) {
|
| 119 |
|
| 120 |
'use strict';
|
| 121 |
|
|
@@ -143,6 +143,8 @@
|
|
| 143 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 144 |
*/
|
| 145 |
|
|
|
|
|
|
|
| 146 |
jQuery(document).ready(function ($) {
|
| 147 |
'use strict';
|
| 148 |
|
|
@@ -164,33 +166,36 @@
|
|
| 164 |
var terms = $('.ai1wm-report-terms').is(':checked');
|
| 165 |
|
| 166 |
$.ajax({
|
| 167 |
-
type: 'POST',
|
| 168 |
url: ai1wm_report.ajax.url,
|
|
|
|
|
|
|
|
|
|
| 169 |
data: { 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
|
|
|
|
|
|
|
|
|
| 170 |
success: function success(data) {
|
| 171 |
var errors = data.errors;
|
| 172 |
if (errors.length > 0) {
|
| 173 |
// Reset previous messages
|
| 174 |
$('.ai1wm-report-problem-dialog .ai1wm-message').remove();
|
| 175 |
|
| 176 |
-
var
|
| 177 |
$.each(errors, function (key, value) {
|
| 178 |
-
|
| 179 |
});
|
| 180 |
|
| 181 |
-
$('.ai1wm-report-problem-dialog').prepend(
|
| 182 |
} else {
|
| 183 |
-
var
|
| 184 |
-
$('.ai1wm-report-problem-dialog').html(
|
| 185 |
|
| 186 |
// Hide message
|
| 187 |
setTimeout(function () {
|
| 188 |
$('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active');
|
| 189 |
}, 2000);
|
| 190 |
}
|
| 191 |
-
}
|
| 192 |
-
dataType: 'json',
|
| 193 |
-
async: false
|
| 194 |
});
|
| 195 |
});
|
| 196 |
});
|
|
@@ -225,6 +230,84 @@
|
|
| 225 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 226 |
*/
|
| 227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 228 |
jQuery(document).ready(function ($) {
|
| 229 |
'use strict';
|
| 230 |
|
|
@@ -283,102 +366,35 @@
|
|
| 283 |
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
| 284 |
|
| 285 |
$.ajax({
|
| 286 |
-
type: 'POST',
|
| 287 |
url: ai1wm_feedback.ajax.url,
|
|
|
|
|
|
|
|
|
|
| 288 |
data: { 'ai1wm_type': type, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
|
|
|
|
|
|
|
|
|
| 289 |
success: function success(data) {
|
| 290 |
var errors = data.errors;
|
| 291 |
if (errors.length > 0) {
|
| 292 |
// Reset previous messages
|
| 293 |
$('.ai1wm-feedback .ai1wm-message').remove();
|
| 294 |
|
| 295 |
-
var
|
| 296 |
$.each(errors, function (key, value) {
|
| 297 |
-
|
| 298 |
});
|
| 299 |
|
| 300 |
-
$('.ai1wm-feedback').prepend(
|
| 301 |
} else {
|
| 302 |
-
var
|
| 303 |
-
$('.ai1wm-feedback').html(
|
| 304 |
}
|
| 305 |
-
}
|
| 306 |
-
dataType: 'json',
|
| 307 |
-
async: false
|
| 308 |
});
|
| 309 |
});
|
| 310 |
});
|
| 311 |
|
| 312 |
-
/***/ },
|
| 313 |
-
/* 3 */
|
| 314 |
-
/***/ function(module, exports) {
|
| 315 |
-
|
| 316 |
-
'use strict';
|
| 317 |
-
|
| 318 |
-
/**
|
| 319 |
-
* Copyright (C) 2014-2017 ServMask Inc.
|
| 320 |
-
*
|
| 321 |
-
* This program is free software: you can redistribute it and/or modify
|
| 322 |
-
* it under the terms of the GNU General Public License as published by
|
| 323 |
-
* the Free Software Foundation, either version 3 of the License, or
|
| 324 |
-
* (at your option) any later version.
|
| 325 |
-
*
|
| 326 |
-
* This program is distributed in the hope that it will be useful,
|
| 327 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 328 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 329 |
-
* GNU General Public License for more details.
|
| 330 |
-
*
|
| 331 |
-
* You should have received a copy of the GNU General Public License
|
| 332 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 333 |
-
*
|
| 334 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
| 335 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
| 336 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
| 337 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
| 338 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
| 339 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 340 |
-
*/
|
| 341 |
-
|
| 342 |
-
var $ = jQuery;
|
| 343 |
-
|
| 344 |
-
module.exports = {
|
| 345 |
-
random: function random(len) {
|
| 346 |
-
var text = '';
|
| 347 |
-
var possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
| 348 |
-
|
| 349 |
-
for (var i = 0; i < len; i++) {
|
| 350 |
-
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 351 |
-
}
|
| 352 |
-
|
| 353 |
-
return text;
|
| 354 |
-
},
|
| 355 |
-
form: function form(id) {
|
| 356 |
-
return $(id).serializeArray();
|
| 357 |
-
},
|
| 358 |
-
ucfirst: function ucfirst(text) {
|
| 359 |
-
return text.charAt(0).toUpperCase() + text.slice(1);
|
| 360 |
-
},
|
| 361 |
-
list: function list(input) {
|
| 362 |
-
// Convert object to list
|
| 363 |
-
if ($.isPlainObject(input)) {
|
| 364 |
-
var result = [];
|
| 365 |
-
var params = decodeURIComponent($.param(input)).split('&');
|
| 366 |
-
|
| 367 |
-
// Loop over params
|
| 368 |
-
$.each(params, function (index, item) {
|
| 369 |
-
var value = item.split('=');
|
| 370 |
-
|
| 371 |
-
// Add item
|
| 372 |
-
result.push({ name: value[0], value: value[1] });
|
| 373 |
-
});
|
| 374 |
-
|
| 375 |
-
return result;
|
| 376 |
-
}
|
| 377 |
-
|
| 378 |
-
return input;
|
| 379 |
-
}
|
| 380 |
-
};
|
| 381 |
-
|
| 382 |
/***/ },
|
| 383 |
/* 4 */,
|
| 384 |
/* 5 */,
|
|
@@ -525,7 +541,7 @@
|
|
| 525 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 526 |
*/
|
| 527 |
|
| 528 |
-
var Util = __webpack_require__(
|
| 529 |
Dialog = __webpack_require__(9);
|
| 530 |
|
| 531 |
var Extensions = {
|
|
@@ -696,7 +712,7 @@
|
|
| 696 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 697 |
*/
|
| 698 |
|
| 699 |
-
var Util = __webpack_require__(
|
| 700 |
Modal = __webpack_require__(11),
|
| 701 |
$ = jQuery;
|
| 702 |
|
|
@@ -753,7 +769,15 @@
|
|
| 753 |
}
|
| 754 |
|
| 755 |
// Export
|
| 756 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 757 |
self.getStatus();
|
| 758 |
}).done(function (params) {
|
| 759 |
if (params) {
|
|
@@ -784,7 +808,15 @@
|
|
| 784 |
}
|
| 785 |
|
| 786 |
// Export
|
| 787 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 788 |
if (params) {
|
| 789 |
self.run(params);
|
| 790 |
}
|
|
@@ -822,7 +854,15 @@
|
|
| 822 |
}
|
| 823 |
|
| 824 |
// Clean
|
| 825 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 826 |
// Unbinding the beforeunload event when we stop exporting
|
| 827 |
$(window).unbind('beforeunload');
|
| 828 |
|
|
@@ -852,9 +892,13 @@
|
|
| 852 |
}
|
| 853 |
|
| 854 |
$.ajax({
|
| 855 |
-
cache: false,
|
| 856 |
url: ai1wm_export.status.url,
|
| 857 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 858 |
}).done(function (params) {
|
| 859 |
if (params) {
|
| 860 |
self.setStatus(params);
|
| 73 |
var Query = __webpack_require__(6),
|
| 74 |
FindReplace = __webpack_require__(7),
|
| 75 |
Report = __webpack_require__(1),
|
| 76 |
+
Feedback = __webpack_require__(3),
|
| 77 |
+
Util = __webpack_require__(2),
|
| 78 |
Deprecated = __webpack_require__(8),
|
| 79 |
Export = __webpack_require__(10);
|
| 80 |
|
| 115 |
|
| 116 |
/***/ },
|
| 117 |
/* 1 */
|
| 118 |
+
/***/ function(module, exports, __webpack_require__) {
|
| 119 |
|
| 120 |
'use strict';
|
| 121 |
|
| 143 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 144 |
*/
|
| 145 |
|
| 146 |
+
var Util = __webpack_require__(2);
|
| 147 |
+
|
| 148 |
jQuery(document).ready(function ($) {
|
| 149 |
'use strict';
|
| 150 |
|
| 166 |
var terms = $('.ai1wm-report-terms').is(':checked');
|
| 167 |
|
| 168 |
$.ajax({
|
|
|
|
| 169 |
url: ai1wm_report.ajax.url,
|
| 170 |
+
type: 'POST',
|
| 171 |
+
dataType: 'json',
|
| 172 |
+
async: false,
|
| 173 |
data: { 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
| 174 |
+
dataFilter: function dataFilter(data, type) {
|
| 175 |
+
return Util.json(data);
|
| 176 |
+
},
|
| 177 |
success: function success(data) {
|
| 178 |
var errors = data.errors;
|
| 179 |
if (errors.length > 0) {
|
| 180 |
// Reset previous messages
|
| 181 |
$('.ai1wm-report-problem-dialog .ai1wm-message').remove();
|
| 182 |
|
| 183 |
+
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
| 184 |
$.each(errors, function (key, value) {
|
| 185 |
+
errorMessage.append('<p>' + value + '</p>');
|
| 186 |
});
|
| 187 |
|
| 188 |
+
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
| 189 |
} else {
|
| 190 |
+
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message').append('<p>Thanks for submitting your request!</p>');
|
| 191 |
+
$('.ai1wm-report-problem-dialog').html(successMessage);
|
| 192 |
|
| 193 |
// Hide message
|
| 194 |
setTimeout(function () {
|
| 195 |
$('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active');
|
| 196 |
}, 2000);
|
| 197 |
}
|
| 198 |
+
}
|
|
|
|
|
|
|
| 199 |
});
|
| 200 |
});
|
| 201 |
});
|
| 230 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 231 |
*/
|
| 232 |
|
| 233 |
+
var $ = jQuery;
|
| 234 |
+
|
| 235 |
+
module.exports = {
|
| 236 |
+
random: function random(len) {
|
| 237 |
+
var text = '';
|
| 238 |
+
var possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
| 239 |
+
|
| 240 |
+
for (var i = 0; i < len; i++) {
|
| 241 |
+
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 242 |
+
}
|
| 243 |
+
|
| 244 |
+
return text;
|
| 245 |
+
},
|
| 246 |
+
form: function form(id) {
|
| 247 |
+
return $(id).serializeArray();
|
| 248 |
+
},
|
| 249 |
+
ucfirst: function ucfirst(text) {
|
| 250 |
+
return text.charAt(0).toUpperCase() + text.slice(1);
|
| 251 |
+
},
|
| 252 |
+
list: function list(input) {
|
| 253 |
+
// Convert object to list
|
| 254 |
+
if ($.isPlainObject(input)) {
|
| 255 |
+
var result = [];
|
| 256 |
+
var params = decodeURIComponent($.param(input)).split('&');
|
| 257 |
+
|
| 258 |
+
// Loop over params
|
| 259 |
+
$.each(params, function (index, item) {
|
| 260 |
+
var value = item.split('=');
|
| 261 |
+
|
| 262 |
+
// Add item
|
| 263 |
+
result.push({ name: value[0], value: value[1] });
|
| 264 |
+
});
|
| 265 |
+
|
| 266 |
+
return result;
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
return input;
|
| 270 |
+
},
|
| 271 |
+
json: function json(input) {
|
| 272 |
+
var result = input.match(/{[\s\S]+}/);
|
| 273 |
+
if (result !== null) {
|
| 274 |
+
return result[0];
|
| 275 |
+
}
|
| 276 |
+
}
|
| 277 |
+
};
|
| 278 |
+
|
| 279 |
+
/***/ },
|
| 280 |
+
/* 3 */
|
| 281 |
+
/***/ function(module, exports, __webpack_require__) {
|
| 282 |
+
|
| 283 |
+
'use strict';
|
| 284 |
+
|
| 285 |
+
/**
|
| 286 |
+
* Copyright (C) 2014-2017 ServMask Inc.
|
| 287 |
+
*
|
| 288 |
+
* This program is free software: you can redistribute it and/or modify
|
| 289 |
+
* it under the terms of the GNU General Public License as published by
|
| 290 |
+
* the Free Software Foundation, either version 3 of the License, or
|
| 291 |
+
* (at your option) any later version.
|
| 292 |
+
*
|
| 293 |
+
* This program is distributed in the hope that it will be useful,
|
| 294 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 295 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 296 |
+
* GNU General Public License for more details.
|
| 297 |
+
*
|
| 298 |
+
* You should have received a copy of the GNU General Public License
|
| 299 |
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 300 |
+
*
|
| 301 |
+
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
| 302 |
+
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
| 303 |
+
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
| 304 |
+
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
| 305 |
+
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
| 306 |
+
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 307 |
+
*/
|
| 308 |
+
|
| 309 |
+
var Util = __webpack_require__(2);
|
| 310 |
+
|
| 311 |
jQuery(document).ready(function ($) {
|
| 312 |
'use strict';
|
| 313 |
|
| 366 |
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
| 367 |
|
| 368 |
$.ajax({
|
|
|
|
| 369 |
url: ai1wm_feedback.ajax.url,
|
| 370 |
+
type: 'POST',
|
| 371 |
+
dataType: 'json',
|
| 372 |
+
async: false,
|
| 373 |
data: { 'ai1wm_type': type, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
| 374 |
+
dataFilter: function dataFilter(data, type) {
|
| 375 |
+
return Util.json(data);
|
| 376 |
+
},
|
| 377 |
success: function success(data) {
|
| 378 |
var errors = data.errors;
|
| 379 |
if (errors.length > 0) {
|
| 380 |
// Reset previous messages
|
| 381 |
$('.ai1wm-feedback .ai1wm-message').remove();
|
| 382 |
|
| 383 |
+
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
| 384 |
$.each(errors, function (key, value) {
|
| 385 |
+
errorMessage.append('<p>' + value + '</p>');
|
| 386 |
});
|
| 387 |
|
| 388 |
+
$('.ai1wm-feedback').prepend(errorMessage);
|
| 389 |
} else {
|
| 390 |
+
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message').append('<p>Thanks for submitting your feedback!</p>');
|
| 391 |
+
$('.ai1wm-feedback').html(successMessage);
|
| 392 |
}
|
| 393 |
+
}
|
|
|
|
|
|
|
| 394 |
});
|
| 395 |
});
|
| 396 |
});
|
| 397 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 398 |
/***/ },
|
| 399 |
/* 4 */,
|
| 400 |
/* 5 */,
|
| 541 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 542 |
*/
|
| 543 |
|
| 544 |
+
var Util = __webpack_require__(2),
|
| 545 |
Dialog = __webpack_require__(9);
|
| 546 |
|
| 547 |
var Extensions = {
|
| 712 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 713 |
*/
|
| 714 |
|
| 715 |
+
var Util = __webpack_require__(2),
|
| 716 |
Modal = __webpack_require__(11),
|
| 717 |
$ = jQuery;
|
| 718 |
|
| 769 |
}
|
| 770 |
|
| 771 |
// Export
|
| 772 |
+
$.ajax({
|
| 773 |
+
url: ai1wm_export.ajax.url,
|
| 774 |
+
type: 'POST',
|
| 775 |
+
dataType: 'json',
|
| 776 |
+
data: params,
|
| 777 |
+
dataFilter: function dataFilter(data, type) {
|
| 778 |
+
return Util.json(data);
|
| 779 |
+
}
|
| 780 |
+
}).done(function () {
|
| 781 |
self.getStatus();
|
| 782 |
}).done(function (params) {
|
| 783 |
if (params) {
|
| 808 |
}
|
| 809 |
|
| 810 |
// Export
|
| 811 |
+
$.ajax({
|
| 812 |
+
url: ai1wm_export.ajax.url,
|
| 813 |
+
type: 'POST',
|
| 814 |
+
dataType: 'json',
|
| 815 |
+
data: params,
|
| 816 |
+
dataFilter: function dataFilter(data, type) {
|
| 817 |
+
return Util.json(data);
|
| 818 |
+
}
|
| 819 |
+
}).done(function (params) {
|
| 820 |
if (params) {
|
| 821 |
self.run(params);
|
| 822 |
}
|
| 854 |
}
|
| 855 |
|
| 856 |
// Clean
|
| 857 |
+
$.ajax({
|
| 858 |
+
url: ai1wm_export.ajax.url,
|
| 859 |
+
type: 'POST',
|
| 860 |
+
dataType: 'json',
|
| 861 |
+
data: params,
|
| 862 |
+
dataFilter: function dataFilter(data, type) {
|
| 863 |
+
return Util.json(data);
|
| 864 |
+
}
|
| 865 |
+
}).done(function () {
|
| 866 |
// Unbinding the beforeunload event when we stop exporting
|
| 867 |
$(window).unbind('beforeunload');
|
| 868 |
|
| 892 |
}
|
| 893 |
|
| 894 |
$.ajax({
|
|
|
|
| 895 |
url: ai1wm_export.status.url,
|
| 896 |
+
type: 'GET',
|
| 897 |
+
dataType: 'json',
|
| 898 |
+
cache: false,
|
| 899 |
+
dataFilter: function dataFilter(data, type) {
|
| 900 |
+
return Util.json(data);
|
| 901 |
+
}
|
| 902 |
}).done(function (params) {
|
| 903 |
if (params) {
|
| 904 |
self.setStatus(params);
|
lib/view/assets/javascript/import.min.js
CHANGED
|
@@ -71,7 +71,7 @@
|
|
| 71 |
*/
|
| 72 |
|
| 73 |
var Report = __webpack_require__(1),
|
| 74 |
-
Feedback = __webpack_require__(
|
| 75 |
Deprecated = __webpack_require__(8),
|
| 76 |
FileUploader = __webpack_require__(12);
|
| 77 |
|
|
@@ -89,7 +89,7 @@
|
|
| 89 |
|
| 90 |
/***/ },
|
| 91 |
/* 1 */
|
| 92 |
-
/***/ function(module, exports) {
|
| 93 |
|
| 94 |
'use strict';
|
| 95 |
|
|
@@ -117,6 +117,8 @@
|
|
| 117 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 118 |
*/
|
| 119 |
|
|
|
|
|
|
|
| 120 |
jQuery(document).ready(function ($) {
|
| 121 |
'use strict';
|
| 122 |
|
|
@@ -138,33 +140,36 @@
|
|
| 138 |
var terms = $('.ai1wm-report-terms').is(':checked');
|
| 139 |
|
| 140 |
$.ajax({
|
| 141 |
-
type: 'POST',
|
| 142 |
url: ai1wm_report.ajax.url,
|
|
|
|
|
|
|
|
|
|
| 143 |
data: { 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
|
|
|
|
|
|
|
|
|
| 144 |
success: function success(data) {
|
| 145 |
var errors = data.errors;
|
| 146 |
if (errors.length > 0) {
|
| 147 |
// Reset previous messages
|
| 148 |
$('.ai1wm-report-problem-dialog .ai1wm-message').remove();
|
| 149 |
|
| 150 |
-
var
|
| 151 |
$.each(errors, function (key, value) {
|
| 152 |
-
|
| 153 |
});
|
| 154 |
|
| 155 |
-
$('.ai1wm-report-problem-dialog').prepend(
|
| 156 |
} else {
|
| 157 |
-
var
|
| 158 |
-
$('.ai1wm-report-problem-dialog').html(
|
| 159 |
|
| 160 |
// Hide message
|
| 161 |
setTimeout(function () {
|
| 162 |
$('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active');
|
| 163 |
}, 2000);
|
| 164 |
}
|
| 165 |
-
}
|
| 166 |
-
dataType: 'json',
|
| 167 |
-
async: false
|
| 168 |
});
|
| 169 |
});
|
| 170 |
});
|
|
@@ -199,6 +204,84 @@
|
|
| 199 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 200 |
*/
|
| 201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 202 |
jQuery(document).ready(function ($) {
|
| 203 |
'use strict';
|
| 204 |
|
|
@@ -257,102 +340,35 @@
|
|
| 257 |
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
| 258 |
|
| 259 |
$.ajax({
|
| 260 |
-
type: 'POST',
|
| 261 |
url: ai1wm_feedback.ajax.url,
|
|
|
|
|
|
|
|
|
|
| 262 |
data: { 'ai1wm_type': type, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
|
|
|
|
|
|
|
|
|
| 263 |
success: function success(data) {
|
| 264 |
var errors = data.errors;
|
| 265 |
if (errors.length > 0) {
|
| 266 |
// Reset previous messages
|
| 267 |
$('.ai1wm-feedback .ai1wm-message').remove();
|
| 268 |
|
| 269 |
-
var
|
| 270 |
$.each(errors, function (key, value) {
|
| 271 |
-
|
| 272 |
});
|
| 273 |
|
| 274 |
-
$('.ai1wm-feedback').prepend(
|
| 275 |
} else {
|
| 276 |
-
var
|
| 277 |
-
$('.ai1wm-feedback').html(
|
| 278 |
}
|
| 279 |
-
}
|
| 280 |
-
dataType: 'json',
|
| 281 |
-
async: false
|
| 282 |
});
|
| 283 |
});
|
| 284 |
});
|
| 285 |
|
| 286 |
-
/***/ },
|
| 287 |
-
/* 3 */
|
| 288 |
-
/***/ function(module, exports) {
|
| 289 |
-
|
| 290 |
-
'use strict';
|
| 291 |
-
|
| 292 |
-
/**
|
| 293 |
-
* Copyright (C) 2014-2017 ServMask Inc.
|
| 294 |
-
*
|
| 295 |
-
* This program is free software: you can redistribute it and/or modify
|
| 296 |
-
* it under the terms of the GNU General Public License as published by
|
| 297 |
-
* the Free Software Foundation, either version 3 of the License, or
|
| 298 |
-
* (at your option) any later version.
|
| 299 |
-
*
|
| 300 |
-
* This program is distributed in the hope that it will be useful,
|
| 301 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 302 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 303 |
-
* GNU General Public License for more details.
|
| 304 |
-
*
|
| 305 |
-
* You should have received a copy of the GNU General Public License
|
| 306 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 307 |
-
*
|
| 308 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
| 309 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
| 310 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
| 311 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
| 312 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
| 313 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 314 |
-
*/
|
| 315 |
-
|
| 316 |
-
var $ = jQuery;
|
| 317 |
-
|
| 318 |
-
module.exports = {
|
| 319 |
-
random: function random(len) {
|
| 320 |
-
var text = '';
|
| 321 |
-
var possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
| 322 |
-
|
| 323 |
-
for (var i = 0; i < len; i++) {
|
| 324 |
-
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 325 |
-
}
|
| 326 |
-
|
| 327 |
-
return text;
|
| 328 |
-
},
|
| 329 |
-
form: function form(id) {
|
| 330 |
-
return $(id).serializeArray();
|
| 331 |
-
},
|
| 332 |
-
ucfirst: function ucfirst(text) {
|
| 333 |
-
return text.charAt(0).toUpperCase() + text.slice(1);
|
| 334 |
-
},
|
| 335 |
-
list: function list(input) {
|
| 336 |
-
// Convert object to list
|
| 337 |
-
if ($.isPlainObject(input)) {
|
| 338 |
-
var result = [];
|
| 339 |
-
var params = decodeURIComponent($.param(input)).split('&');
|
| 340 |
-
|
| 341 |
-
// Loop over params
|
| 342 |
-
$.each(params, function (index, item) {
|
| 343 |
-
var value = item.split('=');
|
| 344 |
-
|
| 345 |
-
// Add item
|
| 346 |
-
result.push({ name: value[0], value: value[1] });
|
| 347 |
-
});
|
| 348 |
-
|
| 349 |
-
return result;
|
| 350 |
-
}
|
| 351 |
-
|
| 352 |
-
return input;
|
| 353 |
-
}
|
| 354 |
-
};
|
| 355 |
-
|
| 356 |
/***/ },
|
| 357 |
/* 4 */
|
| 358 |
/***/ function(module, exports, __webpack_require__) {
|
|
@@ -383,7 +399,7 @@
|
|
| 383 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 384 |
*/
|
| 385 |
|
| 386 |
-
var Util = __webpack_require__(
|
| 387 |
Modal = __webpack_require__(5),
|
| 388 |
$ = jQuery;
|
| 389 |
|
|
@@ -450,7 +466,15 @@
|
|
| 450 |
}
|
| 451 |
|
| 452 |
// Import
|
| 453 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 454 |
self.getStatus();
|
| 455 |
}).done(function (params) {
|
| 456 |
if (params) {
|
|
@@ -481,7 +505,15 @@
|
|
| 481 |
}
|
| 482 |
|
| 483 |
// Import
|
| 484 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 485 |
if (params) {
|
| 486 |
self.run(params);
|
| 487 |
}
|
|
@@ -512,7 +544,15 @@
|
|
| 512 |
}
|
| 513 |
|
| 514 |
// Confirm
|
| 515 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 516 |
self.getStatus();
|
| 517 |
}).done(function (params) {
|
| 518 |
if (params) {
|
|
@@ -551,7 +591,15 @@
|
|
| 551 |
}
|
| 552 |
|
| 553 |
// Blogs
|
| 554 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 555 |
self.getStatus();
|
| 556 |
}).done(function (params) {
|
| 557 |
if (params) {
|
|
@@ -591,7 +639,15 @@
|
|
| 591 |
}
|
| 592 |
|
| 593 |
// Clean
|
| 594 |
-
$.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 595 |
// Unbinding the beforeunload event when we stop importing
|
| 596 |
$(window).unbind('beforeunload');
|
| 597 |
|
|
@@ -621,9 +677,13 @@
|
|
| 621 |
}
|
| 622 |
|
| 623 |
$.ajax({
|
| 624 |
-
cache: false,
|
| 625 |
url: ai1wm_import.status.url,
|
| 626 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 627 |
}).done(function (params) {
|
| 628 |
if (params) {
|
| 629 |
self.setStatus(params);
|
|
@@ -1062,7 +1122,7 @@
|
|
| 1062 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 1063 |
*/
|
| 1064 |
|
| 1065 |
-
var Util = __webpack_require__(
|
| 1066 |
Dialog = __webpack_require__(9);
|
| 1067 |
|
| 1068 |
var Extensions = {
|
|
@@ -1235,7 +1295,7 @@
|
|
| 1235 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 1236 |
*/
|
| 1237 |
|
| 1238 |
-
var Util = __webpack_require__(
|
| 1239 |
Import = __webpack_require__(4),
|
| 1240 |
$ = jQuery;
|
| 1241 |
|
| 71 |
*/
|
| 72 |
|
| 73 |
var Report = __webpack_require__(1),
|
| 74 |
+
Feedback = __webpack_require__(3),
|
| 75 |
Deprecated = __webpack_require__(8),
|
| 76 |
FileUploader = __webpack_require__(12);
|
| 77 |
|
| 89 |
|
| 90 |
/***/ },
|
| 91 |
/* 1 */
|
| 92 |
+
/***/ function(module, exports, __webpack_require__) {
|
| 93 |
|
| 94 |
'use strict';
|
| 95 |
|
| 117 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 118 |
*/
|
| 119 |
|
| 120 |
+
var Util = __webpack_require__(2);
|
| 121 |
+
|
| 122 |
jQuery(document).ready(function ($) {
|
| 123 |
'use strict';
|
| 124 |
|
| 140 |
var terms = $('.ai1wm-report-terms').is(':checked');
|
| 141 |
|
| 142 |
$.ajax({
|
|
|
|
| 143 |
url: ai1wm_report.ajax.url,
|
| 144 |
+
type: 'POST',
|
| 145 |
+
dataType: 'json',
|
| 146 |
+
async: false,
|
| 147 |
data: { 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
| 148 |
+
dataFilter: function dataFilter(data, type) {
|
| 149 |
+
return Util.json(data);
|
| 150 |
+
},
|
| 151 |
success: function success(data) {
|
| 152 |
var errors = data.errors;
|
| 153 |
if (errors.length > 0) {
|
| 154 |
// Reset previous messages
|
| 155 |
$('.ai1wm-report-problem-dialog .ai1wm-message').remove();
|
| 156 |
|
| 157 |
+
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
| 158 |
$.each(errors, function (key, value) {
|
| 159 |
+
errorMessage.append('<p>' + value + '</p>');
|
| 160 |
});
|
| 161 |
|
| 162 |
+
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
| 163 |
} else {
|
| 164 |
+
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message').append('<p>Thanks for submitting your request!</p>');
|
| 165 |
+
$('.ai1wm-report-problem-dialog').html(successMessage);
|
| 166 |
|
| 167 |
// Hide message
|
| 168 |
setTimeout(function () {
|
| 169 |
$('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active');
|
| 170 |
}, 2000);
|
| 171 |
}
|
| 172 |
+
}
|
|
|
|
|
|
|
| 173 |
});
|
| 174 |
});
|
| 175 |
});
|
| 204 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 205 |
*/
|
| 206 |
|
| 207 |
+
var $ = jQuery;
|
| 208 |
+
|
| 209 |
+
module.exports = {
|
| 210 |
+
random: function random(len) {
|
| 211 |
+
var text = '';
|
| 212 |
+
var possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
| 213 |
+
|
| 214 |
+
for (var i = 0; i < len; i++) {
|
| 215 |
+
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
return text;
|
| 219 |
+
},
|
| 220 |
+
form: function form(id) {
|
| 221 |
+
return $(id).serializeArray();
|
| 222 |
+
},
|
| 223 |
+
ucfirst: function ucfirst(text) {
|
| 224 |
+
return text.charAt(0).toUpperCase() + text.slice(1);
|
| 225 |
+
},
|
| 226 |
+
list: function list(input) {
|
| 227 |
+
// Convert object to list
|
| 228 |
+
if ($.isPlainObject(input)) {
|
| 229 |
+
var result = [];
|
| 230 |
+
var params = decodeURIComponent($.param(input)).split('&');
|
| 231 |
+
|
| 232 |
+
// Loop over params
|
| 233 |
+
$.each(params, function (index, item) {
|
| 234 |
+
var value = item.split('=');
|
| 235 |
+
|
| 236 |
+
// Add item
|
| 237 |
+
result.push({ name: value[0], value: value[1] });
|
| 238 |
+
});
|
| 239 |
+
|
| 240 |
+
return result;
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
return input;
|
| 244 |
+
},
|
| 245 |
+
json: function json(input) {
|
| 246 |
+
var result = input.match(/{[\s\S]+}/);
|
| 247 |
+
if (result !== null) {
|
| 248 |
+
return result[0];
|
| 249 |
+
}
|
| 250 |
+
}
|
| 251 |
+
};
|
| 252 |
+
|
| 253 |
+
/***/ },
|
| 254 |
+
/* 3 */
|
| 255 |
+
/***/ function(module, exports, __webpack_require__) {
|
| 256 |
+
|
| 257 |
+
'use strict';
|
| 258 |
+
|
| 259 |
+
/**
|
| 260 |
+
* Copyright (C) 2014-2017 ServMask Inc.
|
| 261 |
+
*
|
| 262 |
+
* This program is free software: you can redistribute it and/or modify
|
| 263 |
+
* it under the terms of the GNU General Public License as published by
|
| 264 |
+
* the Free Software Foundation, either version 3 of the License, or
|
| 265 |
+
* (at your option) any later version.
|
| 266 |
+
*
|
| 267 |
+
* This program is distributed in the hope that it will be useful,
|
| 268 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 269 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 270 |
+
* GNU General Public License for more details.
|
| 271 |
+
*
|
| 272 |
+
* You should have received a copy of the GNU General Public License
|
| 273 |
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 274 |
+
*
|
| 275 |
+
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
| 276 |
+
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
| 277 |
+
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
| 278 |
+
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
| 279 |
+
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
| 280 |
+
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 281 |
+
*/
|
| 282 |
+
|
| 283 |
+
var Util = __webpack_require__(2);
|
| 284 |
+
|
| 285 |
jQuery(document).ready(function ($) {
|
| 286 |
'use strict';
|
| 287 |
|
| 340 |
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
| 341 |
|
| 342 |
$.ajax({
|
|
|
|
| 343 |
url: ai1wm_feedback.ajax.url,
|
| 344 |
+
type: 'POST',
|
| 345 |
+
dataType: 'json',
|
| 346 |
+
async: false,
|
| 347 |
data: { 'ai1wm_type': type, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms },
|
| 348 |
+
dataFilter: function dataFilter(data, type) {
|
| 349 |
+
return Util.json(data);
|
| 350 |
+
},
|
| 351 |
success: function success(data) {
|
| 352 |
var errors = data.errors;
|
| 353 |
if (errors.length > 0) {
|
| 354 |
// Reset previous messages
|
| 355 |
$('.ai1wm-feedback .ai1wm-message').remove();
|
| 356 |
|
| 357 |
+
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
| 358 |
$.each(errors, function (key, value) {
|
| 359 |
+
errorMessage.append('<p>' + value + '</p>');
|
| 360 |
});
|
| 361 |
|
| 362 |
+
$('.ai1wm-feedback').prepend(errorMessage);
|
| 363 |
} else {
|
| 364 |
+
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message').append('<p>Thanks for submitting your feedback!</p>');
|
| 365 |
+
$('.ai1wm-feedback').html(successMessage);
|
| 366 |
}
|
| 367 |
+
}
|
|
|
|
|
|
|
| 368 |
});
|
| 369 |
});
|
| 370 |
});
|
| 371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 372 |
/***/ },
|
| 373 |
/* 4 */
|
| 374 |
/***/ function(module, exports, __webpack_require__) {
|
| 399 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 400 |
*/
|
| 401 |
|
| 402 |
+
var Util = __webpack_require__(2),
|
| 403 |
Modal = __webpack_require__(5),
|
| 404 |
$ = jQuery;
|
| 405 |
|
| 466 |
}
|
| 467 |
|
| 468 |
// Import
|
| 469 |
+
$.ajax({
|
| 470 |
+
url: ai1wm_import.ajax.url,
|
| 471 |
+
type: 'POST',
|
| 472 |
+
dataType: 'json',
|
| 473 |
+
data: params,
|
| 474 |
+
dataFilter: function dataFilter(data, type) {
|
| 475 |
+
return Util.json(data);
|
| 476 |
+
}
|
| 477 |
+
}).done(function () {
|
| 478 |
self.getStatus();
|
| 479 |
}).done(function (params) {
|
| 480 |
if (params) {
|
| 505 |
}
|
| 506 |
|
| 507 |
// Import
|
| 508 |
+
$.ajax({
|
| 509 |
+
url: ai1wm_import.ajax.url,
|
| 510 |
+
type: 'POST',
|
| 511 |
+
dataType: 'json',
|
| 512 |
+
data: params,
|
| 513 |
+
dataFilter: function dataFilter(data, type) {
|
| 514 |
+
return Util.json(data);
|
| 515 |
+
}
|
| 516 |
+
}).done(function (params) {
|
| 517 |
if (params) {
|
| 518 |
self.run(params);
|
| 519 |
}
|
| 544 |
}
|
| 545 |
|
| 546 |
// Confirm
|
| 547 |
+
$.ajax({
|
| 548 |
+
url: ai1wm_import.ajax.url,
|
| 549 |
+
type: 'POST',
|
| 550 |
+
dataType: 'json',
|
| 551 |
+
data: params,
|
| 552 |
+
dataFilter: function dataFilter(data, type) {
|
| 553 |
+
return Util.json(data);
|
| 554 |
+
}
|
| 555 |
+
}).done(function () {
|
| 556 |
self.getStatus();
|
| 557 |
}).done(function (params) {
|
| 558 |
if (params) {
|
| 591 |
}
|
| 592 |
|
| 593 |
// Blogs
|
| 594 |
+
$.ajax({
|
| 595 |
+
url: ai1wm_import.ajax.url,
|
| 596 |
+
type: 'POST',
|
| 597 |
+
dataType: 'json',
|
| 598 |
+
data: params,
|
| 599 |
+
dataFilter: function dataFilter(data, type) {
|
| 600 |
+
return Util.json(data);
|
| 601 |
+
}
|
| 602 |
+
}).done(function () {
|
| 603 |
self.getStatus();
|
| 604 |
}).done(function (params) {
|
| 605 |
if (params) {
|
| 639 |
}
|
| 640 |
|
| 641 |
// Clean
|
| 642 |
+
$.ajax({
|
| 643 |
+
url: ai1wm_import.ajax.url,
|
| 644 |
+
type: 'POST',
|
| 645 |
+
dataType: 'json',
|
| 646 |
+
data: params,
|
| 647 |
+
dataFilter: function dataFilter(data, type) {
|
| 648 |
+
return Util.json(data);
|
| 649 |
+
}
|
| 650 |
+
}).done(function () {
|
| 651 |
// Unbinding the beforeunload event when we stop importing
|
| 652 |
$(window).unbind('beforeunload');
|
| 653 |
|
| 677 |
}
|
| 678 |
|
| 679 |
$.ajax({
|
|
|
|
| 680 |
url: ai1wm_import.status.url,
|
| 681 |
+
type: 'GET',
|
| 682 |
+
dataType: 'json',
|
| 683 |
+
cache: false,
|
| 684 |
+
dataFilter: function dataFilter(data, type) {
|
| 685 |
+
return Util.json(data);
|
| 686 |
+
}
|
| 687 |
}).done(function (params) {
|
| 688 |
if (params) {
|
| 689 |
self.setStatus(params);
|
| 1122 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 1123 |
*/
|
| 1124 |
|
| 1125 |
+
var Util = __webpack_require__(2),
|
| 1126 |
Dialog = __webpack_require__(9);
|
| 1127 |
|
| 1128 |
var Extensions = {
|
| 1295 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
| 1296 |
*/
|
| 1297 |
|
| 1298 |
+
var Util = __webpack_require__(2),
|
| 1299 |
Import = __webpack_require__(4),
|
| 1300 |
$ = jQuery;
|
| 1301 |
|
lib/view/assets/javascript/updater.min.js
CHANGED
|
@@ -84,8 +84,18 @@
|
|
| 84 |
var updateLink = dialog.find('.ai1wm-update-link').val();
|
| 85 |
|
| 86 |
// Check Purchase ID
|
| 87 |
-
$.
|
| 88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
window.location.hash = '';
|
| 90 |
|
| 91 |
// Update plugin row
|
| 84 |
var updateLink = dialog.find('.ai1wm-update-link').val();
|
| 85 |
|
| 86 |
// Check Purchase ID
|
| 87 |
+
$.ajax({
|
| 88 |
+
url: 'https://servmask.com/purchase/' + purchaseId + '/check',
|
| 89 |
+
type: 'GET',
|
| 90 |
+
dataType: 'json'
|
| 91 |
+
}).done(function (product) {
|
| 92 |
+
// Update Purchase ID
|
| 93 |
+
$.ajax({
|
| 94 |
+
url: ai1wm_updater.ajax.url,
|
| 95 |
+
type: 'POST',
|
| 96 |
+
dataType: 'json',
|
| 97 |
+
data: { 'ai1wm_uuid': product.uuid, 'ai1wm_extension': product.extension }
|
| 98 |
+
}).done(function () {
|
| 99 |
window.location.hash = '';
|
| 100 |
|
| 101 |
// Update plugin row
|
lib/view/common/leave-feedback.php
CHANGED
|
@@ -31,8 +31,10 @@
|
|
| 31 |
<textarea rows="3" id="ai1wm-feedback-message" class="ai1wm-feedback-message" placeholder="<?php _e( 'Leave plugin developers any feedback here..', AI1WM_PLUGIN_NAME ); ?>"></textarea>
|
| 32 |
</div>
|
| 33 |
<div class="ai1wm-field ai1wm-feedback-terms-segment">
|
| 34 |
-
<
|
| 35 |
-
|
|
|
|
|
|
|
| 36 |
</div>
|
| 37 |
<div class="ai1wm-field">
|
| 38 |
<div class="ai1wm-buttons">
|
| 31 |
<textarea rows="3" id="ai1wm-feedback-message" class="ai1wm-feedback-message" placeholder="<?php _e( 'Leave plugin developers any feedback here..', AI1WM_PLUGIN_NAME ); ?>"></textarea>
|
| 32 |
</div>
|
| 33 |
<div class="ai1wm-field ai1wm-feedback-terms-segment">
|
| 34 |
+
<label for="ai1wm-feedback-terms">
|
| 35 |
+
<input type="checkbox" class="ai1wm-feedback-terms" id="ai1wm-feedback-terms" />
|
| 36 |
+
<?php _e( 'I agree that by clicking the send button below my email address and comments will be send to a ServMask server.', AI1WM_PLUGIN_NAME ); ?>
|
| 37 |
+
</label>
|
| 38 |
</div>
|
| 39 |
<div class="ai1wm-field">
|
| 40 |
<div class="ai1wm-buttons">
|
lib/view/common/report-problem.php
CHANGED
|
@@ -10,8 +10,10 @@
|
|
| 10 |
<textarea rows="3" id="ai1wm-report-message" class="ai1wm-report-message" placeholder="<?php _e( 'Please describe your problem here..', AI1WM_PLUGIN_NAME ); ?>"></textarea>
|
| 11 |
</div>
|
| 12 |
<div class="ai1wm-field ai1wm-report-terms-segment">
|
| 13 |
-
<
|
| 14 |
-
|
|
|
|
|
|
|
| 15 |
</div>
|
| 16 |
<div class="ai1wm-field">
|
| 17 |
<div class="ai1wm-buttons">
|
| 10 |
<textarea rows="3" id="ai1wm-report-message" class="ai1wm-report-message" placeholder="<?php _e( 'Please describe your problem here..', AI1WM_PLUGIN_NAME ); ?>"></textarea>
|
| 11 |
</div>
|
| 12 |
<div class="ai1wm-field ai1wm-report-terms-segment">
|
| 13 |
+
<label for="ai1wm-report-terms">
|
| 14 |
+
<input type="checkbox" class="ai1wm-report-terms" id="ai1wm-report-terms" />
|
| 15 |
+
<?php _e( 'I agree to send my email address, comments and error logs to a ServMask server.', AI1WM_PLUGIN_NAME ); ?>
|
| 16 |
+
</label>
|
| 17 |
</div>
|
| 18 |
<div class="ai1wm-field">
|
| 19 |
<div class="ai1wm-buttons">
|
lib/view/export/advanced-settings.php
CHANGED
|
@@ -7,61 +7,83 @@
|
|
| 7 |
</h4>
|
| 8 |
<ul>
|
| 9 |
<li>
|
| 10 |
-
<
|
| 11 |
-
|
|
|
|
|
|
|
| 12 |
</li>
|
| 13 |
<li>
|
| 14 |
-
<
|
| 15 |
-
|
|
|
|
|
|
|
| 16 |
</li>
|
| 17 |
<li>
|
| 18 |
-
<
|
| 19 |
-
|
|
|
|
|
|
|
| 20 |
</li>
|
| 21 |
<li>
|
| 22 |
-
<
|
| 23 |
-
|
|
|
|
|
|
|
| 24 |
</li>
|
| 25 |
|
| 26 |
<?php if ( apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ) === 0 ) : ?>
|
| 27 |
<li>
|
| 28 |
-
<
|
| 29 |
-
|
|
|
|
|
|
|
| 30 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 31 |
</li>
|
| 32 |
<?php endif; ?>
|
| 33 |
|
| 34 |
<li>
|
| 35 |
-
<
|
| 36 |
-
|
|
|
|
|
|
|
| 37 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 38 |
</li>
|
| 39 |
|
| 40 |
<li>
|
| 41 |
-
<
|
| 42 |
-
|
|
|
|
|
|
|
| 43 |
</li>
|
| 44 |
|
| 45 |
<?php if ( apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ) === 0 ) : ?>
|
| 46 |
<li>
|
| 47 |
-
<
|
| 48 |
-
|
|
|
|
|
|
|
| 49 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 50 |
</li>
|
| 51 |
<li>
|
| 52 |
-
<
|
| 53 |
-
|
|
|
|
|
|
|
| 54 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 55 |
</li>
|
| 56 |
<?php endif; ?>
|
| 57 |
|
| 58 |
<li>
|
| 59 |
-
<
|
| 60 |
-
|
|
|
|
|
|
|
| 61 |
</li>
|
| 62 |
<li>
|
| 63 |
-
<
|
| 64 |
-
|
|
|
|
|
|
|
| 65 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 66 |
</li>
|
| 67 |
|
| 7 |
</h4>
|
| 8 |
<ul>
|
| 9 |
<li>
|
| 10 |
+
<label for="ai1wm-no-spam-comments">
|
| 11 |
+
<input type="checkbox" id="ai1wm-no-spam-comments" name="options[no_spam_comments]" />
|
| 12 |
+
<?php _e( 'Do <strong>not</strong> export spam comments', AI1WM_PLUGIN_NAME ); ?>
|
| 13 |
+
</label>
|
| 14 |
</li>
|
| 15 |
<li>
|
| 16 |
+
<label for="ai1wm-no-revisions">
|
| 17 |
+
<input type="checkbox" id="ai1wm-no-revisions" name="options[no_revisions]" />
|
| 18 |
+
<?php _e( 'Do <strong>not</strong> export post revisions', AI1WM_PLUGIN_NAME ); ?>
|
| 19 |
+
</label>
|
| 20 |
</li>
|
| 21 |
<li>
|
| 22 |
+
<label for="ai1wm-no-media">
|
| 23 |
+
<input type="checkbox" id="ai1wm-no-media" name="options[no_media]" />
|
| 24 |
+
<?php _e( 'Do <strong>not</strong> export media library (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 25 |
+
</label>
|
| 26 |
</li>
|
| 27 |
<li>
|
| 28 |
+
<label for="ai1wm-no-themes">
|
| 29 |
+
<input type="checkbox" id="ai1wm-no-themes" name="options[no_themes]" />
|
| 30 |
+
<?php _e( 'Do <strong>not</strong> export themes (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 31 |
+
</label>
|
| 32 |
</li>
|
| 33 |
|
| 34 |
<?php if ( apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ) === 0 ) : ?>
|
| 35 |
<li>
|
| 36 |
+
<label for="ai1wm-no-inactive-themes">
|
| 37 |
+
<input type="checkbox" id="ai1wm-no-inactive-themes" name="options[no_inactive_themes]" />
|
| 38 |
+
<?php _e( 'Do <strong>not</strong> export inactive themes (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 39 |
+
</label>
|
| 40 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 41 |
</li>
|
| 42 |
<?php endif; ?>
|
| 43 |
|
| 44 |
<li>
|
| 45 |
+
<label for="ai1wm-no-muplugins">
|
| 46 |
+
<input type="checkbox" id="ai1wm-no-muplugins" name="options[no_muplugins]" />
|
| 47 |
+
<?php _e( 'Do <strong>not</strong> export must-use plugins (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 48 |
+
</label>
|
| 49 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 50 |
</li>
|
| 51 |
|
| 52 |
<li>
|
| 53 |
+
<label for="ai1wm-no-plugins">
|
| 54 |
+
<input type="checkbox" id="ai1wm-no-plugins" name="options[no_plugins]" />
|
| 55 |
+
<?php _e( 'Do <strong>not</strong> export plugins (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 56 |
+
</label>
|
| 57 |
</li>
|
| 58 |
|
| 59 |
<?php if ( apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ) === 0 ) : ?>
|
| 60 |
<li>
|
| 61 |
+
<label for="ai1wm-no-inactive-plugins">
|
| 62 |
+
<input type="checkbox" id="ai1wm-no-inactive-plugins" name="options[no_inactive_plugins]" />
|
| 63 |
+
<?php _e( 'Do <strong>not</strong> export inactive plugins (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 64 |
+
</label>
|
| 65 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 66 |
</li>
|
| 67 |
<li>
|
| 68 |
+
<label for="ai1wm-no-cache">
|
| 69 |
+
<input type="checkbox" id="ai1wm-no-cache" name="options[no_cache]" />
|
| 70 |
+
<?php _e( 'Do <strong>not</strong> export cache (files)', AI1WM_PLUGIN_NAME ); ?>
|
| 71 |
+
</label>
|
| 72 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 73 |
</li>
|
| 74 |
<?php endif; ?>
|
| 75 |
|
| 76 |
<li>
|
| 77 |
+
<label for="ai1wm-no-database">
|
| 78 |
+
<input type="checkbox" id="ai1wm-no-database" name="options[no_database]" />
|
| 79 |
+
<?php _e( 'Do <strong>not</strong> export database (sql)', AI1WM_PLUGIN_NAME ); ?>
|
| 80 |
+
</label>
|
| 81 |
</li>
|
| 82 |
<li>
|
| 83 |
+
<label for="ai1wm-no-email-replace">
|
| 84 |
+
<input type="checkbox" id="ai1wm-no-email-replace" name="options[no_email_replace]" />
|
| 85 |
+
<?php _e( 'Do <strong>not</strong> replace email domain (sql)', AI1WM_PLUGIN_NAME ); ?>
|
| 86 |
+
</label>
|
| 87 |
<small style="color:red"><?php _e( 'new', AI1WM_PLUGIN_NAME ); ?></small>
|
| 88 |
</li>
|
| 89 |
|
readme.txt
CHANGED
|
@@ -3,7 +3,7 @@ Contributors: yani.iliev, bangelov, pimjitsawang
|
|
| 3 |
Tags: db migration, migration, wordpress migration, db backup, db restore, website backup, website restore, website migration, website deploy, wordpress deploy, db backup, database export, database serialization, database find replace
|
| 4 |
Requires at least: 3.3
|
| 5 |
Tested up to: 4.7
|
| 6 |
-
Stable tag: 6.
|
| 7 |
License: GPLv2 or later
|
| 8 |
|
| 9 |
All-in-One WP Migration is the only tool that you will ever need to migrate a WordPress site.
|
|
@@ -20,7 +20,7 @@ All in One WP Plugin is the first plugin to offer true mobile experience on Word
|
|
| 20 |
* We have tested the plugin on the major Linux distributions, Mac OS X, and Microsoft Windows.
|
| 21 |
|
| 22 |
= Bypass all upload size restriction =
|
| 23 |
-
* We use chunks to import your data and that way we bypass any webserver upload size restrictions
|
| 24 |
|
| 25 |
= 0 Dependencies =
|
| 26 |
* The plugin does not require any php extensions and can work with PHP v5.2.
|
|
@@ -78,6 +78,13 @@ All in One WP Plugin is the first plugin to offer true mobile experience on Word
|
|
| 78 |
3. Plugin Menu
|
| 79 |
|
| 80 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
= 6.40 =
|
| 82 |
* Do not extract dropins files on import
|
| 83 |
* Fix an issue with large files on import
|
| 3 |
Tags: db migration, migration, wordpress migration, db backup, db restore, website backup, website restore, website migration, website deploy, wordpress deploy, db backup, database export, database serialization, database find replace
|
| 4 |
Requires at least: 3.3
|
| 5 |
Tested up to: 4.7
|
| 6 |
+
Stable tag: 6.41
|
| 7 |
License: GPLv2 or later
|
| 8 |
|
| 9 |
All-in-One WP Migration is the only tool that you will ever need to migrate a WordPress site.
|
| 20 |
* We have tested the plugin on the major Linux distributions, Mac OS X, and Microsoft Windows.
|
| 21 |
|
| 22 |
= Bypass all upload size restriction =
|
| 23 |
+
* We use chunks to import your data and that way we bypass any webserver upload size restrictions.
|
| 24 |
|
| 25 |
= 0 Dependencies =
|
| 26 |
* The plugin does not require any php extensions and can work with PHP v5.2.
|
| 78 |
3. Plugin Menu
|
| 79 |
|
| 80 |
== Changelog ==
|
| 81 |
+
= 6.41 =
|
| 82 |
+
* Support Visual Composer plugin
|
| 83 |
+
* Support Jetpack Photon module
|
| 84 |
+
* Improved Maria DB support
|
| 85 |
+
* Disable WordPress authentication checking during migration
|
| 86 |
+
* Clean any temporary files after migration
|
| 87 |
+
|
| 88 |
= 6.40 =
|
| 89 |
* Do not extract dropins files on import
|
| 90 |
* Fix an issue with large files on import
|
