diff options
Diffstat (limited to 'client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html')
-rw-r--r-- | client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html b/client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html new file mode 100644 index 000000000..6f19ede0a --- /dev/null +++ b/client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html | |||
@@ -0,0 +1,228 @@ | |||
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> | ||