]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
Split admin conf page
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / config / edit-custom-config / edit-instance-information.component.html
CommitLineData
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>
14 <input
15 type="text" id="instanceName" class="form-control"
16 formControlName="name" [ngClass]="{ 'input-error': formErrors.instance.name }"
17 >
18 <div *ngIf="formErrors.instance.name" class="form-error">{{ formErrors.instance.name }}</div>
19 </div>
20
21 <div class="form-group">
22 <label i18n for="instanceShortDescription">Short description</label>
23 <textarea
24 id="instanceShortDescription" formControlName="shortDescription" class="form-control small"
25 [ngClass]="{ 'input-error': formErrors['instance.shortDescription'] }"
26 ></textarea>
27 <div *ngIf="formErrors.instance.shortDescription" class="form-error">{{ formErrors.instance.shortDescription }}</div>
28 </div>
29
30 <div class="form-group">
31 <label i18n for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help>
32 <my-markdown-textarea
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>
37 </div>
38
39 <div class="form-group">
40 <label i18n for="instanceCategories">Main instance categories</label>
41
42 <div>
43 <my-select-checkbox
44 id="instanceCategories"
45 formControlName="categories" [availableItems]="categoryItems"
46 [selectableGroup]="false"
47 i18n-placeholder placeholder="Add a new category"
48 >
49 </my-select-checkbox>
50 </div>
51 </div>
52
53 <div class="form-group">
54 <label i18n for="instanceLanguages">Main languages you/your moderators speak</label>
55
56 <div>
57 <my-select-checkbox
58 id="instanceLanguages"
59 formControlName="languages" [availableItems]="languageItems"
60 [selectableGroup]="false"
61 i18n-placeholder placeholder="Add a new language"
62 >
63 </my-select-checkbox>
64 </div>
65 </div>
66
67 </div>
68 </div>
69
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.
75 </div>
76 </div>
77
78 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
79
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>
84 </ng-template>
85
86 <ng-template ptTemplate="help">
87 <ng-container i18n>
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.
90 </ng-container>
91 </ng-template>
92 </my-peertube-checkbox>
93 </div>
94
95 <div class="form-group">
96 <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label>
97
98 <my-help>
99 <ng-template ptTemplate="customHtml">
100 <ng-container i18n>
101 With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video.
102 </ng-container>
103 </ng-template>
104 </my-help>
105
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>
112 </select>
113 </div>
114 <div *ngIf="formErrors.instance.defaultNSFWPolicy" class="form-error">{{ formErrors.instance.defaultNSFWPolicy }}</div>
115 </div>
116
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>
124 </div>
125
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>
133 </div>
134
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>
138
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>
144 </div>
145
146 </div>
147 </div>
148
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>
152 </div>
153
154 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
155
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>
159
160 <my-markdown-textarea
161 name="instanceAdministrator" formControlName="administrator" textareaMaxWidth="500px"
162 [classes]="{ 'input-error': formErrors['instance.administrator'] }"
163 ></my-markdown-textarea>
164
165 <div *ngIf="formErrors.instance.administrator" class="form-error">{{ formErrors.instance.administrator }}</div>
166 </div>
167
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>
171
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>
177 </div>
178
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>
182
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>
188 </div>
189
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>
193
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>
199 </div>
200
201 </div>
202 </div>
203
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>
207 </div>
208
209 <div class="form-group form-group-right col-12 col-lg-8 col-xl-9">
210
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>
214
215 <my-markdown-textarea
216 name="instanceHardwareInformation" formControlName="hardwareInformation" textareaMaxWidth="500px"
217 [classes]="{ 'input-error': formErrors['instance.hardwareInformation'] }"
218 ></my-markdown-textarea>
219
220 <div *ngIf="formErrors.instance.hardwareInformation" class="form-error">{{ formErrors.instance.hardwareInformation }}</div>
221 </div>
222
223 </div>
224 </div>
225
226 </ng-container>
227
228</ng-container>