]>
Commit | Line | Data |
---|---|---|
5f46d28c C |
1 | <ng-container [formGroup]="form"> |
2 | ||
3 | <ng-container formGroupName="instance"> | |
4 | ||
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> | |
8 | </div> | |
9 | ||
10 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
11 | ||
12 | <div class="form-group"> | |
13 | <label i18n for="instanceName">Name</label> | |
70e33515 | 14 | |
5f46d28c C |
15 | <input |
16 | type="text" id="instanceName" class="form-control" | |
17 | formControlName="name" [ngClass]="{ 'input-error': formErrors.instance.name }" | |
18 | > | |
70e33515 | 19 | |
5f46d28c C |
20 | <div *ngIf="formErrors.instance.name" class="form-error">{{ formErrors.instance.name }}</div> |
21 | </div> | |
22 | ||
23 | <div class="form-group"> | |
24 | <label i18n for="instanceShortDescription">Short description</label> | |
70e33515 | 25 | |
5f46d28c C |
26 | <textarea |
27 | id="instanceShortDescription" formControlName="shortDescription" class="form-control small" | |
28 | [ngClass]="{ 'input-error': formErrors['instance.shortDescription'] }" | |
29 | ></textarea> | |
70e33515 | 30 | |
5f46d28c C |
31 | <div *ngIf="formErrors.instance.shortDescription" class="form-error">{{ formErrors.instance.shortDescription }}</div> |
32 | </div> | |
33 | ||
34 | <div class="form-group"> | |
35 | <label i18n for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 36 | |
5f46d28c C |
37 | <my-markdown-textarea |
38 | name="instanceDescription" formControlName="description" textareaMaxWidth="500px" | |
39 | [classes]="{ 'input-error': formErrors['instance.description'] }" | |
40 | ></my-markdown-textarea> | |
70e33515 | 41 | |
5f46d28c C |
42 | <div *ngIf="formErrors.instance.description" class="form-error">{{ formErrors.instance.description }}</div> |
43 | </div> | |
44 | ||
45 | <div class="form-group"> | |
46 | <label i18n for="instanceCategories">Main instance categories</label> | |
47 | ||
48 | <div> | |
49 | <my-select-checkbox | |
50 | id="instanceCategories" | |
51 | formControlName="categories" [availableItems]="categoryItems" | |
52 | [selectableGroup]="false" | |
53 | i18n-placeholder placeholder="Add a new category" | |
54 | > | |
55 | </my-select-checkbox> | |
56 | </div> | |
57 | </div> | |
58 | ||
59 | <div class="form-group"> | |
60 | <label i18n for="instanceLanguages">Main languages you/your moderators speak</label> | |
61 | ||
62 | <div> | |
63 | <my-select-checkbox | |
64 | id="instanceLanguages" | |
65 | formControlName="languages" [availableItems]="languageItems" | |
66 | [selectableGroup]="false" | |
67 | i18n-placeholder placeholder="Add a new language" | |
68 | > | |
69 | </my-select-checkbox> | |
70 | </div> | |
71 | </div> | |
72 | ||
73 | </div> | |
74 | </div> | |
75 | ||
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. | |
81 | </div> | |
82 | </div> | |
83 | ||
84 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
85 | ||
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> | |
90 | </ng-template> | |
91 | ||
92 | <ng-template ptTemplate="help"> | |
93 | <ng-container i18n> | |
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. | |
96 | </ng-container> | |
97 | </ng-template> | |
98 | </my-peertube-checkbox> | |
99 | </div> | |
100 | ||
101 | <div class="form-group"> | |
102 | <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label> | |
103 | ||
104 | <my-help> | |
105 | <ng-template ptTemplate="customHtml"> | |
106 | <ng-container i18n> | |
107 | With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video. | |
108 | </ng-container> | |
109 | </ng-template> | |
110 | </my-help> | |
111 | ||
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">Do not list</option> | |
116 | <option i18n value="blur">Blur thumbnails</option> | |
117 | <option i18n value="display">Display</option> | |
118 | </select> | |
119 | </div> | |
70e33515 | 120 | |
5f46d28c C |
121 | <div *ngIf="formErrors.instance.defaultNSFWPolicy" class="form-error">{{ formErrors.instance.defaultNSFWPolicy }}</div> |
122 | </div> | |
123 | ||
124 | <div class="form-group"> | |
125 | <label i18n for="instanceTerms">Terms</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 126 | |
5f46d28c C |
127 | <my-markdown-textarea |
128 | name="instanceTerms" formControlName="terms" textareaMaxWidth="500px" | |
129 | [ngClass]="{ 'input-error': formErrors['instance.terms'] }" | |
130 | ></my-markdown-textarea> | |
70e33515 | 131 | |
5f46d28c C |
132 | <div *ngIf="formErrors.instance.terms" class="form-error">{{ formErrors.instance.terms }}</div> |
133 | </div> | |
134 | ||
135 | <div class="form-group"> | |
136 | <label i18n for="instanceCodeOfConduct">Code of conduct</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 137 | |
5f46d28c C |
138 | <my-markdown-textarea |
139 | name="instanceCodeOfConduct" formControlName="codeOfConduct" textareaMaxWidth="500px" | |
140 | [ngClass]="{ 'input-error': formErrors['instance.codeOfConduct'] }" | |
141 | ></my-markdown-textarea> | |
70e33515 | 142 | |
5f46d28c C |
143 | <div *ngIf="formErrors.instance.codeOfConduct" class="form-error">{{ formErrors.instance.codeOfConduct }}</div> |
144 | </div> | |
145 | ||
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> | |
149 | ||
150 | <my-markdown-textarea | |
151 | name="instanceModerationInformation" formControlName="moderationInformation" textareaMaxWidth="500px" | |
152 | [ngClass]="{ 'input-error': formErrors['instance.moderationInformation'] }" | |
153 | ></my-markdown-textarea> | |
70e33515 | 154 | |
5f46d28c C |
155 | <div *ngIf="formErrors.instance.moderationInformation" class="form-error">{{ formErrors.instance.moderationInformation }}</div> |
156 | </div> | |
157 | ||
158 | </div> | |
159 | </div> | |
160 | ||
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> | |
164 | </div> | |
165 | ||
166 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
167 | ||
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> | |
171 | ||
172 | <my-markdown-textarea | |
173 | name="instanceAdministrator" formControlName="administrator" textareaMaxWidth="500px" | |
174 | [classes]="{ 'input-error': formErrors['instance.administrator'] }" | |
175 | ></my-markdown-textarea> | |
176 | ||
177 | <div *ngIf="formErrors.instance.administrator" class="form-error">{{ formErrors.instance.administrator }}</div> | |
178 | </div> | |
179 | ||
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> | |
183 | ||
184 | <my-markdown-textarea | |
185 | name="instanceCreationReason" formControlName="creationReason" textareaMaxWidth="500px" | |
186 | [ngClass]="{ 'input-error': formErrors['instance.creationReason'] }" | |
187 | ></my-markdown-textarea> | |
70e33515 | 188 | |
5f46d28c C |
189 | <div *ngIf="formErrors.instance.creationReason" class="form-error">{{ formErrors.instance.creationReason }}</div> |
190 | </div> | |
191 | ||
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> | |
195 | ||
196 | <my-markdown-textarea | |
197 | name="instanceMaintenanceLifetime" formControlName="maintenanceLifetime" textareaMaxWidth="500px" | |
198 | [ngClass]="{ 'input-error': formErrors['instance.maintenanceLifetime'] }" | |
199 | ></my-markdown-textarea> | |
70e33515 | 200 | |
5f46d28c C |
201 | <div *ngIf="formErrors.instance.maintenanceLifetime" class="form-error">{{ formErrors.instance.maintenanceLifetime }}</div> |
202 | </div> | |
203 | ||
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> | |
207 | ||
208 | <my-markdown-textarea | |
209 | name="instanceBusinessModel" formControlName="businessModel" textareaMaxWidth="500px" | |
210 | [ngClass]="{ 'input-error': formErrors['instance.businessModel'] }" | |
211 | ></my-markdown-textarea> | |
70e33515 | 212 | |
5f46d28c C |
213 | <div *ngIf="formErrors.instance.businessModel" class="form-error">{{ formErrors.instance.businessModel }}</div> |
214 | </div> | |
215 | ||
216 | </div> | |
217 | </div> | |
218 | ||
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> | |
222 | </div> | |
223 | ||
224 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
225 | ||
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> | |
229 | ||
230 | <my-markdown-textarea | |
231 | name="instanceHardwareInformation" formControlName="hardwareInformation" textareaMaxWidth="500px" | |
232 | [classes]="{ 'input-error': formErrors['instance.hardwareInformation'] }" | |
233 | ></my-markdown-textarea> | |
234 | ||
235 | <div *ngIf="formErrors.instance.hardwareInformation" class="form-error">{{ formErrors.instance.hardwareInformation }}</div> | |
236 | </div> | |
237 | ||
238 | </div> | |
239 | </div> | |
240 | ||
241 | </ng-container> | |
242 | ||
243 | </ng-container> |