Add My Documents panel to workbench + user-docs API

- api/user-docs.php: GET/DELETE shared dbn_user_docs table (SSO users only)
  connects to dobetternorge DB via DBN_DB_* env vars
- workbench.php: My Documents panel (section 05) for SSO/free-tier users;
  shows docs uploaded from either AI chat or tools, links to AI Chat for upload
- workbench.js: fetch + render doc list, delete with Qdrant cleanup
- tools.css: workbench-docs panel + item styles
- i18n.php: my_docs_* strings in all 4 languages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 09:37:19 +02:00
parent 47aa35e946
commit bc44b0eee2
5 changed files with 324 additions and 1 deletions
+18
View File
@@ -198,6 +198,24 @@ foreach ($evidenceFields as [$name, $label, $hint]):
</label>
</section>
</form>
<?php if (dbnToolsIsFreeTier()): ?>
<section class="workbench-panel workbench-panel--docs" aria-labelledby="workbenchDocsTitle"
data-my-docs="true">
<div class="workbench-section-head">
<p class="workbench-kicker">05</p>
<h2 id="workbenchDocsTitle"><?= htmlspecialchars(dbnToolsT('my_docs_title', $uiLang)) ?></h2>
</div>
<p class="workbench-docs__desc"><?= htmlspecialchars(dbnToolsT('my_docs_desc', $uiLang)) ?></p>
<div id="myDocsList" class="workbench-docs__list" role="list" aria-live="polite">
<p class="workbench-docs__loading"><?= htmlspecialchars(dbnToolsT('loading', $uiLang)) ?></p>
</div>
<a class="secondary-button workbench-docs__cta" href="https://ai.dobetternorge.no/" target="_blank" rel="noopener noreferrer">
<?= htmlspecialchars(dbnToolsT('my_docs_upload_cta', $uiLang)) ?> ↗
</a>
</section>
<?php endif; ?>
</main>
<?php require_once __DIR__ . '/includes/footer.php'; ?>
<script src="assets/js/tools.js" defer></script>