Back to Files
@FileMetadataDialog(
fmt.Sprintf("delete-file-dialog-%d", data.File.ID),
"Delete File Metadata",
fmt.Sprintf("Are you sure you want to delete the metadata for '%s'? This cannot be undone.", data.File.FileName),
"btn-danger",
"Delete",
"delete",
data.File.ID,
data.File.FileName,
"details",
)
}
}
// FileMetadataSearch renders an advanced search form for file metadata
templ FileMetadataSearch(ctx context.Context, data FileMetadataSearchData) {
@LayoutWithContext("Search Files", ctx) {
Page { strconv.Itoa(data.Page) } of { strconv.Itoa(data.TotalPages) }
@FileMetadataSearchPartial(data)
}
}
}
// buildSearchPaginationURL builds a URL for search pagination links
func buildSearchPaginationURL(data FileMetadataSearchData, page int) string {
url := fmt.Sprintf("/files/search?page=%d&limit=%d&htmx=true", page, data.Limit)
if data.Filter.Status != "" {
url += "&status=" + data.Filter.Status
}
if data.Filter.FileName != "" {
url += "&filename=" + data.Filter.FileName
}
if data.Filter.JobID != "" {
url += "&job_id=" + data.Filter.JobID
}
if data.Filter.Hash != "" {
url += "&hash=" + data.Filter.Hash
}
if data.Filter.StartDate != "" {
url += "&start_date=" + data.Filter.StartDate
}
if data.Filter.EndDate != "" {
url += "&end_date=" + data.Filter.EndDate
}
return url
}
// FileMetadataListPartial renders just the list content for HTMX requests
templ FileMetadataListPartial(data FileMetadataListData) {
if len(data.Files) > 0 {
for _, file := range data.Files {
@FileMetadataDialog(
fmt.Sprintf("delete-file-dialog-%d", file.ID),
"Delete File Metadata",
fmt.Sprintf("Are you sure you want to delete the metadata for '%s'? This cannot be undone.", file.FileName),
"btn-danger",
"Delete",
"delete",
file.ID,
file.FileName,
"list",
)
}
if data.Page > 1 {
} else {
}
for i := 1; i <= data.TotalPages; i++ {
if i == data.Page {
{ strconv.Itoa(i) }
} else if i == 1 || i == data.TotalPages || (i >= data.Page-2 && i <= data.Page+2) {
{ strconv.Itoa(i) }
} else if i == data.Page-3 || i == data.Page+3 {
...
}
}
if data.Page < data.TotalPages {
} else {
}
}
} else {
No file metadata found matching your criteria.
}
}
// FileMetadataSearchPartial renders just the search results content for HTMX requests
templ FileMetadataSearchPartial(data FileMetadataSearchData) {
if len(data.Files) > 0 {
for _, file := range data.Files {
@FileMetadataDialog(
fmt.Sprintf("delete-file-dialog-%d", file.ID),
"Delete File Metadata",
fmt.Sprintf("Are you sure you want to delete the metadata for '%s'? This cannot be undone.", file.FileName),
"btn-danger",
"Delete",
"delete",
file.ID,
file.FileName,
"list",
)
}
if data.Page > 1 {
} else {
}
for i := 1; i <= data.TotalPages; i++ {
if i == data.Page {
{ strconv.Itoa(i) }
} else if i == 1 || i == data.TotalPages || (i >= data.Page-2 && i <= data.Page+2) {
{ strconv.Itoa(i) }
} else if i == data.Page-3 || i == data.Page+3 {
...
}
}
if data.Page < data.TotalPages {
} else {
}