Commit a2d5500f by Frances Botsford

FED clean up of studio outline page

parent 724cc025
...@@ -243,17 +243,17 @@ function createNewUnit(e) { ...@@ -243,17 +243,17 @@ function createNewUnit(e) {
function deleteUnit(e) { function deleteUnit(e) {
e.preventDefault(); e.preventDefault();
_deleteItem($(this).parents('li.leaf'), 'Unit'); _deleteItem($(this).parents('li.courseware-unit'), 'Unit');
} }
function deleteSubsection(e) { function deleteSubsection(e) {
e.preventDefault(); e.preventDefault();
_deleteItem($(this).parents('li.branch'), 'Subsection'); _deleteItem($(this).parents('li.courseware-subsection'), 'Subsection');
} }
function deleteSection(e) { function deleteSection(e) {
e.preventDefault(); e.preventDefault();
_deleteItem($(this).parents('section.branch'), 'Section'); _deleteItem($(this).parents('section.courseware-section'), 'Section');
} }
function _deleteItem($el, type) { function _deleteItem($el, type) {
......
...@@ -3,7 +3,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -3,7 +3,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
function (domReady, $, ui, _, gettext, NotificationView, Draggabilly, ModalUtils, CancelOnEscape, function (domReady, $, ui, _, gettext, NotificationView, Draggabilly, ModalUtils, CancelOnEscape,
DateUtils, ModuleUtils) { DateUtils, ModuleUtils) {
var modalSelector = '.edit-subsection-publish-settings'; var modalSelector = '.edit-section-publish-settings';
var toggleSections = function(e) { var toggleSections = function(e) {
e.preventDefault(); e.preventDefault();
...@@ -21,20 +21,26 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -21,20 +21,26 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
if ($button.hasClass('is-activated')) { if ($button.hasClass('is-activated')) {
$section.addClass('collapsed'); $section.addClass('collapsed');
// first child in order to avoid the icons on the subsection lists which are not in the first child // first child in order to avoid the icons on the subsection lists which are not in the first child
$section.find('header .expand-collapse-icon').removeClass('collapse').addClass('expand'); $section.find('header .expand-collapse').removeClass('collapse').addClass('expand');
} else { } else {
$section.removeClass('collapsed'); $section.removeClass('collapsed');
// first child in order to avoid the icons on the subsection lists which are not in the first child // first child in order to avoid the icons on the subsection lists which are not in the first child
$section.find('header .expand-collapse-icon').removeClass('expand').addClass('collapse'); $section.find('header .expand-collapse').removeClass('expand').addClass('collapse');
} }
}; };
var toggleSubmodules = function(e) { var toggleSubmodules = function(e) {
e.preventDefault(); e.preventDefault();
$(this).toggleClass('expand').toggleClass('collapse'); $(this).toggleClass('expand');
$(this).closest('.branch, .window').toggleClass('collapsed'); $(this).closest('.is-collapsible, .window').toggleClass('collapsed');
}; };
var closeModalNew = function (e) {
$('body').removeClass('dialog-is-shown');
$('.edit-section-publish-settings').removeClass('is-shown');
}
var editSectionPublishDate = function (e) { var editSectionPublishDate = function (e) {
e.preventDefault(); e.preventDefault();
var $modal = $(modalSelector); var $modal = $(modalSelector);
...@@ -45,15 +51,17 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -45,15 +51,17 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
$modal.find('.save-button').hide(); $modal.find('.save-button').hide();
} }
$modal.find('.section-name').html('"' + $(this).closest('.courseware-section').find('.section-name-span').text() + '"'); $modal.find('.section-name').html('"' + $(this).closest('.courseware-section').find('.section-name-span').text() + '"');
ModalUtils.showModal(); //ModalUtils.showModal();
$('body').addClass('dialog-is-shown');
$('.edit-section-publish-settings').addClass('is-shown');
}; };
var saveSetSectionScheduleDate = function (e) { var saveSetSectionScheduleDate = function (e) {
e.preventDefault(); e.preventDefault();
var datetime = DateUtils( var datetime = DateUtils(
$('.edit-subsection-publish-settings .start-date'), $('.edit-section-publish-settings .start-date'),
$('.edit-subsection-publish-settings .start-time') $('.edit-section-publish-settings .start-time')
); );
var locator = $(modalSelector).attr('data-locator'); var locator = $(modalSelector).attr('data-locator');
...@@ -89,10 +97,10 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -89,10 +97,10 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
var $thisSection = $('.courseware-section[data-locator="' + locator + '"]'); var $thisSection = $('.courseware-section[data-locator="' + locator + '"]');
var html = _.template( var html = _.template(
'<span class="published-status">' + '<span class="published-status">' +
'<strong>' + gettext("Will Release:") + '&nbsp;</strong>' + '<strong>' + gettext("Release date:") + '&nbsp;</strong>' +
gettext("{month}/{day}/{year} at {hour}:{minute} UTC") + gettext("{month}/{day}/{year} at {hour}:{minute} UTC") +
'</span>' + '</span>' +
'<a href="#" class="edit-button" data-date="{month}/{day}/{year}" data-time="{hour}:{minute}" data-locator="{locator}">' + '<a href="#" class="edit-release-date action" data-date="{month}/{day}/{year}" data-time="{hour}:{minute}" data-locator="{locator}">' +
gettext("Edit") + gettext("Edit") +
'</a>', '</a>',
{year: datetime.getUTCFullYear(), month: pad2(datetime.getUTCMonth() + 1), day: pad2(datetime.getUTCDate()), {year: datetime.getUTCFullYear(), month: pad2(datetime.getUTCMonth() + 1), day: pad2(datetime.getUTCDate()),
...@@ -100,8 +108,9 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -100,8 +108,9 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
locator: locator}, locator: locator},
{interpolate: /\{(.+?)\}/g}); {interpolate: /\{(.+?)\}/g});
$thisSection.find('.section-published-date').html(html); $thisSection.find('.section-published-date').html(html);
ModalUtils.hideModal(); //ModalUtils.hideModal();
saving.hide(); saving.hide();
closeModalNew();
}); });
}; };
...@@ -159,7 +168,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -159,7 +168,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
var $saveButton = $newSubsection.find('.new-subsection-name-save'); var $saveButton = $newSubsection.find('.new-subsection-name-save');
var $cancelButton = $newSubsection.find('.new-subsection-name-cancel'); var $cancelButton = $newSubsection.find('.new-subsection-name-cancel');
var parent = $(this).parents("section.branch").data("locator"); var parent = $(this).parents("section.courseware-section").data("locator");
$saveButton.data('parent', parent); $saveButton.data('parent', parent);
$saveButton.data('category', $(this).data('category')); $saveButton.data('category', $(this).data('category'));
...@@ -197,7 +206,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -197,7 +206,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
var cancelNewSubsection = function (e) { var cancelNewSubsection = function (e) {
e.preventDefault(); e.preventDefault();
$(this).parents('li.branch').remove(); $(this).parents('li.courseware-subsection').remove();
}; };
var overviewDragger = { var overviewDragger = {
...@@ -310,7 +319,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -310,7 +319,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
}; };
if (!ele.hasClass('collapsed')) { if (!ele.hasClass('collapsed')) {
ele.addClass('collapsed'); ele.addClass('collapsed');
ele.find('.expand-collapse-icon').first().addClass('expand').removeClass('collapse'); ele.find('.expand-collapse').first().addClass('expand').removeClass('collapse');
// onDragStart gets called again after the collapse, so we can't just store a variable in the dragState. // onDragStart gets called again after the collapse, so we can't just store a variable in the dragState.
ele.addClass(this.expandOnDropClass); ele.addClass(this.expandOnDropClass);
} }
...@@ -406,7 +415,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -406,7 +415,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
expandElement: function (ele) { expandElement: function (ele) {
ele.removeClass('collapsed'); ele.removeClass('collapsed');
ele.find('.expand-collapse-icon').first().removeClass('expand').addClass('collapse'); ele.find('.expand-collapse').first().removeClass('expand').addClass('collapse');
}, },
/* /*
...@@ -500,13 +509,12 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -500,13 +509,12 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
} }
}); });
$('.toggle-button-sections').bind('click', toggleSections); $('.toggle-button-sections').bind('click', toggleSections);
$('.expand-collapse-icon').bind('click', toggleSubmodules); $('.expand-collapse').bind('click', toggleSubmodules);
var $body = $('body'); var $body = $('body');
$body.on('click', '.section-published-date .edit-button', editSectionPublishDate); $body.on('click', '.section-published-date .edit-release-date', editSectionPublishDate);
$body.on('click', '.section-published-date .schedule-button', editSectionPublishDate); $body.on('click', '.edit-section-publish-settings .action-save', saveSetSectionScheduleDate);
$body.on('click', '.edit-subsection-publish-settings .save-button', saveSetSectionScheduleDate); $body.on('click', '.edit-section-publish-settings .action-cancel', closeModalNew);
$body.on('click', '.edit-subsection-publish-settings .cancel-button', ModalUtils.hideModal);
$('.new-courseware-section-button').bind('click', addNewSection); $('.new-courseware-section-button').bind('click', addNewSection);
$('.new-subsection-item').bind('click', addNewSubsection); $('.new-subsection-item').bind('click', addNewSubsection);
...@@ -530,7 +538,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe ...@@ -530,7 +538,7 @@ define(["domReady", "jquery", "jquery.ui", "underscore", "gettext", "js/views/fe
'.unit', '.unit',
'.unit-drag-handle', '.unit-drag-handle',
'ol.sortable-unit-list', 'ol.sortable-unit-list',
'li.branch, article.subsection-body' 'li.courseware-subsection, article.subsection-body'
); );
}); });
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
// ==================== // ====================
// needed for poorly scoped margin rules on all content elements // needed for poorly scoped margin rules on all content elements
.branch .sortable-unit-list { .courseware-subsection .sortable-unit-list {
margin-bottom: 0; margin-bottom: 0;
} }
......
// studio - elements - uploads
// ========================
body.course.feature-edit-dialog {
// dialog
.wrapper-dialog {
@extend %ui-depth5;
@include transition(all 0.05s ease-in-out);
position: fixed;
top: 0;
background: $black-t2;
width: 100%;
height: 100%;
text-align: center;
&:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; /* Adjusts for spacing */
}
.dialog {
@include box-sizing(border-box);
box-shadow: 0px 0px 7px $shadow-d1;
border-radius: ($baseline/5);
background-color: $gray-l4;
display: inline-block;
vertical-align: middle;
width: $baseline*23;
padding: 7px;
text-align: left;
.title {
@extend %t-title5;
margin-bottom: ($baseline/2);
font-weight: 600;
color: $black;
}
.message {
@extend %t-copy-sub2;
color: $gray;
}
.error {
color: $white;
}
form {
padding: 0;
.form-content {
box-shadow: 0 0 3px $shadow-d1;
padding: ($baseline*1.5);
background-color: $white;
}
.field {
margin-bottom: ($baseline/2);
}
label {
@include font-size(14);
display: block;
font-weight: bold;
}
input[type="text"] {
@extend %t-copy-sub2;
}
.message-status {
@include border-top-radius(2px);
@include box-sizing(border-box);
@include font-size(14);
display: none;
border-bottom: 2px solid $yellow;
margin: 0 0 20px 0;
padding: 10px 20px;
font-weight: 500;
background: $paleYellow;
.text {
display: inline-block;
}
&.error {
border-color: $red-d2;
background: $red-l1;
color: $white;
}
&.confirm {
border-color: $green-d2;
background: $green-l1;
color: $white;
}
&.is-shown {
display: block;
}
}
.actions {
padding: ($baseline*0.75) $baseline ($baseline/2) $baseline;
.action-item {
@extend %t-action4;
display: inline-block;
margin-right: ($baseline*0.75);
&:last-child {
margin-right: 0;
}
}
.action-primary {
@include blue-button();
@include font-size(12); // needed due to bad button mixins for now
border-color: $blue-d1;
color: $white;
}
a {
color: $blue;
&:hover {
color: $blue-s2;
}
}
}
}
}
}
// ====================
// dialog set-up
.wrapper-dialog {
visibility: hidden;
pointer-events: none;
.dialog {
opacity: 0;
}
}
// dialog showing/hiding
&.dialog-is-shown {
.wrapper-dialog {
-webkit-filter: blur(2px) grayscale(25%);
filter: blur(2px) grayscale(25%);
}
.wrapper-dialog.is-shown {
visibility: visible;
pointer-events: auto;
.dialog {
opacity: 1.0;
}
}
}
}
...@@ -38,3 +38,4 @@ ...@@ -38,3 +38,4 @@
@import 'elements/modal'; // interstitial UI, dialogs, modal windows @import 'elements/modal'; // interstitial UI, dialogs, modal windows
@import 'elements/vendor'; // overrides to vendor-provided styling @import 'elements/vendor'; // overrides to vendor-provided styling
@import 'elements/uploads'; @import 'elements/uploads';
@import 'elements/edit_dialog';
...@@ -3,240 +3,235 @@ ...@@ -3,240 +3,235 @@
.view-outline { .view-outline {
input.courseware-unit-search-input { // page structure
.content-primary,
.content-supplementary {
@include box-sizing(border-box);
float: left; float: left;
width: 260px;
background-color: #fff;
} }
.branch { .content-primary {
width: flex-grid(9, 12);
margin-right: flex-gutter();
.section-item { .no-outline-content {
@include clearfix(); @extend %ui-well;
padding: ($baseline*2);
background-color: $gray-l4;
text-align: center;
color: $gray;
.details { .new-button {
display: block; @include font-size(14);
float: left; margin-left: $baseline;
margin-bottom: 0;
width: 650px; [class^="icon-"] {
margin-right: ($baseline/2);
}
}
}
} }
.gradable-status { .content-supplementary {
float: right; width: flex-grid(3, 12);
position: relative; }
top: -4px;
right: 50px;
width: 100px;
.status-label {
// page header bits
.toggle-button-sections {
@include font-size(12); @include font-size(12);
position: absolute;
top: 2px;
right: -5px;
display: none; display: none;
width: 110px; position: relative;
padding: 5px 40px 5px 10px; float: right;
border-radius: 3px; margin-top: ($baseline/4);
color: $lightGrey; color: $darkGrey;
text-align: right;
font-weight: bold; &.is-shown {
line-height: 16px; display: block;
} }
.menu-toggle { [class^="icon-"] {
z-index: 10; @include font-size(11);
position: absolute; border-radius: 20px;
top: 0; position: relative;
right: 5px; top: -1px;
padding: 5px; display: inline-block;
color: $mediumGrey; margin-right: 2px;
line-height: 5px;
}
&:hover, &.is-active { .label {
color: $blue; display: inline-block;
} }
} }
[class^="icon-"] {
vertical-align: middle; // new section, subsection, unit
margin-top: -5px; .new-section-name,
.new-subsection-name-input {
@include font-size(16);
display: inline-block; display: inline-block;
vertical-align: top;
width: 515px;
padding: ($baseline/4);
} }
.menu { .new-section-name-save,
@include font-size(12); .new-subsection-name-save {
@include transition(opacity $tmg-f2 linear 0s); @include blue-button;
border-radius: 4px; padding: 4px 20px 7px;
box-shadow: 0 1px 2px rgba(0, 0, 0, .2); margin: 0 5px;
z-index: 1; color: #fff !important;
display: none; }
opacity: 0.0;
position: absolute;
top: -1px;
right: 0;
margin: 0;
padding: 8px 12px;
background: $white;
border: 1px solid $mediumGrey;
.new-section-name-cancel,
.new-subsection-name-cancel {
@include white-button;
padding: 4px 20px 7px;
color: #8891a1 !important;
}
li { .new-subsection-item,
width: 115px; .new-unit-item {
margin-bottom: 3px; @extend %ui-btn-flat-outline;
padding-bottom: 3px; width: 100%;
border-bottom: 1px solid $lightGrey; margin: 0 0 ($baseline/2) 0;
border: 1px solid $gray-l3;
padding: ($baseline/2) 0;
color: $gray-l2;
&:last-child {
margin-bottom: 0;
padding-bottom: 0;
border: none;
a { &:hover {
color: $darkGrey; box-shadow: none;
background-image: none;
} }
} }
.courseware-unit-new {
margin-right: ($baseline*1.5);
} }
a {
color: $blue;
&.is-selected { // general action list styles (section and subsection)
font-weight: bold; .expand-collapse {
} @include transition(all $tmg-f2 linear 0s);
} display: inline-block;
vertical-align: top;
margin: 0 ($baseline/4);
padding: 0;
color: $gray-l2;
&:hover {
color: $blue;
} }
// dropdown state .ui-toggle-expansion {
&.is-active { @include transition(all $tmg-f2 ease-in-out 0s);
@include font-size(18);
display: inline-block;
vertical-align: middle;
margin-right: ($baseline/4);
color: $gray-l3;
}
.menu { &.expand .ui-toggle-expansion {
z-index: 1000; @include transform(rotate(-90deg));
display: block; @include transform-origin(50% 50%);
opacity: 1.0;
} }
.menu-toggle {
z-index: 10000;
} }
.actions-list {
display: inline-block;
margin-bottom: 0;
} }
// set state .actions-item {
&.is-set { @include font-size(13);
display: inline-block;
padding: 0 4px;
vertical-align: middle;
.menu-toggle { .action {
color: $blue; min-width: ($baseline*.75);
} color: $gray-l2;
.status-label { &:hover,
display: block; &.isset {
color: $blue; color: $blue;
visibility: visible;
} }
//reset old drag handle style
&.drag-handle {
float: none;
margin: 0;
background: none;
text-align: center;
} }
}
} }
} }
// section styles
.courseware-section { .courseware-section {
@extend %ui-window; @extend %ui-window;
@include transition(background $tmg-avg ease-in-out 0); @include transition(background $tmg-avg ease-in-out 0);
position: relative; position: relative;
margin-top: ($baseline); padding: ($baseline*1.5) $baseline $baseline $baseline;
padding-bottom: ($baseline/2);
&.collapsed { &.collapsed {
padding-bottom: 0; padding-bottom: 0;
} }
label { &.collapsed .subsection-list,
float: left; .collapsed .subsection-list,
line-height: 29px; .collapsed > ol {
} display: none !important;
.datepair {
float: left;
margin-left: 10px;
}
.section-published-date {
position: absolute;
top: 19px;
right: 80px;
padding: 4px 10px;
border-radius: 3px;
background: $lightGrey;
text-align: right;
.published-status {
@include font-size(12);
margin-right: 15px;
strong {
font-weight: bold;
}
} }
.schedule-button { &.new-section {
@include blue-button;
}
.edit-button { header {
@include blue-button; @include clearfix();
height: auto;
border-bottom: 0;
} }
.schedule-button, .expand-collapse {
.edit-button { visibility: hidden;
@include font-size(11);
padding: 3px 15px 5px;
}
} }
.datepair .date, .item-details {
.datepair .time { padding: 25px 0 0 0;
@include font-size(13);
box-shadow: none;
padding-left: 0;
padding-right: 0;
border: none;
background: none;
font-weight: bold;
color: $blue;
cursor: pointer;
}
.datepair .date { .section-name {
width: 80px; float: none;
width: 100%;
} }
.datepair .time {
width: 65px;
} }
&.collapsed .subsection-list,
.collapsed .subsection-list,
.collapsed > ol {
display: none !important;
} }
header { .section {
min-height: 75px;
@include clearfix(); @include clearfix();
min-height: 65px; // needed to align with edit input
margin-bottom: 0;
border: 0;
padding: 0;
.item-details, .section-published-date { // section name area
}
.item-details { .item-details {
display: inline-block;
padding: 20px 0 10px 0;
@include clearfix(); @include clearfix();
display: inline-block;
float: none;
padding: 0 0 ($baseline/2) 0;
.section-name { .section-name {
@include font-size(19); @include font-size(19);
float: left; float: left;
width: 400px;
margin-right: 10px; margin-right: 10px;
width: 350px;
font-weight: bold;
color: $blue;
} }
.section-name-span { .section-name-span {
...@@ -244,7 +239,7 @@ ...@@ -244,7 +239,7 @@
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: $orange; color: $blue;
} }
} }
...@@ -268,11 +263,43 @@ ...@@ -268,11 +263,43 @@
padding: 7px 20px 7px; padding: 7px 20px 7px;
} }
} }
}
// section specific action styles
.item-actions {
top: 0;
}
.actions-item {
padding: 0 0 0 8px;
&:last-child {
padding-right: 4px;
}
&.pubdate {
padding-right: 0;
}
.action {
&.pubdate {
visibility: hidden;
}
&:hover,
&.isset {
color: $blue;
visibility: visible;
}
}
.section-published-date { .section-published-date {
float: right; padding: 4px 10px;
border-radius: 3px; border-radius: 3px;
background: $lightGrey; background: $lightGrey;
text-align: right;
.published-status { .published-status {
@include font-size(12); @include font-size(12);
...@@ -283,38 +310,84 @@ ...@@ -283,38 +310,84 @@
} }
} }
.schedule-button { &.released .section-published-date {
@include blue-button; background-color: transparent;
color: $gray-l1;
a {
color: $gray-l2;
&:hover {
color: $blue;
}
}
}
}
}
}
} }
.edit-button {
@include blue-button; // subsection styles
.courseware-subsection {
@include clearfix();
margin-bottom: 5px;
&.visible {
border-left: 5px solid $green;
} }
.schedule-button, &.mixed {
.edit-button { border-left: 5px solid $yellow-s1;
@include font-size(11); }
padding: 0 15px 2px 15px;
.status {
@extend %cont-text-sr;
}
.section-item {
@include transition(background $tmg-avg ease-in-out 0);
@include font-size(13);
position: relative;
display: block;
background-color: $gray-l5;
padding: 6px 8px 8px 16px;
&:hover {
background: $blue-l5;
.item-actions {
display: block;
} }
} }
&.editing {
background: $orange-l4;
}
}
.details {
display: block;
margin-bottom: 0;
width: 600px;
a {
color: $baseFontColor;
}
}
}
// gradable drop down
.gradable-status { .gradable-status {
position: absolute; display: inline-block;
top: 20px; position: relative;
right: 70px;
width: 145px;
.status-label { .status-label {
@include font-size(12); @include font-size(12);
width: 110px;
padding: 5px 40px 5px 10px;
border-radius: 3px; border-radius: 3px;
position: absolute; color: transparent;
top: 0;
right: 2px;
display: none;
width: 100px;
padding: 10px 35px 10px 10px;
background: $lightGrey;
color: $lightGrey;
text-align: right; text-align: right;
font-weight: bold; font-weight: bold;
line-height: 16px; line-height: 16px;
...@@ -323,34 +396,44 @@ ...@@ -323,34 +396,44 @@
.menu-toggle { .menu-toggle {
z-index: 10; z-index: 10;
position: absolute; position: absolute;
top: 2px; top: 0;
right: 5px; right: 5px;
padding: 5px; padding: 2px 5px;
color: $lightGrey; color: $mediumGrey;
&:hover, &.is-active { &:hover,
&.is-active {
color: $blue; color: $blue;
} }
&:focus {
outline: 0;
} }
[class^="icon-"] {
vertical-align: middle;
margin-top: -5px;
display: inline-block;
}
}
// gradable dropdown menu default
.menu { .menu {
@include font-size(12); @include font-size(12);
@include transition(opacity $tmg-f2 linear 0s, display $tmg-f2 linear 0s); @include transition(opacity $tmg-f2 linear 0s);
border-radius: 4px;
box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
z-index: 1;
display: none; display: none;
opacity: 0.0; opacity: 0.0;
z-index: 1;
position: absolute; position: absolute;
top: -1px; top: -4px;
left: 2px; right: 0;
margin: 0; margin: 0;
box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
border: 1px solid $mediumGrey;
border-radius: 4px;
padding: 8px 12px; padding: 8px 12px;
background: $white; background: $white;
border: 1px solid $mediumGrey;
li { li {
width: 115px; width: 115px;
...@@ -363,13 +446,14 @@ ...@@ -363,13 +446,14 @@
padding-bottom: 0; padding-bottom: 0;
border: none; border: none;
a { .gradable-status-notgraded {
color: $darkGrey; color: $darkGrey;
} }
} }
} }
a { a {
color: $blue;
&.is-selected { &.is-selected {
font-weight: bold; font-weight: bold;
...@@ -377,7 +461,7 @@ ...@@ -377,7 +461,7 @@
} }
} }
// dropdown state // gradable dropdown state
&.is-active { &.is-active {
.menu { .menu {
...@@ -386,7 +470,6 @@ ...@@ -386,7 +470,6 @@
opacity: 1.0; opacity: 1.0;
} }
.menu-toggle { .menu-toggle {
z-index: 10000; z-index: 10000;
} }
...@@ -404,220 +487,63 @@ ...@@ -404,220 +487,63 @@
color: $blue; color: $blue;
} }
} }
float: left;
padding: 21px 0 0;
}
}
.item-actions {
margin-top: 21px;
margin-right: 12px;
.edit-button,
.delete-button {
margin-top: -3px;
}
}
.expand-collapse-icon {
@include transition(none);
float: left;
margin: 25px 6px 16px 16px;
&.expand {
background-position: 0 0;
}
&.collapsed {
}
}
.drag-handle {
margin-left: 11px;
}
} }
h3 { // unit styles
@include font-size(19); .courseware-unit {
font-weight: 700; margin: ($baseline/4) 0 0 ($baseline*1.75);
color: $blue;
}
.section-name-span {
@include transition(color $tmg-f2 linear 0s);
cursor: pointer;
&:hover {
color: $orange;
}
}
.section-name-form {
margin-bottom: 15px;
}
.section-name-edit {
input {
@include font-size(16);
}
.save-button {
@include blue-button;
padding: 7px 20px 7px;
margin-right: 5px;
}
.cancel-button {
@include white-button;
padding: 7px 20px 7px;
}
}
h4 {
@include font-size(12);
color: #878e9d;
strong {
font-weight: bold;
}
}
.list-header {
@include linear-gradient(top, transparent, rgba(0, 0, 0, .1));
background-color: #ced2db;
border-radius: 3px 3px 0 0;
}
.subsection-list {
margin: 0 12px;
> ol {
@include tree-view;
border-top-width: 0;
}
}
&.new-section {
header {
@include clearfix();
height: auto;
}
.expand-collapse-icon {
visibility: hidden;
}
.item-details {
padding: 25px 0 0 0;
.section-name { &.add-new-unit {
float: none; margin-right: ($baseline*1.75);
width: 100%;
}
}
}
} }
.toggle-button-sections { .section-item {
@include font-size(12); border: 0;
display: none; background-color: $white;
position: relative;
float: right;
margin-top: ($baseline/4);
color: $darkGrey;
&.is-shown {
display: block;
} }
[class^="icon-"] { .public-item {
@include font-size(11); color: $black;
border-radius: 20px;
position: relative;
top: -1px;
display: inline-block;
margin-right: 2px;
line-height: 5px;
} }
.label { .private-item {
display: inline-block; color: $gray-l1;
}
} }
.new-section-name, .draft-item {
.new-subsection-name-input { color: $yellow-d1;
width: 515px;
} }
.new-section-name-save, .draft-item:after,
.new-subsection-name-save { .public-item:after,
@include blue-button; .private-item:after {
padding: 4px 20px 7px; margin-left: 3px;
margin: 0 5px; font-size: 9px;
color: #fff !important; font-weight: 600;
text-transform: uppercase;
} }
.new-section-name-cancel, .draft-item:after {
.new-subsection-name-cancel { content: "- draft";
@include white-button;
padding: 4px 20px 7px;
color: #8891a1 !important;
} }
.dummy-calendar { .private-item:after {
display: none; content: "- private";
position: absolute;
top: 55px;
left: 110px;
z-index: 9999;
border: 1px solid #3C3C3C;
box-shadow: 0 1px 15px rgba(0, 0, 0, .2);
} }
.preview {
background: url(../img/preview.jpg) center top no-repeat;
} }
.edit-subsection-publish-settings {
display: none;
position: fixed;
top: 100px;
left: 50%;
z-index: 99999;
width: 600px;
margin-left: -300px;
background: #fff;
text-align: center;
.settings {
padding: 40px;
}
h3 { // modal to edit section publish settings
@include font-size(34); .edit-section-publish-settings {
font-weight: 300;
}
.picker { .picker {
@include clearfix(); @include clearfix();
margin: 30px 0 65px;
.field { .field {
float: left; float: left;
margin-right: ($baseline/2); margin-right: ($baseline/2);
&:first-child {
margin-left: ($baseline*5);
}
&:last-child {
margin-right: 0;
}
label, input { label, input {
display: block; display: block;
text-align: left; text-align: left;
...@@ -662,12 +588,7 @@ ...@@ -662,12 +588,7 @@
} }
} }
.collapse-all-button {
@include font-size(13);
float: right;
margin-top: 10px;
color: $darkGrey;
}
// UI: DnD - specific elems/cases - section // UI: DnD - specific elems/cases - section
.courseware-section { .courseware-section {
......
<section class="courseware-section new-section">
<header>
<a href="#" data-tooltip="${_('Collapse/expand this section')}" class="expand-collapse-icon collapse"></a>
<div class="item-details">
<h3 class="section-name">
<span class="section-name-span">Click here to set the section name</span>
<form class="section-name-form">
<input type="text" value="${_('New Section Name')}" class="new-section-name" />
<input type="submit" class="new-section-name-save" data-parent="${parent_locator}"
data-category="${new_section_category}" value="${_('Save')}" />
<input type="button" class="new-section-name-cancel" value="$(_('Cancel')}" /></h3>
</form>
</div>
<div class="item-actions">
<a href="#" data-tooltip="${_('Delete this section')}" class="delete-button delete-section-button"><span class="delete-icon"></span></a>
<span data-tooltip="${_('Drag to re-order')}" class="drag-handle"></span>
</div>
</header>
</section>
<section class="courseware-section new-section is-collapsible is-draggable">
<header>
<a href="#" data-tooltip="${_('Expand/collapse this section')}" class="action expand-collapse"><i class="icon-caret-down ui-toggle-dd"></i><span class="sr">${_('Expand/collapse this section')}</span></a>
<div class="item-details">
<h3 class="section-name">
<form class="section-name-form">
<input type="text" value="New Section Name" class="new-section-name" />
<input type="submit" class="new-section-name-save" data-parent="${parent_locator}"
data-category="${new_section_category}" value="Save" />
<input type="button" class="new-section-name-cancel" value="Cancel" />
</form>
</h3>
</div>
</header>
</section>
<li class="collapsed">
<div class="section-item editing">
<form class="new-subsection-form">
<span class="subsection-name">
<input type="text" value="${_('New Subsection')}" class="new-subsection-name-input" />
</span>
<input type="submit" value="${_('Save')}" class="new-subsection-name-save" />
<input type="button" value="${_('Cancel')}" class="new-subsection-name-cancel" />
</form>
</div>
<ol>
<li>
<a href="unit.html" class="new-unit-item">
<i class="icon-plus"></i> ${_('New Unit')}
</a>
</li>
</ol>
</li>
<div class="no-outline-content">
<p><%= gettext("You haven't added any sections to your course outline.") %><a href="#" class="button new-button"><i class="icon-plus"></i><%= gettext("Add your first section") %></a></p>
</div>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
from xmodule.modulestore.django import loc_mapper from xmodule.modulestore.django import loc_mapper
%> %>
<%block name="title">${_("Course Outline")}</%block> <%block name="title">${_("Course Outline")}</%block>
<%block name="bodyclass">is-signedin course view-outline</%block> <%block name="bodyclass">is-signedin course view-outline feature-edit-dialog</%block>
<%namespace name='static' file='static_content.html'/> <%namespace name='static' file='static_content.html'/>
<%namespace name="units" file="widgets/units.html" /> <%namespace name="units" file="widgets/units.html" />
...@@ -49,26 +49,28 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -49,26 +49,28 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
<%block name="header_extras"> <%block name="header_extras">
<script type="text/template" id="new-section-template"> <script type="text/template" id="new-section-template">
<section class="courseware-section branch new-section"> <section class="courseware-section new-section is-collapsible is-draggable">
<header> <header>
<a href="#" data-tooltip="${_('Collapse/expand this section')}" class="expand-collapse-icon collapse"></a> <a href="#" data-tooltip="${_('Expand/collapse this section')}" class="action expand-collapse"><i class="icon-caret-down ui-toggle-dd"></i><span class="sr">${_('Expand/collapse this section')}</span></a>
<div class="item-details"> <div class="item-details">
<h3 class="section-name"> <h3 class="section-name">
<form class="section-name-form"> <form class="section-name-form">
<input type="text" value="${_('New Section Name')}" class="new-section-name" /> <input type="text" value="${_('New Section Name')}" class="new-section-name" />
<input type="submit" class="new-section-name-save" data-parent="${parent_locator}" <input type="submit" class="new-section-name-save" data-parent="${parent_locator}"
data-category="${new_section_category}" value="${_('Save')}" /> data-category="${new_section_category}" value="${_('Save')}" />
<input type="button" class="new-section-name-cancel" value="${_('Cancel')}" /></h3> <input type="button" class="new-section-name-cancel" value="${_('Cancel')}" />
</form> </form>
</h3>
</div> </div>
</header> </header>
</section> </section>
</script> </script>
<script type="text/template" id="blank-slate-template"> <script type="text/template" id="blank-slate-template">
<section class="courseware-section branch new-section"> <section class="courseware-section new-section">
<header> <header>
<a href="#" data-tooltip="${_('Collapse/expand this section')}" class="expand-collapse-icon collapse"></a> <a href="#" data-tooltip="${_('Expand/collapse this section')}" class="action expand-collapse"><i class="icon-caret-down ui-toggle-dd"></i><span class="sr">${_('Expand/collapse this section')}</span></a>
<div class="item-details"> <div class="item-details">
<h3 class="section-name"> <h3 class="section-name">
<span class="section-name-span">Click here to set the section name</span> <span class="section-name-span">Click here to set the section name</span>
...@@ -88,10 +90,9 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -88,10 +90,9 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
</script> </script>
<script type="text/template" id="new-subsection-template"> <script type="text/template" id="new-subsection-template">
<li class="branch collapsed"> <li class="collapsed">
<div class="section-item editing"> <div class="section-item editing">
<form class="new-subsection-form"> <form class="new-subsection-form">
<span class="folder-icon"></span>
<span class="subsection-name"> <span class="subsection-name">
<input type="text" value="${_('New Subsection')}" class="new-subsection-name-input" /> <input type="text" value="${_('New Subsection')}" class="new-subsection-name-input" />
</span> </span>
...@@ -102,12 +103,18 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -102,12 +103,18 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
<ol> <ol>
<li> <li>
<a href="unit.html" class="new-unit-item"> <a href="unit.html" class="new-unit-item">
<span class="new-unit-icon"></span>${_('New Unit')} <i class="icon-plus"></i> ${_('New Unit')}
</a> </a>
</li> </li>
</ol> </ol>
</li> </li>
</script> </script>
<script type="text/template" id="no-outline-content">
<div class="no-outline-content">
<p>${_("You haven't added any sections to your course outline yet.")} <a href="#" class="button new-button"><i class="icon-plus"></i>${_("Add your first section")}</a></p>
</div>
</script>
</%block> </%block>
<%block name="content"> <%block name="content">
...@@ -135,8 +142,9 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -135,8 +142,9 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
</header> </header>
</div> </div>
<div class="main-wrapper"> <div class="wrapper-content wrapper">
<div class="inner-wrapper"> <section class="content">
<article class="content-primary" role="main">
<div class="wrapper-dnd"> <div class="wrapper-dnd">
<% <%
...@@ -151,15 +159,21 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -151,15 +159,21 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
context_course.location.course_id, section.location, False, True context_course.location.course_id, section.location, False, True
) )
%> %>
<section class="courseware-section branch is-draggable" data-parent="${course_locator}" <section class="courseware-section is-collapsible is-draggable" data-parent="${course_locator}"
data-locator="${section_locator}"> data-locator="${section_locator}">
<%include file="widgets/_ui-dnd-indicator-before.html" /> <%include file="widgets/_ui-dnd-indicator-before.html" />
<header> <header class="section">
<a href="#" data-tooltip="${_('Expand/collapse this section')}" class="expand-collapse-icon collapse"></a> <a href="#" data-tooltip="${_('Expand/collapse this section')}" class="action expand-collapse"><i class="icon-caret-down ui-toggle-expansion"></i><span class="sr">${_('Expand/collapse this section')}</span></a>
<div class="item-details" data-locator="${section_locator}"> <div class="item-details" data-locator="${section_locator}">
<h3 class="section-name" data-name="${section.display_name_with_default | h}"></h3> <h3 class="section-name" data-name="${section.display_name_with_default | h}"></h3>
</div>
<div class="item-actions">
<ul class="actions-list">
<li class="actions-item pubdate">
<div class="section-published-date"> <div class="section-published-date">
<% <%
if section.start is not None: if section.start is not None:
...@@ -170,28 +184,26 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -170,28 +184,26 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
start_time_str = '' start_time_str = ''
%> %>
%if section.start is None: %if section.start is None:
<span class="published-status">${_("This section has not been released.")}</span> <span class="published-status">${_("This section is not scheduled for release")}</span>
<a href="#" class="schedule-button" data-date="" data-time="" data-locator="${section_locator}">${_("Schedule")}</a> <a href="#" class="edit-release-date action" data-date="" data-time="" data-locator="${section_locator}"><i class="icon-time"></i> <span class="sr">${_("Schedule")}</span></a>
%else: %else:
<span class="published-status"><strong>${_("Will Release:")}</strong> <span class="published-status"><strong>${_("Release date:")}</strong>
${date_utils.get_default_time_display(section.start)}</span> ${date_utils.get_default_time_display(section.start)}</span>
<a href="#" class="edit-button" data-date="${start_date_str}" <a href="#" class="edit-release-date action" data-date="${start_date_str}" data-time="${start_time_str}" data-locator="${section_locator}"><i class="icon-time"></i> <span class="sr">${_("Edit section release date")}</span></a>
data-time="${start_time_str}" data-locator="${section_locator}">${_("Edit")}</a>
%endif %endif
</div> </div>
</div> </li>
<li class="actions-item delete">
<div class="item-actions"> <a href="#" data-tooltip="${_('Delete this section')}" class="action delete-section-button"><i class="icon-trash"></i> <span class="sr">Delete section</span></a>
<a href="#" data-tooltip="${_('Delete this section')}" class="delete-button delete-section-button"><span class="delete-icon"></span></a> </li>
<span data-tooltip="${_('Drag to reorder')}" class="drag-handle section-drag-handle"></span> <li class="actions-item drag">
<span data-tooltip="${_('Drag to reorder')}" class="drag-handle section-drag-handle action"><i class="icon-ellipsis-vertical"></i><span class="sr"> ${_("Drag to reorder section")}</span></span>
</li>
</ul>
</div> </div>
</header> </header>
<div class="subsection-list"> <div class="subsection-list">
<div class="list-header">
<a href="#" class="new-subsection-item" data-category="${new_subsection_category}">
<span class="new-folder-icon"></span>${_("New Subsection")}
</a>
</div>
<ol class="sortable-subsection-list"> <ol class="sortable-subsection-list">
% for subsection in section.get_children(): % for subsection in section.get_children():
<% <%
...@@ -199,26 +211,32 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -199,26 +211,32 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
context_course.location.course_id, subsection.location, False, True context_course.location.course_id, subsection.location, False, True
) )
%> %>
<li class="courseware-subsection branch collapsed id-holder is-draggable" <li class="courseware-subsection collapsed id-holder is-draggable"
data-parent="${section_locator}" data-locator="${subsection_locator}"> data-parent="${section_locator}" data-locator="${subsection_locator}">
<%include file="widgets/_ui-dnd-indicator-before.html" /> <%include file="widgets/_ui-dnd-indicator-before.html" />
<div class="section-item"> <div class="section-item">
<div class="details"> <div class="details">
<a href="#" data-tooltip="${_('Expand/collapse this subsection')}" class="expand-collapse-icon expand"></a> <a href="#" data-tooltip="${_('Expand/collapse this subsection')}" class="action expand-collapse"><i class="icon-caret-down ui-toggle-expansion"></i><span class="sr">${_('Expand/collapse this subsection')}</span></a>
<a href="${subsection_locator.url_reverse('subsection')}"> <a href="${subsection_locator.url_reverse('subsection')}">
<span class="folder-icon"></span>
<span class="subsection-name"><span class="subsection-name-value">${subsection.display_name_with_default}</span></span> <span class="subsection-name"><span class="subsection-name-value">${subsection.display_name_with_default}</span></span>
</a> </a>
</div> </div>
<div class="gradable-status" data-initial-status="${subsection.format if subsection.format is not None else _('Not Graded')}">
</div>
<div class="item-actions"> <div class="item-actions">
<a href="#" data-tooltip="${_('Delete this subsection')}" class="delete-button delete-subsection-button"><span class="delete-icon"></span></a>
<span data-tooltip="${_('Drag to reorder')}" class="drag-handle subsection-drag-handle"></span> <ul class="actions-list">
<li class="actions-item grades">
<div class="gradable-status" data-initial-status="${subsection.format if subsection.format is not None else _('Not Graded')}"></div>
</li>
<li class="actions-item delete">
<a href="#" data-tooltip="${_('Delete this subsection')}" class="action delete-subsection-button"><i class="icon-trash"></i> <span class="sr">${_("Delete subsection")}</span></a>
</li>
<li class="actions-item drag">
<span data-tooltip="${_('Drag to reorder')}" class="drag-handle subsection-drag-handle action"><i class="icon-ellipsis-vertical"></i></span>
</li>
</ul>
</div> </div>
</div> </div>
${units.enum_units(subsection)} ${units.enum_units(subsection)}
...@@ -230,6 +248,13 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -230,6 +248,13 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
<%include file="widgets/_ui-dnd-indicator-initial.html" /> <%include file="widgets/_ui-dnd-indicator-initial.html" />
</li> </li>
</ol> </ol>
<div class="list-header new-subsection">
<a href="#" class="new-subsection-item" data-category="${new_subsection_category}">
<i class="icon-plus"></i> ${_("New Subsection")}
</a>
</div>
</div> </div>
<%include file="widgets/_ui-dnd-indicator-after.html" /> <%include file="widgets/_ui-dnd-indicator-after.html" />
...@@ -237,28 +262,62 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v ...@@ -237,28 +262,62 @@ require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/v
% endfor % endfor
</article> </article>
</div> </div>
</article>
<aside class="content-supplementary" role="complimentary">
<div class="bit">
<h3 class="title-3">${_("What can I do on this page?")}</h3>
<p>${_("You can create new sections and subsections, set the release date for sections, and create new units in existing subsections. You can set the assignment type for subsections that are to be graded, and you can open a subsection for further editing.")}</p>
<p>${_("In addition, you can drag and drop sections, subsections, and units to reorganize your course.")}</p>
</div> </div>
</aside>
</section>
</div> </div>
<footer></footer> <footer></footer>
<div class="edit-subsection-publish-settings showAsModal"> <div
<div class="settings"> class="wrapper wrapper-dialog wrapper-dialog-edit-sectionrelease edit-section-publish-settings"
<h3>${_("Section Release Date")}</h3> aria-describedby="dialog-edit-sectionrelease-description"
<div class="picker datepair"> aria-labelledby="dialog-edit-sectionrelease-title"
<div class="field field-start-date"> aria-hidden=""
<label for="">${_("Release Day")}</label> role="dialog">
<div class="dialog confirm">
<form class="edit-sectionrelease-dialog" method="POST" action="#" enctype="multipart/form-data">
<div class="form-content">
<h2 class="title dialog-edit-sectionrelease-title">${_("Section Release Date")}</h2>
<p id="dialog-edit-sectionrelease-description" class="message">${_('On the date set below, this section - {name} - will be released to students. Any units marked private will only be visible to admins.').format(name='<strong class="section-name"></strong>')}</p>
<ul class="list-input picker datepair">
<li class="field field-start-date">
<label for="start_date">${_("Release Day")}</label>
<input class="start-date date" type="text" name="start_date" value="" placeholder="MM/DD/YYYY" class="date" size='15' autocomplete="off"/> <input class="start-date date" type="text" name="start_date" value="" placeholder="MM/DD/YYYY" class="date" size='15' autocomplete="off"/>
</div> </li>
<div class="field field-start-time"> <li class="field field-start-time">
<label for="">${_("Release Time")} (<abbr title="${_("Coordinated Universal Time")}">UTC</abbr>)</label> <label for="start_time">${_("Release Time")} (<abbr title="${_("Coordinated Universal Time")}">UTC</abbr>)</label>
<input class="start-time time" type="text" name="start_time" value="" placeholder="HH:MM" class="time" size='10' autocomplete="off"/> <input class="start-time time" type="text" name="start_time" value="" placeholder="HH:MM" class="time" size='10' autocomplete="off"/>
</div> </li>
</ul>
<div class="description">
<p>${_('On the date set above, this section - {name} - will be released to students. Any units marked private will only be visible to admins.').format(name='<strong class="section-name"></strong>')}</p>
</div> </div>
<div class="actions">
<h3 class="sr">${_("Form Actions")}</h3>
<ul>
<li class="action-item">
<a href="#" class="button action-primary action-save">${_("Save")}</a>
</li>
<li class="action-item">
<a href="#" class="button action-secondary action-cancel">${_("Cancel")}</a>
</li>
</ul>
</div> </div>
<a href="#" class="save-button">${_("Save")}</a><a href="#" class="cancel-button">${_("Cancel")}</a> </form>
</div> </div>
</div> </div>
</%block> </%block>
...@@ -191,7 +191,6 @@ require(["domReady!", "jquery", "js/models/module_info", "coffee/src/views/unit" ...@@ -191,7 +191,6 @@ require(["domReady!", "jquery", "js/models/module_info", "coffee/src/views/unit"
<ol> <ol>
<li> <li>
<a href="${subsection_url}" class="section-item"> <a href="${subsection_url}" class="section-item">
<span class="folder-icon"></span>
<span class="subsection-name"><span class="subsection-name-value">${subsection.display_name_with_default}</span></span> <span class="subsection-name"><span class="subsection-name-value">${subsection.display_name_with_default}</span></span>
</a> </a>
${units.enum_units(subsection, actions=False, selected=unit.location)} ${units.enum_units(subsection, actions=False, selected=unit.location)}
......
...@@ -18,7 +18,7 @@ This def will enumerate through a passed in subsection and list all of the units ...@@ -18,7 +18,7 @@ This def will enumerate through a passed in subsection and list all of the units
<% <%
unit_locator = loc_mapper().translate_location(context_course.location.course_id, unit.location, False, True) unit_locator = loc_mapper().translate_location(context_course.location.course_id, unit.location, False, True)
%> %>
<li class="courseware-unit leaf unit is-draggable" data-locator="${unit_locator}" <li class="courseware-unit unit is-draggable" data-locator="${unit_locator}"
data-parent="${subsection_locator}"> data-parent="${subsection_locator}">
<%include file="_ui-dnd-indicator-before.html" /> <%include file="_ui-dnd-indicator-before.html" />
...@@ -32,14 +32,18 @@ This def will enumerate through a passed in subsection and list all of the units ...@@ -32,14 +32,18 @@ This def will enumerate through a passed in subsection and list all of the units
%> %>
<div class="section-item ${selected_class}"> <div class="section-item ${selected_class}">
<a href="${unit_locator.url_reverse('unit')}" class="${unit_state}-item"> <a href="${unit_locator.url_reverse('unit')}" class="${unit_state}-item">
<span class="${unit.scope_ids.block_type}-icon"></span>
<span class="unit-name">${unit.display_name_with_default}</span> <span class="unit-name">${unit.display_name_with_default}</span>
</a> </a>
% if actions: % if actions:
<div class="item-actions"> <div class="item-actions">
<a href="#" data-tooltip="Delete this unit" class="delete-button" data-locator="${unit_locator}"> <ul class="actions-list">
<span class="delete-icon"></span></a> <li class="actions-item delete">
<span data-tooltip="Drag to sort" class="drag-handle unit-drag-handle"></span> <a href="#" data-tooltip="Delete this unit" class="delete-unit-button action" data-locator="${unit_locator}"><i class="icon-trash"></i><span class="sr">Delete unit</span></a>
</li>
<li class="actions-item drag">
<span data-tooltip="Drag to sort" class="drag-handle unit-drag-handle action"><i class="icon-ellipsis-vertical"></i></span>
</li>
</ul>
</div> </div>
% endif % endif
</div> </div>
...@@ -47,11 +51,11 @@ This def will enumerate through a passed in subsection and list all of the units ...@@ -47,11 +51,11 @@ This def will enumerate through a passed in subsection and list all of the units
<%include file="_ui-dnd-indicator-after.html" /> <%include file="_ui-dnd-indicator-after.html" />
</li> </li>
% endfor % endfor
<li> <li class="courseware-unit add-new-unit">
<%include file="_ui-dnd-indicator-initial.html" /> <%include file="_ui-dnd-indicator-initial.html" />
<a href="#" class="new-unit-item" data-category="${new_unit_category}" data-parent="${subsection_locator}"> <a href="#" class="new-unit-item" data-category="${new_unit_category}" data-parent="${subsection_locator}">
<span class="new-unit-icon"></span>New Unit <i class="icon-plus"></i> New Unit
</a> </a>
</li> </li>
</ol> </ol>
......
...@@ -354,8 +354,8 @@ ...@@ -354,8 +354,8 @@
} }
@mixin tree-view { @mixin tree-view {
border: 1px solid $mediumGrey; border: 0;
background: $lightGrey; background: $white;
.branch { .branch {
margin-bottom: 0; margin-bottom: 0;
...@@ -374,7 +374,7 @@ ...@@ -374,7 +374,7 @@
font-size: 13px; font-size: 13px;
&:hover { &:hover {
background: $orange-l4; background: $blue-l5;
.item-actions { .item-actions {
display: block; display: block;
...@@ -403,11 +403,11 @@ ...@@ -403,11 +403,11 @@
} }
.private-item { .private-item {
color: #a4aab7; color: $gray-l1;
} }
.draft-item { .draft-item {
color: #9f7d10; color: $yellow-d1;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment