All-in-One WP Migration - Version 7.9

Version Description

Added

  • Uploads, plugins, and themes path to the backup

Removed

  • Sorting of active plugins on import
Download this release

Release Info

Developer bangelov
Plugin Icon 128x128 All-in-One WP Migration
Version 7.9
Comparing to
See all releases

Code changes from version 7.8 to 7.9

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.8
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.9
9
  * Text Domain: all-in-one-wp-migration
10
  * Domain Path: /languages
11
  * Network: True
constants.php CHANGED
@@ -35,7 +35,7 @@ define( 'AI1WM_DEBUG', false );
35
  // ==================
36
  // = Plugin Version =
37
  // ==================
38
- define( 'AI1WM_VERSION', '7.8' );
39
 
40
  // ===============
41
  // = Plugin Name =
35
  // ==================
36
  // = Plugin Version =
37
  // ==================
38
+ define( 'AI1WM_VERSION', '7.9' );
39
 
40
  // ===============
41
  // = Plugin Name =
functions.php CHANGED
@@ -997,8 +997,6 @@ function ai1wm_activate_plugins( $plugins ) {
997
  }
998
  }
999
 
1000
- sort( $current );
1001
-
1002
  return update_option( AI1WM_ACTIVE_PLUGINS, $current );
1003
  }
1004
 
@@ -1076,8 +1074,6 @@ function ai1wm_deactivate_plugins( $plugins ) {
1076
  }
1077
  }
1078
 
1079
- sort( $current );
1080
-
1081
  return update_option( AI1WM_ACTIVE_PLUGINS, $current );
1082
  }
1083
 
@@ -1097,8 +1093,6 @@ function ai1wm_deactivate_jetpack_modules( $modules ) {
1097
  }
1098
  }
1099
 
1100
- sort( $current );
1101
-
1102
  return update_option( AI1WM_JETPACK_ACTIVE_MODULES, $current );
1103
  }
1104
 
@@ -1581,6 +1575,19 @@ function ai1wm_get_filters( $tag ) {
1581
  return $filters;
1582
  }
