This commit is contained in:
Your Name
2026-04-11 06:59:52 -03:00
parent a1473d9930
commit 97b1d256ea
+23 -37
View File
@@ -49,11 +49,13 @@
text-align: center; text-align: center;
transition: transition:
box-shadow 0.2s, box-shadow 0.2s,
border-color 0.2s; border-color 0.2s,
transform 0.2s;
} }
.plan-card:hover { .plan-card:hover {
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.11); box-shadow: 0 6px 22px rgba(0, 0, 0, 0.11);
transform: scale(1.03);
} }
.plan-card.current { .plan-card.current {
@@ -179,7 +181,11 @@
</head> </head>
<body> <body>
<div class="page-title">Your Plan, Your Timing: Upgrade Anytime</div> <div class="page-title">Your Plan, Your Timing: Upgrade Anytime</div>
<div class="page-subtitle">Instant setup · satisfied or reimbursed</div> <div class="page-subtitle">
Get <b>instant access</b> to all upgraded features, including for
your current contract period, while the additional time is
<b>added</b> to your existing term.
</div>
<div class="plans-row" id="plansRow"> <div class="plans-row" id="plansRow">
<!-- ── Trial ─────────────────────────────────────────────────── --> <!-- ── Trial ─────────────────────────────────────────────────── -->
@@ -222,7 +228,9 @@
<li>No module installation</li> <li>No module installation</li>
</ul> </ul>
<div class="plan-guarantee"> <div class="plan-guarantee">
Instant setup, satisfied or reimbursed. Get <b>instant access</b> to all upgraded features,
including for your current contract period, while the
additional time is <b>added</b> to your existing term.
</div> </div>
</div> </div>
@@ -242,7 +250,9 @@
<li>Module installation via git</li> <li>Module installation via git</li>
</ul> </ul>
<div class="plan-guarantee"> <div class="plan-guarantee">
Instant setup, satisfied or reimbursed. Get <b>instant access</b> to all upgraded features,
including for your current contract period, while the
additional time is <b>added</b> to your existing term.
</div> </div>
</div> </div>
@@ -261,24 +271,9 @@
<li>2 Workers</li> <li>2 Workers</li>
</ul> </ul>
<div class="plan-guarantee"> <div class="plan-guarantee">
Instant setup, satisfied or reimbursed. Get <b>instant access</b> to all upgraded features,
</div> including for your current contract period, while the
</div> additional time is <b>added</b> to your existing term.
<!-- ── Empire ────────────────────────────────────────────────── -->
<div class="plan-card" id="card-empire">
<div class="plan-name">Empire</div>
<div class="plan-price">&gt;$950.00</div>
<div class="plan-price-period">/ year</div>
<div class="plan-tagline">"My house! My Horse! My Server!"</div>
<button class="plan-btn" id="btn-empire">Contact Us</button>
<ul class="plan-features">
<li>Our service on your server</li>
<li>All modules &amp; features</li>
<li>Unlimited customization</li>
</ul>
<div class="plan-guarantee">
Instant setup, satisfied or reimbursed.
</div> </div>
</div> </div>
</div> </div>
@@ -298,7 +293,6 @@
"Side Hustle", "Side Hustle",
"On the Rise", "On the Rise",
"Powerhouse", "Powerhouse",
"Empire",
]; ];
const PLAN_META = { const PLAN_META = {
@@ -322,11 +316,6 @@
btnId: "btn-powerhouse", btnId: "btn-powerhouse",
productId: "powerhouse", productId: "powerhouse",
}, },
Empire: {
cardId: "card-empire",
btnId: "btn-empire",
productId: null,
},
}; };
// ── UUID from URL ───────────────────────────────────────────────────────── // ── UUID from URL ─────────────────────────────────────────────────────────
@@ -377,17 +366,14 @@
document document
.getElementById("btn-powerhouse") .getElementById("btn-powerhouse")
.addEventListener("click", () => buyProduct("powerhouse")); .addEventListener("click", () => buyProduct("powerhouse"));
document
.getElementById("btn-empire")
.addEventListener("click", () => {
window.open("https://odoo4projects.com", "_blank");
});
// ── Apply current-plan state ────────────────────────────────────────────── // ── Apply current-plan state ──────────────────────────────────────────────
function applyPlanState(contractName) { function applyPlanState(contractName, expires) {
const currentIdx = PLAN_ORDER.indexOf(contractName); const currentIdx = PLAN_ORDER.indexOf(contractName);
if (currentIdx === -1) return; // unknown plan leave defaults if (currentIdx === -1) return; // unknown plan leave defaults
const expiresLabel = expires ? "✅ " + expires : "✅";
PLAN_ORDER.forEach(function (plan, idx) { PLAN_ORDER.forEach(function (plan, idx) {
var meta = PLAN_META[plan]; var meta = PLAN_META[plan];
if (!meta) return; if (!meta) return;
@@ -398,12 +384,12 @@
if (idx === currentIdx) { if (idx === currentIdx) {
// Current plan // Current plan
card.classList.add("current"); card.classList.add("current");
btn.textContent = "Your Plan"; btn.textContent = expiresLabel;
btn.disabled = true; btn.disabled = true;
btn.classList.add("is-current-plan"); btn.classList.add("is-current-plan");
} else if (idx < currentIdx) { } else if (idx < currentIdx) {
// Lower tier no downgrade // Lower tier no downgrade
btn.textContent = "Your Plan"; btn.textContent = expiresLabel;
btn.disabled = true; btn.disabled = true;
btn.classList.remove("is-current-plan"); btn.classList.remove("is-current-plan");
} }
@@ -428,7 +414,7 @@
? payload[0] ? payload[0]
: payload; : payload;
if (record && record.contractName) { if (record && record.contractName) {
applyPlanState(record.contractName); applyPlanState(record.contractName, record.expires);
} }
} catch (err) { } catch (err) {
console.error("Could not load contract data:", err); console.error("Could not load contract data:", err);