]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
Fix admin edition disabling feature
[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>
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>