Display programs from all categories on the student dashboard

Removes most remaining hardcoded references to XSeries from the LMS. Part of ECOM-4638.
This commit is contained in:
Renzo Lucioni
2016-08-02 18:32:55 -04:00
parent 1c81bd146d
commit 9c81ba47e2
26 changed files with 416 additions and 828 deletions

View File

@@ -20,17 +20,6 @@ var edx = edx || {};
return properties;
};
// Generate object to be passed with programs events
edx.dashboard.generateProgramProperties = function(element) {
var $el = $(element);
return {
category: 'dashboard',
course_id: $el.closest('.course-container').find('.info-course-id').html(),
program_id: $el.data('program-id')
};
};
// Emit an event when the 'course title link' is clicked.
edx.dashboard.trackCourseTitleClicked = function($courseTitleLink, properties) {
var trackProperty = properties || edx.dashboard.generateTrackProperties;
@@ -92,24 +81,6 @@ var edx = edx || {};
);
};
// Emit an event when the 'View XSeries Details' button is clicked
edx.dashboard.trackXseriesBtnClicked = function($xseriesBtn, properties) {
var trackProperty = properties || edx.dashboard.generateProgramProperties;
window.analytics.trackLink(
$xseriesBtn,
'edx.bi.dashboard.xseries_cta_message.clicked',
trackProperty
);
};
edx.dashboard.xseriesTrackMessages = function() {
$('.xseries-action .btn').each(function(i, element) {
var data = edx.dashboard.generateProgramProperties($(element));
window.analytics.track('edx.bi.dashboard.xseries_cta_message.viewed', data);
});
};
$(document).ready(function() {
if (!window.analytics) {
return;
@@ -120,7 +91,5 @@ var edx = edx || {};
edx.dashboard.trackCourseOptionDropdownClicked($('.wrapper-action-more'));
edx.dashboard.trackLearnVerifiedLinkClicked($('.verified-info'));
edx.dashboard.trackFindCourseBtnClicked($('.btn-find-courses'));
edx.dashboard.trackXseriesBtnClicked($('.xseries-action .btn'));
edx.dashboard.xseriesTrackMessages();
});
})(jQuery);

View File

@@ -27,10 +27,6 @@
<div class="course-container">
<div class="label-xseries-association">
<span class="xseries-icon" aria-hidden="true"></span>
<p class="message-copy">XSeries Program Course</p>
</div>
<div class="course honor">
<section class="details" aria-labelledby="course-details-heading">
<h2 class="hd hd-2 sr" id="course-details-heading">Course details</h2>
@@ -96,32 +92,11 @@
</div>
</div>
</div>
<div class="message message-status is-shown credit-message">
<div class="xseries-action">
<div class="message-copy xseries-msg">
<p><b class="message-copy-bold">XSeries Program: Interested in more courses in this subject?</b></p>
<p></p>
<p class="message-copy">
This course is 1 of 3 courses in the <a href="https://www.edx.org/xseries/water-management">Water Management</a> XSeries.
</p>
</div>
<a class="btn xseries-border-btn" href="https://www.edx.org/xseries/water-management" target="_blank"
data-program-id="xseries007">
<span class="action-xseries-icon" aria-hidden="true"></span>
<span>View XSeries Details</span>
</a>
</div>
</div>
</ul>
</footer>
</div>
</div>
<div class="course-container">
<div class="label-xseries-association">
<span class="xseries-icon" aria-hidden="true"></span>
<p class="message-copy">XSeries Program Course</p>
</div>
<div class="course honor">
<div class="details">
<div class="wrapper-course-image" aria-hidden="true">
@@ -186,22 +161,6 @@
</div>
</div>
</div>
<div class="message message-status is-shown credit-message">
<div class="xseries-action">
<div class="message-copy xseries-msg">
<p><b class="message-copy-bold">XSeries Program: Interested in more courses in this subject?</b></p>
<p class="message-copy">
This course is 1 of 3 courses in the <a href="https://www.edx.org/xseries/water-management">Water Management</a> XSeries.
</p>
</div>
<a class="btn xseries-border-btn" href="https://www.edx.org/xseries/water-management" target="_blank"
data-program-id="xseries007">
<span class="action-xseries-icon" aria-hidden="true"></span>
<span>View XSeries Details</span>
</a>
</div>
</div>
</ul>
</footer>
</div>

