Update botui: Knowledge Base group permissions tab and Drive UI enhancements.
Some checks failed
BotUI CI / build (push) Failing after 1h42m24s
Some checks failed
BotUI CI / build (push) Failing after 1h42m24s
This commit is contained in:
parent
3919a857b2
commit
45f56f0f6e
3 changed files with 40 additions and 2 deletions
|
|
@ -100,6 +100,7 @@
|
||||||
<button class="tab-btn active" data-tab="overview" onclick="switchTab(this, 'overview')">Overview</button>
|
<button class="tab-btn active" data-tab="overview" onclick="switchTab(this, 'overview')">Overview</button>
|
||||||
<button class="tab-btn" data-tab="members" onclick="switchTab(this, 'members')">Members</button>
|
<button class="tab-btn" data-tab="members" onclick="switchTab(this, 'members')">Members</button>
|
||||||
<button class="tab-btn" data-tab="permissions" onclick="switchTab(this, 'permissions')">Permissions</button>
|
<button class="tab-btn" data-tab="permissions" onclick="switchTab(this, 'permissions')">Permissions</button>
|
||||||
|
<button class="tab-btn" data-tab="kbs" onclick="switchTab(this, 'kbs')">Knowledge Bases</button>
|
||||||
<button class="tab-btn" data-tab="settings" onclick="switchTab(this, 'settings')">Settings</button>
|
<button class="tab-btn" data-tab="settings" onclick="switchTab(this, 'settings')">Settings</button>
|
||||||
<button class="tab-btn" data-tab="analytics" onclick="switchTab(this, 'analytics')">Analytics</button>
|
<button class="tab-btn" data-tab="analytics" onclick="switchTab(this, 'analytics')">Analytics</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -463,6 +464,7 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
|
line-clamp: 2;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1000,3 +1000,36 @@
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* KB Tags */
|
||||||
|
.kb-tag {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
padding: 2px 6px;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-left: 8px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kb-tag.public {
|
||||||
|
background: rgba(34, 197, 94, 0.15);
|
||||||
|
color: #22c55e;
|
||||||
|
border: 1px solid rgba(34, 197, 94, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.kb-tag.private {
|
||||||
|
background: rgba(245, 158, 11, 0.15);
|
||||||
|
color: #f59e0b;
|
||||||
|
border: 1px solid rgba(245, 158, 11, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-card-preview .kb-tag {
|
||||||
|
position: absolute;
|
||||||
|
top: 8px;
|
||||||
|
right: 8px;
|
||||||
|
margin: 0;
|
||||||
|
backdrop-filter: blur(4px);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -348,7 +348,8 @@
|
||||||
const checked = selectedFiles.has(file.path) ? "checked" : "";
|
const checked = selectedFiles.has(file.path) ? "checked" : "";
|
||||||
const selected = selectedFiles.has(file.path) ? "selected" : "";
|
const selected = selectedFiles.has(file.path) ? "selected" : "";
|
||||||
|
|
||||||
return `<div class="file-card ${selected}" data-path="${escapeHtml(file.path)}" data-name="${escapeHtml(file.name)}" data-type="${file.is_dir ? "folder" : "file"}" data-size="${file.size || 0}"><input type="checkbox" class="file-checkbox" ${checked} onchange="DriveModule.toggleSelection('${escapeJs(file.path)}')"><div class="file-card-preview ${iconClass}">${iconSvg}</div><div class="file-card-info"><div class="file-card-name" title="${escapeHtml(file.name)}">${escapeHtml(file.name)}</div><div class="file-card-meta">${sizeText}</div></div></div>`;
|
const kbTag = file.is_kb ? `<span class="kb-tag ${file.is_public ? "public" : "private"}" title="${file.is_public ? "Public KB" : "Restricted KB"}">KB</span>` : "";
|
||||||
|
return `<div class="file-card ${selected}" data-path="${escapeHtml(file.path)}" data-name="${escapeHtml(file.name)}" data-type="${file.is_dir ? "folder" : "file"}" data-size="${file.size || 0}"><input type="checkbox" class="file-checkbox" ${checked} onchange="DriveModule.toggleSelection('${escapeJs(file.path)}')"><div class="file-card-preview ${iconClass}">${iconSvg}${kbTag}</div><div class="file-card-info"><div class="file-card-name" title="${escapeHtml(file.name)}">${escapeHtml(file.name)}</div><div class="file-card-meta">${sizeText}</div></div></div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderFileRow(file) {
|
function renderFileRow(file) {
|
||||||
|
|
@ -365,7 +366,9 @@
|
||||||
? `<button class="btn-icon-sm" title="Download" onclick="event.stopPropagation(); DriveModule.downloadFile('${escapeJs(file.path)}')">${downloadIcon}</button>`
|
? `<button class="btn-icon-sm" title="Download" onclick="event.stopPropagation(); DriveModule.downloadFile('${escapeJs(file.path)}')">${downloadIcon}</button>`
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
return `<div class="drive-file-item ${file.is_dir ? "folder" : ""} ${selected}" data-path="${escapeHtml(file.path)}" data-name="${escapeHtml(file.name)}" data-type="${file.is_dir ? "folder" : "file"}" data-size="${file.size || 0}"><div class="file-col file-name-col"><input type="checkbox" class="file-checkbox" ${checked} onclick="event.stopPropagation()" onchange="DriveModule.toggleSelection('${escapeJs(file.path)}')">${iconSvg}<span>${escapeHtml(file.name)}</span></div><div class="file-col file-modified-col">${modifiedText}</div><div class="file-col file-size-col">${sizeText}</div><div class="file-col file-actions-col">${downloadBtn}<button class="btn-icon-sm" title="More" onclick="event.stopPropagation(); DriveModule.showContextMenuFor(event, '${escapeJs(file.path)}')">${moreIcon}</button></div></div>`;
|
const kbTag = file.is_kb ? `<span class="kb-tag ${file.is_public ? "public" : "private"}" title="${file.is_public ? "Public KB" : "Restricted KB"}">${file.is_public ? "🔓" : "🔒"} KB</span>` : "";
|
||||||
|
|
||||||
|
return `<div class="drive-file-item ${file.is_dir ? "folder" : ""} ${selected}" data-path="${escapeHtml(file.path)}" data-name="${escapeHtml(file.name)}" data-type="${file.is_dir ? "folder" : "file"}" data-size="${file.size || 0}"><div class="file-col file-name-col"><input type="checkbox" class="file-checkbox" ${checked} onclick="event.stopPropagation()" onchange="DriveModule.toggleSelection('${escapeJs(file.path)}')">${iconSvg}<span>${escapeHtml(file.name)}</span>${kbTag}</div><div class="file-col file-modified-col">${modifiedText}</div><div class="file-col file-size-col">${sizeText}</div><div class="file-col file-actions-col">${downloadBtn}<button class="btn-icon-sm" title="More" onclick="event.stopPropagation(); DriveModule.showContextMenuFor(event, '${escapeJs(file.path)}')">${moreIcon}</button></div></div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bindFileEvents() {
|
function bindFileEvents() {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue