File

src/app/features/audit-overview/interview-list/interview-card/interview-card.component.ts

Metadata

selector app-interview-card
styleUrls ./interview-card.component.scss
templateUrl ./interview-card.component.html

Index

Properties
Inputs

Inputs

facCritId
Type : string
interview
Type : Interview

Properties

interviewStatuses
Default value : InterviewStatus
import { Component, Input } from '@angular/core';
import { Interview, InterviewStatus } from 'src/app/core/data/models/interview.model';

@Component({
  selector: 'app-interview-card',
  templateUrl: './interview-card.component.html',
  styleUrls: ['./interview-card.component.scss'],
})
export class InterviewCardComponent {
  @Input() interview: Interview;
  @Input() facCritId: string;

  interviewStatuses = InterviewStatus;
}
<a [routerLink]="[interview.id, facCritId]">
  <ng-container [ngSwitch]="interview.status">
    <div
      nbPopoverPlacement="left"
      nbPopover="In Bearbeitung"
      nbPopoverTrigger="hint"
      *ngSwitchCase="interviewStatuses.Active"
      class="banner-status banner-status-in-action"
      data-cy="interview-status"
    ></div>
    <div
      nbPopoverPlacement="left"
      nbPopover="Abgeschlossen"
      nbPopoverTrigger="hint"
      *ngSwitchCase="interviewStatuses.Finished"
      class="banner-status banner-status-is-finished"
      data-cy="interview-status"
    ></div>
  </ng-container>
  <nb-card-header>
    <div class="subtitle-2" data-cy="interview-contact-persons">
      <ng-container *ngIf="interview.contactPersons && interview.contactPersons.length > 0; else noContactPerson">
        <span> {{ interview.contactPersons[0].forename + ' ' + interview.contactPersons[0].surname + ' | ' }} </span>
        <span> {{ interview.contactPersons[0].role }} </span>
        <span *ngIf="interview.contactPersons.length > 1"> (+)</span>
      </ng-container>
      <ng-template #noContactPerson>
        <span class="text-danger">Keine Kontaktperson gewählt</span>
      </ng-template>
      <span class="label" *ngIf="interview.startDate" data-cy="interview-timestamp"> &nbsp;{{ interview.startDate | date: 'dd.MM.yyyy' }} </span>
    </div>
    <br />
  </nb-card-header>
</a>

./interview-card.component.scss

@import '../../../../../sass/utils';
@import '../../../../../../node_modules/@nebular/theme/styles/theming';
@import '../../../../../../node_modules/@nebular/theme/styles/themes/default';

.banner-status {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 12px;
  -webkit-box-shadow: 3px 3px 3px 0px rgba(44, 51, 73, 0.1);
  -moz-box-shadow: 3px 3px 3px 0px rgba(44, 51, 73, 0.1);
  box-shadow: 3px 3px 3px 0px rgba(44, 51, 73, 0.1);
  border-radius: 3px;
}

.banner-status-is-planned {
  background-color: nb-theme(color-basic-100);
}

.banner-status-in-action {
  background-color: nb-theme(color-warning-default);
}

.banner-status-is-finished {
  background-color: nb-theme(color-success-default);
}

.banner-status-is-canceled {
  background-color: nb-theme(color-danger-default);
}

nb-card-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0 10px;
  border: none;
}

a {
  display: grid;
  text-decoration: none;
}
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""