]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
Added Markdown formatting in all the fields of the "About" page (#3371)
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / config / edit-custom-config / edit-custom-config.component.html
index e73a9f8a8bb40876abbdb8989739bd00021140b4..70533475aaa9fb44c1891c20277e5f4949babca1 100644 (file)
             <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
 
               <div class="form-group">
-                <label i18n for="instanceAdministrator">Who is behind the instance?</label>
+                <label i18n for="instanceAdministrator">Who is behind the instance?</label><my-help helpType="markdownText"></my-help>
                 <div i18n class="label-small-info">A single person? A non-profit? A company?</div>
 
                 <my-markdown-textarea
-                  name="instanceAdministrator" formControlName="administrator" textareaMaxWidth="500px" textareaHeight="75px"
+                  name="instanceAdministrator" formControlName="administrator" textareaMaxWidth="500px"
                   [classes]="{ 'input-error': formErrors['instance.administrator'] }"
                 ></my-markdown-textarea>
 
               </div>
 
               <div class="form-group">
-                <label i18n for="instanceCreationReason">Why did you create this instance?</label>
+                <label i18n for="instanceCreationReason">Why did you create this instance?</label><my-help helpType="markdownText"></my-help>
                 <div i18n class="label-small-info">To share your personal videos? To open registrations and allow people to upload what they want?</div>
 
-                <textarea
-                  id="instanceCreationReason" formControlName="creationReason" class="small" class="form-control"
+                <my-markdown-textarea
+                  id="instanceCreationReason" formControlName="creationReason" textareaMaxWidth="500px"
                   [ngClass]="{ 'input-error': formErrors['instance.creationReason'] }"
-                ></textarea>
+                ></my-markdown-textarea>
                 <div *ngIf="formErrors.instance.creationReason" class="form-error">{{ formErrors.instance.creationReason }}</div>
               </div>
 
               <div class="form-group">
-                <label i18n for="instanceMaintenanceLifetime">How long do you plan to maintain this instance?</label>
+                <label i18n for="instanceMaintenanceLifetime">How long do you plan to maintain this instance?</label><my-help helpType="markdownText"></my-help>
                 <div i18n class="label-small-info">It's important to know for users who want to register on your instance</div>
 
-                <textarea
-                  id="instanceMaintenanceLifetime" formControlName="maintenanceLifetime" class="form-control small"
+                <my-markdown-textarea
+                  id="instanceMaintenanceLifetime" formControlName="maintenanceLifetime" textareaMaxWidth="500px"
                   [ngClass]="{ 'input-error': formErrors['instance.maintenanceLifetime'] }"
-                ></textarea>
+                ></my-markdown-textarea>
                 <div *ngIf="formErrors.instance.maintenanceLifetime" class="form-error">{{ formErrors.instance.maintenanceLifetime }}</div>
               </div>
 
               <div class="form-group">
-                <label i18n for="instanceBusinessModel">How will you finance the PeerTube server?</label>
+                <label i18n for="instanceBusinessModel">How will you finance the PeerTube server?</label><my-help helpType="markdownText"></my-help>
                 <div i18n class="label-small-info">With your own funds? With user donations? Advertising?</div>
 
-                <textarea
-                  id="instanceBusinessModel" formControlName="businessModel" class="form-control small"
+                <my-markdown-textarea
+                  id="instanceBusinessModel" formControlName="businessModel" textareaMaxWidth="500px"
                   [ngClass]="{ 'input-error': formErrors['instance.businessModel'] }"
-                ></textarea>
+                ></my-markdown-textarea>
                 <div *ngIf="formErrors.instance.businessModel" class="form-error">{{ formErrors.instance.businessModel }}</div>
               </div>
 
                 <div i18n class="label-small-info">i.e. 2vCore 2GB RAM, a direct the link to the server you rent, etc.</div>
 
                 <my-markdown-textarea
-                  name="instanceHardwareInformation" formControlName="hardwareInformation" textareaMaxWidth="500px" textareaHeight="75px"
+                  name="instanceHardwareInformation" formControlName="hardwareInformation" textareaMaxWidth="500px"
                   [classes]="{ 'input-error': formErrors['instance.hardwareInformation'] }"
                 ></my-markdown-textarea>
 
           </div>
         </div>
 
-      </ng-template>
-    </ng-container>
-
-    <ng-container ngbNavItem="services">
-      <a ngbNavLink i18n>Services</a>
-
-      <ng-template ngbNavContent>
-
-        <div class="form-row mt-5"> <!-- twitter grid -->
+        <div class="form-row mt-4"> <!-- Twitter grid -->
           <div class="form-group col-12 col-lg-4 col-xl-3">
             <div i18n class="inner-form-title">TWITTER</div>
             <div i18n class="inner-form-description">
       </ng-template>
     </ng-container>
 
-    <div ngbNavItem="live">
-      <a ngbNavLink i18n>Live streaming</a>
-
-      <ng-template ngbNavContent>
-
-        <div class="form-row mt-5">
-          <div class="form-group col-12 col-lg-4 col-xl-3">
-            <div i18n class="inner-form-title">LIVE</div>
-            <div i18n class="inner-form-description">
-              Enable users of your instance to stream live.
-            </div>
-          </div>
-
-          <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
-
-            <ng-container formGroupName="live">
-
-              <div class="form-group">
-                <my-peertube-checkbox inputName="liveEnabled" formControlName="enabled">
-                  <ng-template ptTemplate="label">
-                    <ng-container i18n>Allow live streaming</ng-container>
-                  </ng-template>
-
-                  <ng-container ngProjectAs="description" i18n>
-                    ⚠️ Enabling live streaming requires trust in your users and extra moderation work
-                  </ng-container>
-
-                  <ng-container ngProjectAs="extra">
-
-                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
-                      <my-peertube-checkbox
-                        inputName="liveAllowReplay" formControlName="allowReplay"
-                        i18n-labelText labelText="Allow your users to automatically publish a replay of their live"
-                      >
-                        <ng-container ngProjectAs="description" i18n>
-                          If the user quota is reached, PeerTube will automatically terminate the live streaming
-                        </ng-container>
-                      </my-peertube-checkbox>
-                    </div>
-
-                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
-                      <label i18n for="liveMaxInstanceLives">Max lives created on your instance (-1 for "unlimited")</label>
-                      <div class="number-with-unit">
-                        <input type="number" name="liveMaxInstanceLives" formControlName="maxInstanceLives" />
-                        <span i18n>{form.value['live']['maxInstanceLives'], plural, =1 {live} other {lives}}</span>
-                      </div>
-                    </div>
-
-                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
-                      <label i18n for="liveMaxUserLives">Max lives created per user (-1 for "unlimited")</label>
-                      <div class="number-with-unit">
-                        <input type="number" name="liveMaxUserLives" formControlName="maxUserLives" />
-                        <span i18n>{form.value['live']['maxUserLives'], plural, =1 {live} other {lives}}</span>
-                      </div>
-                    </div>
-
-                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
-                      <label i18n for="liveMaxDuration">Max live duration</label>
-                      <div class="peertube-select-container">
-                        <ng-select
-                          labelForId="liveMaxDuration" [items]="liveMaxDurationOptions" formControlName="maxDuration"
-                          bindLabel="label" bindValue="value"
-                          [clearable]="false"
-                          [searchable]="false"
-                        ></ng-select>
-                      </div>
-                    </div>
-
-                    <ng-container formGroupName="transcoding">
-
-                      <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
-                        <my-peertube-checkbox
-                          inputName="liveTranscodingEnabled" formControlName="enabled"
-                          i18n-labelText labelText="Enable live transcoding"
-                        >
-                          <ng-container ngProjectAs="description" i18n>
-                            Requires a lot of CPU!
-                          </ng-container>
-                        </my-peertube-checkbox>
-                      </div>
-
-                      <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() || !isLiveTranscodingEnabled() }">
-                        <label i18n for="liveTranscodingThreads">Live transcoding threads</label>
-                        <div class="peertube-select-container">
-                          <select id="liveTranscodingThreads" formControlName="threads" class="form-control">
-                            <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value">
-                              {{ transcodingThreadOption.label }} {transcodingThreadOption.value, plural, =0 {} =1 {thread} other {threads}}
-                            </option>
-                          </select>
-                        </div>
-                        <div *ngIf="formErrors.live.transcoding.threads" class="form-error">{{ formErrors.live.transcoding.threads }}</div>
-                      </div>
-
-                      <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() || !isLiveTranscodingEnabled() }">
-                        <label i18n for="liveTranscodingThreads">Live resolutions to generate</label>
-
-                        <div class="ml-2 mt-2 d-flex flex-column">
-                          <ng-container formGroupName="resolutions">
-                            <div class="form-group" *ngFor="let resolution of liveResolutions">
-                              <my-peertube-checkbox
-                                [inputName]="getResolutionKey(resolution.id)" [formControlName]="resolution.id"
-                                labelText="{{resolution.label}}"
-                              >
-                                <ng-template *ngIf="resolution.description" ptTemplate="help">
-                                  <div [innerHTML]="resolution.description"></div>
-                                </ng-template>
-                              </my-peertube-checkbox>
-                            </div>
-                          </ng-container>
-                        </div>
-                      </div>
-                    </ng-container>
-                  </ng-container>
-                </my-peertube-checkbox>
-              </div>
-            </ng-container>
-          </div>
-        </div>
-
-      </ng-template>
-    </div>
-
-    <ng-container ngbNavItem="advanced-configuration">
-      <a ngbNavLink i18n>Advanced configuration</a>
+    <ng-container ngbNavItem="transcoding">
+      <a ngbNavLink i18n>Transcoding</a>
 
       <ng-template ngbNavContent>
 
                         >
                           <ng-template ptTemplate="help">
                             <ng-container i18n>
