/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 42); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (C) 2014-2017 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 . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var $ = jQuery; module.exports = { random: function random(len) { var text = ''; var possible = 'abcdefghijklmnopqrstuvwxyz0123456789'; for (var i = 0; i < len; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)); } return text; }, form: function form(id) { return $(id).serializeArray(); }, ucfirst: function ucfirst(text) { return text.charAt(0).toUpperCase() + text.slice(1); }, list: function list(input) { // Convert object to list if ($.isPlainObject(input)) { var result = []; var params = decodeURIComponent($.param(input)).split('&'); // Loop over params $.each(params, function (index, item) { var value = item.split('='); // Add item result.push({ name: value[0], value: value[1] }); }); return result; } return input; }, json: function json(input) { if ($.type(input) === 'string') { var result = input.match(/{[\s\S]+}/); if (result !== null) { return result[0]; } } return false; } }; /***/ }), /***/ 18: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (C) 2014-2017 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 . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var Util = __webpack_require__(0), Modal = __webpack_require__(19), $ = jQuery; var Import = function Import() { var self = this; // Set params this.params = []; // Set stop flag this.stopImport = false; // 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); }; }; Import.prototype.setParams = function (params) { this.params = Util.list(params); }; Import.prototype.start = function (options, retries) { var self = this; var retries = retries || 0; // Set stop flag if (retries === 0) { this.stopImport = false; } // Stop running import if (this.stopImport) { return; } // Initializing beforeunload event $(window).bind('beforeunload', function () { return 'You are about to stop importing your website, are you sure?'; }); // Set initial status this.setStatus({ type: 'info', message: '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(Util.list(options)); } // Import $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data, type) { return Util.json(data); } }).done(function () { self.getStatus(); }).done(function (params) { if (params) { self.run(params); } }).fail(function () { var timeout = retries * 1000; if (retries >= 5) { return self.setStatus({ type: 'error', message: 'Unable to start the import. Refresh the page and try again' }); } retries++; setTimeout(self.start.bind(self, options, retries), timeout); }); }; Import.prototype.run = function (params, retries) { var self = this; var retries = retries || 0; // Stop running import if (this.stopImport) { return; } // Import $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data, type) { return Util.json(data); } }).done(function (params) { if (params) { self.run(params); } }).fail(function () { var timeout = retries * 1000; retries++; setTimeout(self.run.bind(self, params, retries), timeout); }); }; Import.prototype.confirm = function (options, retries) { var self = this; var retries = retries || 0; // Stop running import if (this.stopImport) { 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(Util.list(options)); } // Confirm $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data, type) { return Util.json(data); } }).done(function () { self.getStatus(); }).done(function (params) { if (params) { self.run(params); } }).fail(function () { var timeout = retries * 1000; if (retries >= 5) { return self.setStatus({ type: 'error', message: 'Unable to confirm the import. Refresh the page and try again' }); } retries++; setTimeout(self.confirm.bind(self, options, retries), timeout); }); }; Import.prototype.blogs = function (options, retries) { var self = this; var retries = retries || 0; // Stop running import if (this.stopImport) { 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(Util.list(options)); } // Blogs $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data, type) { return Util.json(data); } }).done(function () { self.getStatus(); }).done(function (params) { if (params) { self.run(params); } }).fail(function () { var timeout = retries * 1000; if (retries >= 5) { return self.setStatus({ type: 'error', message: 'Unable to prepare blogs the import. Refresh the page and try again' }); } retries++; setTimeout(self.blogs.bind(self, options, retries), timeout); }); }; Import.prototype.clean = function (options, retries) { var self = this; var retries = retries || 0; // Set stop flag this.stopImport = true; // Set initial status this.setStatus({ type: 'info', message: '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(Util.list(options)); } // Clean $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data, type) { return Util.json(data); } }).done(function () { // Unbinding the beforeunload event when we stop importing $(window).unbind('beforeunload'); // Destroy modal self.modal.destroy(); }).fail(function () { var timeout = retries * 1000; if (retries >= 5) { return self.setStatus({ type: 'error', message: 'Unable to stop the import. Refresh the page and try again' }); } retries++; setTimeout(self.clean.bind(self, options, retries), timeout); }); }; Import.prototype.getStatus = function () { var self = this; // Stop getting status if (this.stopImport) { return; } $.ajax({ url: ai1wm_import.status.url, type: 'GET', dataType: 'json', cache: false, dataFilter: function dataFilter(data, type) { return 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 'blogs': 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.onBlogs = function (options) { this.blogs(options); }; Import.prototype.onStop = function (options) { this.clean(options); }; module.exports = Import; /***/ }), /***/ 19: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (C) 2014-2017 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 . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var $ = jQuery; var Modal = function Modal() { var self = this; this.view = null; // Error Modal this.error = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create title var title = $('').addClass('ai1wm-title-red').text('Unable to import'); // Create close button var closeButton = $('').on('click', function () { self.destroy(); }); // Append close button 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.overlay.show(); }; // Progress Modal this.progress = function (params) { if (this.view === 'progress') { // Update progressBarMeter this.progress.progressBarMeter.width(params.percent + '%'); // Update progressBarPercent this.progress.progressBarPercent.text(params.percent + '%'); } else { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold progress bar var header = $('

'); // Create paragraph to hold mesage var message = $('

'); // Create action section var action = $('
'); // Create progressBar var progressBar = $(''); // Create progressBarMeter this.progress.progressBarMeter = $('').width(params.percent + '%'); // Create progressBarPercent this.progress.progressBarPercent = $('0%').text(params.percent + '%'); // Create stop import var stopButton = $('').on('click', function () { $(this).attr('disabled', 'disabled'); self.onStop(); }); // Append progress meter and progress percent progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent); // Append stop button 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.overlay.show(); } }; // Confirm Modal this.confirm = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold warning var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create warning var warning = $(''); // Create cancel button var cancelButton = $('').on('click', function () { $(this).attr('disabled', 'disabled'); self.onStop(); }); // Create confirm button var confirmButton = $('').on('click', function () { $(this).attr('disabled', 'disabled'); self.onConfirm(); }); // Append cancel button action.append(cancelButton); // Append confirm button 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.overlay.show(); }; // Blogs Modal this.blogs = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create title var title = $('').addClass('ai1wm-title-grey').text(params.title); // Create continue button var continueButton = $('').on('click', function () { $(this).attr('disabled', 'disabled'); self.onBlogs($(this).closest('form').serializeArray()); }); // Append continue button 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.overlay.show(); }; // Info Modal this.info = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold loader var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create loader var loader = $(''); // Create stop import var stopButton = $('').attr('disabled', 'disabled'); // Append stop button action.append(stopButton); // 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.overlay.show(); }; // Done Modal this.done = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create title var title = $('').addClass('ai1wm-title-green').text(params.title); // Create close button var closeButton = $('').on('click', function () { self.destroy(); }); // Append close button 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.overlay.show(); }; // Create the overlay this.overlay = $('
'); // Create the modal container this.modal = $('
'); $('body').append(this.overlay) // Append overlay to body .append(this.modal); // Append modal to body }; Modal.prototype.render = function (params) { // Show modal switch (params.type) { case 'error': this.error(params); break; case 'confirm': this.confirm(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; } this.view = params.type; }; Modal.prototype.destroy = function () { this.modal.hide(); this.overlay.hide(); }; module.exports = Modal; /***/ }), /***/ 42: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (C) 2014-2017 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 . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var Report = __webpack_require__(5), Feedback = __webpack_require__(6), Util = __webpack_require__(0), Import = __webpack_require__(18); jQuery(document).ready(function ($) { 'use strict'; $('.ai1wm-backup-actions > a').hover(function () { $(this).addClass('ai1wm-button-on'); }, function () { $(this).removeClass('ai1wm-button-on'); }); // Delete file $('.ai1wm-backup-delete').click(function (e) { var self = $(this); // Delete file if (confirm('Are you sure you want to delete this file?')) { $.ajax({ url: ai1wm_backups.ajax.url, type: 'POST', dataType: 'json', data: { 'secret_key': ai1wm_backups.secret_key, 'archive': self.data('archive') }, dataFilter: function dataFilter(data, type) { return Util.json(data); }, success: function success(data) { if (data.errors.length === 0) { self.closest('tr').remove(); if ($('.ai1wm-backups tbody tr').length === 0) { $('.ai1wm-backups').addClass('ai1wm-hide'); $('.ai1wm-backups-empty').removeClass('ai1wm-hide'); } } } }); } e.preventDefault(); }); var model = new Import(); // Restore from file $('.ai1wm-backup-restore').click(function (e) { var storage = Util.random(12); var options = Util.form('#ai1wm-backups-form').concat({ name: 'storage', value: storage }).concat({ name: 'archive', value: $(this).data('archive') }); // Set global params model.setParams(options); // Start import model.start(); e.preventDefault(); }); }); /***/ }), /***/ 5: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (C) 2014-2017 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 . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var Util = __webpack_require__(0); jQuery(document).ready(function ($) { 'use strict'; $('#ai1wm-report-problem-button').click(function (e) { $(this).next('.ai1wm-report-problem-dialog').toggleClass('ai1wm-report-active'); e.preventDefault(); }); $('#ai1wm-report-cancel').click(function (e) { $(this).closest('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active'); e.preventDefault(); }); $('#ai1wm-report-submit').click(function (event) { event.preventDefault(); var submit_button = $(this); var spinner = $(submit_button).next(); var email = $('.ai1wm-report-email').val(); var message = $('.ai1wm-report-message').val(); var terms = $('.ai1wm-report-terms').is(':checked'); $(submit_button).attr('disabled', true); $(spinner).css('visibility', 'visible'); $.ajax({ url: ai1wm_report.ajax.url, type: 'POST', dataType: 'json', async: true, data: { 'secret_key': ai1wm_report.secret_key, 'ai1wm_email': email, 'ai1wm_message': message, 'ai1wm_terms': +terms }, dataFilter: function dataFilter(data, type) { return Util.json(data); }, success: function success(data) { $(submit_button).attr('disabled', false); $(spinner).css('visibility', 'hidden'); if (data.errors.length > 0) { // Reset previous messages $('.ai1wm-report-problem-dialog .ai1wm-message').remove(); var errorMessage = $('
').addClass('ai1wm-message ai1wm-error-message'); $.each(data.errors, function (key, value) { errorMessage.append('

' + value + '

'); }); $('.ai1wm-report-problem-dialog').prepend(errorMessage); } else { var successMessage = $('
').addClass('ai1wm-message ai1wm-success-message').append('

Thanks for submitting your request!

'); $('.ai1wm-report-problem-dialog').html(successMessage); // Hide message setTimeout(function () { $('.ai1wm-report-problem-dialog').removeClass('ai1wm-report-active'); }, 2000); } } }); }); }); /***/ }), /***/ 6: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (C) 2014-2017 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 . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var Util = __webpack_require__(0); jQuery(document).ready(function ($) { 'use strict'; // Reset feedback form $('.ai1wm-feedback-type').attr('checked', false); // Review $('#ai1wm-feedback-type-link-1').click(function (e) { var radio = $('#ai1wm-feedback-type-1'); if (radio.is(':checked')) { radio.attr('checked', false); e.preventDefault(); } else { radio.attr('checked', true); } }); // Improvement $('#ai1wm-feedback-type-2').click(function () { // Hide other options $('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide(); // change placeholder message $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', 'Leave plugin developers any feedback here'); // Show feedback form $('.ai1wm-feedback-form').fadeIn(); }); // Help $('#ai1wm-feedback-type-3').click(function () { // Hide other options $('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide(); // change placeholder message $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', 'How may we help you?'); // Show feedback form $('.ai1wm-feedback-form').fadeIn(); }); // Cancel feedback form $('#ai1wm-feedback-cancel').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').click(function (event) { event.preventDefault(); var submit_button = $(this); var spinner = $(submit_button).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'); $(submit_button).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, type) { return Util.json(data); }, success: function success(data) { $(submit_button).attr('disabled', false); $(spinner).css('visibility', 'hidden'); if (data.errors.length > 0) { // Reset previous messages $('.ai1wm-feedback .ai1wm-message').remove(); var errorMessage = $('
').addClass('ai1wm-message ai1wm-error-message'); $.each(data.errors, function (key, value) { errorMessage.append('

' + value + '

'); }); $('.ai1wm-feedback').prepend(errorMessage); } else { var successMessage = $('
').addClass('ai1wm-message ai1wm-success-message').append('

Thanks for submitting your feedback!

'); $('.ai1wm-feedback').html(successMessage); } } }); }); }); /***/ }) /******/ });