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. --%>