peertube-theme-nctv-dark/peertube-plugin-hello-world/client/video-edit-client-plugin.js
2021-06-30 16:45:16 +02:00

69 lines
1.6 KiB
JavaScript

function register ({ registerHook, registerVideoField }) {
console.log('loading video edit stuff')
{
const commonOptions1 = {
name: 'hello-world-field',
label: 'Super field',
type: 'input',
default: 'hello'
}
const commonOptions2 = {
name: 'hello-world-field-2',
label: 'Super field 2',
type: 'input',
hidden: ({ liveVideo, videoToUpdate, formValues }) => {
console.log('check hidden field', { videoToUpdate, liveVideo, formValues })
return formValues.pluginData['hello-world-field'] === 'toto'
}
}
const commonOptions3 = {
name: 'hello-world-field-3',
label: 'Super field 3',
type: 'input-checkbox'
}
for (const type of [ 'upload', 'import-url', 'update' ]) {
registerVideoField(commonOptions1, { type })
registerVideoField(commonOptions2, { type })
registerVideoField(commonOptions3, { type })
}
}
{
const hooks = [
'action:video-upload.init',
'action:video-url-import.init',
'action:video-torrent-import.init',
'action:go-live.init'
]
for (const h of hooks) {
registerHook({
target: h,
handler: () => {
const event = new Event('change', {
bubbles: true,
cancelable: true,
});
const selects = document.querySelectorAll('label[for=first-step-privacy] + my-select-options')
console.log(selects)
selects.forEach(s => {
s.value = 2 // Unlisted
s.dispatchEvent(event)
})
}
})
}
}
}
export {
register
}