View File

@@ -92,31 +92,6 @@
property
);
});
it('sends an analytics event when the user clicks the \'View XSeries Details\' button', function() {
var $xseries = $('.xseries-action .btn');
window.edx.dashboard.trackXseriesBtnClicked(
$xseries,
window.edx.dashboard.generateProgramProperties);
expect(window.analytics.trackLink).toHaveBeenCalledWith(
$xseries,
'edx.bi.dashboard.xseries_cta_message.clicked',
window.edx.dashboard.generateProgramProperties
);
});
it('sends an analytics event when xseries messages are present in the DOM on page load', function() {
window.edx.dashboard.xseriesTrackMessages();
expect(window.analytics.track).toHaveBeenCalledWith(
'edx.bi.dashboard.xseries_cta_message.viewed',
{
category: 'dashboard',
course_id: 'CTB3365DWx',
program_id: 'xseries007'
}
);
});
});
});
}).call(this, window.define);

View File

@@ -3,8 +3,8 @@
// Uses the Pattern Library
@import 'elements/banners';
@import 'elements/program-card';
@import 'elements/course-card';
@import 'elements/icons';
@import 'views/program-list';
@import 'elements/program-card';
@import 'elements-v2/icons';
@import 'views/program-details';
@import 'views/program-list';

View File

@@ -13,11 +13,12 @@
@import 'base/base';
// base - elements
@import 'elements/typography';
@import 'elements/controls';
@import 'elements/creative-commons';
@import 'elements/icons';
@import 'elements/navigation';
@import 'elements/pagination';
@import 'elements/creative-commons';
@import 'elements/typography';
// shared - course
@import 'shared/fields';

View File

@@ -0,0 +1,34 @@
.xseries-icon {
background: url('#{$static-path}/images/programs/xseries-icon.svg') no-repeat;
}
.micromasters-icon {
margin-top: $baseline * 0.05;
background: url('#{$static-path}/images/programs/micromasters-icon.svg') no-repeat;
}
.certificate-body {
// Use the ampersand to reference parent selectors.
.certificate-icon & {
@include float(left);
@include margin-right($baseline*0.4);
margin-top: ($baseline/10);
width: 23px;
height: 20px;
padding: 2px;
background-color: $white;
border-style: solid;
border-width: 2px;
}
.green-icon & {
fill: palette(success, text);
border-color: palette(success, text);
}
.blue-icon & {
fill: palette(primary, dark);
border-color: palette(primary, dark);
}
}

View File

