Restructure CRM Research into a root + Notes drill-down page
Matches the Marketing/Sales breadcrumb pattern: the comparison table stays on the root view, "Notes ->" drills into a dedicated sub-page linking out to CRM_Research_Notes.md, with back navigation and breadcrumbs. Left CRM_Research_Notes.md's own changes uncommitted — that file belongs to the CRM Research session. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a7e4aa5138
commit
24ce2b748c
1 file changed
+141
-6
+141
-6
@@ -261,6 +261,27 @@
|
||||
}
|
||||
.tree-row .open-link:hover { background: #1b3a5c; }
|
||||
|
||||
#tab-crm-research h2 { margin: 0 0 12px; font-size: 1.3rem; font-weight: 800; color: #1b3a5c; }
|
||||
#tab-crm-research .narrative {
|
||||
font-size: 0.95rem; line-height: 1.65; color: #3d4c5c;
|
||||
max-width: none; margin: 0 0 20px;
|
||||
}
|
||||
.crm-table-wrap { overflow-x: auto; margin-bottom: 10px; }
|
||||
.crm-table { border-collapse: collapse; width: 100%; font-size: 0.85rem; }
|
||||
.crm-table th, .crm-table td { padding: 10px 12px; border-bottom: 1px solid #e0e7ef; text-align: left; white-space: nowrap; }
|
||||
.crm-table th {
|
||||
color: #1b3a5c; font-weight: 800; font-size: 0.72rem;
|
||||
text-transform: uppercase; letter-spacing: 0.04em; background: #f7f9fc;
|
||||
}
|
||||
.crm-table td.crm-feature { text-align: center; }
|
||||
.crm-table tbody tr:hover td { background: #f7f9fc; }
|
||||
.crm-company a { color: #1a2533; font-weight: 700; text-decoration: none; }
|
||||
.crm-company a:hover { color: #2d6a9f; text-decoration: underline; }
|
||||
.crm-company .crm-site { display: block; font-size: 0.75rem; font-weight: 500; color: #6b7a8d; margin-top: 2px; }
|
||||
.crm-check { color: #1a8a60; font-weight: 800; font-size: 1rem; }
|
||||
.crm-x { color: #b3261e; font-weight: 800; font-size: 1rem; }
|
||||
.crm-note { font-size: 0.78rem; color: #6b7a8d; margin: 10px 0 20px; }
|
||||
|
||||
.drill-crumbs {
|
||||
font-size: 0.78rem;
|
||||
font-weight: 600;
|
||||
@@ -4497,11 +4518,118 @@
|
||||
</div>
|
||||
|
||||
<div id="tab-crm-research" class="tab-content">
|
||||
<div class="card">
|
||||
<div class="card" style="padding: 0;">
|
||||
<div style="padding: 20px 32px 0;">
|
||||
<div class="drill-crumbs" id="crm-crumbs"></div>
|
||||
</div>
|
||||
|
||||
<div class="drill-view active" data-view="crm-root">
|
||||
<h2>CRM Research</h2>
|
||||
<p class="narrative">No CRM today — contacts live across Excel sheets, the LinkedIn follower list, and the conference mail-merge sheet. This page tracks the research into what TXproducts actually needs before picking one. [Placeholder narrative — edit me.]</p>
|
||||
<p class="narrative">No CRM exists at TXproducts today — contacts and outreach are scattered across Excel sheets, the LinkedIn follower list, and the conference mail-merge sheet. This page tracks research into what a CRM needs to support before any product is chosen. No recommendation has been made; non-US vendors only, checked against the must-have requirements below.</p>
|
||||
|
||||
<div class="crm-table-wrap">
|
||||
<table class="crm-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Company</th>
|
||||
<th>CSV/Excel Import</th>
|
||||
<th>Sales Pipeline</th>
|
||||
<th>Generic IMAP/SMTP</th>
|
||||
<th>EU Hosting + DPA</th>
|
||||
<th>Self-Hosted</th>
|
||||
<th>Free / Open-Source</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://capsulecrm.com" target="_blank" rel="noopener">Capsule CRM</a><span class="crm-site">capsulecrm.com</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span><sup>*</sup></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://www.espocrm.com" target="_blank" rel="noopener">EspoCRM</a><span class="crm-site">espocrm.com</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://www.odoo.com/app/crm" target="_blank" rel="noopener">Odoo CRM</a><span class="crm-site">odoo.com</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span><sup>*</sup></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span><sup>‡</sup></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://suitecrm.com" target="_blank" rel="noopener">SuiteCRM</a><span class="crm-site">suitecrm.com</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span><sup>‡</sup></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://www.zoho.com/crm/" target="_blank" rel="noopener">Zoho CRM</a><span class="crm-site">zoho.com/crm</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span><sup>*</sup></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span><sup>†</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://centralstationcrm.de" target="_blank" rel="noopener">CentralStationCRM</a><span class="crm-site">centralstationcrm.de</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span><sup>†</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://www.dolibarr.org" target="_blank" rel="noopener">Dolibarr</a><span class="crm-site">dolibarr.org</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span><sup>‡</sup></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="crm-company"><a href="https://www.efficy.com" target="_blank" rel="noopener">Efficy CRM</a><span class="crm-site">efficy.com</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span><sup>*</sup></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span><sup>*</sup></td>
|
||||
<td class="crm-feature"><span class="crm-check">✓</span></td>
|
||||
<td class="crm-feature"><span class="crm-x">✗</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="crm-note"><sup>*</sup> unconfirmed / conflicting sources — needs direct vendor confirmation before relying on it. <sup>†</sup> has a free tier, but capped well below 8 users. <sup>‡</sup> self-hosted, so EU hosting + DPA is whatever server you choose, not vendor-provided.</p>
|
||||
|
||||
<div class="drill-actions">
|
||||
<a class="open-link" href="address_book/CRM_Research_Notes.md" target="_blank" rel="noopener">Open CRM Research Notes ↗</a>
|
||||
<button class="drill-next" data-target="notes">Notes →</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="drill-view" data-view="notes">
|
||||
<h2>Notes</h2>
|
||||
<p class="narrative">Requirements and the candidate survey behind the table above — maintained separately, in its own research session.</p>
|
||||
<div class="drill-actions">
|
||||
<button class="drill-back" data-target="crm-root">← CRM Research</button>
|
||||
<a class="open-link" href="address_book/CRM_Research_Notes.md" target="_blank" rel="noopener">Open full research notes ↗</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -4514,7 +4642,7 @@
|
||||
"marketing": ["Marketing", ""],
|
||||
"sales": ["Sales", ""],
|
||||
"opportunities": ["Opportunities", ""],
|
||||
"crm-research": ["CRM Research", "Evaluating CRM options for TXproducts."]
|
||||
"crm-research": ["CRM Research", ""]
|
||||
};
|
||||
var btns = document.querySelectorAll(".sidebar-nav-btn");
|
||||
btns.forEach(function (btn) {
|
||||
@@ -4536,7 +4664,7 @@
|
||||
/* ---- Drill-downs: Marketing -> Social Media (dropdown) -> LinkedIn -> Dash
|
||||
Sales -> Market Intelligence -> site (goes there directly, one child today) ---- */
|
||||
var HERO_NAV_BY_TAB = { marketing: ["hero-nav-social", "hero-nav-conferences"] };
|
||||
var DRILL_DEFAULT_VIEW = { marketing: "marketing-root", sales: "market-intelligence" };
|
||||
var DRILL_DEFAULT_VIEW = { marketing: "marketing-root", sales: "market-intelligence", "crm-research": "crm-root" };
|
||||
var DRILL_CONFIG = {
|
||||
marketing: {
|
||||
crumbsEl: "mkt-crumbs",
|
||||
@@ -4552,6 +4680,13 @@
|
||||
"sales-root": [["Sales", "sales-root"]],
|
||||
"market-intelligence": [["Sales", "sales-root"], ["Intelligence Board", "market-intelligence"], ["Market Intelligence", "market-intelligence"]]
|
||||
}
|
||||
},
|
||||
"crm-research": {
|
||||
crumbsEl: "crm-crumbs",
|
||||
crumbs: {
|
||||
"crm-root": [["CRM Research", "crm-root"]],
|
||||
"notes": [["CRM Research", "crm-root"], ["Notes", "notes"]]
|
||||
}
|
||||
}
|
||||
};
|
||||
/* Feature modules loaded async (see opportunities/opportunities.js) register their own
|
||||
@@ -4584,7 +4719,7 @@
|
||||
crumbsEl.appendChild(el);
|
||||
});
|
||||
}
|
||||
["marketing", "sales"].forEach(function (scope) {
|
||||
["marketing", "sales", "crm-research"].forEach(function (scope) {
|
||||
document.querySelectorAll("#tab-" + scope + " .drill-back, #tab-" + scope + " .drill-next").forEach(function (b) {
|
||||
b.addEventListener("click", function () { setDrillView(scope, b.getAttribute("data-target")); });
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user