1 <ng-container [formGroup]=
"form">
3 <ng-container formGroupName=
"instance">
5 <div class=
"row mt-5"> <!-- instance grid -->
6 <div class=
"col-12 col-lg-4 col-xl-3">
7 <div i18n
class=
"inner-form-title">INSTANCE
</div>
10 <div class=
"col-12 col-lg-8 col-xl-9">
11 <div class=
"form-group">
12 <label i18n
for=
"instanceName">Name
</label>
15 type=
"text" id=
"instanceName" class=
"form-control"
16 formControlName=
"name" [ngClass]=
"{ 'input-error': formErrors.instance.name }"
19 <div *
ngIf=
"formErrors.instance.name" class=
"form-error">{{ formErrors.instance.name }}
</div>
22 <div class=
"form-group">
23 <label i18n
for=
"instanceShortDescription">Short description
</label>
26 id=
"instanceShortDescription" formControlName=
"shortDescription" class=
"form-control small"
27 [ngClass]=
"{ 'input-error': formErrors['instance.shortDescription'] }"
30 <div *
ngIf=
"formErrors.instance.shortDescription" class=
"form-error">{{ formErrors.instance.shortDescription }}
</div>
33 <div class=
"form-group">
34 <label i18n
for=
"instanceDescription">Description
</label>
35 <div class=
"label-small-info">
36 <my-custom-markup-help></my-custom-markup-help>
40 name=
"instanceDescription" formControlName=
"description" textareaMaxWidth=
"500px"
41 [customMarkdownRenderer]=
"getCustomMarkdownRenderer()"
42 [classes]=
"{ 'input-error': formErrors['instance.description'] }"
43 ></my-markdown-textarea>
45 <div *
ngIf=
"formErrors.instance.description" class=
"form-error">{{ formErrors.instance.description }}
</div>
48 <div class=
"form-group">
49 <label i18n
for=
"instanceCategories">Main instance categories
</label>
53 id=
"instanceCategories"
54 formControlName=
"categories" [availableItems]=
"categoryItems"
55 [selectableGroup]=
"false"
56 i18n-placeholder
placeholder=
"Add a new category"
62 <div class=
"form-group">
63 <label i18n
for=
"instanceLanguages">Main languages you/your moderators speak
</label>
67 id=
"instanceLanguages"
68 formControlName=
"languages" [availableItems]=
"languageItems"
69 [selectableGroup]=
"false"
70 i18n-placeholder
placeholder=
"Add a new language"
79 <div class=
"row mt-4"> <!-- moderation & nsfw grid -->
80 <div class=
"col-12 col-lg-4 col-xl-3">
81 <div i18n
class=
"inner-form-title">MODERATION & NSFW
</div>
82 <div i18row=
"inner-for-description">
83 Manage
<a routerLink=
"/admin/users">users
</a> to build a moderation team.
87 <div class=
"col-12 col-lg-8 col-xl-9">
88 <div class=
"form-group">
89 <my-peertube-checkbox inputName=
"instanceIsNSFW" formControlName=
"isNSFW">
90 <ng-template ptTemplate=
"label">
91 <ng-container i18n
>This instance is dedicated to sensitive or NSFW content
</ng-container>
94 <ng-template ptTemplate=
"help">
96 Enabling it will allow other administrators to know that you are mainly federating sensitive content.
<br /><br />
97 Moreover, the NSFW checkbox on video upload will be automatically checked by default.
100 </my-peertube-checkbox>
103 <div class=
"form-group">
104 <label i18n
for=
"instanceDefaultNSFWPolicy">Policy on videos containing sensitive content
</label>
107 <ng-template ptTemplate=
"customHtml">
109 With
<strong>Hide
</strong> or
<strong>Blur thumbnails
</strong>, a confirmation will be requested to watch the video.
114 <div class=
"peertube-select-container">
115 <select id=
"instanceDefaultNSFWPolicy" formControlName=
"defaultNSFWPolicy" class=
"form-control">
116 <option i18n
value=
"undefined" disabled
>Policy for sensitive videos
</option>
117 <option i18n
value=
"do_not_list">Hide
</option>
118 <option i18n
value=
"blur">Blur thumbnails
</option>
119 <option i18n
value=
"display">Display
</option>
123 <div *
ngIf=
"formErrors.instance.defaultNSFWPolicy" class=
"form-error">{{ formErrors.instance.defaultNSFWPolicy }}
</div>
126 <div class=
"form-group">
127 <label i18n
for=
"instanceTerms">Terms
</label><my-help helpType=
"markdownText"></my-help>
129 <my-markdown-textarea
130 name=
"instanceTerms" formControlName=
"terms" textareaMaxWidth=
"500px"
131 [ngClass]=
"{ 'input-error': formErrors['instance.terms'] }"
132 ></my-markdown-textarea>
134 <div *
ngIf=
"formErrors.instance.terms" class=
"form-error">{{ formErrors.instance.terms }}
</div>
137 <div class=
"form-group">
138 <label i18n
for=
"instanceCodeOfConduct">Code of conduct
</label><my-help helpType=
"markdownText"></my-help>
140 <my-markdown-textarea
141 name=
"instanceCodeOfConduct" formControlName=
"codeOfConduct" textareaMaxWidth=
"500px"
142 [ngClass]=
"{ 'input-error': formErrors['instance.codeOfConduct'] }"
143 ></my-markdown-textarea>
145 <div *
ngIf=
"formErrors.instance.codeOfConduct" class=
"form-error">{{ formErrors.instance.codeOfConduct }}
</div>
148 <div class=
"form-group">
149 <label i18n
for=
"instanceModerationInformation">Moderation information
</label><my-help helpType=
"markdownText"></my-help>
150 <div i18n
class=
"label-small-info">Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
</div>
152 <my-markdown-textarea
153 name=
"instanceModerationInformation" formControlName=
"moderationInformation" textareaMaxWidth=
"500px"
154 [ngClass]=
"{ 'input-error': formErrors['instance.moderationInformation'] }"
155 ></my-markdown-textarea>
157 <div *
ngIf=
"formErrors.instance.moderationInformation" class=
"form-error">{{ formErrors.instance.moderationInformation }}
</div>
163 <div class=
"row mt-4"> <!-- you and your instance grid -->
164 <div class=
"col-12 col-lg-4 col-xl-3">
165 <div i18n
class=
"inner-form-title">YOU AND YOUR INSTANCE
</div>
168 <div class=
"col-12 col-lg-8 col-xl-9">
170 <div class=
"form-group">
171 <label i18n
for=
"instanceAdministrator">Who is behind the instance?
</label><my-help helpType=
"markdownText"></my-help>
172 <div i18n
class=
"label-small-info">A single person? A non-profit? A company?
</div>
174 <my-markdown-textarea
175 name=
"instanceAdministrator" formControlName=
"administrator" textareaMaxWidth=
"500px"
176 [classes]=
"{ 'input-error': formErrors['instance.administrator'] }"
177 ></my-markdown-textarea>
179 <div *
ngIf=
"formErrors.instance.administrator" class=
"form-error">{{ formErrors.instance.administrator }}
</div>
182 <div class=
"form-group">
183 <label i18n
for=
"instanceCreationReason">Why did you create this instance?
</label><my-help helpType=
"markdownText"></my-help>
184 <div i18n
class=
"label-small-info">To share your personal videos? To open registrations and allow people to upload what they want?
</div>
186 <my-markdown-textarea
187 name=
"instanceCreationReason" formControlName=
"creationReason" textareaMaxWidth=
"500px"
188 [ngClass]=
"{ 'input-error': formErrors['instance.creationReason'] }"
189 ></my-markdown-textarea>
191 <div *
ngIf=
"formErrors.instance.creationReason" class=
"form-error">{{ formErrors.instance.creationReason }}
</div>
194 <div class=
"form-group">
195 <label i18n
for=
"instanceMaintenanceLifetime">How long do you plan to maintain this instance?
</label><my-help helpType=
"markdownText"></my-help>
196 <div i18n
class=
"label-small-info">It's important to know for users who want to register on your instance
</div>
198 <my-markdown-textarea
199 name=
"instanceMaintenanceLifetime" formControlName=
"maintenanceLifetime" textareaMaxWidth=
"500px"
200 [ngClass]=
"{ 'input-error': formErrors['instance.maintenanceLifetime'] }"
201 ></my-markdown-textarea>
203 <div *
ngIf=
"formErrors.instance.maintenanceLifetime" class=
"form-error">{{ formErrors.instance.maintenanceLifetime }}
</div>
206 <div class=
"form-group">
207 <label i18n
for=
"instanceBusinessModel">How will you finance the PeerTube server?
</label><my-help helpType=
"markdownText"></my-help>
208 <div i18n
class=
"label-small-info">With your own funds? With user donations? Advertising?
</div>
210 <my-markdown-textarea
211 name=
"instanceBusinessModel" formControlName=
"businessModel" textareaMaxWidth=
"500px"
212 [ngClass]=
"{ 'input-error': formErrors['instance.businessModel'] }"
213 ></my-markdown-textarea>
215 <div *
ngIf=
"formErrors.instance.businessModel" class=
"form-error">{{ formErrors.instance.businessModel }}
</div>
221 <div class=
"row mt-4"> <!-- other information grid -->
222 <div class=
"col-12 col-lg-4 col-xl-3">
223 <div i18n
class=
"inner-form-title">OTHER INFORMATION
</div>
226 <div class=
"col-12 col-lg-8 col-xl-9">
228 <div class=
"form-group">
229 <label i18n
for=
"instanceHardwareInformation">What server/hardware does the instance run on?
</label>
230 <div i18n
class=
"label-small-info">i.e.
2vCore
2GB RAM, a direct the link to the server you rent, etc.
</div>
232 <my-markdown-textarea
233 name=
"instanceHardwareInformation" formControlName=
"hardwareInformation" textareaMaxWidth=
"500px"
234 [classes]=
"{ 'input-error': formErrors['instance.hardwareInformation'] }"
235 ></my-markdown-textarea>
237 <div *
ngIf=
"formErrors.instance.hardwareInformation" class=
"form-error">{{ formErrors.instance.hardwareInformation }}
</div>