diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index dc5dd26e94..293a57b137 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -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 diff --git a/cms/static/js/views/pages/container.js b/cms/static/js/views/pages/container.js index 0814beb7dc..260c143f36 100644 --- a/cms/static/js/views/pages/container.js +++ b/cms/static/js/views/pages/container.js @@ -454,6 +454,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 @@ -465,7 +466,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") + '/videos'; + } + else { + destinationUrl = this.$('.xblock-header-primary').attr("authoring_MFE_base_url") + '/' + blockType[1] + '/' + encodeURI(data.locator); + } window.location.href = destinationUrl; return; } diff --git a/cms/templates/studio_xblock_wrapper.html b/cms/templates/studio_xblock_wrapper.html index 81a08a4d01..460cd6a0ae 100644 --- a/cms/templates/studio_xblock_wrapper.html +++ b/cms/templates/studio_xblock_wrapper.html @@ -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} diff --git a/test_root/data/Q291cnNlTG9jYXRvcignb3JnLjIzMTYnLCAnY291cnNlXzIzMTYnLCAnUnVuXzIzMTYnLCBOb25lLCBOb25lKQ==/good.tar.gz b/test_root/data/Q291cnNlTG9jYXRvcignb3JnLjIzMTYnLCAnY291cnNlXzIzMTYnLCAnUnVuXzIzMTYnLCBOb25lLCBOb25lKQ==/good.tar.gz new file mode 100644 index 0000000000..04a7658792 Binary files /dev/null and b/test_root/data/Q291cnNlTG9jYXRvcignb3JnLjIzMTYnLCAnY291cnNlXzIzMTYnLCAnUnVuXzIzMTYnLCBOb25lLCBOb25lKQ==/good.tar.gz differ diff --git a/test_root/data/Q291cnNlTG9jYXRvcignb3JnLjIzMTknLCAnY291cnNlXzIzMTknLCAnUnVuXzIzMTknLCBOb25lLCBOb25lKQ==/good.tar.gz b/test_root/data/Q291cnNlTG9jYXRvcignb3JnLjIzMTknLCAnY291cnNlXzIzMTknLCAnUnVuXzIzMTknLCBOb25lLCBOb25lKQ==/good.tar.gz new file mode 100644 index 0000000000..b0cd2cc3b3 Binary files /dev/null and b/test_root/data/Q291cnNlTG9jYXRvcignb3JnLjIzMTknLCAnY291cnNlXzIzMTknLCAnUnVuXzIzMTknLCBOb25lLCBOb25lKQ==/good.tar.gz differ