]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
Implement daily upload limit (#956)
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / config / edit-custom-config / edit-custom-config.component.ts
index e614c1892a2abcc4f15927037b3f123fa734754a..3b6dabcb956b86b04563232ec1d1be6ac8e764a9 100644 (file)
@@ -15,10 +15,7 @@ import { BuildFormDefaultValues, FormValidatorService } from '@app/shared/forms/
   styleUrls: [ './edit-custom-config.component.scss' ]
 })
 export class EditCustomConfigComponent extends FormReactive implements OnInit {
-  customConfig: CustomConfig
-  resolutions = [ '240p', '360p', '480p', '720p', '1080p' ]
-
-  videoQuotaOptions = [
+  static videoQuotaOptions = [
     { value: -1, label: 'Unlimited' },
     { value: 0, label: '0' },
     { value: 100 * 1024 * 1024, label: '100MB' },
@@ -28,6 +25,20 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
     { value: 20 * 1024 * 1024 * 1024, label: '20GB' },
     { value: 50 * 1024 * 1024 * 1024, label: '50GB' }
   ]
+  static videoQuotaDailyOptions = [
+    { value: -1, label: 'Unlimited' },
+    { value: 0, label: '0' },
+    { value: 10 * 1024 * 1024, label: '10MB' },
+    { value: 50 * 1024 * 1024, label: '50MB' },
+    { value: 100 * 1024 * 1024, label: '100MB' },
+    { value: 500 * 1024 * 1024, label: '500MB' },
+    { value: 2 * 1024 * 1024 * 1024, label: '2GB' },
+    { value: 5 * 1024 * 1024 * 1024, label: '5GB' }
+  ]
+
+  customConfig: CustomConfig
+  resolutions = [ '240p', '360p', '480p', '720p', '1080p' ]
+
   transcodingThreadOptions = [
     { value: 0, label: 'Auto (via ffmpeg)' },
     { value: 1, label: '1' },
@@ -71,8 +82,11 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
       cacheCaptionsSize: this.customConfigValidatorsService.CACHE_CAPTIONS_SIZE,
       signupEnabled: null,
       signupLimit: this.customConfigValidatorsService.SIGNUP_LIMIT,
+      importVideosHttpEnabled: null,
+      importVideosTorrentEnabled: null,
       adminEmail: this.customConfigValidatorsService.ADMIN_EMAIL,
       userVideoQuota: this.userValidatorsService.USER_VIDEO_QUOTA,
+      userVideoQuotaDaily: this.userValidatorsService.USER_VIDEO_QUOTA_DAILY,
       transcodingThreads: this.customConfigValidatorsService.TRANSCODING_THREADS,
       transcodingEnabled: null,
       customizationJavascript: null,
@@ -171,7 +185,8 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
         email: this.form.value['adminEmail']
       },
       user: {
-        videoQuota: this.form.value['userVideoQuota']
+        videoQuota: this.form.value['userVideoQuota'],
+        videoQuotaDaily: this.form.value['userVideoQuotaDaily']
       },
       transcoding: {
         enabled: this.form.value['transcodingEnabled'],
@@ -183,6 +198,16 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
           '720p': this.form.value[this.getResolutionKey('720p')],
           '1080p': this.form.value[this.getResolutionKey('1080p')]
         }
+      },
+      import: {
+        videos: {
+          http: {
+            enabled: this.form.value['importVideosHttpEnabled']
+          },
+          torrent: {
+            enabled: this.form.value['importVideosTorrentEnabled']
+          }
+        }
       }
     }
 
@@ -219,10 +244,13 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
       signupLimit: this.customConfig.signup.limit,
       adminEmail: this.customConfig.admin.email,
       userVideoQuota: this.customConfig.user.videoQuota,
+      userVideoQuotaDaily: this.customConfig.user.videoQuotaDaily,
       transcodingThreads: this.customConfig.transcoding.threads,
       transcodingEnabled: this.customConfig.transcoding.enabled,
       customizationJavascript: this.customConfig.instance.customizations.javascript,
-      customizationCSS: this.customConfig.instance.customizations.css
+      customizationCSS: this.customConfig.instance.customizations.css,
+      importVideosHttpEnabled: this.customConfig.import.videos.http.enabled,
+      importVideosTorrentEnabled: this.customConfig.import.videos.torrent.enabled
     }
 
     for (const resolution of this.resolutions) {