Skip to content

Commit

Permalink
feat: allow blocks lower than units to be bookmarked
Browse files Browse the repository at this point in the history
Adds support to jump/scroll to blocks lower than units if bookmarked. It
also fixes an issue with bookmark visit url function where it was not
passing query params.
  • Loading branch information
navinkarkera authored and farhaanbukhsh committed Dec 11, 2024
1 parent 1573c7b commit aeddb8a
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 19 deletions.
2 changes: 1 addition & 1 deletion lms/templates/vert_module.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ <h2 class="hd hd-2 unit-title">${unit_title}</h2>
<div class="vert-mod">
% for idx, item in enumerate(items):
% if item['content']:
<div class="vert vert-${idx}" data-id="${item['id']}">
<div class="vert vert-${idx}" data-id="${item['id']}" id="${item['id']}">
${HTML(item['content'])}
</div>
%endif
Expand Down
Original file line number Diff line number Diff line change
@@ -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));
Original file line number Diff line number Diff line change
Expand Up @@ -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);
},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,7 @@
component_type: componentType,
component_usage_id: componentUsageId
}
).always(function() {
window.location.href = event.currentTarget.pathname;
});
);
},

/**
Expand Down

0 comments on commit aeddb8a

Please sign in to comment.