From 8f6aa79c1a6fc3fa701c49dd863d3774cb2af676 Mon Sep 17 00:00:00 2001 From: Harry Rein Date: Wed, 9 Aug 2017 13:31:46 -0400 Subject: [PATCH] Adds eventing to Resume/Start course on Home Page. LEARNER-2027 Adding eventing on resume and start course button clicks as well as a single jasmine test to assure Logging is occuring as expected. --- .../fixtures/course-home-fragment.html | 4 ++-- .../static/course_experience/js/CourseHome.js | 13 +++++++++++++ .../course_experience/js/spec/CourseHome_spec.js | 13 +++++++++++++ .../course_experience/course-home-fragment.html | 5 +++-- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/openedx/features/course_experience/static/course_experience/fixtures/course-home-fragment.html b/openedx/features/course_experience/static/course_experience/fixtures/course-home-fragment.html index f4a255ec87..d3007aff0b 100644 --- a/openedx/features/course_experience/static/course_experience/fixtures/course-home-fragment.html +++ b/openedx/features/course_experience/static/course_experience/fixtures/course-home-fragment.html @@ -20,8 +20,8 @@
- - Start Course + + Start Course
diff --git a/openedx/features/course_experience/static/course_experience/js/CourseHome.js b/openedx/features/course_experience/static/course_experience/js/CourseHome.js index 274bddda50..b6d3b81809 100644 --- a/openedx/features/course_experience/static/course_experience/js/CourseHome.js +++ b/openedx/features/course_experience/static/course_experience/js/CourseHome.js @@ -2,6 +2,19 @@ export class CourseHome { // eslint-disable-line import/prefer-default-export constructor(options) { + // Logging for 'Resume Course' or 'Start Course' button click + const $resumeCourseLink = $(options.resumeCourseLink); + $resumeCourseLink.on('click', (event) => { + const eventType = $resumeCourseLink.find('span').data('action-type'); + Logger.log( + 'edx.course.home.resume_course.clicked', + { + event_type: eventType, + url: event.currentTarget.href, + }, + ); + }); + // Logging for course tool click events const $courseToolLink = $(options.courseToolLink); $courseToolLink.on('click', (event) => { diff --git a/openedx/features/course_experience/static/course_experience/js/spec/CourseHome_spec.js b/openedx/features/course_experience/static/course_experience/js/spec/CourseHome_spec.js index 1fb00e1e4f..be48d904f6 100644 --- a/openedx/features/course_experience/static/course_experience/js/spec/CourseHome_spec.js +++ b/openedx/features/course_experience/static/course_experience/js/spec/CourseHome_spec.js @@ -9,11 +9,24 @@ describe('Course Home factory', () => { beforeEach(() => { loadFixtures('course_experience/fixtures/course-home-fragment.html'); home = new CourseHome({ + resumeCourseLink: '.action-resume-course', courseToolLink: '.course-tool-link', }); spyOn(Logger, 'log'); }); + it('sends an event when resume or start course is clicked', () => { + $('.action-resume-course').click(); + expect(Logger.log).toHaveBeenCalledWith( + 'edx.course.home.resume_course.clicked', + { + event_type: 'start', + url: `http://${window.location.host}/courses/course-v1:edX+DemoX+Demo_Course/courseware` + + '/19a30717eff543078a5d94ae9d6c18a5/', + }, + ); + }); + it('sends an event when an course tool is clicked', () => { const courseToolNames = document.querySelectorAll('.course-tool-link'); for (let i = 0; i < courseToolNames.length; i += 1) { diff --git a/openedx/features/course_experience/templates/course_experience/course-home-fragment.html b/openedx/features/course_experience/templates/course_experience/course-home-fragment.html index 93e38c1670..384581e88f 100644 --- a/openedx/features/course_experience/templates/course_experience/course-home-fragment.html +++ b/openedx/features/course_experience/templates/course_experience/course-home-fragment.html @@ -45,9 +45,9 @@ from openedx.features.course_experience import UNIFIED_COURSE_TAB_FLAG, SHOW_REV % if resume_course_url: % if has_visited_course: - ${_("Resume Course")} + ${_("Resume Course")} % else: - ${_("Start Course")} + ${_("Start Course")} % endif % endif @@ -109,6 +109,7 @@ from openedx.features.course_experience import UNIFIED_COURSE_TAB_FLAG, SHOW_REV <%static:webpack entry="CourseHome"> new CourseHome({ + resumeCourseLink: ".action-resume-course", courseToolLink: ".course-tool-link", });