PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.3.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.3.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 4.2.1 All 138 releases
learnpress / assets / js / dist / admin / pages / tools.js

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

1,162 lines 48.4 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/admin/pages/tools/reset-data/course.js"
604 /*!*******************************************************************!*\
605 !*** ./assets/src/apps/js/admin/pages/tools/reset-data/course.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 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
614 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
615
616 /**
617 * Reset course progress.
618 *
619 * @since 4.0.5.
620 * @author Nhamdv - Code choi choi in Physcode.
621 */
622 const {
623 __
624 } = wp.i18n;
625 const {
626 TextControl,
627 Button,
628 Spinner,
629 CheckboxControl,
630 Notice
631 } = wp.components;
632 const {
633 useState,
634 useEffect
635 } = wp.element;
636 const {
637 addQueryArgs
638 } = wp.url;
639 const ResetCourse = () => {
640 const [loading, setLoading] = useState(false);
641 const [search, setSearch] = useState('');
642 const [data, setData] = useState([]);
643 const [checkData, setCheckData] = useState([]);
644 const [message, setMessage] = useState([]);
645 const [loadingReset, setLoadingReset] = useState(false);
646 useEffect(() => {
647 responsiveData(search);
648 }, [search]);
649 const responsiveData = async s => {
650 try {
651 if (!s || loading) {
652 setMessage([]);
653 setData([]);
654 return;
655 }
656 if (s.length < 3) {
657 setMessage([{
658 status: 'error',
659 message: 'Please enter at least 3 characters to searching course.'
660 }]);
661 setData([]);
662 return;
663 }
664 setLoading(true);
665 const response = await wp.apiFetch({
666 path: addQueryArgs('lp/v1/admin/tools/reset-data/search-courses', {
667 s
668 }),
669 method: 'GET'
670 });
671 const {
672 status,
673 data
674 } = response;
675 setLoading(false);
676 if (status === 'success') {
677 setData(data);
678 setMessage([]);
679 } else {
680 setMessage([{
681 status: 'error',
682 message: response.message || 'LearnPress: Search Course Fail!'
683 }]);
684 setData([]);
685 }
686 } catch (error) {
687 console.log(error.message);
688 }
689 };
690 function checkItems(id) {
691 const datas = [...checkData];
692 if (datas.includes(id)) {
693 const index = datas.indexOf(id);
694 if (index > -1) {
695 datas.splice(index, 1);
696 }
697 } else {
698 datas.push(id);
699 }
700 setCheckData(datas);
701 }
702 const resetCourse = async () => {
703 if (checkData.length === 0) {
704 setMessage([{
705 status: 'error',
706 message: 'Please chooce Course for reset data!'
707 }]);
708 return;
709 }
710
711 // eslint-disable-next-line no-alert
712 if (!confirm('Are you sure to reset course progress of all users enrolled this course?')) {
713 return;
714 }
715 const notice = [];
716 try {
717 setLoadingReset(true);
718 for (const courseId of checkData) {
719 const response = await wp.apiFetch({
720 path: addQueryArgs('lp/v1/admin/tools/reset-data/reset-courses', {
721 courseId
722 }),
723 method: 'GET'
724 });
725 const {
726 status,
727 data,
728 message
729 } = response;
730 notice.push({
731 status,
732 message: message || `Course #${courseId} reset successfully!`
733 });
734 }
735 setLoadingReset(false);
736 } catch (error) {
737 notice.push({
738 status: 'error',
739 message: error.message || `LearnPress Error: Reset Course Data.`
740 });
741 }
742 setMessage(notice);
743 };
744 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("h2", null, __('Reset Course Progress', 'learnpress')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
745 className: "description"
746 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, __('This action will reset course progress of all users who have enrolled.', 'learnpress')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, __('Search results only show if courses have user data.', 'learnpress')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TextControl, {
747 placeholder: __('Search course by name', 'learnpress'),
748 value: search,
749 onChange: value => setSearch(value),
750 style: {
751 width: 300
752 }
753 }))), loading && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Spinner, null), data.length > 0 && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
754 className: "lp-reset-course_progress",
755 style: {
756 border: '1px solid #eee'
757 }
758 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
759 style: {
760 background: '#eee'
761 }
762 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
763 checked: checkData.length === data.length,
764 onChange: () => {
765 if (checkData.length === data.length) {
766 setCheckData([]);
767 } else {
768 setCheckData(data.map(dt => dt.id));
769 }
770 },
771 style: {
772 margin: 0
773 }
774 })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, __('ID', 'learnpress')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, __('Name', 'learnpress')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, __('Students', 'learnpress')))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
775 style: {
776 height: '100%',
777 maxHeight: 200,
778 overflow: 'auto'
779 }
780 }, data.map(dt => {
781 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
782 style: {
783 borderTop: '1px solid #eee'
784 },
785 key: dt.id
786 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
787 checked: checkData.includes(dt.id),
788 onChange: () => checkItems(dt.id)
789 })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, "#", dt.id), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, dt.title), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, dt.students));
790 }))), loadingReset ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Spinner, null) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
791 isPrimary: true,
792 onClick: () => resetCourse(),
793 style: {
794 marginTop: 10,
795 height: 30
796 }
797 }, __('Reset now', 'learnpress'))), message.length > 0 && message.map((mess, index) => {
798 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Notice, {
799 status: mess.status,
800 key: index,
801 isDismissible: false
802 }, mess.message);
803 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("style", null, '\
804 .lp-reset-course_progress .components-base-control__field {\
805 margin: 0;\
806 }\
807 .components-notice{\
808 margin-left: 0;\
809 }\
810 .lp-reset-course_progress > div > div{\
811 display: grid;\
812 grid-template-columns: 80px 50px 1fr 80px;\
813 align-items: center;\
814 }\
815 .lp-reset-course_progress > div > div > div{\
816 maegin: 0;\
817 padding: 8px 10px;\
818 }\
819 '));
820 };
821 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ResetCourse);
822
823 /***/ },
824
825 /***/ "./assets/src/apps/js/admin/pages/tools/reset-data/index.js"
826 /*!******************************************************************!*\
827 !*** ./assets/src/apps/js/admin/pages/tools/reset-data/index.js ***!
828 \******************************************************************/
829 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
830
831 __webpack_require__.r(__webpack_exports__);
832 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
833 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
834 /* harmony export */ });
835 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
836 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
837 /* harmony import */ var _course__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./course */ "./assets/src/apps/js/admin/pages/tools/reset-data/course.js");
838
839
840 const resetData = () => {
841 if (document.querySelectorAll('#learn-press-reset-course-users').length > 0) {
842 wp.element.render((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_course__WEBPACK_IMPORTED_MODULE_1__["default"], null), [...document.querySelectorAll('#learn-press-reset-course-users')][0]);
843 }
844 };
845 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (resetData);
846
847 /***/ },
848
849 /***/ "./assets/src/apps/js/utils/handle-ajax-api.js"
850 /*!*****************************************************!*\
851 !*** ./assets/src/apps/js/utils/handle-ajax-api.js ***!
852 \*****************************************************/
853 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
854
855 __webpack_require__.r(__webpack_exports__);
856 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
857 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
858 /* harmony export */ });
859 const handleAjax = function (url, params, functions) {
860 wp.apiFetch({
861 path: url,
862 method: 'POST',
863 data: params
864 }).then(res => {
865 if ('function' === typeof functions.success) {
866 functions.success(res);
867 }
868 }).catch(err => {
869 if ('function' === typeof functions.error) {
870 functions.error(err);
871 }
872 }).then(() => {
873 if ('function' === typeof functions.completed) {
874 functions.completed();
875 }
876 });
877 };
878 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleAjax);
879
880 /***/ },
881
882 /***/ "./assets/src/apps/js/utils/lp-modal-overlay.js"
883 /*!******************************************************!*\
884 !*** ./assets/src/apps/js/utils/lp-modal-overlay.js ***!
885 \******************************************************/
886 (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
887
888 __webpack_require__.r(__webpack_exports__);
889 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
890 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
891 /* harmony export */ });
892 const $ = jQuery;
893 let elLPOverlay = null;
894 const lpModalOverlay = {
895 elLPOverlay: null,
896 elMainContent: null,
897 elTitle: null,
898 elBtnYes: null,
899 elBtnNo: null,
900 elFooter: null,
901 elCalledModal: null,
902 callBackYes: null,
903 instance: null,
904 init() {
905 if (this.instance) {
906 return true;
907 }
908 this.elLPOverlay = $('.lp-overlay');
909 if (!this.elLPOverlay.length) {
910 return false;
911 }
912 elLPOverlay = this.elLPOverlay;
913 this.elMainContent = elLPOverlay.find('.main-content');
914 this.elTitle = elLPOverlay.find('.modal-title');
915 this.elBtnYes = elLPOverlay.find('.btn-yes');
916 this.elBtnNo = elLPOverlay.find('.btn-no');
917 this.elFooter = elLPOverlay.find('.lp-modal-footer');
918 $(document).on('click', '.close, .btn-no', function () {
919 elLPOverlay.hide();
920 });
921 $(document).on('click', '.btn-yes', function (e) {
922 e.preventDefault();
923 e.stopPropagation();
924 if ('function' === typeof lpModalOverlay.callBackYes) {
925 lpModalOverlay.callBackYes(e);
926 }
927 });
928 this.instance = this;
929 return true;
930 },
931 setElCalledModal(elCalledModal) {
932 this.elCalledModal = elCalledModal;
933 },
934 setContentModal(content, event) {
935 this.elMainContent.html(content);
936 if ('function' === typeof event) {
937 event();
938 }
939 },
940 setTitleModal(content) {
941 this.elTitle.html(content);
942 }
943 };
944 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lpModalOverlay);
945
946 /***/ },
947
948 /***/ "react"
949 /*!************************!*\
950 !*** external "React" ***!
951 \************************/
952 (module) {
953
954 module.exports = window["React"];
955
956 /***/ }
957
958 /******/ });
959 /************************************************************************/
960 /******/ // The module cache
961 /******/ var __webpack_module_cache__ = {};
962 /******/
963 /******/ // The require function
964 /******/ function __webpack_require__(moduleId) {
965 /******/ // Check if module is in cache
966 /******/ var cachedModule = __webpack_module_cache__[moduleId];
967 /******/ if (cachedModule !== undefined) {
968 /******/ return cachedModule.exports;
969 /******/ }
970 /******/ // Create a new module (and put it into the cache)
971 /******/ var module = __webpack_module_cache__[moduleId] = {
972 /******/ // no module.id needed
973 /******/ // no module.loaded needed
974 /******/ exports: {}
975 /******/ };
976 /******/
977 /******/ // Execute the module function
978 /******/ if (!(moduleId in __webpack_modules__)) {
979 /******/ delete __webpack_module_cache__[moduleId];
980 /******/ var e = new Error("Cannot find module '" + moduleId + "'");
981 /******/ e.code = 'MODULE_NOT_FOUND';
982 /******/ throw e;
983 /******/ }
984 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
985 /******/
986 /******/ // Return the exports of the module
987 /******/ return module.exports;
988 /******/ }
989 /******/
990 /************************************************************************/
991 /******/ /* webpack/runtime/compat get default export */
992 /******/ (() => {
993 /******/ // getDefaultExport function for compatibility with non-harmony modules
994 /******/ __webpack_require__.n = (module) => {
995 /******/ var getter = module && module.__esModule ?
996 /******/ () => (module['default']) :
997 /******/ () => (module);
998 /******/ __webpack_require__.d(getter, { a: getter });
999 /******/ return getter;
1000 /******/ };
1001 /******/ })();
1002 /******/
1003 /******/ /* webpack/runtime/define property getters */
1004 /******/ (() => {
1005 /******/ // define getter functions for harmony exports
1006 /******/ __webpack_require__.d = (exports, definition) => {
1007 /******/ for(var key in definition) {
1008 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1009 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1010 /******/ }
1011 /******/ }
1012 /******/ };
1013 /******/ })();
1014 /******/
1015 /******/ /* webpack/runtime/hasOwnProperty shorthand */
1016 /******/ (() => {
1017 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
1018 /******/ })();
1019 /******/
1020 /******/ /* webpack/runtime/make namespace object */
1021 /******/ (() => {
1022 /******/ // define __esModule on exports
1023 /******/ __webpack_require__.r = (exports) => {
1024 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1025 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1026 /******/ }
1027 /******/ Object.defineProperty(exports, '__esModule', { value: true });
1028 /******/ };
1029 /******/ })();
1030 /******/
1031 /************************************************************************/
1032 var __webpack_exports__ = {};
1033 // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
1034 (() => {
1035 /*!*************************************************!*\
1036 !*** ./assets/src/apps/js/admin/pages/tools.js ***!
1037 \*************************************************/
1038 __webpack_require__.r(__webpack_exports__);
1039 /* 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");
1040 /* 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");
1041 /* 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");
1042 /* 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");
1043 /* 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");
1044
1045
1046
1047
1048
1049 (function ($) {
1050 const $doc = $(document);
1051 let isRunning = false;
1052 const installSampleCourse = function installSampleCourse(e) {
1053 e.preventDefault();
1054 const $button = $(this);
1055 if (isRunning) {
1056 return;
1057 }
1058 if (!confirm(lpGlobalSettings.i18n.confirm_install_sample_data)) {
1059 return;
1060 }
1061 $button.addClass('disabled').html($button.data('installing-text'));
1062 $('.lp-install-sample__response').remove();
1063 isRunning = true;
1064 $.ajax({
1065 method: 'POST',
1066 url: $button.attr('href'),
1067 data: $('.lp-install-sample__options').serializeJSON(),
1068 success(response) {
1069 $button.removeClass('disabled').html($button.data('text'));
1070 isRunning = false;
1071 $(response).insertBefore($button.parent());
1072 },
1073 error() {
1074 $button.removeClass('disabled').html($button.data('text'));
1075 isRunning = false;
1076 $(response).insertBefore($button.parent());
1077 }
1078 });
1079 };
1080 const uninstallSampleCourse = function uninstallSampleCourse(e) {
1081 e.preventDefault();
1082 const $button = $(this);
1083 if (isRunning) {
1084 return;
1085 }
1086 if (!confirm(lpGlobalSettings.i18n.confirm_uninstall_sample_data)) {
1087 return;
1088 }
1089 $button.addClass('disabled').html($button.data('uninstalling-text'));
1090 isRunning = true;
1091 $.ajax({
1092 url: $button.attr('href'),
1093 success(response) {
1094 $button.removeClass('disabled').html($button.data('text'));
1095 isRunning = false;
1096 $(response).insertBefore($button.parent());
1097 },
1098 error() {
1099 $button.removeClass('disabled').html($button.data('text'));
1100 isRunning = false;
1101 $(response).insertBefore($button.parent());
1102 }
1103 });
1104 };
1105 const clearHardCache = function clearHardCache(e) {
1106 e.preventDefault();
1107 const $button = $(this);
1108 if ($button.hasClass('disabled')) {
1109 return;
1110 }
1111 $button.addClass('disabled').html($button.data('cleaning-text'));
1112 $.ajax({
1113 url: $button.attr('href'),
1114 data: {},
1115 success(response) {
1116 $button.removeClass('disabled').html($button.data('text'));
1117 },
1118 error() {
1119 $button.removeClass('disabled').html($button.data('text'));
1120 }
1121 });
1122 };
1123 const toggleHardCache = function toggleHardCache() {
1124 $.ajax({
1125 url: 'admin.php?page=lp-toggle-hard-cache-option',
1126 data: {
1127 v: this.checked ? 'yes' : 'no'
1128 },
1129 success(response) {},
1130 error() {}
1131 });
1132 };
1133 const toggleOptions = function toggleOptions(e) {
1134 e.preventDefault();
1135 $('.lp-install-sample__options').toggleClass('hide-if-js');
1136 };
1137 const formatValueInput = e => {
1138 const input = $(e.target);
1139 let value = input.val();
1140 value = value.replace(/[^0-9]/g, '');
1141 input.val(value);
1142 if (parseInt(value, 10) < input.attr('min')) {
1143 input.val(input.attr('min'));
1144 }
1145 if (parseInt(value, 10) > input.attr('max')) {
1146 input.val(input.attr('max'));
1147 }
1148 };
1149 $(function () {
1150 (0,_tools_database_upgrade__WEBPACK_IMPORTED_MODULE_0__["default"])();
1151 (0,_tools_database_create_indexs__WEBPACK_IMPORTED_MODULE_1__["default"])();
1152 (0,_tools_database_re_upgrade_db__WEBPACK_IMPORTED_MODULE_2__["default"])();
1153 (0,_tools_reset_data__WEBPACK_IMPORTED_MODULE_4__["default"])();
1154 (0,_tools_database_clean_database__WEBPACK_IMPORTED_MODULE_3__["default"])();
1155 $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).on('change', 'input[name="section-range[]"]', formatValueInput).on('change', 'input[name="item-range[]"]', formatValueInput).on('change', 'input[name="question-range[]"]', formatValueInput).on('change', 'input[name="answer-range[]"]', formatValueInput).on('change', 'input[name="course-price"]', formatValueInput);
1156 });
1157 })(jQuery);
1158 })();
1159
1160 /******/ })()
1161 ;
1162 //# sourceMappingURL=tools.js.map