Chocobozzz/PeerTube

View on GitHub
client/src/app/shared/shared-user-settings/user-video-settings.component.html

Summary

Maintainability
Test Coverage
<form (ngSubmit)="updateDetails()" [formGroup]="form">
  <div class="form-group">
    <div class="anchor" id="video-sensitive-content-policy"></div> <!-- video-sensitive-content-policy anchor -->
    <label i18n for="nsfwPolicy">Default policy on videos containing sensitive content</label>
    <my-help>
      <ng-template ptTemplate="customHtml">
        <ng-container i18n>
          With <strong>Hide</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video.
        </ng-container>
      </ng-template>
    </my-help>

    <div class="peertube-select-container">
      <select id="nsfwPolicy" formControlName="nsfwPolicy" class="form-control">
        <option i18n value="undefined" disabled>Policy for sensitive videos</option>
        <option i18n value="do_not_list">Hide</option>
        <option i18n value="blur">Blur thumbnails</option>
        <option i18n value="display">Display</option>
      </select>
    </div>
  </div>

  <div class="form-group">
    <div class="anchor" id="video-languages-subtitles"></div> <!-- video-languages-subtitles anchor -->
    <label i18n for="videoLanguages">Only display videos in the following languages/subtitles</label>
    <my-help>
      <ng-template ptTemplate="customHtml">
        <ng-container i18n>In Recently added, Trending, Local, Most liked and Search pages</ng-container>
      </ng-template>
    </my-help>

    <div>
      <my-select-languages inputId="videoLanguages" [maxLanguages]="20" formControlName="videoLanguages"></my-select-languages>
    </div>
  </div>

  <ng-content select="inner-title"></ng-content>

  <div class="form-group">
    <my-peertube-checkbox
      inputName="p2pEnabled" formControlName="p2pEnabled" [recommended]="true"
      i18n-labelText labelText="Help share videos being played"
    >
      <ng-container ngProjectAs="description">
        <span i18n>The <a class="link-orange" routerLink="/about/peertube" fragment="privacy" target="_blank">sharing system</a> implies that some technical information about your system (such as a public IP address) can be sent to other peers, but greatly helps to reduce server load.</span>
      </ng-container>
    </my-peertube-checkbox>
  </div>

  <div class="form-group">
    <my-peertube-checkbox
      inputName="autoPlayVideo" formControlName="autoPlayVideo"
      i18n-labelText labelText="Automatically play videos"
    >
      <ng-container ngProjectAs="description">
        <span i18n>When on a video page, directly start playing the video.</span>
      </ng-container>
    </my-peertube-checkbox>
  </div>

  <div class="form-group">
    <my-peertube-checkbox
      inputName="autoPlayNextVideo" formControlName="autoPlayNextVideo"
      i18n-labelText labelText="Automatically start playing the next video"
    >
      <ng-container ngProjectAs="description">
        <span i18n>When a video ends, follow up with the next suggested video.</span>
      </ng-container>
    </my-peertube-checkbox>
  </div>

  <input *ngIf="!reactiveUpdate" type="submit" i18n-value value="Save video settings" [disabled]="!form.valid">
</form>