Pipeline: sponsor follow-up board (stages from the ledger, notes/follow-ups/tags, stage messages into chat), gated by pipelineMode with a coming-soon card until launch; training cards can wait on the same switch

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-09-15 11:01:03 -05:00
parent 56aa7418ad
commit 02f742f90a
9 changed files with 282 additions and 6 deletions
+39 -2
View File
@@ -5,7 +5,7 @@
<title>Member area | InstantAdPay</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&display=swap">
<link rel="icon" type="image/png" href="/logo-icon.png">
<link rel="stylesheet" href="/assets/site.css?v=20260915b">
<link rel="stylesheet" href="/assets/site.css?v=20260915c">
</head>
<body class="bo-body">
@@ -130,6 +130,7 @@
<nav class="bo-menu" aria-label="Member menu">
<button data-pane="overview" class="on" type="button"><svg viewBox="0 0 24 24"><rect x="3" y="3" width="8" height="8" rx="2"/><rect x="13" y="3" width="8" height="8" rx="2"/><rect x="3" y="13" width="8" height="8" rx="2"/><rect x="13" y="13" width="8" height="8" rx="2"/></svg>Overview</button>
<button data-pane="line" type="button"><svg viewBox="0 0 24 24"><circle cx="12" cy="7" r="3.2"/><circle cx="5" cy="17" r="2.6"/><circle cx="19" cy="17" r="2.6"/><path d="M12 10v3M12 13l-5 2M12 13l5 2"/></svg>My line</button>
<button data-pane="pipeline" type="button"><svg viewBox="0 0 24 24"><rect x="3" y="4" width="5" height="16" rx="1.2"/><rect x="9.5" y="4" width="5" height="11" rx="1.2"/><rect x="16" y="4" width="5" height="7" rx="1.2"/></svg>Pipeline<span class="pill" id="pipeBadge" hidden></span></button>
<button data-pane="buy" type="button"><svg viewBox="0 0 24 24"><circle cx="9" cy="20" r="1.6"/><circle cx="17" cy="20" r="1.6"/><path d="M3 4h2l2.4 11.2A2 2 0 0 0 9.4 17h8.2a2 2 0 0 0 2-1.6L21 8H6"/></svg>Buy packages</button>
<button data-pane="campaigns" type="button"><svg viewBox="0 0 24 24"><path d="M3 11l14-5v12L3 13v-2z"/><path d="M17 8a4 4 0 0 1 0 8M7 13v5a2 2 0 0 0 4 0v-3"/></svg>Campaigns</button>
<button data-pane="earn" type="button"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5v9M9 10c0-1.1 1.3-1.8 3-1.8s3 .7 3 1.8-1.3 1.6-3 1.8-3 .7-3 1.8 1.3 1.8 3 1.8 3-.7 3-1.8"/></svg>Earn credits<span class="pill" id="inboxBadge" hidden></span></button>
@@ -374,6 +375,42 @@
<div class="card ad-foot" id="adSlotPane-line" hidden></div>
</div>
<div class="pane" id="pane-pipeline" hidden>
<div class="card" id="pipeSoon" hidden>
<h3>Pipeline: coming soon</h3>
<p class="muted small" id="pipeSoonText">One board for everyone you are working with. Every prospect and every direct sits in a column by what they have actually done: talking, joined, wallet linked, payouts on, bought, building. The site moves the cards when the event happens on the ledger. You add the part it cannot know: a note, a follow-up date, and the message for that exact stage, sent through the chat you already have.</p>
<p class="muted small" id="pipeSoonEta"></p>
<p><a class="btn small sec" href="/whats-new" target="_blank" rel="noopener">See the roadmap</a></p>
</div>
<div id="pipeLive" hidden>
<div class="card" id="pipeDueCard">
<h3>Follow up today <span class="pill" id="pipeDueCount" hidden></span></h3>
<p class="muted small">Cards with a follow-up date of today or earlier. Cards flagged <b>stalled</b> have been quiet for three days or more.</p>
<div id="pipeDue"><p class="muted small">Nothing due. Set a follow-up date on any card and it shows up here.</p></div>
</div>
<div class="card">
<h3>Your board</h3>
<p class="muted small" id="pipeSummary">Every column is a stage the site can prove. Cards move on their own; open one to add a note, a follow-up date or a tag.</p>
<div class="pipe-board" id="pipeBoard"></div>
</div>
<div class="card" id="pipeCard" hidden>
<div style="display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap">
<div><h3 id="pipeCardName" style="margin:0 0 4px"></h3><p class="muted small" id="pipeCardMeta" style="margin:0"></p></div>
<button class="btn small sec" type="button" id="pipeCardClose">Close</button>
</div>
<p class="small" id="pipeCardNext" style="margin:10px 0 6px"></p>
<div class="promo-block" id="pipeSayBlock" hidden><div class="pb-head"><span class="pb-net">Message for this stage</span></div><div class="pb-text" id="pipeSay"></div>
<p style="margin:8px 0 0"><button class="btn small" type="button" id="pipeSend">Open chat with this message</button> <button class="btn small sec" type="button" id="pipeCopy">Copy message</button></p></div>
<div style="display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:12px" class="pipe-form">
<label class="small muted">Follow up on<br><input type="date" id="pipeFollow" class="small" style="width:100%"></label>
<label class="small muted">Tag<br><select id="pipeTag" class="small" style="width:100%"></select></label>
</div>
<label class="small muted" style="display:block;margin-top:10px">Your note<br><textarea id="pipeNote" rows="3" style="width:100%" maxlength="1000" placeholder="What you talked about, what they said, what is next."></textarea></label>
<p style="margin:10px 0 0"><button class="btn small" type="button" id="pipeSave">Save</button> <span class="muted small" id="pipeSaved"></span></p>
</div>
</div>
<div class="card ad-foot" id="adSlotPane-pipeline" hidden></div>
</div>
<div class="pane" id="pane-buy" hidden>
<div class="card">
<h3>Buy an ad package</h3>
@@ -984,7 +1021,7 @@
<script src="/assets/common.js?v=20260914a"></script>
<script src="/assets/wallet.js?v=20260911a"></script>
<script src="/assets/promo.js?v=20260911a"></script>
<script src="/assets/my.js?v=20260915b"></script>
<script src="/assets/my.js?v=20260915c"></script>
<script src="/assets/chat.js?v=20260907l"></script>
</body>
</html>