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
+74 -1
View File
@@ -6196,10 +6196,83 @@ body.lt-landing {
}
.workbench-panel--flow,
.workbench-panel--outputs {
.workbench-panel--outputs,
.workbench-panel--docs {
grid-column: 1 / -1;
}
.workbench-docs__desc {
font-size: 0.875rem;
color: var(--dbn-text-2, #555);
margin-bottom: 16px;
}
.workbench-docs__list {
display: flex;
flex-direction: column;
gap: 8px;
margin-bottom: 16px;
min-height: 40px;
}
.workbench-docs__item {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 12px;
border-radius: 8px;
border: 1px solid var(--dbn-line, #e0ddd8);
background: rgba(255,255,255,0.9);
font-size: 0.875rem;
}
.workbench-docs__icon { flex-shrink: 0; font-size: 1rem; }
.workbench-docs__name {
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-weight: 500;
}
.workbench-docs__meta {
font-size: 0.75rem;
color: var(--dbn-text-2, #888);
white-space: nowrap;
flex-shrink: 0;
}
.workbench-docs__remove {
flex-shrink: 0;
background: none;
border: 1px solid var(--dbn-line, #e0ddd8);
border-radius: 6px;
padding: 3px 10px;
font-size: 0.75rem;
cursor: pointer;
color: var(--dbn-text-2, #777);
transition: background 0.15s, color 0.15s;
}
.workbench-docs__remove:hover {
background: #fee2e2;
color: #b91c1c;
border-color: #fca5a5;
}
.workbench-docs__empty,
.workbench-docs__loading {
font-size: 0.875rem;
color: var(--dbn-text-2, #888);
font-style: italic;
}
.workbench-docs__cta {
display: inline-block;
font-size: 0.875rem;
}
.workbench-section-head {
display: flex;
align-items: baseline;