Check-in by ben on 2025-01-19 20:38:11
If an item has multiple creators, list them in the item details.
Prior to this commit, the details would ignore the creator
field when an item had multiple creators.
INSERTED DELETED
18 5 src/details/index.dcgi.m4
18 5 TOTAL over 1 changed file
Index: src/details/index.dcgi.m4
==================================================================
--- src/details/index.dcgi.m4
+++ src/details/index.dcgi.m4
@@ -27,11 +27,12 @@
cmd = sprintf("%s <%s 2>&1", cmd_json2tsv, iaout)
FS = "\t"
cols = 0
delete col
add_date = ""
- creator = ""
+ creators = 0
+ delete creator
descr = ""
dir = ""
id = ""
item_server = ""
item_size = 0
@@ -62,11 +63,15 @@
col[cols] = $3
} else if ($1 == ".metadata.collection[]" && $2 == "s") {
cols++
col[cols] = $3
} else if ($1 == ".metadata.creator" && $2 == "s") {
- creator = $3
+ creators++
+ creator[creators] = $3
+ } else if ($1 == ".metadata.creator[]" && $2 == "s") {
+ creators++
+ creator[creators] = $3
} else if ($1 == ".metadata.description" && $2 == "s") {
descr = $3
} else if ($1 == ".metadata.identifier" && $2 == "s") {
id = $3
} else if ($1 == ".metadata.language" && $2 == "s") {
@@ -100,14 +105,22 @@
unlink(iaout)
return
}
print(shorten(title, 70))
- if (length(creator) > 0) {
- label = "by " shorten(creator, 70)
+ if (creators == 1) {
+ label = "by " shorten(creator[1], 70)
printf "[1|%s|%s/search/%%09creator:(%s)|%s|%s]\n", label,
- cgipath, creator, server, port
+ cgipath, creator[1], server, port
+ } else if (creators > 1) {
+ printf "\nby:\n"
+ for (i = 1; i <= creators; i++) {
+ label = shorten(creator[i], 70)
+ printf "[1|%s|%s/search/%%09creator:(%s)|%s|%s]\n", label,
+ cgipath, creator[i], server, port
+ }
+ printf "\n"
}
if (length(thumb) > 0) {
url = sprintf("http://%s%s/%s", item_server, dir, thumb)
printf "[I|Thumbnail|%s/raw/%%09%s|%s|%s]\n",
cgipath, url, server, port