1 <div class=
"form-sub-title">Update PeerTube configuration
</div>
3 <form role=
"form" [formGroup]=
"form">
5 <div class=
"inner-form-title">Instance
</div>
7 <div class=
"form-group">
8 <label for=
"instanceName">Name
</label>
10 type=
"text" id=
"instanceName"
11 formControlName=
"instanceName" [ngClass]=
"{ 'input-error': formErrors['instanceName'] }"
13 <div *
ngIf=
"formErrors.instanceName" class=
"form-error">
14 {{ formErrors.instanceName }}
18 <div class=
"form-group">
19 <label for=
"instanceShortDescription">Short description
</label>
21 id=
"instanceShortDescription" formControlName=
"instanceShortDescription"
22 [ngClass]=
"{ 'input-error': formErrors['instanceShortDescription'] }"
24 <div *
ngIf=
"formErrors.instanceShortDescription" class=
"form-error">
25 {{ formErrors.instanceShortDescription }}
29 <div class=
"form-group">
30 <label for=
"instanceDescription">Description
</label><my-help helpType=
"markdownText"></my-help>
32 id=
"instanceDescription" formControlName=
"instanceDescription" textareaWidth=
"500px" [previewColumn]=
"true"
33 [classes]=
"{ 'input-error': formErrors['instanceDescription'] }"
34 ></my-markdown-textarea>
35 <div *
ngIf=
"formErrors.instanceDescription" class=
"form-error">
36 {{ formErrors.instanceDescription }}
40 <div class=
"form-group">
41 <label for=
"instanceTerms">Terms
</label><my-help helpType=
"markdownText"></my-help>
43 id=
"instanceTerms" formControlName=
"instanceTerms" textareaWidth=
"500px" [previewColumn]=
"true"
44 [ngClass]=
"{ 'input-error': formErrors['instanceTerms'] }"
45 ></my-markdown-textarea>
46 <div *
ngIf=
"formErrors.instanceTerms" class=
"form-error">
47 {{ formErrors.instanceTerms }}
51 <div class=
"form-group">
52 <label for=
"instanceDefaultClientRoute">Default client route
</label>
53 <div class=
"peertube-select-container">
54 <select id=
"instanceDefaultClientRoute" formControlName=
"instanceDefaultClientRoute">
55 <option value=
"/videos/trending">Videos Trending
</option>
56 <option value=
"/videos/recently-added">Videos Recently Added
</option>
57 <option value=
"/videos/local">Local videos
</option>
60 <div *
ngIf=
"formErrors.instanceDefaultClientRoute" class=
"form-error">
61 {{ formErrors.instanceDefaultClientRoute }}
65 <div class=
"form-group">
66 <label for=
"instanceDefaultNSFWPolicy">Policy on videos containing sensitive content
</label>
67 <my-help helpType=
"custom" customHtml=
"With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video."></my-help>
69 <div class=
"peertube-select-container">
70 <select id=
"instanceDefaultNSFWPolicy" formControlName=
"instanceDefaultNSFWPolicy">
71 <option value=
"do_not_list">Do not list
</option>
72 <option value=
"blur">Blur thumbnails
</option>
73 <option value=
"display">Display
</option>
76 <div *
ngIf=
"formErrors.instanceDefaultNSFWPolicy" class=
"form-error">
77 {{ formErrors.instanceDefaultNSFWPolicy }}
81 <div class=
"inner-form-title">Cache
</div>
83 <div class=
"form-group">
84 <label for=
"cachePreviewsSize">Preview cache size
</label>
86 type=
"text" id=
"cachePreviewsSize"
87 formControlName=
"cachePreviewsSize" [ngClass]=
"{ 'input-error': formErrors['cachePreviewsSize'] }"
89 <div *
ngIf=
"formErrors.cachePreviewsSize" class=
"form-error">
90 {{ formErrors.cachePreviewsSize }}
94 <div class=
"inner-form-title">Signup
</div>
96 <div class=
"form-group">
97 <input type=
"checkbox" id=
"signupEnabled" formControlName=
"signupEnabled">
99 <label for=
"signupEnabled"></label>
100 <label for=
"signupEnabled">Signup enabled
</label>
103 <div *
ngIf=
"isSignupEnabled()" class=
"form-group">
104 <label for=
"signupLimit">Signup limit
</label>
106 type=
"text" id=
"signupLimit"
107 formControlName=
"signupLimit" [ngClass]=
"{ 'input-error': formErrors['signupLimit'] }"
109 <div *
ngIf=
"formErrors.signupLimit" class=
"form-error">
110 {{ formErrors.signupLimit }}
114 <div class=
"inner-form-title">Administrator
</div>
116 <div class=
"form-group">
117 <label for=
"adminEmail">Admin email
</label>
119 type=
"text" id=
"adminEmail"
120 formControlName=
"adminEmail" [ngClass]=
"{ 'input-error': formErrors['adminEmail'] }"
122 <div *
ngIf=
"formErrors.adminEmail" class=
"form-error">
123 {{ formErrors.adminEmail }}
127 <div class=
"inner-form-title">Users
</div>
129 <div class=
"form-group">
130 <label for=
"userVideoQuota">User default video quota
</label>
131 <div class=
"peertube-select-container">
132 <select id=
"userVideoQuota" formControlName=
"userVideoQuota">
133 <option *
ngFor=
"let videoQuotaOption of videoQuotaOptions" [value]=
"videoQuotaOption.value">
134 {{ videoQuotaOption.label }}
138 <div *
ngIf=
"formErrors.userVideoQuota" class=
"form-error">
139 {{ formErrors.userVideoQuota }}
143 <div class=
"inner-form-title">Transcoding
</div>
145 <div class=
"form-group">
146 <input type=
"checkbox" id=
"transcodingEnabled" formControlName=
"transcodingEnabled">
148 <label for=
"transcodingEnabled"></label>
149 <label for=
"transcodingEnabled">Transcoding enabled
</label>
152 <ng-template [ngIf]=
"isTranscodingEnabled()">
154 <div class=
"form-group">
155 <label for=
"transcodingThreads">Transcoding threads
</label>
156 <div class=
"peertube-select-container">
157 <select id=
"transcodingThreads" formControlName=
"transcodingThreads">
158 <option *
ngFor=
"let transcodingThreadOption of transcodingThreadOptions" [value]=
"transcodingThreadOption.value">
159 {{ transcodingThreadOption.label }}
163 <div *
ngIf=
"formErrors.transcodingThreads" class=
"form-error">
164 {{ formErrors.transcodingThreads }}
168 <div class=
"form-group" *
ngFor=
"let resolution of resolutions">
170 type=
"checkbox" [id]=
"getResolutionKey(resolution)"
171 [formControlName]=
"getResolutionKey(resolution)"
173 <label [for]=
"getResolutionKey(resolution)"></label>
174 <label [for]=
"getResolutionKey(resolution)">Resolution {{ resolution }} enabled
</label>
178 <div class=
"inner-form-title">Customizations
</div>
180 <div class=
"form-group">
181 <label for=
"customizationJavascript">JavaScript
</label>
182 <my-help helpType=
"custom" customHtml=
"Write directly JavaScript code.<br />Example: <pre>console.log('my instance is amazing');</pre>"></my-help>
184 id=
"customizationJavascript" formControlName=
"customizationJavascript"
185 [ngClass]=
"{ 'input-error': formErrors['customizationJavascript'] }"
187 <div *
ngIf=
"formErrors.customizationJavascript" class=
"form-error">
188 {{ formErrors.customizationJavascript }}
192 <div class=
"form-group">
193 <label for=
"customizationCSS">CSS
</label>
197 Write directly CSS code. Example:<br />
200 background-color: red;
204 Prepend with <em>#custom-css</em> to override styles. Example:
206 #custom-css .logged-in-email {
213 id=
"customizationCSS" formControlName=
"customizationCSS"
214 [ngClass]=
"{ 'input-error': formErrors['customizationCSS'] }"
216 <div *
ngIf=
"formErrors.customizationCSS" class=
"form-error">
217 {{ formErrors.customizationCSS }}
221 <input (click)=
"formValidated()" type=
"submit" value=
"Update configuration" [disabled]=
"!form.valid">