This commit is contained in:
oliver
2026-04-25 08:10:43 -03:00
parent 1ff384a952
commit 96ae14d0e0
2 changed files with 633 additions and 158 deletions
+171 -35
View File
@@ -38,6 +38,11 @@
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@slicemypage/motionflow@latest/dist/motionflow.min.css"
/>
<script
defer
data-domain="my-biz.app"
src="https://plausible.odoo4projects.com/js/script.outbound-links.tagged-events.js"
></script>
<style>
*,
*::before,
@@ -1704,7 +1709,9 @@
text-align: left;
font: inherit;
cursor: pointer;
transition: background 0.2s, color 0.2s;
transition:
background 0.2s,
color 0.2s;
}
.modal-select-option:hover,
@@ -1861,7 +1868,11 @@
<a href="#customization">Customization</a>
</div>
<div class="nav-right">
<a class="nav-cta-book" href="#story">Book Meeting</a>
<a
class="nav-cta-book plausible-event-name=Meeting"
href="#story"
>Book Meeting</a
>
<div class="nav-chat" id="nav-chat">
<div
class="nav-chat-panel chat-panel"
@@ -1906,8 +1917,17 @@
</button>
</div>
</div>
<a class="nav-cta" id="open-modal" href="#">Free Trial</a>
<a class="nav-cta nav-cta-sm open-modal" href="#">Try Free</a>
<a
class="nav-cta plausible-event-name=Trial"
id="open-modal"
href="#"
>Free Trial</a
>
<a
class="nav-cta nav-cta-sm open-modal plausible-event-name=Trial"
href="#"
>Try Free</a
>
</div>
</nav>
@@ -2241,7 +2261,9 @@
class="hero-actions"
style="margin-top: auto; justify-content: flex-end"
>
<a class="btn-secondary" href="#pricing"
<a
class="btn-secondary plausible-event-name=Meeting"
href="#pricing"
>Book Meeting</a
>
</div>
@@ -2417,7 +2439,7 @@
<li>Community support</li>
</ul>
<a
class="pricing-cta open-modal"
class="pricing-cta open-modal plausible-event-name=Trial"
data-plan="Side Hustle"
href="#"
>Free Trial</a
@@ -2447,7 +2469,7 @@
<li>Email and chat support</li>
</ul>
<a
class="pricing-cta open-modal"
class="pricing-cta open-modal plausible-event-name=Trial"
data-plan="On the Rise"
href="#"
>Free Trial</a
@@ -2476,7 +2498,9 @@
<li>Unlimited users</li>
<li>Dedicated support line</li>
</ul>
<a class="pricing-cta open-modal" href="#"
<a
class="pricing-cta open-modal plausible-event-name=Trial"
href="#"
>Talk through hosting</a
>
</div>
@@ -2534,7 +2558,9 @@
reporting? Work with the people who already know the
stack and can ship practical improvements without drama.
</p>
<a class="custom-link open-modal" href="#"
<a
class="custom-link open-modal plausible-event-name=Trial"
href="#"
>Request scoped help &#8594;</a
>
</div>
@@ -2561,7 +2587,10 @@
</p>
</div>
<div class="footer-contact-shell">
<form class="footer-contact-form" id="footer-contact-form">
<form
class="footer-contact-form plausible-event-name=eMail+Feedback"
id="footer-contact-form"
>
<input type="hidden" name="source" value="my-biz.app" />
<div class="footer-contact-input-row">
<input
@@ -2604,14 +2633,23 @@
<h4>About</h4>
<ul>
<li><a href="about.html#about-us">About Us</a></li>
<li><a href="about.html#faq">FAQ</a></li>
<li><a href="#" id="faq-chat-link">FAQ</a></li>
<li><a href="about.html#careers">Careers</a></li>
<li><a href="about.html#partners">Partners</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<span>&copy; 2026 my-biz.app · All rights reserved.</span>
<span>
&copy; 2026 my-biz.app · All rights reserved. · This service
is powered by
<a
href="https://ODOO4projects.com"
target="_blank"
rel="noopener"
>ODOO4projects</a
>
</span>
<div class="footer-legal">
<a href="legal.html#privacy">Privacy</a>
<a href="legal.html#terms">Terms</a>
@@ -2720,7 +2758,10 @@
required
/>
</div>
<div class="modal-field-group modal-select" id="modal-location-select">
<div
class="modal-field-group modal-select"
id="modal-location-select"
>
<label class="field-label" for="modal-location"
>Server Location</label
>
@@ -2740,7 +2781,11 @@
role="listbox"
aria-labelledby="modal-location-button"
>
<button type="button" class="modal-select-option" data-value="Boston, US">
<button
type="button"
class="modal-select-option"
data-value="Boston, US"
>
🇺🇸 Boston
</button>
<button
@@ -2750,7 +2795,11 @@
>
🇬🇧 Manchester
</button>
<button type="button" class="modal-select-option" data-value="Mumbai, IN">
<button
type="button"
class="modal-select-option"
data-value="Mumbai, IN"
>
🇮🇳 Mumbai
</button>
<button
@@ -2760,10 +2809,18 @@
>
🇧🇷 S&atilde;o Paulo
</button>
<button type="button" class="modal-select-option" data-value="Meppel, NL">
<button
type="button"
class="modal-select-option"
data-value="Meppel, NL"
>
🇳🇱 Meppel
</button>
<button type="button" class="modal-select-option" data-value="Sydney, AU">
<button
type="button"
class="modal-select-option"
data-value="Sydney, AU"
>
🇦🇺 Sydney
</button>
</div>
@@ -2887,12 +2944,20 @@
applyToFields(document);
applyToLinks(document);
function trackEvent(name, props) {
if (typeof window.plausible !== "function") return;
window.plausible(name, {
props: props || {},
});
}
window._mbsTracking = {
params: tracking,
applyToLinks: applyToLinks,
applyToFields: applyToFields,
appendToFormData: appendToFormData,
extendPayload: extendPayload,
trackEvent: trackEvent,
};
})();
</script>
@@ -2912,6 +2977,11 @@
if (window._mbsTracking)
formData =
window._mbsTracking.appendToFormData(formData);
if (window._mbsTracking) {
window._mbsTracking.trackEvent("eMail Feedback", {
source: "footer",
});
}
status.textContent = "Sending...";
button.disabled = true;
fetch(WEBHOOK, {
@@ -3035,6 +3105,16 @@
render();
}
var searchTrackTimer = null;
function trackSearch() {
var term = (search.value || "").trim();
if (!term || !window._mbsTracking) return;
window._mbsTracking.trackEvent("Search", {
query: term,
});
}
prevBtn.addEventListener("click", function () {
if (currentPage === 0) return;
currentPage -= 1;
@@ -3048,7 +3128,11 @@
render();
});
search.addEventListener("input", applyFilter);
search.addEventListener("input", function () {
applyFilter();
clearTimeout(searchTrackTimer);
searchTrackTimer = setTimeout(trackSearch, 450);
});
fetch(POSTS_URL)
.then(function (response) {
@@ -3132,6 +3216,12 @@
if (navChat) navChat.classList.add("open");
panel.classList.add("open");
panel.setAttribute("aria-hidden", "false");
if (!panel.dataset.trackedOpen && window._mbsTracking) {
panel.dataset.trackedOpen = "true";
window._mbsTracking.trackEvent("Chat Agent", {
entry: "open",
});
}
if (!greeted) {
greeted = true;
appendMsg(
@@ -3148,6 +3238,7 @@
if (navChat) navChat.classList.remove("open");
panel.classList.remove("open");
panel.setAttribute("aria-hidden", "true");
delete panel.dataset.trackedOpen;
}
function togglePanel() {
@@ -3174,6 +3265,12 @@
if (!text || busy) return;
busy = true;
if (window._mbsTracking) {
window._mbsTracking.trackEvent("Chat Agent", {
entry: "message",
});
}
appendMsg("user", text);
openPanel();
navInput.value = "";
@@ -3243,6 +3340,19 @@
});
}
var faqChatLink = document.getElementById("faq-chat-link");
if (faqChatLink) {
faqChatLink.addEventListener("click", function (e) {
e.preventDefault();
e.stopPropagation();
window.setTimeout(function () {
openPanel();
if (navInput) navInput.value = "FAQ";
send("FAQ");
}, 0);
});
}
document.addEventListener("click", function (e) {
var nc = document.getElementById("nav-chat");
if (
@@ -3539,29 +3649,46 @@
var planField = document.getElementById("modal-plan");
var productField = document.getElementById("modal-product");
var locationField = document.getElementById("modal-location");
var locationSelect = document.getElementById("modal-location-select");
var locationButton = document.getElementById("modal-location-button");
var locationMenu = document.getElementById("modal-location-menu");
var locationSelect = document.getElementById(
"modal-location-select",
);
var locationButton = document.getElementById(
"modal-location-button",
);
var locationMenu = document.getElementById(
"modal-location-menu",
);
var defaultProduct = productField.value;
function syncLocationLabel() {
var value = locationField.value || "";
var selected = null;
locationMenu.querySelectorAll(".modal-select-option").forEach(function (option) {
var isSelected = option.getAttribute("data-value") === value;
if (isSelected) selected = option;
option.classList.toggle("is-selected", isSelected);
option.setAttribute("aria-selected", isSelected ? "true" : "false");
});
locationMenu
.querySelectorAll(".modal-select-option")
.forEach(function (option) {
var isSelected =
option.getAttribute("data-value") === value;
if (isSelected) selected = option;
option.classList.toggle("is-selected", isSelected);
option.setAttribute(
"aria-selected",
isSelected ? "true" : "false",
);
});
locationButton.textContent = selected
? selected.textContent.trim()
: "Select your server location";
locationButton.classList.toggle("is-placeholder", !selected);
locationButton.classList.toggle(
"is-placeholder",
!selected,
);
locationButton.setAttribute(
"aria-expanded",
locationSelect.classList.contains("open") ? "true" : "false",
locationSelect.classList.contains("open")
? "true"
: "false",
);
}
@@ -3605,16 +3732,20 @@
}
locationButton.addEventListener("click", function () {
if (locationSelect.classList.contains("open")) closeLocationMenu();
if (locationSelect.classList.contains("open"))
closeLocationMenu();
else openLocationMenu();
});
locationMenu.querySelectorAll(".modal-select-option").forEach(function (option) {
option.addEventListener("click", function () {
locationField.value = option.getAttribute("data-value") || "";
closeLocationMenu();
locationMenu
.querySelectorAll(".modal-select-option")
.forEach(function (option) {
option.addEventListener("click", function () {
locationField.value =
option.getAttribute("data-value") || "";
closeLocationMenu();
});
});
});
document
.getElementById("open-modal")
@@ -3660,6 +3791,11 @@
if (window._mbsTracking)
formData =
window._mbsTracking.appendToFormData(formData);
if (window._mbsTracking) {
window._mbsTracking.trackEvent("Trial", {
source: planField.value || "General Free Trial",
});
}
btn.textContent = "Sending...";
btn.disabled = true;