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><my-help helpType=
"markdownText"></my-help>
38 name=
"instanceDescription" formControlName=
"description" textareaMaxWidth=
"500px"
39 [classes]=
"{ 'input-error': formErrors['instance.description'] }"
40 ></my-markdown-textarea>
42 <div *
ngIf=
"formErrors.instance.description" class=
"form-error">{{ formErrors.instance.description }}
</div>
45 <div class=
"form-group">
46 <label i18n
for=
"instanceCategories">Main instance categories
</label>
50 id=
"instanceCategories"
51 formControlName=
"categories" [availableItems]=
"categoryItems"
52 [selectableGroup]=
"false"
53 i18n-placeholder
placeholder=
"Add a new category"
59 <div class=
"form-group">
60 <label i18n
for=
"instanceLanguages">Main languages you/your moderators speak
</label>
64 id=
"instanceLanguages"
65 formControlName=
"languages" [availableItems]=
"languageItems"
66 [selectableGroup]=
"false"
67 i18n-placeholder
placeholder=
"Add a new language"
76 <div class=
"form-row mt-4"> <!-- moderation & nsfw grid -->
77 <div class=
"form-group col-12 col-lg-4 col-xl-3">
78 <div i18n
class=
"inner-form-title">MODERATION & NSFW
</div>
79 <div i18n
class=
"inner-for-description">
80 Manage
<a routerLink=
"/admin/users">users
</a> to build a moderation team.
84 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
86 <div class=
"form-group">
87 <my-peertube-checkbox inputName=
"instanceIsNSFW" formControlName=
"isNSFW">
88 <ng-template ptTemplate=
"label">
89 <ng-container i18n
>This instance is dedicated to sensitive or NSFW content
</ng-container>
92 <ng-template ptTemplate=
"help">
94 Enabling it will allow other administrators to know that you are mainly federating sensitive content.
<br /><br />
95 Moreover, the NSFW checkbox on video upload will be automatically checked by default.
98 </my-peertube-checkbox>
101 <div class=
"form-group">
102 <label i18n
for=
"instanceDefaultNSFWPolicy">Policy on videos containing sensitive content
</label>
105 <ng-template ptTemplate=
"customHtml">
107 With
<strong>Hide
</strong> or
<strong>Blur thumbnails
</strong>, a confirmation will be requested to watch the video.
112 <div class=
"peertube-select-container">
113 <select id=
"instanceDefaultNSFWPolicy" formControlName=
"defaultNSFWPolicy" class=
"form-control">
114 <option i18n
value=
"undefined" disabled
>Policy for sensitive videos
</option>
115 <option i18n
value=
"do_not_list">Hide
</option>
116 <option i18n
value=
"blur">Blur thumbnails
</option>
117 <option i18n
value=
"display">Display
</option>
121 <div *
ngIf=
"formErrors.instance.defaultNSFWPolicy" class=
"form-error">{{ formErrors.instance.defaultNSFWPolicy }}
</div>
124 <div class=
"form-group">
125 <label i18n
for=
"instanceTerms">Terms
</label><my-help helpType=
"markdownText"></my-help>
127 <my-markdown-textarea
128 name=
"instanceTerms" formControlName=
"terms" textareaMaxWidth=
"500px"
129 [ngClass]=
"{ 'input-error': formErrors['instance.terms'] }"
130 ></my-markdown-textarea>
132 <div *
ngIf=
"formErrors.instance.terms" class=
"form-error">{{ formErrors.instance.terms }}
</div>
135 <div class=
"form-group">
136 <label i18n
for=
"instanceCodeOfConduct">Code of conduct
</label><my-help helpType=
"markdownText"></my-help>
138 <my-markdown-textarea
139 name=
"instanceCodeOfConduct" formControlName=
"codeOfConduct" textareaMaxWidth=
"500px"
140 [ngClass]=
"{ 'input-error': formErrors['instance.codeOfConduct'] }"
141 ></my-markdown-textarea>
143 <div *
ngIf=
"formErrors.instance.codeOfConduct" class=
"form-error">{{ formErrors.instance.codeOfConduct }}
</div>
146 <div class=
"form-group">
147 <label i18n
for=
"instanceModerationInformation">Moderation information
</label><my-help helpType=
"markdownText"></my-help>
148 <div i18n
class=
"label-small-info">Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
</div>
150 <my-markdown-textarea
151 name=
"instanceModerationInformation" formControlName=
"moderationInformation" textareaMaxWidth=
"500px"
152 [ngClass]=
"{ 'input-error': formErrors['instance.moderationInformation'] }"
153 ></my-markdown-textarea>
155 <div *
ngIf=
"formErrors.instance.moderationInformation" class=
"form-error">{{ formErrors.instance.moderationInformation }}
</div>
161 <div class=
"form-row mt-4"> <!-- you and your instance grid -->
162 <div class=
"form-group col-12 col-lg-4 col-xl-3">
163 <div i18n
class=
"inner-form-title">YOU AND YOUR INSTANCE
</div>
166 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
168 <div class=
"form-group">
169 <label i18n
for=
"instanceAdministrator">Who is behind the instance?
</label><my-help helpType=
"markdownText"></my-help>
170 <div i18n
class=
"label-small-info">A single person? A non-profit? A company?
</div>
172 <my-markdown-textarea
173 name=
"instanceAdministrator" formControlName=
"administrator" textareaMaxWidth=
"500px"
174 [classes]=
"{ 'input-error': formErrors['instance.administrator'] }"
175 ></my-markdown-textarea>
177 <div *
ngIf=
"formErrors.instance.administrator" class=
"form-error">{{ formErrors.instance.administrator }}
</div>
180 <div class=
"form-group">
181 <label i18n
for=
"instanceCreationReason">Why did you create this instance?
</label><my-help helpType=
"markdownText"></my-help>
182 <div i18n
class=
"label-small-info">To share your personal videos? To open registrations and allow people to upload what they want?
</div>
184 <my-markdown-textarea
185 name=
"instanceCreationReason" formControlName=
"creationReason" textareaMaxWidth=
"500px"
186 [ngClass]=
"{ 'input-error': formErrors['instance.creationReason'] }"
187 ></my-markdown-textarea>
189 <div *
ngIf=
"formErrors.instance.creationReason" class=
"form-error">{{ formErrors.instance.creationReason }}
</div>
192 <div class=
"form-group">
193 <label i18n
for=
"instanceMaintenanceLifetime">How long do you plan to maintain this instance?
</label><my-help helpType=
"markdownText"></my-help>
194 <div i18n
class=
"label-small-info">It's important to know for users who want to register on your instance
</div>
196 <my-markdown-textarea
197 name=
"instanceMaintenanceLifetime" formControlName=
"maintenanceLifetime" textareaMaxWidth=
"500px"
198 [ngClass]=
"{ 'input-error': formErrors['instance.maintenanceLifetime'] }"
199 ></my-markdown-textarea>
201 <div *
ngIf=
"formErrors.instance.maintenanceLifetime" class=
"form-error">{{ formErrors.instance.maintenanceLifetime }}
</div>
204 <div class=
"form-group">
205 <label i18n
for=
"instanceBusinessModel">How will you finance the PeerTube server?
</label><my-help helpType=
"markdownText"></my-help>
206 <div i18n
class=
"label-small-info">With your own funds? With user donations? Advertising?
</div>
208 <my-markdown-textarea
209 name=
"instanceBusinessModel" formControlName=
"businessModel" textareaMaxWidth=
"500px"
210 [ngClass]=
"{ 'input-error': formErrors['instance.businessModel'] }"
211 ></my-markdown-textarea>
213 <div *
ngIf=
"formErrors.instance.businessModel" class=
"form-error">{{ formErrors.instance.businessModel }}
</div>
219 <div class=
"form-row mt-4"> <!-- other information grid -->
220 <div class=
"form-group col-12 col-lg-4 col-xl-3">
221 <div i18n
class=
"inner-form-title">OTHER INFORMATION
</div>
224 <div class=
"form-group form-group-right col-12 col-lg-8 col-xl-9">
226 <div class=
"form-group">
227 <label i18n
for=
"instanceHardwareInformation">What server/hardware does the instance run on?
</label>
228 <div i18n
class=
"label-small-info">i.e.
2vCore
2GB RAM, a direct the link to the server you rent, etc.
</div>
230 <my-markdown-textarea
231 name=
"instanceHardwareInformation" formControlName=
"hardwareInformation" textareaMaxWidth=
"500px"
232 [classes]=
"{ 'input-error': formErrors['instance.hardwareInformation'] }"
233 ></my-markdown-textarea>
235 <div *
ngIf=
"formErrors.instance.hardwareInformation" class=
"form-error">{{ formErrors.instance.hardwareInformation }}
</div>