Chocobozzz/PeerTube

View on GitHub
client/src/app/shared/shared-video-live/live-stream-information.component.html

Summary

Maintainability
Test Coverage
<ng-template #modal let-close="close" let-dismiss="dismiss">
  <div class="modal-header">
    <h4 i18n class="modal-title">Live information</h4>

    <button class="border-0 p-0" title="Close this modal" i18n-title (click)="dismiss()">
      <my-global-icon iconName="cross"></my-global-icon>
    </button>
  </div>

  <div class="modal-body" *ngIf="live">
    <div>
      <div class="pt-badge badge-blue" *ngIf="live.permanentLive" i18n>Permanent/Recurring live</div>
      <div class="pt-badge badge-blue" *ngIf="live.saveReplay" i18n>Replay will be saved</div>
    </div>

    <my-alert type="primary">
      <my-live-documentation-link></my-live-documentation-link>
    </my-alert>

    <div *ngIf="live.rtmpUrl" class="form-group">
      <label for="liveVideoRTMPUrl" i18n>Live RTMP Url</label>
      <my-input-text inputId="liveVideoRTMPUrl" [value]="live.rtmpUrl" [withToggle]="false" [withCopy]="true" [show]="true" [readonly]="true"></my-input-text>
    </div>

    <div *ngIf="live.rtmpsUrl" class="form-group">
      <label for="liveVideoRTMPSUrl" i18n>Live RTMPS Url</label>
      <my-input-text inputId="liveVideoRTMPSUrl" [value]="live.rtmpsUrl" [withToggle]="false" [withCopy]="true" [show]="true" [readonly]="true"></my-input-text>
    </div>

    <div class="form-group">
      <label for="liveVideoStreamKey" i18n>Live stream key</label>
      <my-input-text inputId="liveVideoStreamKey" [value]="live.streamKey" [withCopy]="true" [readonly]="true"></my-input-text>

      <div class="form-group-description" i18n>⚠️ Never share your stream key with anyone.</div>
    </div>

    <div class="journal" *ngIf="latestLiveSessions.length !== 0">
      <div class="mb-2 fw-bold" i18n>Latest live sessions</div>

      <div class="journal-session" *ngFor="let session of latestLiveSessions">
        <span i18n class="pt-badge badge-success" *ngIf="!getErrorLabel(session)">Success</span>
        <span class="pt-badge badge-danger" *ngIf="getErrorLabel(session)">{{ getErrorLabel(session) }}</span>

        <span i18n>Started on {{ session.startDate | date:'medium' }}</span>
        <span i18n *ngIf="session.endDate">Ended on {{ session.endDate | date:'medium' }}</span>
        <a i18n *ngIf="session.replayVideo" [routerLink]="getVideoUrl(session.replayVideo)" target="_blank">Go to replay</a>
        <span i18n *ngIf="isReplayBeingProcessed(session)">Replay is being processed...</span>
      </div>
    </div>
  </div>

  <div class="modal-footer">
    <div class="form-group inputs">
      <input type="button" role="button" i18n-value value="Close" class="peertube-button grey-button" (click)="dismiss()" />

      <my-edit-button
        i18n-label label="Update live settings"
        [ptRouterLink]="[ '/videos', 'update', video.shortUUID ]" (click)="dismiss()"
      ></my-edit-button>
    </div>
  </div>
</ng-template>