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

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