PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 1.7.3
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v1.7.3
4.9.2 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 All 200 releases
betterdocs / admin / setup-wizard / assets / js / betterdocs-setup-wizard.js

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

287 lines 8.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 jQuery(document).ready(function ($) {
2 // quick setup wizard tab handle
3 if (jQuery(".betterdocs-setup-wizard").length) {
4 betterdocsQuickSetupTabs();
5 }
6 function betterdocsQuickSetupTabs() {
7 var skipEmailStep = false;
8 // tab click handler
9 jQuery("#betterdocs-prev-option").on("click", function (e) {
10 e.preventDefault();
11 betterdocsQswNextPrev(-1);
12 betterdocsQuickSetupWizardTabTracking(-1);
13 });
14 jQuery("#betterdocs-next-option").on("click", function (e) {
15 e.preventDefault();
16 betterdocsQswNextPrev(1);
17 if (betterdocsQswValidateForm()) {
18 if (betterdocsQuickSetupGetTrackNumber() === 0) {
19 betterdocsQswOptinSubmit();
20 }
21 betterdocsQuickSetupWizardTabTracking(1);
22 }
23 });
24 jQuery("#betterdocsqswemailskipbutton").on("click", function (e) {
25 e.preventDefault();
26 skipEmailStep = true;
27 betterdocsQswNextPrev(1);
28 betterdocsQuickSetupWizardTabTracking(1);
29 });
30
31 var currentTab = betterdocsQuickSetupGetTrackNumber(); // Current tab is set to be the first tab (0)
32 showTab(currentTab); // Display the current tab
33 showTabNav(currentTab); // Display the current tab Nav
34 function showTab(n) {
35 // This function will display the specified tab of the form...
36 var tabList = jQuery(".tab-content");
37 for (i = 0; i <= tabList.length; i++) {
38 if (i === n) {
39 jQuery(tabList[i]).addClass("active");
40 } else {
41 jQuery(tabList[i]).removeClass("active");
42 }
43 }
44 //... and fix the Previous/Next buttons:
45 if (n == 0) {
46 document.getElementById(
47 "betterdocs-prev-option"
48 ).style.display = "none";
49 jQuery(".bottom-notice-left").show();
50 jQuery("#betterdocsqswemailskipbutton").show();
51 } else {
52 document.getElementById(
53 "betterdocs-prev-option"
54 ).style.display = "inline";
55 jQuery(".bottom-notice-left").hide();
56 jQuery("#betterdocsqswemailskipbutton").hide();
57 }
58 if (n == tabList.length - 1) {
59 document.getElementById("betterdocs-next-option").innerHTML =
60 bdquicksetup.finish_txt;
61 // document.getElementById("betterdocs-next-option").classList.add("betterdocs-quick-finish");
62 return false;
63 } else {
64 document.getElementById("betterdocs-next-option").innerHTML =
65 bdquicksetup.next_txt;
66 }
67 }
68 function showTabNav(n) {
69 var tabNavList = jQuery(".nav-item");
70 for (i = 0; i <= tabNavList.length; i++) {
71 if (i <= n) {
72 jQuery(tabNavList[i]).addClass("tab-active");
73 } else {
74 if (jQuery(tabNavList[i]).hasClass("tab-active")) {
75 jQuery(tabNavList[i]).removeClass("tab-active");
76 }
77 }
78 }
79 }
80
81 function betterdocsQswNextPrev(n) {
82 // This function will figure out which tab to display
83 var x = document.getElementsByClassName("tab-content");
84
85 // Exit the function if any field in the current tab is invalid:
86 if (n == 1 && !betterdocsQswValidateForm() && !skipEmailStep)
87 return false;
88
89 // Increase or decrease the current tab by 1:
90 currentTab = currentTab + n;
91 if (currentTab < x.length) {
92 // Otherwise, display the correct tab:
93 showTab(currentTab);
94 // display tab nav
95 showTabNav(currentTab);
96 } else {
97 // ajax call after false
98 betterdocsQswOptionSubmit();
99 swal({
100 title: "Good job!",
101 text: "Setup is Complete.",
102 icon: "success",
103 }).then(function () {
104 // currentTab = ( x.length - 1);
105 // document.cookie = "currenttab=" + currentTab;
106 // document.cookie = "tracking=" + betterdocsQuickSetupWizardTabTracking(currentTab);
107 window.location = "admin.php?page=betterdocs-settings";
108 });
109 currentTab = x.length - 1;
110 if (
111 localStorage.getItem("betterdocsQswTabNumberTracking") <= 5
112 ) {
113 betterdocsQuickSetupWizardTabTracking(-2);
114 } else {
115 betterdocsQuickSetupWizardTabTracking(-1);
116 }
117 }
118 }
119
120 function betterdocsQswValidateForm() {
121 var valid = true;
122 // if(jQuery('#betterdocs_user_email_address').hasClass('invalid')){
123 // valid = false;
124 // } else {
125 // valid = true;
126 // }
127 return valid;
128 }
129 }
130
131 // Quick Setup Wizard Save
132 function betterdocsQswOptionSubmit() {
133 var ajaxnonce = $(
134 '.betterdocs-setup-wizard input[name="betterdocsqswnonce"]'
135 ).val();
136 var builtin_doc_page = $(
137 '.betterdocs-setup-wizard input[name="builtin_doc_page"]'
138 ).attr("checked")
139 ? 1
140 : "off";
141 var enable_disable = $(
142 '.betterdocs-setup-wizard input[name="enable_disable"]'
143 ).attr("checked")
144 ? 1
145 : "off";
146 var docs_slug = $(
147 '.betterdocs-setup-wizard input[name="docs_slug"]'
148 ).val();
149
150 if ($(".betterdocs-setup-wizard .activate_plugin").is(":checked")) {
151 var activate_plugin = $(
152 ".betterdocs-setup-wizard .activate_plugin"
153 ).val();
154 } else {
155 var activate_plugin = "";
156 }
157
158 var data = {
159 action: "better_docs_quick_setup_wizard_data_save",
160 security: ajaxnonce,
161 activate_plugin: activate_plugin,
162 builtin_doc_page: builtin_doc_page,
163 docs_slug: docs_slug,
164 enable_disable: enable_disable,
165 };
166 // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
167 jQuery.post(ajaxurl, data, function (response) {});
168 }
169
170 function betterdocsQswOptinSubmit() {
171 var quickOptin = $("#betterdocs_user_email_address");
172 if (quickOptin.is(":checked")) {
173 var ajaxnonce = $(
174 '.betterdocs-setup-wizard input[name="betterdocsqswnonce"]'
175 ).val();
176 var data = {
177 nonce: ajaxnonce,
178 action: "optin_wizard_action_betterdocs",
179 admin_email: $("#betterdocs_user_email_address").val(),
180 };
181 jQuery.post(ajaxurl, data, function (response) {
182 if (response.hasOwnProperty("success") && response.success) {
183 $(".notice-betterdocs").remove();
184 }
185 });
186 }
187 }
188
189 // popup modal showing for error message
190 $(".betterdocs-pro-feature-checkbox label").on("click", function () {
191 var premium_content = document.createElement("p");
192 var premium_anchor = document.createElement("a");
193
194 premium_anchor.setAttribute("href", "https://betterdocs.co/");
195 premium_anchor.innerText = "Premium";
196 premium_anchor.style.color = "red";
197 var pro_label = $(this).find(".nx-pro-label");
198 if (pro_label.hasClass("has-to-update")) {
199 premium_anchor.innerText =
200 "Latest Pro v" +
201 pro_label
202 .text()
203 .toString()
204 .replace(/[ >=<]/g, "");
205 }
206 premium_content.innerHTML =
207 "You need to upgrade to the <strong>" +
208 premium_anchor.outerHTML +
209 " </strong> Version to use this module.";
210
211 swal({
212 title: "Opps...",
213 content: premium_content,
214 icon: "warning",
215 buttons: [false, "Close"],
216 dangerMode: true,
217 });
218 });
219
220 /**
221 * quick setup wizard tab tracking
222 */
223 function betterdocsQuickSetupWizardTabTracking(tabNumber) {
224 var allTabs = jQuery(".betterdocs-tabnav-wrap ul.tab-nav li.nav-item");
225 var existing = localStorage.getItem("betterdocsQswTabNumberTracking");
226 existing = parseInt(existing) ? parseInt(existing) : 0;
227 if (parseInt(existing) < allTabs.length) {
228 existing = existing + tabNumber;
229 localStorage.setItem("betterdocsQswTabNumberTracking", existing);
230 } else if (parseInt(existing) >= allTabs.length) {
231 localStorage.setItem(
232 "betterdocsQswTabNumberTracking",
233 allTabs.length - 1
234 );
235 }
236 return parseInt(existing);
237 }
238 /***
239 * Get Current Number
240 */
241 function betterdocsQuickSetupGetTrackNumber() {
242 var oldNumber = localStorage.getItem("betterdocsQswTabNumberTracking");
243 var allTabs = jQuery(".betterdocs-tabnav-wrap ul.tab-nav li.nav-item");
244 if (parseInt(oldNumber) >= allTabs.length) {
245 localStorage.setItem(
246 "betterdocsQswTabNumberTracking",
247 allTabs.length - 1
248 );
249 }
250 return oldNumber ? parseInt(oldNumber) : 0;
251 }
252
253 // email input field length checking
254 jQuery("#betterdocs_user_email_address").on("click", function (e) {
255 if (jQuery(this).prop("checked") === true) {
256 $(this).removeClass("invalid");
257 } else {
258 $(this).addClass("invalid");
259 }
260 });
261
262 // collect Toggle
263 jQuery(".btn-collect").on("click", function () {
264 jQuery("p.whatwecollecttext").toggle();
265 });
266
267 // change url
268 betterdocsSetupWizardSetCustomizerUrl();
269 function betterdocsSetupWizardSetCustomizerUrl() {
270 jQuery('input[name="docs_slug"]').on("change", function () {
271 var data = {
272 action: "better_docs_setup_generate_live_url",
273 docs_slug: jQuery(this).val(),
274 };
275 // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
276 jQuery.post(ajaxurl, data, function (response) {
277 var allResponse = JSON.parse(response);
278 jQuery("#bdgotocustomize").attr(
279 "href",
280 allResponse.customizerurl
281 );
282 jQuery("#bdgotodocspage").attr("href", allResponse.siteurl);
283 });
284 });
285 }
286 });
287