Merge pull request #32024 from open-craft/chris/FAL-3383-new-video-editor-flow
[FAL-3383] feat: New waffleflag to enable or disable new video editor flow
This commit is contained in:
@@ -122,6 +122,24 @@ def use_new_video_editor():
|
||||
return ENABLE_NEW_VIDEO_EDITOR_FLAG.is_enabled()
|
||||
|
||||
|
||||
# .. toggle_name: new_core_editors.use_video_gallery_flow
|
||||
# .. toggle_implementation: WaffleFlag
|
||||
# .. toggle_default: False
|
||||
# .. toggle_description: This flag enables the use the video selection gallery on the flow of the new core video xblock editor
|
||||
# .. toggle_use_cases: temporary
|
||||
# .. toggle_creation_date: 2023-04-03
|
||||
# .. toggle_target_removal_date: 2023-6-01
|
||||
# .. toggle_warning: You need to activate the `new_core_editors.use_new_video_editor` flag to use this new flow.
|
||||
ENABLE_VIDEO_GALLERY_FLOW_FLAG = WaffleFlag('new_core_editors.use_video_gallery_flow', __name__)
|
||||
|
||||
|
||||
def use_video_gallery_flow():
|
||||
"""
|
||||
Returns a boolean = true if the video gallery flow is enabled
|
||||
"""
|
||||
return ENABLE_VIDEO_GALLERY_FLOW_FLAG.is_enabled()
|
||||
|
||||
|
||||
# .. toggle_name: new_core_editors.use_new_problem_editor
|
||||
# .. toggle_implementation: WaffleFlag
|
||||
# .. toggle_default: False
|
||||
|
||||
@@ -365,6 +365,7 @@ class VideosHandlerTestCase(
|
||||
'course_video_image_url',
|
||||
'transcripts',
|
||||
'transcription_status',
|
||||
'transcript_urls',
|
||||
'error_description'
|
||||
}
|
||||
)
|
||||
@@ -381,7 +382,7 @@ class VideosHandlerTestCase(
|
||||
[
|
||||
'edx_video_id', 'client_video_id', 'created', 'duration',
|
||||
'status', 'course_video_image_url', 'transcripts', 'transcription_status',
|
||||
'error_description'
|
||||
'transcript_urls', 'error_description'
|
||||
],
|
||||
[
|
||||
{
|
||||
@@ -398,7 +399,7 @@ class VideosHandlerTestCase(
|
||||
[
|
||||
'edx_video_id', 'client_video_id', 'created', 'duration',
|
||||
'status', 'course_video_image_url', 'transcripts', 'transcription_status',
|
||||
'error_description'
|
||||
'transcript_urls', 'error_description'
|
||||
],
|
||||
[
|
||||
{
|
||||
|
||||
@@ -29,6 +29,7 @@ from edxval.api import (
|
||||
create_video,
|
||||
get_3rd_party_transcription_plans,
|
||||
get_available_transcript_languages,
|
||||
get_video_transcript_url,
|
||||
get_transcript_credentials_state_for_org,
|
||||
get_transcript_preferences,
|
||||
get_videos_for_course,
|
||||
@@ -574,6 +575,12 @@ def _get_videos(course, pagination_conf=None):
|
||||
video['transcription_status'] = (
|
||||
StatusDisplayStrings.get(video['status']) if is_video_encodes_ready else ''
|
||||
)
|
||||
video['transcript_urls'] = {}
|
||||
for language_code in video['transcripts']:
|
||||
video['transcript_urls'][language_code] = get_video_transcript_url(
|
||||
video_id=video['edx_video_id'],
|
||||
language_code=language_code,
|
||||
)
|
||||
# Convert the video status.
|
||||
video['status'] = convert_video_status(video, is_video_encodes_ready)
|
||||
|
||||
@@ -595,7 +602,7 @@ def _get_index_videos(course, pagination_conf=None):
|
||||
attrs = [
|
||||
'edx_video_id', 'client_video_id', 'created', 'duration',
|
||||
'status', 'courses', 'transcripts', 'transcription_status',
|
||||
'error_description'
|
||||
'transcript_urls', 'error_description'
|
||||
]
|
||||
|
||||
def _get_values(video):
|
||||
|
||||
@@ -473,6 +473,7 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView
|
||||
onNewXBlock: function(xblockElement, scrollOffset, is_duplicate, data) {
|
||||
var useNewTextEditor = this.$('.xblock-header-primary').attr('use-new-editor-text'),
|
||||
useNewVideoEditor = this.$('.xblock-header-primary').attr('use-new-editor-video'),
|
||||
useVideoGalleryFlow = this.$('.xblock-header-primary').attr("use-video-gallery-flow"),
|
||||
useNewProblemEditor = this.$('.xblock-header-primary').attr('use-new-editor-problem');
|
||||
|
||||
// find the block type in the locator if availible
|
||||
@@ -484,7 +485,13 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView
|
||||
|| (useNewVideoEditor === 'True' && blockType.includes('video'))
|
||||
|| (useNewProblemEditor === 'True' && blockType.includes('problem'))
|
||||
){
|
||||
var destinationUrl = this.$('.xblock-header-primary').attr('authoring_MFE_base_url') + '/' + blockType[1] + '/' + encodeURI(data.locator);
|
||||
var destinationUrl;
|
||||
if (useVideoGalleryFlow === "True" && blockType.includes("video")) {
|
||||
destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/course-videos/' + encodeURI(data.locator);
|
||||
}
|
||||
else {
|
||||
destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/' + blockType[1] + '/' + encodeURI(data.locator);
|
||||
}
|
||||
window.location.href = destinationUrl;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -7,12 +7,13 @@ from lms.lib.utils import is_unit
|
||||
from openedx.core.djangolib.js_utils import (
|
||||
dump_js_escaped_json, js_escaped_string
|
||||
)
|
||||
from cms.djangoapps.contentstore.toggles import use_new_text_editor, use_new_problem_editor, use_new_video_editor
|
||||
from cms.djangoapps.contentstore.toggles import use_new_text_editor, use_new_problem_editor, use_new_video_editor, use_video_gallery_flow
|
||||
%>
|
||||
<%
|
||||
use_new_editor_text = use_new_text_editor()
|
||||
use_new_editor_video = use_new_video_editor()
|
||||
use_new_editor_problem = use_new_problem_editor()
|
||||
use_new_video_gallery_flow = use_video_gallery_flow()
|
||||
xblock_url = xblock_studio_url(xblock)
|
||||
show_inline = xblock.has_children and not xblock_url
|
||||
section_class = "level-nesting" if show_inline else "level-element"
|
||||
@@ -63,6 +64,7 @@ block_is_unit = is_unit(xblock)
|
||||
use-new-editor-text = ${use_new_editor_text}
|
||||
use-new-editor-video = ${use_new_editor_video}
|
||||
use-new-editor-problem = ${use_new_editor_problem}
|
||||
use-video-gallery-flow = ${use_new_video_gallery_flow}
|
||||
authoring_MFE_base_url = ${get_editor_page_base_url(xblock.location.course_key)}
|
||||
data-block-type = ${xblock.scope_ids.block_type}
|
||||
data-usage-id = ${xblock.scope_ids.usage_id}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user