u
This commit is contained in:
+23
-37
@@ -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">>$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 & 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);
|
||||||
|
|||||||
Reference in New Issue
Block a user