PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.8
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
learnpress / assets / js / dist / admin / pages / tools.js

tools.js in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.4.8, at assets/js/dist/admin/pages/tools.js

836 lines 36.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ "use strict";
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "./assets/src/apps/js/admin/pages/tools/database/clean_database.js"
6 /*!*************************************************************************!*\
7 !*** ./assets/src/apps/js/admin/pages/tools/database/clean_database.js ***!
8 \*************************************************************************/
9 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10
11 __webpack_require__.r(__webpack_exports__);
12 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14 /* harmony export */ });
15 /* harmony import */ var _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../utils/lp-modal-overlay */ "./assets/src/apps/js/utils/lp-modal-overlay.js");
16 /* harmony import */ var _utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../utils/handle-ajax-api */ "./assets/src/apps/js/utils/handle-ajax-api.js");
17
18
19 const cleanDatabases = () => {
20 const elCleanDatabases = document.querySelector('#lp-tool-clean-database');
21 if (!elCleanDatabases) {
22 return;
23 }
24 const elBtnCleanDatabases = elCleanDatabases.querySelector('.lp-btn-clean-db');
25 elBtnCleanDatabases.addEventListener('click', function (e) {
26 e.preventDefault();
27 const elToolsSelect = document.querySelector('#tools-select__id');
28 const ElToolSelectLi = elToolsSelect.querySelectorAll('ul li input');
29 const checkedOne = Array.prototype.slice.call(ElToolSelectLi).some(x => x.checked);
30 const prepareMessage = elCleanDatabases.querySelector('.tools-prepare__message');
31 if (checkedOne == false) {
32 prepareMessage.style.display = 'block';
33 prepareMessage.textContent = 'You must choose at least one table to take this action';
34 return;
35 }
36 prepareMessage.style.display = 'none';
37 const elLoading = elCleanDatabases.querySelector('.wrapper-lp-loading');
38 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
39 return;
40 }
41 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
42 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elLoading.innerHTML);
43 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elCleanDatabases.querySelector('h2').textContent);
44 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'inline-block';
45 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].textContent = 'Run';
46 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Close';
47 const listTables = new Array();
48 const ElToolSelectLiCheked = elToolsSelect.querySelectorAll('ul li input:checked');
49 ElToolSelectLiCheked.forEach(e => {
50 listTables.push(e.value);
51 });
52 const tables = listTables[0];
53 const item = elLoading.querySelector('.progressbar__item');
54 const itemtotal = item.getAttribute('data-total');
55 const modal = document.querySelector('.lp-modal-body .main-content');
56 const notice = modal.querySelector('.lp-tool__message');
57 if (itemtotal <= 0) {
58 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'none';
59 notice.textContent = 'There is no data that need to be repaired in the chosen tables';
60 notice.style.display = 'block';
61 return;
62 }
63 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
64 // warn user before doing
65 const r = confirm('The modified data is impossible to be restored. Please backup your website before doing this.');
66 if (r == false) {
67 return;
68 }
69 const modal = document.querySelector('.lp-modal-body .main-content');
70 const notice = modal.querySelector('.lp-tool__message');
71 notice.textContent = 'This action is in processing. Don\'t close this page';
72 notice.style.display = 'block';
73 const url = '/lp/v1/admin/tools/clean-tables';
74 const params = {
75 tables,
76 itemtotal
77 };
78 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'none';
79 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'none';
80 const functions = {
81 success: res => {
82 const {
83 status,
84 message,
85 data: {
86 processed,
87 percent
88 }
89 } = res;
90 const modalItem = modal.querySelector('.progressbar__item');
91 const progressBarRows = modalItem.querySelector('.progressbar__rows');
92 const progressPercent = modalItem.querySelector('.progressbar__percent');
93 const progressValue = modalItem.querySelector('.progressbar__value');
94 console.log(status);
95 if ('success' === status) {
96 setTimeout(() => {
97 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
98 }, 2000);
99 // update processed quantity
100 progressBarRows.textContent = processed + ' / ' + itemtotal;
101 // update percent
102 progressPercent.textContent = '( ' + percent + '%' + ' )';
103 // update percent width
104 progressValue.style.width = percent + '%';
105 } else if ('finished' === status) {
106 // Re-update indexs
107 progressBarRows.textContent = itemtotal + ' / ' + itemtotal;
108 progressPercent.textContent = '( 100% )';
109 // Update complete nofication
110 const modal = document.querySelector('.lp-modal-body .main-content');
111 const notice = modal.querySelector('.lp-tool__message');
112 notice.textContent = 'Process has been completed. Press click the finish button to close this popup';
113 notice.style.color = 'white';
114 notice.style.background = 'green';
115 progressValue.style.width = '100%';
116 // Show finish button
117 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'inline-block';
118 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Finish';
119 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].addEventListener('click', function () {
120 location.reload();
121 });
122 } else {
123 console.log(message);
124 }
125 },
126 error: err => {
127 console.log(err);
128 },
129 completed: () => {}
130 };
131 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
132 };
133 });
134 };
135 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cleanDatabases);
136
137 /***/ },
138
139 /***/ "./assets/src/apps/js/admin/pages/tools/database/create_indexs.js"
140 /*!************************************************************************!*\
141 !*** ./assets/src/apps/js/admin/pages/tools/database/create_indexs.js ***!
142 \************************************************************************/
143 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
144
145 __webpack_require__.r(__webpack_exports__);
146 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
147 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
148 /* harmony export */ });
149 /* harmony import */ var _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../utils/lp-modal-overlay */ "./assets/src/apps/js/utils/lp-modal-overlay.js");
150 /* harmony import */ var _utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../utils/handle-ajax-api */ "./assets/src/apps/js/utils/handle-ajax-api.js");
151
152
153 const createIndexes = () => {
154 const elCreateIndexTables = document.querySelector('#lp-tool-create-indexes-tables');
155 if (!elCreateIndexTables) {
156 return;
157 }
158 const elBtnCreateIndexes = elCreateIndexTables.querySelector('.lp-btn-create-indexes');
159 elBtnCreateIndexes.addEventListener('click', e => {
160 e.preventDefault();
161 const elLoading = elCreateIndexTables.querySelector('.wrapper-lp-loading');
162 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
163 return;
164 }
165 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
166 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elLoading.innerHTML);
167 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elCreateIndexTables.querySelector('h2').textContent);
168 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'inline-block';
169 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].textContent = 'Run';
170 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Close';
171 const url = '/lp/v1/admin/tools/list-tables-indexs';
172 const params = {};
173 const functions = {
174 success: res => {
175 const {
176 status,
177 message,
178 data: {
179 tables,
180 table
181 }
182 } = res;
183 const elSteps = document.querySelector('.example-lp-group-step');
184 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elSteps.innerHTML);
185 const elGroupStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay[0].querySelector('.lp-group-step ');
186
187 // Show progress when upgrading.
188 const showProgress = (stepCurrent, percent) => {
189 const elItemStepCurrent = elGroupStep.querySelector('input[value=' + stepCurrent + ']').closest('.lp-item-step');
190 elItemStepCurrent.classList.add('running');
191 if (100 === percent) {
192 elItemStepCurrent.classList.remove('running');
193 elItemStepCurrent.classList.add('completed');
194 }
195 const progressBar = elItemStepCurrent.querySelector('.progress-bar');
196 progressBar.style.width = percent;
197 };
198
199 // Scroll to step current.
200 const scrollToStepCurrent = stepCurrent => {
201 const elItemStepCurrent = elGroupStep.querySelector('input[value=' + stepCurrent + ']').closest('.lp-item-step');
202 const offset = elItemStepCurrent.offsetTop - _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent[0].offsetTop + _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent[0].scrollTop;
203 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.stop().animate({
204 scrollTop: offset
205 }, 600);
206 };
207 for (const table in tables) {
208 const elItemStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay[0].querySelector('.lp-item-step').cloneNode(true);
209 const input = elItemStep.querySelector('input');
210 const label = elItemStep.querySelector('label');
211 label.textContent = `Table: ${table}`;
212 input.value = table;
213 elGroupStep.append(elItemStep);
214 }
215 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
216 const url = '/lp/v1/admin/tools/create-indexs';
217 const params = {
218 tables,
219 table
220 };
221 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'none';
222 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'none';
223 showProgress(table, 0.1);
224 const functions = {
225 success: res => {
226 const {
227 status,
228 message,
229 data: {
230 table,
231 percent
232 }
233 } = res;
234 showProgress(params.table, percent);
235 if (undefined !== table) {
236 if (params.table !== table) {
237 showProgress(table, 0.1);
238 scrollToStepCurrent(table);
239 }
240 params.table = table;
241 }
242 if ('success' === status) {
243 setTimeout(() => {
244 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
245 }, 2000);
246 } else if ('finished' === status) {
247 console.log('finished');
248 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'inline-block';
249 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Finish';
250 } else {
251 console.log(message);
252 }
253 },
254 error: err => {
255 console.log(err);
256 },
257 completed: () => {}
258 };
259 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
260 };
261 },
262 error: err => {},
263 completed: () => {}
264 };
265 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
266 });
267 };
268 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createIndexes);
269
270 /***/ },
271
272 /***/ "./assets/src/apps/js/admin/pages/tools/database/re-upgrade-db.js"
273 /*!************************************************************************!*\
274 !*** ./assets/src/apps/js/admin/pages/tools/database/re-upgrade-db.js ***!
275 \************************************************************************/
276 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
277
278 __webpack_require__.r(__webpack_exports__);
279 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
280 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
281 /* harmony export */ });
282 /* harmony import */ var _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../utils/lp-modal-overlay */ "./assets/src/apps/js/utils/lp-modal-overlay.js");
283 /* harmony import */ var _utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../utils/handle-ajax-api */ "./assets/src/apps/js/utils/handle-ajax-api.js");
284
285
286 const reUpgradeDB = () => {
287 const elToolReUpgradeDB = document.querySelector('#lp-tool-re-upgrade-db');
288 if (!elToolReUpgradeDB) {
289 return;
290 }
291
292 // Check valid to show popup re-upgrade
293 let url = 'lp/v1/database/check-db-valid-re-upgrade';
294 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, {}, {
295 success(res) {
296 const {
297 data: {
298 can_re_upgrade
299 }
300 } = res;
301 if (!can_re_upgrade) {
302 return;
303 }
304 elToolReUpgradeDB.style.display = 'block';
305 const elBtnReUpradeDB = elToolReUpgradeDB.querySelector('.lp-btn-re-upgrade-db');
306 const elMessage = elToolReUpgradeDB.querySelector('.learn-press-message');
307 elBtnReUpradeDB.addEventListener('click', () => {
308 // eslint-disable-next-line no-alert
309 if (confirm('Are you want to Re Upgrade!')) {
310 url = 'lp/v1/database/del-tb-lp-upgrade-db';
311 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, {}, {
312 success(res) {
313 const {
314 status,
315 message,
316 data: {
317 url
318 }
319 } = res;
320 if ('success' === status && undefined !== url) {
321 window.location.href = url;
322 }
323 },
324 error(err) {
325 elMessage.classList.add('error');
326 elMessage.textContent = err.message;
327 elMessage.style.display = 'block';
328 }
329 });
330 }
331 });
332 },
333 error(err) {}
334 });
335 };
336 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (reUpgradeDB);
337
338 /***/ },
339
340 /***/ "./assets/src/apps/js/admin/pages/tools/database/upgrade.js"
341 /*!******************************************************************!*\
342 !*** ./assets/src/apps/js/admin/pages/tools/database/upgrade.js ***!
343 \******************************************************************/
344 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
345
346 __webpack_require__.r(__webpack_exports__);
347 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
348 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
349 /* harmony export */ });
350 /* harmony import */ var _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../utils/lp-modal-overlay */ "./assets/src/apps/js/utils/lp-modal-overlay.js");
351 /* harmony import */ var _utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../utils/handle-ajax-api */ "./assets/src/apps/js/utils/handle-ajax-api.js");
352
353
354 const $ = jQuery;
355 const elToolUpgradeDB = $('#lp-tool-upgrade-db');
356 const upgradeDB = () => {
357 let isUpgrading = 0;
358 const elWrapperTermsUpgrade = elToolUpgradeDB.find('.wrapper-terms-upgrade');
359 const elStatusUpgrade = elToolUpgradeDB.find('.wrapper-lp-status-upgrade');
360 const elWrapperUpgradeMessage = elToolUpgradeDB.find('.wrapper-lp-upgrade-message');
361 let checkValidBeforeUpgrade = null;
362 const elMessageUpgrading = $('input[name=message-when-upgrading]').val();
363 if (elWrapperTermsUpgrade.length) {
364 // Show Terms Upgrade.
365 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperTermsUpgrade.html());
366 const elTermUpdate = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.find('.terms-upgrade');
367 const elLPAgreeTerm = elTermUpdate.find('input[name=lp-agree-term]');
368 const elTermMessage = elTermUpdate.find('.error');
369 checkValidBeforeUpgrade = function () {
370 elTermMessage.hide();
371 elTermMessage.removeClass('learn-press-message');
372 if (elLPAgreeTerm.is(':checked')) {
373 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])('/lp/v1/database/agree_terms', {
374 agree_terms: 1
375 }, {});
376 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
377 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elStatusUpgrade.html());
378 return true;
379 }
380 elTermMessage.show();
381 elTermMessage.addClass('learn-press-message');
382 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.animate({
383 scrollTop: elTermMessage.offset().top
384 });
385 return false;
386 };
387 } else {
388 // Show Steps Upgrade.
389 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elStatusUpgrade.html());
390 checkValidBeforeUpgrade = function () {
391 return true;
392 };
393 }
394 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elToolUpgradeDB.find('h2').html());
395 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Upgrade');
396 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.show();
397 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.text('Cancel');
398 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = function (e) {
399 if (!checkValidBeforeUpgrade()) {
400 return;
401 }
402 const target = e.target;
403 // Show message note when upgrading.
404 if (target.innerText === 'Upgrade') {
405 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.prepend('<span class="learn-press-notice">' + elMessageUpgrading + '</span>');
406 }
407 isUpgrading = 1;
408 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.hide();
409 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.hide();
410 const urlHandle = '/lp/v1/database/upgrade';
411 const elGroupStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.find('.lp-group-step');
412 const elItemSteps = elToolUpgradeDB.find('.lp-item-step');
413
414 // Get params.
415 const steps = [];
416 $.each(elItemSteps, function (i, el) {
417 const elItemStepsTmp = $(el);
418 if (!elItemStepsTmp.hasClass('completed')) {
419 const step = elItemStepsTmp.find('input').val();
420 steps.push(step);
421 }
422 });
423 const params = {
424 steps,
425 step: steps[0]
426 };
427 let elItemStepCurrent = null;
428
429 // Show progress when upgrading.
430 const showProgress = (stepCurrent, percent) => {
431 elItemStepCurrent = elGroupStep.find('input[value=' + stepCurrent + ']').closest('.lp-item-step');
432 elItemStepCurrent.addClass('running');
433 if (100 === percent) {
434 elItemStepCurrent.removeClass('running').addClass('completed');
435 }
436 elItemStepCurrent.find('.progress-bar').css('width', percent + '%');
437 elItemStepCurrent.find('.percent').text(percent + '%');
438 };
439
440 // Scroll to step current.
441 const scrollToStepCurrent = stepCurrent => {
442 elItemStepCurrent = elGroupStep.find('input[value=' + stepCurrent + ']').closest('.lp-item-step');
443 if (!elItemStepCurrent.length) {
444 return;
445 }
446 const offset = elItemStepCurrent.offset().top - _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.offset().top + _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.scrollTop();
447 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.stop().animate({
448 scrollTop: offset
449 }, 600);
450 };
451 showProgress(steps[0], 0.1);
452 const funcCallBack = {
453 success: res => {
454 showProgress(params.step, res.percent);
455 if (params.step !== res.name) {
456 showProgress(res.name, 0.1);
457 }
458 scrollToStepCurrent(params.step);
459 if ('success' === res.status) {
460 params.step = res.name;
461 params.data = res.data;
462 setTimeout(() => {
463 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, params, funcCallBack);
464 }, 800);
465 } else if ('finished' === res.status) {
466 isUpgrading = 0;
467 elItemStepCurrent.removeClass('running').addClass('completed');
468 setTimeout(() => {
469 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html());
470 }, 1000);
471 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
472 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.text('Close');
473 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
474 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.on('click', () => {
475 window.location.reload();
476 });
477 } else {
478 isUpgrading = 0;
479 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
480 elItemStepCurrent.removeClass('running').addClass('error');
481 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html(), function () {
482 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Retry').show();
483 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
484 window.location.href = lpGlobalSettings.siteurl + '/wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db';
485 };
486 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
487 if (!res.message) {
488 res.message = 'Upgrade not success! Please clear cache, restart sever then retry or contact to LP to help';
489 }
490 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.find('.learn-press-message').addClass('error').html(res.message);
491 });
492 }
493 },
494 error: err => {
495 isUpgrading = 0;
496 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html(), function () {
497 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Retry').show();
498 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
499 window.location.location = 'wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db';
500 };
501 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
502 if (!err.message) {
503 err.message = 'Upgrade not success! Something wrong. Please clear cache, restart sever then retry or contact to LP to help';
504 }
505 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.find('.learn-press-message').addClass('error').html(err.message);
506 });
507 },
508 completed: () => {}
509 };
510 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, params, funcCallBack);
511 };
512
513 // Show confirm if, within upgrading, the user reload the page.
514 window.onbeforeunload = function () {
515 if (isUpgrading) {
516 return 'LP is upgrading Database. Are you want to reload page?';
517 }
518 };
519
520 // Show confirm if, within upgrading, the user close the page.
521 window.onclose = function () {
522 if (isUpgrading) {
523 return 'LP is upgrading Database. Are you want to close page?';
524 }
525 };
526 };
527 const getStepsUpgradeStatus = () => {
528 if (!elToolUpgradeDB.length) {
529 return;
530 }
531
532 // initial LP Modal Overlay
533 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
534 return;
535 }
536 const elWrapperStatusUpgrade = $('.wrapper-lp-status-upgrade');
537 const urlHandle = '/lp/v1/database/get_steps';
538
539 // Show dialog upgrade database.
540 const queryString = window.location.search;
541 const urlParams = new URLSearchParams(queryString);
542 const action = urlParams.get('action');
543 if ('upgrade-db' === action) {
544 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
545 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elToolUpgradeDB.find('h2').html());
546 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal($('.wrapper-lp-loading').html());
547 }
548 const funcCallBack = {
549 success: res => {
550 const {
551 steps_completed,
552 steps_default
553 } = res;
554 if (undefined === steps_completed || undefined === steps_default) {
555 console.log('invalid steps_completed and steps_default');
556 return false;
557 }
558
559 // Render show Steps.
560 let htmlStep = '';
561 for (const k_gr_steps in steps_default) {
562 const step_group = steps_default[k_gr_steps];
563 const steps = step_group.steps;
564 htmlStep = '<div class="lp-group-step">';
565 htmlStep += '<h3>' + step_group.label + '</h3>';
566 for (const k_step in steps) {
567 const step = steps[k_step];
568 let completed = '';
569 if (undefined !== steps_completed[k_step]) {
570 completed = 'completed';
571 }
572 htmlStep += '<div class="lp-item-step ' + completed + '">';
573 htmlStep += '<div class="lp-item-step-left"><input type="hidden" name="lp_steps_upgrade_db[]" value="' + step.name + '" /></div>';
574 htmlStep += '<div class="lp-item-step-right">';
575 htmlStep += '<label for=""><strong></strong>' + step.label + '</label>';
576 htmlStep += '<div class="description">' + step.description + '</div>';
577 htmlStep += '<div class="percent"></div>';
578 htmlStep += '<span class="progress-bar"></span>';
579 htmlStep += '</div>';
580 htmlStep += '</div>';
581 }
582 htmlStep += '</div>';
583 elWrapperStatusUpgrade.append(htmlStep);
584 const elBtnUpgradeDB = $('.lp-btn-upgrade-db');
585 if ('upgrade-db' === action) {
586 upgradeDB();
587 }
588 elBtnUpgradeDB.on('click', function () {
589 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
590 upgradeDB();
591 });
592 }
593 },
594 error: err => {},
595 completed: () => {}
596 };
597 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, {}, funcCallBack);
598 };
599 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStepsUpgradeStatus);
600
601 /***/ },
602
603 /***/ "./assets/src/apps/js/utils/handle-ajax-api.js"
604 /*!*****************************************************!*\
605 !*** ./assets/src/apps/js/utils/handle-ajax-api.js ***!
606 \*****************************************************/
607 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
608
609 __webpack_require__.r(__webpack_exports__);
610 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
611 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
612 /* harmony export */ });
613 const handleAjax = function (url, params, functions) {
614 wp.apiFetch({
615 path: url,
616 method: 'POST',
617 data: params
618 }).then(res => {
619 if ('function' === typeof functions.success) {
620 functions.success(res);
621 }
622 }).catch(err => {
623 if ('function' === typeof functions.error) {
624 functions.error(err);
625 }
626 }).then(() => {
627 if ('function' === typeof functions.completed) {
628 functions.completed();
629 }
630 });
631 };
632 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleAjax);
633
634 /***/ },
635
636 /***/ "./assets/src/apps/js/utils/lp-modal-overlay.js"
637 /*!******************************************************!*\
638 !*** ./assets/src/apps/js/utils/lp-modal-overlay.js ***!
639 \******************************************************/
640 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
641
642 __webpack_require__.r(__webpack_exports__);
643 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
644 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
645 /* harmony export */ });
646 const $ = jQuery;
647 let elLPOverlay = null;
648 const lpModalOverlay = {
649 elLPOverlay: null,
650 elMainContent: null,
651 elTitle: null,
652 elBtnYes: null,
653 elBtnNo: null,
654 elFooter: null,
655 elCalledModal: null,
656 callBackYes: null,
657 instance: null,
658 init() {
659 if (this.instance) {
660 return true;
661 }
662 this.elLPOverlay = $('.lp-overlay');
663 if (!this.elLPOverlay.length) {
664 return false;
665 }
666 elLPOverlay = this.elLPOverlay;
667 this.elMainContent = elLPOverlay.find('.main-content');
668 this.elTitle = elLPOverlay.find('.modal-title');
669 this.elBtnYes = elLPOverlay.find('.btn-yes');
670 this.elBtnNo = elLPOverlay.find('.btn-no');
671 this.elFooter = elLPOverlay.find('.lp-modal-footer');
672 $(document).on('click', '.close, .btn-no', function () {
673 elLPOverlay.hide();
674 });
675 $(document).on('click', '.btn-yes', function (e) {
676 e.preventDefault();
677 e.stopPropagation();
678 if ('function' === typeof lpModalOverlay.callBackYes) {
679 lpModalOverlay.callBackYes(e);
680 }
681 });
682 this.instance = this;
683 return true;
684 },
685 setElCalledModal(elCalledModal) {
686 this.elCalledModal = elCalledModal;
687 },
688 setContentModal(content, event) {
689 this.elMainContent.html(content);
690 if ('function' === typeof event) {
691 event();
692 }
693 },
694 setTitleModal(content) {
695 this.elTitle.html(content);
696 }
697 };
698 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lpModalOverlay);
699
700 /***/ }
701
702 /******/ });
703 /************************************************************************/
704 /******/ // The module cache
705 /******/ const __webpack_module_cache__ = {};
706 /******/
707 /******/ // The require function
708 /******/ function __webpack_require__(moduleId) {
709 /******/ // Check if module is in cache
710 /******/ const cachedModule = __webpack_module_cache__[moduleId];
711 /******/ if (cachedModule !== undefined) {
712 /******/ return cachedModule.exports;
713 /******/ }
714 /******/ // Create a new module (and put it into the cache)
715 /******/ const module = __webpack_module_cache__[moduleId] = {
716 /******/ // no module.id needed
717 /******/ // no module.loaded needed
718 /******/ exports: {}
719 /******/ };
720 /******/
721 /******/ // Execute the module function
722 /******/ if (!(moduleId in __webpack_modules__)) {
723 /******/ delete __webpack_module_cache__[moduleId];
724 /******/ const e = new Error("Cannot find module '" + moduleId + "'");
725 /******/ e.code = 'MODULE_NOT_FOUND';
726 /******/ throw e;
727 /******/ }
728 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
729 /******/
730 /******/ // Return the exports of the module
731 /******/ return module.exports;
732 /******/ }
733 /******/
734 /************************************************************************/
735 /******/ /* webpack/runtime/define property getters */
736 /******/ (() => {
737 /******/ // define getter/value functions for harmony exports
738 /******/ __webpack_require__.d = (exports, definition) => {
739 /******/ if(Array.isArray(definition)) {
740 /******/ var i = 0;
741 /******/ while(i < definition.length) {
742 /******/ var key = definition[i++];
743 /******/ var binding = definition[i++];
744 /******/ if(!__webpack_require__.o(exports, key)) {
745 /******/ if(binding === 0) {
746 /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
747 /******/ } else {
748 /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
749 /******/ }
750 /******/ } else if(binding === 0) { i++; }
751 /******/ }
752 /******/ } else {
753 /******/ for(var key in definition) {
754 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
755 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
756 /******/ }
757 /******/ }
758 /******/ }
759 /******/ };
760 /******/ })();
761 /******/
762 /******/ /* webpack/runtime/hasOwnProperty shorthand */
763 /******/ (() => {
764 /******/ __webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop))
765 /******/ })();
766 /******/
767 /******/ /* webpack/runtime/make namespace object */
768 /******/ (() => {
769 /******/ // define __esModule on exports
770 /******/ __webpack_require__.r = (exports) => {
771 /******/ if(Symbol.toStringTag) {
772 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
773 /******/ }
774 /******/ Object.defineProperty(exports, '__esModule', { value: true });
775 /******/ };
776 /******/ })();
777 /******/
778 /************************************************************************/
779 let __webpack_exports__ = {};
780 // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
781 (() => {
782 /*!*************************************************!*\
783 !*** ./assets/src/apps/js/admin/pages/tools.js ***!
784 \*************************************************/
785 __webpack_require__.r(__webpack_exports__);
786 /* harmony import */ var _tools_database_upgrade__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tools/database/upgrade */ "./assets/src/apps/js/admin/pages/tools/database/upgrade.js");
787 /* harmony import */ var _tools_database_create_indexs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tools/database/create_indexs */ "./assets/src/apps/js/admin/pages/tools/database/create_indexs.js");
788 /* harmony import */ var _tools_database_re_upgrade_db__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tools/database/re-upgrade-db */ "./assets/src/apps/js/admin/pages/tools/database/re-upgrade-db.js");
789 /* harmony import */ var _tools_database_clean_database__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tools/database/clean_database */ "./assets/src/apps/js/admin/pages/tools/database/clean_database.js");
790
791
792
793
794 (function ($) {
795 const $doc = $(document);
796 const clearHardCache = function clearHardCache(e) {
797 e.preventDefault();
798 const $button = $(this);
799 if ($button.hasClass('disabled')) {
800 return;
801 }
802 $button.addClass('disabled').html($button.data('cleaning-text'));
803 $.ajax({
804 url: $button.attr('href'),
805 data: {},
806 success(response) {
807 $button.removeClass('disabled').html($button.data('text'));
808 },
809 error() {
810 $button.removeClass('disabled').html($button.data('text'));
811 }
812 });
813 };
814 const toggleHardCache = function toggleHardCache() {
815 $.ajax({
816 url: 'admin.php?page=lp-toggle-hard-cache-option',
817 data: {
818 v: this.checked ? 'yes' : 'no'
819 },
820 success(response) {},
821 error() {}
822 });
823 };
824 $(function () {
825 (0,_tools_database_upgrade__WEBPACK_IMPORTED_MODULE_0__["default"])();
826 (0,_tools_database_create_indexs__WEBPACK_IMPORTED_MODULE_1__["default"])();
827 (0,_tools_database_re_upgrade_db__WEBPACK_IMPORTED_MODULE_2__["default"])();
828 (0,_tools_database_clean_database__WEBPACK_IMPORTED_MODULE_3__["default"])();
829 $doc.on('click', '#learn-press-clear-cache', clearHardCache).on('click', 'input[name="enable_hard_cache"]', toggleHardCache);
830 });
831 })(jQuery);
832 })();
833
834 /******/ })()
835 ;
836 //# sourceMappingURL=tools.js.map