- let text = ''
-
- if (this.videoUploaded === true) {
- text = 'Your video was uploaded in your account and is private.' +
- ' But associated data (tags, description...) will be lost, are you sure you want to leave this page?'
- } else {
- text = 'Your video is not uploaded yet, are you sure you want to leave this page?'
- }
-
- return {
- canDeactivate: !this.isUploadingVideo,
- text
- }
- }
-
- fileChange () {
- this.uploadFirstStep()
- }
-
- checkForm () {
- this.forceCheck()
-
- return this.form.valid
- }
-
- cancelUpload () {
- if (this.videoUploadObservable !== null) {
- this.videoUploadObservable.unsubscribe()
- this.isUploadingVideo = false
- this.videoUploadPercents = 0
- this.videoUploadObservable = null
- this.notificationsService.info('Info', 'Upload cancelled')
- }
- }
-
- uploadFirstStep () {
- const videofile = this.videofileInput.nativeElement.files[0] as File
- if (!videofile) return
-
- // Cannot upload videos > 4GB for now
- if (videofile.size > 4 * 1024 * 1024 * 1024) {
- this.notificationsService.error('Error', 'We are sorry but PeerTube cannot handle videos > 4GB')
- return
- }
-
- const videoQuota = this.authService.getUser().videoQuota
- if (videoQuota !== -1 && (this.userVideoQuotaUsed + videofile.size) > videoQuota) {
- const bytePipes = new BytesPipe()
-
- const msg = 'Your video quota is exceeded with this video ' +
- `(video size: ${bytePipes.transform(videofile.size, 0)}, ` +
- `used: ${bytePipes.transform(this.userVideoQuotaUsed, 0)}, ` +
- `quota: ${bytePipes.transform(videoQuota, 0)})`
- this.notificationsService.error('Error', msg)
- return
- }
-
- this.videoFileName = videofile.name
-
- const nameWithoutExtension = videofile.name.replace(/\.[^/.]+$/, '')
- let name: string
-
- // If the name of the file is very small, keep the extension
- if (nameWithoutExtension.length < 3) {
- name = videofile.name
- } else {
- name = nameWithoutExtension
- }
-
- const privacy = this.firstStepPrivacyId.toString()
- const nsfw = false
- const commentsEnabled = true
- const channelId = this.firstStepChannelId.toString()