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