diff --git a/pandora/config.padma.jsonc b/pandora/config.padma.jsonc index 3bd3b748..82fe120c 100644 --- a/pandora/config.padma.jsonc +++ b/pandora/config.padma.jsonc @@ -56,6 +56,7 @@ "canExportAnnotations": {"member": true, "staff": true, "admin": true}, "canImportAnnotations": {"member": true, "staff": true, "admin": true}, "canImportItems": {"member": true, "staff": true, "admin": true}, + "canTranscribeAudio": {"staff": true, "admin": true}, "canManageDocuments": {"member": true, "staff": true, "admin": true}, "canManageEntities": {"member": true, "staff": true, "admin": true}, "canManageHome": {"staff": true, "admin": true}, diff --git a/pandora/config.pandora.jsonc b/pandora/config.pandora.jsonc index 51aaee24..5f08873f 100644 --- a/pandora/config.pandora.jsonc +++ b/pandora/config.pandora.jsonc @@ -63,6 +63,7 @@ examples (config.SITENAME.jsonc) that are part of this pan.do/ra distribution. "canExportAnnotations": {"member": true, "staff": true, "admin": true}, "canImportAnnotations": {"member": true, "staff": true, "admin": true}, "canImportItems": {"member": true, "staff": true, "admin": true}, + "canTranscribeAudio": {}, "canManageDocuments": {"member": true, "staff": true, "admin": true}, "canManageEntities": {"member": true, "staff": true, "admin": true}, "canManageHome": {"staff": true, "admin": true}, diff --git a/static/js/editor.js b/static/js/editor.js index 19a9f99e..82a75344 100644 --- a/static/js/editor.js +++ b/static/js/editor.js @@ -27,6 +27,7 @@ pandora.ui.editor = function(data) { enableDownload: pandora.hasCapability('canDownloadVideo') >= data.rightslevel || data.editable, enableExport: pandora.hasCapability('canExportAnnotations') || data.editable, enableImport: pandora.hasCapability('canImportAnnotations') || data.editable, + enableTranscribe: pandora.hasCapability('canTranscribeAudio') && data.editable, enableSetPosterFrame: !pandora.site.media.importFrames && data.editable, enableSubtitles: ui.videoSubtitles, find: ui.itemFind, @@ -432,6 +433,42 @@ pandora.ui.editor = function(data) { togglesize: function(data) { pandora.UI.set({videoSize: data.size}); }, + transcribeaudio: function() { + const $dialog = pandora.ui.iconDialog({ + buttons: [ + Ox.Button({ + id: 'cancel', + title: Ox._('Cancel') + }) + .bindEvent({ + click: function() { + $dialog.close(); + } + }), + Ox.Button({ + id: 'transcribe', + title: Ox._('Transcribe Audio') + }) + .bindEvent({ + click: function() { + $dialog.close(); + pandora.api.transcribeAudio({ + item: pandora.user.ui.item + }) + } + }) + ], + content: Ox._( + 'Are you sure you want to add automated transcription to "{0}"', + [data.title] + ), + keys: {enter: 'transcribe', escape: 'cancel'}, + title: Ox._( + 'Transcribe {0} {1}', [data.title] + ) + }); + $dialog.open() + }, pandora_showannotations: function(data) { that.options({showAnnotations: data.value}); },