1 <ng-container [formGroup]=
"form">
3 <ng-container formGroupName=
"instance">
5 <div class=
"form-row mt-5"> <!-- instance grid -->
6 <div class=
"form-group col-12 col-lg-4 col-xl-3">
7 <div i18n
class=
"inner-form-title">INSTANCE
</div>
10 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
12 <div class=
"form-group">
13 <label i18n
for=
"instanceName">Name
</label>
16 type=
"text" id=
"instanceName" class=
"form-control"
17 formControlName=
"name" [ngClass]=
"{ 'input-error': formErrors.instance.name }"
20 <div *
ngIf=
"formErrors.instance.name" class=
"form-error">{{ formErrors.instance.name }}
</div>
23 <div class=
"form-group">
24 <label i18n
for=
"instanceShortDescription">Short description
</label>
27 id=
"instanceShortDescription" formControlName=
"shortDescription" class=
"form-control small"
28 [ngClass]=
"{ 'input-error': formErrors['instance.shortDescription'] }"
31 <div *
ngIf=
"formErrors.instance.shortDescription" class=
"form-error">{{ formErrors.instance.shortDescription }}
</div>
34 <div class=
"form-group">
35 <label i18n
for=
"instanceDescription">Description
</label>
36 <div class=
"label-small-info">
37 <my-custom-markup-help></my-custom-markup-help>
41 name=
"instanceDescription" formControlName=
"description" textareaMaxWidth=
"500px"
42 [customMarkdownRenderer]=
"getCustomMarkdownRenderer()"
43 [classes]=
"{ 'input-error': formErrors['instance.description'] }"
44 ></my-markdown-textarea>
46 <div *
ngIf=
"formErrors.instance.description" class=
"form-error">{{ formErrors.instance.description }}
</div>
49 <div class=
"form-group">
50 <label i18n
for=
"instanceCategories">Main instance categories
</label>
54 id=
"instanceCategories"
55 formControlName=
"categories" [availableItems]=
"categoryItems"
56 [selectableGroup]=
"false"
57 i18n-placeholder
placeholder=
"Add a new category"
63 <div class=
"form-group">
64 <label i18n
for=
"instanceLanguages">Main languages you/your moderators speak
</label>
68 id=
"instanceLanguages"
69 formControlName=
"languages" [availableItems]=
"languageItems"
70 [selectableGroup]=
"false"
71 i18n-placeholder
placeholder=
"Add a new language"
80 <div class=
"form-row mt-4"> <!-- moderation & nsfw grid -->
81 <div class=
"form-group col-12 col-lg-4 col-xl-3">
82 <div i18n
class=
"inner-form-title">MODERATION & NSFW
</div>
83 <div i18n
class=
"inner-for-description">
84 Manage
<a routerLink=
"/admin/users">users
</a> to build a moderation team.
88 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
90 <div class=
"form-group">
91 <my-peertube-checkbox inputName=
"instanceIsNSFW" formControlName=
"isNSFW">
92 <ng-template ptTemplate=
"label">
93 <ng-container i18n
>This instance is dedicated to sensitive or NSFW content
</ng-container>
96 <ng-template ptTemplate=
"help">
98 Enabling it will allow other administrators to know that you are mainly federating sensitive content.
<br /><br />
99 Moreover, the NSFW checkbox on video upload will be automatically checked by default.
102 </my-peertube-checkbox>
105 <div class=
"form-group">
106 <label i18n
for=
"instanceDefaultNSFWPolicy">Policy on videos containing sensitive content
</label>
109 <ng-template ptTemplate=
"customHtml">
111 With
<strong>Hide
</strong> or
<strong>Blur thumbnails
</strong>, a confirmation will be requested to watch the video.
116 <div class=
"peertube-select-container">
117 <select id=
"instanceDefaultNSFWPolicy" formControlName=
"defaultNSFWPolicy" class=
"form-control">
118 <option i18n
value=
"undefined" disabled
>Policy for sensitive videos
</option>
119 <option i18n
value=
"do_not_list">Hide
</option>
120 <option i18n
value=
"blur">Blur thumbnails
</option>
121 <option i18n
value=
"display">Display
</option>
125 <div *
ngIf=
"formErrors.instance.defaultNSFWPolicy" class=
"form-error">{{ formErrors.instance.defaultNSFWPolicy }}
</div>
128 <div class=
"form-group">
129 <label i18n
for=
"instanceTerms">Terms
</label><my-help helpType=
"markdownText"></my-help>
131 <my-markdown-textarea
132 name=
"instanceTerms" formControlName=
"terms" textareaMaxWidth=
"500px"
133 [ngClass]=
"{ 'input-error': formErrors['instance.terms'] }"
134 ></my-markdown-textarea>
136 <div *
ngIf=
"formErrors.instance.terms" class=
"form-error">{{ formErrors.instance.terms }}
</div>
139 <div class=
"form-group">
140 <label i18n
for=
"instanceCodeOfConduct">Code of conduct
</label><my-help helpType=
"markdownText"></my-help>
142 <my-markdown-textarea
143 name=
"instanceCodeOfConduct" formControlName=
"codeOfConduct" textareaMaxWidth=
"500px"
144 [ngClass]=
"{ 'input-error': formErrors['instance.codeOfConduct'] }"
145 ></my-markdown-textarea>
147 <div *
ngIf=
"formErrors.instance.codeOfConduct" class=
"form-error">{{ formErrors.instance.codeOfConduct }}
</div>
150 <div class=
"form-group">
151 <label i18n
for=
"instanceModerationInformation">Moderation information
</label><my-help helpType=
"markdownText"></my-help>
152 <div i18n
class=
"label-small-info">Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
</div>
154 <my-markdown-textarea
155 name=
"instanceModerationInformation" formControlName=
"moderationInformation" textareaMaxWidth=
"500px"
156 [ngClass]=
"{ 'input-error': formErrors['instance.moderationInformation'] }"
157 ></my-markdown-textarea>
159 <div *
ngIf=
"formErrors.instance.moderationInformation" class=
"form-error">{{ formErrors.instance.moderationInformation }}
</div>
165 <div class=
"form-row mt-4"> <!-- you and your instance grid -->
166 <div class=
"form-group col-12 col-lg-4 col-xl-3">
167 <div i18n
class=
"inner-form-title">YOU AND YOUR INSTANCE
</div>
170 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
172 <div class=
"form-group">
173 <label i18n
for=
"instanceAdministrator">Who is behind the instance?
</label><my-help helpType=
"markdownText"></my-help>
174 <div i18n
class=
"label-small-info">A single person? A non-profit? A company?
</div>
176 <my-markdown-textarea
177 name=
"instanceAdministrator" formControlName=
"administrator" textareaMaxWidth=
"500px"
178 [classes]=
"{ 'input-error': formErrors['instance.administrator'] }"
179 ></my-markdown-textarea>
181 <div *
ngIf=
"formErrors.instance.administrator" class=
"form-error">{{ formErrors.instance.administrator }}
</div>
184 <div class=
"form-group">
185 <label i18n
for=
"instanceCreationReason">Why did you create this instance?
</label><my-help helpType=
"markdownText"></my-help>
186 <div i18n
class=
"label-small-info">To share your personal videos? To open registrations and allow people to upload what they want?
</div>
188 <my-markdown-textarea
189 name=
"instanceCreationReason" formControlName=
"creationReason" textareaMaxWidth=
"500px"
190 [ngClass]=
"{ 'input-error': formErrors['instance.creationReason'] }"
191 ></my-markdown-textarea>
193 <div *
ngIf=
"formErrors.instance.creationReason" class=
"form-error">{{ formErrors.instance.creationReason }}
</div>
196 <div class=
"form-group">
197 <label i18n
for=
"instanceMaintenanceLifetime">How long do you plan to maintain this instance?
</label><my-help helpType=
"markdownText"></my-help>
198 <div i18n
class=
"label-small-info">It's important to know for users who want to register on your instance
</div>
200 <my-markdown-textarea
201 name=
"instanceMaintenanceLifetime" formControlName=
"maintenanceLifetime" textareaMaxWidth=
"500px"
202 [ngClass]=
"{ 'input-error': formErrors['instance.maintenanceLifetime'] }"
203 ></my-markdown-textarea>
205 <div *
ngIf=
"formErrors.instance.maintenanceLifetime" class=
"form-error">{{ formErrors.instance.maintenanceLifetime }}
</div>
208 <div class=
"form-group">
209 <label i18n
for=
"instanceBusinessModel">How will you finance the PeerTube server?
</label><my-help helpType=
"markdownText"></my-help>
210 <div i18n
class=
"label-small-info">With your own funds? With user donations? Advertising?
</div>
212 <my-markdown-textarea
213 name=
"instanceBusinessModel" formControlName=
"businessModel" textareaMaxWidth=
"500px"
214 [ngClass]=
"{ 'input-error': formErrors['instance.businessModel'] }"
215 ></my-markdown-textarea>
217 <div *
ngIf=
"formErrors.instance.businessModel" class=
"form-error">{{ formErrors.instance.businessModel }}
</div>
223 <div class=
"form-row mt-4"> <!-- other information grid -->
224 <div class=
"form-group col-12 col-lg-4 col-xl-3">
225 <div i18n
class=
"inner-form-title">OTHER INFORMATION
</div>
228 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
230 <div class=
"form-group">
231 <label i18n
for=
"instanceHardwareInformation">What server/hardware does the instance run on?
</label>
232 <div i18n
class=
"label-small-info">i.e.
2vCore
2GB RAM, a direct the link to the server you rent, etc.
</div>
234 <my-markdown-textarea
235 name=
"instanceHardwareInformation" formControlName=
"hardwareInformation" textareaMaxWidth=
"500px"
236 [classes]=
"{ 'input-error': formErrors['instance.hardwareInformation'] }"
237 ></my-markdown-textarea>
239 <div *
ngIf=
"formErrors.instance.hardwareInformation" class=
"form-error">{{ formErrors.instance.hardwareInformation }}
</div>