← back to Flockedwallpaper

agenda.html

223 lines

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Daily Agenda - March 6, 2026</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;background:#F5F0EB;min-height:100vh;padding:24px}
.container{max-width:600px;margin:0 auto}
.header{text-align:center;margin-bottom:32px}
.header h1{font-size:24px;font-weight:700;color:#1A1614}
.header .date{font-size:13px;color:#8A7D74;margin-top:4px;letter-spacing:.05em}
.header .sub{font-size:11px;color:#C4995C;letter-spacing:.15em;text-transform:uppercase;margin-top:8px}
.card{background:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:all .3s}
.card.approved{border-left:4px solid #4ADE80}
.card.rejected{border-left:4px solid #f87171;opacity:.6}
.card .tag{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:10px;margin-bottom:10px}
.tag-live{background:#4ADE8020;color:#16a34a}
.tag-pending{background:#C4995C20;color:#C4995C}
.tag-new{background:#4169E120;color:#4169E1}
.tag-export{background:#9370DB20;color:#9370DB}
.card h3{font-size:16px;font-weight:600;color:#1A1614;margin-bottom:6px}
.card p{font-size:13px;color:#8A7D74;line-height:20px}
.card .detail{font-size:12px;color:#aaa;margin-top:8px;font-style:italic}
.btns{display:flex;gap:10px;margin-top:14px}
.btn{flex:1;padding:12px;border:none;border-radius:8px;font-family:'Inter',sans-serif;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s}
.btn-approve{background:#4ADE8020;color:#16a34a}
.btn-approve:hover{background:#4ADE80;color:#fff}
.btn-reject{background:#f8717120;color:#f87171}
.btn-reject:hover{background:#f87171;color:#fff}
.btn:disabled{opacity:.4;cursor:default}
.status{text-align:center;font-size:12px;font-weight:600;margin-top:8px;min-height:18px}
.status-approved{color:#16a34a}
.status-rejected{color:#f87171}
.summary{background:#1A1614;border-radius:12px;padding:24px;margin-top:24px;text-align:center}
.summary h3{color:#C4995C;font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
.summary .counts{display:flex;justify-content:center;gap:32px}
.summary .count{color:#fff;font-size:28px;font-weight:700}
.summary .count-label{color:#8A7D74;font-size:11px;margin-top:2px}
.submit-btn{display:block;width:100%;padding:16px;margin-top:16px;background:#C4995C;border:none;border-radius:8px;font-family:'Inter',sans-serif;font-weight:700;font-size:14px;color:#1A1614;cursor:pointer;letter-spacing:.05em}
.submit-btn:hover{opacity:.9}
.submit-btn:disabled{opacity:.4;cursor:default}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1A1614;color:#fff;padding:14px 28px;border-radius:8px;font-size:13px;font-weight:500;display:none;z-index:100}
</style>
</head>
<body>
<div class="container">
  <div class="header">
    <h1>Daily Agenda</h1>
    <div class="date">Friday, March 6, 2026 - 2:48 PM PT</div>
    <div class="sub">Designer Wallcoverings - Agent Abrams</div>
  </div>

  <div class="card" id="item-1">
    <span class="tag tag-live">DEPLOYED</span>
    <h3>FlockedWallpaper.com - Mobile Site Redesign</h3>
    <p>Complete mobile-first redesign deployed to production (port 3200). Includes hero section, featured scroll, product grid, Zendesk chat, social sharing, and cream-colored footer.</p>
    <div class="detail">Live at flockedwallpaper.com | 227 products | Cookie-based auth on dev (8888)</div>
    <div class="btns">
      <button class="btn btn-approve" onclick="vote(1,'approved')">Approve</button>
      <button class="btn btn-reject" onclick="vote(1,'rejected')">Needs Changes</button>
    </div>
    <div class="status" id="status-1"></div>
  </div>

  <div class="card" id="item-2">
    <span class="tag tag-live">FIXED</span>
    <h3>Shop by Color - Added Missing Colors</h3>
    <p>Added Orange, Yellow, and Neutral to the color filter map. Top 8 colors now display: Black (111), White (42), Red (28), Blue (9), Orange (6), Gray (6), Pink (4), Purple (4).</p>
    <div class="detail">Color chips verified working via Cloudflare domain | Phone cache may need clearing</div>
    <div class="btns">
      <button class="btn btn-approve" onclick="vote(2,'approved')">Approve</button>
      <button class="btn btn-reject" onclick="vote(2,'rejected')">Needs Changes</button>
    </div>
    <div class="status" id="status-2"></div>
  </div>

  <div class="card" id="item-3">
    <span class="tag tag-live">UPDATED</span>
    <h3>Footer - Black to Cream Background</h3>
    <p>Removed black background from footer. Now uses cream (#F5F0EB) with dark text, subtle borders, and gold CTA button. Matches the overall site aesthetic.</p>
    <div class="detail">CSS variables: --cream for bg, --black for text, --gray for secondary</div>
    <div class="btns">
      <button class="btn btn-approve" onclick="vote(3,'approved')">Approve</button>
      <button class="btn btn-reject" onclick="vote(3,'rejected')">Needs Changes</button>
    </div>
    <div class="status" id="status-3"></div>
  </div>

  <div class="card" id="item-4">
    <span class="tag tag-export">EXPORT</span>
    <h3>Claude Skills Package - Ready for Download</h3>
    <p>280 skills exported (249 SKILL.md files). Two packages available: Full archive (22MB) and markdown-only (600KB) for Claude Desktop.</p>
    <div class="detail">Full: /claude-skills-export.zip | Light: /claude-skills-md-only.zip</div>
    <div class="btns">
      <button class="btn btn-approve" onclick="vote(4,'approved')">Approve</button>
      <button class="btn btn-reject" onclick="vote(4,'rejected')">Needs Changes</button>
    </div>
    <div class="status" id="status-4"></div>
  </div>

  <div class="card" id="item-5">
    <span class="tag tag-pending">PENDING</span>
    <h3>Paper Design Update - Footer Sync</h3>
    <p>Paper MCP connection failed. Need to update the Paper artboard (FW - Home) to reflect the cream footer. Will retry when Paper is available.</p>
    <div class="detail">Artboard 3Y-0 | Footer node needs background color update</div>
    <div class="btns">
      <button class="btn btn-approve" onclick="vote(5,'approved')">Approve</button>
      <button class="btn btn-reject" onclick="vote(5,'rejected')">Needs Changes</button>
    </div>
    <div class="status" id="status-5"></div>
  </div>

  <div class="card" id="item-6">
    <span class="tag tag-new">ACTION NEEDED</span>
    <h3>Phone Cache - Cloudflare Bypass</h3>
    <p>Site works perfectly through Cloudflare domain (verified). User's phone showing old cached version. Recommend: clear Safari/Chrome cache or use incognito tab.</p>
    <div class="detail">cf-cache-status: DYNAMIC (Cloudflare not caching) | Origin: no-cache headers set</div>
    <div class="btns">
      <button class="btn btn-approve" onclick="vote(6,'approved')">Approve</button>
      <button class="btn btn-reject" onclick="vote(6,'rejected')">Needs Changes</button>
    </div>
    <div class="status" id="status-6"></div>
  </div>

  <div class="summary">
    <h3>Decisions</h3>
    <div class="counts">
      <div><div class="count" id="approveCount">0</div><div class="count-label">Approved</div></div>
      <div><div class="count" id="rejectCount">0</div><div class="count-label">Needs Changes</div></div>
      <div><div class="count" id="pendingCount">6</div><div class="count-label">Pending</div></div>
    </div>
  </div>

  <button class="submit-btn" id="submitBtn" onclick="submitDecisions()" disabled>Submit All Decisions to Slack</button>
</div>

<div class="toast" id="toast"></div>

<script>
const votes = {};
const TOTAL = 6;
const SLACK_WEBHOOK = 'https://hooks.slack.com/services/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';

function vote(id, decision) {
  votes[id] = decision;
  const card = document.getElementById('item-' + id);
  const status = document.getElementById('status-' + id);

  card.className = 'card ' + decision;
  card.querySelectorAll('.btn').forEach(b => b.disabled = false);

  if (decision === 'approved') {
    status.className = 'status status-approved';
    status.textContent = 'APPROVED';
  } else {
    status.className = 'status status-rejected';
    status.textContent = 'NEEDS CHANGES';
  }

  updateCounts();
}

function updateCounts() {
  const approved = Object.values(votes).filter(v => v === 'approved').length;
  const rejected = Object.values(votes).filter(v => v === 'rejected').length;
  const pending = TOTAL - approved - rejected;

  document.getElementById('approveCount').textContent = approved;
  document.getElementById('rejectCount').textContent = rejected;
  document.getElementById('pendingCount').textContent = pending;

  document.getElementById('submitBtn').disabled = Object.keys(votes).length < TOTAL;
}

function showToast(msg) {
  const t = document.getElementById('toast');
  t.textContent = msg;
  t.style.display = 'block';
  setTimeout(() => t.style.display = 'none', 3000);
}

async function submitDecisions() {
  const items = [
    'FlockedWallpaper Mobile Redesign',
    'Shop by Color - Missing Colors Fix',
    'Footer - Cream Background',
    'Claude Skills Export Package',
    'Paper Design Update (Pending)',
    'Phone Cache / Cloudflare Bypass'
  ];

  let text = '*Steve\'s Agenda Decisions - March 6, 2026*\n\n';
  for (let i = 1; i <= TOTAL; i++) {
    const icon = votes[i] === 'approved' ? ':white_check_mark:' : ':x:';
    const label = votes[i] === 'approved' ? 'APPROVED' : 'NEEDS CHANGES';
    text += icon + ' *' + items[i-1] + '* — ' + label + '\n';
  }

  const approved = Object.values(votes).filter(v => v === 'approved').length;
  const rejected = Object.values(votes).filter(v => v === 'rejected').length;
  text += '\n*Summary:* ' + approved + ' approved, ' + rejected + ' needs changes';

  try {
    await fetch(SLACK_WEBHOOK, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ text }),
      mode: 'no-cors'
    });
    showToast('Decisions sent to Slack #claude-to-steve');
    document.getElementById('submitBtn').disabled = true;
    document.getElementById('submitBtn').textContent = 'Sent to Slack';
  } catch (e) {
    showToast('Error sending to Slack');
  }
}
</script>
</body>
</html>