diff --git a/cms/djangoapps/contentstore/views.py b/cms/djangoapps/contentstore/views.py index ec529315b4..8bd07420d7 100644 --- a/cms/djangoapps/contentstore/views.py +++ b/cms/djangoapps/contentstore/views.py @@ -647,8 +647,6 @@ def unpublish_unit(request): return HttpResponse() - - @login_required @expect_json def clone_item(request): @@ -952,11 +950,13 @@ def get_course_settings(request, org, course, name): raise PermissionDenied() course_module = modulestore().get_item(location) + course_details = CourseDetails.fetch(location) return render_to_response('settings.html', { 'active_tab': 'settings-tab', 'context_course': course_module, - 'course_details' : json.dumps(CourseDetails.fetch(location), cls=CourseDetailsEncoder) + 'course_details' : json.dumps(course_details, cls=CourseDetailsEncoder), + 'video_editor_html' : preview_component(request, course_details.intro_video_loc) }) @expect_json diff --git a/cms/static/js/models/settings/course_details.js b/cms/static/js/models/settings/course_details.js index 3ae4a86f90..46a31bb9fe 100644 --- a/cms/static/js/models/settings/course_details.js +++ b/cms/static/js/models/settings/course_details.js @@ -36,5 +36,72 @@ CMS.Models.Settings.CourseDetails = Backbone.Model.extend({ urlRoot: function() { var location = this.get('location'); return '/' + location.get('org') + "/" + location.get('course') + '/settings/' + location.get('name') + '/section/details'; + }, + + _videoprefix : /\s* or just the "speed:key, *" string + // returns the videosource for the preview which iss the key whose speed is closest to 1 + if (newsource == null) this.save({'intro_video': null}); + else if (this._getNextMatch(this._videoprefix, newsource, 0)) this.save('intro_video', newsource); + else this.save('intro_video', '