]>
Commit | Line | Data |
---|---|---|
5f46d28c C |
1 | <ng-container [formGroup]="form"> |
2 | ||
3 | <ng-container formGroupName="instance"> | |
4 | ||
4c8749cb C |
5 | <div class="row mt-5"> <!-- instance grid --> |
6 | <div class="col-12 col-lg-4 col-xl-3"> | |
5f46d28c C |
7 | <div i18n class="inner-form-title">INSTANCE</div> |
8 | </div> | |
9 | ||
4c8749cb | 10 | <div class="col-12 col-lg-8 col-xl-9"> |
5f46d28c C |
11 | <div class="form-group"> |
12 | <label i18n for="instanceName">Name</label> | |
70e33515 | 13 | |
5f46d28c C |
14 | <input |
15 | type="text" id="instanceName" class="form-control" | |
16 | formControlName="name" [ngClass]="{ 'input-error': formErrors.instance.name }" | |
17 | > | |
70e33515 | 18 | |
5f46d28c C |
19 | <div *ngIf="formErrors.instance.name" class="form-error">{{ formErrors.instance.name }}</div> |
20 | </div> | |
21 | ||
22 | <div class="form-group"> | |
23 | <label i18n for="instanceShortDescription">Short description</label> | |
70e33515 | 24 | |
5f46d28c C |
25 | <textarea |
26 | id="instanceShortDescription" formControlName="shortDescription" class="form-control small" | |
27 | [ngClass]="{ 'input-error': formErrors['instance.shortDescription'] }" | |
28 | ></textarea> | |
70e33515 | 29 | |
5f46d28c C |
30 | <div *ngIf="formErrors.instance.shortDescription" class="form-error">{{ formErrors.instance.shortDescription }}</div> |
31 | </div> | |
32 | ||
33 | <div class="form-group"> | |
8ee25e17 C |
34 | <label i18n for="instanceDescription">Description</label> |
35 | <div class="label-small-info"> | |
36 | <my-custom-markup-help></my-custom-markup-help> | |
37 | </div> | |
70e33515 | 38 | |
5f46d28c C |
39 | <my-markdown-textarea |
40 | name="instanceDescription" formControlName="description" textareaMaxWidth="500px" | |
8ee25e17 | 41 | [customMarkdownRenderer]="getCustomMarkdownRenderer()" |
5f46d28c C |
42 | [classes]="{ 'input-error': formErrors['instance.description'] }" |
43 | ></my-markdown-textarea> | |
70e33515 | 44 | |
5f46d28c C |
45 | <div *ngIf="formErrors.instance.description" class="form-error">{{ formErrors.instance.description }}</div> |
46 | </div> | |
47 | ||
48 | <div class="form-group"> | |
49 | <label i18n for="instanceCategories">Main instance categories</label> | |
50 | ||
51 | <div> | |
52 | <my-select-checkbox | |
53 | id="instanceCategories" | |
54 | formControlName="categories" [availableItems]="categoryItems" | |
55 | [selectableGroup]="false" | |
56 | i18n-placeholder placeholder="Add a new category" | |
57 | > | |
58 | </my-select-checkbox> | |
59 | </div> | |
60 | </div> | |
61 | ||
62 | <div class="form-group"> | |
63 | <label i18n for="instanceLanguages">Main languages you/your moderators speak</label> | |
64 | ||
65 | <div> | |
66 | <my-select-checkbox | |
67 | id="instanceLanguages" | |
68 | formControlName="languages" [availableItems]="languageItems" | |
69 | [selectableGroup]="false" | |
70 | i18n-placeholder placeholder="Add a new language" | |
71 | > | |
72 | </my-select-checkbox> | |
73 | </div> | |
74 | </div> | |
75 | ||
76 | </div> | |
77 | </div> | |
78 | ||
4c8749cb C |
79 | <div class="row mt-4"> <!-- moderation & nsfw grid --> |
80 | <div class="col-12 col-lg-4 col-xl-3"> | |
5f46d28c | 81 | <div i18n class="inner-form-title">MODERATION & NSFW</div> |
5b0ec7cd C |
82 | <div i18row="inner-form-description"> |
83 | Manage <a class="link-orange" routerLink="/admin/users">users</a> to build a moderation team. | |
5f46d28c C |
84 | </div> |
85 | </div> | |
86 | ||
4c8749cb | 87 | <div class="col-12 col-lg-8 col-xl-9"> |
5f46d28c C |
88 | <div class="form-group"> |
89 | <my-peertube-checkbox inputName="instanceIsNSFW" formControlName="isNSFW"> | |
90 | <ng-template ptTemplate="label"> | |
91 | <ng-container i18n>This instance is dedicated to sensitive or NSFW content</ng-container> | |
92 | </ng-template> | |
93 | ||
94 | <ng-template ptTemplate="help"> | |
95 | <ng-container i18n> | |
96 | Enabling it will allow other administrators to know that you are mainly federating sensitive content.<br /><br /> | |
97 | Moreover, the NSFW checkbox on video upload will be automatically checked by default. | |
98 | </ng-container> | |
99 | </ng-template> | |
100 | </my-peertube-checkbox> | |
101 | </div> | |
102 | ||
103 | <div class="form-group"> | |
104 | <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label> | |
105 | ||
106 | <my-help> | |
107 | <ng-template ptTemplate="customHtml"> | |
108 | <ng-container i18n> | |
2d6f28a2 | 109 | With <strong>Hide</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video. |
5f46d28c C |
110 | </ng-container> |
111 | </ng-template> | |
112 | </my-help> | |
113 | ||
114 | <div class="peertube-select-container"> | |
115 | <select id="instanceDefaultNSFWPolicy" formControlName="defaultNSFWPolicy" class="form-control"> | |
116 | <option i18n value="undefined" disabled>Policy for sensitive videos</option> | |
2d6f28a2 | 117 | <option i18n value="do_not_list">Hide</option> |
5f46d28c C |
118 | <option i18n value="blur">Blur thumbnails</option> |
119 | <option i18n value="display">Display</option> | |
120 | </select> | |
121 | </div> | |
70e33515 | 122 | |
5f46d28c C |
123 | <div *ngIf="formErrors.instance.defaultNSFWPolicy" class="form-error">{{ formErrors.instance.defaultNSFWPolicy }}</div> |
124 | </div> | |
125 | ||
126 | <div class="form-group"> | |
127 | <label i18n for="instanceTerms">Terms</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 128 | |
5f46d28c C |
129 | <my-markdown-textarea |
130 | name="instanceTerms" formControlName="terms" textareaMaxWidth="500px" | |
131 | [ngClass]="{ 'input-error': formErrors['instance.terms'] }" | |
132 | ></my-markdown-textarea> | |
70e33515 | 133 | |
5f46d28c C |
134 | <div *ngIf="formErrors.instance.terms" class="form-error">{{ formErrors.instance.terms }}</div> |
135 | </div> | |
136 | ||
137 | <div class="form-group"> | |
138 | <label i18n for="instanceCodeOfConduct">Code of conduct</label><my-help helpType="markdownText"></my-help> | |
70e33515 | 139 | |
5f46d28c C |
140 | <my-markdown-textarea |
141 | name="instanceCodeOfConduct" formControlName="codeOfConduct" textareaMaxWidth="500px" | |
142 | [ngClass]="{ 'input-error': formErrors['instance.codeOfConduct'] }" | |
143 | ></my-markdown-textarea> | |
70e33515 | 144 | |
5f46d28c C |
145 | <div *ngIf="formErrors.instance.codeOfConduct" class="form-error">{{ formErrors.instance.codeOfConduct }}</div> |
146 | </div> | |
147 | ||
148 | <div class="form-group"> | |
149 | <label i18n for="instanceModerationInformation">Moderation information</label><my-help helpType="markdownText"></my-help> | |
150 | <div i18n class="label-small-info">Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc</div> | |
151 | ||
152 | <my-markdown-textarea | |
153 | name="instanceModerationInformation" formControlName="moderationInformation" textareaMaxWidth="500px" | |
154 | [ngClass]="{ 'input-error': formErrors['instance.moderationInformation'] }" | |
155 | ></my-markdown-textarea> | |
70e33515 | 156 | |
5f46d28c C |
157 | <div *ngIf="formErrors.instance.moderationInformation" class="form-error">{{ formErrors.instance.moderationInformation }}</div> |
158 | </div> | |
159 | ||
160 | </div> | |
161 | </div> | |
162 | ||
4c8749cb C |
163 | <div class="row mt-4"> <!-- you and your instance grid --> |
164 | <div class="col-12 col-lg-4 col-xl-3"> | |
5f46d28c C |
165 | <div i18n class="inner-form-title">YOU AND YOUR INSTANCE</div> |
166 | </div> | |
167 | ||
4c8749cb | 168 | <div class="col-12 col-lg-8 col-xl-9"> |
5f46d28c C |
169 | |
170 | <div class="form-group"> | |
171 | <label i18n for="instanceAdministrator">Who is behind the instance?</label><my-help helpType="markdownText"></my-help> | |
172 | <div i18n class="label-small-info">A single person? A non-profit? A company?</div> | |
173 | ||
174 | <my-markdown-textarea | |
175 | name="instanceAdministrator" formControlName="administrator" textareaMaxWidth="500px" | |
176 | [classes]="{ 'input-error': formErrors['instance.administrator'] }" | |
177 | ></my-markdown-textarea> | |
178 | ||
179 | <div *ngIf="formErrors.instance.administrator" class="form-error">{{ formErrors.instance.administrator }}</div> | |
180 | </div> | |
181 | ||
182 | <div class="form-group"> | |
183 | <label i18n for="instanceCreationReason">Why did you create this instance?</label><my-help helpType="markdownText"></my-help> | |
184 | <div i18n class="label-small-info">To share your personal videos? To open registrations and allow people to upload what they want?</div> | |
185 | ||
186 | <my-markdown-textarea | |
187 | name="instanceCreationReason" formControlName="creationReason" textareaMaxWidth="500px" | |
188 | [ngClass]="{ 'input-error': formErrors['instance.creationReason'] }" | |
189 | ></my-markdown-textarea> | |
70e33515 | 190 | |
5f46d28c C |
191 | <div *ngIf="formErrors.instance.creationReason" class="form-error">{{ formErrors.instance.creationReason }}</div> |
192 | </div> | |
193 | ||
194 | <div class="form-group"> | |
195 | <label i18n for="instanceMaintenanceLifetime">How long do you plan to maintain this instance?</label><my-help helpType="markdownText"></my-help> | |
196 | <div i18n class="label-small-info">It's important to know for users who want to register on your instance</div> | |
197 | ||
198 | <my-markdown-textarea | |
199 | name="instanceMaintenanceLifetime" formControlName="maintenanceLifetime" textareaMaxWidth="500px" | |
200 | [ngClass]="{ 'input-error': formErrors['instance.maintenanceLifetime'] }" | |
201 | ></my-markdown-textarea> | |
70e33515 | 202 | |
5f46d28c C |
203 | <div *ngIf="formErrors.instance.maintenanceLifetime" class="form-error">{{ formErrors.instance.maintenanceLifetime }}</div> |
204 | </div> | |
205 | ||
206 | <div class="form-group"> | |
207 | <label i18n for="instanceBusinessModel">How will you finance the PeerTube server?</label><my-help helpType="markdownText"></my-help> | |
208 | <div i18n class="label-small-info">With your own funds? With user donations? Advertising?</div> | |
209 | ||
210 | <my-markdown-textarea | |
211 | name="instanceBusinessModel" formControlName="businessModel" textareaMaxWidth="500px" | |
212 | [ngClass]="{ 'input-error': formErrors['instance.businessModel'] }" | |
213 | ></my-markdown-textarea> | |
70e33515 | 214 | |
5f46d28c C |
215 | <div *ngIf="formErrors.instance.businessModel" class="form-error">{{ formErrors.instance.businessModel }}</div> |
216 | </div> | |
217 | ||
218 | </div> | |
219 | </div> | |
220 | ||
4c8749cb C |
221 | <div class="row mt-4"> <!-- other information grid --> |
222 | <div class="col-12 col-lg-4 col-xl-3"> | |
5f46d28c C |
223 | <div i18n class="inner-form-title">OTHER INFORMATION</div> |
224 | </div> | |
225 | ||
4c8749cb | 226 | <div class="col-12 col-lg-8 col-xl-9"> |
5f46d28c C |
227 | |
228 | <div class="form-group"> | |
229 | <label i18n for="instanceHardwareInformation">What server/hardware does the instance run on?</label> | |
230 | <div i18n class="label-small-info">i.e. 2vCore 2GB RAM, a direct the link to the server you rent, etc.</div> | |
231 | ||
232 | <my-markdown-textarea | |
233 | name="instanceHardwareInformation" formControlName="hardwareInformation" textareaMaxWidth="500px" | |
234 | [classes]="{ 'input-error': formErrors['instance.hardwareInformation'] }" | |
235 | ></my-markdown-textarea> | |
236 | ||
237 | <div *ngIf="formErrors.instance.hardwareInformation" class="form-error">{{ formErrors.instance.hardwareInformation }}</div> | |
238 | </div> | |
239 | ||
240 | </div> | |
241 | </div> | |
242 | ||
243 | </ng-container> | |
244 | ||
245 | </ng-container> |