]>
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"> | |
8ee25e17 C |
35 | <label i18n for="instanceDescription">Description</label> |
36 | <div class="label-small-info"> | |
37 | <my-custom-markup-help></my-custom-markup-help> | |
38 | </div> | |
70e33515 | 39 | |
5f46d28c C |
40 | <my-markdown-textarea |
41 | name="instanceDescription" formControlName="description" textareaMaxWidth="500px" | |
8ee25e17 | 42 | [customMarkdownRenderer]="getCustomMarkdownRenderer()" |
5f46d28c C |
43 | [classes]="{ 'input-error': formErrors['instance.description'] }" |
44 | ></my-markdown-textarea> | |
70e33515 | 45 | |
5f46d28c C |
46 | <div *ngIf="formErrors.instance.description" class="form-error">{{ formErrors.instance.description }}</div> |
47 | </div> | |
48 | ||
49 | <div class="form-group"> | |
50 | <label i18n for="instanceCategories">Main instance categories</label> | |
51 | ||
52 | <div> | |
53 | <my-select-checkbox | |
54 | id="instanceCategories" | |
55 | formControlName="categories" [availableItems]="categoryItems" | |
56 | [selectableGroup]="false" | |
57 | i18n-placeholder placeholder="Add a new category" | |
58 | > | |
59 | </my-select-checkbox> | |
60 | </div> | |
61 | </div> | |
62 | ||
63 | <div class="form-group"> | |
64 | <label i18n for="instanceLanguages">Main languages you/your moderators speak</label> | |
65 | ||
66 | <div> | |
67 | <my-select-checkbox | |
68 | id="instanceLanguages" | |
69 | formControlName="languages" [availableItems]="languageItems" | |
70 | [selectableGroup]="false" | |
71 | i18n-placeholder placeholder="Add a new language" | |
72 | > | |
73 | </my-select-checkbox> | |
74 | </div> | |
75 | </div> | |
76 | ||
77 | </div> | |
78 | </div> | |
79 | ||
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. | |
85 | </div> | |
86 | </div> | |
87 | ||
88 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
89 | ||
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> | |
94 | </ng-template> | |
95 | ||
96 | <ng-template ptTemplate="help"> | |
97 | <ng-container i18n> | |
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. | |
100 | </ng-container> | |
101 | </ng-template> | |
102 | </my-peertube-checkbox> | |
103 | </div> | |
104 | ||
105 | <div class="form-group"> | |
106 | <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label> | |
107 | ||
108 | <my-help> | |
109 | <ng-template ptTemplate="customHtml"> | |
110 | <ng-container i18n> | |
2d6f28a2 | 111 | With <strong>Hide</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video. |
5f46d28c C |
112 | </ng-container> |
113 | </ng-template> | |
114 | </my-help> | |
115 | ||
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> | |
2d6f28a2 | 119 | <option i18n value="do_not_list">Hide</option> |
5f46d28c C |
120 | <option i18n value="blur">Blur thumbnails</option> |
121 | <option i18n value="display">Display</option> | |
122 | </select> | |
123 | </div> | |
70e33515 | 124 | |
5f46d28c C |
125 | <div *ngIf="formErrors.instance.defaultNSFWPolicy" class="form-error">{{ formErrors.instance.defaultNSFWPolicy }}</div> |
126 | </div> | |
127 | ||
128 | <div class="form-group"> | |
129 | <label i18n for="instanceTerms">Terms</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 130 | |
5f46d28c C |
131 | <my-markdown-textarea |
132 | name="instanceTerms" formControlName="terms" textareaMaxWidth="500px" | |
133 | [ngClass]="{ 'input-error': formErrors['instance.terms'] }" | |
134 | ></my-markdown-textarea> | |
70e33515 | 135 | |
5f46d28c C |
136 | <div *ngIf="formErrors.instance.terms" class="form-error">{{ formErrors.instance.terms }}</div> |
137 | </div> | |
138 | ||
139 | <div class="form-group"> | |
140 | <label i18n for="instanceCodeOfConduct">Code of conduct</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 141 | |
5f46d28c C |
142 | <my-markdown-textarea |
143 | name="instanceCodeOfConduct" formControlName="codeOfConduct" textareaMaxWidth="500px" | |
144 | [ngClass]="{ 'input-error': formErrors['instance.codeOfConduct'] }" | |
145 | ></my-markdown-textarea> | |
70e33515 | 146 | |
5f46d28c C |
147 | <div *ngIf="formErrors.instance.codeOfConduct" class="form-error">{{ formErrors.instance.codeOfConduct }}</div> |
148 | </div> | |
149 | ||
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> | |
153 | ||
154 | <my-markdown-textarea | |
155 | name="instanceModerationInformation" formControlName="moderationInformation" textareaMaxWidth="500px" | |
156 | [ngClass]="{ 'input-error': formErrors['instance.moderationInformation'] }" | |
157 | ></my-markdown-textarea> | |
70e33515 | 158 | |
5f46d28c C |
159 | <div *ngIf="formErrors.instance.moderationInformation" class="form-error">{{ formErrors.instance.moderationInformation }}</div> |
160 | </div> | |
161 | ||
162 | </div> | |
163 | </div> | |
164 | ||
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> | |
168 | </div> | |
169 | ||
170 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
171 | ||
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> | |
175 | ||
176 | <my-markdown-textarea | |
177 | name="instanceAdministrator" formControlName="administrator" textareaMaxWidth="500px" | |
178 | [classes]="{ 'input-error': formErrors['instance.administrator'] }" | |
179 | ></my-markdown-textarea> | |
180 | ||
181 | <div *ngIf="formErrors.instance.administrator" class="form-error">{{ formErrors.instance.administrator }}</div> | |
182 | </div> | |
183 | ||
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> | |
187 | ||
188 | <my-markdown-textarea | |
189 | name="instanceCreationReason" formControlName="creationReason" textareaMaxWidth="500px" | |
190 | [ngClass]="{ 'input-error': formErrors['instance.creationReason'] }" | |
191 | ></my-markdown-textarea> | |
70e33515 | 192 | |
5f46d28c C |
193 | <div *ngIf="formErrors.instance.creationReason" class="form-error">{{ formErrors.instance.creationReason }}</div> |
194 | </div> | |
195 | ||
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> | |
199 | ||
200 | <my-markdown-textarea | |
201 | name="instanceMaintenanceLifetime" formControlName="maintenanceLifetime" textareaMaxWidth="500px" | |
202 | [ngClass]="{ 'input-error': formErrors['instance.maintenanceLifetime'] }" | |
203 | ></my-markdown-textarea> | |
70e33515 | 204 | |
5f46d28c C |
205 | <div *ngIf="formErrors.instance.maintenanceLifetime" class="form-error">{{ formErrors.instance.maintenanceLifetime }}</div> |
206 | </div> | |
207 | ||
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> | |
211 | ||
212 | <my-markdown-textarea | |
213 | name="instanceBusinessModel" formControlName="businessModel" textareaMaxWidth="500px" | |
214 | [ngClass]="{ 'input-error': formErrors['instance.businessModel'] }" | |
215 | ></my-markdown-textarea> | |
70e33515 | 216 | |
5f46d28c C |
217 | <div *ngIf="formErrors.instance.businessModel" class="form-error">{{ formErrors.instance.businessModel }}</div> |
218 | </div> | |
219 | ||
220 | </div> | |
221 | </div> | |
222 | ||
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> | |
226 | </div> | |
227 | ||
228 | <div class="form-group form-group-right col-12 col-lg-8 col-xl-9"> | |
229 | ||
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> | |
233 | ||
234 | <my-markdown-textarea | |
235 | name="instanceHardwareInformation" formControlName="hardwareInformation" textareaMaxWidth="500px" | |
236 | [classes]="{ 'input-error': formErrors['instance.hardwareInformation'] }" | |
237 | ></my-markdown-textarea> | |
238 | ||
239 | <div *ngIf="formErrors.instance.hardwareInformation" class="form-error">{{ formErrors.instance.hardwareInformation }}</div> | |
240 | </div> | |
241 | ||
242 | </div> | |
243 | </div> | |
244 | ||
245 | </ng-container> | |
246 | ||
247 | </ng-container> |