Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java =================================================================== diff -u -racd1f9fc06208511d5f1af8b80b89b1566a8e0e3 -r529adc13063b7d012d49a4c7ed47a27716c76a94 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision acd1f9fc06208511d5f1af8b80b89b1566a8e0e3) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 529adc13063b7d012d49a4c7ed47a27716c76a94) @@ -30,6 +30,7 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; +import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -335,9 +336,9 @@ */ private ActionForward newInstruction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - int count = NumberUtils.stringToInt(request.getParameter(AuthoringAction.INSTRUCTION_ITEM_COUNT), 0); - List instructionList = new ArrayList(++count); - for (int idx = 0; idx < count; idx++) { + int numberOfInstructions = getNumberOfInstructionsInRequest(request); + List instructionList = new ArrayList(++numberOfInstructions); + for (int idx = 0; idx < numberOfInstructions; idx++) { String item = request.getParameter(AuthoringAction.INSTRUCTION_ITEM_DESC_PREFIX + idx); if (item == null) { instructionList.add(""); @@ -360,10 +361,10 @@ */ private ActionForward removeInstruction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - int count = NumberUtils.stringToInt(request.getParameter(AuthoringAction.INSTRUCTION_ITEM_COUNT), 0); + int numberOfInstructions = getNumberOfInstructionsInRequest(request); int removeIdx = NumberUtils.stringToInt(request.getParameter("removeIdx"), -1); - List instructionList = new ArrayList(count - 1); - for (int idx = 0; idx < count; idx++) { + List instructionList = new ArrayList(numberOfInstructions - 1); + for (int idx = 0; idx < numberOfInstructions; idx++) { String item = request.getParameter(AuthoringAction.INSTRUCTION_ITEM_DESC_PREFIX + idx); if (idx == removeIdx) { continue; @@ -931,6 +932,22 @@ return instructionList; } + + /** + * Get number of instruction items in the HttpRequest + * + * @param request the HttpServletRequest + * @return numberOfInstruction the number of instructions in the request + */ + private int getNumberOfInstructionsInRequest(HttpServletRequest request) { + int numberOfInstructions = 0; + Enumeration e = request.getParameterNames(); + while (e.hasMoreElements()){ + if (e.nextElement().toString().indexOf(AuthoringAction.INSTRUCTION_ITEM_DESC_PREFIX) != -1) + numberOfInstructions++; + } + return numberOfInstructions; + } /** * Get back relative ActionForward from request. Index: lams_tool_larsrc/web/includes/javascript/rsrccommon.js =================================================================== diff -u -rf393908c737e5401dda3b995bacb6e4c4a5e5a50 -r529adc13063b7d012d49a4c7ed47a27716c76a94 --- lams_tool_larsrc/web/includes/javascript/rsrccommon.js (.../rsrccommon.js) (revision f393908c737e5401dda3b995bacb6e4c4a5e5a50) +++ lams_tool_larsrc/web/includes/javascript/rsrccommon.js (.../rsrccommon.js) (revision 529adc13063b7d012d49a4c7ed47a27716c76a94) @@ -1,10 +1,10 @@ function showBusy(targetDiv){ if($(targetDiv+"_Busy") != null){ - Element.show(targetDiv+"_Busy"); + document.getElementById(targetDiv+"_Busy").style.display = ''; } } function hideBusy(targetDiv){ if($(targetDiv+"_Busy") != null){ - Element.hide(targetDiv+"_Busy"); + document.getElementById(targetDiv+"_Busy").style.display = 'none'; } } \ No newline at end of file Index: lams_tool_larsrc/web/includes/javascript/rsrcresourceitem.js =================================================================== diff -u -r421ed2daedf24b156df9559874ffeb45d4d04a6a -r529adc13063b7d012d49a4c7ed47a27716c76a94 --- lams_tool_larsrc/web/includes/javascript/rsrcresourceitem.js (.../rsrcresourceitem.js) (revision 421ed2daedf24b156df9559874ffeb45d4d04a6a) +++ lams_tool_larsrc/web/includes/javascript/rsrcresourceitem.js (.../rsrcresourceitem.js) (revision 529adc13063b7d012d49a4c7ed47a27716c76a94) @@ -3,36 +3,17 @@ */ var instructionTargetDiv = "instructionArea"; var itemAttachmentTargetDiv = "itemAttachmentArea"; -// Please set these 2 variables in JSP file for using tag reason: -// var removeInstructionUrl = ""; -// var addInstructionUrl = ""; + var singleInstructionHeight = 40; + function removeInstruction(idx){ - //var id = "instructionItem" + idx; - //Element.remove(id); - var url= removeInstructionUrl; - var reqIDVar = new Date(); - - var param = $("instructionForm").serialize(true); // Form.serialize('instructionForm'); - // param('instructionItemDesc' + idx) = - param.removeIdx = idx; - param.reqID = reqIDVar.getTime(); - + var param = $("#instructionForm").serialize() + "&removeIdx="+idx; removeInstructionLoading(); - var myAjax = new Ajax.Updater( - instructionTargetDiv, - url, - { - method:'post', - parameters:param, - onComplete:removeInstructionComplete, - evalScripts:true, - contentType: 'application/x-www-form-urlencoded; charset=UTF-8' - } - ); + $.get(removeInstructionUrl, param, function(xml) { + removeInstructionComplete(); + document.getElementById("instructionArea").innerHTML = xml; + }); } function removeItemAttachment(idx){ - //var id = "instructionItem" + idx; - //Element.remove(id); var url= removeItemAttachmentUrl; var reqIDVar = new Date(); var param = "reqID="+reqIDVar.getTime(); @@ -49,21 +30,19 @@ ); } function addInstruction(){ - var url= addInstructionUrl; - var reqIDVar = new Date(); - var param = Form.serialize("instructionForm")+"&reqID="+reqIDVar.getTime(); + var param = $("#instructionForm").serialize(); addInstructionLoading(); - var myAjax = new Ajax.Updater( - instructionTargetDiv, - url, - { - method:'post', - parameters:param, - onComplete:addInstructionComplete, - evalScripts:true - } - ); + $.get(addInstructionUrl, param, function(xml) { + addInstructionComplete(); + document.getElementById("instructionArea").innerHTML = xml; + }); + return false; + } + function adjustInstructionsDisplayAreaHeight(adjustAmount){ + var obj = window.top.document.getElementById('reourceInputArea'); + obj.style.height=obj.contentWindow.document.body.scrollHeight+adjustAmount+'px'; + } function upItem(itemIdx){ if(itemIdx == 0) return; @@ -88,6 +67,7 @@ } function removeInstructionComplete(){ hideBusy(instructionTargetDiv); + adjustInstructionsDisplayAreaHeight(-singleInstructionHeight); } function removeItemAttachmentLoading(){ showBusy(itemAttachmentTargetDiv); @@ -100,13 +80,11 @@ } function addInstructionComplete(){ hideBusy(instructionTargetDiv); - + adjustInstructionsDisplayAreaHeight(singleInstructionHeight); } function submitResourceItem(){ - //$("instructionList").value = Form.serialize("instructionForm"); document.getElementById("instructionList").value = $("#instructionForm").serialize(); - //$("#resourceItemForm").value = $("#instructionForm").serialize(); $("#resourceItemForm").submit(); // after submit, it direct to itemlist.jsp, // then refresh "basic tab" resourcelist and close this window. Index: lams_tool_larsrc/web/pages/authoring/parts/instructions.jsp =================================================================== diff -u -r7011368b3f7cc34d52ce8f8640b64a9add794dd6 -r529adc13063b7d012d49a4c7ed47a27716c76a94 --- lams_tool_larsrc/web/pages/authoring/parts/instructions.jsp (.../instructions.jsp) (revision 7011368b3f7cc34d52ce8f8640b64a9add794dd6) +++ lams_tool_larsrc/web/pages/authoring/parts/instructions.jsp (.../instructions.jsp) (revision 529adc13063b7d012d49a4c7ed47a27716c76a94) @@ -75,7 +75,7 @@ <%-- This script will adjust resource item input area height according to the new instruction item amount. --%>