[% BLOCK render_series;
results = [];
FOR tag IN series_tags;
- FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]/*');
- node_uri = node.textContent.replace('[#"^$\+\-,\.:;&|\[\]()]', '') | uri;
- node_html = node.textContent | html;
- IF !loop.first;
- results.last = result.last _ '<span>—</span>';
+ FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]');
+ series = '';
+ series_link = '';
+ FOR subfield IN node.childNodes;
+ NEXT UNLESS subfield.nodeName == "subfield";
+ code = subfield.getAttribute('code');
+ NEXT UNLESS code.match('[a-z]');
+ node_uri = subfield.textContent.replace('[#"^$\+\-,\.:;&|\[\]()]', '') | uri;
+ node_html = subfield.textContent | html;
+ IF !loop.first;
+ series = series _ ' ';
+ END;
+ series_link = series_link _ ' ' _ node_uri;
+ series = series _ ('<a href="' _ ctx.opac_root
+ _ '/results?qtype=series&query=' _ series_link _ '&loc='
+ _ loc _ '">' _ node_html _ '</a>'
+ );
END;
- results.push('<a href="' _ ctx.opac_root
- _ '/results?qtype=series&query=' _ node_uri _ '&loc='
- _ loc _ '">' _ node_html _ '</a>'
- );
+ results.push(series);
END;
END;
FOR entry IN results;