+
${HTML(item['content'])}
%endif
diff --git a/openedx/features/course_bookmarks/static/course_bookmarks/js/models/bookmark.js b/openedx/features/course_bookmarks/static/course_bookmarks/js/models/bookmark.js
index 13671bddf56a..9ad45a5422ce 100644
--- a/openedx/features/course_bookmarks/static/course_bookmarks/js/models/bookmark.js
+++ b/openedx/features/course_bookmarks/static/course_bookmarks/js/models/bookmark.js
@@ -1,20 +1,37 @@
(function(define) {
- 'use strict';
+ 'use strict';
- define(['backbone'], function(Backbone) {
- return Backbone.Model.extend({
- idAttribute: 'id',
- defaults: {
- course_id: '',
- usage_id: '',
- display_name: '',
- path: [],
- created: ''
- },
+ define(['backbone'], function(Backbone) {
+ return Backbone.Model.extend({
+ idAttribute: 'id',
+ defaults: {
+ course_id: '',
+ usage_id: '',
+ display_name: '',
+ path: [],
+ created: ''
+ },
- blockUrl: function() {
- return '/courses/' + this.get('course_id') + '/jump_to/' + this.get('usage_id');
- }
- });
+ blockUrl: function() {
+ var path = this.get('path');
+ var url = '/courses/' + this.get('course_id') + '/jump_to/' + this.get('usage_id');
+ var params = new URLSearchParams();
+ var usage_id = this.get('usage_id');
+ // Confirm that current usage_id does not correspond to current unit
+ // path contains an array of parent blocks to the bookmarked block.
+ // Units only have two parents i.e. section and subsections.
+ // Below condition is only satisfied if a block lower than unit is bookmarked.
+ if (path.length > 2 && usage_id !== path[path.length - 1]) {
+ params.append('jumpToId', usage_id);
+ }
+ if (params.size > 0) {
+ // Pass nested block details via query parameters for it to be passed to learning mfe
+ // The learning mfe should pass it back to unit xblock via iframe url params.
+ // This would allow us to scroll to the child xblock.
+ url = url + '?' + params.toString();
+ }
+ return url;
+ }
});
+ });
}(define || RequireJS.define));
diff --git a/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmark_button.js b/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmark_button.js
index 838f631868dc..3612038842c5 100644
--- a/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmark_button.js
+++ b/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmark_button.js
@@ -20,6 +20,12 @@
this.bookmarkId = options.bookmarkId;
this.bookmarked = options.bookmarked;
this.usageId = options.usageId;
+ if (options.bookmarkedText) {
+ this.bookmarkedText = options.bookmarkedText;
+ }
+ if (options.bookmarkText) {
+ this.bookmarkText = options.bookmarkText;
+ }
this.setBookmarkState(this.bookmarked);
},
diff --git a/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js b/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js
index 52f5fbd74c1e..55dd1bd58ae5 100644
--- a/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js
+++ b/openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js
@@ -78,9 +78,7 @@
component_type: componentType,
component_usage_id: componentUsageId
}
- ).always(function() {
- window.location.href = event.currentTarget.pathname;
- });
+ );
},
/**