mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-03 17:59:37 +02:00
Merge branch 'release/7.2.0' into develop
This commit is contained in:
commit
a60eeeff60
5 changed files with 46 additions and 16 deletions
32
CHANGELOG.md
32
CHANGELOG.md
|
@ -1,5 +1,37 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v7.2.2
|
||||||
|
|
||||||
|
### SECURITY
|
||||||
|
|
||||||
|
* Prevent ReDOS from `useragent` package by removing deprecated Do Not Track feature. Thanks to Patrick Bohn Matthiesen and [Leonora](https://github.com/herover) from IT University of Copenhagen for reporting this vulnerability!
|
||||||
|
|
||||||
|
### Bug fixes
|
||||||
|
|
||||||
|
* Correctly display bulk actions button in "My videos"
|
||||||
|
* Keep playlist name original casing in "My videos"
|
||||||
|
* Fix PIP button z-index on Firefox
|
||||||
|
* More robust S3 upload and ACL error handler
|
||||||
|
* Fix broken video state on S3 move failure
|
||||||
|
* Reset filters when loading query params in "Browse videos"
|
||||||
|
* Fix upload tab title when the file is uploaded
|
||||||
|
* Fix follow card overflow in about page
|
||||||
|
* Convert to full UUID request param `id` in `filter:html.embed.video.allowed.result` and `filter:html.embed.video-playlist.allowed.result` plugin hooks
|
||||||
|
* Fix HLS playback issue on Chrome 138
|
||||||
|
* Fix selecting frame on Safari
|
||||||
|
* Fix input search with multiple prefix tokens
|
||||||
|
* Fix channel sync duplicate after video deletion
|
||||||
|
* Fix caption raw edition when editing segment
|
||||||
|
* Fix accessibility issues:
|
||||||
|
* Fix embed title/avatar accessibility
|
||||||
|
* Add player P2P up/down info aria label
|
||||||
|
* Support escape key in the player settings menu
|
||||||
|
* Support arrow left/right navigation in the settings menu
|
||||||
|
* Fix entry focus when navigating in the settings menu
|
||||||
|
* Add aria controls attribute to settings button
|
||||||
|
* Thanks to [Woebin](https://github.com/Woebin) from [Access Lab](https://axesslab.com/) and [HowlRound Theatre Commons](https://howlround.com/) for conducting the player accessibility audit!
|
||||||
|
|
||||||
|
|
||||||
## v7.2.1
|
## v7.2.1
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "peertube-client",
|
"name": "peertube-client",
|
||||||
"version": "7.2.1",
|
"version": "7.2.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"author": {
|
"author": {
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import { NgClass, NgIf } from '@angular/common'
|
import { NgClass, NgIf } from '@angular/common'
|
||||||
import { ChangeDetectorRef, Component, ElementRef, OnInit, inject, viewChild } from '@angular/core'
|
import { ChangeDetectorRef, Component, ElementRef, OnInit, inject, viewChild } from '@angular/core'
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
|
||||||
|
import { VideoCaptionEdit, VideoCaptionWithPathEdit } from '@app/+videos-publish-manage/shared-manage/common/video-caption-edit.model'
|
||||||
import { VIDEO_CAPTION_FILE_CONTENT_VALIDATOR } from '@app/shared/form-validators/video-captions-validators'
|
import { VIDEO_CAPTION_FILE_CONTENT_VALIDATOR } from '@app/shared/form-validators/video-captions-validators'
|
||||||
import { FormReactive } from '@app/shared/shared-forms/form-reactive'
|
import { FormReactive } from '@app/shared/shared-forms/form-reactive'
|
||||||
import { FormReactiveService } from '@app/shared/shared-forms/form-reactive.service'
|
import { FormReactiveService } from '@app/shared/shared-forms/form-reactive.service'
|
||||||
import { PeertubeCheckboxComponent } from '@app/shared/shared-forms/peertube-checkbox.component'
|
import { PeertubeCheckboxComponent } from '@app/shared/shared-forms/peertube-checkbox.component'
|
||||||
import { TimestampInputComponent } from '@app/shared/shared-forms/timestamp-input.component'
|
import { TimestampInputComponent } from '@app/shared/shared-forms/timestamp-input.component'
|
||||||
import { VideoCaptionEdit, VideoCaptionWithPathEdit } from '@app/+videos-publish-manage/shared-manage/common/video-caption-edit.model'
|
|
||||||
import { VideoCaptionService } from '@app/shared/shared-main/video-caption/video-caption.service'
|
import { VideoCaptionService } from '@app/shared/shared-main/video-caption/video-caption.service'
|
||||||
import { EmbedComponent } from '@app/shared/shared-main/video/embed.component'
|
import { EmbedComponent } from '@app/shared/shared-main/video/embed.component'
|
||||||
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'
|
||||||
|
@ -107,6 +107,10 @@ export class VideoCaptionEditModalComponent extends FormReactive implements OnIn
|
||||||
this.videoEdit = options.videoEdit
|
this.videoEdit = options.videoEdit
|
||||||
this.captionEdited = options.captionEdited
|
this.captionEdited = options.captionEdited
|
||||||
|
|
||||||
|
this.rawEdit = false
|
||||||
|
this.segments = []
|
||||||
|
this.segmentToUpdate = undefined
|
||||||
|
|
||||||
this.openedModal = this.modalService.open(this.modal(), {
|
this.openedModal = this.modalService.open(this.modal(), {
|
||||||
centered: true,
|
centered: true,
|
||||||
size: 'xl',
|
size: 'xl',
|
||||||
|
@ -180,6 +184,7 @@ export class VideoCaptionEditModalComponent extends FormReactive implements OnIn
|
||||||
|
|
||||||
onRawEditSwitch () {
|
onRawEditSwitch () {
|
||||||
if (this.rawEdit === true) {
|
if (this.rawEdit === true) {
|
||||||
|
this.segmentToUpdate = undefined
|
||||||
this.form.patchValue({ captionFileContent: this.formatSegments() })
|
this.form.patchValue({ captionFileContent: this.formatSegments() })
|
||||||
this.resetTextarea()
|
this.resetTextarea()
|
||||||
} else {
|
} else {
|
||||||
|
@ -336,6 +341,7 @@ export class VideoCaptionEditModalComponent extends FormReactive implements OnIn
|
||||||
|
|
||||||
updateCaption () {
|
updateCaption () {
|
||||||
if (this.segmentToUpdate) {
|
if (this.segmentToUpdate) {
|
||||||
|
console.log(this.segmentToUpdate)
|
||||||
this.notifier.error($localize`A segment is being edited. Save or cancel your edits first.`)
|
this.notifier.error($localize`A segment is being edited. Save or cancel your edits first.`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "peertube",
|
"name": "peertube",
|
||||||
"description": "PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.",
|
"description": "PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.",
|
||||||
"version": "7.2.1",
|
"version": "7.2.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"licence": "AGPL-3.0",
|
"licence": "AGPL-3.0",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
|
@ -12,7 +12,8 @@ import {
|
||||||
Default,
|
Default,
|
||||||
DefaultScope,
|
DefaultScope,
|
||||||
ForeignKey,
|
ForeignKey,
|
||||||
Is, Table,
|
Is,
|
||||||
|
Table,
|
||||||
UpdatedAt
|
UpdatedAt
|
||||||
} from 'sequelize-typescript'
|
} from 'sequelize-typescript'
|
||||||
import { isVideoImportStateValid, isVideoImportTargetUrlValid } from '../../helpers/custom-validators/video-imports.js'
|
import { isVideoImportStateValid, isVideoImportTargetUrlValid } from '../../helpers/custom-validators/video-imports.js'
|
||||||
|
@ -47,7 +48,6 @@ const defaultVideoScope = () => {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}))
|
}))
|
||||||
|
|
||||||
@Table({
|
@Table({
|
||||||
tableName: 'videoImport',
|
tableName: 'videoImport',
|
||||||
indexes: [
|
indexes: [
|
||||||
|
@ -214,17 +214,9 @@ export class VideoImportModel extends SequelizeModel<VideoImportModel> {
|
||||||
targetUrl,
|
targetUrl,
|
||||||
state: {
|
state: {
|
||||||
[Op.in]: [ VideoImportState.PENDING, VideoImportState.PROCESSING, VideoImportState.SUCCESS ]
|
[Op.in]: [ VideoImportState.PENDING, VideoImportState.PROCESSING, VideoImportState.SUCCESS ]
|
||||||
}
|
|
||||||
},
|
},
|
||||||
include: [
|
videoChannelSyncId: channelId
|
||||||
{
|
|
||||||
model: VideoModel,
|
|
||||||
required: true,
|
|
||||||
where: {
|
|
||||||
channelId
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return !!element
|
return !!element
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue