Yrkki/cv-generator-fe

View on GitHub
src/app/components/publication-list/publication-list.component.html

Summary

Maintainability
Test Coverage
<div class="container-fluid">
  <div class="row">
    <div class="col-md-3 cell-key">
      <span (click)="rotateDateFormat()" title="{{ uiService.uiText('Click here to change format') }}"
        [attr.aria-label]="uiService.label('rotateDateFormat')" (keypress)="inputService.keypress($event)">
        {{ getJsDateValueFromExcel(propertyName['Publication date']) | date:dateFormat }}
      </span>
    </div>
    <div class="col-md-9 cell-value">
      <div>
        <ng-container *ngIf="propertyName['Publication image']">
          <a href="{{ getAccomplishmentPublicationLogoImageUri(propertyName['Publication image'], true) }}"
            target="_blank" rel="noopener noreferrer" [attr.aria-label]="linkLabel(ui['Publication image']?.text)">
            <img src="{{ getAccomplishmentPublicationLogoImageUri(propertyName['Publication image']) }}"
              onerror="this.style.display='none'" class="thumbnail" alt="" loading="lazy" />
          </a>
        </ng-container>
        <ng-template #publicationTemplate>
          {{ propertyName['Author'] }}{{ punctuation['dot'] }}{{ punctuation['space'] }}{{
          punctuation['bracket round opening'] }}{{ propertyName['Type'] }}{{
          punctuation['bracket round closing'] }}{{ punctuation['dot'] }}
          <em>{{ propertyName['Title'] }}{{ punctuation['colon'] }}{{ punctuation['space'] }}{{
            propertyName['Subtitle'] }}</em>
        </ng-template>
        <ng-container *ngIf="propertyName['URL']; else elseBlockPublication">
          <a href="{{ propertyName['URL'] }}" target="_blank" rel="noopener noreferrer"
            [attr.aria-label]="linkLabel(ui['Publication']?.text)">
            <ng-container *ngTemplateOutlet="publicationTemplate"></ng-container>{{ punctuation['dot'] }}
          </a>
        </ng-container>
        <ng-template #elseBlockPublication>
          <ng-container *ngTemplateOutlet="publicationTemplate"></ng-container>{{ punctuation['dot'] }}
        </ng-template>
        <div class="detail">
          <ng-container *ngIf="propertyName['Article']">
            <ng-container>
              {{ propertyName['Article author'] }}{{ punctuation['dot'] }}{{ punctuation['space'] }}{{
              punctuation['quote double opening'] }}{{ propertyName['Article'] }}{{ punctuation['quote double closing']
              }}
            </ng-container>
            <ng-container *ngIf="propertyName['Article date']">
              {{ punctuation['bracket round opening'] }}{{ propertyName['Article date'] }}{{
              punctuation['bracket round closing'] }}
            </ng-container>
            <ng-container *ngIf="propertyName['Translation Article']">
              {{ punctuation['bracket square opening'] }}{{ propertyName['Translation Article'] }}{{
              punctuation['bracket square closing'] }}{{ punctuation['dot'] }}
            </ng-container>
          </ng-container>
          <ng-container *ngTemplateOutlet="publicationTemplate"></ng-container>{{ punctuation['space'] }}
          <ng-container *ngIf="propertyName['Translator']">
            {{ punctuation['bracket round opening'] }}{{
            propertyName['Translator'] }}{{ punctuation['space'] }}{{ ui['Trans']?.text }}{{ punctuation['dot'] }}{{
            punctuation['bracket round closing'] }}{{ punctuation['dot'] }}
            <ng-container *ngIf="propertyName['Translation Title']">
              {{ punctuation['bracket square opening'] }}{{ propertyName['Translation Title'] }}
              <ng-container *ngIf="propertyName['Translation Subtitle']">
                {{ punctuation['colon'] }}{{ punctuation['space'] }}{{ propertyName['Translation Subtitle'] }}
              </ng-container>
              {{ punctuation['bracket square closing'] }}{{ punctuation['dot'] }}
            </ng-container>
          </ng-container>
          <ng-container *ngIf="propertyName['Editor']">
            {{ ui['Ed']?.text }}{{ punctuation['dot'] }}{{ punctuation['space'] }}{{ propertyName['Editor'] }}{{
            punctuation['dot'] }}
          </ng-container>
          <ng-container>
            {{ propertyName['City'] }}{{ punctuation['colon'] }}{{ punctuation['space'] }}{{
            propertyName['Publisher'] }}{{ punctuation['comma'] }}{{ punctuation['space'] }}{{
            getJsDateValueFromExcel(propertyName['Publication date']) | date:dateFormatInline }}{{ punctuation['dot'] }}
          </ng-container>
          <ng-container>
            {{ propertyName['Pages'] }}
          </ng-container>
          <ng-container>
            {{ propertyName['Format'] }}{{ punctuation['comma'] }}{{ punctuation['space'] }}{{
            propertyName['Page count'] }}{{ punctuation['space'] }}{{ propertyName['Size'] }}{{ punctuation['dot'] }}
          </ng-container>
          <ng-container>
            {{ propertyName['ISBN'] }}{{ punctuation['dot'] }}
          </ng-container>
        </div>
      </div>
    </div>
  </div>
</div>