1583
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1584
  /**
1585
  * i18n friendly version of basename()
1586
  *
997
  }
998
  }
999
 
 
 
1000
  return update_option( AI1WM_ACTIVE_PLUGINS, $current );
1001
  }
1002
 
1074
  }
1075
  }
1076
 
 
 
1077
  return update_option( AI1WM_ACTIVE_PLUGINS, $current );
1078
  }
1079
 
1093
  }
1094
  }
1095
 
 
 
1096
  return update_option( AI1WM_JETPACK_ACTIVE_MODULES, $current );
1097
  }
1098
 
1575
  return $filters;
1576
  }
1577
 
1578
+ /**
1579
+ * Get WordPress uploads directory
1580
+ *
1581
+ * @return string
1582
+ */
1583
+ function ai1wm_get_uploads_dir() {
1584
+ if ( ( $upload_dir = wp_upload_dir() ) ) {
1585
+ if ( isset( $upload_dir['basedir'] ) ) {
1586
+ return $upload_dir['basedir'];
1587
+ }
1588
+ }
1589
+ }
1590
+
1591
  /**
1592
  * i18n friendly version of basename()
1593
  *
lib/model/class-ai1wm-extensions.php CHANGED
@@ -201,7 +201,7 @@ class Ai1wm_Extensions {
201
  'about' => AI1WMME_PLUGIN_ABOUT,
202
  'basename' => AI1WMME_PLUGIN_BASENAME,
203
  'version' => AI1WMME_VERSION,
204
- 'requires' => '3.76',
205
  'short' => AI1WMME_PLUGIN_SHORT,
206
  );
207
  }
201
  'about' => AI1WMME_PLUGIN_ABOUT,
202
  'basename' => AI1WMME_PLUGIN_BASENAME,
203
  'version' => AI1WMME_VERSION,
204
+ 'requires' => '3.82',
205
  'short' => AI1WMME_PLUGIN_SHORT,
206
  );
207
  }
lib/model/export/class-ai1wm-export-config.php CHANGED
@@ -132,13 +132,13 @@ class Ai1wm_Export_Config {
132
  $config['Plugin'] = array( 'Version' => AI1WM_VERSION );
133
 
134
  // Set WordPress version and content
135
- $config['WordPress'] = array( 'Version' => $wp_version, 'Content' => WP_CONTENT_DIR );
136
 
137
  // Set database version
138
  $config['Database'] = array( 'Version' => $mysql->version(), 'Charset' => DB_CHARSET, 'Collate' => DB_COLLATE );
139
 
140
  // Set PHP version
141
- $config['PHP'] = array( 'Version' => PHP_VERSION );
142
 
143
  // Set active plugins
144
  $config['Plugins'] = array_values( array_diff( ai1wm_active_plugins(), ai1wm_active_servmask_plugins() ) );
132
  $config['Plugin'] = array( 'Version' => AI1WM_VERSION );
133
 
134
  // Set WordPress version and content
135
+ $config['WordPress'] = array( 'Version' => $wp_version, 'Content' => WP_CONTENT_DIR, 'Plugins' => WP_PLUGIN_DIR, 'Themes' => get_theme_root(), 'Uploads' => ai1wm_get_uploads_dir() );
136
 
137
  // Set database version
138
  $config['Database'] = array( 'Version' => $mysql->version(), 'Charset' => DB_CHARSET, 'Collate' => DB_COLLATE );
139
 
140
  // Set PHP version
141
+ $config['PHP'] = array( 'Version' => PHP_VERSION, 'Integer' => PHP_INT_SIZE );
142
 
143
  // Set active plugins
144
  $config['Plugins'] = array_values( array_diff( ai1wm_active_plugins(), ai1wm_active_servmask_plugins() ) );
lib/view/assets/javascript/backups.min.js CHANGED
@@ -126,7 +126,7 @@ jQuery(document).ready(function ($) {
126
 
127
  // Idea
128
 
129
- $('#ai1wm-feedback-type-link-1').click(function (e) {
130
  var radio = $('#ai1wm-feedback-type-1');
131
  if (radio.is(':checked')) {
132
  radio.attr('checked', false);
@@ -175,13 +175,13 @@ jQuery(document).ready(function ($) {
175
  dataType: 'json',
176
  async: true,
177
  data: {
178
- 'secret_key': ai1wm_feedback.secret_key,
179
- 'ai1wm_type': type,
180
- 'ai1wm_email': email,
181
- 'ai1wm_message': message,
182
- 'ai1wm_terms': +terms
183
  },
184
- dataFilter: function dataFilter(data, type) {
185
  return Ai1wm.Util.json(data);
186
  }
187
  }).done(function (data) {
@@ -272,12 +272,12 @@ jQuery(document).ready(function ($) {
272
  dataType: 'json',
273
  async: true,
274
  data: {
275
- 'secret_key': ai1wm_report.secret_key,
276
- 'ai1wm_email': email,
277
- 'ai1wm_message': message,
278
- 'ai1wm_terms': +terms
279
  },
280
- dataFilter: function dataFilter(data, type) {
281
  return Ai1wm.Util.json(data);
282
  }
283
  }).done(function (data) {
@@ -378,7 +378,7 @@ Import.prototype.setParams = function (params) {
378
 
379
  Import.prototype.start = function (options, retries) {
380
  var self = this;
381
- var retries = retries || 0;
382
 
383
  // Set stop flag
384
  if (retries === 0) {
@@ -412,14 +412,14 @@ Import.prototype.start = function (options, retries) {
412
  type: 'POST',
413
  dataType: 'json',
414
  data: params,
415
- dataFilter: function dataFilter(data, type) {
416
  return Ai1wm.Util.json(data);
417
  }
418
  }).done(function () {
419
  self.getStatus();
420
- }).done(function (params) {
421
- if (params) {
422
- self.run(params);
423
  }
424
  }).fail(function () {
425
  var timeout = retries * 1000;
@@ -439,7 +439,7 @@ Import.prototype.start = function (options, retries) {
439
 
440
  Import.prototype.run = function (params, retries) {
441
  var self = this;
442
- var retries = retries || 0;
443
 
444
  // Stop running import
445
  if (this.stopImport) {
@@ -452,12 +452,12 @@ Import.prototype.run = function (params, retries) {
452
  type: 'POST',
453
  dataType: 'json',
454
  data: params,
455
- dataFilter: function dataFilter(data, type) {
456
  return Ai1wm.Util.json(data);
457
  }
458
- }).done(function (params) {
459
- if (params) {
460
- self.run(params);
461
  }
462
  }).fail(function () {
463
  var timeout = retries * 1000;
@@ -470,7 +470,7 @@ Import.prototype.run = function (params, retries) {
470
 
471
  Import.prototype.confirm = function (options, retries) {
472
  var self = this;
473
- var retries = retries || 0;
474
 
475
  // Stop running import
476
  if (this.stopImport) {
@@ -491,14 +491,14 @@ Import.prototype.confirm = function (options, retries) {
491
  type: 'POST',
492
  dataType: 'json',
493
  data: params,
494
- dataFilter: function dataFilter(data, type) {
495
  return Ai1wm.Util.json(data);
496
  }
497
  }).done(function () {
498
  self.getStatus();
499
- }).done(function (params) {
500
- if (params) {
501
- self.run(params);
502
  }
503
  }).fail(function () {
504
  var timeout = retries * 1000;
@@ -518,7 +518,7 @@ Import.prototype.confirm = function (options, retries) {
518
 
519
  Import.prototype.blogs = function (options, retries) {
520
  var self = this;
521
- var retries = retries || 0;
522
 
523
  // Stop running import
524
  if (this.stopImport) {
@@ -539,14 +539,14 @@ Import.prototype.blogs = function (options, retries) {
539
  type: 'POST',
540
  dataType: 'json',
541
  data: params,
542
- dataFilter: function dataFilter(data, type) {
543
  return Ai1wm.Util.json(data);
544
  }
545
  }).done(function () {
546
  self.getStatus();
547
- }).done(function (params) {
548
- if (params) {
549
- self.run(params);
550
  }
551
  }).fail(function () {
552
  var timeout = retries * 1000;
@@ -566,7 +566,7 @@ Import.prototype.blogs = function (options, retries) {
566
 
567
  Import.prototype.clean = function (options, retries) {
568
  var self = this;
569
- var retries = retries || 0;
570
 
571
  // Set stop flag
572
  this.stopImport = true;
@@ -588,7 +588,7 @@ Import.prototype.clean = function (options, retries) {
588
  type: 'POST',
589
  dataType: 'json',
590
  data: params,
591
- dataFilter: function dataFilter(data, type) {
592
  return Ai1wm.Util.json(data);
593
  }
594
  }).done(function () {
@@ -626,7 +626,7 @@ Import.prototype.getStatus = function () {
626
  type: 'GET',
627
  dataType: 'json',
628
  cache: false,
629
- dataFilter: function dataFilter(data, type) {
630
  return Ai1wm.Util.json(data);
631
  }
632
  }).done(function (params) {
@@ -652,7 +652,7 @@ Import.prototype.getStatus = function () {
652
  }).fail(function () {
653
  // Import is not done yet, let's check status in 3 seconds
654
  setTimeout(self.getStatus.bind(self), 3000);
655
- });;
656
  };
657
 
658
  Import.prototype.setStatus = function (params) {
@@ -712,7 +712,6 @@ var Modal = function Modal() {
712
 
713
  // Error Modal
714
  this.error = function (params) {
715
-
716
  // Create the modal container
717
  var container = $('<div></div>');
718
 
@@ -760,14 +759,12 @@ var Modal = function Modal() {
760
  // Progress Modal
761
  this.progress = function (params) {
762
  if (this.view === 'progress') {
763
-
764
  // Update progress bar meter
765
  this.progress.progressBarMeter.width(params.percent + '%');
766
 
767
  // Update progress bar percent
768
  this.progress.progressBarPercent.text(params.percent + '%');
769
  } else {
770
-
771
  // Create the modal container
772
  var container = $('<div></div>');
773
 
@@ -777,9 +774,6 @@ var Modal = function Modal() {
777
  // Create header to hold progress bar
778
  var header = $('<h1></h1>');
779
 
780
- // Create paragraph to hold mesage
781
- var message = $('<p></p>');
782
-
783
  // Create action section
784
  var action = $('<div></div>');
785
 
@@ -825,7 +819,6 @@ var Modal = function Modal() {
825
 
826
  // Pro Modal
827
  this.pro = function (params) {
828
-
829
  // Create the modal container
830
  var container = $('<div></div>');
831
 
@@ -872,7 +865,6 @@ var Modal = function Modal() {
872
 
873
  // Confirm Modal
874
  this.confirm = function (params) {
875
-
876
  // Create the modal container
877
  var container = $('<div></div>');
878
 
@@ -932,7 +924,6 @@ var Modal = function Modal() {
932
 
933
  // Blogs Modal
934
  this.blogs = function (params) {
935
-
936
  // Create the modal container
937
  var container = $('<form></form>');
938
 
@@ -980,7 +971,6 @@ var Modal = function Modal() {
980
 
981
  // Info Modal
982
  this.info = function (params) {
983
-
984
  // Create the modal container
985
  var container = $('<div></div>');
986
 
@@ -1028,7 +1018,6 @@ var Modal = function Modal() {
1028
 
1029
  // Done Modal
1030
  this.done = function (params) {
1031
-
1032
  // Create the modal container
1033
  var container = $('<div></div>');
1034
 
@@ -1084,7 +1073,6 @@ var Modal = function Modal() {
1084
  };
1085
 
1086
  Modal.prototype.render = function (params) {
1087
-
1088
  // Show modal
1089
  switch (params.type) {
1090
  case 'pro':
@@ -1184,7 +1172,7 @@ Export.prototype.setParams = function (params) {
1184
 
1185
  Export.prototype.start = function (options, retries) {
1186
  var self = this;
1187
- var retries = retries || 0;
1188
 
1189
  // Set stop flag
1190
  if (retries === 0) {
@@ -1218,14 +1206,14 @@ Export.prototype.start = function (options, retries) {
1218
  type: 'POST',
1219
  dataType: 'json',
1220
  data: params,
1221
- dataFilter: function dataFilter(data, type) {
1222
  return Ai1wm.Util.json(data);
1223
  }
1224
  }).done(function () {
1225
  self.getStatus();
1226
- }).done(function (params) {
1227
- if (params) {
1228
- self.run(params);
1229
  }
1230
  }).fail(function () {
1231
  var timeout = retries * 1000;
@@ -1245,7 +1233,7 @@ Export.prototype.start = function (options, retries) {
1245
 
1246
  Export.prototype.run = function (params, retries) {
1247
  var self = this;
1248
- var retries = retries || 0;
1249
 
1250
  // Stop running export
1251
  if (this.stopExport) {
@@ -1258,12 +1246,12 @@ Export.prototype.run = function (params, retries) {
1258
  type: 'POST',
1259
  dataType: 'json',
1260
  data: params,
1261
- dataFilter: function dataFilter(data, type) {
1262
  return Ai1wm.Util.json(data);
1263
  }
1264
- }).done(function (params) {
1265
- if (params) {
1266
- self.run(params);
1267
  }
1268
  }).fail(function () {
1269
  var timeout = retries * 1000;
@@ -1283,7 +1271,7 @@ Export.prototype.run = function (params, retries) {
1283
 
1284
  Export.prototype.clean = function (options, retries) {
1285
  var self = this;
1286
- var retries = retries || 0;
1287
 
1288
  // Set stop flag
1289
  this.stopExport = true;
@@ -1305,7 +1293,7 @@ Export.prototype.clean = function (options, retries) {
1305
  type: 'POST',
1306
  dataType: 'json',
1307
  data: params,
1308
- dataFilter: function dataFilter(data, type) {
1309
  return Ai1wm.Util.json(data);
1310
  }
1311
  }).done(function () {
@@ -1343,7 +1331,7 @@ Export.prototype.getStatus = function () {
1343
  type: 'GET',
1344
  dataType: 'json',
1345
  cache: false,
1346
- dataFilter: function dataFilter(data, type) {
1347
  return Ai1wm.Util.json(data);
1348
  }
1349
  }).done(function (params) {
@@ -1417,7 +1405,6 @@ var Modal = function Modal() {
1417
 
1418
  // Error Modal
1419
  this.error = function (params) {
1420
-
1421
  // Create the modal container
1422
  var container = $('<div></div>');
1423
 
@@ -1464,7 +1451,6 @@ var Modal = function Modal() {
1464
 
1465
  // Info Modal
1466
  this.info = function (params) {
1467
-
1468
  // Create the modal container
1469
  var container = $('<div></div>');
1470
 
@@ -1512,7 +1498,6 @@ var Modal = function Modal() {
1512
 
1513
  // Done Modal
1514
  this.done = function (params) {
1515
-
1516
  // Create the modal container
1517
  var container = $('<div></div>');
1518
 
@@ -1559,16 +1544,12 @@ var Modal = function Modal() {
1559
 
1560
  // Download Modal
1561
  this.download = function (params) {
1562
-
1563
  // Create the modal container
1564
  var container = $('<div></div>');
1565
 
1566
  // Create section to hold title, message and action
1567
  var section = $('<section></section>');
1568
 
1569
- // Create header to hold title
1570
- var header = $('<h1></h1>');
1571
-
1572
  // Create paragraph to hold mesage
1573
  var message = $('<p></p>').html(params.message);
1574
 
@@ -1692,16 +1673,18 @@ jQuery(document).ready(function ($) {
1692
  var self = $(this);
1693
 
1694
  // Delete file
 
1695
  if (confirm(ai1wm_locale.want_to_delete_this_file)) {
 
1696
  $.ajax({
1697
  url: ai1wm_backups.ajax.url,
1698
  type: 'POST',
1699
  dataType: 'json',
1700
  data: {
1701
- 'secret_key': ai1wm_backups.secret_key,
1702
- 'archive': self.data('archive')
1703
  },
1704
- dataFilter: function dataFilter(data, type) {
1705
  return Ai1wm.Util.json(data);
1706
  }
1707
  }).done(function (data) {
@@ -1725,15 +1708,17 @@ jQuery(document).ready(function ($) {
1725
  $('#ai1wm-backups-list').on('click', '.ai1wm-backup-restore', function (e) {
1726
  e.preventDefault();
1727
 
1728
- if (!!Ai1wm.MultisiteExtensionRestore) {
 
1729
  var restore = new Ai1wm.MultisiteExtensionRestore($(this).data('archive'));
1730
- } else if (!!Ai1wm.UnlimitedExtensionRestore) {
1731
- var restore = new Ai1wm.UnlimitedExtensionRestore($(this).data('archive'));
1732
- } else if (!!Ai1wm.FreeExtensionRestore) {
1733
- var restore = new Ai1wm.FreeExtensionRestore($(this).data('archive'));
1734
  } else {
1735
- var restore = new Ai1wm.Restore($(this).data('archive'));
1736
  }
 
1737
  });
1738
 
1739
  $('#ai1wm-backups-list').on('click', '.ai1wm-backup-label-description, .ai1wm-backup-label-text', function () {
@@ -1757,11 +1742,11 @@ jQuery(document).ready(function ($) {
1757
  type: 'POST',
1758
  dataType: 'json',
1759
  data: {
1760
- 'secret_key': ai1wm_backups.secret_key,
1761
- 'archive': self.data('archive'),
1762
- 'label': self.val()
1763
  },
1764
- dataFilter: function dataFilter(data, type) {
1765
  return Ai1wm.Util.json(data);
1766
  }
1767
  }).done(function (data) {
@@ -1814,7 +1799,7 @@ jQuery(document).ready(function ($) {
1814
  }
1815
  });
1816
 
1817
- var model = new Export();
1818
 
1819
  $('#ai1wm-create-backup').click(function (e) {
1820
  var storage = Ai1wm.Util.random(12);
@@ -1864,7 +1849,7 @@ global.Ai1wm = jQuery.extend({}, global.Ai1wm, { Feedback: Feedback, Report: Rep
1864
  * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
1865
  */
