diff --git a/common/djangoapps/student/tests/test_bulk_email_settings.py b/common/djangoapps/student/tests/test_bulk_email_settings.py
index 0fd2a62f3b..4d8146405c 100644
--- a/common/djangoapps/student/tests/test_bulk_email_settings.py
+++ b/common/djangoapps/student/tests/test_bulk_email_settings.py
@@ -40,9 +40,9 @@ class TestStudentDashboardEmailView(ModuleStoreTestCase):
self.url = reverse('dashboard')
# URL for email settings modal
self.email_modal_link = (
- 'Email Settings'
+ 'data-dashboard-index="0" data-optout="False">Email Settings'
).format(
org=self.course.org,
num=self.course.number,
@@ -86,7 +86,6 @@ class TestStudentDashboardEmailView(ModuleStoreTestCase):
# Assert that the URL for the email view is not in the response
# if this course isn't authorized
response = self.client.get(self.url)
- print response.content
self.assertTrue(self.email_modal_link in response.content)
@@ -112,9 +111,9 @@ class TestStudentDashboardEmailViewXMLBacked(ModuleStoreTestCase):
# URL for email settings modal
self.email_modal_link = (
- 'Email Settings'
+ 'data-dashboard-index="0" data-optout="False">Email Settings'
).format(
org='edX',
num='toy',
diff --git a/common/test/acceptance/pages/lms/dashboard.py b/common/test/acceptance/pages/lms/dashboard.py
index a1b5ca69ec..7736ab3e0a 100644
--- a/common/test/acceptance/pages/lms/dashboard.py
+++ b/common/test/acceptance/pages/lms/dashboard.py
@@ -45,9 +45,7 @@ class DashboardPage(PageObject):
Return list of the names of available courses (e.g. "999 edX Demonstration Course")
"""
def _get_course_name(el):
- # The first component in the link text is the course number
- course_name = el.text
- return course_name
+ return el.text
return self.q(css='h3.course-title > a').map(_get_course_name).results
@@ -64,7 +62,7 @@ class DashboardPage(PageObject):
@property
def username(self):
"""Return the displayed value for the user's username"""
- return self.q(css='.user-name').text[0]
+ return self.q(css='.username-label').text[0]
def get_enrollment_mode(self, course_name):
"""Get the enrollment mode for a given course on the dashboard.
@@ -113,7 +111,7 @@ class DashboardPage(PageObject):
el = course_listing[0]
# Expand the upsell copy and click the upgrade button
- el.find_element_by_css_selector('.message-upsell').click()
+ el.find_element_by_css_selector('.message-upsell .ui-toggle-expansion').click()
el.find_element_by_css_selector('#upgrade-to-verified').click()
upgrade_page.wait_for_page()
@@ -176,4 +174,4 @@ class DashboardPage(PageObject):
"""
Verify if pre-requisite course messages are being displayed.
"""
- return self.q(css='section.prerequisites > .tip').visible
+ return self.q(css='li.prerequisites > .tip').visible
diff --git a/lms/djangoapps/courseware/features/registration.py b/lms/djangoapps/courseware/features/registration.py
index 85f2c1f5e3..ebe4ec52df 100644
--- a/lms/djangoapps/courseware/features/registration.py
+++ b/lms/djangoapps/courseware/features/registration.py
@@ -47,7 +47,14 @@ def i_should_see_that_course_in_my_dashboard(_step, doesnt_appear, course):
@step(u'I unenroll from the course numbered "([^"]*)"')
def i_unenroll_from_that_course(_step, course):
- unregister_css = 'section.info a[href*="#unenroll-modal"][data-course-number*="%s"]' % course
+ more_actions_dropdown_link_selector = '[id*=actions-dropdown-link-0]'
+ assert world.is_css_present(more_actions_dropdown_link_selector)
+ world.css_click(more_actions_dropdown_link_selector)
+
+ unregister_css = 'li.actions-item a.action-unenroll[data-course-number*="{course_number}"][href*=unenroll-modal]'.format(course_number=course)
+ assert world.is_css_present(unregister_css)
world.css_click(unregister_css)
+
button_css = 'section#unenroll-modal input[value="Unenroll"]'
+ assert world.is_css_present(button_css)
world.css_click(button_css)
diff --git a/lms/static/js/dashboard/legacy.js b/lms/static/js/dashboard/legacy.js
index 47096c5a4f..9abdad1a31 100644
--- a/lms/static/js/dashboard/legacy.js
+++ b/lms/static/js/dashboard/legacy.js
@@ -97,14 +97,26 @@
}
function toggleCourseActionsDropdown(event) {
- var dropdown = $(event.target).closest('.action-more').find('.actions-dropdown-list')
+ var dashboard_index = $(this).data('dashboard-index');
+ // Toggle the visibility control for the selected element and set the focus
+ var dropdown_selector = 'div#actions-dropdown-' + dashboard_index;
+ var dropdown = $(dropdown_selector);
+ dropdown.toggleClass('is-visible');
+ if (dropdown.hasClass('is-visible')) {
+ dropdown.attr('tabindex', -1);
+ } else {
+ dropdown.removeAttr('tabindex');
+ }
+
+ // Inform the ARIA framework that the dropdown has been expanded
+ var anchor_selector = 'a#actions-dropdown-link-' + dashboard_index;
+ var anchor = $(anchor_selector);
+ var aria_expanded_state = (anchor.attr('aria-expanded') === 'true');
+ anchor.attr('aria-expanded', !aria_expanded_state);
+
+ // Suppress the actual click event from the browser
event.preventDefault();
-
- $(this).toggleClass('is-visible');
-
- // add BI event here
-
}
$("#failed-verification-button-dismiss").click(function() {
@@ -122,7 +134,7 @@
Logger.log('edx.course.enrollment.upgrade.clicked', [user, course], null);
});
- $(".email-settings").click(function(event) {
+ $(".action-email-settings").click(function(event) {
$("#email_settings_course_id").val( $(event.target).data("course-id") );
$("#email_settings_course_number").text( $(event.target).data("course-number") );
if($(event.target).data("optout") === "False") {
@@ -130,7 +142,7 @@
}
});
- $(".unenroll").click(function(event) {
+ $(".action-unenroll").click(function(event) {
$("#unenroll_course_id").val( $(event.target).data("course-id") );
$("#unenroll_course_number").text( $(event.target).data("course-number") );
});
@@ -247,8 +259,8 @@
"#dashboard-main"
);
- $(".email-settings").each(function(index){
- $(this).attr("id", "unenroll-" + index);
+ $(".action-email-settings").each(function(index){
+ $(this).attr("id", "email-settings-" + index);
// a bit of a hack, but gets the unique selector for the modal trigger
var trigger = "#" + $(this).attr("id");
accessibleModal(
@@ -259,8 +271,8 @@
);
});
- $(".unenroll").each(function(index){
- $(this).attr("id", "email-settings-" + index);
+ $(".action-unenroll").each(function(index){
+ $(this).attr("id", "unenroll-" + index);
// a bit of a hack, but gets the unique selector for the modal trigger
var trigger = "#" + $(this).attr("id");
accessibleModal(
diff --git a/lms/static/sass/base/_variables.scss b/lms/static/sass/base/_variables.scss
index bab8e1c077..2b07279b38 100644
--- a/lms/static/sass/base/_variables.scss
+++ b/lms/static/sass/base/_variables.scss
@@ -133,6 +133,11 @@ $green-u1: desaturate($green,15%);
$green-u2: desaturate($green,30%);
$green-u3: desaturate($green,45%);
+// COLORS: social platforms
+$twitter-blue: #55ACEE;
+$facebook-blue: #3B5998;
+$linkedin-blue: #0077B5;
+
// TODO: both blue and yellow variables differ from CMS rgb value, need to confirm change to CMS variable is ok in current platform uses before switching.
$blue: rgb(29,157,217);
$yellow: rgb(255, 252, 221);
diff --git a/lms/static/sass/multicourse/_dashboard.scss b/lms/static/sass/multicourse/_dashboard.scss
index 03d6388739..af6a01c3e0 100644
--- a/lms/static/sass/multicourse/_dashboard.scss
+++ b/lms/static/sass/multicourse/_dashboard.scss
@@ -4,6 +4,8 @@
// Table of Contents
// * +Dashboard - Sidebar
// * +Dashboard - Course Listing
+// * +Dashboard - Course Item
+// * +Misc - Uncategorized
// * +Dashboard - Banner
@@ -22,17 +24,21 @@
.profile {
@include box-sizing(border-box);
border: 1px solid $border-color-2;
- border-bottom: none;
border-radius: ($baseline/4) ($baseline/4) 0 0;
width: flex-grid(12);
- .user-name {
- @extend %t-title6;
+ .username-header {
+ margin-bottom: 0;
+ }
+
+ .username-label {
+ @extend %t-title7;
@extend %t-ultrastrong;
@extend %cont-truncated;
+ text-align: center;
display: block;
margin: 0;
- padding: $baseline $baseline 0;
+ padding: ($baseline*0.75) $baseline;
color: $base-font-color;
text-transform: none;
}
@@ -279,287 +285,307 @@
}
}
}
+ }
+}
- // ====================
+// +Dashboard - Course
+// ====================
+.dashboard .my-courses {
- // UI: individual course item
- .course {
- @include box-sizing(box);
- @include transition(all 0.15s linear 0s);
+ // UI: individual course item
+ .course {
+ @include box-sizing(box);
+ @include transition(all 0.15s linear 0s);
+ @include clearfix();
+ @extend %ui-depth2;
+ position: relative;
+ margin: ($baseline/2);
+
+ .details {
@include clearfix();
- @extend %ui-depth2;
- position: relative;
- padding: ($baseline/2);
- .details {
- @include clearfix();
+ .wrapper-course-image {
+ @include float(left);
+ @include margin-right(flex-gutter());
+ width: flex-grid(3);
.cover {
@include box-sizing(border-box);
@include transition(all 0.15s linear 0s);
@include float(left);
- @include margin-right(flex-gutter());
- width: flex-grid(3);
- min-width: 150px;
overflow: hidden;
- display: block;
position: relative;
- max-height: 100%;
- height: 120px;
- border-radius: ($baseline/10);
+ max-height: 120px;
+ border-radius: ($baseline/5);
border: 1px solid $dashboard-course-cover-border;
border-bottom: 4px solid $dashboard-course-cover-border;
- &:before {
- content: "";
- display: block;
- padding-top: 75%; // 4:3 aspect ratio
- }
-
- img {
- display: block;
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
+ .course-image {
width: 100%;
}
}
- .wrapper-course-details {
- display: block;
+ // "enrolled as" status
+ .sts-enrollment {
@include float(left);
- width: flex-grid(9);
- padding: 0;
- height: 120px;
- }
-
- .course-title {
- border-bottom: 2px solid $gray-l5;
-
- a, span {
- @extend %t-title3;
- @extend %t-light;
- display: block;
- margin-bottom: ($baseline/2);
-
- &:hover, &:focus {
- text-decoration: none;
- }
- }
- }
-
- .course-info {
- display: block;
- @include float(left);
- width: flex-grid(4);
- padding: 0;
- margin-top: ($baseline/2);
-
- [class*="info-"] {
- color: $gray-d1;
- @extend %t-title6;
- display: inline-block;
- }
-
- .info-date-block {
- @extend %t-title7;
- color: $gray-l1;
- display: block;
- }
- }
-
- .wrapper-course-actions {
- display: block;
- @include float(right);
- width: flex-grid(8);
- padding: 0;
- margin-top: ($baseline/2);
- }
-
- .course-actions {
+ width: 100%;
position: relative;
- top: 50%;
- transform: translateY(-50%);
-
- // UI: course item actions
-
- .action {
- @include box-sizing(border-box);
- @include margin-right($baseline/2);
- display: inline-block;
- float: right;
- min-width: ($baseline*2);
- color: $gray-l3;
- border-radius: 3px;
- padding: 12px;
- border: 1px solid $white;
-
- &:hover, &:focus {
- color: #333;
- border: 1px solid $gray-l4;
- }
-
- // STATE: is-disabled
- &.is-disabled {
- color: #808080;
- color: $gray-l4;
- }
-
- // TYPE: facebook share
- &.action-facebook, {
- color: #3b5998;
- }
-
- // TYPE: twitter share
- &.action-twitter {
- color: #55ACEE;
- }
- }
-
- // UI: general actions dropdown layout
- .wrapper-action-more {
-
- .actions-dropdown {
- @extend %ui-no-list;
- @extend %ui-depth1;
- display: none;
- position: absolute;
- top: ($baseline*2);
- left: 17px;
- pointer-events: none;
- min-width: ($baseline*6.5);
-
- &.is-expanded {
- display: block;
- pointer-events: auto;
- }
-
- .actions-dropdown-list {
- @extend %ui-no-list;
- display: table;
- @include box-sizing(border-box);
- box-shadow: 0 1px 1px $shadow-l1;
- position: relative;
- width: 100%;
- border-radius: 3px;
- margin: ($baseline/4) 0 0 0;
- border: 1px solid $gray-l3;
- padding: ($baseline/2) ($baseline*0.75);
- background: $white;
-
- // ui triangle/nub
- &:after,
- &:before {
- bottom: 100%;
- @include right(3px);
- border: solid transparent;
- content: " ";
- height: 0;
- width: 0;
- position: absolute;
- pointer-events: none;
- }
-
- &:after {
- border-color: $transparent;
- border-bottom-color: $white;
- border-width: 6px;
- @include margin-right(1px);
- }
-
- &:before {
- border-color: $transparent;
- border-bottom-color: $gray-l3;
- border-width: 7px;
- }
- }
-
- .actions-item {
- @extend %t-title7;
- display: block;
- margin: 0;
-
- &.is-hidden {
- display: none;
- }
-
- .action {
- @include margin-right(0);
-
- &:hover, &:focus {
- border: 1px solid transparent;
- }
- }
- }
- }
- }
- }
-
- .course-status {
- background: $yellow;
- border: 1px solid $border-color-2;
- box-shadow: 0 1px 0 0 rgba(255,255,255, 0.6);
- margin-top: 17px;
- margin-right: flex-gutter();
- padding: ($baseline/4);
- width: flex-grid(8);
- float: left;
- @include box-sizing(border-box);
-
- p {
- color: $lighter-base-font-color;
- font-style: italic;
- letter-spacing: 1px;
- text-align: center;
- }
- }
-
- .course-status-completed {
- background: $gray-l3;
- color: $very-light-text;
-
- p {
- color: #222;
-
- span {
- font-weight: bold;
- }
- }
- }
-
- .enter-course {
- @include button(simple, $button-color);
- @include box-sizing(border-box);
- border-radius: 3px;
- @include float(right);
- font: normal 15px/1.6rem $sans-serif;
- letter-spacing: 0;
+ bottom: 15px;
+ display: inline-block;
text-align: center;
- &.archived {
- @include button(simple, $button-archive-color);
- font: normal 15px/1.6rem $sans-serif;
-
- &:hover, &:focus {
- text-decoration: none;
- }
+ .label {
+ @extend %text-sr;
}
+ .deco-graphic {
+ position: absolute;
+ top: -5px;
+ @include right(0);
+ }
+
+ .sts-enrollment-value {
+ @extend %ui-depth1;
+ @extend %copy-badge;
+ @extend %t-demi-strong;
+ font-size: 0.6em;
+ line-height: 1.5em;
+ border-radius: 0;
+ padding: 1px ($baseline/4);
+ color: white;
+ }
+ }
+ }
+
+ .wrapper-course-details {
+ display: block;
+ @include float(left);
+ width: flex-grid(9);
+ padding: 0;
+ }
+
+ .course-title {
+
+ a, span {
+ @extend %t-title3;
+ @extend %t-light;
+ display: inline-block;
+ margin-bottom: ($baseline/2);
+
&:hover, &:focus {
text-decoration: none;
}
}
}
- // ====================
+ .course-info {
+ display: block;
+ @include float(left);
+ width: flex-grid(4);
+ padding: 0;
+ margin-top: ($baseline/2);
- // UI: message
- .wrapper-message-primary {
- @include clearfix();
+ [class*="info-"] {
+ color: $gray-d1;
+ @extend %t-title6;
+ display: inline-block;
+ }
+
+ .info-date-block {
+ @extend %t-title7;
+ color: $gray-l1;
+ display: block;
+ }
}
+ .wrapper-course-actions {
+ display: block;
+ @include float(right);
+ width: flex-grid(8);
+ padding: 0;
+ margin-top: ($baseline/2);
+ }
+
+ .course-actions {
+
+ // UI: course item actions
+
+ .action {
+ @include box-sizing(border-box);
+ @include margin-right($baseline/2);
+ @include float(right);
+ min-width: ($baseline*2);
+ color: $gray-l1;
+ border-radius: 3px;
+ padding: 12px;
+ border: 1px solid $white;
+
+ &:hover, &:focus {
+ color: $gray-d3;
+ border: 1px solid $gray-l4;
+ }
+
+ // STATE: is-disabled
+ &.is-disabled {
+ color: $gray-l4;
+ }
+
+ // TYPE: facebook share
+ &.action-facebook, {
+ color: $facebook-blue;
+ }
+
+ // TYPE: twitter share
+ &.action-twitter {
+ color: $twitter-blue;
+ }
+ }
+
+ // UI: general actions dropdown layout
+ .wrapper-action-more {
+ display: inline-block;
+ position: relative;
+ @include float(right);
+
+
+ .actions-dropdown {
+ @extend %ui-no-list;
+ @extend %ui-depth1;
+ display: none;
+ position: absolute;
+ top: ($baseline*2);
+ right: 19px;
+ pointer-events: none;
+ min-width: ($baseline*7);
+
+ &.is-visible {
+ display: block;
+ pointer-events: auto;
+ }
+
+ .actions-dropdown-list {
+ @extend %ui-no-list;
+ @include box-sizing(border-box);
+ display: table;
+ box-shadow: 0 1px 1px $shadow-l1;
+ position: relative;
+ width: 100%;
+ border-radius: 3px;
+ margin: ($baseline/4) 0 0 0;
+ border: 1px solid $gray-l3;
+ padding: ($baseline/4) ($baseline/2);
+ background: $white;
+
+ // ui triangle/nub
+ &:after,
+ &:before {
+ bottom: 100%;
+ @include right(3px);
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+ pointer-events: none;
+ }
+
+ &:after {
+ border-color: $transparent;
+ border-bottom-color: $white;
+ border-width: 6px;
+ @include margin-right(1px);
+ }
+
+ &:before {
+ border-color: $transparent;
+ border-bottom-color: $gray-l3;
+ border-width: 7px;
+ }
+ }
+
+ .actions-item {
+ @extend %t-title7;
+ display: block;
+ margin: 0;
+
+ &.is-hidden {
+ display: none;
+ }
+
+ .action {
+ @include margin-right(0);
+
+ &:hover, &:focus {
+ border: 1px solid transparent;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .course-status {
+ background: $yellow;
+ border: 1px solid $border-color-2;
+ box-shadow: 0 1px 0 0 rgba(255,255,255, 0.6);
+ margin-top: 17px;
+ margin-right: flex-gutter();
+ padding: ($baseline/4);
+ width: flex-grid(8);
+ @include float(left);
+ @include box-sizing(border-box);
+
+ p {
+ color: $lighter-base-font-color;
+ font-style: italic;
+ letter-spacing: 1px;
+ text-align: center;
+ }
+ }
+
+ .course-status-completed {
+ background: $gray-l3;
+ color: $very-light-text;
+
+ p {
+ color: $gray-d4;
+
+ span {
+ font-weight: bold;
+ }
+ }
+ }
+
+ .enter-course {
+ @include button(simple, $button-color);
+ @include box-sizing(border-box);
+ border-radius: 3px;
+ @include float(right);
+ font: normal 15px/1.6rem $sans-serif;
+ letter-spacing: 0;
+ text-align: center;
+
+ &.archived {
+ @include button(simple, $button-archive-color);
+ font: normal 15px/1.6rem $sans-serif;
+
+ &:hover, &:focus {
+ text-decoration: none;
+ }
+ }
+
+ &:hover, &:focus {
+ text-decoration: none;
+ }
+ }
+ }
+
+ // ====================
+
+ // UI: messages
+ .wrapper-messages-primary {
+ @include clearfix();
+
.messages-list {
margin: 0;
padding: 0;
@@ -570,7 +596,7 @@
border-radius: 3px;
display: none;
margin: $baseline 0 ($baseline/2) 0;
- padding: ($baseline*0.5) $baseline;
+ padding: ($baseline/2) $baseline;
background: $gray-l5;
border: 1px solid $gray-l4;
@@ -619,6 +645,7 @@
.message-title, .message-copy {
margin-bottom: 0;
+ display: inline-block;
}
.message-title .value, .message-copy {
@@ -640,51 +667,48 @@
display: none;
opacity: 0.0;
}
+ }
- // STATE: is expanded
- &.is-expanded {
+ // STATE: is expanded
+ &.is-expanded {
- .ui-toggle-expansion {
- @include transform(rotate(0));
- @include transform-origin(50% 50%);
+ .ui-toggle-expansion {
+ @include rtl {
+ @include transform(rotate(-90deg));
}
- .wrapper-extended {
- display: block;
- opacity: 1.0;
+ @include ltr {
+ @include transform(rotate(90deg));
}
+ @include transform-origin(50% 50%);
+ }
+
+ .wrapper-extended {
+ display: block;
+ opacity: 1.0;
}
}
// TYPE: upsell
- .message-upsell {
+ &.message-upsell {
.wrapper-tip {
@include clearfix();
.message-title {
- float: left;
+ @include float(left);
}
.ui-toggle-expansion {
@include transition(all $tmg-f2 ease-in-out 0s);
- @include transform-origin(50% 50%);
- @include font-size(21);
+ @include font-size(18);
display: inline-block;
vertical-align: middle;
margin-right: ($baseline/4);
-
- @include rtl {
- @include transform(rotate(90deg));
- }
-
- @include ltr {
- @include transform(rotate(-90deg));
- }
}
.message-copy {
- float: right;
+ @include float(right);
}
}
@@ -733,7 +757,7 @@
}
// TYPE: status
- .message-status {
+ &.message-status {
background: tint($yellow,70%);
border-color: $gray-l3;
@@ -750,7 +774,7 @@
.actions {
.action {
- float: left;
+ @include float(left);
margin: 0 15px 0 0;
.btn, .cta {
@@ -759,8 +783,8 @@
.btn {
@include box-sizing(border-box);
+ @include float(left);
border-radius: 3px;
- float: left;
font: normal 0.8rem/1.2rem $sans-serif;
letter-spacing: 1px;
padding: 6px 12px;
@@ -770,18 +794,14 @@
cursor: default !important;
&:hover, &:focus {
+ @include background-image(linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100% ));
background: #eee;
- background-image: -webkit-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
- background-image: -moz-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
- background-image: -ms-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
- background-image: -o-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
- background-image: linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
}
}
}
.cta {
- float: left;
+ @include float(left);
font: normal 0.8rem/1.2rem $sans-serif;
letter-spacing: 1px;
padding: 6px 12px;
@@ -815,8 +835,8 @@
.exam-button {
@include button(simple, $pink);
+ @include float(right);
margin-top: 0;
- float: right;
}
.contact-button {
@@ -925,14 +945,14 @@
.verification-reminder {
width: flex-grid(8, 12);
+ @include float(left);
position: relative;
- float: left;
}
.verification-cta {
width: flex-grid(4, 12);
+ @include float(left);
position: relative;
- float: left;
.cta {
@include button(simple, $green-d1);
@@ -960,126 +980,97 @@
}
}
}
+ }
-
- // "enrolled as" status
+ // ====================
+
+ // CASE: "enrolled as" status - professional ed
+ &.professional {
+
+ // changes to cover
+ .wrapper-course-image .cover {
+ border-color: $professional-color-lvl3;
+ padding: ($baseline/10);
+ }
+
+ // course enrollment status message
.sts-enrollment {
- position: absolute;
- top: 105px;
- @include left(0);
- display: inline-block;
- text-align: center;
- width: 200px;
+ .label {
+ @extend %text-sr;
+ }
+ // status message
+ .sts-enrollment-value {
+ background: $professional-color-lvl3;
+ }
+ }
+ }
+
+ // CASE: "enrolled as" status - verified
+ &.verified {
+
+ // changes to cover
+ .wrapper-course-image .cover {
+ border-color: $verified-color-lvl1;
+ padding: ($baseline/10);
+ }
+
+ // course enrollment status message
+ .sts-enrollment {
.label {
@extend %text-sr;
}
.deco-graphic {
+ @extend %ui-depth3;
+ width: 40px;
position: absolute;
top: -5px;
- right: -8px;
- }
-
- .sts-enrollment-value {
- @extend %ui-depth1;
- @extend %copy-badge;
- font-size: 0.6em;
- line-height: 1.5em;
- font-weight: 600;
- border-radius: 0;
- padding: 1px ($baseline/2);
- color: white;
- }
- }
-
- // ====================
-
- // CASE: "enrolled as" status - professional ed
- &.professional {
-
- // changes to cover
- .cover {
- border-color: $professional-color-lvl3;
- padding: ($baseline/10);
- }
-
- // course enrollment status message
- .sts-enrollment {
- .label {
- @extend %text-sr;
- }
-
- // status message
- .sts-enrollment-value {
- background: $professional-color-lvl3;
- }
- }
- }
-
- // CASE: "enrolled as" status - verified
- &.verified {
-
- // changes to cover
- .cover {
- border-color: $verified-color-lvl1;
- padding: ($baseline/10);
- }
-
- // course enrollment status message
- .sts-enrollment {
- .label {
- @extend %text-sr;
- }
-
- .deco-graphic {
- @extend %ui-depth3;
- width: 40px;
- position: absolute;
- top: -4px;
- right: -6px;
- }
-
- // status message
- .sts-enrollment-value {
- background: $verified-color-lvl1;
- }
- }
- }
-
- // CASE: "enrolled as" status - honor code
- &.honor {
-
- // changes to cover
- .cover {
- border-color: $honorcode-color-lvl2;
- padding: ($baseline/10);
+ @include right(0);
}
// status message
.sts-enrollment-value {
- background: $honorcode-color-lvl1;
- }
- }
-
- // CASE: "enrolled as" status - auditing
- &.audit {
-
- // changes to cover
- .cover {
- border-color: $audit-color-lvl2;
- padding: ($baseline/10);
- }
-
- // status message
- .sts-enrollment-value {
- background: $audit-color-lvl1;
+ background: $verified-color-lvl1;
}
}
}
+
+ // CASE: "enrolled as" status - honor code
+ &.honor {
+
+ // changes to cover
+ .wrapper-course-image .cover {
+ border-color: $honorcode-color-lvl2;
+ padding: ($baseline/10);
+ }
+
+ // status message
+ .sts-enrollment-value {
+ background: $honorcode-color-lvl1;
+ }
+ }
+
+ // CASE: "enrolled as" status - auditing
+ &.audit {
+
+ // changes to cover
+ .wrapper-course-image .cover {
+ border-color: $audit-color-lvl2;
+ padding: ($baseline/10);
+ }
+
+ // status message
+ .sts-enrollment-value {
+ background: $audit-color-lvl1;
+ }
+ }
}
+}
-
+// +Misc - Uncategorized
+// ====================
+.dashboard .my-courses {
// status - language
.status-language {
@@ -1253,8 +1244,8 @@
.enter-course-blocked{
@include box-sizing(border-box);
+ @include float(left);
display: block;
- float: left;
font: normal 15px/1.6rem $sans-serif;
letter-spacing: 0;
padding: 6px 32px 7px;
@@ -1285,9 +1276,11 @@
@extend .cover;
opacity: 0.5;
}
+}
- // +Dashboard - Banner
- // ====================
+// +Dashboard - Banner
+// ====================
+.dashboard .my-courses {
.dashboard-banner {
&:empty {
diff --git a/lms/static/sass/shared/_header.scss b/lms/static/sass/shared/_header.scss
index e08ff32f1b..45e7bc30c4 100644
--- a/lms/static/sass/shared/_header.scss
+++ b/lms/static/sass/shared/_header.scss
@@ -117,7 +117,7 @@ header.global {
.user {
@include float(right);
- margin-top: 4px;
+ margin-top: ($baseline/4);
> .primary {
display: block;
@@ -135,7 +135,7 @@ header.global {
> a {
@include border-radius(0, 4px, 4px, 0);
@include border-left(none);
- padding: 3px 8px 9px 8px;
+ padding: ($baseline/4) 8px 11px ($baseline/2);
&.shopping-cart {
border-radius: 4px;
@@ -148,7 +148,7 @@ header.global {
}
a.user-link {
- @include padding(3px, 12px, 8px, 8px);
+ @include padding(5px, 12px, 10px, 10px);
position: relative;
text-transform: none;
font-size: 14px;
@@ -196,17 +196,17 @@ header.global {
}
.dropdown-menu {
- background: $border-color-4;
+ background: $white;
border-radius: 4px;
- box-shadow: 0 2px 24px 0 rgba(0,0,0, 0.3);
- border: 1px solid $border-color-3;
+ box-shadow: 0 2px 2px 0 rgba(0,0,0, 0.3);
+ border: 1px solid $gray-l3;
display: none;
margin-top: 0;
padding: 5px 10px;
position: absolute;
@include right(0px);
- top: 34px;
- width: 170px;
+ top: 37px;
+ min-width: 120px;
z-index: 3;
&.expanded {
@@ -221,14 +221,14 @@ header.global {
bottom: 6px solid transparent;
left: 6px solid transparent;
}
- box-shadow: 1px 0 0 0 $border-color-3, 0 -1px 0 0 $border-color-3;
+ box-shadow: 1px 0 0 0 $gray-l3, 0 -1px 0 0 $gray-l3;
content: "";
display: block;
height: 0px;
position: absolute;
@include transform(rotate(-45deg));
@include right(7px);
- top: -6px;
+ top: -5px;
width: 0px;
}
@@ -579,7 +579,7 @@ header.global-new {
li {
display: block;
- border-top: 1px dotted $border-color-2;
+ border-top: 1px solid $gray-l3;
box-shadow: inset 0 1px 0 0 rgba(255,255,255, 0.05);
&:first-child {
diff --git a/lms/templates/dashboard.html b/lms/templates/dashboard.html
index 8c3f1749cf..6aa2c15d5a 100644
--- a/lms/templates/dashboard.html
+++ b/lms/templates/dashboard.html
@@ -74,26 +74,25 @@
-
+
% if len(course_enrollment_pairs) > 0:
- % for course, enrollment in course_enrollment_pairs:
- <% show_courseware_link = (course.id in show_courseware_links_for) %>
- <% cert_status = cert_statuses.get(course.id) %>
- <% show_email_settings = (course.id in show_email_settings_for) %>
- <% course_mode_info = all_course_modes.get(course.id) %>
- <% show_refund_option = (course.id in show_refund_option_for) %>
- <% is_paid_course = (course.id in enrolled_courses_either_paid) %>
- <% is_course_blocked = (course.id in block_courses) %>
- <% course_verification_status = verification_status_by_course.get(course.id, {}) %>
- <% course_requirements = courses_requirements_not_met.get(course.id) %>
- <%include file='dashboard/_dashboard_course_listing.html' args="course=course, enrollment=enrollment, show_courseware_link=show_courseware_link, cert_status=cert_status, show_email_settings=show_email_settings, course_mode_info=course_mode_info, show_refund_option = show_refund_option, is_paid_course = is_paid_course, is_course_blocked = is_course_blocked, verification_status=course_verification_status, course_requirements=course_requirements" />
+ % for dashboard_index, (course, enrollment) in enumerate(course_enrollment_pairs):
+ <% show_courseware_link = (course.id in show_courseware_links_for) %>
+ <% cert_status = cert_statuses.get(course.id) %>
+ <% show_email_settings = (course.id in show_email_settings_for) %>
+ <% course_mode_info = all_course_modes.get(course.id) %>
+ <% show_refund_option = (course.id in show_refund_option_for) %>
+ <% is_paid_course = (course.id in enrolled_courses_either_paid) %>
+ <% is_course_blocked = (course.id in block_courses) %>
+ <% course_verification_status = verification_status_by_course.get(course.id, {}) %>
+ <% course_requirements = courses_requirements_not_met.get(course.id) %>
+ <%include file='dashboard/_dashboard_course_listing.html' args="course=course, enrollment=enrollment, show_courseware_link=show_courseware_link, cert_status=cert_status, show_email_settings=show_email_settings, course_mode_info=course_mode_info, show_refund_option = show_refund_option, is_paid_course = is_paid_course, is_course_blocked = is_course_blocked, verification_status=course_verification_status, course_requirements=course_requirements, dashboard_index=dashboard_index" />
% endfor
-
% else:
@@ -122,11 +121,12 @@
% endfor
% endfor
+
% endif
-