-                              <strong>Experimental, we suggest you to not disable webtorrent support for now</strong>
-
                               <p>If you also enabled HLS support, it will multiply videos storage by 2</p>
 
                               <br />
           </div>
         </div>
 
+      </ng-template>
+    </ng-container>
+
+    <ng-container ngbNavItem="live">
+      <a ngbNavLink i18n>Live streaming</a>
+
+      <ng-template ngbNavContent>
+
+        <div class="form-row mt-5">
+          <div class="form-group col-12 col-lg-4 col-xl-3">
+            <div i18n class="inner-form-title">LIVE</div>
+            <div i18n class="inner-form-description">
+              Enable users of your instance to stream live.
+            </div>
+          </div>
+
+          <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
+
+            <ng-container formGroupName="live">
+
+              <div class="form-group">
+                <my-peertube-checkbox inputName="liveEnabled" formControlName="enabled">
+                  <ng-template ptTemplate="label">
+                    <ng-container i18n>Allow live streaming</ng-container>
+                  </ng-template>
+
+                  <ng-container ngProjectAs="description" i18n>
+                    ⚠️ Enabling live streaming requires trust in your users and extra moderation work
+                  </ng-container>
+
+                  <ng-container ngProjectAs="extra">
+
+                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
+                      <my-peertube-checkbox
+                        inputName="liveAllowReplay" formControlName="allowReplay"
+                        i18n-labelText labelText="Allow your users to automatically publish a replay of their live"
+                      >
+                        <ng-container ngProjectAs="description" i18n>
+                          If the user quota is reached, PeerTube will automatically terminate the live streaming
+                        </ng-container>
+                      </my-peertube-checkbox>
+                    </div>
+
+                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
+                      <label i18n for="liveMaxInstanceLives">Max lives created on your instance (-1 for "unlimited")</label>
+                      <div class="number-with-unit">
+                        <input type="number" name="liveMaxInstanceLives" formControlName="maxInstanceLives" />
+                        <span i18n>{form.value['live']['maxInstanceLives'], plural, =1 {live} other {lives}}</span>
+                      </div>
+                    </div>
+
+                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
+                      <label i18n for="liveMaxUserLives">Max lives created per user (-1 for "unlimited")</label>
+                      <div class="number-with-unit">
+                        <input type="number" name="liveMaxUserLives" formControlName="maxUserLives" />
+                        <span i18n>{form.value['live']['maxUserLives'], plural, =1 {live} other {lives}}</span>
+                      </div>
+                    </div>
+
+                    <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
+                      <label i18n for="liveMaxDuration">Max live duration</label>
+                      <div class="peertube-select-container">
+                        <ng-select
+                          labelForId="liveMaxDuration" [items]="liveMaxDurationOptions" formControlName="maxDuration"
+                          bindLabel="label" bindValue="value"
+                          [clearable]="false"
+                          [searchable]="false"
+                        ></ng-select>
+                      </div>
+                    </div>
+
+                    <ng-container formGroupName="transcoding">
+
+                      <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() }">
+                        <my-peertube-checkbox
+                          inputName="liveTranscodingEnabled" formControlName="enabled"
+                          i18n-labelText labelText="Enable live transcoding"
+                        >
+                          <ng-container ngProjectAs="description" i18n>
+                            Requires a lot of CPU!
+                          </ng-container>
+                        </my-peertube-checkbox>
+                      </div>
+
+                      <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() || !isLiveTranscodingEnabled() }">
+                        <label i18n for="liveTranscodingThreads">Live transcoding threads</label>
+                        <div class="peertube-select-container">
+                          <select id="liveTranscodingThreads" formControlName="threads" class="form-control">
+                            <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value">
+                              {{ transcodingThreadOption.label }} {transcodingThreadOption.value, plural, =0 {} =1 {thread} other {threads}}
+                            </option>
+                          </select>
+                        </div>
+                        <div *ngIf="formErrors.live.transcoding.threads" class="form-error">{{ formErrors.live.transcoding.threads }}</div>
+                      </div>
+
+                      <div class="form-group" [ngClass]="{ 'disabled-checkbox-extra': !isLiveEnabled() || !isLiveTranscodingEnabled() }">
+                        <label i18n for="liveTranscodingThreads">Live resolutions to generate</label>
+
+                        <div class="ml-2 mt-2 d-flex flex-column">
+                          <ng-container formGroupName="resolutions">
+                            <div class="form-group" *ngFor="let resolution of liveResolutions">
+                              <my-peertube-checkbox
+                                [inputName]="getResolutionKey(resolution.id)" [formControlName]="resolution.id"
+                                labelText="{{resolution.label}}"
+                              >
+                                <ng-template *ngIf="resolution.description" ptTemplate="help">
+                                  <div [innerHTML]="resolution.description"></div>
+                                </ng-template>
+                              </my-peertube-checkbox>
+                            </div>
+                          </ng-container>
+                        </div>
+                      </div>
+                    </ng-container>
+                  </ng-container>
+                </my-peertube-checkbox>
+              </div>
+            </ng-container>
+          </div>
+        </div>
+
+      </ng-template>
+    </ng-container>
+
+    <ng-container ngbNavItem="advanced-configuration">
+      <a ngbNavLink i18n>Advanced configuration</a>
+
+      <ng-template ngbNavContent>
+
         <div class="form-row mt-4"> <!-- cache grid -->
           <div class="form-group col-12 col-lg-4 col-xl-3">
             <div i18n class="inner-form-title">CACHE</div>