diff --git a/scripts/scheduleInput.js b/scripts/scheduleInput.js --- a/scripts/scheduleInput.js +++ b/scripts/scheduleInput.js @@ -198,10 +198,15 @@ function add_section_n(cnum, name, synon /* unhide the saturday columns if it's used by autocomplete data */ if (days.s) jQuery('#jsrows col.saturday').removeClass('collapsed'); + + return last_section_i - 1; } function add_section(cnum) { - return add_section_n(cnum, '', '', '', '', {m: false, t: false, w: false, h: false, f: false, s: false}, '', '', ''); + var section_i = add_section_n(cnum, '', '', '', '', {m: false, t: false, w: false, h: false, f: false, s: false}, '', '', ''); + if (cnum == slate_permutate_course_free) + course_free_check(cnum); + return section_i; } /** @@ -386,21 +391,20 @@ function course_has_sections(course_i) * This mainly ensures that there is always exactly one course entry * spot, eliminating the need of an ``Add class'' button. * - * \param that + * \param course_i * If this is not being called as a 'change' or 'keyup' event - * handler for a , then that may refer to - * a jQuery object representing the to - * inspect. + * handler for a , then course_i may refer to + * a the course_i to check. */ -function course_free_check(that) +function course_free_check(course_i) { var me; - if (jQuery.type(that) == 'undefined') - me = that; + if (jQuery.type(course_i) == 'number') + me = jQuery('.pclass' + course_i + ' .className'); else me = jQuery(this); - var course_i = me.parent().parent().data('course_i'); + course_i = me.parent().parent().data('course_i'); if (course_i == slate_permutate_course_free && (me.val().length || course_has_sections(course_i))) { /* I am no longer the empty course entry */ @@ -474,7 +478,6 @@ jQuery(document).ready(function() { // Decreases the total number of classes var course_i = jQuery(this).parent().parent().data('course_i'); sectionsOfClass[course_i]--; - course_free_check(jQuery('.pclass' + course_i + ' .className')); // Find the ID cell of the row we're in var row = jQuery(this).parent().parent().find(".sectionIdentifier"); @@ -492,6 +495,7 @@ jQuery(document).ready(function() { jQuery(this).remove(); } }); + course_free_check(course_i); }); jQuery('.className').live('change', course_free_check).live('keyup', course_free_check);