+ <ng-container ngProjectAs="extra">
+ <div [ngClass]="{ 'disabled-checkbox-extra': !isSearchIndexEnabled() }">
+ <label i18n for="searchIndexUrl">Search index URL</label>
+ <input
+ type="text" id="searchIndexUrl" class="form-control"
+ formControlName="url" [ngClass]="{ 'input-error': formErrors['search.searchIndex.url'] }"
+ >
+ <div *ngIf="formErrors.search.searchIndex.url" class="form-error">{{ formErrors.search.searchIndex.url }}</div>
+ </div>
+
+ <div class="mt-3">
+ <my-peertube-checkbox [ngClass]="{ 'disabled-checkbox-extra': !isSearchIndexEnabled() }"
+ inputName="searchIndexDisableLocalSearch" formControlName="disableLocalSearch"
+ i18n-labelText labelText="Disable local search in search bar"
+ ></my-peertube-checkbox>
+ </div>
+
+ <div class="mt-3">
+ <my-peertube-checkbox [ngClass]="{ 'disabled-checkbox-extra': !isSearchIndexEnabled() }"
+ inputName="searchIndexIsDefaultSearch" formControlName="isDefaultSearch"
+ i18n-labelText labelText="Search bar uses the global search index by default"
+ >
+ <ng-container ngProjectAs="description">
+ <span i18n>Otherwise the local search stays used by default</span>
+ </ng-container>
+ </my-peertube-checkbox>
+ </div>
+
+ </ng-container>
+ </my-peertube-checkbox>
+ </div>
+
+ </ng-container>
+
+ </ng-container>
+
+ </div>
+ </div>
+
+ <div class="form-row mt-4"> <!-- federation grid -->
+ <div class="form-group col-12 col-lg-4 col-xl-3">
+ <div i18n class="inner-form-title">FEDERATION</div>
+ <div i18n class="inner-form-description">
+ Manage <a routerLink="/admin/follows">relations</a> with other instances.
+ </div>
+ </div>
+
+ <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
+
+ <ng-container formGroupName="followers">
+ <ng-container formGroupName="instance">
+
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="followersInstanceEnabled" formControlName="enabled"
+ i18n-labelText labelText="Other instances can follow yours"
+ ></my-peertube-checkbox>
+ </div>
+
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="followersInstanceManualApproval" formControlName="manualApproval"
+ i18n-labelText labelText="Manually approve new instance followers"
+ ></my-peertube-checkbox>
+ </div>
+ </ng-container>
+ </ng-container>
+
+ <ng-container formGroupName="followings">
+ <ng-container formGroupName="instance">
+
+ <ng-container formGroupName="autoFollowBack">
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="followingsInstanceAutoFollowBackEnabled" formControlName="enabled"
+ i18n-labelText labelText="Automatically follow back instances"
+ >
+ <ng-container ngProjectAs="description">
+ <span i18n>⚠️ This functionality requires a lot of attention and extra moderation.</span>
+ </ng-container>
+ </my-peertube-checkbox>
+ </div>
+ </ng-container>
+
+ <ng-container formGroupName="autoFollowIndex">
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="followingsInstanceAutoFollowIndexEnabled" formControlName="enabled"
+ i18n-labelText labelText="Automatically follow instances of a public index"
+ >
+ <ng-container ngProjectAs="description">
+ <p i18n>⚠️ This functionality requires a lot of attention and extra moderation.</p>
+
+ <span i18n>
+ You should only follow moderated indexes in production, or <a href="https://framagit.org/framasoft/peertube/instances-peertube#peertube-auto-follow">host your own</a>.
+ </span>
+ </ng-container>
+
+ <ng-container ngProjectAs="extra">
+ <div [ngClass]="{ 'disabled-checkbox-extra': !isAutoFollowIndexEnabled() }">
+ <label i18n for="followingsInstanceAutoFollowIndexUrl">Index URL</label>
+ <input
+ type="text" id="followingsInstanceAutoFollowIndexUrl" class="form-control"
+ formControlName="indexUrl" [ngClass]="{ 'input-error': formErrors['followings.instance.autoFollowIndex.indexUrl'] }"
+ >
+ <div *ngIf="formErrors.followings.instance.autoFollowIndex.indexUrl" class="form-error">{{ formErrors.followings.instance.autoFollowIndex.indexUrl }}</div>
+ </div>
+ </ng-container>
+ </my-peertube-checkbox>
+ </div>
+
+ </ng-container>
+ </ng-container>
+ </ng-container>
+
+ </div>
+ </div>
+
+ <div class="form-row mt-4"> <!-- administrators grid -->
+ <div class="form-group col-12 col-lg-4 col-xl-3">
+ <div i18n class="inner-form-title">ADMINISTRATORS</div>
+ </div>
+
+ <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
+
+ <div class="form-group" formGroupName="admin">
+ <label i18n for="adminEmail">Admin email</label>