Skip to content

Commit 5203ffa

Browse files
author
Andrea Barbasso
committed
[CST-19328] add lang attribute in metadata-values.component
1 parent f9c54e5 commit 5203ffa

2 files changed

Lines changed: 30 additions & 11 deletions

File tree

src/app/item-page/field-components/metadata-values/metadata-values.component.html

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Choose a template. Priority: markdown, link, browse link.
55
-->
66
<ng-container *ngTemplateOutlet="(renderMarkdown ? markdown : (hasLink(mdValue) ? (hasValue(img) ? linkImg : link) : (hasBrowseDefinition() ? browselink : simple)));
7-
context: {value: mdValue.value, img}">
7+
context: {value: mdValue.value, img, lang: mdValue.language}">
88
</ng-container>
99
@if (!last) {
1010
<span class="separator" [innerHTML]="separator"></span>
@@ -13,14 +13,15 @@
1313
</ds-metadata-field-wrapper>
1414

1515
<!-- Render value as markdown -->
16-
<ng-template #markdown let-value="value">
17-
<span class="dont-break-out" [dsMarkdown]="value">
16+
<ng-template #markdown let-value="value" let-lang="lang">
17+
<span class="dont-break-out" [dsMarkdown]="value" [attr.lang]="lang">
1818
</span>
1919
</ng-template>
2020

2121
<!-- Render value as a link (href and label) -->
22-
<ng-template #link let-value="value">
22+
<ng-template #link let-value="value" let-lang="lang">
2323
<a class="dont-break-out ds-simple-metadata-link"
24+
[attr.lang]="lang"
2425
[href]="value"
2526
[attr.target]="getLinkAttributes(value).target"
2627
[attr.rel]="getLinkAttributes(value).rel" role="link" tabindex="0">
@@ -29,8 +30,9 @@
2930
</ng-template>
3031

3132
<!-- Render value as a link with icon -->
32-
<ng-template #linkImg let-img="img" let-value="value">
33-
<a [href]="value" class="link-anchor dont-break-out ds-simple-metadata-link" target="_blank" role="link" tabindex="0">
33+
<ng-template #linkImg let-img="img" let-value="value" let-lang="lang">
34+
<a [href]="value" class="link-anchor dont-break-out ds-simple-metadata-link"
35+
target="_blank" role="link" tabindex="0" [attr.lang]="lang">
3436
<img class="link-logo"
3537
[alt]="img.alt | translate"
3638
[style.height]="'var(' + img.heightVar + ', --ds-item-page-img-field-default-inline-height)'"
@@ -40,13 +42,14 @@
4042
</ng-template>
4143

4244
<!-- Render simple value in a span -->
43-
<ng-template #simple let-value="value">
44-
<span class="dont-break-out preserve-line-breaks">{{value}}</span>
45+
<ng-template #simple let-value="value" let-lang="lang">
46+
<span class="dont-break-out preserve-line-breaks" [attr.lang]="lang">{{value}}</span>
4547
</ng-template>
4648

4749
<!-- Render value as a link to browse index -->
48-
<ng-template #browselink let-value="value">
50+
<ng-template #browselink let-value="value" let-lang="lang">
4951
<a class="dont-break-out preserve-line-breaks ds-browse-link"
50-
[routerLink]="['/browse', browseDefinition.id]"
51-
[queryParams]="getQueryParams(value)" role="link" tabindex="0">{{value}}</a>
52+
[attr.lang]="lang"
53+
[routerLink]="['/browse', browseDefinition.id]"
54+
[queryParams]="getQueryParams(value)" role="link" tabindex="0">{{ value }}</a>
5255
</ng-template>

src/app/item-page/field-components/metadata-values/metadata-values.component.spec.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,20 @@ describe('MetadataValuesComponent', () => {
9999
expect(result.rel).toBe('noopener noreferrer');
100100
});
101101

102+
it('should set the lang attribute for each rendered metadata value', () => {
103+
const valueSpans = fixture.debugElement.queryAll(By.css('span.dont-break-out.preserve-line-breaks'));
104+
expect(valueSpans.length).toBe(mockMetadata.length);
105+
valueSpans.forEach(spanDebugEl => {
106+
expect(spanDebugEl.attributes.lang).toBe('en_US');
107+
});
108+
});
109+
110+
it('should not set the lang attribute when a metadata value language is missing', () => {
111+
comp.mdValues = [{ value: 'No language value' } as MetadataValue];
112+
fixture.detectChanges();
113+
const valueSpans = fixture.debugElement.queryAll(By.css('span.dont-break-out.preserve-line-breaks'));
114+
expect(valueSpans.length).toBe(1);
115+
expect(valueSpans[0].attributes.lang).toBeUndefined();
116+
});
117+
102118
});

0 commit comments

Comments
 (0)