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

1,237 lines 46.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (function() { // 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 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10
11 __webpack_require__.r(__webpack_exports__);
12 /* 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");
13 /* 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");
14
15
16
17 const cleanDatabases = () => {
18 const elCleanDatabases = document.querySelector('#lp-tool-clean-database');
19
20 if (!elCleanDatabases) {
21 return;
22 }
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
32 if (checkedOne == false) {
33 prepareMessage.style.display = 'block';
34 prepareMessage.textContent = 'You must choose at least one table to take this action';
35 return;
36 }
37
38 prepareMessage.style.display = 'none';
39 const elLoading = elCleanDatabases.querySelector('.wrapper-lp-loading');
40
41 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
42 return;
43 }
44
45 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
46 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elLoading.innerHTML);
47 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elCleanDatabases.querySelector('h2').textContent);
48 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'inline-block';
49 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].textContent = 'Run';
50 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Close';
51 const listTables = new Array();
52 const ElToolSelectLiCheked = elToolsSelect.querySelectorAll('ul li input:checked');
53 ElToolSelectLiCheked.forEach(e => {
54 listTables.push(e.value);
55 });
56 const tables = listTables[0];
57 const item = elLoading.querySelector('.progressbar__item');
58 const itemtotal = item.getAttribute('data-total');
59 const modal = document.querySelector('.lp-modal-body .main-content');
60 const notice = modal.querySelector('.lp-tool__message');
61
62 if (itemtotal <= 0) {
63 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'none';
64 notice.textContent = 'There is no data that need to be repaired in the chosen tables';
65 notice.style.display = 'block';
66 return;
67 }
68
69 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
70 // warn user before doing
71 const r = confirm('The modified data is impossible to be restored. Please backup your website before doing this.');
72
73 if (r == false) {
74 return;
75 }
76
77 const modal = document.querySelector('.lp-modal-body .main-content');
78 const notice = modal.querySelector('.lp-tool__message');
79 notice.textContent = 'This action is in processing. Don\'t close this page';
80 notice.style.display = 'block';
81 const url = '/lp/v1/admin/tools/clean-tables';
82 const params = {
83 tables,
84 itemtotal
85 };
86 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'none';
87 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'none';
88 const functions = {
89 success: res => {
90 const {
91 status,
92 message,
93 data: {
94 processed,
95 percent
96 }
97 } = res;
98 const modalItem = modal.querySelector('.progressbar__item');
99 const progressBarRows = modalItem.querySelector('.progressbar__rows');
100 const progressPercent = modalItem.querySelector('.progressbar__percent');
101 const progressValue = modalItem.querySelector('.progressbar__value');
102 console.log(status);
103
104 if ('success' === status) {
105 setTimeout(() => {
106 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
107 }, 2000); // update processed quantity
108
109 progressBarRows.textContent = processed + ' / ' + itemtotal; // update percent
110
111 progressPercent.textContent = '( ' + percent + '%' + ' )'; // update percent width
112
113 progressValue.style.width = percent + '%';
114 } else if ('finished' === status) {
115 // Re-update indexs
116 progressBarRows.textContent = itemtotal + ' / ' + itemtotal;
117 progressPercent.textContent = '( 100% )'; // Update complete nofication
118
119 const modal = document.querySelector('.lp-modal-body .main-content');
120 const notice = modal.querySelector('.lp-tool__message');
121 notice.textContent = 'Process has been completed. Press click the finish button to close this popup';
122 notice.style.color = 'white';
123 notice.style.background = 'green';
124 progressValue.style.width = '100%'; // Show finish button
125
126 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'inline-block';
127 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Finish';
128 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].addEventListener('click', function () {
129 location.reload();
130 });
131 } else {
132 console.log(message);
133 }
134 },
135 error: err => {
136 console.log(err);
137 },
138 completed: () => {}
139 };
140 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
141 };
142 });
143 };
144
145 /* harmony default export */ __webpack_exports__["default"] = (cleanDatabases);
146
147 /***/ }),
148
149 /***/ "./assets/src/apps/js/admin/pages/tools/database/create_indexs.js":
150 /*!************************************************************************!*\
151 !*** ./assets/src/apps/js/admin/pages/tools/database/create_indexs.js ***!
152 \************************************************************************/
153 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
154
155 __webpack_require__.r(__webpack_exports__);
156 /* 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");
157 /* 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");
158
159
160
161 const createIndexes = () => {
162 const elCreateIndexTables = document.querySelector('#lp-tool-create-indexes-tables');
163
164 if (!elCreateIndexTables) {
165 return;
166 }
167
168 const elBtnCreateIndexes = elCreateIndexTables.querySelector('.lp-btn-create-indexes');
169 elBtnCreateIndexes.addEventListener('click', e => {
170 e.preventDefault();
171 const elLoading = elCreateIndexTables.querySelector('.wrapper-lp-loading');
172
173 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
174 return;
175 }
176
177 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
178 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elLoading.innerHTML);
179 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elCreateIndexTables.querySelector('h2').textContent);
180 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'inline-block';
181 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].textContent = 'Run';
182 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Close';
183 const url = '/lp/v1/admin/tools/list-tables-indexs';
184 const params = {};
185 const functions = {
186 success: res => {
187 const {
188 status,
189 message,
190 data: {
191 tables,
192 table
193 }
194 } = res;
195 const elSteps = document.querySelector('.example-lp-group-step');
196 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elSteps.innerHTML);
197 const elGroupStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay[0].querySelector('.lp-group-step '); // Show progress when upgrading.
198
199 const showProgress = (stepCurrent, percent) => {
200 const elItemStepCurrent = elGroupStep.querySelector('input[value=' + stepCurrent + ']').closest('.lp-item-step');
201 elItemStepCurrent.classList.add('running');
202
203 if (100 === percent) {
204 elItemStepCurrent.classList.remove('running');
205 elItemStepCurrent.classList.add('completed');
206 }
207
208 const progressBar = elItemStepCurrent.querySelector('.progress-bar');
209 progressBar.style.width = percent;
210 }; // Scroll to step current.
211
212
213 const scrollToStepCurrent = stepCurrent => {
214 const elItemStepCurrent = elGroupStep.querySelector('input[value=' + stepCurrent + ']').closest('.lp-item-step');
215 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;
216 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.stop().animate({
217 scrollTop: offset
218 }, 600);
219 };
220
221 for (const table in tables) {
222 const elItemStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay[0].querySelector('.lp-item-step').cloneNode(true);
223 const input = elItemStep.querySelector('input');
224 const label = elItemStep.querySelector('label');
225 label.textContent = `Table: ${table}`;
226 input.value = table;
227 elGroupStep.append(elItemStep);
228 }
229
230 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
231 const url = '/lp/v1/admin/tools/create-indexs';
232 const params = {
233 tables,
234 table
235 };
236 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'none';
237 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes[0].style.display = 'none';
238 showProgress(table, 0.1);
239 const functions = {
240 success: res => {
241 const {
242 status,
243 message,
244 data: {
245 table,
246 percent
247 }
248 } = res;
249 showProgress(params.table, percent);
250
251 if (undefined !== table) {
252 if (params.table !== table) {
253 showProgress(table, 0.1);
254 scrollToStepCurrent(table);
255 }
256
257 params.table = table;
258 }
259
260 if ('success' === status) {
261 setTimeout(() => {
262 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
263 }, 2000);
264 } else if ('finished' === status) {
265 console.log('finished');
266 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].style.display = 'inline-block';
267 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo[0].textContent = 'Finish';
268 } else {
269 console.log(message);
270 }
271 },
272 error: err => {
273 console.log(err);
274 },
275 completed: () => {}
276 };
277 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
278 };
279 },
280 error: err => {},
281 completed: () => {}
282 };
283 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, params, functions);
284 });
285 };
286
287 /* harmony default export */ __webpack_exports__["default"] = (createIndexes);
288
289 /***/ }),
290
291 /***/ "./assets/src/apps/js/admin/pages/tools/database/re-upgrade-db.js":
292 /*!************************************************************************!*\
293 !*** ./assets/src/apps/js/admin/pages/tools/database/re-upgrade-db.js ***!
294 \************************************************************************/
295 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
296
297 __webpack_require__.r(__webpack_exports__);
298 /* 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");
299 /* 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");
300
301
302
303 const reUpgradeDB = () => {
304 const elToolReUpgradeDB = document.querySelector('#lp-tool-re-upgrade-db');
305
306 if (!elToolReUpgradeDB) {
307 return;
308 } // Check valid to show popup re-upgrade
309
310
311 let url = 'lp/v1/database/check-db-valid-re-upgrade';
312 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, {}, {
313 success(res) {
314 const {
315 data: {
316 can_re_upgrade
317 }
318 } = res;
319
320 if (!can_re_upgrade) {
321 return;
322 }
323
324 elToolReUpgradeDB.style.display = 'block';
325 const elBtnReUpradeDB = elToolReUpgradeDB.querySelector('.lp-btn-re-upgrade-db');
326 const elMessage = elToolReUpgradeDB.querySelector('.learn-press-message');
327 elBtnReUpradeDB.addEventListener('click', () => {
328 // eslint-disable-next-line no-alert
329 if (confirm('Are you want to Re Upgrade!')) {
330 url = 'lp/v1/database/del-tb-lp-upgrade-db';
331 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(url, {}, {
332 success(res) {
333 const {
334 status,
335 message,
336 data: {
337 url
338 }
339 } = res;
340
341 if ('success' === status && undefined !== url) {
342 window.location.href = url;
343 }
344 },
345
346 error(err) {
347 elMessage.classList.add('error');
348 elMessage.textContent = err.message;
349 elMessage.style.display = 'block';
350 }
351
352 });
353 }
354 });
355 },
356
357 error(err) {}
358
359 });
360 };
361
362 /* harmony default export */ __webpack_exports__["default"] = (reUpgradeDB);
363
364 /***/ }),
365
366 /***/ "./assets/src/apps/js/admin/pages/tools/database/upgrade.js":
367 /*!******************************************************************!*\
368 !*** ./assets/src/apps/js/admin/pages/tools/database/upgrade.js ***!
369 \******************************************************************/
370 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
371
372 __webpack_require__.r(__webpack_exports__);
373 /* 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");
374 /* 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");
375
376
377 const $ = jQuery;
378 const elToolUpgradeDB = $('#lp-tool-upgrade-db');
379
380 const upgradeDB = () => {
381 let isUpgrading = 0;
382 const elWrapperTermsUpgrade = elToolUpgradeDB.find('.wrapper-terms-upgrade');
383 const elStatusUpgrade = elToolUpgradeDB.find('.wrapper-lp-status-upgrade');
384 const elWrapperUpgradeMessage = elToolUpgradeDB.find('.wrapper-lp-upgrade-message');
385 let checkValidBeforeUpgrade = null;
386
387 if (elWrapperTermsUpgrade.length) {
388 // Show Terms Upgrade.
389 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperTermsUpgrade.html());
390 const elTermUpdate = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.find('.terms-upgrade');
391 const elLPAgreeTerm = elTermUpdate.find('input[name=lp-agree-term]');
392 const elTermMessage = elTermUpdate.find('.error');
393 const elMessageUpgrading = $('input[name=message-when-upgrading]').val();
394
395 checkValidBeforeUpgrade = function () {
396 elTermMessage.hide();
397 elTermMessage.removeClass('learn-press-message');
398
399 if (elLPAgreeTerm.is(':checked')) {
400 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])('/lp/v1/database/agree_terms', {
401 agree_terms: 1
402 }, {});
403 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
404 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.prepend('<span class="learn-press-notice">' + elMessageUpgrading + '</span>');
405 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elStatusUpgrade.html());
406 return true;
407 }
408
409 elTermMessage.show();
410 elTermMessage.addClass('learn-press-message');
411 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.animate({
412 scrollTop: elTermMessage.offset().top
413 });
414 return false;
415 };
416 } else {
417 // Show Steps Upgrade.
418 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elStatusUpgrade.html());
419
420 checkValidBeforeUpgrade = function () {
421 return true;
422 };
423 }
424
425 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elToolUpgradeDB.find('h2').html());
426 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Upgrade');
427 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.show();
428 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.text('close');
429
430 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = function () {
431 if (!checkValidBeforeUpgrade()) {
432 return;
433 }
434
435 isUpgrading = 1;
436 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.hide();
437 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.hide();
438 const urlHandle = '/lp/v1/database/upgrade';
439 const elGroupStep = _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.find('.lp-group-step');
440 const elItemSteps = elToolUpgradeDB.find('.lp-item-step'); // Get params.
441
442 const steps = [];
443 $.each(elItemSteps, function (i, el) {
444 const elItemStepsTmp = $(el);
445
446 if (!elItemStepsTmp.hasClass('completed')) {
447 const step = elItemStepsTmp.find('input').val();
448 steps.push(step);
449 }
450 });
451 const params = {
452 steps,
453 step: steps[0]
454 };
455 let elItemStepCurrent = null; // Show progress when upgrading.
456
457 const showProgress = (stepCurrent, percent) => {
458 elItemStepCurrent = elGroupStep.find('input[value=' + stepCurrent + ']').closest('.lp-item-step');
459 elItemStepCurrent.addClass('running');
460
461 if (100 === percent) {
462 elItemStepCurrent.removeClass('running').addClass('completed');
463 }
464
465 elItemStepCurrent.find('.progress-bar').css('width', percent + '%');
466 elItemStepCurrent.find('.percent').text(percent + '%');
467 }; // Scroll to step current.
468
469
470 const scrollToStepCurrent = stepCurrent => {
471 elItemStepCurrent = elGroupStep.find('input[value=' + stepCurrent + ']').closest('.lp-item-step');
472 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();
473 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.stop().animate({
474 scrollTop: offset
475 }, 600);
476 };
477
478 showProgress(steps[0], 0.1);
479 const funcCallBack = {
480 success: res => {
481 showProgress(params.step, res.percent);
482
483 if (params.step !== res.name) {
484 showProgress(res.name, 0.1);
485 }
486
487 scrollToStepCurrent(params.step);
488
489 if ('success' === res.status) {
490 params.step = res.name;
491 params.data = res.data;
492 setTimeout(() => {
493 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, params, funcCallBack);
494 }, 800);
495 } else if ('finished' === res.status) {
496 isUpgrading = 0;
497 elItemStepCurrent.removeClass('running').addClass('completed');
498 setTimeout(() => {
499 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html());
500 }, 1000);
501 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
502 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
503 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.on('click', () => {
504 window.location.reload();
505 });
506 } else {
507 isUpgrading = 0;
508 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elFooter.find('.learn-press-notice').remove();
509 elItemStepCurrent.removeClass('running').addClass('error');
510 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html(), function () {
511 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Retry').show();
512
513 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
514 window.location.href = lpGlobalSettings.siteurl + '/wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db';
515 };
516
517 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
518
519 if (!res.message) {
520 res.message = 'Upgrade not success! Please clear cache, restart sever then retry or contact to LP to help';
521 }
522
523 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.find('.learn-press-message').addClass('error').html(res.message);
524 });
525 }
526 },
527 error: err => {
528 isUpgrading = 0;
529 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal(elWrapperUpgradeMessage.html(), function () {
530 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnYes.text('Retry').show();
531
532 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].callBackYes = () => {
533 window.location.location = 'wp-admin/admin.php?page=learn-press-tools&tab=database&action=upgrade-db';
534 };
535
536 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elBtnNo.show();
537
538 if (!err.message) {
539 err.message = 'Upgrade not success! Something wrong. Please clear cache, restart sever then retry or contact to LP to help';
540 }
541
542 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elMainContent.find('.learn-press-message').addClass('error').html(err.message);
543 });
544 },
545 completed: () => {}
546 };
547 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, params, funcCallBack);
548 }; // Show confirm if, within upgrading, the user reload the page.
549
550
551 window.onbeforeunload = function () {
552 if (isUpgrading) {
553 return 'LP is upgrading Database. Are you want to reload page?';
554 }
555 }; // Show confirm if, within upgrading, the user close the page.
556
557
558 window.onclose = function () {
559 if (isUpgrading) {
560 return 'LP is upgrading Database. Are you want to close page?';
561 }
562 };
563 };
564
565 const getStepsUpgradeStatus = () => {
566 if (!elToolUpgradeDB.length) {
567 return;
568 } // initial LP Modal Overlay
569
570
571 if (!_utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].init()) {
572 return;
573 }
574
575 const elWrapperStatusUpgrade = $('.wrapper-lp-status-upgrade');
576 const urlHandle = '/lp/v1/database/get_steps'; // Show dialog upgrade database.
577
578 const queryString = window.location.search;
579 const urlParams = new URLSearchParams(queryString);
580 const action = urlParams.get('action');
581
582 if ('upgrade-db' === action) {
583 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
584 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setTitleModal(elToolUpgradeDB.find('h2').html());
585 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].setContentModal($('.wrapper-lp-loading').html());
586 }
587
588 const funcCallBack = {
589 success: res => {
590 const {
591 steps_completed,
592 steps_default
593 } = res;
594
595 if (undefined === steps_completed || undefined === steps_default) {
596 console.log('invalid steps_completed and steps_default');
597 return false;
598 } // Render show Steps.
599
600
601 let htmlStep = '';
602
603 for (const k_gr_steps in steps_default) {
604 const step_group = steps_default[k_gr_steps];
605 const steps = step_group.steps;
606 htmlStep = '<div class="lp-group-step">';
607 htmlStep += '<h3>' + step_group.label + '</h3>';
608
609 for (const k_step in steps) {
610 const step = steps[k_step];
611 let completed = '';
612
613 if (undefined !== steps_completed[k_step]) {
614 completed = 'completed';
615 }
616
617 htmlStep += '<div class="lp-item-step ' + completed + '">';
618 htmlStep += '<div class="lp-item-step-left"><input type="hidden" name="lp_steps_upgrade_db[]" value="' + step.name + '" /></div>';
619 htmlStep += '<div class="lp-item-step-right">';
620 htmlStep += '<label for=""><strong></strong>' + step.label + '</label>';
621 htmlStep += '<div class="description">' + step.description + '</div>';
622 htmlStep += '<div class="percent"></div>';
623 htmlStep += '<span class="progress-bar"></span>';
624 htmlStep += '</div>';
625 htmlStep += '</div>';
626 }
627
628 htmlStep += '</div>';
629 elWrapperStatusUpgrade.append(htmlStep);
630 const elBtnUpgradeDB = $('.lp-btn-upgrade-db');
631
632 if ('upgrade-db' === action) {
633 upgradeDB();
634 }
635
636 elBtnUpgradeDB.on('click', function () {
637 _utils_lp_modal_overlay__WEBPACK_IMPORTED_MODULE_0__["default"].elLPOverlay.show();
638 upgradeDB();
639 });
640 }
641 },
642 error: err => {},
643 completed: () => {}
644 };
645 (0,_utils_handle_ajax_api__WEBPACK_IMPORTED_MODULE_1__["default"])(urlHandle, {}, funcCallBack);
646 };
647
648 /* harmony default export */ __webpack_exports__["default"] = (getStepsUpgradeStatus);
649
650 /***/ }),
651
652 /***/ "./assets/src/apps/js/admin/pages/tools/reset-data/course.js":
653 /*!*******************************************************************!*\
654 !*** ./assets/src/apps/js/admin/pages/tools/reset-data/course.js ***!
655 \*******************************************************************/
656 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
657
658 __webpack_require__.r(__webpack_exports__);
659 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
660 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
661
662
663 /**
664 * Reset course progress.
665 *
666 * @since 4.0.5.
667 * @author Nhamdv - Code choi choi in Physcode.
668 */
669 const {
670 __
671 } = wp.i18n;
672 const {
673 TextControl,
674 Button,
675 Spinner,
676 CheckboxControl,
677 Notice
678 } = wp.components;
679 const {
680 useState,
681 useEffect
682 } = wp.element;
683 const {
684 addQueryArgs
685 } = wp.url;
686
687 const ResetCourse = () => {
688 const [loading, setLoading] = useState(false);
689 const [search, setSearch] = useState('');
690 const [data, setData] = useState([]);
691 const [checkData, setCheckData] = useState([]);
692 const [message, setMessage] = useState([]);
693 const [loadingReset, setLoadingReset] = useState(false);
694 useEffect(() => {
695 responsiveData(search);
696 }, [search]);
697
698 const responsiveData = async s => {
699 try {
700 if (!s || loading) {
701 setMessage([]);
702 setData([]);
703 return;
704 }
705
706 if (s.length < 3) {
707 setMessage([{
708 status: 'error',
709 message: 'Please enter at least 3 characters to searching course.'
710 }]);
711 setData([]);
712 return;
713 }
714
715 setLoading(true);
716 const response = await wp.apiFetch({
717 path: addQueryArgs('lp/v1/admin/tools/reset-data/search-courses', {
718 s
719 }),
720 method: 'GET'
721 });
722 const {
723 status,
724 data
725 } = response;
726 setLoading(false);
727
728 if (status === 'success') {
729 setData(data);
730 setMessage([]);
731 } else {
732 setMessage([{
733 status: 'error',
734 message: response.message || 'LearnPress: Search Course Fail!'
735 }]);
736 setData([]);
737 }
738 } catch (error) {
739 console.log(error.message);
740 }
741 };
742
743 function checkItems(id) {
744 const datas = [...checkData];
745
746 if (datas.includes(id)) {
747 const index = datas.indexOf(id);
748
749 if (index > -1) {
750 datas.splice(index, 1);
751 }
752 } else {
753 datas.push(id);
754 }
755
756 setCheckData(datas);
757 }
758
759 const resetCourse = async () => {
760 if (checkData.length === 0) {
761 setMessage([{
762 status: 'error',
763 message: 'Please chooce Course for reset data!'
764 }]);
765 return;
766 } // eslint-disable-next-line no-alert
767
768
769 if (!confirm('Are you sure to reset course progress of all users enrolled this course?')) {
770 return;
771 }
772
773 const notice = [];
774
775 try {
776 setLoadingReset(true);
777
778 for (const courseId of checkData) {
779 const response = await wp.apiFetch({
780 path: addQueryArgs('lp/v1/admin/tools/reset-data/reset-courses', {
781 courseId
782 }),
783 method: 'GET'
784 });
785 const {
786 status,
787 data,
788 message
789 } = response;
790 notice.push({
791 status,
792 message: message || `Course #${courseId} reset successfully!`
793 });
794 }
795
796 setLoadingReset(false);
797 } catch (error) {
798 notice.push({
799 status: 'error',
800 message: error.message || `LearnPress Error: Reset Course Data.`
801 });
802 }
803
804 setMessage(notice);
805 };
806
807 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", {
808 className: "description"
809 }, (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, {
810 placeholder: __('Search course by name', 'learnpress'),
811 value: search,
812 onChange: value => setSearch(value),
813 style: {
814 width: 300
815 }
816 }))), 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", {
817 className: "lp-reset-course_progress",
818 style: {
819 border: '1px solid #eee'
820 }
821 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
822 style: {
823 background: '#eee'
824 }
825 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
826 checked: checkData.length === data.length,
827 onChange: () => {
828 if (checkData.length === data.length) {
829 setCheckData([]);
830 } else {
831 setCheckData(data.map(dt => dt.id));
832 }
833 },
834 style: {
835 margin: 0
836 }
837 })), (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", {
838 style: {
839 height: '100%',
840 maxHeight: 200,
841 overflow: 'auto'
842 }
843 }, data.map(dt => {
844 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
845 style: {
846 borderTop: '1px solid #eee'
847 },
848 key: dt.id
849 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
850 checked: checkData.includes(dt.id),
851 onChange: () => checkItems(dt.id)
852 })), (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));
853 }))), loadingReset ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Spinner, null) : (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
854 isPrimary: true,
855 onClick: () => resetCourse(),
856 style: {
857 marginTop: 10,
858 height: 30
859 }
860 }, __('Reset now', 'learnpress'))), message.length > 0 && message.map((mess, index) => {
861 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Notice, {
862 status: mess.status,
863 key: index,
864 isDismissible: false
865 }, mess.message);
866 }), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("style", null, '\
867 .lp-reset-course_progress .components-base-control__field {\
868 margin: 0;\
869 }\
870 .components-notice{\
871 margin-left: 0;\
872 }\
873 .lp-reset-course_progress > div > div{\
874 display: grid;\
875 grid-template-columns: 80px 50px 1fr 80px;\
876 align-items: center;\
877 }\
878 .lp-reset-course_progress > div > div > div{\
879 maegin: 0;\
880 padding: 8px 10px;\
881 }\
882 '));
883 };
884
885 /* harmony default export */ __webpack_exports__["default"] = (ResetCourse);
886
887 /***/ }),
888
889 /***/ "./assets/src/apps/js/admin/pages/tools/reset-data/index.js":
890 /*!******************************************************************!*\
891 !*** ./assets/src/apps/js/admin/pages/tools/reset-data/index.js ***!
892 \******************************************************************/
893 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
894
895 __webpack_require__.r(__webpack_exports__);
896 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
897 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
898 /* harmony import */ var _course__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./course */ "./assets/src/apps/js/admin/pages/tools/reset-data/course.js");
899
900
901
902 const resetData = () => {
903 if (document.querySelectorAll('#learn-press-reset-course-users').length > 0) {
904 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]);
905 }
906 };
907
908 /* harmony default export */ __webpack_exports__["default"] = (resetData);
909
910 /***/ }),
911
912 /***/ "./assets/src/apps/js/utils/handle-ajax-api.js":
913 /*!*****************************************************!*\
914 !*** ./assets/src/apps/js/utils/handle-ajax-api.js ***!
915 \*****************************************************/
916 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
917
918 __webpack_require__.r(__webpack_exports__);
919 const handleAjax = function (url, params, functions) {
920 wp.apiFetch({
921 path: url,
922 method: 'POST',
923 data: params
924 }).then(res => {
925 if ('function' === typeof functions.success) {
926 functions.success(res);
927 }
928 }).catch(err => {
929 if ('function' === typeof functions.error) {
930 functions.error(err);
931 }
932 }).then(() => {
933 if ('function' === typeof functions.completed) {
934 functions.completed();
935 }
936 });
937 };
938
939 /* harmony default export */ __webpack_exports__["default"] = (handleAjax);
940
941 /***/ }),
942
943 /***/ "./assets/src/apps/js/utils/lp-modal-overlay.js":
944 /*!******************************************************!*\
945 !*** ./assets/src/apps/js/utils/lp-modal-overlay.js ***!
946 \******************************************************/
947 /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
948
949 __webpack_require__.r(__webpack_exports__);
950 const $ = jQuery;
951 let elLPOverlay = null;
952 const lpModalOverlay = {
953 elLPOverlay: null,
954 elMainContent: null,
955 elTitle: null,
956 elBtnYes: null,
957 elBtnNo: null,
958 elFooter: null,
959 elCalledModal: null,
960 callBackYes: null,
961 instance: null,
962
963 init() {
964 if (this.instance) {
965 return true;
966 }
967
968 this.elLPOverlay = $('.lp-overlay');
969
970 if (!this.elLPOverlay.length) {
971 return false;
972 }
973
974 elLPOverlay = this.elLPOverlay;
975 this.elMainContent = elLPOverlay.find('.main-content');
976 this.elTitle = elLPOverlay.find('.modal-title');
977 this.elBtnYes = elLPOverlay.find('.btn-yes');
978 this.elBtnNo = elLPOverlay.find('.btn-no');
979 this.elFooter = elLPOverlay.find('.lp-modal-footer');
980 $(document).on('click', '.close, .btn-no', function () {
981 elLPOverlay.hide();
982 });
983 $(document).on('click', '.btn-yes', function (e) {
984 e.preventDefault();
985 e.stopPropagation();
986
987 if ('function' === typeof lpModalOverlay.callBackYes) {
988 lpModalOverlay.callBackYes();
989 }
990 });
991 this.instance = this;
992 return true;
993 },
994
995 setElCalledModal(elCalledModal) {
996 this.elCalledModal = elCalledModal;
997 },
998
999 setContentModal(content, event) {
1000 this.elMainContent.html(content);
1001
1002 if ('function' === typeof event) {
1003 event();
1004 }
1005 },
1006
1007 setTitleModal(content) {
1008 this.elTitle.html(content);
1009 }
1010
1011 };
1012 /* harmony default export */ __webpack_exports__["default"] = (lpModalOverlay);
1013
1014 /***/ }),
1015
1016 /***/ "@wordpress/element":
1017 /*!*********************************!*\
1018 !*** external ["wp","element"] ***!
1019 \*********************************/
1020 /***/ (function(module) {
1021
1022 module.exports = window["wp"]["element"];
1023
1024 /***/ })
1025
1026 /******/ });
1027 /************************************************************************/
1028 /******/ // The module cache
1029 /******/ var __webpack_module_cache__ = {};
1030 /******/
1031 /******/ // The require function
1032 /******/ function __webpack_require__(moduleId) {
1033 /******/ // Check if module is in cache
1034 /******/ var cachedModule = __webpack_module_cache__[moduleId];
1035 /******/ if (cachedModule !== undefined) {
1036 /******/ return cachedModule.exports;
1037 /******/ }
1038 /******/ // Create a new module (and put it into the cache)
1039 /******/ var module = __webpack_module_cache__[moduleId] = {
1040 /******/ // no module.id needed
1041 /******/ // no module.loaded needed
1042 /******/ exports: {}
1043 /******/ };
1044 /******/
1045 /******/ // Execute the module function
1046 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1047 /******/
1048 /******/ // Return the exports of the module
1049 /******/ return module.exports;
1050 /******/ }
1051 /******/
1052 /************************************************************************/
1053 /******/ /* webpack/runtime/compat get default export */
1054 /******/ !function() {
1055 /******/ // getDefaultExport function for compatibility with non-harmony modules
1056 /******/ __webpack_require__.n = function(module) {
1057 /******/ var getter = module && module.__esModule ?
1058 /******/ function() { return module['default']; } :
1059 /******/ function() { return module; };
1060 /******/ __webpack_require__.d(getter, { a: getter });
1061 /******/ return getter;
1062 /******/ };
1063 /******/ }();
1064 /******/
1065 /******/ /* webpack/runtime/define property getters */
1066 /******/ !function() {
1067 /******/ // define getter functions for harmony exports
1068 /******/ __webpack_require__.d = function(exports, definition) {
1069 /******/ for(var key in definition) {
1070 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1071 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1072 /******/ }
1073 /******/ }
1074 /******/ };
1075 /******/ }();
1076 /******/
1077 /******/ /* webpack/runtime/hasOwnProperty shorthand */
1078 /******/ !function() {
1079 /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
1080 /******/ }();
1081 /******/
1082 /******/ /* webpack/runtime/make namespace object */
1083 /******/ !function() {
1084 /******/ // define __esModule on exports
1085 /******/ __webpack_require__.r = function(exports) {
1086 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1087 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1088 /******/ }
1089 /******/ Object.defineProperty(exports, '__esModule', { value: true });
1090 /******/ };
1091 /******/ }();
1092 /******/
1093 /************************************************************************/
1094 var __webpack_exports__ = {};
1095 // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
1096 !function() {
1097 /*!*************************************************!*\
1098 !*** ./assets/src/apps/js/admin/pages/tools.js ***!
1099 \*************************************************/
1100 __webpack_require__.r(__webpack_exports__);
1101 /* 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");
1102 /* 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");
1103 /* 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");
1104 /* 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");
1105 /* 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");
1106
1107
1108
1109
1110
1111
1112 (function ($) {
1113 const $doc = $(document);
1114 let isRunning = false;
1115
1116 const installSampleCourse = function installSampleCourse(e) {
1117 e.preventDefault();
1118 const $button = $(this);
1119
1120 if (isRunning) {
1121 return;
1122 }
1123
1124 if (!confirm(lpGlobalSettings.i18n.confirm_install_sample_data)) {
1125 return;
1126 }
1127
1128 $button.addClass('disabled').html($button.data('installing-text'));
1129 $('.lp-install-sample__response').remove();
1130 isRunning = true;
1131 $.ajax({
1132 url: $button.attr('href'),
1133 data: $('.lp-install-sample__options').serializeJSON(),
1134
1135 success(response) {
1136 $button.removeClass('disabled').html($button.data('text'));
1137 isRunning = false;
1138 $(response).insertBefore($button.parent());
1139 },
1140
1141 error() {
1142 $button.removeClass('disabled').html($button.data('text'));
1143 isRunning = false;
1144 $(response).insertBefore($button.parent());
1145 }
1146
1147 });
1148 };
1149
1150 const uninstallSampleCourse = function uninstallSampleCourse(e) {
1151 e.preventDefault();
1152 const $button = $(this);
1153
1154 if (isRunning) {
1155 return;
1156 }
1157
1158 if (!confirm(lpGlobalSettings.i18n.confirm_uninstall_sample_data)) {
1159 return;
1160 }
1161
1162 $button.addClass('disabled').html($button.data('uninstalling-text'));
1163 isRunning = true;
1164 $.ajax({
1165 url: $button.attr('href'),
1166
1167 success(response) {
1168 $button.removeClass('disabled').html($button.data('text'));
1169 isRunning = false;
1170 $(response).insertBefore($button.parent());
1171 },
1172
1173 error() {
1174 $button.removeClass('disabled').html($button.data('text'));
1175 isRunning = false;
1176 $(response).insertBefore($button.parent());
1177 }
1178
1179 });
1180 };
1181
1182 const clearHardCache = function clearHardCache(e) {
1183 e.preventDefault();
1184 const $button = $(this);
1185
1186 if ($button.hasClass('disabled')) {
1187 return;
1188 }
1189
1190 $button.addClass('disabled').html($button.data('cleaning-text'));
1191 $.ajax({
1192 url: $button.attr('href'),
1193 data: {},
1194
1195 success(response) {
1196 $button.removeClass('disabled').html($button.data('text'));
1197 },
1198
1199 error() {
1200 $button.removeClass('disabled').html($button.data('text'));
1201 }
1202
1203 });
1204 };
1205
1206 const toggleHardCache = function toggleHardCache() {
1207 $.ajax({
1208 url: 'admin.php?page=lp-toggle-hard-cache-option',
1209 data: {
1210 v: this.checked ? 'yes' : 'no'
1211 },
1212
1213 success(response) {},
1214
1215 error() {}
1216
1217 });
1218 };
1219
1220 const toggleOptions = function toggleOptions(e) {
1221 e.preventDefault();
1222 $('.lp-install-sample__options').toggleClass('hide-if-js');
1223 };
1224
1225 $(function () {
1226 (0,_tools_database_upgrade__WEBPACK_IMPORTED_MODULE_0__["default"])();
1227 (0,_tools_database_create_indexs__WEBPACK_IMPORTED_MODULE_1__["default"])();
1228 (0,_tools_database_re_upgrade_db__WEBPACK_IMPORTED_MODULE_2__["default"])();
1229 (0,_tools_reset_data__WEBPACK_IMPORTED_MODULE_4__["default"])();
1230 (0,_tools_database_clean_database__WEBPACK_IMPORTED_MODULE_3__["default"])();
1231 $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);
1232 });
1233 })(jQuery);
1234 }();
1235 /******/ })()
1236 ;
1237 //# sourceMappingURL=tools.js.map