Skip to content

Commit ce5ddcb

Browse files
authored
Merge pull request #103 from OpenGeoMetadata/102-fgdc-xslt
Fix bugs and add elements to generated FGDC HTML
2 parents cbf8172 + e32c01e commit ce5ddcb

8 files changed

Lines changed: 2113 additions & 1667 deletions

File tree

lib/xslt/fgdc2html.xsl

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
<xsl:value-of select="." />
9494
</dd>
9595
</xsl:for-each>
96-
<xsl:for-each select="descrip/supplinf">
96+
<xsl:for-each select="descript/supplinf">
9797
<dt>Supplemental Information</dt>
9898
<dd>
9999
<xsl:value-of select="." />
@@ -204,6 +204,22 @@
204204
</dd>
205205
</xsl:if>
206206
</xsl:for-each>
207+
<dt>Temporal Keyword</dt>
208+
<xsl:for-each select="keywords/temporal/tempkey">
209+
<dd>
210+
<xsl:value-of select="." />
211+
</dd>
212+
<xsl:if test="position()=last()">
213+
<dd>
214+
<dl>
215+
<dt>Temporal Keyword Thesaurus</dt>
216+
<dd>
217+
<xsl:value-of select="ancestor-or-self::*/tempkt" />
218+
</dd>
219+
</dl>
220+
</dd>
221+
</xsl:if>
222+
</xsl:for-each>
207223
<xsl:for-each select="accconst">
208224
<dt>Access Restrictions</dt>
209225
<dd>
@@ -234,6 +250,9 @@
234250
<dl>
235251
<xsl:for-each select="cntinfo/cntperp/cntper">
236252
<dt>Contact Person</dt>
253+
<dd>
254+
<xsl:value-of select="." />
255+
</dd>
237256
</xsl:for-each>
238257
<xsl:for-each select="cntinfo/cntorgp/cntorg">
239258
<dt>Contact Organization</dt>
@@ -277,31 +296,31 @@
277296
<xsl:value-of select="." />
278297
</dd>
279298
</xsl:for-each>
280-
<xsl:for-each select="cntvoice">
299+
<xsl:for-each select="cntinfo/cntvoice">
281300
<dt>Contact Telephone</dt>
282301
<dd>
283302
<xsl:value-of select="." />
284303
</dd>
285304
</xsl:for-each>
286-
<xsl:for-each select="cntfax">
305+
<xsl:for-each select="cntinfo/cntfax">
287306
<dt>Contact Facsimile Telephone</dt>
288307
<dd>
289308
<xsl:value-of select="." />
290309
</dd>
291310
</xsl:for-each>
292-
<xsl:for-each select="cntemail">
311+
<xsl:for-each select="cntinfo/cntemail">
293312
<dt>Contact Electronic Mail Address</dt>
294313
<dd>
295314
<xsl:value-of select="." />
296315
</dd>
297316
</xsl:for-each>
298-
<xsl:for-each select="hours">
317+
<xsl:for-each select="cntinfo/hours">
299318
<dt>Hours of Service</dt>
300319
<dd>
301320
<xsl:value-of select="." />
302321
</dd>
303322
</xsl:for-each>
304-
<xsl:for-each select="cntinst">
323+
<xsl:for-each select="cntfo/cntinst">
305324
<dt>Contact Instructions</dt>
306325
<dd>
307326
<xsl:value-of select="." />
@@ -475,6 +494,12 @@
475494
</dl>
476495
</dd>
477496
</xsl:for-each>
497+
<xsl:for-each select="srccontr">
498+
<dt>Contribution</dt>
499+
<dd>
500+
<xsl:value-of select="." />
501+
</dd>
502+
</xsl:for-each>
478503
</dl>
479504
<xsl:for-each select="procstep">
480505
<dt>Process Step</dt>
@@ -1186,6 +1211,12 @@
11861211
<xsl:value-of select="attrdef" />
11871212
<xsl:apply-templates select="attrdomv" />
11881213
<dl>
1214+
<xsl:for-each select="attrdefs">
1215+
<dt>Definition Source</dt>
1216+
<dd>
1217+
<xsl:value-of select="." />
1218+
</dd>
1219+
</xsl:for-each>
11891220
<xsl:for-each select="begdatea">
11901221
<dt>Beginning Date of Attribute Values</dt>
11911222
<dd>
@@ -1234,9 +1265,7 @@
12341265
</xsl:template>
12351266

12361267
<xsl:template match="attrdomv[edom]">
1237-
<br />
1238-
<button onclick="this.nextElementSibling.style.display = (this.nextElementSibling.style.display==='none') ? '' : 'none';">show/hide coded values</button>
1239-
<dl style="display:none">
1268+
<dl>
12401269
<xsl:for-each select="edom">
12411270
<dt><xsl:value-of select="edomv" /></dt>
12421271
<dd><xsl:value-of select="edomvd" /></dd>

spec/features/fgdc2html_spec.rb

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,48 @@
4747
expect(page).to have_tag '#fgdc-metadata-reference-info'
4848
end
4949
end
50+
51+
describe 'Point of Contact' do
52+
it 'has contact info' do
53+
expect(page).to have_tag '#fgdc-identification-info'
54+
end
55+
end
56+
57+
context 'with fgdc metadata from another institution' do
58+
let(:page) { GeoCombine::Fgdc.new(princeton_fgdc).to_html }
59+
60+
it 'has temporal keywords' do
61+
expect(page).to have_tag 'dt', text: 'Temporal Keyword'
62+
expect(page).to have_tag 'dd', text: '2030'
63+
end
64+
65+
it 'has supplemental information' do
66+
expect(page).to have_tag 'dt', text: 'Supplemental Information'
67+
expect(page).to have_tag 'dd', text: /The E\+ scenario/
68+
end
69+
70+
it 'has a contact person' do
71+
expect(page).to have_tag 'dt', text: 'Contact Person'
72+
expect(page).to have_tag 'dd', text: 'Andrew Pascale'
73+
end
74+
75+
it 'has a contact telephone' do
76+
expect(page).to have_tag 'dt', text: 'Contact Telephone'
77+
expect(page).to have_tag 'dd', text: '609-258-1097'
78+
end
79+
80+
it 'has an attribute description source and a list of values' do
81+
expect(page).to have_tag 'dt', text: 'Definition Source'
82+
expect(page).to have_tag 'dd', text: 'Andlinger Center/HMEI'
83+
84+
# Attribute elements are show by default
85+
expect(page).not_to have_tag 'button'
86+
expect(page).to have_tag 'dd', text: 'Desert Southwest'
87+
end
88+
89+
it 'has a attribute source contribution' do
90+
expect(page).to have_tag 'dt', text: 'Contribution'
91+
expect(page).to have_tag 'dd', text: 'Net-Zero America report, 2020'
92+
end
93+
end
5094
end

0 commit comments

Comments
 (0)