Version Description
Added
- Display a message when MySQL server exceeds a limit
Download this release
Release Info
Developer | bangelov |
Plugin | All-in-One WP Migration |
Version | 7.12 |
Comparing to | |
See all releases |
Code changes from version 7.11 to 7.12
- all-in-one-wp-migration.php +1 -1
- changelog.txt +1 -1
- constants.php +1 -1
- lib/controller/class-ai1wm-export-controller.php +1 -1
- lib/controller/class-ai1wm-import-controller.php +10 -1
- lib/controller/class-ai1wm-main-controller.php +2 -2
- lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php +2 -2
- lib/vendor/servmask/database/class-ai1wm-database.php +37 -3
- lib/view/assets/javascript/backups.min.js +224 -40
- lib/view/assets/javascript/export.min.js +90 -17
- lib/view/assets/javascript/import.min.js +134 -23
- lib/view/main/backups-htaccess-notice.php +1 -1
- lib/view/main/backups-index-notice.php +1 -1
- lib/view/main/backups-path-notice.php +2 -2
- lib/view/main/backups-webconfig-notice.php +1 -1
- lib/view/main/multisite-notice.php +1 -1
- lib/view/main/storage-index-notice.php +1 -1
- lib/view/main/storage-path-notice.php +2 -2
- lib/view/main/wordpress-htaccess-notice.php +1 -1
- readme.txt +6 -1
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: 7.
|
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: 7.12
|
9 |
* Text Domain: all-in-one-wp-migration
|
10 |
* Domain Path: /languages
|
11 |
* Network: True
|
changelog.txt
CHANGED
@@ -237,7 +237,7 @@
|
|
237 |
|
238 |
= 1.8.1 =
|
239 |
* Added "Get Support" link in the plugin list page
|
240 |
-
* Removed "All
|
241 |
|
242 |
= 1.8.0 =
|
243 |
* Added support for dynamically recognizing Site URL and Home URL on the import page
|
237 |
|
238 |
= 1.8.1 =
|
239 |
* Added "Get Support" link in the plugin list page
|
240 |
+
* Removed "All-in-One WP Migration Beta" link from the readme file
|
241 |
|
242 |
= 1.8.0 =
|
243 |
* Added support for dynamically recognizing Site URL and Home URL on the import page
|
constants.php
CHANGED
@@ -35,7 +35,7 @@ define( 'AI1WM_DEBUG', false );
|
|
35 |
// ==================
|
36 |
// = Plugin Version =
|
37 |
// ==================
|
38 |
-
define( 'AI1WM_VERSION', '7.
|
39 |
|
40 |
// ===============
|
41 |
// = Plugin Name =
|
35 |
// ==================
|
36 |
// = Plugin Version =
|
37 |
// ==================
|
38 |
+
define( 'AI1WM_VERSION', '7.12' );
|
39 |
|
40 |
// ===============
|
41 |
// = Plugin Name =
|
lib/controller/class-ai1wm-export-controller.php
CHANGED
@@ -128,7 +128,7 @@ class Ai1wm_Export_Controller {
|
|
128 |
$active_filters = array();
|
129 |
$static_filters = array();
|
130 |
|
131 |
-
// All
|
132 |
if ( defined( 'AI1WM_PLUGIN_NAME' ) ) {
|
133 |
$active_filters[] = apply_filters( 'ai1wm_export_file', Ai1wm_Template::get_content( 'export/button-file' ) );
|
134 |
} else {
|
128 |
$active_filters = array();
|
129 |
$static_filters = array();
|
130 |
|
131 |
+
// All-in-One WP Migration
|
132 |
if ( defined( 'AI1WM_PLUGIN_NAME' ) ) {
|
133 |
$active_filters[] = apply_filters( 'ai1wm_export_file', Ai1wm_Template::get_content( 'export/button-file' ) );
|
134 |
} else {
|
lib/controller/class-ai1wm-import-controller.php
CHANGED
@@ -80,6 +80,15 @@ class Ai1wm_Import_Controller {
|
|
80 |
echo json_encode( array( 'errors' => array( array( 'code' => $e->getCode(), 'message' => $e->getMessage() ) ) ) );
|
81 |
}
|
82 |
exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
} catch ( Exception $e ) {
|
84 |
if ( defined( 'WP_CLI' ) ) {
|
85 |
WP_CLI::error( sprintf( __( 'Unable to import: %s', AI1WM_PLUGIN_NAME ), $e->getMessage() ) );
|
@@ -136,7 +145,7 @@ class Ai1wm_Import_Controller {
|
|
136 |
$active_filters = array();
|
137 |
$static_filters = array();
|
138 |
|
139 |
-
// All
|
140 |
if ( defined( 'AI1WM_PLUGIN_NAME' ) ) {
|
141 |
$active_filters[] = apply_filters( 'ai1wm_import_file', Ai1wm_Template::get_content( 'import/button-file' ) );
|
142 |
} else {
|
80 |
echo json_encode( array( 'errors' => array( array( 'code' => $e->getCode(), 'message' => $e->getMessage() ) ) ) );
|
81 |
}
|
82 |
exit;
|
83 |
+
} catch ( Ai1wm_Database_Exception $e ) {
|
84 |
+
if ( defined( 'WP_CLI' ) ) {
|
85 |
+
WP_CLI::error( sprintf( __( 'Unable to import. Error code: %s. %s', AI1WM_PLUGIN_NAME ), $e->getCode(), $e->getMessage() ) );
|
86 |
+
} else {
|
87 |
+
status_header( $e->getCode() );
|
88 |
+
echo json_encode( array( 'errors' => array( array( 'code' => $e->getCode(), 'message' => $e->getMessage() ) ) ) );
|
89 |
+
}
|
90 |
+
Ai1wm_Directory::delete( ai1wm_storage_path( $params ) );
|
91 |
+
exit;
|
92 |
} catch ( Exception $e ) {
|
93 |
if ( defined( 'WP_CLI' ) ) {
|
94 |
WP_CLI::error( sprintf( __( 'Unable to import: %s', AI1WM_PLUGIN_NAME ), $e->getMessage() ) );
|
145 |
$active_filters = array();
|
146 |
$static_filters = array();
|
147 |
|
148 |
+
// All-in-One WP Migration
|
149 |
if ( defined( 'AI1WM_PLUGIN_NAME' ) ) {
|
150 |
$active_filters[] = apply_filters( 'ai1wm_import_file', Ai1wm_Template::get_content( 'import/button-file' ) );
|
151 |
} else {
|
lib/controller/class-ai1wm-main-controller.php
CHANGED
@@ -101,7 +101,7 @@ class Ai1wm_Main_Controller {
|
|
101 |
// Admin header
|
102 |
add_action( 'admin_head', array( $this, 'admin_head' ) );
|
103 |
|
104 |
-
// All
|
105 |
add_action( 'plugins_loaded', array( $this, 'ai1wm_loaded' ), 10 );
|
106 |
|
107 |
// Export and import commands
|
@@ -191,7 +191,7 @@ class Ai1wm_Main_Controller {
|
|
191 |
}
|
192 |
|
193 |
/**
|
194 |
-
* All
|
195 |
*
|
196 |
* @return void
|
197 |
*/
|
101 |
// Admin header
|
102 |
add_action( 'admin_head', array( $this, 'admin_head' ) );
|
103 |
|
104 |
+
// All-in-One WP Migration
|
105 |
add_action( 'plugins_loaded', array( $this, 'ai1wm_loaded' ), 10 );
|
106 |
|
107 |
// Export and import commands
|
191 |
}
|
192 |
|
193 |
/**
|
194 |
+
* All-in-One WP Migration loaded
|
195 |
*
|
196 |
* @return void
|
197 |
*/
|
lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php
CHANGED
@@ -26,7 +26,7 @@ if ( defined( 'WP_CLI' ) ) {
|
|
26 |
if ( is_multisite() ) {
|
27 |
WP_CLI::error_multi_line(
|
28 |
array(
|
29 |
-
__( 'WordPress Multisite is supported via our All
|
30 |
__( 'You can get a copy of it here: https://servmask.com/products/multisite-extension', AI1WM_PLUGIN_NAME ),
|
31 |
)
|
32 |
);
|
@@ -35,7 +35,7 @@ if ( defined( 'WP_CLI' ) ) {
|
|
35 |
|
36 |
WP_CLI::error_multi_line(
|
37 |
array(
|
38 |
-
__( 'WordPress CLI is supported via our All
|
39 |
__( 'You can get a copy of it here: https://servmask.com/products/unlimited-extension', AI1WM_PLUGIN_NAME ),
|
40 |
)
|
41 |
);
|
26 |
if ( is_multisite() ) {
|
27 |
WP_CLI::error_multi_line(
|
28 |
array(
|
29 |
+
__( 'WordPress Multisite is supported via our All-in-One WP Migration Multisite Extension.', AI1WM_PLUGIN_NAME ),
|
30 |
__( 'You can get a copy of it here: https://servmask.com/products/multisite-extension', AI1WM_PLUGIN_NAME ),
|
31 |
)
|
32 |
);
|
35 |
|
36 |
WP_CLI::error_multi_line(
|
37 |
array(
|
38 |
+
__( 'WordPress CLI is supported via our All-in-One WP Migration Unlimited Extension.', AI1WM_PLUGIN_NAME ),
|
39 |
__( 'You can get a copy of it here: https://servmask.com/products/unlimited-extension', AI1WM_PLUGIN_NAME ),
|
40 |
)
|
41 |
);
|
lib/vendor/servmask/database/class-ai1wm-database.php
CHANGED
@@ -147,8 +147,9 @@ abstract class Ai1wm_Database {
|
|
147 |
if ( get_resource_type( $this->wpdb->dbh ) === 'SQL Server Connection' ) {
|
148 |
throw new Ai1wm_Database_Exception(
|
149 |
'Your WordPress installation uses Microsoft SQL Server. ' .
|
150 |
-
'
|
151 |
-
'<a href="https://help.servmask.com/knowledgebase/microsoft-sql-server/" target="_blank">Technical details</a>'
|
|
|
152 |
);
|
153 |
}
|
154 |
}
|
@@ -859,6 +860,39 @@ abstract class Ai1wm_Database {
|
|
859 |
// Run SQL query
|
860 |
$this->query( $query );
|
861 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
862 |
}
|
863 |
|
864 |
// Set query offset
|
@@ -1475,7 +1509,7 @@ abstract class Ai1wm_Database {
|
|
1475 |
protected function get_header() {
|
1476 |
// Some info about software, source and time
|
1477 |
$header = sprintf(
|
1478 |
-
"-- All
|
1479 |
"-- https://servmask.com/\n" .
|
1480 |
"--\n" .
|
1481 |
"-- Host: %s\n" .
|
147 |
if ( get_resource_type( $this->wpdb->dbh ) === 'SQL Server Connection' ) {
|
148 |
throw new Ai1wm_Database_Exception(
|
149 |
'Your WordPress installation uses Microsoft SQL Server. ' .
|
150 |
+
'To use All-in-One WP Migration, please change your installation to MySQL and try again. ' .
|
151 |
+
'<a href="https://help.servmask.com/knowledgebase/microsoft-sql-server/" target="_blank">Technical details</a>',
|
152 |
+
501
|
153 |
);
|
154 |
}
|
155 |
}
|
860 |
// Run SQL query
|
861 |
$this->query( $query );
|
862 |
}
|
863 |
+
|
864 |
+
// Check max queries per hour
|
865 |
+
if ( $this->errno() === 1226 ) {
|
866 |
+
if ( stripos( $this->error(), 'max_queries_per_hour' ) !== false ) {
|
867 |
+
throw new Ai1wm_Database_Exception(
|
868 |
+
'Your WordPress installation has reached the maximum allowed queries per hour set by your server admin or hosting provider. ' .
|
869 |
+
'To use All-in-One WP Migration, please increase MySQL max_queries_per_hour limit. ' .
|
870 |
+
'<a href="https://help.servmask.com/knowledgebase/mysql-error-codes/#max-queries-per-hour" target="_blank">Technical details</a>',
|
871 |
+
503
|
872 |
+
);
|
873 |
+
} elseif ( stripos( $this->error(), 'max_updates_per_hour' ) !== false ) {
|
874 |
+
throw new Ai1wm_Database_Exception(
|
875 |
+
'Your WordPress installation has reached the maximum allowed updates per hour set by your server admin or hosting provider. ' .
|
876 |
+
'To use All-in-One WP Migration, please increase MySQL max_updates_per_hour limit. ' .
|
877 |
+
'<a href="https://help.servmask.com/knowledgebase/mysql-error-codes/#max-updates-per-hour" target="_blank">Technical details</a>',
|
878 |
+
503
|
879 |
+
);
|
880 |
+
} elseif ( stripos( $this->error(), 'max_connections_per_hour' ) !== false ) {
|
881 |
+
throw new Ai1wm_Database_Exception(
|
882 |
+
'Your WordPress installation has reached the maximum allowed connections per hour set by your server admin or hosting provider. ' .
|
883 |
+
'To use All-in-One WP Migration, please increase MySQL max_connections_per_hour limit. ' .
|
884 |
+
'<a href="https://help.servmask.com/knowledgebase/mysql-error-codes/#max-connections-per-hour" target="_blank">Technical details</a>',
|
885 |
+
503
|
886 |
+
);
|
887 |
+
} elseif ( stripos( $this->error(), 'max_user_connections' ) !== false ) {
|
888 |
+
throw new Ai1wm_Database_Exception(
|
889 |
+
'Your WordPress installation has reached the maximum allowed user connections set by your server admin or hosting provider. ' .
|
890 |
+
'To use All-in-One WP Migration, please increase MySQL max_user_connections limit. ' .
|
891 |
+
'<a href="https://help.servmask.com/knowledgebase/mysql-error-codes/#max-user-connections" target="_blank">Technical details</a>',
|
892 |
+
503
|
893 |
+
);
|
894 |
+
}
|
895 |
+
}
|
896 |
}
|
897 |
|
898 |
// Set query offset
|
1509 |
protected function get_header() {
|
1510 |
// Some info about software, source and time
|
1511 |
$header = sprintf(
|
1512 |
+
"-- All-in-One WP Migration SQL Dump\n" .
|
1513 |
"-- https://servmask.com/\n" .
|
1514 |
"--\n" .
|
1515 |
"-- Host: %s\n" .
|
lib/view/assets/javascript/backups.min.js
CHANGED
@@ -350,9 +350,6 @@ var Import = function Import() {
|
|
350 |
// Set params
|
351 |
this.params = [];
|
352 |
|
353 |
-
// Set stop flag
|
354 |
-
this.stopImport = false;
|
355 |
-
|
356 |
// Set modal
|
357 |
this.modal = new Modal();
|
358 |
|
@@ -380,13 +377,13 @@ Import.prototype.start = function (options, retries) {
|
|
380 |
var self = this;
|
381 |
retries = retries || 0;
|
382 |
|
383 |
-
//
|
384 |
if (retries === 0) {
|
385 |
-
this.stopImport
|
386 |
}
|
387 |
|
388 |
// Stop running import
|
389 |
-
if (this.
|
390 |
return;
|
391 |
}
|
392 |
|
@@ -421,14 +418,34 @@ Import.prototype.start = function (options, retries) {
|
|
421 |
if (result) {
|
422 |
self.run(result);
|
423 |
}
|
424 |
-
}).fail(function () {
|
425 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
if (retries >= 5) {
|
427 |
-
|
|
|
428 |
type: 'error',
|
429 |
title: ai1wm_locale.unable_to_import,
|
430 |
message: ai1wm_locale.unable_to_start_the_import
|
431 |
});
|
|
|
432 |
}
|
433 |
|
434 |
retries++;
|
@@ -442,7 +459,7 @@ Import.prototype.run = function (params, retries) {
|
|
442 |
retries = retries || 0;
|
443 |
|
444 |
// Stop running import
|
445 |
-
if (this.
|
446 |
return;
|
447 |
}
|
448 |
|
@@ -459,9 +476,26 @@ Import.prototype.run = function (params, retries) {
|
|
459 |
if (result) {
|
460 |
self.run(result);
|
461 |
}
|
462 |
-
}).fail(function () {
|
463 |
var timeout = retries * 1000;
|
464 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
retries++;
|
466 |
|
467 |
setTimeout(self.run.bind(self, params, retries), timeout);
|
@@ -473,7 +507,7 @@ Import.prototype.confirm = function (options, retries) {
|
|
473 |
retries = retries || 0;
|
474 |
|
475 |
// Stop running import
|
476 |
-
if (this.
|
477 |
return;
|
478 |
}
|
479 |
|
@@ -500,14 +534,34 @@ Import.prototype.confirm = function (options, retries) {
|
|
500 |
if (result) {
|
501 |
self.run(result);
|
502 |
}
|
503 |
-
}).fail(function () {
|
504 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
if (retries >= 5) {
|
506 |
-
|
|
|
507 |
type: 'error',
|
508 |
title: ai1wm_locale.unable_to_import,
|
509 |
message: ai1wm_locale.unable_to_confirm_the_import
|
510 |
});
|
|
|
511 |
}
|
512 |
|
513 |
retries++;
|
@@ -521,7 +575,7 @@ Import.prototype.blogs = function (options, retries) {
|
|
521 |
retries = retries || 0;
|
522 |
|
523 |
// Stop running import
|
524 |
-
if (this.
|
525 |
return;
|
526 |
}
|
527 |
|
@@ -548,14 +602,34 @@ Import.prototype.blogs = function (options, retries) {
|
|
548 |
if (result) {
|
549 |
self.run(result);
|
550 |
}
|
551 |
-
}).fail(function () {
|
552 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
if (retries >= 5) {
|
554 |
-
|
|
|
555 |
type: 'error',
|
556 |
title: ai1wm_locale.unable_to_import,
|
557 |
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
558 |
});
|
|
|
559 |
}
|
560 |
|
561 |
retries++;
|
@@ -568,8 +642,10 @@ Import.prototype.clean = function (options, retries) {
|
|
568 |
var self = this;
|
569 |
retries = retries || 0;
|
570 |
|
571 |
-
//
|
572 |
-
|
|
|
|
|
573 |
|
574 |
// Set initial status
|
575 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_import });
|
@@ -597,14 +673,34 @@ Import.prototype.clean = function (options, retries) {
|
|
597 |
|
598 |
// Destroy modal
|
599 |
self.modal.destroy();
|
600 |
-
}).fail(function () {
|
601 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
602 |
if (retries >= 5) {
|
603 |
-
|
|
|
604 |
type: 'error',
|
605 |
title: ai1wm_locale.unable_to_import,
|
606 |
message: ai1wm_locale.unable_to_stop_the_import
|
607 |
});
|
|
|
608 |
}
|
609 |
|
610 |
retries++;
|
@@ -617,11 +713,11 @@ Import.prototype.getStatus = function () {
|
|
617 |
var self = this;
|
618 |
|
619 |
// Stop getting status
|
620 |
-
if (this.
|
621 |
return;
|
622 |
}
|
623 |
|
624 |
-
$.ajax({
|
625 |
url: ai1wm_import.status.url,
|
626 |
type: 'GET',
|
627 |
dataType: 'json',
|
@@ -671,6 +767,20 @@ Import.prototype.onStop = function (options) {
|
|
671 |
this.clean(options);
|
672 |
};
|
673 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
674 |
module.exports = Import;
|
675 |
|
676 |
/***/ }),
|
@@ -764,7 +874,8 @@ var Modal = function Modal() {
|
|
764 |
|
765 |
// Update progress bar percent
|
766 |
if (this.progress.progressBarPercent) {
|
767 |
-
|
|
|
768 |
}
|
769 |
|
770 |
// Create the modal container
|
@@ -1156,9 +1267,6 @@ var Export = function Export() {
|
|
1156 |
// Set params
|
1157 |
this.params = [];
|
1158 |
|
1159 |
-
// Set stop flag
|
1160 |
-
this.stopExport = false;
|
1161 |
-
|
1162 |
// Set modal
|
1163 |
this.modal = new Modal();
|
1164 |
|
@@ -1176,13 +1284,13 @@ Export.prototype.start = function (options, retries) {
|
|
1176 |
var self = this;
|
1177 |
retries = retries || 0;
|
1178 |
|
1179 |
-
//
|
1180 |
if (retries === 0) {
|
1181 |
-
this.stopExport
|
1182 |
}
|
1183 |
|
1184 |
// Stop running export
|
1185 |
-
if (this.
|
1186 |
return;
|
1187 |
}
|
1188 |
|
@@ -1217,14 +1325,34 @@ Export.prototype.start = function (options, retries) {
|
|
1217 |
if (result) {
|
1218 |
self.run(result);
|
1219 |
}
|
1220 |
-
}).fail(function () {
|
1221 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1222 |
if (retries >= 5) {
|
1223 |
-
|
|
|
1224 |
type: 'error',
|
1225 |
title: ai1wm_locale.unable_to_export,
|
1226 |
message: ai1wm_locale.unable_to_start_the_export
|
1227 |
});
|
|
|
1228 |
}
|
1229 |
|
1230 |
retries++;
|
@@ -1238,7 +1366,7 @@ Export.prototype.run = function (params, retries) {
|
|
1238 |
retries = retries || 0;
|
1239 |
|
1240 |
// Stop running export
|
1241 |
-
if (this.
|
1242 |
return;
|
1243 |
}
|
1244 |
|
@@ -1255,14 +1383,34 @@ Export.prototype.run = function (params, retries) {
|
|
1255 |
if (result) {
|
1256 |
self.run(result);
|
1257 |
}
|
1258 |
-
}).fail(function () {
|
1259 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1260 |
if (retries >= 5) {
|
1261 |
-
|
|
|
1262 |
type: 'error',
|
1263 |
title: ai1wm_locale.unable_to_export,
|
1264 |
message: ai1wm_locale.unable_to_run_the_export
|
1265 |
});
|
|
|
1266 |
}
|
1267 |
|
1268 |
retries++;
|
@@ -1275,8 +1423,10 @@ Export.prototype.clean = function (options, retries) {
|
|
1275 |
var self = this;
|
1276 |
retries = retries || 0;
|
1277 |
|
1278 |
-
//
|
1279 |
-
|
|
|
|
|
1280 |
|
1281 |
// Set initial status
|
1282 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
@@ -1304,14 +1454,34 @@ Export.prototype.clean = function (options, retries) {
|
|
1304 |
|
1305 |
// Destroy modal
|
1306 |
self.modal.destroy();
|
1307 |
-
}).fail(function () {
|
1308 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1309 |
if (retries >= 5) {
|
1310 |
-
|
|
|
1311 |
type: 'error',
|
1312 |
title: ai1wm_locale.unable_to_export,
|
1313 |
message: ai1wm_locale.unable_to_stop_the_export
|
1314 |
});
|
|
|
1315 |
}
|
1316 |
|
1317 |
retries++;
|
@@ -1324,11 +1494,11 @@ Export.prototype.getStatus = function () {
|
|
1324 |
var self = this;
|
1325 |
|
1326 |
// Stop getting status
|
1327 |
-
if (this.
|
1328 |
return;
|
1329 |
}
|
1330 |
|
1331 |
-
$.ajax({
|
1332 |
url: ai1wm_export.status.url,
|
1333 |
type: 'GET',
|
1334 |
dataType: 'json',
|
@@ -1367,6 +1537,20 @@ Export.prototype.onStop = function (options) {
|
|
1367 |
this.clean(options);
|
1368 |
};
|
1369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1370 |
module.exports = Export;
|
1371 |
|
1372 |
/***/ }),
|
350 |
// Set params
|
351 |
this.params = [];
|
352 |
|
|
|
|
|
|
|
353 |
// Set modal
|
354 |
this.modal = new Modal();
|
355 |
|
377 |
var self = this;
|
378 |
retries = retries || 0;
|
379 |
|
380 |
+
// Reset stop flag
|
381 |
if (retries === 0) {
|
382 |
+
this.stopImport(false);
|
383 |
}
|
384 |
|
385 |
// Stop running import
|
386 |
+
if (this.isImportStopped()) {
|
387 |
return;
|
388 |
}
|
389 |
|
418 |
if (result) {
|
419 |
self.run(result);
|
420 |
}
|
421 |
+
}).fail(function (xhr) {
|
422 |
var timeout = retries * 1000;
|
423 |
+
|
424 |
+
try {
|
425 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
426 |
+
if (json) {
|
427 |
+
var result = JSON.parse(json);
|
428 |
+
var error = result.errors.pop();
|
429 |
+
if (error.message) {
|
430 |
+
self.stopImport(true);
|
431 |
+
self.setStatus({
|
432 |
+
type: 'error',
|
433 |
+
title: ai1wm_locale.unable_to_import,
|
434 |
+
message: error.message
|
435 |
+
});
|
436 |
+
return;
|
437 |
+
}
|
438 |
+
}
|
439 |
+
} catch (e) {}
|
440 |
+
|
441 |
if (retries >= 5) {
|
442 |
+
self.stopImport(true);
|
443 |
+
self.setStatus({
|
444 |
type: 'error',
|
445 |
title: ai1wm_locale.unable_to_import,
|
446 |
message: ai1wm_locale.unable_to_start_the_import
|
447 |
});
|
448 |
+
return;
|
449 |
}
|
450 |
|
451 |
retries++;
|
459 |
retries = retries || 0;
|
460 |
|
461 |
// Stop running import
|
462 |
+
if (this.isImportStopped()) {
|
463 |
return;
|
464 |
}
|
465 |
|
476 |
if (result) {
|
477 |
self.run(result);
|
478 |
}
|
479 |
+
}).fail(function (xhr) {
|
480 |
var timeout = retries * 1000;
|
481 |
|
482 |
+
try {
|
483 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
484 |
+
if (json) {
|
485 |
+
var result = JSON.parse(json);
|
486 |
+
var error = result.errors.pop();
|
487 |
+
if (error.message) {
|
488 |
+
self.stopImport(true);
|
489 |
+
self.setStatus({
|
490 |
+
type: 'error',
|
491 |
+
title: ai1wm_locale.unable_to_import,
|
492 |
+
message: error.message
|
493 |
+
});
|
494 |
+
return;
|
495 |
+
}
|
496 |
+
}
|
497 |
+
} catch (e) {}
|
498 |
+
|
499 |
retries++;
|
500 |
|
501 |
setTimeout(self.run.bind(self, params, retries), timeout);
|
507 |
retries = retries || 0;
|
508 |
|
509 |
// Stop running import
|
510 |
+
if (this.isImportStopped()) {
|
511 |
return;
|
512 |
}
|
513 |
|
534 |
if (result) {
|
535 |
self.run(result);
|
536 |
}
|
537 |
+
}).fail(function (xhr) {
|
538 |
var timeout = retries * 1000;
|
539 |
+
|
540 |
+
try {
|
541 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
542 |
+
if (json) {
|
543 |
+
var result = JSON.parse(json);
|
544 |
+
var error = result.errors.pop();
|
545 |
+
if (error.message) {
|
546 |
+
self.stopImport(true);
|
547 |
+
self.setStatus({
|
548 |
+
type: 'error',
|
549 |
+
title: ai1wm_locale.unable_to_import,
|
550 |
+
message: error.message
|
551 |
+
});
|
552 |
+
return;
|
553 |
+
}
|
554 |
+
}
|
555 |
+
} catch (e) {}
|
556 |
+
|
557 |
if (retries >= 5) {
|
558 |
+
self.stopImport(true);
|
559 |
+
self.setStatus({
|
560 |
type: 'error',
|
561 |
title: ai1wm_locale.unable_to_import,
|
562 |
message: ai1wm_locale.unable_to_confirm_the_import
|
563 |
});
|
564 |
+
return;
|
565 |
}
|
566 |
|
567 |
retries++;
|
575 |
retries = retries || 0;
|
576 |
|
577 |
// Stop running import
|
578 |
+
if (this.isImportStopped()) {
|
579 |
return;
|
580 |
}
|
581 |
|
602 |
if (result) {
|
603 |
self.run(result);
|
604 |
}
|
605 |
+
}).fail(function (xhr) {
|
606 |
var timeout = retries * 1000;
|
607 |
+
|
608 |
+
try {
|
609 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
610 |
+
if (json) {
|
611 |
+
var result = JSON.parse(json);
|
612 |
+
var error = result.errors.pop();
|
613 |
+
if (error.message) {
|
614 |
+
self.stopImport(true);
|
615 |
+
self.setStatus({
|
616 |
+
type: 'error',
|
617 |
+
title: ai1wm_locale.unable_to_import,
|
618 |
+
message: error.message
|
619 |
+
});
|
620 |
+
return;
|
621 |
+
}
|
622 |
+
}
|
623 |
+
} catch (e) {}
|
624 |
+
|
625 |
if (retries >= 5) {
|
626 |
+
self.stopImport(true);
|
627 |
+
self.setStatus({
|
628 |
type: 'error',
|
629 |
title: ai1wm_locale.unable_to_import,
|
630 |
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
631 |
});
|
632 |
+
return;
|
633 |
}
|
634 |
|
635 |
retries++;
|
642 |
var self = this;
|
643 |
retries = retries || 0;
|
644 |
|
645 |
+
// Reset stop flag
|
646 |
+
if (retries === 0) {
|
647 |
+
this.stopImport(true);
|
648 |
+
}
|
649 |
|
650 |
// Set initial status
|
651 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_import });
|
673 |
|
674 |
// Destroy modal
|
675 |
self.modal.destroy();
|
676 |
+
}).fail(function (xhr) {
|
677 |
var timeout = retries * 1000;
|
678 |
+
|
679 |
+
try {
|
680 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
681 |
+
if (json) {
|
682 |
+
var result = JSON.parse(json);
|
683 |
+
var error = result.errors.pop();
|
684 |
+
if (error.message) {
|
685 |
+
self.stopImport(true);
|
686 |
+
self.setStatus({
|
687 |
+
type: 'error',
|
688 |
+
title: ai1wm_locale.unable_to_import,
|
689 |
+
message: error.message
|
690 |
+
});
|
691 |
+
return;
|
692 |
+
}
|
693 |
+
}
|
694 |
+
} catch (e) {}
|
695 |
+
|
696 |
if (retries >= 5) {
|
697 |
+
self.stopImport(true);
|
698 |
+
self.setStatus({
|
699 |
type: 'error',
|
700 |
title: ai1wm_locale.unable_to_import,
|
701 |
message: ai1wm_locale.unable_to_stop_the_import
|
702 |
});
|
703 |
+
return;
|
704 |
}
|
705 |
|
706 |
retries++;
|
713 |
var self = this;
|
714 |
|
715 |
// Stop getting status
|
716 |
+
if (this.isImportStopped()) {
|
717 |
return;
|
718 |
}
|
719 |
|
720 |
+
this.statusXhr = $.ajax({
|
721 |
url: ai1wm_import.status.url,
|
722 |
type: 'GET',
|
723 |
dataType: 'json',
|
767 |
this.clean(options);
|
768 |
};
|
769 |
|
770 |
+
Import.prototype.stopImport = function (isStopped) {
|
771 |
+
try {
|
772 |
+
if (isStopped) {
|
773 |
+
this.statusXhr.abort();
|
774 |
+
}
|
775 |
+
} finally {
|
776 |
+
this.isStopped = isStopped;
|
777 |
+
}
|
778 |
+
};
|
779 |
+
|
780 |
+
Import.prototype.isImportStopped = function () {
|
781 |
+
return this.isStopped;
|
782 |
+
};
|
783 |
+
|
784 |
module.exports = Import;
|
785 |
|
786 |
/***/ }),
|
874 |
|
875 |
// Update progress bar percent
|
876 |
if (this.progress.progressBarPercent) {
|
877 |
+
this.progress.progressBarPercent.text(params.percent + '%');
|
878 |
+
return;
|
879 |
}
|
880 |
|
881 |
// Create the modal container
|
1267 |
// Set params
|
1268 |
this.params = [];
|
1269 |
|
|
|
|
|
|
|
1270 |
// Set modal
|
1271 |
this.modal = new Modal();
|
1272 |
|
1284 |
var self = this;
|
1285 |
retries = retries || 0;
|
1286 |
|
1287 |
+
// Reset stop flag
|
1288 |
if (retries === 0) {
|
1289 |
+
this.stopExport(false);
|
1290 |
}
|
1291 |
|
1292 |
// Stop running export
|
1293 |
+
if (this.isExportStopped()) {
|
1294 |
return;
|
1295 |
}
|
1296 |
|
1325 |
if (result) {
|
1326 |
self.run(result);
|
1327 |
}
|
1328 |
+
}).fail(function (xhr) {
|
1329 |
var timeout = retries * 1000;
|
1330 |
+
|
1331 |
+
try {
|
1332 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
1333 |
+
if (json) {
|
1334 |
+
var result = JSON.parse(json);
|
1335 |
+
var error = result.errors.pop();
|
1336 |
+
if (error.message) {
|
1337 |
+
self.stopExport(true);
|
1338 |
+
self.setStatus({
|
1339 |
+
type: 'error',
|
1340 |
+
title: ai1wm_locale.unable_to_export,
|
1341 |
+
message: error.message
|
1342 |
+
});
|
1343 |
+
return;
|
1344 |
+
}
|
1345 |
+
}
|
1346 |
+
} catch (e) {}
|
1347 |
+
|
1348 |
if (retries >= 5) {
|
1349 |
+
self.stopExport(true);
|
1350 |
+
self.setStatus({
|
1351 |
type: 'error',
|
1352 |
title: ai1wm_locale.unable_to_export,
|
1353 |
message: ai1wm_locale.unable_to_start_the_export
|
1354 |
});
|
1355 |
+
return;
|
1356 |
}
|
1357 |
|
1358 |
retries++;
|
1366 |
retries = retries || 0;
|
1367 |
|
1368 |
// Stop running export
|
1369 |
+
if (this.isExportStopped()) {
|
1370 |
return;
|
1371 |
}
|
1372 |
|
1383 |
if (result) {
|
1384 |
self.run(result);
|
1385 |
}
|
1386 |
+
}).fail(function (xhr) {
|
1387 |
var timeout = retries * 1000;
|
1388 |
+
|
1389 |
+
try {
|
1390 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
1391 |
+
if (json) {
|
1392 |
+
var result = JSON.parse(json);
|
1393 |
+
var error = result.errors.pop();
|
1394 |
+
if (error.message) {
|
1395 |
+
self.stopExport(true);
|
1396 |
+
self.setStatus({
|
1397 |
+
type: 'error',
|
1398 |
+
title: ai1wm_locale.unable_to_export,
|
1399 |
+
message: error.message
|
1400 |
+
});
|
1401 |
+
return;
|
1402 |
+
}
|
1403 |
+
}
|
1404 |
+
} catch (e) {}
|
1405 |
+
|
1406 |
if (retries >= 5) {
|
1407 |
+
self.stopExport(true);
|
1408 |
+
self.setStatus({
|
1409 |
type: 'error',
|
1410 |
title: ai1wm_locale.unable_to_export,
|
1411 |
message: ai1wm_locale.unable_to_run_the_export
|
1412 |
});
|
1413 |
+
return;
|
1414 |
}
|
1415 |
|
1416 |
retries++;
|
1423 |
var self = this;
|
1424 |
retries = retries || 0;
|
1425 |
|
1426 |
+
// Reset stop flag
|
1427 |
+
if (retries === 0) {
|
1428 |
+
this.stopExport(true);
|
1429 |
+
}
|
1430 |
|
1431 |
// Set initial status
|
1432 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
1454 |
|
1455 |
// Destroy modal
|
1456 |
self.modal.destroy();
|
1457 |
+
}).fail(function (xhr) {
|
1458 |
var timeout = retries * 1000;
|
1459 |
+
|
1460 |
+
try {
|
1461 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
1462 |
+
if (json) {
|
1463 |
+
var result = JSON.parse(json);
|
1464 |
+
var error = result.errors.pop();
|
1465 |
+
if (error.message) {
|
1466 |
+
self.stopExport(true);
|
1467 |
+
self.setStatus({
|
1468 |
+
type: 'error',
|
1469 |
+
title: ai1wm_locale.unable_to_export,
|
1470 |
+
message: error.message
|
1471 |
+
});
|
1472 |
+
return;
|
1473 |
+
}
|
1474 |
+
}
|
1475 |
+
} catch (e) {}
|
1476 |
+
|
1477 |
if (retries >= 5) {
|
1478 |
+
self.stopExport(true);
|
1479 |
+
self.setStatus({
|
1480 |
type: 'error',
|
1481 |
title: ai1wm_locale.unable_to_export,
|
1482 |
message: ai1wm_locale.unable_to_stop_the_export
|
1483 |
});
|
1484 |
+
return;
|
1485 |
}
|
1486 |
|
1487 |
retries++;
|
1494 |
var self = this;
|
1495 |
|
1496 |
// Stop getting status
|
1497 |
+
if (this.isExportStopped()) {
|
1498 |
return;
|
1499 |
}
|
1500 |
|
1501 |
+
this.statusXhr = $.ajax({
|
1502 |
url: ai1wm_export.status.url,
|
1503 |
type: 'GET',
|
1504 |
dataType: 'json',
|
1537 |
this.clean(options);
|
1538 |
};
|
1539 |
|
1540 |
+
Export.prototype.stopExport = function (isStopped) {
|
1541 |
+
try {
|
1542 |
+
if (isStopped) {
|
1543 |
+
this.statusXhr.abort();
|
1544 |
+
}
|
1545 |
+
} finally {
|
1546 |
+
this.isStopped = isStopped;
|
1547 |
+
}
|
1548 |
+
};
|
1549 |
+
|
1550 |
+
Export.prototype.isExportStopped = function () {
|
1551 |
+
return this.isStopped;
|
1552 |
+
};
|
1553 |
+
|
1554 |
module.exports = Export;
|
1555 |
|
1556 |
/***/ }),
|
lib/view/assets/javascript/export.min.js
CHANGED
@@ -352,9 +352,6 @@ var Export = function Export() {
|
|
352 |
// Set params
|
353 |
this.params = [];
|
354 |
|
355 |
-
// Set stop flag
|
356 |
-
this.stopExport = false;
|
357 |
-
|
358 |
// Set modal
|
359 |
this.modal = new Modal();
|
360 |
|
@@ -372,13 +369,13 @@ Export.prototype.start = function (options, retries) {
|
|
372 |
var self = this;
|
373 |
retries = retries || 0;
|
374 |
|
375 |
-
//
|
376 |
if (retries === 0) {
|
377 |
-
this.stopExport
|
378 |
}
|
379 |
|
380 |
// Stop running export
|
381 |
-
if (this.
|
382 |
return;
|
383 |
}
|
384 |
|
@@ -413,14 +410,34 @@ Export.prototype.start = function (options, retries) {
|
|
413 |
if (result) {
|
414 |
self.run(result);
|
415 |
}
|
416 |
-
}).fail(function () {
|
417 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
418 |
if (retries >= 5) {
|
419 |
-
|
|
|
420 |
type: 'error',
|
421 |
title: ai1wm_locale.unable_to_export,
|
422 |
message: ai1wm_locale.unable_to_start_the_export
|
423 |
});
|
|
|
424 |
}
|
425 |
|
426 |
retries++;
|
@@ -434,7 +451,7 @@ Export.prototype.run = function (params, retries) {
|
|
434 |
retries = retries || 0;
|
435 |
|
436 |
// Stop running export
|
437 |
-
if (this.
|
438 |
return;
|
439 |
}
|
440 |
|
@@ -451,14 +468,34 @@ Export.prototype.run = function (params, retries) {
|
|
451 |
if (result) {
|
452 |
self.run(result);
|
453 |
}
|
454 |
-
}).fail(function () {
|
455 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
456 |
if (retries >= 5) {
|
457 |
-
|
|
|
458 |
type: 'error',
|
459 |
title: ai1wm_locale.unable_to_export,
|
460 |
message: ai1wm_locale.unable_to_run_the_export
|
461 |
});
|
|
|
462 |
}
|
463 |
|
464 |
retries++;
|
@@ -471,8 +508,10 @@ Export.prototype.clean = function (options, retries) {
|
|
471 |
var self = this;
|
472 |
retries = retries || 0;
|
473 |
|
474 |
-
//
|
475 |
-
|
|
|
|
|
476 |
|
477 |
// Set initial status
|
478 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
@@ -500,14 +539,34 @@ Export.prototype.clean = function (options, retries) {
|
|
500 |
|
501 |
// Destroy modal
|
502 |
self.modal.destroy();
|
503 |
-
}).fail(function () {
|
504 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
if (retries >= 5) {
|
506 |
-
|
|
|
507 |
type: 'error',
|
508 |
title: ai1wm_locale.unable_to_export,
|
509 |
message: ai1wm_locale.unable_to_stop_the_export
|
510 |
});
|
|
|
511 |
}
|
512 |
|
513 |
retries++;
|
@@ -520,11 +579,11 @@ Export.prototype.getStatus = function () {
|
|
520 |
var self = this;
|
521 |
|
522 |
// Stop getting status
|
523 |
-
if (this.
|
524 |
return;
|
525 |
}
|
526 |
|
527 |
-
$.ajax({
|
528 |
url: ai1wm_export.status.url,
|
529 |
type: 'GET',
|
530 |
dataType: 'json',
|
@@ -563,6 +622,20 @@ Export.prototype.onStop = function (options) {
|
|
563 |
this.clean(options);
|
564 |
};
|
565 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
566 |
module.exports = Export;
|
567 |
|
568 |
/***/ }),
|
352 |
// Set params
|
353 |
this.params = [];
|
354 |
|
|
|
|
|
|
|
355 |
// Set modal
|
356 |
this.modal = new Modal();
|
357 |
|
369 |
var self = this;
|
370 |
retries = retries || 0;
|
371 |
|
372 |
+
// Reset stop flag
|
373 |
if (retries === 0) {
|
374 |
+
this.stopExport(false);
|
375 |
}
|
376 |
|
377 |
// Stop running export
|
378 |
+
if (this.isExportStopped()) {
|
379 |
return;
|
380 |
}
|
381 |
|
410 |
if (result) {
|
411 |
self.run(result);
|
412 |
}
|
413 |
+
}).fail(function (xhr) {
|
414 |
var timeout = retries * 1000;
|
415 |
+
|
416 |
+
try {
|
417 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
418 |
+
if (json) {
|
419 |
+
var result = JSON.parse(json);
|
420 |
+
var error = result.errors.pop();
|
421 |
+
if (error.message) {
|
422 |
+
self.stopExport(true);
|
423 |
+
self.setStatus({
|
424 |
+
type: 'error',
|
425 |
+
title: ai1wm_locale.unable_to_export,
|
426 |
+
message: error.message
|
427 |
+
});
|
428 |
+
return;
|
429 |
+
}
|
430 |
+
}
|
431 |
+
} catch (e) {}
|
432 |
+
|
433 |
if (retries >= 5) {
|
434 |
+
self.stopExport(true);
|
435 |
+
self.setStatus({
|
436 |
type: 'error',
|
437 |
title: ai1wm_locale.unable_to_export,
|
438 |
message: ai1wm_locale.unable_to_start_the_export
|
439 |
});
|
440 |
+
return;
|
441 |
}
|
442 |
|
443 |
retries++;
|
451 |
retries = retries || 0;
|
452 |
|
453 |
// Stop running export
|
454 |
+
if (this.isExportStopped()) {
|
455 |
return;
|
456 |
}
|
457 |
|
468 |
if (result) {
|
469 |
self.run(result);
|
470 |
}
|
471 |
+
}).fail(function (xhr) {
|
472 |
var timeout = retries * 1000;
|
473 |
+
|
474 |
+
try {
|
475 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
476 |
+
if (json) {
|
477 |
+
var result = JSON.parse(json);
|
478 |
+
var error = result.errors.pop();
|
479 |
+
if (error.message) {
|
480 |
+
self.stopExport(true);
|
481 |
+
self.setStatus({
|
482 |
+
type: 'error',
|
483 |
+
title: ai1wm_locale.unable_to_export,
|
484 |
+
message: error.message
|
485 |
+
});
|
486 |
+
return;
|
487 |
+
}
|
488 |
+
}
|
489 |
+
} catch (e) {}
|
490 |
+
|
491 |
if (retries >= 5) {
|
492 |
+
self.stopExport(true);
|
493 |
+
self.setStatus({
|
494 |
type: 'error',
|
495 |
title: ai1wm_locale.unable_to_export,
|
496 |
message: ai1wm_locale.unable_to_run_the_export
|
497 |
});
|
498 |
+
return;
|
499 |
}
|
500 |
|
501 |
retries++;
|
508 |
var self = this;
|
509 |
retries = retries || 0;
|
510 |
|
511 |
+
// Reset stop flag
|
512 |
+
if (retries === 0) {
|
513 |
+
this.stopExport(true);
|
514 |
+
}
|
515 |
|
516 |
// Set initial status
|
517 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
539 |
|
540 |
// Destroy modal
|
541 |
self.modal.destroy();
|
542 |
+
}).fail(function (xhr) {
|
543 |
var timeout = retries * 1000;
|
544 |
+
|
545 |
+
try {
|
546 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
547 |
+
if (json) {
|
548 |
+
var result = JSON.parse(json);
|
549 |
+
var error = result.errors.pop();
|
550 |
+
if (error.message) {
|
551 |
+
self.stopExport(true);
|
552 |
+
self.setStatus({
|
553 |
+
type: 'error',
|
554 |
+
title: ai1wm_locale.unable_to_export,
|
555 |
+
message: error.message
|
556 |
+
});
|
557 |
+
return;
|
558 |
+
}
|
559 |
+
}
|
560 |
+
} catch (e) {}
|
561 |
+
|
562 |
if (retries >= 5) {
|
563 |
+
self.stopExport(true);
|
564 |
+
self.setStatus({
|
565 |
type: 'error',
|
566 |
title: ai1wm_locale.unable_to_export,
|
567 |
message: ai1wm_locale.unable_to_stop_the_export
|
568 |
});
|
569 |
+
return;
|
570 |
}
|
571 |
|
572 |
retries++;
|
579 |
var self = this;
|
580 |
|
581 |
// Stop getting status
|
582 |
+
if (this.isExportStopped()) {
|
583 |
return;
|
584 |
}
|
585 |
|
586 |
+
this.statusXhr = $.ajax({
|
587 |
url: ai1wm_export.status.url,
|
588 |
type: 'GET',
|
589 |
dataType: 'json',
|
622 |
this.clean(options);
|
623 |
};
|
624 |
|
625 |
+
Export.prototype.stopExport = function (isStopped) {
|
626 |
+
try {
|
627 |
+
if (isStopped) {
|
628 |
+
this.statusXhr.abort();
|
629 |
+
}
|
630 |
+
} finally {
|
631 |
+
this.isStopped = isStopped;
|
632 |
+
}
|
633 |
+
};
|
634 |
+
|
635 |
+
Export.prototype.isExportStopped = function () {
|
636 |
+
return this.isStopped;
|
637 |
+
};
|
638 |
+
|
639 |
module.exports = Export;
|
640 |
|
641 |
/***/ }),
|
lib/view/assets/javascript/import.min.js
CHANGED
@@ -350,9 +350,6 @@ var Import = function Import() {
|
|
350 |
// Set params
|
351 |
this.params = [];
|
352 |
|
353 |
-
// Set stop flag
|
354 |
-
this.stopImport = false;
|
355 |
-
|
356 |
// Set modal
|
357 |
this.modal = new Modal();
|
358 |
|
@@ -380,13 +377,13 @@ Import.prototype.start = function (options, retries) {
|
|
380 |
var self = this;
|
381 |
retries = retries || 0;
|
382 |
|
383 |
-
//
|
384 |
if (retries === 0) {
|
385 |
-
this.stopImport
|
386 |
}
|
387 |
|
388 |
// Stop running import
|
389 |
-
if (this.
|
390 |
return;
|
391 |
}
|
392 |
|
@@ -421,14 +418,34 @@ Import.prototype.start = function (options, retries) {
|
|
421 |
if (result) {
|
422 |
self.run(result);
|
423 |
}
|
424 |
-
}).fail(function () {
|
425 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
if (retries >= 5) {
|
427 |
-
|
|
|
428 |
type: 'error',
|
429 |
title: ai1wm_locale.unable_to_import,
|
430 |
message: ai1wm_locale.unable_to_start_the_import
|
431 |
});
|
|
|
432 |
}
|
433 |
|
434 |
retries++;
|
@@ -442,7 +459,7 @@ Import.prototype.run = function (params, retries) {
|
|
442 |
retries = retries || 0;
|
443 |
|
444 |
// Stop running import
|
445 |
-
if (this.
|
446 |
return;
|
447 |
}
|
448 |
|
@@ -459,9 +476,26 @@ Import.prototype.run = function (params, retries) {
|
|
459 |
if (result) {
|
460 |
self.run(result);
|
461 |
}
|
462 |
-
}).fail(function () {
|
463 |
var timeout = retries * 1000;
|
464 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
retries++;
|
466 |
|
467 |
setTimeout(self.run.bind(self, params, retries), timeout);
|
@@ -473,7 +507,7 @@ Import.prototype.confirm = function (options, retries) {
|
|
473 |
retries = retries || 0;
|
474 |
|
475 |
// Stop running import
|
476 |
-
if (this.
|
477 |
return;
|
478 |
}
|
479 |
|
@@ -500,14 +534,34 @@ Import.prototype.confirm = function (options, retries) {
|
|
500 |
if (result) {
|
501 |
self.run(result);
|
502 |
}
|
503 |
-
}).fail(function () {
|
504 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
if (retries >= 5) {
|
506 |
-
|
|
|
507 |
type: 'error',
|
508 |
title: ai1wm_locale.unable_to_import,
|
509 |
message: ai1wm_locale.unable_to_confirm_the_import
|
510 |
});
|
|
|
511 |
}
|
512 |
|
513 |
retries++;
|
@@ -521,7 +575,7 @@ Import.prototype.blogs = function (options, retries) {
|
|
521 |
retries = retries || 0;
|
522 |
|
523 |
// Stop running import
|
524 |
-
if (this.
|
525 |
return;
|
526 |
}
|
527 |
|
@@ -548,14 +602,34 @@ Import.prototype.blogs = function (options, retries) {
|
|
548 |
if (result) {
|
549 |
self.run(result);
|
550 |
}
|
551 |
-
}).fail(function () {
|
552 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
if (retries >= 5) {
|
554 |
-
|
|
|
555 |
type: 'error',
|
556 |
title: ai1wm_locale.unable_to_import,
|
557 |
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
558 |
});
|
|
|
559 |
}
|
560 |
|
561 |
retries++;
|
@@ -568,8 +642,10 @@ Import.prototype.clean = function (options, retries) {
|
|
568 |
var self = this;
|
569 |
retries = retries || 0;
|
570 |
|
571 |
-
//
|
572 |
-
|
|
|
|
|
573 |
|
574 |
// Set initial status
|
575 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_import });
|
@@ -597,14 +673,34 @@ Import.prototype.clean = function (options, retries) {
|
|
597 |
|
598 |
// Destroy modal
|
599 |
self.modal.destroy();
|
600 |
-
}).fail(function () {
|
601 |
var timeout = retries * 1000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
602 |
if (retries >= 5) {
|
603 |
-
|
|
|
604 |
type: 'error',
|
605 |
title: ai1wm_locale.unable_to_import,
|
606 |
message: ai1wm_locale.unable_to_stop_the_import
|
607 |
});
|
|
|
608 |
}
|
609 |
|
610 |
retries++;
|
@@ -617,11 +713,11 @@ Import.prototype.getStatus = function () {
|
|
617 |
var self = this;
|
618 |
|
619 |
// Stop getting status
|
620 |
-
if (this.
|
621 |
return;
|
622 |
}
|
623 |
|
624 |
-
$.ajax({
|
625 |
url: ai1wm_import.status.url,
|
626 |
type: 'GET',
|
627 |
dataType: 'json',
|
@@ -671,6 +767,20 @@ Import.prototype.onStop = function (options) {
|
|
671 |
this.clean(options);
|
672 |
};
|
673 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
674 |
module.exports = Import;
|
675 |
|
676 |
/***/ }),
|
@@ -764,7 +874,8 @@ var Modal = function Modal() {
|
|
764 |
|
765 |
// Update progress bar percent
|
766 |
if (this.progress.progressBarPercent) {
|
767 |
-
|
|
|
768 |
}
|
769 |
|
770 |
// Create the modal container
|
350 |
// Set params
|
351 |
this.params = [];
|
352 |
|
|
|
|
|
|
|
353 |
// Set modal
|
354 |
this.modal = new Modal();
|
355 |
|
377 |
var self = this;
|
378 |
retries = retries || 0;
|
379 |
|
380 |
+
// Reset stop flag
|
381 |
if (retries === 0) {
|
382 |
+
this.stopImport(false);
|
383 |
}
|
384 |
|
385 |
// Stop running import
|
386 |
+
if (this.isImportStopped()) {
|
387 |
return;
|
388 |
}
|
389 |
|
418 |
if (result) {
|
419 |
self.run(result);
|
420 |
}
|
421 |
+
}).fail(function (xhr) {
|
422 |
var timeout = retries * 1000;
|
423 |
+
|
424 |
+
try {
|
425 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
426 |
+
if (json) {
|
427 |
+
var result = JSON.parse(json);
|
428 |
+
var error = result.errors.pop();
|
429 |
+
if (error.message) {
|
430 |
+
self.stopImport(true);
|
431 |
+
self.setStatus({
|
432 |
+
type: 'error',
|
433 |
+
title: ai1wm_locale.unable_to_import,
|
434 |
+
message: error.message
|
435 |
+
});
|
436 |
+
return;
|
437 |
+
}
|
438 |
+
}
|
439 |
+
} catch (e) {}
|
440 |
+
|
441 |
if (retries >= 5) {
|
442 |
+
self.stopImport(true);
|
443 |
+
self.setStatus({
|
444 |
type: 'error',
|
445 |
title: ai1wm_locale.unable_to_import,
|
446 |
message: ai1wm_locale.unable_to_start_the_import
|
447 |
});
|
448 |
+
return;
|
449 |
}
|
450 |
|
451 |
retries++;
|
459 |
retries = retries || 0;
|
460 |
|
461 |
// Stop running import
|
462 |
+
if (this.isImportStopped()) {
|
463 |
return;
|
464 |
}
|
465 |
|
476 |
if (result) {
|
477 |
self.run(result);
|
478 |
}
|
479 |
+
}).fail(function (xhr) {
|
480 |
var timeout = retries * 1000;
|
481 |
|
482 |
+
try {
|
483 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
484 |
+
if (json) {
|
485 |
+
var result = JSON.parse(json);
|
486 |
+
var error = result.errors.pop();
|
487 |
+
if (error.message) {
|
488 |
+
self.stopImport(true);
|
489 |
+
self.setStatus({
|
490 |
+
type: 'error',
|
491 |
+
title: ai1wm_locale.unable_to_import,
|
492 |
+
message: error.message
|
493 |
+
});
|
494 |
+
return;
|
495 |
+
}
|
496 |
+
}
|
497 |
+
} catch (e) {}
|
498 |
+
|
499 |
retries++;
|
500 |
|
501 |
setTimeout(self.run.bind(self, params, retries), timeout);
|
507 |
retries = retries || 0;
|
508 |
|
509 |
// Stop running import
|
510 |
+
if (this.isImportStopped()) {
|
511 |
return;
|
512 |
}
|
513 |
|
534 |
if (result) {
|
535 |
self.run(result);
|
536 |
}
|
537 |
+
}).fail(function (xhr) {
|
538 |
var timeout = retries * 1000;
|
539 |
+
|
540 |
+
try {
|
541 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
542 |
+
if (json) {
|
543 |
+
var result = JSON.parse(json);
|
544 |
+
var error = result.errors.pop();
|
545 |
+
if (error.message) {
|
546 |
+
self.stopImport(true);
|
547 |
+
self.setStatus({
|
548 |
+
type: 'error',
|
549 |
+
title: ai1wm_locale.unable_to_import,
|
550 |
+
message: error.message
|
551 |
+
});
|
552 |
+
return;
|
553 |
+
}
|
554 |
+
}
|
555 |
+
} catch (e) {}
|
556 |
+
|
557 |
if (retries >= 5) {
|
558 |
+
self.stopImport(true);
|
559 |
+
self.setStatus({
|
560 |
type: 'error',
|
561 |
title: ai1wm_locale.unable_to_import,
|
562 |
message: ai1wm_locale.unable_to_confirm_the_import
|
563 |
});
|
564 |
+
return;
|
565 |
}
|
566 |
|
567 |
retries++;
|
575 |
retries = retries || 0;
|
576 |
|
577 |
// Stop running import
|
578 |
+
if (this.isImportStopped()) {
|
579 |
return;
|
580 |
}
|
581 |
|
602 |
if (result) {
|
603 |
self.run(result);
|
604 |
}
|
605 |
+
}).fail(function (xhr) {
|
606 |
var timeout = retries * 1000;
|
607 |
+
|
608 |
+
try {
|
609 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
610 |
+
if (json) {
|
611 |
+
var result = JSON.parse(json);
|
612 |
+
var error = result.errors.pop();
|
613 |
+
if (error.message) {
|
614 |
+
self.stopImport(true);
|
615 |
+
self.setStatus({
|
616 |
+
type: 'error',
|
617 |
+
title: ai1wm_locale.unable_to_import,
|
618 |
+
message: error.message
|
619 |
+
});
|
620 |
+
return;
|
621 |
+
}
|
622 |
+
}
|
623 |
+
} catch (e) {}
|
624 |
+
|
625 |
if (retries >= 5) {
|
626 |
+
self.stopImport(true);
|
627 |
+
self.setStatus({
|
628 |
type: 'error',
|
629 |
title: ai1wm_locale.unable_to_import,
|
630 |
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
631 |
});
|
632 |
+
return;
|
633 |
}
|
634 |
|
635 |
retries++;
|
642 |
var self = this;
|
643 |
retries = retries || 0;
|
644 |
|
645 |
+
// Reset stop flag
|
646 |
+
if (retries === 0) {
|
647 |
+
this.stopImport(true);
|
648 |
+
}
|
649 |
|
650 |
// Set initial status
|
651 |
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_import });
|
673 |
|
674 |
// Destroy modal
|
675 |
self.modal.destroy();
|
676 |
+
}).fail(function (xhr) {
|
677 |
var timeout = retries * 1000;
|
678 |
+
|
679 |
+
try {
|
680 |
+
var json = Ai1wm.Util.json(xhr.responseText);
|
681 |
+
if (json) {
|
682 |
+
var result = JSON.parse(json);
|
683 |
+
var error = result.errors.pop();
|
684 |
+
if (error.message) {
|
685 |
+
self.stopImport(true);
|
686 |
+
self.setStatus({
|
687 |
+
type: 'error',
|
688 |
+
title: ai1wm_locale.unable_to_import,
|
689 |
+
message: error.message
|
690 |
+
});
|
691 |
+
return;
|
692 |
+
}
|
693 |
+
}
|
694 |
+
} catch (e) {}
|
695 |
+
|
696 |
if (retries >= 5) {
|
697 |
+
self.stopImport(true);
|
698 |
+
self.setStatus({
|
699 |
type: 'error',
|
700 |
title: ai1wm_locale.unable_to_import,
|
701 |
message: ai1wm_locale.unable_to_stop_the_import
|
702 |
});
|
703 |
+
return;
|
704 |
}
|
705 |
|
706 |
retries++;
|
713 |
var self = this;
|
714 |
|
715 |
// Stop getting status
|
716 |
+
if (this.isImportStopped()) {
|
717 |
return;
|
718 |
}
|
719 |
|
720 |
+
this.statusXhr = $.ajax({
|
721 |
url: ai1wm_import.status.url,
|
722 |
type: 'GET',
|
723 |
dataType: 'json',
|
767 |
this.clean(options);
|
768 |
};
|
769 |
|
770 |
+
Import.prototype.stopImport = function (isStopped) {
|
771 |
+
try {
|
772 |
+
if (isStopped) {
|
773 |
+
this.statusXhr.abort();
|
774 |
+
}
|
775 |
+
} finally {
|
776 |
+
this.isStopped = isStopped;
|
777 |
+
}
|
778 |
+
};
|
779 |
+
|
780 |
+
Import.prototype.isImportStopped = function () {
|
781 |
+
return this.isStopped;
|
782 |
+
};
|
783 |
+
|
784 |
module.exports = Import;
|
785 |
|
786 |
/***/ }),
|
874 |
|
875 |
// Update progress bar percent
|
876 |
if (this.progress.progressBarPercent) {
|
877 |
+
this.progress.progressBarPercent.text(params.percent + '%');
|
878 |
+
return;
|
879 |
}
|
880 |
|
881 |
// Create the modal container
|
lib/view/main/backups-htaccess-notice.php
CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> file. ' .
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
lib/view/main/backups-index-notice.php
CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> file. ' .
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
lib/view/main/backups-path-notice.php
CHANGED
@@ -33,9 +33,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'You will need to create this folder and grant it read/write/execute permissions (0777) ' .
|
38 |
-
'for the All
|
39 |
AI1WM_PLUGIN_NAME
|
40 |
),
|
41 |
AI1WM_BACKUPS_PATH
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> folder. ' .
|
37 |
'You will need to create this folder and grant it read/write/execute permissions (0777) ' .
|
38 |
+
'for the All-in-One WP Migration plugin to function properly.',
|
39 |
AI1WM_PLUGIN_NAME
|
40 |
),
|
41 |
AI1WM_BACKUPS_PATH
|
lib/view/main/backups-webconfig-notice.php
CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> file. ' .
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
lib/view/main/multisite-notice.php
CHANGED
@@ -32,7 +32,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
32 |
<p>
|
33 |
<?php
|
34 |
_e(
|
35 |
-
'WordPress Multisite is supported via our All
|
36 |
'You can get a copy of it here',
|
37 |
AI1WM_PLUGIN_NAME
|
38 |
);
|
32 |
<p>
|
33 |
<?php
|
34 |
_e(
|
35 |
+
'WordPress Multisite is supported via our All-in-One WP Migration Multisite Extension. ' .
|
36 |
'You can get a copy of it here',
|
37 |
AI1WM_PLUGIN_NAME
|
38 |
);
|
lib/view/main/storage-index-notice.php
CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> file. ' .
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
lib/view/main/storage-path-notice.php
CHANGED
@@ -33,9 +33,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'You will need to create this folder and grant it read/write/execute permissions (0777) ' .
|
38 |
-
'for the All
|
39 |
AI1WM_PLUGIN_NAME
|
40 |
),
|
41 |
AI1WM_STORAGE_PATH
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> folder. ' .
|
37 |
'You will need to create this folder and grant it read/write/execute permissions (0777) ' .
|
38 |
+
'for the All-in-One WP Migration plugin to function properly.',
|
39 |
AI1WM_PLUGIN_NAME
|
40 |
),
|
41 |
AI1WM_STORAGE_PATH
|
lib/view/main/wordpress-htaccess-notice.php
CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
-
'All
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
33 |
<?php
|
34 |
printf(
|
35 |
__(
|
36 |
+
'All-in-One WP Migration is not able to create <strong>%s</strong> file. ' .
|
37 |
'Try to change permissions of the parent folder or send us an email at ' .
|
38 |
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
39 |
AI1WM_PLUGIN_NAME
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: move, transfer, copy, migrate, backup, clone, restore, db migration, wordp
|
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 5.3
|
6 |
Requires PHP: 5.2.17
|
7 |
-
Stable tag: 7.
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
|
@@ -108,6 +108,11 @@ Alternatively you can download the plugin using the download button on this page
|
|
108 |
All-in-One WP Migration **asks for your consent** to collect **requester's email address** when filling plugin's contact form. [GDPR Compliant Privacy Policy](https://www.iubenda.com/privacy-policy/946881)
|
109 |
|
110 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
111 |
= 7.11 =
|
112 |
**Added**
|
113 |
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 5.3
|
6 |
Requires PHP: 5.2.17
|
7 |
+
Stable tag: 7.12
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
|
108 |
All-in-One WP Migration **asks for your consent** to collect **requester's email address** when filling plugin's contact form. [GDPR Compliant Privacy Policy](https://www.iubenda.com/privacy-policy/946881)
|
109 |
|
110 |
== Changelog ==
|
111 |
+
= 7.12 =
|
112 |
+
**Added**
|
113 |
+
|
114 |
+
* Display a message when MySQL server [exceeds a limit](https://help.servmask.com/knowledgebase/mysql-error-codes/)
|
115 |
+
|
116 |
= 7.11 =
|
117 |
**Added**
|
118 |
|