@page "/dms/list"
@using MudBlazor
@using Pldpro.Web.UI.Models
@inject Pldpro.Web.UI.Services.IDocumentClient Client
@inject NavigationManager Nav
@foreach (var b in _buckets)
{
@b
}
Suchen
Upload
Datei
Bucket
Pfad
Größe
Geändert
@context.FileName
@context.Bucket
@context.PathPrefix
@context.Size?.ToString("N0")
@context.LastModified
Details
Zurück
Seite @(_page + 1)
Weiter
@code {
private List _buckets = new();
private string? _bucket;
private string? _prefix;
private string? _query;
private int _page = 0, _pageSize = 25, _total = 0;
private List _items = new();
protected override async Task OnInitializedAsync()
{
_buckets = (await Client.ListBucketsAsync()).ToList();
_bucket = _buckets.FirstOrDefault();
if (!string.IsNullOrWhiteSpace(_bucket))
await Reload();
}
private async Task Reload()
{
if (string.IsNullOrWhiteSpace(_bucket)) return;
var (items, total) = await Client.SearchAsync(_bucket!, _query, _prefix, _page, _pageSize);
_items = items.ToList(); // <- Items ist List
_total = total;
}
private async Task Prev() { if (_page > 0) { _page--; await Reload(); } }
private async Task Next() { if (((_page + 1) * _pageSize) < _total) { _page++; await Reload(); } }
private static string EncodeKeyForPath(string key)
=> string.Join("/", (key ?? string.Empty)
.Split('/', StringSplitOptions.RemoveEmptyEntries)
.Select(Uri.EscapeDataString));
}