PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 2.0.14
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v2.0.14
4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.5.2 All 199 releases
betterdocs / admin / assets / js / betterdocs-admin.js

betterdocs-admin.js in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 2.0.14, at admin/assets/js/betterdocs-admin.js

864 lines 21.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function ($) {
2 "use strict";
3
4 /**
5 * BetterDocs Admin JS
6 */
7
8 $.betterdocsAdmin = $.betterdocsAdmin || {};
9
10 $(document).ready(function () {
11 $.betterdocsAdmin.init();
12
13 var qVars = $.betterdocsAdmin.get_query_vars("page");
14 if (qVars != undefined) {
15 if (qVars.indexOf("betterdocs-settings") >= 0) {
16 var cSettingsTab = qVars.split("#");
17 $(
18 '.betterdocs-settings-menu li[data-tab="' +
19 cSettingsTab[1] +
20 '"]'
21 ).trigger("click");
22 }
23 }
24 });
25
26 $.betterdocsAdmin.init = function () {
27 $.betterdocsAdmin.toggleFields();
28 $.betterdocsAdmin.bindEvents();
29 $.betterdocsAdmin.initializeFields();
30 };
31
32 $.betterdocsAdmin.bindEvents = function () {
33 //Advance Checkbox with SweetAlear
34 $("body").on(
35 "click",
36 ".betterdocs-adv-checkbox-wrap label, .betterdocs-stats-tease",
37 function (e) {
38 if (typeof $(this)[0].dataset.swal == "undefined") {
39 return;
40 }
41 if (typeof $(this)[0].dataset.swal != "undefined") {
42 e.preventDefault();
43 }
44 var premium_content = document.createElement("p");
45 var premium_anchor = document.createElement("a");
46
47 premium_anchor.setAttribute("href", "https://betterdocs.co");
48 premium_anchor.innerText = "Premium";
49 premium_anchor.style.color = "red";
50 premium_content.innerHTML =
51 "You need to upgrade to the <strong>" +
52 premium_anchor.outerHTML +
53 " </strong> Version to use this feature";
54
55 swal({
56 title: "Opps...",
57 content: premium_content,
58 icon: "warning",
59 buttons: [false, "Close"],
60 dangerMode: true,
61 });
62 }
63 );
64
65 // date range picker
66 $("#dashboard-select-date").change(function () {
67 if (this.value == 'custom_date') {
68 $('#reportrange').show().trigger('click');
69 } else {
70 $('#reportrange').hide();
71 }
72 });
73
74 if ($("#dashboard-select-date").val() === 'custom_date') {
75 $('#reportrange').show();
76 }
77
78 $('#reportrange').daterangepicker({
79 timePicker: false,
80 /*showDropdowns: true,
81 minYear: 1950,
82 maxYear: parseInt(moment().format('YYYY'),10),*/
83 ranges: {
84 'Today': [moment(), moment()],
85 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
86 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
87 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
88 'This Month': [moment().startOf('month'), moment().endOf('month')],
89 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
90 },
91 locale: {
92 format: 'MMMM D, YYYY'
93 }
94 });
95
96 // Switch to Dark Mode
97 $("#betterdocs-mode-toggle").prop(
98 "checked",
99 betterdocs_admin.dark_mode
100 );
101 $("#betterdocs-mode-toggle").on("click", function (e) {
102 $("body").toggleClass("betterdocs-dark-mode");
103 $.ajax({
104 type: "POST",
105 url: betterdocs_admin.ajaxurl,
106 data: {
107 action: "betterdocs_dark_mode",
108 mode: e.currentTarget.checked ? 1 : 0,
109 nonce: betterdocs_admin.doc_cat_order_nonce,
110 },
111 dataType: "JSON",
112 success: function (response) {
113 // console.log( response );
114 },
115 });
116 });
117
118 // Go To Sorting UI
119 $("body.post-type-docs .wp-heading-inline").after(
120 '<a href="admin.php?page=betterdocs-admin" class="page-title-action">' +
121 betterdocs_admin.menu_title +
122 "</a>"
123 );
124
125 /**
126 * Group Field Events
127 */
128 $(".betterdocs-group-field .betterdocs-group-field-title").on(
129 "click",
130 function (e) {
131 e.preventDefault();
132 if ($(e.srcElement).hasClass("betterdocs-group-field-title")) {
133 $.betterdocsAdmin.groupToggle(this);
134 }
135 }
136 );
137 $(".betterdocs-group-field .betterdocs-group-clone").on(
138 "click",
139 function () {
140 $.betterdocsAdmin.cloneGroup(this);
141 }
142 );
143 $("body").on(
144 "click",
145 ".betterdocs-group-field .betterdocs-group-remove",
146 function () {
147 $.betterdocsAdmin.removeGroup(this);
148 }
149 );
150
151 /**
152 * Media Field
153 */
154 $(".betterdocs-media-field-wrapper .betterdocs-media-upload-button").on(
155 "click",
156 function (e) {
157 e.preventDefault();
158 $.betterdocsAdmin.initMediaField(this);
159 }
160 );
161 $(".betterdocs-media-field-wrapper .betterdocs-media-remove-button").on(
162 "click",
163 function (e) {
164 e.preventDefault();
165 $.betterdocsAdmin.removeMedia(this);
166 }
167 );
168
169 /**
170 * Settings Tab
171 */
172 $(".betterdocs-settings-menu li").on("click", function (e) {
173 $.betterdocsAdmin.settingsTab(this);
174 });
175 $(".betterdocs-settings-button").on("click", function (e) {
176 e.preventDefault();
177 var form = $(this).parents("#betterdocs-settings-form");
178 $.betterdocsAdmin.submitSettings(this, form);
179 });
180
181 $(".betterdocs-opt-alert").on("click", function (e) {
182 $.betterdocsAdmin.fieldAlert(this);
183 });
184
185 /**
186 * Reset Section Settings
187 */
188 $(".betterdocs-section-reset").on("click", function (e) {
189 e.preventDefault();
190 $.betterdocsAdmin.resetSection(this);
191 });
192
193 $.betterdocsAdmin.permalink_structure();
194 $('#permalink_structure').on('change', $.betterdocsAdmin.permalink_structure);
195 $('#multiple_kb').on('change', function(){
196 var kb = $('.permalink-structure .available-structure-tags .knowledge-base');
197 var multiple_kb = $(this);
198 if(multiple_kb.is(':checked')){
199 kb.show();
200 }
201 else{
202 kb.hide();
203 }
204 $.betterdocsAdmin.permalink_structure();
205 });
206 };
207
208 $.betterdocsAdmin.permalink_structure = function(){
209 var multiple_kb = $('#multiple_kb');
210 var permalink_structure = $('#permalink_structure');
211 var $val = permalink_structure.val();
212 if($val && !multiple_kb.is(':checked')){
213 permalink_structure.val($val.replace(/%knowledge_base%\/?/g, ''));
214 }
215 }
216
217 $.betterdocsAdmin.initializeFields = function () {
218 $.betterdocsAdmin.innerTab();
219 if ($(".betterdocs-meta-field, .betterdocs-settings-field").length > 0) {
220 $(".betterdocs-meta-field, .betterdocs-settings-field").map(
221 function (iterator, item) {
222 var node = item.nodeName;
223 if (node === "SELECT") {
224 $(item).select2({
225 placeholder: "Select any",
226 });
227 }
228 }
229 );
230 }
231
232 if ($(".betterdocs-countdown-datepicker").length > 0) {
233 $(".betterdocs-countdown-datepicker").each(function () {
234 $(this).find("input").datepicker({
235 changeMonth: true,
236 changeYear: true,
237 dateFormat: "DD, d MM, yy",
238 });
239 });
240 }
241
242 $(".betterdocs-settings-field.betterdocs-select").on("select2:select", function (evt) {
243 let $values = $(this).val();
244 const isNotEqual = (a, b) => JSON.stringify(a) !== JSON.stringify(b);
245 if (isNotEqual($values, ["all"])) {
246 let $filtered = $values.filter(function($value, index, arr) {
247 return $value != 'all';
248 });
249 $(this).val($filtered);
250 $(this).trigger('change');
251 }
252 });
253
254 $(".betterdocs-metabox-wrapper .betterdocs-meta-field, .betterdocs-settings-field").trigger("change");
255
256 if ($(".betterdocs-colorpicker-field").length > 0) {
257 if ("undefined" !== typeof $.fn.wpColorPicker) {
258 $(".betterdocs-colorpicker-field").each(function () {
259 var color = $(this).val();
260 $(this)
261 .wpColorPicker({
262 change: function (event, ui) {
263 var element = event.target;
264 var color = ui.color.toString();
265 $(element)
266 .parents(".wp-picker-container")
267 .find("input.betterdocs-colorpicker-field")
268 .val(color)
269 .trigger("change");
270 },
271 })
272 .parents(".wp-picker-container")
273 .find(".wp-color-result")
274 .css("background-color", "#" + color);
275 });
276 }
277 }
278 $.betterdocsAdmin.groupField();
279 $(".betterdocs-meta-template-editable").trigger("blur");
280 };
281
282 $.betterdocsAdmin.innerTab = function () {
283 if ($(".betterdocs-section-inner-tab").length <= 0) {
284 return;
285 }
286
287 $(".betterdocs-section-inner-tab").each(function (i, item) {
288 $(item)
289 .find("ul")
290 .on("click", "li", function (e) {
291 var target = e.currentTarget.dataset.target;
292 $(this)
293 .addClass("betterdocs-active")
294 .siblings()
295 .removeClass("betterdocs-active");
296 $("#" + target)
297 .show()
298 .siblings()
299 .hide();
300 });
301 $(item).find("ul").find("li:first").trigger("click");
302 });
303 };
304
305 $.betterdocsAdmin.groupField = function () {
306 if ($(".betterdocs-group-field-wrapper").length < 0) {
307 return;
308 }
309
310 var fields = $(".betterdocs-group-field-wrapper");
311
312 fields.each(function () {
313 var $this = $(this),
314 groups = $this.find(".betterdocs-group-field"),
315 firstGroup = $this.find(".betterdocs-group-field:first"),
316 lastGroup = $this.find(".betterdocs-group-field:last");
317
318 groups.each(function () {
319 var groupContent = $(this)
320 .find(".betterdocs-group-field-title:not(.open)")
321 .next();
322 if (groupContent.is(":visible")) {
323 groupContent.addClass("open");
324 }
325 });
326
327 $this.find(".betterdocs-group-field-add").on("click", function (e) {
328 e.preventDefault();
329
330 var fieldId = $this.attr("id"),
331 dataId = $this.data("name"),
332 wrapper = $this.find(".betterdocs-group-fields-wrapper"),
333 groups = $this.find(".betterdocs-group-field"),
334 firstGroup = $this.find(".betterdocs-group-field:first"),
335 lastGroup = $this.find(".betterdocs-group-field:last"),
336 clone = $($this.find(".betterdocs-group-template").html()),
337 groupId = parseInt(lastGroup.data("id")),
338 nextGroupId = 1,
339 title = clone.data("group-title");
340
341 if (!isNaN(groupId)) {
342 nextGroupId = groupId + 1;
343 }
344
345 groups.each(function () {
346 $(this).removeClass("open");
347 });
348
349 // Reset all data of clone object.
350 clone.attr("data-id", nextGroupId);
351 clone.addClass("open");
352 // clone.find('.betterdocs-group-field-title > span').html(title + ' ' + nextGroupId);
353 clone
354 .find("tr.betterdocs-field[id*=" + fieldId + "]")
355 .each(function () {
356 var fieldName = dataId;
357 var fieldNameSuffix = $(this)
358 .attr("id")
359 .split("[1]")[1];
360 var nextFieldId =
361 fieldName +
362 "[" +
363 nextGroupId +
364 "]" +
365 fieldNameSuffix;
366 var label = $(this).find("th label");
367
368 $(this)
369 .find('[name*="' + fieldName + '[1]"]')
370 .each(function () {
371 var inputName = $(this)
372 .attr("name")
373 .split("[1]");
374 var inputNamePrefix = inputName[0];
375 var inputNameSuffix = inputName[1];
376 var newInputName =
377 inputNamePrefix +
378 "[" +
379 nextGroupId +
380 "]" +
381 inputNameSuffix;
382 $(this)
383 .attr("id", newInputName)
384 .attr("name", newInputName);
385 label.attr("for", newInputName);
386 });
387
388 $(this).attr("id", nextFieldId);
389 });
390
391 clone.insertBefore($(this));
392
393 $.betterdocsAdmin.resetFieldIds($(".betterdocs-group-field"));
394 });
395 });
396 };
397
398 /**
399 * This function will change tab
400 * with menu click & Next Previous Button Click
401 */
402 $.betterdocsAdmin.tabChanger = function (buttonName) {
403 var button = $(buttonName),
404 tabID = button.data("tabid"),
405 tabKey = button.data("tab"),
406 tab;
407
408 if (tabKey != "") {
409 tab = $("#betterdocs-" + tabKey);
410 $("#betterdocs_builder_current_tab").val(tabKey);
411 }
412
413 if (buttonName.nodeName !== "BUTTON") {
414 button
415 .parent()
416 .find("li")
417 .each(function (i) {
418 if (i < tabID) {
419 $(this).addClass("betterdocs-complete");
420 } else {
421 $(this).removeClass("betterdocs-complete");
422 }
423 });
424
425 button.addClass("active").siblings().removeClass("active");
426 tab.addClass("active").siblings().removeClass("active");
427 return;
428 }
429 if (tab === undefined) {
430 $("#publish").trigger("click");
431 return;
432 }
433 $('.betterdocs-metatab-menu li[data-tabid="' + tabID + '"]').trigger(
434 "click"
435 );
436 $(
437 '.betterdocs-builder-tab-menu li[data-tabid="' + tabID + '"]'
438 ).trigger("click");
439 };
440
441 $.betterdocsAdmin.toggleFields = function () {
442 $(".betterdocs-meta-field, .betterdocs-settings-field").on(
443 "change",
444 function (e) {
445 $.betterdocsAdmin.checkDependencies(this);
446 }
447 );
448 };
449
450 $.betterdocsAdmin.toggle = function (array, func, prefix, suffix, id) {
451 var i = 0;
452 suffix = "undefined" == typeof suffix ? "" : suffix;
453
454 if (typeof array !== "undefined") {
455 for (; i < array.length; i++) {
456 var selector = prefix + array[i] + suffix;
457 $(selector)[func]();
458 }
459 }
460 };
461
462 $.betterdocsAdmin.checkDependencies = function (variable) {
463 if (betterdocsAdminConfig.toggleFields === null) {
464 return;
465 }
466
467 var current = $(variable),
468 container = current.parents(".betterdocs-field:first"),
469 id = container.data("id"),
470 value = current.val();
471
472 if ("checkbox" === current.attr("type")) {
473 if (!current.is(":checked")) {
474 value = 0;
475 } else {
476 value = 1;
477 }
478 }
479
480 if (current.hasClass("betterdocs-theme-selected")) {
481 var currentTheme = current
482 .parents(".betterdocs-theme-control-wrapper")
483 .data("name");
484 value = $("#" + currentTheme).val();
485 }
486
487 var mainid = id;
488
489 if (betterdocsAdminConfig.toggleFields.hasOwnProperty(id)) {
490 var canShow = betterdocsAdminConfig.toggleFields[id].hasOwnProperty(
491 value
492 );
493 var canHide = true;
494 if (betterdocsAdminConfig.hideFields[id]) {
495 var canHide = betterdocsAdminConfig.hideFields[
496 id
497 ].hasOwnProperty(value);
498 }
499
500 if (
501 betterdocsAdminConfig.toggleFields.hasOwnProperty(id) &&
502 canHide
503 ) {
504 $.each(betterdocsAdminConfig.toggleFields[id], function (
505 key,
506 array
507 ) {
508 $.betterdocsAdmin.toggle(
509 array.fields,
510 "hide",
511 "#betterdocs-meta-",
512 "",
513 mainid
514 );
515 $.betterdocsAdmin.toggle(
516 array.sections,
517 "hide",
518 "#betterdocs-settings-",
519 "",
520 mainid
521 );
522 });
523 }
524
525 if (canShow) {
526 $.betterdocsAdmin.toggle(
527 betterdocsAdminConfig.toggleFields[id][value].fields,
528 "show",
529 "#betterdocs-meta-",
530 "",
531 mainid
532 );
533 $.betterdocsAdmin.toggle(
534 betterdocsAdminConfig.toggleFields[id][value].sections,
535 "show",
536 "#betterdocs-settings-",
537 "",
538 mainid
539 );
540 }
541 }
542
543 if (betterdocsAdminConfig.hideFields.hasOwnProperty(id)) {
544 var hideFields = betterdocsAdminConfig.hideFields[id];
545
546 if (hideFields.hasOwnProperty(value)) {
547 $.betterdocsAdmin.toggle(
548 hideFields[value].fields,
549 "hide",
550 "#betterdocs-meta-",
551 "",
552 mainid
553 );
554 $.betterdocsAdmin.toggle(
555 hideFields[value].sections,
556 "hide",
557 "#betterdocs-settings-",
558 "",
559 mainid
560 );
561 }
562 }
563 };
564
565 $.betterdocsAdmin.groupToggle = function (group) {
566 var input = $(group),
567 wrapper = input.parents(".betterdocs-group-field");
568
569 if (wrapper.hasClass("open")) {
570 wrapper.removeClass("open");
571 } else {
572 wrapper.addClass("open").siblings().removeClass("open");
573 }
574 };
575
576 $.betterdocsAdmin.removeGroup = function (button) {
577 var groupId = $(button)
578 .parents(".betterdocs-group-field")
579 .attr("data-id"),
580 group = $(button).parents(
581 '.betterdocs-group-field[data-id="' + groupId + '"]'
582 ),
583 parent = group.parent();
584
585 group.fadeOut({
586 duration: 300,
587 complete: function () {
588 $(this).remove();
589 },
590 });
591
592 $.betterdocsAdmin.resetFieldIds(parent.find(".betterdocs-group-field"));
593 };
594
595 $.betterdocsAdmin.cloneGroup = function (button) {
596 var groupId = $(button)
597 .parents(".betterdocs-group-field")
598 .attr("data-id"),
599 group = $(button).parents(
600 '.betterdocs-group-field[data-id="' + groupId + '"]'
601 ),
602 clone = $(group.clone()),
603 lastGroup = $(button)
604 .parents(".betterdocs-group-fields-wrapper")
605 .find(".betterdocs-group-field:last"),
606 parent = group.parent(),
607 nextGroupID = $(lastGroup).data("id") + 1;
608
609 group.removeClass("open");
610
611 clone.attr("data-id", nextGroupID);
612 clone.insertAfter(group);
613 $.betterdocsAdmin.resetFieldIds(parent.find(".betterdocs-group-field"));
614 };
615
616 $.betterdocsAdmin.resetFieldIds = function (groups) {
617 if (groups.length <= 0) {
618 return;
619 }
620 var groupID = 0;
621
622 groups.map(function (iterator, item) {
623 var item = $(item),
624 fieldName = item.data("field-name"),
625 groupInfo = item
626 .find(".betterdocs-group-field-info")
627 .data("info"),
628 subFields = groupInfo.group_sub_fields;
629
630 item.attr("data-id", groupID);
631
632 var table_row = item.find("tr.betterdocs-field");
633
634 table_row.each(function (i, child) {
635 var child = $($(child)[0]),
636 childInput = child.find(
637 '[name*="betterdocs_meta_' + fieldName + '"]'
638 ),
639 key = childInput.attr("data-key"),
640 subKey = subFields[i].original_name,
641 dataID = fieldName + "[" + groupID + "][" + subKey + "]",
642 idName = "betterdocs-meta-" + dataID,
643 inputName = "betterdocs_meta_" + dataID;
644
645 child.attr("data-id", dataID);
646 child.attr("id", idName);
647
648 if (key != undefined) {
649 childInput.attr("id", inputName);
650 childInput.attr("name", inputName);
651 childInput.attr("data-key", dataID);
652 } else {
653 if (childInput.length > 1) {
654 childInput.each(function (i, subInput) {
655 if (subInput.type === "text") {
656 var subInputName = inputName + "[url]";
657 }
658 if (subInput.type === "hidden") {
659 var subInputName = inputName + "[id]";
660 }
661 subInput = $(subInput);
662 subInput.attr("id", subInputName);
663 subInput.attr("name", subInputName);
664 subInput.attr("data-key", dataID);
665 });
666 }
667 }
668 });
669
670 groupID++;
671 });
672 };
673
674 $.betterdocsAdmin.initMediaField = function (button) {
675 var button = $(button),
676 wrapper = button.parents(".betterdocs-media-field-wrapper"),
677 removeButton = wrapper.find(".betterdocs-media-remove-button"),
678 imgContainer = wrapper.find(".betterdocs-thumb-container"),
679 idField = wrapper.find(".betterdocs-media-id"),
680 urlField = wrapper.find(".betterdocs-media-url");
681
682 // Create a new media frame
683 var frame = wp.media({
684 title: "Upload Photo",
685 button: {
686 text: "Use this photo",
687 },
688 multiple: false, // Set to true to allow multiple files to be selected
689 });
690
691 // When an image is selected in the media frame...
692 frame.on("select", function () {
693 // Get media attachment details from the frame state
694 var attachment = frame.state().get("selection").first().toJSON();
695 /**
696 * Set image to the image container
697 */
698 imgContainer
699 .addClass("betterdocs-has-thumb")
700 .append(
701 '<img src="' +
702 attachment.url +
703 '" alt="" style="max-width:100%;"/>'
704 );
705 idField.val(attachment.id); // set image id
706 urlField.val(attachment.url); // set image url
707 // Hide the upload button
708 button.addClass("hidden");
709 // Show the remove button
710 removeButton.removeClass("hidden");
711 });
712 // Finally, open the modal on click
713 frame.open();
714 };
715
716 $.betterdocsAdmin.removeMedia = function (button) {
717 var button = $(button),
718 wrapper = button.parents(".betterdocs-media-field-wrapper"),
719 uploadButton = wrapper.find(".betterdocs-media-upload-button"),
720 imgContainer = wrapper.find(".betterdocs-has-thumb"),
721 idField = wrapper.find(".betterdocs-media-id"),
722 urlField = wrapper.find(".betterdocs-media-url");
723
724 imgContainer.removeClass("betterdocs-has-thumb").find("img").remove();
725
726 urlField.val(""); // URL field has to be empty
727 idField.val(""); // ID field has to empty as well
728
729 button.addClass("hidden"); // Hide the remove button first
730 uploadButton.removeClass("hidden"); // Show the uplaod button
731 };
732
733 $.betterdocsAdmin.fieldAlert = function (button) {
734 var premium_content = document.createElement("p");
735 var premium_anchor = document.createElement("a");
736
737 premium_anchor.setAttribute("href", "https://betterdocs.co/upgrade");
738 premium_anchor.innerText = "Premium";
739 premium_anchor.style.color = "red";
740 premium_content.innerHTML =
741 "You need to upgrade to the <strong>" +
742 premium_anchor.outerHTML +
743 " </strong> Version to use this feature";
744
745 swal({
746 title: "Opps...",
747 content: premium_content,
748 icon: "warning",
749 buttons: [false, "Close"],
750 dangerMode: true,
751 });
752 };
753
754 $.betterdocsAdmin.resetSection = function (button) {
755 var button = $(button),
756 parent = button.parents(".betterdocs-meta-section"),
757 fields = parent.find(".betterdocs-meta-field"),
758 updateFields = [];
759
760 window.fieldsss = fields;
761 fields.map(function (iterator, item) {
762 var item = $(item),
763 default_value = item.data("default");
764
765 item.val(default_value);
766
767 if (item.hasClass("wp-color-picker")) {
768 item.parents(".wp-picker-container")
769 .find(".wp-color-result")
770 .removeAttr("style");
771 }
772 if (item[0].id == "betterdocs_meta_border") {
773 item.trigger("click");
774 } else {
775 item.trigger("change");
776 }
777 });
778 };
779
780 $.betterdocsAdmin.settingsTab = function (button) {
781 var button = $(button),
782 tabToGo = button.data("tab");
783
784 button.addClass("active").siblings().removeClass("active");
785 $("#betterdocs-" + tabToGo)
786 .addClass("active")
787 .siblings()
788 .removeClass("active");
789 };
790
791 $.betterdocsAdmin.submitSettings = function (button, form) {
792 var button = $(button),
793 submitKey = button.data("key"),
794 nonce = button.data("nonce"),
795 formData = $(form).serializeArray();
796
797 $.ajax({
798 type: "POST",
799 url: ajaxurl,
800 data: {
801 action: "betterdocs_general_settings",
802 key: submitKey,
803 nonce: nonce,
804 form_data: formData,
805 },
806 beforeSend: function () {
807 button.html("<span>Saving...</span>");
808 },
809 success: function (res) {
810 button.html("Save Settings");
811 if (res.data === "success") {
812 swal({
813 title: "Settings Saved!",
814 text: "Click OK to continue",
815 icon: "success",
816 buttons: [false, "Ok"],
817 timer: 2000,
818 }).then(function () {
819 $(".betterdocs-save-now").removeClass(
820 "betterdocs-save-now"
821 );
822 location=location.origin+location.pathname+location.search+'&saved=true'+location.hash;
823 });
824 } else {
825 swal({
826 title: "Settings Not Saved!",
827 text: "Click OK to continue",
828 icon: "error",
829 buttons: [false, "Ok"],
830 timer: 1000,
831 });
832 }
833 },
834 });
835 };
836
837 $.betterdocsAdmin.get_query_vars = function (name) {
838 var vars = {};
839 window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (
840 m,
841 key,
842 value
843 ) {
844 vars[key] = value;
845 });
846 if (name != "") {
847 return vars[name];
848 }
849 return vars;
850 };
851
852 /**
853 * Copy To Clipboard
854 */
855 $('.betterdocs-settings-input-text span').on('click', function(e){
856 var previousValue = this.previousSibling;
857 previousValue.select();
858 document.execCommand("copy");
859 this.firstChild.textContent = betterdocs_admin.text;
860 previousValue.setSelectionRange(0, 99999);
861 });
862
863 })(jQuery);
864