Directory UI support for Input Interface entries + revert incorrect lead-count fix
Add "Input Interface" filter chip (matches both submitter-tagged source values), a distinct .ii source-chip color, and an email display row in both the Directory grid card (already had it) and Outreach Board detail view (was missing). Also reverts an earlier mistake: "184 leads" was correct all along — it's address-book-data (47) merged live with every SPIE 2026 presenter from conferences-data (137) via buildConferenceContactsForAB(). An earlier check only looked at address-book-data directly and wrongly called 184 stale, changing it to 47. Restored the correct figure with a self-correction note.
This commit is contained in:
1 parent
781619694a
commit
350700e2cd
1 file changed
+12
-6
+12
-6
@@ -775,6 +775,7 @@
|
||||
.ab-source-chip.boss { background: #e8f0fe; color: #1b3a5c; }
|
||||
.ab-source-chip.eng { background: #e6f7f2; color: #0e7c66; }
|
||||
.ab-source-chip.conf { background: #fdeee3; color: #a3651f; }
|
||||
.ab-source-chip.ii { background: #f3ecfb; color: #6a3fa0; }
|
||||
|
||||
.ab-warmth { font-size: 0.68rem; font-weight: 700; margin-top: 6px; display: inline-block; }
|
||||
.ab-warmth.Warm { color: #2f9e58; }
|
||||
@@ -953,6 +954,7 @@
|
||||
<button class="ab-filter-chip" data-source="Outreach">Outreach</button>
|
||||
<button class="ab-filter-chip" data-source="Engaged Non-Follower">Engaged Non-Follower</button>
|
||||
<button class="ab-filter-chip" data-source="Conference">SPIE 2026 Conference</button>
|
||||
<button class="ab-filter-chip" data-source="Input Interface">Input Interface</button>
|
||||
<button class="ab-filter-chip" id="ab-followers-link">Followers ↗</button>
|
||||
<a class="ab-filter-chip" style="text-decoration:none;" href="address_book/conference_mail_merge/conference_contacts.xlsx" download>Download Contact Sheet ↓</a>
|
||||
<a class="ab-filter-chip" style="text-decoration:none;" href="http://localhost:8505" target="_blank" rel="noopener" title="Opens the Mail Merge tool in a new tab. Must be running first (webapp.py in address_book/conference_mail_merge/).">Open Mail Merge Tool ↗</a>
|
||||
@@ -5910,7 +5912,7 @@
|
||||
renderConferences();
|
||||
|
||||
/* ---- Address Book ---- */
|
||||
var AB_SOURCE_CLASS = { "Marketing Intelligence": "mi", "Outreach": "boss", "Engaged Non-Follower": "eng", "Conference": "conf" };
|
||||
var AB_SOURCE_CLASS = { "Marketing Intelligence": "mi", "Outreach": "boss", "Engaged Non-Follower": "eng", "Conference": "conf", "Input Interface (Peter)": "ii", "Input Interface (Mckinley)": "ii" };
|
||||
var AB_ROLE_TYPE_LABEL = { "presenter": "Presenter", "chair": "Chair" };
|
||||
var AB_VALUE_TAG_ROLE_BADGE = { money: "Budget Holder", collaborator: "Collaborator", connector: "Connector", idea: "Technical Insight" };
|
||||
|
||||
@@ -5966,7 +5968,8 @@
|
||||
var q = document.getElementById("ab-search").value.trim().toLowerCase();
|
||||
var filtered = AB_DATA.filter(function (e) {
|
||||
var category = (e.vertical || "").split(" — ")[0];
|
||||
return (abActiveSource === "all" || e.source === abActiveSource) &&
|
||||
return (abActiveSource === "all" || e.source === abActiveSource ||
|
||||
(abActiveSource === "Input Interface" && (e.source || "").indexOf("Input Interface") === 0)) &&
|
||||
(abActiveCategory === "all" || category === abActiveCategory) &&
|
||||
(abActiveStage === "all" || e.stage === abActiveStage) &&
|
||||
(abActiveFit === "all" || e.fit_rating === abActiveFit) &&
|
||||
@@ -6242,6 +6245,7 @@
|
||||
}
|
||||
|
||||
var kv = "<div class=\"ab-prof-kv\"><span class=\"k\">Our contact:</span><span class=\"v\">" + contactLine + "</span></div>";
|
||||
if (e.email) { kv += "<div class=\"ab-prof-kv\"><span class=\"k\">Email:</span><span class=\"v\"><a href=\"mailto:" + abEsc(e.email) + "\">" + abEsc(e.email) + "</a></span></div>"; }
|
||||
if (e.abstract) { kv += "<div class=\"ab-prof-kv\"><span class=\"k\">Pitch angle:</span><span class=\"v\">" + abEsc(e.abstract) + "</span></div>"; }
|
||||
if (e.search_term) { kv += "<div class=\"ab-prof-kv\"><span class=\"k\">LinkedIn search:</span><span class=\"v\">" + abEsc(e.search_term) + "</span></div>"; }
|
||||
if (e.connection) { kv += "<div class=\"ab-prof-kv\"><span class=\"k\">Connection:</span><span class=\"v\">" + abEsc(e.connection) + "</span></div>"; }
|
||||
@@ -6454,10 +6458,10 @@
|
||||
id: "open-items-department-dash",
|
||||
label: "Department Dash",
|
||||
subtasks: [
|
||||
{ id: "st-4a77167d", subtask: "Outreach Board stage-tracking", ask: "8500 Directory tab: 47 leads listed, but no way to persist a \"contacted\" status yet", kpi: "—", status: "Still open, blocks live KPI tracking" }
|
||||
{ id: "st-4a77167d", subtask: "Outreach Board stage-tracking", ask: "8500 Directory tab: 184 leads listed, but no way to persist a \"contacted\" status yet", kpi: "—", status: "Still open, blocks live KPI tracking" }
|
||||
],
|
||||
notes: [
|
||||
{ date: "2026-09-01", source: "Input Interface (Mckinley)", text: "Corrected a stale figure: this task's description previously said \"184 leads\" — verified directly against the live address-book-data JSON, the Directory currently holds 47 entries (25 Outreach, 17 Marketing Intelligence, 5 Engaged Non-Follower). No second data source or 184-count was found anywhere in the file; the old number appears to predate a prune/reorganization." }
|
||||
{ date: "2026-09-01", source: "Mckinley-directed", text: "Self-correction: earlier today this task's \"184 leads\" figure was changed to \"47\" based on a check that only looked at address-book-data directly. That was wrong — the Directory actually renders address-book-data (47 entries) merged live with every SPIE 2026 presenter from conferences-data (137 entries) via buildConferenceContactsForAB(), for a combined 184. Reverted back to the original, correct figure." }
|
||||
],
|
||||
reports: []
|
||||
},
|
||||
@@ -6544,10 +6548,12 @@
|
||||
id: "open-items-task-input-interface",
|
||||
label: "Task Input Interface",
|
||||
subtasks: [
|
||||
{ id: "st-1637a07e", subtask: "Task Input Interface built and live", ask: "New \"Add a Task\" form on the Tasks/Progress page, backed by a real local Flask app (localhost:8507) that persists submissions into TASKS_DATA", kpi: "—", status: "Done", closedDate: "2026-08-25", closedSource: "Mckinley-directed" }
|
||||
{ id: "st-1637a07e", subtask: "Task Input Interface built and live", ask: "New \"Add a Task\" form on the Tasks/Progress page, backed by a real local Flask app (localhost:8507) that persists submissions into TASKS_DATA", kpi: "—", status: "Done", closedDate: "2026-08-25", closedSource: "Mckinley-directed" },
|
||||
{ id: "st-463cd965", subtask: "Prospect Scout + Directory input added", ask: "Add/edit forms built for Market Intelligence's Prospect Scout (writes to prospect_scout.json) and Department Dash's Directory (writes into index.html's address-book-data, new email field added)", kpi: "—", status: "Done", closedDate: "2026-08-26", closedSource: "Mckinley-directed" }
|
||||
],
|
||||
notes: [
|
||||
{ date: "2026-08-25", source: "Mckinley-directed", text: "Task Input Interface built and live: new \"Add a Task\" form built directly on the Tasks/Progress page — track dropdown (8 tracks + Unassigned/Needs Triage), submitter dropdown (Peter/Mckinley), task text field. Backed by a real local Flask app (Input Interface, localhost:8507) that persists submissions into TASKS_DATA — genuine writes, not a demo. Delete capability added too, with all 17 existing subtasks migrated to carry a stable id. Ad-hoc submissions are visually distinct from Peter's weekly Excel imports (tagged \"Input Interface (Peter)\"/\"Input Interface (Mckinley)\"). This is the first working piece of Peter's broader cloud-tool request — local only for now, cloud deployment is a later phase." }
|
||||
{ date: "2026-08-25", source: "Mckinley-directed", text: "Task Input Interface built and live: new \"Add a Task\" form built directly on the Tasks/Progress page — track dropdown (8 tracks + Unassigned/Needs Triage), submitter dropdown (Peter/Mckinley), task text field. Backed by a real local Flask app (Input Interface, localhost:8507) that persists submissions into TASKS_DATA — genuine writes, not a demo. Delete capability added too, with all 17 existing subtasks migrated to carry a stable id. Ad-hoc submissions are visually distinct from Peter's weekly Excel imports (tagged \"Input Interface (Peter)\"/\"Input Interface (Mckinley)\"). This is the first working piece of Peter's broader cloud-tool request — local only for now, cloud deployment is a later phase." },
|
||||
{ date: "2026-08-26", source: "Mckinley-directed", text: "Prospect Scout + Directory input added: full-card add/edit forms built for both pages (localhost:8507/prospect-scout, localhost:8507/directory), same submitter-tagging convention as Tasks (\"Input Interface (Peter)\"/\"Input Interface (Mckinley)\"). Prospect Scout writes only to Market Intelligence's prospect_scout.json (never their static dashboard file directly) -- they merge periodically; Directory writes directly into this file's address-book-data JSON, including a new email field that didn't exist before. Both tested against scratch copies, then verified with a real add+edit round trip against the live data before cleanup. Stable ids added on both sides (ps-/dir- prefixes, matching the st- convention from Tasks) after a name-matching fragility risk was flagged and fixed collaboratively with each owning session." }
|
||||
],
|
||||
reports: []
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user