diff --git a/cms/static/sass/_settings.scss b/cms/static/sass/_settings.scss index a71b9f199a..b5dcaad9be 100644 --- a/cms/static/sass/_settings.scss +++ b/cms/static/sass/_settings.scss @@ -755,11 +755,12 @@ } &:nth-child(4) { - background: #fb336c; + background: #ef54a1; } - &:nth-child(5) { - background: #ef54a1; + &:nth-child(5), + &.bar-fail { + background: #fb336c; } .letter-grade { diff --git a/cms/templates/settings.html b/cms/templates/settings.html index 37faa7c6a8..8e8ac591d0 100644 --- a/cms/templates/settings.html +++ b/cms/templates/settings.html @@ -18,7 +18,7 @@ var barOrigin; var barWidth; var gradeThresholds; - var GRADES = ['A', 'B', 'C', 'D', 'E']; + var GRADES = ['A', 'B', 'C', 'D', 'F']; $(" :input, textarea").focus(function() { $("label[for='" + this.id + "']").addClass("is-focused"); @@ -29,20 +29,41 @@ (function() { $body = $('body'); $gradeBar = $('.grade-bar'); - gradeThresholds = [100, 80, 70]; + // gradeThresholds = [100, 50]; + setThresholds(); $('.settings-page-menu a').bind('click', showSettingsTab); $('.settings-extra header').bind('click', showSettingsExtras); $body.on('mousedown', '.drag-bar', startDragBar); $('.new-grade-button').bind('click', addNewGrade); $body.on('click', '.remove-button', removeGrade); + renderGradeRanges(); $('.set-date').datepicker({ 'dateFormat': 'm/d/yy' }); })(); + function setThresholds() { + gradeThresholds = []; + $('.grades li').each(function(i) { + gradeThresholds.push(parseInt($(this)[0].style.width)); + }); + } + function addNewGrade(e) { e.preventDefault(); - var $newGradeBar = $('
  • ' + GRADES[$('.grades li').length] + 'remove
  • '); - $('.grades').append($newGradeBar); + var $grades = $('.grades'); + var gradeLength = $('li', $grades).length; + if(gradeLength > 4) { + return; + } + var $newGradeBar = $('
  • ' + GRADES[gradeLength - 1] + 'remove
  • '); + var failBarWidth = parseFloat($('.bar-fail', $grades)[0].style.width); + var lastBarWidth = parseFloat($('li', $grades).eq(gradeLength - 2)[0].style.width); + var targetWidth = failBarWidth + ((lastBarWidth - failBarWidth) / 2); + $newGradeBar.css('width', targetWidth + '%'); + $('.bar-fail', $grades).before($newGradeBar); + setGrades(); + setThresholds(); + renderGradeRanges(); } function removeGrade(e) { @@ -50,6 +71,23 @@ var index = $(this).closest('li').index(); gradeThresholds.splice(index, 1); $(this).closest('li').remove(); + setGrades(); + setThresholds(); + renderGradeRanges(); + } + + function setGrades() { + var $gradeBars = $('.grades li'); + var barCount = $gradeBars.length; + if(barCount <= 2) { + $gradeBars.eq(0).find('.letter-grade').html('Pass'); + $('.bar-fail').find('.letter-grade').html('Fail'); + } else { + $gradeBars.each(function(i) { + $('.letter-grade', this).html(GRADES[i]); + }); + $('.bar-fail').find('.letter-grade').html('F'); + } } function showSettingsTab(e) { @@ -121,7 +159,7 @@
    -
    +

    Course Details

    @@ -388,7 +426,7 @@
    -
    +

    Grading

    @@ -418,27 +456,13 @@
    1. - A - 90-100 - remove -
    2. -
    3. - B - 80-89 - - remove -
    4. -
    5. - C - 70-79 - - remove + Pass +
    6. - F - 0-69 + Fail + - remove