Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/patch20141216.sql
===================================================================
diff -u
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/patch20141216.sql (revision 0)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/dbupdates/patch20141216.sql (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -0,0 +1,17 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+SET AUTOCOMMIT = 0;
+SET FOREIGN_KEY_CHECKS=0;
+----------------------Put all sql statements below here-------------------------
+
+-- LDEV-3395 Implement a minimum number of characters for forum postings
+ALTER TABLE tl_lafrum11_forum ADD COLUMN min_characters integer DEFAULT 0;
+ALTER TABLE tl_lafrum11_forum ADD COLUMN limited_min_characters tinyint DEFAULT 0;
+
+UPDATE lams_tool SET tool_version='20140102' WHERE tool_signature='lafrum11';
+
+----------------------Put all sql statements above here-------------------------
+
+-- If there were no errors, commit and restore autocommit to on
+COMMIT;
+SET AUTOCOMMIT = 1;
+SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java
===================================================================
diff -u -r3fd384118cee7535fc2e8a3964be830e26b97612 -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java (.../Forum.java) (revision 3fd384118cee7535fc2e8a3964be830e26b97612)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java (.../Forum.java) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -90,10 +90,14 @@
private ForumUser createdBy;
private Set messages;
+
+ private int minCharacters;
+
+ private boolean limitedMinCharacters;
- private int limitedChar;
+ private int maxCharacters;
- private boolean limitedInput;
+ private boolean limitedMaxCharacters;
private boolean reflectOnActivity;
@@ -418,29 +422,53 @@
return toContent;
}
+
+ /**
+ * @hibernate.property column="min_characters"
+ * @return
+ */
+ public int getMinCharacters() {
+ return minCharacters;
+ }
+ public void setMinCharacters(int minCharacters) {
+ this.minCharacters = minCharacters;
+ }
+
/**
+ * @hibernate.property column="limited_min_characters"
+ * @return
+ */
+ public boolean isLimitedMinCharacters() {
+ return limitedMinCharacters;
+ }
+
+ public void setLimitedMinCharacters(boolean limitedMinCharacters) {
+ this.limitedMinCharacters = limitedMinCharacters;
+ }
+
+ /**
* @hibernate.property column="limited_of_chars"
* @return
*/
- public int getLimitedChar() {
- return limitedChar;
+ public int getMaxCharacters() {
+ return maxCharacters;
}
- public void setLimitedChar(int limitedChar) {
- this.limitedChar = limitedChar;
+ public void setMaxCharacters(int maxCharacters) {
+ this.maxCharacters = maxCharacters;
}
/**
* @hibernate.property column="limited_input_flag"
* @return
*/
- public boolean isLimitedInput() {
- return limitedInput;
+ public boolean isLimitedMaxCharacters() {
+ return limitedMaxCharacters;
}
- public void setLimitedInput(boolean limitedInput) {
- this.limitedInput = limitedInput;
+ public void setLimitedMaxCharacters(boolean limitedMaxCharacters) {
+ this.limitedMaxCharacters = limitedMaxCharacters;
}
/**
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java
===================================================================
diff -u -rb89ab02a8f92e5860ffa8e50b805254455b67393 -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision b89ab02a8f92e5860ffa8e50b805254455b67393)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -1124,7 +1124,7 @@
toolContentObj.setDefineLater(Boolean.FALSE);
toolContentObj.setInstructions(WebUtil.convertNewlines((String) importValues
.get(ToolContentImport102Manager.CONTENT_BODY)));
- toolContentObj.setLimitedChar(5000); // this is the default value
+ toolContentObj.setMaxCharacters(5000); // this is the default value
toolContentObj.setReflectOnActivity(Boolean.FALSE);
toolContentObj.setReflectInstructions(null);
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java
===================================================================
diff -u -r281244f5d518e88719ffc871ac71bb03136cb03e -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java (.../ForumConstants.java) (revision 281244f5d518e88719ffc871ac71bb03136cb03e)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java (.../ForumConstants.java) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -82,8 +82,10 @@
public static final String ATTR_MINIMUM_RATE = "minimumRate";
public static final String ATTR_MAXIMUM_RATE = "maximumRate";
+
+ public static final String ATTR_MIN_CHARACTERS = "minCharacters";
- public static final String ATTR_LIMITED_CHARS = "limitedChars";
+ public static final String ATTR_MAX_CHARACTERS = "maxCharacters";
public static final String ATTR_LOCK_WHEN_FINISHED = "lockedWhenFinished";
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java
===================================================================
diff -u -ra71eb6d1262d4adfd8ae73a5b150084c9eb6e199 -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision a71eb6d1262d4adfd8ae73a5b150084c9eb6e199)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -865,8 +865,8 @@
if (StringUtils.equals(modeStr, ToolAccessMode.TEACHER.toString())) {
return errors;
}
- if (!form.getForum().isAllowRichEditor() && form.getForum().isLimitedInput()) {
- if (form.getForum().getLimitedChar() <= 0) {
+ if (!form.getForum().isAllowRichEditor() && form.getForum().isLimitedMaxCharacters()) {
+ if (form.getForum().getMaxCharacters() <= 0) {
ActionMessage error = new ActionMessage("error.limit.char.less.zero");
errors.add(ActionMessages.GLOBAL_MESSAGE, error);
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java
===================================================================
diff -u -r281244f5d518e88719ffc871ac71bb03136cb03e -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision 281244f5d518e88719ffc871ac71bb03136cb03e)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java (.../LearningAction.java) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -213,7 +213,8 @@
// Indicate don't restrict number of chars by allowNumber = 0
Long forumId = forum.getUid();
Boolean allowRichEditor = new Boolean(forum.isAllowRichEditor());
- int allowNumber = forum.isLimitedInput() || forum.isAllowRichEditor() ? forum.getLimitedChar() : 0;
+ int minCharacters = forum.isLimitedMinCharacters() ? forum.getMinCharacters() : 0;
+ int maxCharacters = forum.isLimitedMaxCharacters() || forum.isAllowRichEditor() ? forum.getMaxCharacters() : 0;
sessionMap.put(AttributeNames.ATTR_MODE, mode);
sessionMap.put(ForumConstants.ATTR_FORUM_ID, forumId);
@@ -229,7 +230,8 @@
sessionMap.put(ForumConstants.ATTR_MAXIMUM_RATE, forum.getMaximumRate());
sessionMap.put(ForumConstants.ATTR_ALLOW_NEW_TOPICS, forum.isAllowNewTopic());
sessionMap.put(ForumConstants.ATTR_ALLOW_RICH_EDITOR, allowRichEditor);
- sessionMap.put(ForumConstants.ATTR_LIMITED_CHARS, new Integer(allowNumber));
+ sessionMap.put(ForumConstants.ATTR_MIN_CHARACTERS, new Integer(minCharacters));
+ sessionMap.put(ForumConstants.ATTR_MAX_CHARACTERS, new Integer(maxCharacters));
sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId);
sessionMap.put(ForumConstants.ATTR_FORUM_TITLE, forum.getTitle());
sessionMap.put(ForumConstants.ATTR_FORUM_INSTRCUTION, forum.getInstructions());
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java
===================================================================
diff -u -r6d674e346dea6ce7a824366c8a7c315660677744 -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java (.../ForumForm.java) (revision 6d674e346dea6ce7a824366c8a7c315660677744)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumForm.java (.../ForumForm.java) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -96,7 +96,8 @@
forum.setAllowEdit(false);
forum.setAllowAnonym(false);
forum.setAllowRichEditor(false);
- forum.setLimitedInput(false);
+ forum.setLimitedMinCharacters(false);
+ forum.setLimitedMaxCharacters(false);
forum.setLockWhenFinished(false);
forum.setAllowNewTopic(false);
forum.setAllowUpload(false);
Index: lams_tool_forum/web/common/header.jsp
===================================================================
diff -u -r3db9eadae31a41fdc016dff919d9642ab7b43727 -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/web/common/header.jsp (.../header.jsp) (revision 3db9eadae31a41fdc016dff919d9642ab7b43727)
+++ lams_tool_forum/web/common/header.jsp (.../header.jsp) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -21,13 +21,4 @@
-
-
-
-
-
+
\ No newline at end of file
Index: lams_tool_forum/web/includes/javascript/learner.js
===================================================================
diff -u
--- lams_tool_forum/web/includes/javascript/learner.js (revision 0)
+++ lams_tool_forum/web/includes/javascript/learner.js (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -0,0 +1,36 @@
+function removeAtt(mapID){
+
+ $("#itemAttachmentArea").load(
+ removeItemAttachmentUrl + "?sessionMapID="+ mapID,
+ {
+ sessionMapID: mapID,
+ reqID: (new Date()).getTime()
+ }
+ );
+
+}
+
+function validateForm() {
+ //in case main characters restriction is ON check it's been fullfilled
+ var isMinCharactersEnabled = $("#min-characters-enabled").val() == "true";
+ var charsMissing = $("#char-required-div").html();
+
+ var isValid = !isMinCharactersEnabled || isMinCharactersEnabled && (charsMissing == "0");
+ if (!isValid) {
+ var warningMsg = warning.replace("{0}", charsMissing);
+ alert(warningMsg);
+ }
+
+ return isValid;
+}
+
+function getNumberOfCharacters(value, isRemoveHtmlTags) {
+
+ //HTML tags stripping
+ if (isRemoveHtmlTags) {
+ value = value.replace(/ /g, ' ').replace(/\n/gi, '').replace(/<\/?[a-z][^>]*>/gi, '');
+ }
+
+ var wordCount = value ? (value).length : 0;
+ return wordCount;
+}
\ No newline at end of file
Index: lams_tool_forum/web/includes/learnerLayout.jsp
===================================================================
diff -u -r18e5e690d2e1a7c3d918759f7a2827c8205feaac -rac12c171d18673d283c3304f1333ebb00e3819d0
--- lams_tool_forum/web/includes/learnerLayout.jsp (.../learnerLayout.jsp) (revision 18e5e690d2e1a7c3d918759f7a2827c8205feaac)
+++ lams_tool_forum/web/includes/learnerLayout.jsp (.../learnerLayout.jsp) (revision ac12c171d18673d283c3304f1333ebb00e3819d0)
@@ -1,31 +1,44 @@
-
+
<%@ include file="/common/taglibs.jsp"%>
<%@ taglib uri="tags-tiles" prefix="tiles"%>
-
-
-
-
-
-
-
+
-
-
-
-
-
- |
- - | - -
+ |
+
+ |
+ + | + +