1573 lines
50 KiB
JavaScript
1573 lines
50 KiB
JavaScript
/******/ (function() { // webpackBootstrap
|
|
/******/ var __webpack_modules__ = ({
|
|
|
|
/***/ 936:
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
/**
|
|
* Copyright (C) 2014-2023 ServMask Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
|
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
|
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
|
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
|
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
|
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
*/
|
|
var Modal = __webpack_require__(544),
|
|
$ = jQuery;
|
|
|
|
var Import = function Import() {
|
|
var self = this; // Set params
|
|
|
|
this.params = []; // Set modal
|
|
|
|
this.modal = new Modal(); // Set confirm listener
|
|
|
|
this.modal.onConfirm = function (options) {
|
|
self.onConfirm(options);
|
|
}; // Set blogs listener
|
|
|
|
|
|
this.modal.onBlogs = function (options) {
|
|
self.onBlogs(options);
|
|
}; // Set stop listener
|
|
|
|
|
|
this.modal.onStop = function (options) {
|
|
self.onStop(options);
|
|
}; // Set disk space listener
|
|
|
|
|
|
this.modal.onDiskSpaceConfirm = function (options) {
|
|
self.onDiskSpaceConfirm(options);
|
|
}; // Set decrypt password listener
|
|
|
|
|
|
this.modal.onDecryptPassword = function (password, options) {
|
|
self.onDecryptPassword(password, options);
|
|
};
|
|
};
|
|
|
|
Import.prototype.setParams = function (params) {
|
|
this.params = Ai1wm.Util.list(params);
|
|
};
|
|
|
|
Import.prototype.start = function (options, retries) {
|
|
var self = this;
|
|
retries = retries || 0; // Reset stop flag
|
|
|
|
if (retries === 0) {
|
|
this.stopImport(false);
|
|
} // Stop running import
|
|
|
|
|
|
if (this.isImportStopped()) {
|
|
return;
|
|
} // Initializing beforeunload event
|
|
|
|
|
|
$(window).bind('beforeunload', function () {
|
|
return ai1wm_locale.stop_importing_your_website;
|
|
}); // Set initial status
|
|
|
|
this.setStatus({
|
|
type: 'info',
|
|
message: ai1wm_locale.preparing_to_import
|
|
}); // Set params
|
|
|
|
var params = this.params.concat({
|
|
name: 'secret_key',
|
|
value: ai1wm_import.secret_key
|
|
}); // Set additional params
|
|
|
|
if (options) {
|
|
params = params.concat(Ai1wm.Util.list(options));
|
|
} // Import
|
|
|
|
|
|
$.ajax({
|
|
url: ai1wm_import.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: params,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function () {
|
|
self.getStatus();
|
|
}).done(function (result) {
|
|
if (result) {
|
|
self.run(result);
|
|
}
|
|
}).fail(function (xhr) {
|
|
var timeout = retries * 1000;
|
|
|
|
try {
|
|
var json = Ai1wm.Util.json(xhr.responseText);
|
|
|
|
if (json) {
|
|
var result = JSON.parse(json);
|
|
var error = result.errors.pop();
|
|
|
|
if (error.message) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
} catch (e) {}
|
|
|
|
if (retries >= 5) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: ai1wm_locale.unable_to_start_the_import
|
|
});
|
|
return;
|
|
}
|
|
|
|
retries++;
|
|
setTimeout(self.start.bind(self, options, retries), timeout);
|
|
});
|
|
};
|
|
|
|
Import.prototype.run = function (params, retries) {
|
|
var self = this;
|
|
retries = retries || 0; // Stop running import
|
|
|
|
if (this.isImportStopped()) {
|
|
return;
|
|
} // Import
|
|
|
|
|
|
$.ajax({
|
|
url: ai1wm_import.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: params,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function (result) {
|
|
if (result) {
|
|
self.run(result);
|
|
}
|
|
}).fail(function (xhr) {
|
|
var timeout = retries * 1000;
|
|
|
|
try {
|
|
var json = Ai1wm.Util.json(xhr.responseText);
|
|
|
|
if (json) {
|
|
var result = JSON.parse(json);
|
|
var error = result.errors.pop();
|
|
|
|
if (error.message) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
} catch (e) {}
|
|
|
|
retries++;
|
|
setTimeout(self.run.bind(self, params, retries), timeout);
|
|
});
|
|
};
|
|
|
|
Import.prototype.decryptPassword = function (options, password, retries) {
|
|
var self = this;
|
|
retries = retries || 0; // Stop running import
|
|
|
|
if (this.isImportStopped()) {
|
|
return;
|
|
}
|
|
|
|
this.params = this.params.concat({
|
|
name: 'decryption_password',
|
|
value: password
|
|
}); // Set params
|
|
|
|
var params = this.params.concat({
|
|
name: 'secret_key',
|
|
value: ai1wm_import.secret_key
|
|
}).concat({
|
|
name: 'priority',
|
|
value: 90
|
|
});
|
|
$.ajax({
|
|
url: ai1wm_import.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: params,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function () {
|
|
self.getStatus();
|
|
}).done(function (result) {
|
|
if (result) {
|
|
self.run(result);
|
|
}
|
|
}).fail(function (xhr) {
|
|
var timeout = retries * 1000;
|
|
|
|
try {
|
|
var json = Ai1wm.Util.json(xhr.responseText);
|
|
|
|
if (json) {
|
|
var result = JSON.parse(json);
|
|
var error = result.errors.pop();
|
|
|
|
if (error.message) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
} catch (e) {}
|
|
|
|
if (retries >= 5) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: ai1wm_locale.unable_to_check_decryption_password
|
|
});
|
|
return;
|
|
}
|
|
|
|
retries++;
|
|
setTimeout(self.decryptPassword.bind(self, options, password, retries), timeout);
|
|
});
|
|
};
|
|
|
|
Import.prototype.confirm = function (options, retries) {
|
|
var self = this;
|
|
retries = retries || 0; // Stop running import
|
|
|
|
if (this.isImportStopped()) {
|
|
return;
|
|
} // Set params
|
|
|
|
|
|
var params = this.params.concat({
|
|
name: 'secret_key',
|
|
value: ai1wm_import.secret_key
|
|
}).concat({
|
|
name: 'priority',
|
|
value: 150
|
|
}); // Set additional params
|
|
|
|
if (options) {
|
|
params = params.concat(Ai1wm.Util.list(options));
|
|
} // Confirm
|
|
|
|
|
|
$.ajax({
|
|
url: ai1wm_import.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: params,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function () {
|
|
self.getStatus();
|
|
}).done(function (result) {
|
|
if (result) {
|
|
self.run(result);
|
|
}
|
|
}).fail(function (xhr) {
|
|
var timeout = retries * 1000;
|
|
|
|
try {
|
|
var json = Ai1wm.Util.json(xhr.responseText);
|
|
|
|
if (json) {
|
|
var result = JSON.parse(json);
|
|
var error = result.errors.pop();
|
|
|
|
if (error.message) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
} catch (e) {}
|
|
|
|
if (retries >= 5) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: ai1wm_locale.unable_to_confirm_the_import
|
|
});
|
|
return;
|
|
}
|
|
|
|
retries++;
|
|
setTimeout(self.confirm.bind(self, options, retries), timeout);
|
|
});
|
|
};
|
|
|
|
Import.prototype.checkDiskSpace = function (fileSize, callback) {
|
|
this.diskSpaceCallback = callback;
|
|
var diskSpaceFree = parseInt(ai1wm_disk_space.free, 10);
|
|
var diskSpaceFactor = parseInt(ai1wm_disk_space.factor, 10);
|
|
var diskSpaceExtra = parseInt(ai1wm_disk_space.extra, 10);
|
|
|
|
if (diskSpaceFree >= 0) {
|
|
var diskSpaceRequired = fileSize * diskSpaceFactor + diskSpaceExtra;
|
|
|
|
if (diskSpaceRequired > diskSpaceFree) {
|
|
this.setStatus({
|
|
type: 'disk_space_confirm',
|
|
message: ai1wm_locale.out_of_disk_space.replace('%s', Ai1wm.Util.sizeFormat(diskSpaceRequired - diskSpaceFree))
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
|
|
callback();
|
|
};
|
|
|
|
Import.prototype.blogs = function (options, retries) {
|
|
var self = this;
|
|
retries = retries || 0; // Stop running import
|
|
|
|
if (this.isImportStopped()) {
|
|
return;
|
|
} // Set params
|
|
|
|
|
|
var params = this.params.concat({
|
|
name: 'secret_key',
|
|
value: ai1wm_import.secret_key
|
|
}).concat({
|
|
name: 'priority',
|
|
value: 150
|
|
}); // Set additional params
|
|
|
|
if (options) {
|
|
params = params.concat(Ai1wm.Util.list(options));
|
|
} // Blogs
|
|
|
|
|
|
$.ajax({
|
|
url: ai1wm_import.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: params,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function () {
|
|
self.getStatus();
|
|
}).done(function (result) {
|
|
if (result) {
|
|
self.run(result);
|
|
}
|
|
}).fail(function (xhr) {
|
|
var timeout = retries * 1000;
|
|
|
|
try {
|
|
var json = Ai1wm.Util.json(xhr.responseText);
|
|
|
|
if (json) {
|
|
var result = JSON.parse(json);
|
|
var error = result.errors.pop();
|
|
|
|
if (error.message) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
} catch (e) {}
|
|
|
|
if (retries >= 5) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
|
});
|
|
return;
|
|
}
|
|
|
|
retries++;
|
|
setTimeout(self.blogs.bind(self, options, retries), timeout);
|
|
});
|
|
};
|
|
|
|
Import.prototype.clean = function (options, retries) {
|
|
var self = this;
|
|
retries = retries || 0; // Reset stop flag
|
|
|
|
if (retries === 0) {
|
|
this.stopImport(true);
|
|
} // Set initial status
|
|
|
|
|
|
this.setStatus({
|
|
type: 'info',
|
|
message: ai1wm_locale.please_wait_stopping_the_import
|
|
}); // Set params
|
|
|
|
var params = this.params.concat({
|
|
name: 'secret_key',
|
|
value: ai1wm_import.secret_key
|
|
}).concat({
|
|
name: 'priority',
|
|
value: 400
|
|
}); // Set additional params
|
|
|
|
if (options) {
|
|
params = params.concat(Ai1wm.Util.list(options));
|
|
} // Clean
|
|
|
|
|
|
$.ajax({
|
|
url: ai1wm_import.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: params,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function () {
|
|
// Unbinding the beforeunload event when we stop importing
|
|
$(window).unbind('beforeunload'); // Destroy modal
|
|
|
|
self.modal.destroy();
|
|
}).fail(function (xhr) {
|
|
var timeout = retries * 1000;
|
|
|
|
try {
|
|
var json = Ai1wm.Util.json(xhr.responseText);
|
|
|
|
if (json) {
|
|
var result = JSON.parse(json);
|
|
var error = result.errors.pop();
|
|
|
|
if (error.message) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
} catch (e) {}
|
|
|
|
if (retries >= 5) {
|
|
self.stopImport(true);
|
|
self.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: ai1wm_locale.unable_to_stop_the_import
|
|
});
|
|
return;
|
|
}
|
|
|
|
retries++;
|
|
setTimeout(self.clean.bind(self, options, retries), timeout);
|
|
});
|
|
};
|
|
|
|
Import.prototype.getStatus = function () {
|
|
var self = this; // Stop getting status
|
|
|
|
if (this.isImportStopped()) {
|
|
return;
|
|
}
|
|
|
|
this.statusXhr = $.ajax({
|
|
url: ai1wm_import.status.url,
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
cache: false,
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function (params) {
|
|
if (params) {
|
|
self.setStatus(params); // Next status
|
|
|
|
switch (params.type) {
|
|
case 'done':
|
|
case 'error':
|
|
// Unbinding the beforeunload event when any case is performed
|
|
$(window).unbind('beforeunload');
|
|
return;
|
|
|
|
case 'confirm':
|
|
case 'disk_space_confirm':
|
|
case 'blogs':
|
|
case 'backup_is_encrypted':
|
|
return;
|
|
}
|
|
} // Import is not done yet, let's check status in 3 seconds
|
|
|
|
|
|
setTimeout(self.getStatus.bind(self), 3000);
|
|
}).fail(function () {
|
|
// Import is not done yet, let's check status in 3 seconds
|
|
setTimeout(self.getStatus.bind(self), 3000);
|
|
});
|
|
};
|
|
|
|
Import.prototype.setStatus = function (params) {
|
|
this.modal.render(params);
|
|
};
|
|
|
|
Import.prototype.onConfirm = function (options) {
|
|
this.confirm(options);
|
|
};
|
|
|
|
Import.prototype.onDecryptPassword = function (password, options) {
|
|
this.decryptPassword(options, password);
|
|
};
|
|
|
|
Import.prototype.onBlogs = function (options) {
|
|
this.blogs(options);
|
|
};
|
|
|
|
Import.prototype.onStop = function (options) {
|
|
this.clean(options);
|
|
};
|
|
|
|
Import.prototype.onDiskSpaceConfirm = function (options) {
|
|
this.diskSpaceCallback(options);
|
|
};
|
|
|
|
Import.prototype.stopImport = function (isStopped) {
|
|
try {
|
|
if (isStopped && this.statusXhr) {
|
|
this.statusXhr.abort();
|
|
}
|
|
} finally {
|
|
this.isStopped = isStopped;
|
|
}
|
|
};
|
|
|
|
Import.prototype.isImportStopped = function () {
|
|
return this.isStopped;
|
|
};
|
|
|
|
module.exports = Import;
|
|
|
|
/***/ }),
|
|
|
|
/***/ 544:
|
|
/***/ (function(module) {
|
|
|
|
/**
|
|
* Copyright (C) 2014-2023 ServMask Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
|
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
|
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
|
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
|
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
|
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
*/
|
|
var $ = jQuery;
|
|
|
|
var Modal = function Modal() {
|
|
var self = this; // Error Modal
|
|
|
|
this.error = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold title
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div></div>'); // Create title
|
|
|
|
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title); // Create close button
|
|
|
|
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
|
self.destroy();
|
|
}); // Append text to close button
|
|
|
|
closeButton.append(ai1wm_locale.close_import); // Append close button to action
|
|
|
|
action.append(closeButton); // Append title to section
|
|
|
|
header.append(title); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Progress Modal
|
|
|
|
|
|
this.progress = function (params) {
|
|
// Update progress bar meter
|
|
if (this.progress.progressBarMeter) {
|
|
this.progress.progressBarMeter.width(params.percent + '%');
|
|
} // Update progress bar percent
|
|
|
|
|
|
if (this.progress.progressBarPercent) {
|
|
this.progress.progressBarPercent.text(params.percent + '%');
|
|
return;
|
|
} // Create the modal container
|
|
|
|
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold progress bar
|
|
|
|
var header = $('<h1></h1>'); // Create action section
|
|
|
|
var action = $('<div></div>'); // Create progress bar
|
|
|
|
var progressBar = $('<span class="ai1wm-progress-bar"></span>'); // Create progress bar meter
|
|
|
|
this.progress.progressBarMeter = $('<span class="ai1wm-progress-bar-meter"></span>').width(params.percent + '%'); // Create progress bar percent
|
|
|
|
this.progress.progressBarPercent = $('<span class="ai1wm-progress-bar-percent"></span>').text(params.percent + '%'); // Create stop import
|
|
|
|
var stopButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
|
stopButton.attr('disabled', 'disabled');
|
|
self.onStop();
|
|
}); // Append text to stop button
|
|
|
|
stopButton.append('<i class="ai1wm-icon-notification"></i> ' + ai1wm_locale.stop_import); // Append progress meter and progress percent
|
|
|
|
progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent); // Append stop button to action
|
|
|
|
action.append(stopButton); // Append progress bar to section
|
|
|
|
header.append(progressBar); // Append header to section
|
|
|
|
section.append(header); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Pro Modal
|
|
|
|
|
|
this.pro = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold warning
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p class="ai1wm-import-modal-content"></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div></div>'); // Create warning
|
|
|
|
var warning = $('<i class="ai1wm-icon-notification"></i>'); // Create close button
|
|
|
|
var closeButton = $('<button type="button" class="ai1wm-button-gray"></button>').on('click', function () {
|
|
self.destroy();
|
|
}); // Append text to close button
|
|
|
|
closeButton.append(ai1wm_locale.close_import); // Append close button to action
|
|
|
|
action.append(closeButton); // Append warning to section
|
|
|
|
header.append(warning); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Confirm Modal
|
|
|
|
|
|
this.confirm = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold warning
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p class="ai1wm-import-modal-content"></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div class="ai1wm-import-modal-actions"></div>'); // Create warning
|
|
|
|
var warning = $('<i class="ai1wm-icon-notification"></i>'); // Create close button
|
|
|
|
var closeButton = $('<button type="button" class="ai1wm-button-gray"></button>').on('click', function () {
|
|
closeButton.attr('disabled', 'disabled');
|
|
self.onStop();
|
|
}); // Create confirm button
|
|
|
|
var confirmButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
|
confirmButton.attr('disabled', 'disabled');
|
|
self.onConfirm();
|
|
}); // Append text to close button
|
|
|
|
closeButton.append(ai1wm_locale.close_import); // Append text to confirm button
|
|
|
|
confirmButton.append(ai1wm_locale.confirm_import + ' >'); // Append close button to action
|
|
|
|
action.append(closeButton); // Append confirm button to action
|
|
|
|
action.append(confirmButton); // Append warning to section
|
|
|
|
header.append(warning); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Disk space Confirm Modal
|
|
|
|
|
|
this.diskSpaceConfirm = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold warning
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p class="ai1wm-import-modal-content"></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div class="ai1wm-import-modal-actions"></div>'); // Create warning
|
|
|
|
var warning = $('<i class="ai1wm-icon-notification"></i>'); // Create close button
|
|
|
|
var closeButton = $('<button type="button" class="ai1wm-button-gray"></button>').on('click', function () {
|
|
self.destroy();
|
|
}); // Create confirm button
|
|
|
|
var confirmButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
|
$(this).attr('disabled', 'disabled');
|
|
self.onDiskSpaceConfirm();
|
|
}); // Append text to close button
|
|
|
|
closeButton.append(ai1wm_locale.close_import); // Append text to confirm button
|
|
|
|
confirmButton.append(ai1wm_locale.confirm_disk_space); // Append close button to action
|
|
|
|
action.append(closeButton); // Append confirm button to action
|
|
|
|
action.append(confirmButton); // Append warning to section
|
|
|
|
header.append(warning); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Blogs Modal
|
|
|
|
|
|
this.blogs = function (params) {
|
|
// Create the modal container
|
|
var container = $('<form></form>').on('submit', function (e) {
|
|
e.preventDefault();
|
|
continueButton.attr('disabled', 'disabled');
|
|
self.onBlogs(container.serializeArray());
|
|
}); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold title
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div></div>'); // Create title
|
|
|
|
var title = $('<span></span>').addClass('ai1wm-title-grey').text(params.title); // Create continue button
|
|
|
|
var continueButton = $('<button type="submit" class="ai1wm-button-green"></button>'); // Append text to continue button
|
|
|
|
continueButton.append(ai1wm_locale.continue_import); // Append continue button to action
|
|
|
|
action.append(continueButton); // Append title to section
|
|
|
|
header.append(title); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Info Modal
|
|
|
|
|
|
this.info = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold loader
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div></div>'); // Create loader
|
|
|
|
var loader = $('<span class="ai1wm-loader"></span>'); // Create warning
|
|
|
|
var warning = $('<p></p>').html(ai1wm_locale.please_do_not_close_this_browser); // Create notice to be displayed during import process
|
|
|
|
var notice = $('<div class="ai1wm-import-modal-notice"></div>'); // Append warning to notice
|
|
|
|
notice.append(warning); // Append stop button to action
|
|
|
|
action.append(notice); // Append loader to header
|
|
|
|
header.append(loader); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Done Modal
|
|
|
|
|
|
this.done = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold title
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p class="ai1wm-import-modal-content-done"></p>').html(params.message); // Create action section
|
|
|
|
var action = $('<div class="ai1wm-import-modal-actions"></div>'); // Create title
|
|
|
|
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title); // Create close button
|
|
|
|
var closeButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
|
self.destroy();
|
|
}); // Append text to close button
|
|
|
|
closeButton.append(ai1wm_locale.finish_import + ' >'); // Append close button to action
|
|
|
|
action.append(closeButton); // Append title to section
|
|
|
|
header.append(title); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
};
|
|
|
|
this.backup_is_encrypted = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section class="ai1wm-decrypt-backup-section"></section>'); // Create header to hold title
|
|
|
|
var header = $('<h1></h1>').html(ai1wm_locale.backup_encrypted);
|
|
var message = $('<p class="ai1wm-import-decrypt-password-modal-content"></p>').html(ai1wm_locale.backup_encrypted_message);
|
|
var confirmButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
|
var password = $('#ai1wm-backup-decrypt-password');
|
|
var passwordConfirmation = $('#ai1wm-backup-decrypt-password-confirmation');
|
|
|
|
if (password.val().length && password.val() === passwordConfirmation.val()) {
|
|
confirmButton.attr('disabled', 'disabled');
|
|
self.onDecryptPassword(password.val());
|
|
} else {
|
|
passwordConfirmation.parent().addClass('ai1wm-has-error');
|
|
password.parent().addClass('ai1wm-has-error');
|
|
}
|
|
});
|
|
var closeButton = $('<button type="button" class="ai1wm-button-gray"></button>').on('click', function () {
|
|
closeButton.attr('disabled', 'disabled');
|
|
self.onStop();
|
|
});
|
|
var form = $('<form class="ai1wm-decrypt-form"></form>');
|
|
var passwordContainer = $('<div class="ai1wm-input-password-container"></div>');
|
|
var passwordInput = $('<input type="password" name="password" id="ai1wm-backup-decrypt-password" required />').prop('placeholder', ai1wm_locale.enter_password).on('keyup', function () {
|
|
var password = $(this);
|
|
var passwordConfirmation = $('#ai1wm-backup-decrypt-password-confirmation');
|
|
|
|
if (password.val() !== passwordConfirmation.val()) {
|
|
passwordConfirmation.parent().addClass('ai1wm-has-error');
|
|
password.parent().addClass('ai1wm-has-error');
|
|
} else {
|
|
password.parent().removeClass('ai1wm-has-error');
|
|
passwordConfirmation.parent().removeClass('ai1wm-has-error');
|
|
}
|
|
});
|
|
var passwordView = $('<a href="#ai1wm-backup-decrypt-password" class="ai1wm-toggle-password-visibility ai1wm-icon-eye-blocked"></a>').on('click', function () {
|
|
$(this).toggleClass('ai1wm-icon-eye ai1wm-icon-eye-blocked');
|
|
$(this).prev().prop('type', function (index, oldPropertyValue) {
|
|
return oldPropertyValue === 'text' ? 'password' : 'text';
|
|
});
|
|
return false;
|
|
});
|
|
passwordContainer.append(passwordInput).append(passwordView);
|
|
|
|
if (params.error) {
|
|
passwordContainer.addClass('ai1wm-has-error');
|
|
var passwordError = $('<div class="ai1wm-error-message"></div>').html(params.error);
|
|
passwordContainer.append(passwordError);
|
|
}
|
|
|
|
var passwordConfirmationContainer = $('<div class="ai1wm-input-password-container"></div>');
|
|
var passwordConfirmationInput = $('<input type="password" name="password_confirmation" id="ai1wm-backup-decrypt-password-confirmation" required />').prop('placeholder', ai1wm_locale.repeat_password).on('keyup', function () {
|
|
var passwordConfirmation = $(this);
|
|
var password = $('#ai1wm-backup-decrypt-password');
|
|
|
|
if (passwordInput.val() !== passwordConfirmation.val()) {
|
|
password.parent().addClass('ai1wm-has-error');
|
|
passwordConfirmation.parent().addClass('ai1wm-has-error');
|
|
} else {
|
|
password.parent().removeClass('ai1wm-has-error');
|
|
passwordConfirmation.parent().removeClass('ai1wm-has-error');
|
|
}
|
|
});
|
|
var passwordConfirmationView = $('<a href="#ai1wm-backup-decrypt-password-confirmation" class="ai1wm-toggle-password-visibility ai1wm-icon-eye-blocked"></a>').on('click', function () {
|
|
$(this).toggleClass('ai1wm-icon-eye ai1wm-icon-eye-blocked');
|
|
$(this).prev().prop('type', function (index, oldPropertyValue) {
|
|
return oldPropertyValue === 'text' ? 'password' : 'text';
|
|
});
|
|
return false;
|
|
});
|
|
var passwordConfirmationError = $('<div class="ai1wm-error-message"></div>').html(ai1wm_locale.passwords_do_not_match);
|
|
passwordConfirmationContainer.append(passwordConfirmationInput).append(passwordConfirmationView).append(passwordConfirmationError);
|
|
confirmButton.append(ai1wm_locale.submit);
|
|
closeButton.append(ai1wm_locale.close_import);
|
|
var buttonContainer = $('<div class="ai1wm-backup-decrypt-button-container"></div>');
|
|
buttonContainer.append(closeButton).append(confirmButton);
|
|
form.append(passwordContainer).append(passwordConfirmationContainer); // Append header and message to section
|
|
|
|
section.append(header).append(message).append(form).append(buttonContainer); // Append section and action to container
|
|
|
|
container.append(section); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Server cannot decrypt Modal
|
|
|
|
|
|
this.server_cannot_decrypt = function (params) {
|
|
// Create the modal container
|
|
var container = $('<div></div>'); // Create section to hold title, message and action
|
|
|
|
var section = $('<section></section>'); // Create header to hold title
|
|
|
|
var header = $('<h1></h1>'); // Create paragraph to hold mesage
|
|
|
|
var message = $('<p></p>').html(params.message); // Create warning
|
|
|
|
var warning = $('<i class="ai1wm-icon-notification"></i>'); // Create action section
|
|
|
|
var action = $('<div></div>'); // Create close button
|
|
|
|
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
|
closeButton.attr('disabled', 'disabled');
|
|
self.onStop();
|
|
}); // Append text to close button
|
|
|
|
closeButton.append(ai1wm_locale.close_import); // Append close button to action
|
|
|
|
action.append(closeButton); // Append warning to header
|
|
|
|
header.append(warning); // Append header and message to section
|
|
|
|
section.append(header).append(message); // Append section and action to container
|
|
|
|
container.append(section).append(action); // Render modal
|
|
|
|
self.modal.html(container).show();
|
|
self.modal.trigger('focus');
|
|
self.overlay.show();
|
|
}; // Create the overlay
|
|
|
|
|
|
this.overlay = $('<div class="ai1wm-overlay"></div>'); // Create the modal container
|
|
|
|
this.modal = $('<div class="ai1wm-modal-container" role="dialog" tabindex="-1"></div>');
|
|
$('body').append(this.overlay) // Append overlay to body
|
|
.append(this.modal); // Append modal to body
|
|
};
|
|
|
|
Modal.prototype.render = function (params) {
|
|
$(document).trigger('ai1wm-import-status', params); // Show modal
|
|
|
|
switch (params.type) {
|
|
case 'pro':
|
|
this.pro(params);
|
|
break;
|
|
|
|
case 'error':
|
|
this.error(params);
|
|
break;
|
|
|
|
case 'confirm':
|
|
this.confirm(params);
|
|
break;
|
|
|
|
case 'disk_space_confirm':
|
|
this.diskSpaceConfirm(params);
|
|
break;
|
|
|
|
case 'blogs':
|
|
this.blogs(params);
|
|
break;
|
|
|
|
case 'progress':
|
|
this.progress(params);
|
|
break;
|
|
|
|
case 'info':
|
|
this.info(params);
|
|
break;
|
|
|
|
case 'done':
|
|
this.done(params);
|
|
break;
|
|
|
|
case 'backup_is_encrypted':
|
|
this.backup_is_encrypted(params);
|
|
break;
|
|
|
|
case 'server_cannot_decrypt':
|
|
this.server_cannot_decrypt(params);
|
|
break;
|
|
}
|
|
};
|
|
|
|
Modal.prototype.destroy = function () {
|
|
this.modal.hide();
|
|
this.overlay.hide(); // Reset progress bar
|
|
|
|
this.progress.progressBarMeter = null;
|
|
this.progress.progressBarPercent = null;
|
|
};
|
|
|
|
module.exports = Modal;
|
|
|
|
/***/ }),
|
|
|
|
/***/ 814:
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
/**
|
|
* Copyright (C) 2014-2023 ServMask Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
|
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
|
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
|
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
|
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
|
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
*/
|
|
var Import = __webpack_require__(936),
|
|
$ = jQuery;
|
|
|
|
var FileUploader = function FileUploader() {};
|
|
|
|
FileUploader.prototype.setDefaultValues = function () {
|
|
this.model = new Import();
|
|
this.stopUpload = false;
|
|
};
|
|
|
|
FileUploader.prototype.init = function () {
|
|
var _this = this;
|
|
|
|
var formElement = $('#ai1wm-import-form');
|
|
var selectElement = $('#ai1wm-import-file');
|
|
var dropElement = $('#ai1wm-drag-drop-area');
|
|
selectElement.on('change', function (e) {
|
|
_this.setDefaultValues();
|
|
|
|
var file = e.target.files.item(0);
|
|
|
|
if (file) {
|
|
_this.fileSize = file.size;
|
|
|
|
if (_this.fileSize > ai1wm_uploader.max_file_size) {
|
|
_this.model.setStatus({
|
|
type: 'pro',
|
|
message: ai1wm_locale.import_from_file
|
|
});
|
|
} else {
|
|
_this.model.checkDiskSpace(_this.fileSize, function () {
|
|
try {
|
|
_this.onFilesAdded(file);
|
|
|
|
_this.onBeforeUpload(file);
|
|
|
|
_this.upload(file);
|
|
} catch (error) {
|
|
_this.onError(error);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
formElement.trigger('reset');
|
|
e.preventDefault();
|
|
});
|
|
dropElement.on('dragenter', function (e) {
|
|
dropElement.addClass('ai1wm-drag-over');
|
|
e.preventDefault();
|
|
});
|
|
dropElement.on('dragover', function (e) {
|
|
dropElement.addClass('ai1wm-drag-over');
|
|
e.preventDefault();
|
|
});
|
|
dropElement.on('dragleave', function (e) {
|
|
dropElement.removeClass('ai1wm-drag-over');
|
|
e.preventDefault();
|
|
});
|
|
dropElement.on('drop', function (e) {
|
|
_this.setDefaultValues();
|
|
|
|
dropElement.removeClass('ai1wm-drag-over');
|
|
var file = e.originalEvent.dataTransfer.files.item(0);
|
|
|
|
if (file) {
|
|
_this.fileSize = file.size;
|
|
|
|
if (_this.fileSize > ai1wm_uploader.max_file_size) {
|
|
_this.model.setStatus({
|
|
type: 'pro',
|
|
message: ai1wm_locale.import_from_file
|
|
});
|
|
} else {
|
|
_this.model.checkDiskSpace(_this.fileSize, function () {
|
|
try {
|
|
_this.onFilesAdded(file);
|
|
|
|
_this.onBeforeUpload(file);
|
|
|
|
_this.upload(file);
|
|
} catch (error) {
|
|
_this.onError(error);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
formElement.trigger('reset');
|
|
e.preventDefault();
|
|
});
|
|
}; // Check extension
|
|
|
|
|
|
FileUploader.prototype.c1 = function (file) {
|
|
if (file.name.substr(-6) !== 'wpress') {
|
|
throw new Error(ai1wm_locale.invalid_archive_extension);
|
|
}
|
|
}; // Check compatibility
|
|
|
|
|
|
FileUploader.prototype.c3 = function () {
|
|
if (ai1wm_compatibility.messages.length > 0) {
|
|
throw new Error(ai1wm_compatibility.messages.join());
|
|
}
|
|
};
|
|
|
|
FileUploader.prototype.onFilesAdded = function (file) {
|
|
this.c1(file);
|
|
this.c3(file); // Initializing beforeunload event
|
|
|
|
$(window).bind('beforeunload', function () {
|
|
return ai1wm_locale.stop_importing_your_website;
|
|
});
|
|
};
|
|
|
|
FileUploader.prototype.onBeforeUpload = function (file) {
|
|
var self = this;
|
|
var storage = Ai1wm.Util.random(12);
|
|
var options = Ai1wm.Util.form('#ai1wm-import-form').concat({
|
|
name: 'storage',
|
|
value: storage
|
|
}).concat({
|
|
name: 'archive',
|
|
value: file.name
|
|
}).concat({
|
|
name: 'file',
|
|
value: 1
|
|
}); // Set global params
|
|
|
|
this.model.setParams(options); // Set multipart params
|
|
|
|
$.extend(ai1wm_uploader.params, {
|
|
storage: storage,
|
|
archive: file.name
|
|
}); // Set stop
|
|
|
|
this.model.onStop = function () {
|
|
self.stopUpload = true; // Clean storage
|
|
|
|
self.model.clean();
|
|
}; // Set status
|
|
|
|
|
|
this.model.setStatus({
|
|
type: 'progress',
|
|
percent: '0.00'
|
|
});
|
|
};
|
|
|
|
FileUploader.prototype.upload = function (file) {
|
|
var self = this;
|
|
var formData = new FormData();
|
|
formData.append('upload-file', file);
|
|
|
|
for (var name in ai1wm_uploader.params) {
|
|
formData.append(name, ai1wm_uploader.params[name]);
|
|
}
|
|
|
|
$.ajax({
|
|
url: ai1wm_uploader.url,
|
|
type: 'POST',
|
|
data: formData,
|
|
cache: false,
|
|
contentType: false,
|
|
processData: false,
|
|
xhr: function xhr() {
|
|
var handle = $.ajaxSettings.xhr();
|
|
|
|
if (handle.upload) {
|
|
handle.upload.addEventListener('progress', function (event) {
|
|
var percent = event.loaded / event.total * 100;
|
|
self.model.setStatus({
|
|
type: 'progress',
|
|
percent: percent.toFixed(2)
|
|
});
|
|
});
|
|
}
|
|
|
|
return handle;
|
|
},
|
|
success: function success() {
|
|
if (self.stopUpload) {
|
|
return;
|
|
}
|
|
|
|
self.onFileUploaded();
|
|
},
|
|
error: function error(jqXHR, textStatus) {
|
|
throw new Error(textStatus);
|
|
}
|
|
});
|
|
};
|
|
|
|
FileUploader.prototype.onUploadProgress = function (percent) {
|
|
this.model.setStatus({
|
|
type: 'progress',
|
|
percent: percent
|
|
});
|
|
};
|
|
|
|
FileUploader.prototype.onFileUploaded = function () {
|
|
this.model.start();
|
|
};
|
|
|
|
FileUploader.prototype.onError = function (error) {
|
|
this.model.setStatus({
|
|
type: 'error',
|
|
title: ai1wm_locale.unable_to_import,
|
|
message: error.message
|
|
});
|
|
};
|
|
|
|
module.exports = FileUploader;
|
|
|
|
/***/ }),
|
|
|
|
/***/ 332:
|
|
/***/ (function() {
|
|
|
|
/**
|
|
* Copyright (C) 2014-2023 ServMask Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
|
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
|
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
|
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
|
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
|
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
*/
|
|
jQuery(document).ready(function ($) {
|
|
'use strict'; // Idea
|
|
|
|
$('#ai1wm-feedback-type-link-1').on('click', function () {
|
|
var radio = $('#ai1wm-feedback-type-1');
|
|
|
|
if (radio.is(':checked')) {
|
|
radio.attr('checked', false);
|
|
} else {
|
|
radio.attr('checked', true);
|
|
}
|
|
}); // Help
|
|
|
|
$('#ai1wm-feedback-type-2').on('click', function () {
|
|
// Hide other options
|
|
$('#ai1wm-feedback-type-1').closest('li').hide(); // Change placeholder message
|
|
|
|
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.how_may_we_help_you); // Show feedback form
|
|
|
|
$('.ai1wm-feedback-form').fadeIn();
|
|
}); // Cancel feedback form
|
|
|
|
$('#ai1wm-feedback-cancel').on('click', function (e) {
|
|
$('.ai1wm-feedback-form').fadeOut(function () {
|
|
$('.ai1wm-feedback-type').attr('checked', false).closest('li').show();
|
|
});
|
|
e.preventDefault();
|
|
}); // Send feedback form
|
|
|
|
$('#ai1wm-feedback-submit').on('click', function (e) {
|
|
var self = $(this);
|
|
var spinner = self.next();
|
|
var type = $('.ai1wm-feedback-type:checked').val();
|
|
var email = $('.ai1wm-feedback-email').val();
|
|
var message = $('.ai1wm-feedback-message').val();
|
|
var terms = $('.ai1wm-feedback-terms').is(':checked');
|
|
self.attr('disabled', true);
|
|
spinner.css('visibility', 'visible');
|
|
$.ajax({
|
|
url: ai1wm_feedback.ajax.url,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
async: true,
|
|
data: {
|
|
secret_key: ai1wm_feedback.secret_key,
|
|
ai1wm_type: type,
|
|
ai1wm_email: email,
|
|
ai1wm_message: message,
|
|
ai1wm_terms: +terms
|
|
},
|
|
dataFilter: function dataFilter(data) {
|
|
return Ai1wm.Util.json(data);
|
|
}
|
|
}).done(function (data) {
|
|
self.attr('disabled', false);
|
|
spinner.css('visibility', 'hidden');
|
|
|
|
if (data.errors.length > 0) {
|
|
$('.ai1wm-feedback .ai1wm-message').remove();
|
|
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
|
$.each(data.errors, function (key, value) {
|
|
errorMessage.append($('<p />').text(value));
|
|
});
|
|
$('.ai1wm-feedback').prepend(errorMessage);
|
|
} else {
|
|
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
|
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_feedback));
|
|
$('.ai1wm-feedback').html(successMessage);
|
|
}
|
|
});
|
|
e.preventDefault();
|
|
});
|
|
});
|
|
|
|
/***/ })
|
|
|
|
/******/ });
|
|
/************************************************************************/
|
|
/******/ // The module cache
|
|
/******/ var __webpack_module_cache__ = {};
|
|
/******/
|
|
/******/ // The require function
|
|
/******/ function __webpack_require__(moduleId) {
|
|
/******/ // Check if module is in cache
|
|
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
/******/ if (cachedModule !== undefined) {
|
|
/******/ return cachedModule.exports;
|
|
/******/ }
|
|
/******/ // Create a new module (and put it into the cache)
|
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
/******/ // no module.id needed
|
|
/******/ // no module.loaded needed
|
|
/******/ exports: {}
|
|
/******/ };
|
|
/******/
|
|
/******/ // Execute the module function
|
|
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
/******/
|
|
/******/ // Return the exports of the module
|
|
/******/ return module.exports;
|
|
/******/ }
|
|
/******/
|
|
/************************************************************************/
|
|
/******/ /* webpack/runtime/global */
|
|
/******/ !function() {
|
|
/******/ __webpack_require__.g = (function() {
|
|
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
/******/ try {
|
|
/******/ return this || new Function('return this')();
|
|
/******/ } catch (e) {
|
|
/******/ if (typeof window === 'object') return window;
|
|
/******/ }
|
|
/******/ })();
|
|
/******/ }();
|
|
/******/
|
|
/************************************************************************/
|
|
var __webpack_exports__ = {};
|
|
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
!function() {
|
|
/**
|
|
* Copyright (C) 2014-2023 ServMask Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
|
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
|
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
|
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
|
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
|
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
*/
|
|
var FileUploader = __webpack_require__(814),
|
|
Feedback = __webpack_require__(332),
|
|
Import = __webpack_require__(936);
|
|
|
|
jQuery(document).ready(function ($) {
|
|
'use strict';
|
|
|
|
var uploader;
|
|
|
|
if (Ai1wm.MultisiteExtensionUploader) {
|
|
uploader = new Ai1wm.MultisiteExtensionUploader();
|
|
} else if (Ai1wm.UnlimitedExtensionUploader) {
|
|
uploader = new Ai1wm.UnlimitedExtensionUploader();
|
|
} else if (Ai1wm.FileExtensionUploader) {
|
|
uploader = new Ai1wm.FileExtensionUploader();
|
|
} else {
|
|
uploader = new Ai1wm.FileUploader();
|
|
}
|
|
|
|
uploader.init(); // Expands/Collapses Import from
|
|
|
|
$('.ai1wm-expandable > div.ai1wm-button-main').on('click', function () {
|
|
$(this).parent().toggleClass('ai1wm-open');
|
|
});
|
|
});
|
|
__webpack_require__.g.Ai1wm = jQuery.extend({}, __webpack_require__.g.Ai1wm, {
|
|
FileUploader: FileUploader,
|
|
Feedback: Feedback,
|
|
Import: Import
|
|
});
|
|
}();
|
|
/******/ })()
|
|
; |