From 3ef0fc1b36b0ecaee7a446abe915b901dd046b79 Mon Sep 17 00:00:00 2001 From: Tim Steiner <tsteiner2@unl.edu> Date: Fri, 11 Jun 2010 20:48:03 +0000 Subject: [PATCH] Supplemental --- document_root/javascript/courses/edit.js | 39 ++++++++++++++++-------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/document_root/javascript/courses/edit.js b/document_root/javascript/courses/edit.js index a47e4d35..74b44957 100644 --- a/document_root/javascript/courses/edit.js +++ b/document_root/javascript/courses/edit.js @@ -536,8 +536,11 @@ function handleChangeDfRemoval() } } -function doesCrosslistExist(subject, courseNumber, courseLetter) +function doesCrosslistExist(subject, courseNumber, courseLetter, includeMarkedForRemoval) { + if (includeMarkedForRemoval === null) { + includeMarkedForRemoval = false; + } var itDoes = false; $('#crosslistingsTable tr').each(function(index) { if ($(this).attr('class') == 'hidden_new_record') { @@ -550,7 +553,8 @@ function doesCrosslistExist(subject, courseNumber, courseLetter) if (courseCodeInputs[0].value == subject && courseCodeInputs[1].value == courseNumber && - courseCodeInputs[2].value == courseLetter) { + courseCodeInputs[2].value == courseLetter && + (!$(this).find('input:last').attr('checked') || includeMarkedForRemoval)) { itDoes = index; } }) @@ -571,7 +575,7 @@ function handleChangeDeliveryMethods() case 'Web': var crosslistExists = doesCrosslistExist(subject, courseNumber, 'X'); - if (this.checked && !crosslistExists) { + if (this.checked && crosslistExists === false) { message = 'Web delivered courses must have a crosslisting ending in an X. It will be created now.'; addCrosslist = true; } else if (!this.checked && crosslistExists !== false) { @@ -595,17 +599,28 @@ function handleChangeDeliveryMethods() }, 'Ok': function() { if (addCrosslist) { - $('[alt=Add Crosslisting]').parent().click(); - var crosslistingRows = $('#crosslistingsTable tr'); - var newCrosslistingRow = $(crosslistingRows[crosslistingRows.length - 3]); - var newCrosslistingInputs = newCrosslistingRow.find('input.courseCodeInput'); - document.foobar = newCrosslistingInputs; - $(newCrosslistingInputs[0]).val(subject); - $(newCrosslistingInputs[1]).val(courseNumber); - $(newCrosslistingInputs[2]).val('X'); + var markedCrosslistExists = doesCrosslistExist(subject, courseNumber, 'X', true); + if (markedCrosslistExists === false) { + $('[alt=Add Crosslisting]').parent().click(); + var crosslistingRows = $('#crosslistingsTable tr'); + var newCrosslistingRow = $(crosslistingRows[crosslistingRows.length - 3]); + var newCrosslistingInputs = newCrosslistingRow.find('input.courseCodeInput'); + $(newCrosslistingInputs[0]).val(subject); + $(newCrosslistingInputs[1]).val(courseNumber); + $(newCrosslistingInputs[2]).val('X'); + } else { + $('#crosslistingsTable tr:eq(' + markedCrosslistExists + ') input[type=checkbox]').attr('checked', false); + } } if (removeCrosslist !== false) { - $('#crosslistingsTable tr:eq(' + removeCrosslist + ') a').click() + var removeLink = $('#crosslistingsTable tr:eq(' + removeCrosslist + ') a'); + if (removeLink) { + removeLink.click(); + } + var removeCheckbox = $('#crosslistingsTable tr:eq(' + removeCrosslist + ') input[type=checkbox]'); + if (removeCheckbox) { + removeCheckbox.attr('checked', true); + } } $(this).dialog('close'); } -- GitLab