PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.2.0
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.2.0
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.2.0, at assets/js/dist/admin/pages/tools.js

1,138 lines 47.9 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 if (elWrapperTermsUpgrade.length) {
363 // Show Terms Upgrade.
364 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperTermsUpgrade.html());
365 const elTermUpdate = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.find('.terms-upgrade');
366 const elLPAgreeTerm = elTermUpdate.find('input[name=lp-agree-term]');
367 const elTermMessage = elTermUpdate.find('.error');
368 const elMessageUpgrading = $('input[name=message-when-upgrading]').val();
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"].elFooter.prepend('<span class="learn-press-notice">' + elMessageUpgrading + '</span>');
378 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elStatusUpgrade.html());
379 return true;
380 }
381 elTermMessage.show();
382 elTermMessage.addClass('learn-press-message');
383 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.animate({
384 scrollTop: elTermMessage.offset().top
385 });
386 return false;
387 };
388 } else {
389 // Show Steps Upgrade.
390 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elStatusUpgrade.html());
391 checkValidBeforeUpgrade = function () {
392 return true;
393 };
394 }
395 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elToolUpgradeDB.find('h2').html());
396 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Upgrade');
397 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.show();
398 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.text('close');
399 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = function () {
400 if (!checkValidBeforeUpgrade()) {
401 return;
402 }
403 isUpgrading = 1;
404 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.hide();
405 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.hide();
406 const urlHandle = '/lp/v1/database/upgrade';
407 const elGroupStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.find('.lp-group-step');
408 const elItemSteps = elToolUpgradeDB.find('.lp-item-step');
409
410 // Get params.
411 const steps = [];
412 $.each(elItemSteps, function (i, el) {
413 const elItemStepsTmp = $(el);
414 if (!elItemStepsTmp.hasClass('completed')) {
415 const step = elItemStepsTmp.find('input').val();
416 steps.push(step);
417 }
418 });
419 const params = {
420 steps,
421 step: steps[0]
422 };
423 let elItemStepCurrent = null;
424
425 // Show progress when upgrading.
426 const showProgress = (stepCurrent, percent) => {
427 elItemStepCurrent = elGroupStep.find('input[value=' + stepCurrent + ']').closest('.lp-item-step');
428 elItemStepCurrent.addClass('running');
429 if (100 === percent) {
430 elItemStepCurrent.removeClass('running').addClass('completed');
431 }
432 elItemStepCurrent.find('.progress-bar').css('width', percent + '%');
433 elItemStepCurrent.find('.percent').text(percent + '%');
434 };
435
436 // Scroll to step current.
437 const scrollToStepCurrent = stepCurrent => {
438 elItemStepCurrent = elGroupStep.find('input[value=' + stepCurrent + ']').closest('.lp-item-step');
439 if (!elItemStepCurrent.length) {
440 return;
441 }
442 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();
443 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.stop().animate({
444 scrollTop: offset
445 }, 600);
446 };
447 showProgress(steps[0], 0.1);
448 const funcCallBack = {
449 success: res => {
450 showProgress(params.step, res.percent);
451 if (params.step !== res.name) {
452 showProgress(res.name, 0.1);
453 }
454 scrollToStepCurrent(params.step);
455 if ('success' === res.status) {
456 params.step = res.name;
457 params.data = res.data;
458 setTimeout(() => {
459 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, params, funcCallBack);
460 }, 800);
461 } else if ('finished' === res.status) {
462 isUpgrading = 0;
463 elItemStepCurrent.removeClass('running').addClass('completed');
464 setTimeout(() => {
465 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html());
466 }, 1000);
467 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
468 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
469 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.on('click', () => {
470 window.location.reload();
471 });
472 } else {
473 isUpgrading = 0;
474 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
475 elItemStepCurrent.removeClass('running').addClass('error');
476 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html(), function () {
477 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Retry').show();
478 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
479 window.location.href = lpGlobalSettings.siteurl + '/wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db';
480 };
481 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
482 if (!res.message) {
483 res.message = 'Upgrade not success! Please clear cache, restart sever then retry or contact to LP to help';
484 }
485 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.find('.learn-press-message').addClass('error').html(res.message);
486 });
487 }
488 },
489 error: err => {
490 isUpgrading = 0;
491 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html(), function () {
492 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Retry').show();
493 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
494 window.location.location = 'wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db';
495 };
496 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
497 if (!err.message) {
498 err.message = 'Upgrade not success! Something wrong. Please clear cache, restart sever then retry or contact to LP to help';
499 }
500 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.find('.learn-press-message').addClass('error').html(err.message);
501 });
502 },
503 completed: () => {}
504 };
505 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, params, funcCallBack);
506 };
507
508 // Show confirm if, within upgrading, the user reload the page.
509 window.onbeforeunload = function () {
510 if (isUpgrading) {
511 return 'LP is upgrading Database. Are you want to reload page?';
512 }
513 };
514
515 // Show confirm if, within upgrading, the user close the page.
516 window.onclose = function () {
517 if (isUpgrading) {
518 return 'LP is upgrading Database. Are you want to close page?';
519 }
520 };
521 };
522 const getStepsUpgradeStatus = () => {
523 if (!elToolUpgradeDB.length) {
524 return;
525 }
526
527 // initial LP Modal Overlay
528 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
529 return;
530 }
531 const elWrapperStatusUpgrade = $('.wrapper-lp-status-upgrade');
532 const urlHandle = '/lp/v1/database/get_steps';
533
534 // Show dialog upgrade database.
535 const queryString = window.location.search;
536 const urlParams = new URLSearchParams(queryString);
537 const action = urlParams.get('action');
538 if ('upgrade-db' === action) {
539 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
540 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elToolUpgradeDB.find('h2').html());
541 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal($('.wrapper-lp-loading').html());
542 }
543 const funcCallBack = {
544 success: res => {
545 const {
546 steps_completed,
547 steps_default
548 } = res;
549 if (undefined === steps_completed || undefined === steps_default) {
550 console.log('invalid steps_completed and steps_default');
551 return false;
552 }
553
554 // Render show Steps.
555 let htmlStep = '';
556 for (const k_gr_steps in steps_default) {
557 const step_group = steps_default[k_gr_steps];
558 const steps = step_group.steps;
559 htmlStep = '<div class="lp-group-step">';
560 htmlStep += '<h3>' + step_group.label + '</h3>';
561 for (const k_step in steps) {
562 const step = steps[k_step];
563 let completed = '';
564 if (undefined !== steps_completed[k_step]) {
565 completed = 'completed';
566 }
567 htmlStep += '<div class="lp-item-step ' + completed + '">';
568 htmlStep += '<div class="lp-item-step-left"><input type="hidden" name="lp_steps_upgrade_db[]" value="' + step.name + '" /></div>';
569 htmlStep += '<div class="lp-item-step-right">';
570 htmlStep += '<label for=""><strong></strong>' + step.label + '</label>';
571 htmlStep += '<div class="description">' + step.description + '</div>';
572 htmlStep += '<div class="percent"></div>';
573 htmlStep += '<span class="progress-bar"></span>';
574 htmlStep += '</div>';
575 htmlStep += '</div>';
576 }
577 htmlStep += '</div>';
578 elWrapperStatusUpgrade.append(htmlStep);
579 const elBtnUpgradeDB = $('.lp-btn-upgrade-db');
580 if ('upgrade-db' === action) {
581 upgradeDB();
582 }
583 elBtnUpgradeDB.on('click', function () {
584 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
585 upgradeDB();
586 });
587 }
588 },
589 error: err => {},
590 completed: () => {}
591 };
592 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, {}, funcCallBack);
593 };
594 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStepsUpgradeStatus);
595
596 /***/ }),
597
598 /***/ "./assets/src/apps/js/admin/pages/tools/reset-data/course.js":
599 /*!*******************************************************************!*\
600 !*** ./assets/src/apps/js/admin/pages/tools/reset-data/course.js ***!
601 \*******************************************************************/
602 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
603
604 __webpack_require__.r(__webpack_exports__);
605 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
606 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
607 /* harmony export */ });
608 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
609 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
610
611 /**
612 * Reset course progress.
613 *
614 * @since 4.0.5.
615 * @author Nhamdv - Code choi choi in Physcode.
616 */
617 const {
618 __
619 } = wp.i18n;
620 const {
621 TextControl,
622 Button,
623 Spinner,
624 CheckboxControl,
625 Notice
626 } = wp.components;
627 const {
628 useState,
629 useEffect
630 } = wp.element;
631 const {
632 addQueryArgs
633 } = wp.url;
634 const ResetCourse = () => {
635 const [loading, setLoading] = useState(false);
636 const [search, setSearch] = useState('');
637 const [data, setData] = useState([]);
638 const [checkData, setCheckData] = useState([]);
639 const [message, setMessage] = useState([]);
640 const [loadingReset, setLoadingReset] = useState(false);
641 useEffect(() => {
642 responsiveData(search);
643 }, [search]);
644 const responsiveData = async s => {
645 try {
646 if (!s || loading) {
647 setMessage([]);
648 setData([]);
649 return;
650 }
651 if (s.length < 3) {
652 setMessage([{
653 status: 'error',
654 message: 'Please enter at least 3 characters to searching course.'
655 }]);
656 setData([]);
657 return;
658 }
659 setLoading(true);
660 const response = await wp.apiFetch({
661 path: addQueryArgs('lp/v1/admin/tools/reset-data/search-courses', {
662 s
663 }),
664 method: 'GET'
665 });
666 const {
667 status,
668 data
669 } = response;
670 setLoading(false);
671 if (status === 'success') {
672 setData(data);
673 setMessage([]);
674 } else {
675 setMessage([{
676 status: 'error',
677 message: response.message || 'LearnPress: Search Course Fail!'
678 }]);
679 setData([]);
680 }
681 } catch (error) {
682 console.log(error.message);
683 }
684 };
685 function checkItems(id) {
686 const datas = [...checkData];
687 if (datas.includes(id)) {
688 const index = datas.indexOf(id);
689 if (index > -1) {
690 datas.splice(index, 1);
691 }
692 } else {
693 datas.push(id);
694 }
695 setCheckData(datas);
696 }
697 const resetCourse = async () => {
698 if (checkData.length === 0) {
699 setMessage([{
700 status: 'error',
701 message: 'Please chooce Course for reset data!'
702 }]);
703 return;
704 }
705
706 // eslint-disable-next-line no-alert
707 if (!confirm('Are you sure to reset course progress of all users enrolled this course?')) {
708 return;
709 }
710 const notice = [];
711 try {
712 setLoadingReset(true);
713 for (const courseId of checkData) {
714 const response = await wp.apiFetch({
715 path: addQueryArgs('lp/v1/admin/tools/reset-data/reset-courses', {
716 courseId
717 }),
718 method: 'GET'
719 });
720 const {
721 status,
722 data,
723 message
724 } = response;
725 notice.push({
726 status,
727 message: message || `Course #${courseId} reset successfully!`
728 });
729 }
730 setLoadingReset(false);
731 } catch (error) {
732 notice.push({
733 status: 'error',
734 message: error.message || `LearnPress Error: Reset Course Data.`
735 });
736 }
737 setMessage(notice);
738 };
739 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("h2", null, __('Reset course progress', 'learnpress')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
740 className: "description"
741 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, __('This action will reset progress of a course for all users have enrolled.', 'learnpress')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, __('Search results only show course have user data.', 'learnpress')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(TextControl, {
742 placeholder: __('Search course by name', 'learnpress'),
743 value: search,
744 onChange: value => setSearch(value),
745 style: {
746 width: 300
747 }
748 }))), loading && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Spinner, null), data.length > 0 && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
749 className: "lp-reset-course_progress",
750 style: {
751 border: '1px solid #eee'
752 }
753 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
754 style: {
755 background: '#eee'
756 }
757 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
758 checked: checkData.length === data.length,
759 onChange: () => {
760 if (checkData.length === data.length) {
761 setCheckData([]);
762 } else {
763 setCheckData(data.map(dt => dt.id));
764 }
765 },
766 style: {
767 margin: 0
768 }
769 })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, __('ID', 'learnpress')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, __('Name', 'learnpress')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, __('Students', 'learnpress')))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
770 style: {
771 height: '100%',
772 maxHeight: 200,
773 overflow: 'auto'
774 }
775 }, data.map(dt => {
776 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
777 style: {
778 borderTop: '1px solid #eee'
779 },
780 key: dt.id
781 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
782 checked: checkData.includes(dt.id),
783 onChange: () => checkItems(dt.id)
784 })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, "#", dt.id), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, dt.title), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, dt.students));
785 }))), loadingReset ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Spinner, null) : (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
786 isPrimary: true,
787 onClick: () => resetCourse(),
788 style: {
789 marginTop: 10,
790 height: 30
791 }
792 }, __('Reset now', 'learnpress'))), message.length > 0 && message.map((mess, index) => {
793 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Notice, {
794 status: mess.status,
795 key: index,
796 isDismissible: false
797 }, mess.message);
798 }), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("style", null, '\
799 .lp-reset-course_progress .components-base-control__field {\
800 margin: 0;\
801 }\
802 .components-notice{\
803 margin-left: 0;\
804 }\
805 .lp-reset-course_progress > div > div{\
806 display: grid;\
807 grid-template-columns: 80px 50px 1fr 80px;\
808 align-items: center;\
809 }\
810 .lp-reset-course_progress > div > div > div{\
811 maegin: 0;\
812 padding: 8px 10px;\
813 }\
814 '));
815 };
816 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ResetCourse);
817
818 /***/ }),
819
820 /***/ "./assets/src/apps/js/admin/pages/tools/reset-data/index.js":
821 /*!******************************************************************!*\
822 !*** ./assets/src/apps/js/admin/pages/tools/reset-data/index.js ***!
823 \******************************************************************/
824 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
825
826 __webpack_require__.r(__webpack_exports__);
827 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
828 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
829 /* harmony export */ });
830 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
831 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
832 /* harmony import */ var _course__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./course */ "./assets/src/apps/js/admin/pages/tools/reset-data/course.js");
833
834
835 const resetData = () => {
836 if (document.querySelectorAll('#learn-press-reset-course-users').length > 0) {
837 wp.element.render((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_course__WEBPACK_IMPORTED_MODULE_1__["default"], null), [...document.querySelectorAll('#learn-press-reset-course-users')][0]);
838 }
839 };
840 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (resetData);
841
842 /***/ }),
843
844 /***/ "./assets/src/apps/js/utils/handle-ajax-api.js":
845 /*!*****************************************************!*\
846 !*** ./assets/src/apps/js/utils/handle-ajax-api.js ***!
847 \*****************************************************/
848 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
849
850 __webpack_require__.r(__webpack_exports__);
851 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
852 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
853 /* harmony export */ });
854 const handleAjax = function (url, params, functions) {
855 wp.apiFetch({
856 path: url,
857 method: 'POST',
858 data: params
859 }).then(res => {
860 if ('function' === typeof functions.success) {
861 functions.success(res);
862 }
863 }).catch(err => {
864 if ('function' === typeof functions.error) {
865 functions.error(err);
866 }
867 }).then(() => {
868 if ('function' === typeof functions.completed) {
869 functions.completed();
870 }
871 });
872 };
873 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleAjax);
874
875 /***/ }),
876
877 /***/ "./assets/src/apps/js/utils/lp-modal-overlay.js":
878 /*!******************************************************!*\
879 !*** ./assets/src/apps/js/utils/lp-modal-overlay.js ***!
880 \******************************************************/
881 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
882
883 __webpack_require__.r(__webpack_exports__);
884 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
885 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
886 /* harmony export */ });
887 const $ = jQuery;
888 let elLPOverlay = null;
889 const lpModalOverlay = {
890 elLPOverlay: null,
891 elMainContent: null,
892 elTitle: null,
893 elBtnYes: null,
894 elBtnNo: null,
895 elFooter: null,
896 elCalledModal: null,
897 callBackYes: null,
898 instance: null,
899 init() {
900 if (this.instance) {
901 return true;
902 }
903 this.elLPOverlay = $('.lp-overlay');
904 if (!this.elLPOverlay.length) {
905 return false;
906 }
907 elLPOverlay = this.elLPOverlay;
908 this.elMainContent = elLPOverlay.find('.main-content');
909 this.elTitle = elLPOverlay.find('.modal-title');
910 this.elBtnYes = elLPOverlay.find('.btn-yes');
911 this.elBtnNo = elLPOverlay.find('.btn-no');
912 this.elFooter = elLPOverlay.find('.lp-modal-footer');
913 $(document).on('click', '.close, .btn-no', function () {
914 elLPOverlay.hide();
915 });
916 $(document).on('click', '.btn-yes', function (e) {
917 e.preventDefault();
918 e.stopPropagation();
919 if ('function' === typeof lpModalOverlay.callBackYes) {
920 lpModalOverlay.callBackYes();
921 }
922 });
923 this.instance = this;
924 return true;
925 },
926 setElCalledModal(elCalledModal) {
927 this.elCalledModal = elCalledModal;
928 },
929 setContentModal(content, event) {
930 this.elMainContent.html(content);
931 if ('function' === typeof event) {
932 event();
933 }
934 },
935 setTitleModal(content) {
936 this.elTitle.html(content);
937 }
938 };
939 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lpModalOverlay);
940
941 /***/ }),
942
943 /***/ "@wordpress/element":
944 /*!*********************************!*\
945 !*** external ["wp","element"] ***!
946 \*********************************/
947 /***/ ((module) => {
948
949 module.exports = window["wp"]["element"];
950
951 /***/ })
952
953 /******/ });
954 /************************************************************************/
955 /******/ // The module cache
956 /******/ var __webpack_module_cache__ = {};
957 /******/
958 /******/ // The require function
959 /******/ function __webpack_require__(moduleId) {
960 /******/ // Check if module is in cache
961 /******/ var cachedModule = __webpack_module_cache__[moduleId];
962 /******/ if (cachedModule !== undefined) {
963 /******/ return cachedModule.exports;
964 /******/ }
965 /******/ // Create a new module (and put it into the cache)
966 /******/ var module = __webpack_module_cache__[moduleId] = {
967 /******/ // no module.id needed
968 /******/ // no module.loaded needed
969 /******/ exports: {}
970 /******/ };
971 /******/
972 /******/ // Execute the module function
973 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
974 /******/
975 /******/ // Return the exports of the module
976 /******/ return module.exports;
977 /******/ }
978 /******/
979 /************************************************************************/
980 /******/ /* webpack/runtime/compat get default export */
981 /******/ (() => {
982 /******/ // getDefaultExport function for compatibility with non-harmony modules
983 /******/ __webpack_require__.n = (module) => {
984 /******/ var getter = module && module.__esModule ?
985 /******/ () => (module['default']) :
986 /******/ () => (module);
987 /******/ __webpack_require__.d(getter, { a: getter });
988 /******/ return getter;
989 /******/ };
990 /******/ })();
991 /******/
992 /******/ /* webpack/runtime/define property getters */
993 /******/ (() => {
994 /******/ // define getter functions for harmony exports
995 /******/ __webpack_require__.d = (exports, definition) => {
996 /******/ for(var key in definition) {
997 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
998 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
999 /******/ }
1000 /******/ }
1001 /******/ };
1002 /******/ })();
1003 /******/
1004 /******/ /* webpack/runtime/hasOwnProperty shorthand */
1005 /******/ (() => {
1006 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
1007 /******/ })();
1008 /******/
1009 /******/ /* webpack/runtime/make namespace object */
1010 /******/ (() => {
1011 /******/ // define __esModule on exports
1012 /******/ __webpack_require__.r = (exports) => {
1013 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1014 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1015 /******/ }
1016 /******/ Object.defineProperty(exports, '__esModule', { value: true });
1017 /******/ };
1018 /******/ })();
1019 /******/
1020 /************************************************************************/
1021 var __webpack_exports__ = {};
1022 // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
1023 (() => {
1024 /*!*************************************************!*\
1025 !*** ./assets/src/apps/js/admin/pages/tools.js ***!
1026 \*************************************************/
1027 __webpack_require__.r(__webpack_exports__);
1028 /* 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");
1029 /* 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");
1030 /* 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");
1031 /* 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");
1032 /* harmony import */ var _tools_reset_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tools/reset-data */ "./assets/src/apps/js/admin/pages/tools/reset-data/index.js");
1033
1034
1035
1036
1037
1038 (function ($) {
1039 const $doc = $(document);
1040 let isRunning = false;
1041 const installSampleCourse = function installSampleCourse(e) {
1042 e.preventDefault();
1043 const $button = $(this);
1044 if (isRunning) {
1045 return;
1046 }
1047 if (!confirm(lpGlobalSettings.i18n.confirm_install_sample_data)) {
1048 return;
1049 }
1050 $button.addClass('disabled').html($button.data('installing-text'));
1051 $('.lp-install-sample__response').remove();
1052 isRunning = true;
1053 $.ajax({
1054 url: $button.attr('href'),
1055 data: $('.lp-install-sample__options').serializeJSON(),
1056 success(response) {
1057 $button.removeClass('disabled').html($button.data('text'));
1058 isRunning = false;
1059 $(response).insertBefore($button.parent());
1060 },
1061 error() {
1062 $button.removeClass('disabled').html($button.data('text'));
1063 isRunning = false;
1064 $(response).insertBefore($button.parent());
1065 }
1066 });
1067 };
1068 const uninstallSampleCourse = function uninstallSampleCourse(e) {
1069 e.preventDefault();
1070 const $button = $(this);
1071 if (isRunning) {
1072 return;
1073 }
1074 if (!confirm(lpGlobalSettings.i18n.confirm_uninstall_sample_data)) {
1075 return;
1076 }
1077 $button.addClass('disabled').html($button.data('uninstalling-text'));
1078 isRunning = true;
1079 $.ajax({
1080 url: $button.attr('href'),
1081 success(response) {
1082 $button.removeClass('disabled').html($button.data('text'));
1083 isRunning = false;
1084 $(response).insertBefore($button.parent());
1085 },
1086 error() {
1087 $button.removeClass('disabled').html($button.data('text'));
1088 isRunning = false;
1089 $(response).insertBefore($button.parent());
1090 }
1091 });
1092 };
1093 const clearHardCache = function clearHardCache(e) {
1094 e.preventDefault();
1095 const $button = $(this);
1096 if ($button.hasClass('disabled')) {
1097 return;
1098 }
1099 $button.addClass('disabled').html($button.data('cleaning-text'));
1100 $.ajax({
1101 url: $button.attr('href'),
1102 data: {},
1103 success(response) {
1104 $button.removeClass('disabled').html($button.data('text'));
1105 },
1106 error() {
1107 $button.removeClass('disabled').html($button.data('text'));
1108 }
1109 });
1110 };
1111 const toggleHardCache = function toggleHardCache() {
1112 $.ajax({
1113 url: 'admin.php?page=lp-toggle-hard-cache-option',
1114 data: {
1115 v: this.checked ? 'yes' : 'no'
1116 },
1117 success(response) {},
1118 error() {}
1119 });
1120 };
1121 const toggleOptions = function toggleOptions(e) {
1122 e.preventDefault();
1123 $('.lp-install-sample__options').toggleClass('hide-if-js');
1124 };
1125 $(function () {
1126 (0,_tools_database_upgrade__WEBPACK_IMPORTED_MODULE_0__["default"])();
1127 (0,_tools_database_create_indexs__WEBPACK_IMPORTED_MODULE_1__["default"])();
1128 (0,_tools_database_re_upgrade_db__WEBPACK_IMPORTED_MODULE_2__["default"])();
1129 (0,_tools_reset_data__WEBPACK_IMPORTED_MODULE_4__["default"])();
1130 (0,_tools_database_clean_database__WEBPACK_IMPORTED_MODULE_3__["default"])();
1131 $doc.on('click', '.lp-install-sample__install', installSampleCourse).on('click', '.lp-install-sample__uninstall', uninstallSampleCourse).on('click', '#learn-press-clear-cache', clearHardCache).on('click', 'input[name="enable_hard_cache"]', toggleHardCache).on('click', '.lp-install-sample__toggle-options', toggleOptions);
1132 });
1133 })(jQuery);
1134 })();
1135
1136 /******/ })()
1137 ;
1138 //# sourceMappingURL=tools.js.map