1866
  var Import = __webpack_require__(3);
1867
- var Restore = function Restore(archive) {
1868
  var model = new Import();
1869
  model.setStatus({ type: 'pro', message: ai1wm_locale.restore_from_file });
1870
  };
126
 
127
  // Idea
128
 
129
+ $('#ai1wm-feedback-type-link-1').click(function () {
130
  var radio = $('#ai1wm-feedback-type-1');
131
  if (radio.is(':checked')) {
132
  radio.attr('checked', false);
175
  dataType: 'json',
176
  async: true,
177
  data: {
178
+ secret_key: ai1wm_feedback.secret_key,
179
+ ai1wm_type: type,
180
+ ai1wm_email: email,
181
+ ai1wm_message: message,
182
+ ai1wm_terms: +terms
183
  },
184
+ dataFilter: function dataFilter(data) {
185
  return Ai1wm.Util.json(data);
186
  }
187
  }).done(function (data) {
272
  dataType: 'json',
273
  async: true,
274
  data: {
275
+ secret_key: ai1wm_report.secret_key,
276
+ ai1wm_email: email,
277
+ ai1wm_message: message,
278
+ ai1wm_terms: +terms
279
  },
280
+ dataFilter: function dataFilter(data) {
281
  return Ai1wm.Util.json(data);
282
  }
283
  }).done(function (data) {
378
 
379
  Import.prototype.start = function (options, retries) {
380
  var self = this;
381
+ retries = retries || 0;
382
 
383
  // Set stop flag
384
  if (retries === 0) {
412
  type: 'POST',
413
  dataType: 'json',
414
  data: params,
415
+ dataFilter: function dataFilter(data) {
416
  return Ai1wm.Util.json(data);
417
  }
418
  }).done(function () {
419
  self.getStatus();
420
+ }).done(function (result) {
421
+ if (result) {
422
+ self.run(result);
423
  }
424
  }).fail(function () {
425
  var timeout = retries * 1000;
439
 
440
  Import.prototype.run = function (params, retries) {
441
  var self = this;
442
+ retries = retries || 0;
443
 
444
  // Stop running import
445
  if (this.stopImport) {
452
  type: 'POST',
453
  dataType: 'json',
454
  data: params,
455
+ dataFilter: function dataFilter(data) {
456
  return Ai1wm.Util.json(data);
457
  }
458
+ }).done(function (result) {
459
+ if (result) {
460
+ self.run(result);
461
  }
462
  }).fail(function () {
463
  var timeout = retries * 1000;
470
 
471
  Import.prototype.confirm = function (options, retries) {
472
  var self = this;
473
+ retries = retries || 0;
474
 
475
  // Stop running import
476
  if (this.stopImport) {
491
  type: 'POST',
492
  dataType: 'json',
493
  data: params,
494
+ dataFilter: function dataFilter(data) {
495
  return Ai1wm.Util.json(data);
496
  }
497
  }).done(function () {
498
  self.getStatus();
499
+ }).done(function (result) {
500
+ if (result) {
501
+ self.run(result);
502
  }
503
  }).fail(function () {
504
  var timeout = retries * 1000;
518
 
519
  Import.prototype.blogs = function (options, retries) {
520
  var self = this;
521
+ retries = retries || 0;
522
 
523
  // Stop running import
524
  if (this.stopImport) {
539
  type: 'POST',
540
  dataType: 'json',
541
  data: params,
542
+ dataFilter: function dataFilter(data) {
543
  return Ai1wm.Util.json(data);
544
  }
545
  }).done(function () {
546
  self.getStatus();
547
+ }).done(function (result) {
548
+ if (result) {
549
+ self.run(result);
550
  }
551
  }).fail(function () {
552
  var timeout = retries * 1000;
566
 
567
  Import.prototype.clean = function (options, retries) {
568
  var self = this;
569
+ retries = retries || 0;
570
 
571
  // Set stop flag
572
  this.stopImport = true;
588
  type: 'POST',
589
  dataType: 'json',
590
  data: params,
591
+ dataFilter: function dataFilter(data) {
592
  return Ai1wm.Util.json(data);
593
  }
594
  }).done(function () {
626
  type: 'GET',
627
  dataType: 'json',
628
  cache: false,
629
+ dataFilter: function dataFilter(data) {
630
  return Ai1wm.Util.json(data);
631
  }
632
  }).done(function (params) {
652
  }).fail(function () {
653
  // Import is not done yet, let's check status in 3 seconds
654
  setTimeout(self.getStatus.bind(self), 3000);
655
+ });
656
  };
657
 
658
  Import.prototype.setStatus = function (params) {
712
 
713
  // Error Modal
714
  this.error = function (params) {
 
715
  // Create the modal container
716
  var container = $('<div></div>');
717
 
759
  // Progress Modal
760
  this.progress = function (params) {
761
  if (this.view === 'progress') {
 
762
  // Update progress bar meter
763
  this.progress.progressBarMeter.width(params.percent + '%');
764
 
765
  // Update progress bar percent
766
  this.progress.progressBarPercent.text(params.percent + '%');
767
  } else {
 
768
  // Create the modal container
769
  var container = $('<div></div>');
770
 
774
  // Create header to hold progress bar
775
  var header = $('<h1></h1>');
776
 
 
 
 
777
  // Create action section
778
  var action = $('<div></div>');
779
 
819
 
820
  // Pro Modal
821
  this.pro = function (params) {
 
822
  // Create the modal container
823
  var container = $('<div></div>');
824
 
865
 
866
  // Confirm Modal
867
  this.confirm = function (params) {
 
868
  // Create the modal container
869
  var container = $('<div></div>');
870
 
924
 
925
  // Blogs Modal
926
  this.blogs = function (params) {
 
927
  // Create the modal container
928
  var container = $('<form></form>');
929
 
971
 
972
  // Info Modal
973
  this.info = function (params) {
 
974
  // Create the modal container
975
  var container = $('<div></div>');
976
 
1018
 
1019
  // Done Modal
1020
  this.done = function (params) {
 
1021
  // Create the modal container
1022
  var container = $('<div></div>');
1023
 
1073
  };
1074
 
1075
  Modal.prototype.render = function (params) {
 
1076
  // Show modal
1077
  switch (params.type) {
1078
  case 'pro':
1172
 
1173
  Export.prototype.start = function (options, retries) {
1174
  var self = this;
1175
+ retries = retries || 0;
1176
 
1177
  // Set stop flag
1178
  if (retries === 0) {
1206
  type: 'POST',
1207
  dataType: 'json',
1208
  data: params,
1209
+ dataFilter: function dataFilter(data) {
1210
  return Ai1wm.Util.json(data);
1211
  }
1212
  }).done(function () {
1213
  self.getStatus();
1214
+ }).done(function (result) {
1215
+ if (result) {
1216
+ self.run(result);
1217
  }
1218
  }).fail(function () {
1219
  var timeout = retries * 1000;
1233
 
1234
  Export.prototype.run = function (params, retries) {
1235
  var self = this;
1236
+ retries = retries || 0;
1237
 
1238
  // Stop running export
1239
  if (this.stopExport) {
1246
  type: 'POST',
1247
  dataType: 'json',
1248
  data: params,
1249
+ dataFilter: function dataFilter(data) {
1250
  return Ai1wm.Util.json(data);
1251
  }
1252
+ }).done(function (result) {
1253
+ if (result) {
1254
+ self.run(result);
1255
  }
1256
  }).fail(function () {
1257
  var timeout = retries * 1000;
1271
 
1272
  Export.prototype.clean = function (options, retries) {
1273
  var self = this;
1274
+ retries = retries || 0;
1275
 
1276
  // Set stop flag
1277
  this.stopExport = true;
1293
  type: 'POST',
1294
  dataType: 'json',
1295
  data: params,
1296
+ dataFilter: function dataFilter(data) {
1297
  return Ai1wm.Util.json(data);
1298
  }
1299
  }).done(function () {
1331
  type: 'GET',
1332
  dataType: 'json',
1333
  cache: false,
1334
+ dataFilter: function dataFilter(data) {
1335
  return Ai1wm.Util.json(data);
1336
  }
1337
  }).done(function (params) {
1405
 
1406
  // Error Modal
1407
  this.error = function (params) {
 
1408
  // Create the modal container
1409
  var container = $('<div></div>');
1410
 
1451
 
1452
  // Info Modal
1453
  this.info = function (params) {
 
1454
  // Create the modal container
1455
  var container = $('<div></div>');
1456
 
1498
 
1499
  // Done Modal
1500
  this.done = function (params) {
 
1501
  // Create the modal container
1502
  var container = $('<div></div>');
1503
 
1544
 
1545
  // Download Modal
1546
  this.download = function (params) {
 
1547
  // Create the modal container
1548
  var container = $('<div></div>');
1549
 
1550
  // Create section to hold title, message and action
1551
  var section = $('<section></section>');
1552
 
 
 
 
1553
  // Create paragraph to hold mesage
1554
  var message = $('<p></p>').html(params.message);
1555
 
1673
  var self = $(this);
1674
 
1675
  // Delete file
1676
+ /* eslint-disable no-alert */
1677
  if (confirm(ai1wm_locale.want_to_delete_this_file)) {
1678
+ /* eslint-enable no-alert */
1679
  $.ajax({
1680
  url: ai1wm_backups.ajax.url,
1681
  type: 'POST',
1682
  dataType: 'json',
1683
  data: {
1684
+ secret_key: ai1wm_backups.secret_key,
1685
+ archive: self.data('archive')
1686
  },
1687
+ dataFilter: function dataFilter(data) {
1688
  return Ai1wm.Util.json(data);
1689
  }
1690
  }).done(function (data) {
1708
  $('#ai1wm-backups-list').on('click', '.ai1wm-backup-restore', function (e) {
1709
  e.preventDefault();
1710
 
1711
+ /* eslint-disable no-unused-vars */
1712
+ if (Ai1wm.MultisiteExtensionRestore) {
1713
  var restore = new Ai1wm.MultisiteExtensionRestore($(this).data('archive'));
1714
+ } else if (Ai1wm.UnlimitedExtensionRestore) {
1715
+ var _restore = new Ai1wm.UnlimitedExtensionRestore($(this).data('archive'));
1716
+ } else if (Ai1wm.FreeExtensionRestore) {
1717
+ var _restore2 = new Ai1wm.FreeExtensionRestore($(this).data('archive'));
1718
  } else {
1719
+ var _restore3 = new Ai1wm.Restore($(this).data('archive'));
1720
  }
1721
+ /* eslint-enable no-unused-vars */
1722
  });
1723
 
1724
  $('#ai1wm-backups-list').on('click', '.ai1wm-backup-label-description, .ai1wm-backup-label-text', function () {
1742
  type: 'POST',
1743
  dataType: 'json',
1744
  data: {
1745
+ secret_key: ai1wm_backups.secret_key,
1746
+ archive: self.data('archive'),
1747
+ label: self.val()
1748
  },
1749
+ dataFilter: function dataFilter(data) {
1750
  return Ai1wm.Util.json(data);
1751
  }
1752
  }).done(function (data) {
1799
  }
1800
  });
1801
 
1802
+ model = new Export();
1803
 
1804
  $('#ai1wm-create-backup').click(function (e) {
1805
  var storage = Ai1wm.Util.random(12);
1849
  * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
1850
  */
1851
  var Import = __webpack_require__(3);
1852
+ var Restore = function Restore() {
1853
  var model = new Import();
1854
  model.setStatus({ type: 'pro', message: ai1wm_locale.restore_from_file });
1855
  };
lib/view/assets/javascript/export.min.js CHANGED
@@ -126,7 +126,7 @@ jQuery(document).ready(function ($) {
126
 
127
  // Idea
128
 
129
- $('#ai1wm-feedback-type-link-1').click(function (e) {
130
  var radio = $('#ai1wm-feedback-type-1');
131
  if (radio.is(':checked')) {
132
  radio.attr('checked', false);
@@ -175,13 +175,13 @@ jQuery(document).ready(function ($) {
175
  dataType: 'json',
176
  async: true,
177
  data: {
178
- 'secret_key': ai1wm_feedback.secret_key,
179
- 'ai1wm_type': type,
180
- 'ai1wm_email': email,
181
- 'ai1wm_message': message,
182
- 'ai1wm_terms': +terms
183
  },
184
- dataFilter: function dataFilter(data, type) {
185
  return Ai1wm.Util.json(data);
186
  }
187
  }).done(function (data) {
@@ -272,12 +272,12 @@ jQuery(document).ready(function ($) {
272
  dataType: 'json',
273
  async: true,
274
  data: {
275
- 'secret_key': ai1wm_report.secret_key,
276
- 'ai1wm_email': email,
277
- 'ai1wm_message': message,
278
- 'ai1wm_terms': +terms
279
  },
280
- dataFilter: function dataFilter(data, type) {
281
  return Ai1wm.Util.json(data);
282
  }
283
  }).done(function (data) {
@@ -370,7 +370,7 @@ Export.prototype.setParams = function (params) {
370
 
371
  Export.prototype.start = function (options, retries) {
372
  var self = this;
373
- var retries = retries || 0;
374
 
375
  // Set stop flag
376
  if (retries === 0) {
@@ -404,14 +404,14 @@ Export.prototype.start = function (options, retries) {
404
  type: 'POST',
405
  dataType: 'json',
406
  data: params,
407
- dataFilter: function dataFilter(data, type) {
408
  return Ai1wm.Util.json(data);
409
  }
410
  }).done(function () {
411
  self.getStatus();
412
- }).done(function (params) {
413
- if (params) {
414
- self.run(params);
415
  }
416
  }).fail(function () {
417
  var timeout = retries * 1000;
@@ -431,7 +431,7 @@ Export.prototype.start = function (options, retries) {
431
 
432
  Export.prototype.run = function (params, retries) {
433
  var self = this;
434
- var retries = retries || 0;
435
 
436
  // Stop running export
437
  if (this.stopExport) {
@@ -444,12 +444,12 @@ Export.prototype.run = function (params, retries) {
444
  type: 'POST',
445
  dataType: 'json',
446
  data: params,
447
- dataFilter: function dataFilter(data, type) {
448
  return Ai1wm.Util.json(data);
449
  }
450
- }).done(function (params) {
451
- if (params) {
452
- self.run(params);
453
  }
454
  }).fail(function () {
455
  var timeout = retries * 1000;
@@ -469,7 +469,7 @@ Export.prototype.run = function (params, retries) {
469
 
470
  Export.prototype.clean = function (options, retries) {
471
  var self = this;
472
- var retries = retries || 0;
473
 
474
  // Set stop flag
475
  this.stopExport = true;
@@ -491,7 +491,7 @@ Export.prototype.clean = function (options, retries) {
491
  type: 'POST',
492
  dataType: 'json',
493
  data: params,
494
- dataFilter: function dataFilter(data, type) {
495
  return Ai1wm.Util.json(data);
496
  }
497
  }).done(function () {
@@ -529,7 +529,7 @@ Export.prototype.getStatus = function () {
529
  type: 'GET',
530
  dataType: 'json',
531
  cache: false,
532
- dataFilter: function dataFilter(data, type) {
533
  return Ai1wm.Util.json(data);
534
  }
535
  }).done(function (params) {
@@ -603,7 +603,6 @@ var Modal = function Modal() {
603
 
604
  // Error Modal
605
  this.error = function (params) {
606
-
607
  // Create the modal container
608
  var container = $('<div></div>');
609
 
@@ -650,7 +649,6 @@ var Modal = function Modal() {
650
 
651
  // Info Modal
652
  this.info = function (params) {
653
-
654
  // Create the modal container
655
  var container = $('<div></div>');
656
 
@@ -698,7 +696,6 @@ var Modal = function Modal() {
698
 
699
  // Done Modal
700
  this.done = function (params) {
701
-
702
  // Create the modal container
703
  var container = $('<div></div>');
704
 
@@ -745,16 +742,12 @@ var Modal = function Modal() {
745
 
746
  // Download Modal
747
  this.download = function (params) {
748
-
749
  // Create the modal container
750
  var container = $('<div></div>');
751
 
752
  // Create section to hold title, message and action
753
  var section = $('<section></section>');
754
 
755
- // Create header to hold title
756
- var header = $('<h1></h1>');
757
-
758
  // Create paragraph to hold mesage
759
  var message = $('<p></p>').html(params.message);
760
 
@@ -929,8 +922,7 @@ global.Ai1wm = jQuery.extend({}, global.Ai1wm, { Query: Query, FindReplace: Find
929
  * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
930
  */
931
 
932
- ;(function ($) {
933
-
934
  $.fn.ai1wm_query = function () {
935
  var findInput = $(this).find('input.ai1wm-query-find-input'),
936
  replaceInput = $(this).find('input.ai1wm-query-replace-input'),
@@ -982,8 +974,7 @@ global.Ai1wm = jQuery.extend({}, global.Ai1wm, { Query: Query, FindReplace: Find
982
  * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
983
  */
984
 
985
- ;(function ($) {
986
-
987
  $.fn.ai1wm_find_replace = function () {
988
  $(this).click(function (e) {
989
  e.preventDefault();
126
 
127
  // Idea
128
 
129
+ $('#ai1wm-feedback-type-link-1').click(function () {
130
  var radio = $('#ai1wm-feedback-type-1');
131
  if (radio.is(':checked')) {
132
  radio.attr('checked', false);
175
  dataType: 'json',
176
  async: true,
177
  data: {
178
+ secret_key: ai1wm_feedback.secret_key,
179
+ ai1wm_type: type,
180
+ ai1wm_email: email,
181
+ ai1wm_message: message,
182
+ ai1wm_terms: +terms
183
  },
184
+ dataFilter: function dataFilter(data) {
185
  return Ai1wm.Util.json(data);
186
  }
187
  }).done(function (data) {
272
  dataType: 'json',
273
  async: true,
274
  data: {
275
+ secret_key: ai1wm_report.secret_key,
276
+ ai1wm_email: email,
277
+ ai1wm_message: message,
278
+ ai1wm_terms: +terms
279
  },
280
+ dataFilter: function dataFilter(data) {
281
  return Ai1wm.Util.json(data);
282
  }
283
  }).done(function (data) {
370
 
371
  Export.prototype.start = function (options, retries) {
372
  var self = this;
373
+ retries = retries || 0;
374
 
375
  // Set stop flag
376
  if (retries === 0) {
404
  type: 'POST',
405
  dataType: 'json',
406
  data: params,
407
+ dataFilter: function dataFilter(data) {
408
  return Ai1wm.Util.json(data);
409
  }
410
  }).done(function () {
411
  self.getStatus();
412
+ }).done(function (result) {
413
+ if (result) {
414
+ self.run(result);
415
  }
416
  }).fail(function () {
417
  var timeout = retries * 1000;
431
 
432
  Export.prototype.run = function (params, retries) {
433
  var self = this;
434
+ retries = retries || 0;
435
 
436
  // Stop running export
437
  if (this.stopExport) {
444
  type: 'POST',
445
  dataType: 'json',
446
  data: params,
447
+ dataFilter: function dataFilter(data) {
448
  return Ai1wm.Util.json(data);
449
  }
450
+ }).done(function (result) {
451
+ if (result) {
452
+ self.run(result);
453
  }
454
  }).fail(function () {
455
  var timeout = retries * 1000;
469
 
470
  Export.prototype.clean = function (options, retries) {
471
  var self = this;
472
+ retries = retries || 0;
473
 
474
  // Set stop flag
475
  this.stopExport = true;
491
  type: 'POST',
492
  dataType: 'json',
493
  data: params,
494
+ dataFilter: function dataFilter(data) {
495
  return Ai1wm.Util.json(data);
496
  }
497
  }).done(function () {
529
  type: 'GET',
530
  dataType: 'json',
531
  cache: false,
532
+ dataFilter: function dataFilter(data) {
533
  return Ai1wm.Util.json(data);
534
  }
535
  }).done(function (params) {
603
 
604
  // Error Modal
605
  this.error = function (params) {
 
606
  // Create the modal container
607
  var container = $('<div></div>');
608
 
649
 
650
  // Info Modal
651
  this.info = function (params) {
 
652
  // Create the modal container
653
  var container = $('<div></div>');
654
 
696
 
697
  // Done Modal
698
  this.done = function (params) {
 
699
  // Create the modal container
700
  var container = $('<div></div>');
701
 
742
 
743
  // Download Modal
744
  this.download = function (params) {
 
745
  // Create the modal container
746
  var container = $('<div></div>');
747
 
748
  // Create section to hold title, message and action
749
  var section = $('<section></section>');
750
 
 
 
 
751
  // Create paragraph to hold mesage
752
  var message = $('<p></p>').html(params.message);
753
 
922
  * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
923
  */
924
 
925
+ (function ($) {
 
926
  $.fn.ai1wm_query = function () {
927
  var findInput = $(this).find('input.ai1wm-query-find-input'),
928
  replaceInput = $(this).find('input.ai1wm-query-replace-input'),
974
  * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
975
  */
976
 
977
+ (function ($) {
 
978
  $.fn.ai1wm_find_replace = function () {
979
  $(this).click(function (e) {
980
  e.preventDefault();
lib/view/assets/javascript/import.min.js CHANGED
@@ -126,7 +126,7 @@ jQuery(document).ready(function ($) {
126
 
127
  // Idea
128
 
129
- $('#ai1wm-feedback-type-link-1').click(function (e) {
130
  var radio = $('#ai1wm-feedback-type-1');
131
  if (radio.is(':checked')) {
132
  radio.attr('checked', false);
@@ -175,13 +175,13 @@ jQuery(document).ready(function ($) {
175
  dataType: 'json',
176
  async: true,
177
  data: {
178
- 'secret_key': ai1wm_feedback.secret_key,
179
- 'ai1wm_type': type,
180
- 'ai1wm_email': email,
181
- 'ai1wm_message': message,
182
- 'ai1wm_terms': +terms
183
  },
184
- dataFilter: function dataFilter(data, type) {
185
  return Ai1wm.Util.json(data);
186
  }
187
  }).done(function (data) {
@@ -272,12 +272,12 @@ jQuery(document).ready(function ($) {
272
  dataType: 'json',
273
  async: true,
274
  data: {
275
- 'secret_key': ai1wm_report.secret_key,
276
- 'ai1wm_email': email,
277
- 'ai1wm_message': message,
278
- 'ai1wm_terms': +terms
279
  },
280
- dataFilter: function dataFilter(data, type) {
281
  return Ai1wm.Util.json(data);
282
  }
283
  }).done(function (data) {
@@ -378,7 +378,7 @@ Import.prototype.setParams = function (params) {
378
 
379
  Import.prototype.start = function (options, retries) {
380
  var self = this;
381
- var retries = retries || 0;
382
 
383
  // Set stop flag
384
  if (retries === 0) {
@@ -412,14 +412,14 @@ Import.prototype.start = function (options, retries) {
412
  type: 'POST',
413
  dataType: 'json',
414
  data: params,
415
- dataFilter: function dataFilter(data, type) {
416
  return Ai1wm.Util.json(data);
417
  }
418
  }).done(function () {
419
  self.getStatus();
420
- }).done(function (params) {
421
- if (params) {
422
- self.run(params);
423
  }
424
  }).fail(function () {
425
  var timeout = retries * 1000;
@@ -439,7 +439,7 @@ Import.prototype.start = function (options, retries) {
439
 
440
  Import.prototype.run = function (params, retries) {
441
  var self = this;
442
- var retries = retries || 0;
443
 
444
  // Stop running import
445
  if (this.stopImport) {
@@ -452,12 +452,12 @@ Import.prototype.run = function (params, retries) {
452
  type: 'POST',
453
  dataType: 'json',
454
  data: params,
455
- dataFilter: function dataFilter(data, type) {
456
  return Ai1wm.Util.json(data);
457
  }
458
- }).done(function (params) {
459
- if (params) {
460
- self.run(params);
461
  }
462
  }).fail(function () {
463
  var timeout = retries * 1000;
@@ -470,7 +470,7 @@ Import.prototype.run = function (params, retries) {
470
 
471
  Import.prototype.confirm = function (options, retries) {
472
  var self = this;
473
- var retries = retries || 0;
474
 
475
  // Stop running import
476
  if (this.stopImport) {
@@ -491,14 +491,14 @@ Import.prototype.confirm = function (options, retries) {
491
  type: 'POST',
492
  dataType: 'json',
493
  data: params,
494
- dataFilter: function dataFilter(data, type) {
495
  return Ai1wm.Util.json(data);
496
  }
497
  }).done(function () {
498
  self.getStatus();
499
- }).done(function (params) {
500
- if (params) {
501
- self.run(params);
502
  }
503
  }).fail(function () {
504
  var timeout = retries * 1000;
@@ -518,7 +518,7 @@ Import.prototype.confirm = function (options, retries) {
518
 
519
  Import.prototype.blogs = function (options, retries) {
520
  var self = this;
521
- var retries = retries || 0;
522
 
523
  // Stop running import
524
  if (this.stopImport) {
@@ -539,14 +539,14 @@ Import.prototype.blogs = function (options, retries) {
539
  type: 'POST',
540
  dataType: 'json',
541
  data: params,
542
- dataFilter: function dataFilter(data, type) {
543
  return Ai1wm.Util.json(data);
544
  }
545
  }).done(function () {
546
  self.getStatus();
547
- }).done(function (params) {
548
- if (params) {
549
- self.run(params);
550
  }
551
  }).fail(function () {
552
  var timeout = retries * 1000;
@@ -566,7 +566,7 @@ Import.prototype.blogs = function (options, retries) {
566
 
567
  Import.prototype.clean = function (options, retries) {
568
  var self = this;
569
- var retries = retries || 0;
570
 
571
  // Set stop flag
572
  this.stopImport = true;
@@ -588,7 +588,7 @@ Import.prototype.clean = function (options, retries) {
588
  type: 'POST',
589
  dataType: 'json',
590
  data: params,
591
- dataFilter: function dataFilter(data, type) {
592
  return Ai1wm.Util.json(data);
593
  }
594
  }).done(function () {
@@ -626,7 +626,7 @@ Import.prototype.getStatus = function () {
626
  type: 'GET',
627
  dataType: 'json',
628
  cache: false,
629
- dataFilter: function dataFilter(data, type) {
630
  return Ai1wm.Util.json(data);
631
  }
632
  }).done(function (params) {
@@ -652,7 +652,7 @@ Import.prototype.getStatus = function () {
652
  }).fail(function () {
653
  // Import is not done yet, let's check status in 3 seconds
654
  setTimeout(self.getStatus.bind(self), 3000);
655
- });;
656
  };
657
 
658
  Import.prototype.setStatus = function (params) {
@@ -712,7 +712,6 @@ var Modal = function Modal() {
712
 
713
  // Error Modal
714
  this.error = function (params) {
715
-
716
  // Create the modal container
717
  var container = $('<div></div>');
718
 
@@ -760,14 +759,12 @@ var Modal = function Modal() {
760
  // Progress Modal
761
  this.progress = function (params) {
762
  if (this.view === 'progress') {
763
-
764
  // Update progress bar meter
765
  this.progress.progressBarMeter.width(params.percent + '%');
766
 
767
  // Update progress bar percent
768
  this.progress.progressBarPercent.text(params.percent + '%');
769
  } else {
770
-
771
  // Create the modal container
772
  var container = $('<div></div>');
773
 
@@ -777,9 +774,6 @@ var Modal = function Modal() {
777
  // Create header to hold progress bar
778
  var header = $('<h1></h1>');
779
 
780
- // Create paragraph to hold mesage
781
- var message = $('<p></p>');
782
-
783
  // Create action section
784
  var action = $('<div></div>');
785
 
@@ -825,7 +819,6 @@ var Modal = function Modal() {
825
 
826
  // Pro Modal
827
  this.pro = function (params) {
828
-
829
  // Create the modal container
830
  var container = $('<div></div>');
831
 
@@ -872,7 +865,6 @@ var Modal = function Modal() {
872
 
873
  // Confirm Modal
874
  this.confirm = function (params) {
875
-
876
  // Create the modal container
877
  var container = $('<div></div>');
878
 
@@ -932,7 +924,6 @@ var Modal = function Modal() {
932
 
933
  // Blogs Modal
934
  this.blogs = function (params) {
935
-
936
  // Create the modal container
937
  var container = $('<form></form>');
938
 
@@ -980,7 +971,6 @@ var Modal = function Modal() {
980
 
981
  // Info Modal
982
  this.info = function (params) {
983
-
984
  // Create the modal container
985
  var container = $('<div></div>');
986
 
@@ -1028,7 +1018,6 @@ var Modal = function Modal() {
1028
 
1029
  // Done Modal
1030
  this.done = function (params) {
1031
-
1032
  // Create the modal container
1033
  var container = $('<div></div>');
1034
 
@@ -1084,7 +1073,6 @@ var Modal = function Modal() {
1084
  };
1085
 
1086
  Modal.prototype.render = function (params) {
1087
-
1088
  // Show modal
1089
  switch (params.type) {
1090
  case 'pro':
@@ -1172,14 +1160,15 @@ var FileUploader = __webpack_require__(13),
1172
  jQuery(document).ready(function ($) {
1173
  'use strict';
1174
 
1175
- if (!!Ai1wm.MultisiteExtensionUploader) {
1176
- var uploader = new Ai1wm.MultisiteExtensionUploader();
1177
- } else if (!!Ai1wm.UnlimitedExtensionUploader) {
1178
- var uploader = new Ai1wm.UnlimitedExtensionUploader();
1179
- } else if (!!Ai1wm.FileExtensionUploader) {
1180
- var uploader = new Ai1wm.FileExtensionUploader();
 
1181
  } else {
1182
- var uploader = new Ai1wm.FileUploader();
1183
  }
1184
 
1185
  uploader.init();
@@ -1314,7 +1303,7 @@ FileUploader.prototype.c1 = function (file) {
1314
  };
1315
 
1316
  // Check compatibility
1317
- FileUploader.prototype.c3 = function (file) {
1318
  if (ai1wm_compatibility.messages.length > 0) {
1319
  throw new Error(ai1wm_compatibility.messages.join());
1320
  }
@@ -1357,7 +1346,7 @@ FileUploader.prototype.onBeforeUpload = function (file) {
1357
  this.model.setStatus({ type: 'progress', percent: '0.00' });
1358
  };
1359
 
1360
- FileUploader.prototype.upload = function (file, retries) {
1361
  var self = this;
1362
 
1363
  var formData = new FormData();
@@ -1384,14 +1373,14 @@ FileUploader.prototype.upload = function (file, retries) {
1384
 
1385
  return handle;
1386
  },
1387
- success: function success(data, textStatus, jqXHR) {
1388
  if (self.stopUpload) {
1389
  return;
1390
  }
1391
 
1392
  self.onFileUploaded();
1393
  },
1394
- error: function error(jqXHR, textStatus, errorThrown) {
1395
  throw new Error(textStatus);
1396
  }
1397
  });
126
 
127
  // Idea
128
 
129
+ $('#ai1wm-feedback-type-link-1').click(function () {
130
  var radio = $('#ai1wm-feedback-type-1');
131
  if (radio.is(':checked')) {
132
  radio.attr('checked', false);
175
  dataType: 'json',
176
  async: true,
177
  data: {
178
+ secret_key: ai1wm_feedback.secret_key,
179
+ ai1wm_type: type,
180
+ ai1wm_email: email,
181
+ ai1wm_message: message,
182
+ ai1wm_terms: +terms
183
  },
184
+ dataFilter: function dataFilter(data) {
185
  return Ai1wm.Util.json(data);
186
  }
187
  }).done(function (data) {
272
  dataType: 'json',
273
  async: true,
274
  data: {
275
+ secret_key: ai1wm_report.secret_key,
276
+ ai1wm_email: email,
277
+ ai1wm_message: message,
278
+ ai1wm_terms: +terms
279
  },
280
+ dataFilter: function dataFilter(data) {
281
  return Ai1wm.Util.json(data);
282
  }
283
  }).done(function (data) {
378
 
379
  Import.prototype.start = function (options, retries) {
380
  var self = this;
381
+ retries = retries || 0;
382
 
383
  // Set stop flag
384
  if (retries === 0) {
412
  type: 'POST',
413
  dataType: 'json',
414
  data: params,
415
+ dataFilter: function dataFilter(data) {
416
  return Ai1wm.Util.json(data);
417
  }
418
  }).done(function () {
419
  self.getStatus();
420
+ }).done(function (result) {
421
+ if (result) {
422
+ self.run(result);
423
  }
424
  }).fail(function () {
425
  var timeout = retries * 1000;
439
 
440
  Import.prototype.run = function (params, retries) {
441
  var self = this;
442
+ retries = retries || 0;
443
 
444
  // Stop running import
445
  if (this.stopImport) {
452
  type: 'POST',
453
  dataType: 'json',
454
  data: params,
455
+ dataFilter: function dataFilter(data) {
456
  return Ai1wm.Util.json(data);
457
  }
458
+ }).done(function (result) {
459
+ if (result) {
460
+ self.run(result);
461
  }
462
  }).fail(function () {
463
  var timeout = retries * 1000;
470
 
471
  Import.prototype.confirm = function (options, retries) {
472
  var self = this;
473
+ retries = retries || 0;
474
 
475
  // Stop running import
476
  if (this.stopImport) {
491
  type: 'POST',
492
  dataType: 'json',
493
  data: params,
494
+ dataFilter: function dataFilter(data) {
495
  return Ai1wm.Util.json(data);
496
  }
497
  }).done(function () {
498
  self.getStatus();
499
+ }).done(function (result) {
500
+ if (result) {
501
+ self.run(result);
502
  }
503
  }).fail(function () {
504
  var timeout = retries * 1000;
518
 
519
  Import.prototype.blogs = function (options, retries) {
520
  var self = this;
521
+ retries = retries || 0;
522
 
523
  // Stop running import
524
  if (this.stopImport) {
539
  type: 'POST',
540
  dataType: 'json',
541
  data: params,
542
+ dataFilter: function dataFilter(data) {
543
  return Ai1wm.Util.json(data);
544
  }
545
  }).done(function () {
546
  self.getStatus();
547
+ }).done(function (result) {
548
+ if (result) {
549
+ self.run(result);
550
  }
551
  }).fail(function () {
552
  var timeout = retries * 1000;
566
 
567
  Import.prototype.clean = function (options, retries) {
568
  var self = this;
569
+ retries = retries || 0;
570
 
571
  // Set stop flag
572
  this.stopImport = true;
588
  type: 'POST',
589
  dataType: 'json',
590
  data: params,
591
+ dataFilter: function dataFilter(data) {
592
  return Ai1wm.Util.json(data);
593
  }
594
  }).done(function () {
626
  type: 'GET',
627
  dataType: 'json',
628
  cache: false,
629
+ dataFilter: function dataFilter(data) {
630
  return Ai1wm.Util.json(data);
631
  }
632
  }).done(function (params) {
652
  }).fail(function () {
653
  // Import is not done yet, let's check status in 3 seconds
654
  setTimeout(self.getStatus.bind(self), 3000);
655
+ });
656
  };
657
 
658
  Import.prototype.setStatus = function (params) {
712
 
713
  // Error Modal
714
  this.error = function (params) {
 
715
  // Create the modal container
716
  var container = $('<div></div>');
717
 
759
  // Progress Modal
760
  this.progress = function (params) {
761
  if (this.view === 'progress') {
 
762
  // Update progress bar meter
763
  this.progress.progressBarMeter.width(params.percent + '%');
764
 
765
  // Update progress bar percent
766
  this.progress.progressBarPercent.text(params.percent + '%');
767
  } else {
 
768
  // Create the modal container
769
  var container = $('<div></div>');
770
 
774
  // Create header to hold progress bar
775
  var header = $('<h1></h1>');
776
 
 
 
 
777
  // Create action section
778
  var action = $('<div></div>');
779
 
819
 
820
  // Pro Modal
821
  this.pro = function (params) {
 
822
  // Create the modal container
823
  var container = $('<div></div>');
824
 
865
 
866
  // Confirm Modal
867
  this.confirm = function (params) {
 
868
  // Create the modal container
869
  var container = $('<div></div>');
870
 
924
 
925
  // Blogs Modal
926
  this.blogs = function (params) {
 
927
  // Create the modal container
928
  var container = $('<form></form>');
929
 
971
 
972
  // Info Modal
973
  this.info = function (params) {
 
974
  // Create the modal container
975
  var container = $('<div></div>');
976
 
1018
 
1019
  // Done Modal
1020
  this.done = function (params) {
 
1021
  // Create the modal container
1022
  var container = $('<div></div>');
1023
 
1073
  };
1074
 
1075
  Modal.prototype.render = function (params) {
 
1076
  // Show modal
1077
  switch (params.type) {
1078
  case 'pro':
1160
  jQuery(document).ready(function ($) {
1161
  'use strict';
1162
 
1163
+ var uploader = void 0;
1164
+ if (Ai1wm.MultisiteExtensionUploader) {
1165
+ uploader = new Ai1wm.MultisiteExtensionUploader();
1166
+ } else if (Ai1wm.UnlimitedExtensionUploader) {
1167
+ uploader = new Ai1wm.UnlimitedExtensionUploader();
1168
+ } else if (Ai1wm.FileExtensionUploader) {
1169
+ uploader = new Ai1wm.FileExtensionUploader();
1170
  } else {
1171
+ uploader = new Ai1wm.FileUploader();
1172
  }
1173
 
1174
  uploader.init();
1303
  };
1304
 
1305
  // Check compatibility
1306
+ FileUploader.prototype.c3 = function () {
1307
  if (ai1wm_compatibility.messages.length > 0) {
1308
  throw new Error(ai1wm_compatibility.messages.join());
1309
  }
1346
  this.model.setStatus({ type: 'progress', percent: '0.00' });
1347
  };
1348
 
1349
+ FileUploader.prototype.upload = function (file) {
1350
  var self = this;
1351
 
1352
  var formData = new FormData();
1373
 
1374
  return handle;
1375
  },
1376
+ success: function success() {
1377
  if (self.stopUpload) {
1378
  return;
1379
  }
1380
 
1381
  self.onFileUploaded();
1382
  },
1383
+ error: function error(jqXHR, textStatus) {
1384
  throw new Error(textStatus);
1385
  }
1386
  });
lib/view/assets/javascript/settings.min.js CHANGED
@@ -128,7 +128,7 @@ jQuery(document).ready(function ($) {
128
 
129
  // Idea
130
 
131
- $('#ai1wm-feedback-type-link-1').click(function (e) {
132
  var radio = $('#ai1wm-feedback-type-1');
133
  if (radio.is(':checked')) {
134
  radio.attr('checked', false);
@@ -177,13 +177,13 @@ jQuery(document).ready(function ($) {
177
  dataType: 'json',
178
  async: true,
179
  data: {
180
- 'secret_key': ai1wm_feedback.secret_key,
181
- 'ai1wm_type': type,
182
- 'ai1wm_email': email,
183
- 'ai1wm_message': message,
184
- 'ai1wm_terms': +terms
185
  },
186
- dataFilter: function dataFilter(data, type) {
187
  return Ai1wm.Util.json(data);
188
  }
189
  }).done(function (data) {
@@ -246,7 +246,7 @@ jQuery(document).ready(function ($) {
246
  var Feedback = __webpack_require__(1),
247
  Report = __webpack_require__(2);
248
 
249
- jQuery(document).ready(function ($) {
250
  'use strict';
251
  });
252
 
@@ -317,12 +317,12 @@ jQuery(document).ready(function ($) {
317
  dataType: 'json',
318
  async: true,
319
  data: {
320
- 'secret_key': ai1wm_report.secret_key,
321
- 'ai1wm_email': email,
322
- 'ai1wm_message': message,
323
- 'ai1wm_terms': +terms
324
  },
325
- dataFilter: function dataFilter(data, type) {
326
  return Ai1wm.Util.json(data);
327
  }
328
  }).done(function (data) {
128
 
129
  // Idea
130
 
131
+ $('#ai1wm-feedback-type-link-1').click(function () {
132
  var radio = $('#ai1wm-feedback-type-1');
133
  if (radio.is(':checked')) {
134
  radio.attr('checked', false);
177
  dataType: 'json',
178
  async: true,
179
  data: {
180
+ secret_key: ai1wm_feedback.secret_key,
181
+ ai1wm_type: type,
182
+ ai1wm_email: email,
183
+ ai1wm_message: message,
184
+ ai1wm_terms: +terms
185
  },
186
+ dataFilter: function dataFilter(data) {
187
  return Ai1wm.Util.json(data);
188
  }
189
  }).done(function (data) {
246
  var Feedback = __webpack_require__(1),
247
  Report = __webpack_require__(2);
248
 
249
+ jQuery(document).ready(function () {
250
  'use strict';
251
  });
252
 
317
  dataType: 'json',
318
  async: true,
319
  data: {
320
+ secret_key: ai1wm_report.secret_key,
321
+ ai1wm_email: email,
322
+ ai1wm_message: message,
323
+ ai1wm_terms: +terms
324
  },
325
+ dataFilter: function dataFilter(data) {
326
  return Ai1wm.Util.json(data);
327
  }
328
  }).done(function (data) {
lib/view/assets/javascript/updater.min.js CHANGED
@@ -114,7 +114,7 @@ jQuery(document).ready(function ($) {
114
  url: 'https://servmask.com/purchase/' + purchaseId + '/check',
115
  type: 'GET',
116
  dataType: 'json',
117
- dataFilter: function dataFilter(data, type) {
118
  return Ai1wm.Util.json(data);
119
  }
120
  }).done(function (product) {
@@ -124,10 +124,10 @@ jQuery(document).ready(function ($) {
124
  type: 'POST',
125
  dataType: 'json',
126
  data: {
127
- 'ai1wm_uuid': product.uuid,
128
- 'ai1wm_extension': product.extension
129
  },
130
- dataFilter: function dataFilter(data, type) {
131
  return Ai1wm.Util.json(data);
132
  }
133
  }).done(function () {
114
  url: 'https://servmask.com/purchase/' + purchaseId + '/check',
115
  type: 'GET',
116
  dataType: 'json',
117
+ dataFilter: function dataFilter(data) {
118
  return Ai1wm.Util.json(data);
119
  }
120
  }).done(function (product) {
124
  type: 'POST',
125
  dataType: 'json',
126
  data: {
127
+ ai1wm_uuid: product.uuid,
128
+ ai1wm_extension: product.extension
129
  },
130
+ dataFilter: function dataFilter(data) {
131
  return Ai1wm.Util.json(data);
132
  }
133
  }).done(function () {
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: yani.iliev, bangelov, pimjitsawang
3
  Tags: move, transfer, copy, migrate, backup, clone, restore, db migration, wordpress migration, website migration, database export, database import, apoyo, sauvegarde, di riserva, バックアップ
4
  Requires at least: 3.3
5
- Tested up to: 5.2
6
  Requires PHP: 5.2.17
7
- Stable tag: 7.8
8
  License: GPLv2 or later
9
 
10
  Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
@@ -109,6 +109,15 @@ Alternatively you can download the plugin using the download button on this page
109
  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)
110
 
111
  == Changelog ==
 
 
 
 
 
 
 
 
 
112
  = 7.8 =
113
  **Added**
114
 
2
  Contributors: yani.iliev, bangelov, pimjitsawang
3
  Tags: move, transfer, copy, migrate, backup, clone, restore, db migration, wordpress migration, website migration, database export, database import, apoyo, sauvegarde, di riserva, バックアップ
4
  Requires at least: 3.3
5
+ Tested up to: 5.3
6
  Requires PHP: 5.2.17
7
+ Stable tag: 7.9
8
  License: GPLv2 or later
9
 
10
  Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
109
  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)
110
 
111
  == Changelog ==
112
+ = 7.9 =
113
+ **Added**
114
+
115
+ * Uploads, plugins, and themes path to the backup
116
+
117
+ **Removed**
118
+
119
+ * Sorting of active plugins on import
120
+
121
  = 7.8 =
122
  **Added**
123