@@ -1,22 +1,8 @@
.certificate-icon .certificate-body {
@include float(left);
@include margin-right($baseline*0.4);
margin-top: ($baseline/10);
width: 23px;
height: 20px;
padding: 2px;
background-color: $white;
border-style: solid;
border-width: 2px;
.xseries-icon {
background: url('#{$static-path}/images/programs/xseries-icon.svg') no-repeat;
}
.green-certificate-icon .certificate-body {
fill: palette(success, accent);
border-color: palette(success, accent);
}
.blue-certificate-icon .certificate-body {
fill: palette(primary, dark);
border-color: palette(primary, dark);
.micromasters-icon {
margin-top: $baseline * 0.05;
background: url('#{$static-path}/images/programs/micromasters-icon.svg') no-repeat;
}

View File

@@ -97,15 +97,6 @@
width: ($baseline*0.7);
height: ($baseline*0.7);
}
.xseries-icon{
background: url('#{$static-path}/images/programs/xseries-icon.svg') no-repeat;
}
.micromasters-icon{
margin-top: $baseline * 0.05;
background: url('#{$static-path}/images/programs/micromasters-icon.svg') no-repeat;
}
}
.hd-3 {

View File

@@ -62,32 +62,6 @@
}
}
.wrapper-xseries-certificates{
@include float(right);
@include margin-left(flex-gutter());
width: flex-grid(3);
.title{
@extend %t-title7;
@extend %t-weight4;
}
ul{
@include padding-left(0);
margin-top: ($baseline/2);
}
li{
@include line-height(20);
list-style-type: none;
}
.copy {
@extend %t-copy-sub1;
margin-top: ($baseline/2);
}
}
.profile-sidebar {
background: transparent;
@include float(right);
@@ -304,31 +278,11 @@
border-bottom: 4px solid $border-color-l4;
padding-bottom: $baseline;
.course-container{
.course-container {
border: 1px solid $border-color-l4;
border-radius: 3px;
// CASE: Xseries associated course
.label-xseries-association{
@include margin($baseline/2, $baseline/5, 0, $baseline/2);
.xseries-icon{
@include float(left);
@include margin-right($baseline*0.4);
background: url('#{$static-path}/images/icon-sm-xseries-black.png') no-repeat;
background-color: transparent;
width: ($baseline*1.1);
height: ($baseline*1.1);
}
.message-copy{
padding-top: ($baseline/5);
@extend %t-action3;
}
}
}
&:last-child {
margin-bottom: 0;
border-bottom: none;
@@ -860,100 +814,6 @@
}
}
.xseries-action{
.xseries-msg{
@include float(left);
width: flex-grid(9, 12);
}
.message-copy{
@extend %t-demi-strong;
margin-top: 0;
}
.message-copy-bold{
@extend %t-strong;
}
.xseries-border-btn {
@extend %btn-pl-black-border;
@include float(right);
position: relative;
@include left(10px);
padding: ($baseline*0.4) ($baseline*0.6);
background-image: none ;
text-shadow: none;
box-shadow: none;
text-transform: none;
.action-xseries-icon{
@include float(left);
display: inline;
@include margin-right($baseline*0.4);
background: url('#{$static-path}/images/icon-sm-xseries-black.png') no-repeat;
background-color: transparent;
width: ($baseline*1.1);
height: ($baseline*1.1);
}
&:hover,
&:focus {
.action-xseries-icon{
@include float(left);
display: inline;
@include margin-right($baseline*0.4);
background: url('#{$static-path}/images/icon-sm-xseries-white.png') no-repeat;
background-color: transparent;
width: ($baseline*1.1);
height: ($baseline*1.1);
}
}
}
.xseries-base-btn {
@extend %btn-pl-black-base;
@include float(right);
position: relative;
@include left(10px);
padding: ($baseline*0.4) ($baseline*0.6);
background-image: none ;
text-shadow: none;
box-shadow: none;
text-transform: none;
.action-xseries-icon{
@include float(left);
display: inline;
@include margin-right($baseline*0.4);
background: url('#{$static-path}/images/icon-sm-xseries-white.png') no-repeat;
background-color: transparent;
width: ($baseline*1.1);
height: ($baseline*1.1);
}
&:hover,
&:focus {
.action-xseries-icon {
@include float(left);
display: inline;
@include margin-right($baseline*0.4);
background: url('#{$static-path}/images/icon-sm-xseries-black.png') no-repeat;
background-color: transparent;
width: ($baseline*1.1);
height: ($baseline*1.1);
}
}
}
}
.actions {
.action {
@@ -1129,6 +989,46 @@
}
}
&.message-related-programs {
background: none;
border: none;
margin-top: ($baseline/4);
padding-bottom: 0;
.related-programs-preface {
@include float(left);
font-weight: bold;
}
ul {
display: inline;
padding: 0;
margin: 0;
}
li {
@include float(left);
display: inline;
padding: 0 0.5em;
border-right: 1px solid;
.category-icon {
@include float(left);
@include margin-right($baseline/4);
margin-top: ($baseline/10);
background-color: transparent;
background-size: 100%;
width: ($baseline*0.7);
height: ($baseline*0.7);
}
}
// Remove separator from last list item.
li:last-child {
border: 0;
}
}
// TYPE: pre-requisites
.prerequisites {
@include clearfix;