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>
15 type=
"text" id=
"instanceName" class=
"form-control"
16 formControlName=
"name" [ngClass]=
"{ 'input-error': formErrors.instance.name }"
18 <div *
ngIf=
"formErrors.instance.name" class=
"form-error">{{ formErrors.instance.name }}
</div>
21 <div class=
"form-group">
22 <label i18n
for=
"instanceShortDescription">Short description
</label>
24 id=
"instanceShortDescription" formControlName=
"shortDescription" class=
"form-control small"
25 [ngClass]=
"{ 'input-error': formErrors['instance.shortDescription'] }"
27 <div *
ngIf=
"formErrors.instance.shortDescription" class=
"form-error">{{ formErrors.instance.shortDescription }}
</div>
30 <div class=
"form-group">
31 <label i18n
for=
"instanceDescription">Description
</label><my-help helpType=
"markdownText"></my-help>
33 name=
"instanceDescription" formControlName=
"description" textareaMaxWidth=
"500px"
34 [classes]=
"{ 'input-error': formErrors['instance.description'] }"
35 ></my-markdown-textarea>
36 <div *
ngIf=
"formErrors.instance.description" class=
"form-error">{{ formErrors.instance.description }}
</div>
39 <div class=
"form-group">
40 <label i18n
for=
"instanceCategories">Main instance categories
</label>
44 id=
"instanceCategories"
45 formControlName=
"categories" [availableItems]=
"categoryItems"
46 [selectableGroup]=
"false"
47 i18n-placeholder
placeholder=
"Add a new category"
53 <div class=
"form-group">
54 <label i18n
for=
"instanceLanguages">Main languages you/your moderators speak
</label>
58 id=
"instanceLanguages"
59 formControlName=
"languages" [availableItems]=
"languageItems"
60 [selectableGroup]=
"false"
61 i18n-placeholder
placeholder=
"Add a new language"
70 <div class=
"form-row mt-4"> <!-- moderation & nsfw grid -->
71 <div class=
"form-group col-12 col-lg-4 col-xl-3">
72 <div i18n
class=
"inner-form-title">MODERATION & NSFW
</div>
73 <div i18n
class=
"inner-for-description">
74 Manage
<a routerLink=
"/admin/users">users
</a> to build a moderation team.
78 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
80 <div class=
"form-group">
81 <my-peertube-checkbox inputName=
"instanceIsNSFW" formControlName=
"isNSFW">
82 <ng-template ptTemplate=
"label">
83 <ng-container i18n
>This instance is dedicated to sensitive or NSFW content
</ng-container>
86 <ng-template ptTemplate=
"help">
88 Enabling it will allow other administrators to know that you are mainly federating sensitive content.
<br /><br />
89 Moreover, the NSFW checkbox on video upload will be automatically checked by default.
92 </my-peertube-checkbox>
95 <div class=
"form-group">
96 <label i18n
for=
"instanceDefaultNSFWPolicy">Policy on videos containing sensitive content
</label>
99 <ng-template ptTemplate=
"customHtml">
101 With
<strong>Do not list
</strong> or
<strong>Blur thumbnails
</strong>, a confirmation will be requested to watch the video.
106 <div class=
"peertube-select-container">
107 <select id=
"instanceDefaultNSFWPolicy" formControlName=
"defaultNSFWPolicy" class=
"form-control">
108 <option i18n
value=
"undefined" disabled
>Policy for sensitive videos
</option>
109 <option i18n
value=
"do_not_list">Do not list
</option>
110 <option i18n
value=
"blur">Blur thumbnails
</option>
111 <option i18n
value=
"display">Display
</option>
114 <div *
ngIf=
"formErrors.instance.defaultNSFWPolicy" class=
"form-error">{{ formErrors.instance.defaultNSFWPolicy }}
</div>
117 <div class=
"form-group">
118 <label i18n
for=
"instanceTerms">Terms
</label><my-help helpType=
"markdownText"></my-help>
119 <my-markdown-textarea
120 name=
"instanceTerms" formControlName=
"terms" textareaMaxWidth=
"500px"
121 [ngClass]=
"{ 'input-error': formErrors['instance.terms'] }"
122 ></my-markdown-textarea>
123 <div *
ngIf=
"formErrors.instance.terms" class=
"form-error">{{ formErrors.instance.terms }}
</div>
126 <div class=
"form-group">
127 <label i18n
for=
"instanceCodeOfConduct">Code of conduct
</label><my-help helpType=
"markdownText"></my-help>
128 <my-markdown-textarea
129 name=
"instanceCodeOfConduct" formControlName=
"codeOfConduct" textareaMaxWidth=
"500px"
130 [ngClass]=
"{ 'input-error': formErrors['instance.codeOfConduct'] }"
131 ></my-markdown-textarea>
132 <div *
ngIf=
"formErrors.instance.codeOfConduct" class=
"form-error">{{ formErrors.instance.codeOfConduct }}
</div>
135 <div class=
"form-group">
136 <label i18n
for=
"instanceModerationInformation">Moderation information
</label><my-help helpType=
"markdownText"></my-help>
137 <div i18n
class=
"label-small-info">Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
</div>
139 <my-markdown-textarea
140 name=
"instanceModerationInformation" formControlName=
"moderationInformation" textareaMaxWidth=
"500px"
141 [ngClass]=
"{ 'input-error': formErrors['instance.moderationInformation'] }"
142 ></my-markdown-textarea>
143 <div *
ngIf=
"formErrors.instance.moderationInformation" class=
"form-error">{{ formErrors.instance.moderationInformation }}
</div>
149 <div class=
"form-row mt-4"> <!-- you and your instance grid -->
150 <div class=
"form-group col-12 col-lg-4 col-xl-3">
151 <div i18n
class=
"inner-form-title">YOU AND YOUR INSTANCE
</div>
154 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
156 <div class=
"form-group">
157 <label i18n
for=
"instanceAdministrator">Who is behind the instance?
</label><my-help helpType=
"markdownText"></my-help>
158 <div i18n
class=
"label-small-info">A single person? A non-profit? A company?
</div>
160 <my-markdown-textarea
161 name=
"instanceAdministrator" formControlName=
"administrator" textareaMaxWidth=
"500px"
162 [classes]=
"{ 'input-error': formErrors['instance.administrator'] }"
163 ></my-markdown-textarea>
165 <div *
ngIf=
"formErrors.instance.administrator" class=
"form-error">{{ formErrors.instance.administrator }}
</div>
168 <div class=
"form-group">
169 <label i18n
for=
"instanceCreationReason">Why did you create this instance?
</label><my-help helpType=
"markdownText"></my-help>
170 <div i18n
class=
"label-small-info">To share your personal videos? To open registrations and allow people to upload what they want?
</div>
172 <my-markdown-textarea
173 name=
"instanceCreationReason" formControlName=
"creationReason" textareaMaxWidth=
"500px"
174 [ngClass]=
"{ 'input-error': formErrors['instance.creationReason'] }"
175 ></my-markdown-textarea>
176 <div *
ngIf=
"formErrors.instance.creationReason" class=
"form-error">{{ formErrors.instance.creationReason }}
</div>
179 <div class=
"form-group">
180 <label i18n
for=
"instanceMaintenanceLifetime">How long do you plan to maintain this instance?
</label><my-help helpType=
"markdownText"></my-help>
181 <div i18n
class=
"label-small-info">It's important to know for users who want to register on your instance
</div>
183 <my-markdown-textarea
184 name=
"instanceMaintenanceLifetime" formControlName=
"maintenanceLifetime" textareaMaxWidth=
"500px"
185 [ngClass]=
"{ 'input-error': formErrors['instance.maintenanceLifetime'] }"
186 ></my-markdown-textarea>
187 <div *
ngIf=
"formErrors.instance.maintenanceLifetime" class=
"form-error">{{ formErrors.instance.maintenanceLifetime }}
</div>
190 <div class=
"form-group">
191 <label i18n
for=
"instanceBusinessModel">How will you finance the PeerTube server?
</label><my-help helpType=
"markdownText"></my-help>
192 <div i18n
class=
"label-small-info">With your own funds? With user donations? Advertising?
</div>
194 <my-markdown-textarea
195 name=
"instanceBusinessModel" formControlName=
"businessModel" textareaMaxWidth=
"500px"
196 [ngClass]=
"{ 'input-error': formErrors['instance.businessModel'] }"
197 ></my-markdown-textarea>
198 <div *
ngIf=
"formErrors.instance.businessModel" class=
"form-error">{{ formErrors.instance.businessModel }}
</div>
204 <div class=
"form-row mt-4"> <!-- other information grid -->
205 <div class=
"form-group col-12 col-lg-4 col-xl-3">
206 <div i18n
class=
"inner-form-title">OTHER INFORMATION
</div>
209 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
211 <div class=
"form-group">
212 <label i18n
for=
"instanceHardwareInformation">What server/hardware does the instance run on?
</label>
213 <div i18n
class=
"label-small-info">i.e.
2vCore
2GB RAM, a direct the link to the server you rent, etc.
</div>
215 <my-markdown-textarea
216 name=
"instanceHardwareInformation" formControlName=
"hardwareInformation" textareaMaxWidth=
"500px"
217 [classes]=
"{ 'input-error': formErrors['instance.hardwareInformation'] }"
218 ></my-markdown-textarea>
220 <div *
ngIf=
"formErrors.instance.hardwareInformation" class=
"form-error">{{ formErrors.instance.hardwareInformation }}
</div>