Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r61c706419c438d5ef52d93bda3de1f7c415380ae -rf3be94729c90c7390a6aea11d1886a4b72d96670
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java
===================================================================
diff -u
--- lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (revision 0)
+++ lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,101 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.web;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.apache.tomcat.util.json.JSONException;
+import org.apache.tomcat.util.json.JSONObject;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.service.RatingService;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.util.WebUtil;
+import org.lamsfoundation.lams.web.session.SessionManager;
+import org.lamsfoundation.lams.web.util.AttributeNames;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+/**
+ * Stores rating.
+ *
+ * @author Andrey Balan
+ *
+ * @web:servlet name="ratingServlet"
+ * @web:servlet-mapping url-pattern="/servlet/rateItem"
+ */
+public class RatingServlet extends HttpServlet {
+
+ private static Logger log = Logger.getLogger(RatingServlet.class);
+ private static RatingService ratingService;
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+
+ getRatingService();
+
+ float rating = Float.parseFloat((String) request.getParameter("rate"));
+ String objectId = WebUtil.readStrParam(request, "idBox");
+ Long ratingCriteriaId = Long.parseLong(objectId.split("-")[0]);
+ Long itemId = Long.parseLong(objectId.split("-")[1]);
+ UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
+ Integer userId = user.getUserID();
+
+ RatingDTO averageRatingDTO = ratingService.rateItem(ratingCriteriaId, userId, itemId, rating);
+
+ // refresh numOfRatings
+ // int numOfRatings = ratingService.getNumOfRatingsByUserAndForum(userUid, forumUid);
+
+ JSONObject JSONObject = new JSONObject();
+ try {
+ JSONObject.put("averageRating", averageRatingDTO.getAverageRating());
+ JSONObject.put("numberOfVotes", averageRatingDTO.getNumberOfVotes());
+
+ } catch (JSONException e) {
+ throw new ServletException(e);
+ }
+ // JSONObject.put("numOfRatings", numOfRatings);
+ response.setContentType("application/json;charset=utf-8");
+ response.getWriter().print(JSONObject);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+ IOException {
+ doGet(request, response);
+ }
+
+ private RatingService getRatingService() {
+ if (ratingService == null) {
+ WebApplicationContext ctx = WebApplicationContextUtils
+ .getRequiredWebApplicationContext(getServletContext());
+ ratingService = (RatingService) ctx.getBean("ratingService");
+ }
+ return ratingService;
+ }
+}
Index: lams_central/web/css/defaultHTML.css
===================================================================
diff -u -r3d40a9b2b5d648150397ef8a0aab05baa9dfb2cf -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_central/web/css/defaultHTML.css (.../defaultHTML.css) (revision 3d40a9b2b5d648150397ef8a0aab05baa9dfb2cf)
+++ lams_central/web/css/defaultHTML.css (.../defaultHTML.css) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -1684,4 +1684,35 @@
border: thin solid #2E6E9E !important;
color: #222222 !important;
background-color: #D0E5F5;"
-}
\ No newline at end of file
+}
+
+.rating-criteria-tag {
+ width: 60%;
+ padding-bottom: 25px;
+}
+.rating-criteria-tag input[type="text"] {
+ width: 100%;
+}
+#criterias-table td {
+ vertical-align:middle;
+}
+div.up-arrow, div.up-arrow-disabled, div.down-arrow, div.down-arrow-disabled, div.delete-arrow {
+ width:16px;
+ height:16px;
+ display: table-cell;
+}
+div.up-arrow {
+ background-image: url('../images/uparrow.gif');
+}
+div.up-arrow-disabled {
+ background-image: url('../images/uparrow_disabled.gif');
+}
+div.down-arrow {
+ background-image: url('../images/downarrow.gif');
+}
+div.down-arrow-disabled {
+ background-image: url('../images/downarrow_disabled.gif');
+}
+div.delete-arrow {
+ background-image: url('../images/disposal.gif');
+}
Index: lams_central/web/css/jquery.jRating.css
===================================================================
diff -u -rf7d806b0ab4f783c2dd89e920d7f6edf370c04db -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_central/web/css/jquery.jRating.css (.../jquery.jRating.css) (revision f7d806b0ab4f783c2dd89e920d7f6edf370c04db)
+++ lams_central/web/css/jquery.jRating.css (.../jquery.jRating.css) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -40,11 +40,17 @@
text-align:center;
padding-top:5px;
}
- p.jRatingInfos span.maxRate {
- color:#c9c9c9;
- font-size:14px;
- }
+p.jRatingInfos span.maxRate {
+ color:#c9c9c9;
+ font-size:14px;
+}
+
/** Please, note this is a LAMS customization. In case of library upgrade copy these lines manually. **/
+.rating-stars-holder {width: 150px; text-align: center;}
+.rating-stars-caption {padding-top: 6px;}
+.rating-stars, .rating-stars-disabled {margin: 0px auto;}
+
+/** Remove the following once we move all tools to use Rating.tag. **/
.rating-stars-div {float:right; padding-right: 10px; margin-top: -8px; min-height: 45px;}
-.rating-stars-caption {text-align: center; padding-top: 6px;}
+.rating-stars-caption {text-align: center}
\ No newline at end of file
Index: lams_central/web/images/disposal.gif
===================================================================
diff -u
Binary files differ
Index: lams_central/web/images/downarrow.gif
===================================================================
diff -u
Binary files differ
Index: lams_central/web/images/downarrow_disabled.gif
===================================================================
diff -u
Binary files differ
Index: lams_central/web/images/uparrow.gif
===================================================================
diff -u
Binary files differ
Index: lams_central/web/images/uparrow_disabled.gif
===================================================================
diff -u
Binary files differ
Index: lams_central/web/includes/javascript/jquery.jRating.js
===================================================================
diff -u -rf7d806b0ab4f783c2dd89e920d7f6edf370c04db -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_central/web/includes/javascript/jquery.jRating.js (.../jquery.jRating.js) (revision f7d806b0ab4f783c2dd89e920d7f6edf370c04db)
+++ lams_central/web/includes/javascript/jquery.jRating.js (.../jquery.jRating.js) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -62,7 +62,8 @@
$(this).height(starHeight);
var average = parseFloat($(this).attr('data-average')), // get the average of all rates
- idBox = parseInt($(this).attr('data-id')), // get the id of the box
+ //**LAMS** customized. originally it looked like idBox = parseInt($(this).attr('data-id')),
+ idBox = $(this).attr('data-id'), // get the id of the box
widthRatingContainer = starWidth*opts.length, // Width of the Container
widthColor = average/opts.rateMax*widthRatingContainer, // Width of the color Container
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/Rating.hbm.xml
===================================================================
diff -u
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/Rating.hbm.xml (revision 0)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/Rating.hbm.xml (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml
===================================================================
diff -u
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml (revision 0)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/rating/RatingCriteria.hbm.xml (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+ @hibernate.class table="lams_rating_criteria"
+ true
+
+
+ @hibernate.id generator-class="native" type="java.lang.Long" column="rating_criteria_id"
+
+
+
+
+
+
+ @hibernate.property column="title" length="255"
+
+
+
+ @hibernate.property column="order_id" length="11"
+
+
+
+ @hibernate.property column="rating_criteria_type_id" length="11"
+
+
+
+
+ @hibernate.class
+
+
+
+ @hibernate.class
+
+
+
+
+ @hibernate.class
+
+
+
+
+ @hibernate.class
+
+
+
+ @hibernate.column name="lesson_id"
+
+
+
+
+
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
diff -u -r118a795019536460b08165470a13fe99544705e8 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 118a795019536460b08165470a13fe99544705e8)
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -222,6 +222,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+
+
+
+
@@ -417,6 +442,14 @@
+
+
+
+
+
+
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040041.sql (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,57 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+
+SET AUTOCOMMIT = 0;
+SET FOREIGN_KEY_CHECKS=0;
+
+-- LDEV-3450 Implement peer review feature
+CREATE TABLE lams_rating_criteria_type (
+ rating_criteria_type_id INT(11) NOT NULL DEFAULT 0
+ , description VARCHAR(255) NOT NULL
+ , PRIMARY KEY (rating_criteria_type_id)
+)ENGINE=InnoDB;
+
+CREATE TABLE lams_rating_criteria (
+ rating_criteria_id BIGINT(20) NOT NULL AUTO_INCREMENT
+ , title VARCHAR(255)
+ , rating_criteria_type_id INT(11) NOT NULL DEFAULT 0
+ , order_id INT(11) NOT NULL
+ , tool_content_id BIGINT(20)
+ , item_id BIGINT(20)
+ , lesson_id BIGINT(20)
+ , PRIMARY KEY (rating_criteria_id)
+ , INDEX (rating_criteria_type_id)
+ , CONSTRAINT FK_lams_rating_criteria_1 FOREIGN KEY (rating_criteria_type_id)
+ REFERENCES lams_rating_criteria_type (rating_criteria_type_id)
+ , INDEX (tool_content_id)
+ , CONSTRAINT FK_lams_rating_criteria_2 FOREIGN KEY (tool_content_id)
+ REFERENCES lams_tool_content (tool_content_id) ON DELETE NO ACTION ON UPDATE NO ACTION
+ , INDEX (lesson_id)
+ , CONSTRAINT FK_lams_rating_criteria_3 FOREIGN KEY (lesson_id)
+ REFERENCES lams_lesson (lesson_id) ON DELETE NO ACTION ON UPDATE NO ACTION
+)ENGINE=InnoDB;
+
+CREATE TABLE lams_rating (
+ uid BIGINT(20) NOT NULL AUTO_INCREMENT
+ , rating_criteria_id BIGINT(20) NOT NULL
+ , item_id BIGINT(20)
+ , user_id BIGINT(20) NOT NULL
+ , rating FLOAT
+ , PRIMARY KEY (uid)
+ , INDEX (rating_criteria_id)
+ , CONSTRAINT FK_lams_rating_1 FOREIGN KEY (rating_criteria_id)
+ REFERENCES lams_rating_criteria (rating_criteria_id) ON DELETE CASCADE ON UPDATE CASCADE
+ , INDEX (user_id)
+ , CONSTRAINT FK_lams_rating_2 FOREIGN KEY (user_id)
+ REFERENCES lams_user (user_id) ON DELETE CASCADE ON UPDATE CASCADE
+)ENGINE=InnoDB;
+
+INSERT INTO lams_rating_criteria_type VALUES (1, 'TOOL_ACTIVITY');
+INSERT INTO lams_rating_criteria_type VALUES (2, 'AUTHORED_ITEM');
+INSERT INTO lams_rating_criteria_type VALUES (3, 'LEARNER_ITEM');
+INSERT INTO lams_rating_criteria_type VALUES (4, 'LESSON');
+
+
+-- If there were no errors, commit and restore autocommit to on
+SET FOREIGN_KEY_CHECKS=0;
+COMMIT;
+SET AUTOCOMMIT = 1;
Index: lams_common/src/java/org/lamsfoundation/lams/rating/RatingCriteriaOrderComparator.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/rating/RatingCriteriaOrderComparator.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/rating/RatingCriteriaOrderComparator.java (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,70 @@
+/***************************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ***********************************************************************/
+/* $Id$ */
+package org.lamsfoundation.lams.rating;
+
+import java.io.Serializable;
+import java.util.Comparator;
+
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
+
+/**
+ * The ratingCriteria order comparator used for sorted set. Order id is used as the primary comparing criteria as it is
+ * unique within a complex ratingCriteria. If they are the same, ratingCriteria id are used for comparison to ensure the
+ * sorted set won't treat two activities with the same order id as the same ratingCriteria. If either of the
+ * ratingCriteria ids are null (activities are not yet saved in the database) use the ratingCriteria ui id. The ui ids
+ * will compare nulls if required, with null being lower than not null. Two nulls will equal true.
+ *
+ * @author andreyb
+ */
+public class RatingCriteriaOrderComparator implements Comparator, Serializable {
+
+ @Override
+ public int compare(Object o1, Object o2) {
+ RatingCriteria ratingCriteria1 = (RatingCriteria) o1;
+ RatingCriteria ratingCriteria2 = (RatingCriteria) o2;
+
+ if (ratingCriteria1.getOrderId() == null || ratingCriteria2.getOrderId() == null)
+ return compareRatingCriteriaId(ratingCriteria1, ratingCriteria2);
+
+ int orderDiff = ratingCriteria1.getOrderId().compareTo(ratingCriteria2.getOrderId());
+ // return order id compare result if they are not the same
+ if (orderDiff != 0)
+ return orderDiff;
+ // if order id are the same, compare ratingCriteria id.
+ else
+ return compareRatingCriteriaId(ratingCriteria1, ratingCriteria2);
+ }
+
+ private int compareRatingCriteriaId(RatingCriteria ratingCriteria1, RatingCriteria ratingCriteria2) {
+ if (ratingCriteria1.getRatingCriteriaId() == null && ratingCriteria2.getRatingCriteriaId() == null) {
+ return 0;
+ }
+ if (ratingCriteria1.getRatingCriteriaId() == null) {
+ return -1;
+ }
+ if (ratingCriteria2.getRatingCriteriaId() == null) {
+ return 1;
+ }
+ return ratingCriteria1.getRatingCriteriaId().compareTo(ratingCriteria2.getRatingCriteriaId());
+ }
+}
Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingCriteriaDAO.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingCriteriaDAO.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingCriteriaDAO.java (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,40 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.rating.dao;
+
+import java.util.List;
+
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
+
+public interface IRatingCriteriaDAO {
+
+ void saveOrUpdate(RatingCriteria criteria);
+
+ void deleteRatingCriteria(Long ratingCriteriaId);
+
+ List getByToolContentId(Long toolContentId);
+
+ RatingCriteria getByUid(Long ratingCriteriaId);
+
+}
Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingDAO.java (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,51 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+
+package org.lamsfoundation.lams.rating.dao;
+
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.model.Rating;
+
+public interface IRatingDAO {
+
+ void saveOrUpdate(Rating rating);
+
+ Rating getRating(Long ratingCriteriaId, Integer userId, Long itemId);
+
+ Rating getRating(Long ratingCriteriaId, Integer userId);
+
+ /**
+ * Returns rating statistics by particular item
+ *
+ * @param itemId
+ * @return
+ */
+ RatingDTO getRatingAverageDTOByItem(Long ratingCriteriaId, Long itemId);
+
+ RatingDTO getRatingAverageDTOByUser(Long ratingCriteriaId, Long itemId, Integer userId);
+
+ Rating get(Long uid);
+
+}
Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCriteriaDAO.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCriteriaDAO.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCriteriaDAO.java (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,61 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.rating.dao.hibernate;
+
+import java.util.List;
+
+import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO;
+import org.lamsfoundation.lams.rating.dao.IRatingCriteriaDAO;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
+
+public class RatingCriteriaDAO extends LAMSBaseDAO implements IRatingCriteriaDAO {
+
+ private static final String FIND_BY_TOOL_CONTENT_ID = "from " + RatingCriteria.class.getName()
+ + " as r where r.toolContentId=? order by r.orderId asc";
+
+ @Override
+ public void saveOrUpdate(RatingCriteria criteria) {
+ getSession().saveOrUpdate(criteria);
+ getSession().flush();
+ }
+
+ @Override
+ public void deleteRatingCriteria(Long ratingCriteriaId) {
+ this.deleteById(RatingCriteria.class, ratingCriteriaId);
+ }
+
+ @Override
+ public List getByToolContentId(Long toolContentId) {
+ return (List) (doFind(FIND_BY_TOOL_CONTENT_ID, new Object[] { toolContentId }));
+ }
+
+ public RatingCriteria getByUid(Long ratingCriteriaId) {
+ if (ratingCriteriaId != null) {
+ Object o = super.find(RatingCriteria.class, ratingCriteriaId);
+ return (RatingCriteria) o;
+ } else {
+ return null;
+ }
+ }
+}
Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingDAO.java (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,113 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+
+package org.lamsfoundation.lams.rating.dao.hibernate;
+
+import java.text.NumberFormat;
+import java.util.List;
+import java.util.Locale;
+
+import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO;
+import org.lamsfoundation.lams.rating.dao.IRatingDAO;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.model.Rating;
+
+public class RatingDAO extends LAMSBaseDAO implements IRatingDAO {
+
+ private static final String FIND_RATING_BY_CRITERIA_AND_USER_AND_ITEM = "FROM " + Rating.class.getName()
+ + " AS r where r.ratingCriteria.ratingCriteriaId=? AND r.learner.userId=? AND r.itemId=?";
+ private static final String FIND_RATING_VALUE = "SELECT r.rating FROM " + Rating.class.getName()
+ + " AS r where r.ratingCriteria.ratingCriteriaId=? AND r.learner.userId=? AND r.itemId=?";
+ private static final String FIND_RATING_BY_CRITERIA_AND_USER = "FROM " + Rating.class.getName()
+ + " AS r where r.ratingCriteria.ratingCriteriaId=? AND r.learner.userId=?";
+ private static final String FIND_RATING_AVERAGE_BY_ITEM = "SELECT AVG(r.rating), COUNT(*) FROM "
+ + Rating.class.getName() + " AS r where r.ratingCriteria.ratingCriteriaId=? AND r.itemId=?";
+
+ @Override
+ public void saveOrUpdate(Rating rating) {
+ getSession().saveOrUpdate(rating);
+ getSession().flush();
+ }
+
+ @Override
+ public Rating getRating(Long ratingCriteriaId, Integer userId, Long itemId) {
+ List list = (List) doFind(FIND_RATING_BY_CRITERIA_AND_USER_AND_ITEM, new Object[] { ratingCriteriaId, userId,
+ itemId });
+ if (list.size() > 0) {
+ return (Rating) list.get(0);
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public Rating getRating(Long ratingCriteriaId, Integer userId) {
+ List list = (List) doFind(FIND_RATING_BY_CRITERIA_AND_USER, new Object[] { ratingCriteriaId, userId });
+ if (list.size() > 0) {
+ return (Rating) list.get(0);
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public RatingDTO getRatingAverageDTOByItem(Long ratingCriteriaId, Long itemId) {
+ List
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.java
===================================================================
diff -u -r4d7dfe83093db060d8edeab425ce01543b38b530 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.java (.../ImageGallery.java) (revision 4d7dfe83093db060d8edeab425ce01543b38b530)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.java (.../ImageGallery.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -23,25 +23,18 @@
/* $Id$ */
package org.lamsfoundation.lams.tool.imageGallery.model;
-import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
import java.util.Set;
-import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.log4j.Logger;
-import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
-import org.lamsfoundation.lams.tool.imageGallery.util.ImageGalleryToolContentHandler;
+import org.lamsfoundation.lams.rating.model.LearnerItemRatingCriteria;
/**
* ImageGallery
*
- * @hibernate.class table="tl_laimag10_imagegallery"
- *
*/
public class ImageGallery implements Cloneable {
@@ -56,13 +49,13 @@
private String title;
private String instructions;
-
+
private Long nextImageTitle;
// advance
private boolean allowVote;
-
+
private boolean allowCommentImages;
private boolean allowShareImages;
@@ -75,6 +68,8 @@
private boolean allowRank;
+ private Set ratingCriterias;
+
// general infomation
private Date created;
@@ -88,7 +83,7 @@
private boolean reflectOnActivity;
private String reflectInstructions;
-
+
private boolean notifyTeachersOnImageSumbit;
/**
@@ -116,6 +111,15 @@
item.setCreateBy(toContent.getCreatedBy());
}
}
+
+ // reset contentId
+ if (toContent.getRatingCriterias() != null) {
+ Set criterias = toContent.getRatingCriterias();
+ for (LearnerItemRatingCriteria criteria : criterias) {
+ criteria.setToolContentId(contentId);
+ }
+ }
+
return toContent;
}
@@ -126,21 +130,34 @@
try {
imageGallery = (ImageGallery) super.clone();
imageGallery.setUid(null);
+
+ // clone imageGalleryItems as well
if (imageGalleryItems != null) {
- Iterator iter = imageGalleryItems.iterator();
- Set set = new HashSet();
- while (iter.hasNext()) {
- ImageGalleryItem item = (ImageGalleryItem) iter.next();
+ Set newItems = new HashSet();
+ for (ImageGalleryItem item : (Set) imageGalleryItems) {
ImageGalleryItem newItem = (ImageGalleryItem) item.clone();
// just clone old file without duplicate it in repository
- set.add(newItem);
+ newItems.add(newItem);
}
- imageGallery.imageGalleryItems = set;
+ imageGallery.imageGalleryItems = newItems;
}
- // clone ReourceUser as well
+
+ // clone ImageGalleryUser as well
if (createdBy != null) {
imageGallery.setCreatedBy((ImageGalleryUser) createdBy.clone());
}
+
+ // clone ratingCriterias as well
+ if (ratingCriterias != null) {
+ Set newCriterias = new HashSet();
+ for (LearnerItemRatingCriteria criteria : (Set) ratingCriterias) {
+ LearnerItemRatingCriteria newCriteria = (LearnerItemRatingCriteria) criteria.clone();
+ // just clone old file without duplicate it in repository
+ newCriterias.add(newCriteria);
+ }
+ imageGallery.ratingCriterias = newCriterias;
+ }
+
} catch (CloneNotSupportedException e) {
ImageGallery.log.error("When clone " + ImageGallery.class + " failed");
}
@@ -159,14 +176,15 @@
final ImageGallery genericEntity = (ImageGallery) o;
- return new EqualsBuilder().append(uid, genericEntity.uid).append(title, genericEntity.title).append(
- instructions, genericEntity.instructions).append(created, genericEntity.created)
+ return new EqualsBuilder().append(uid, genericEntity.uid).append(title, genericEntity.title)
+ .append(instructions, genericEntity.instructions).append(created, genericEntity.created)
.append(updated, genericEntity.updated).append(createdBy, genericEntity.createdBy).isEquals();
}
@Override
public int hashCode() {
- return new HashCodeBuilder().append(uid).append(title).append(instructions).append(created).append(updated).append(createdBy).toHashCode();
+ return new HashCodeBuilder().append(uid).append(title).append(instructions).append(created).append(updated)
+ .append(createdBy).toHashCode();
}
/**
@@ -188,7 +206,6 @@
* Returns the object's creation date
*
* @return date
- * @hibernate.property column="create_date"
*/
public Date getCreated() {
return created;
@@ -207,7 +224,6 @@
* Returns the object's date of last update
*
* @return date updated
- * @hibernate.property column="update_date"
*/
public Date getUpdated() {
return updated;
@@ -225,23 +241,20 @@
/**
* @return Returns the userid of the user who created the Share imageGallery.
*
- * @hibernate.many-to-one cascade="save-update" column="create_by"
- *
*/
public ImageGalleryUser getCreatedBy() {
return createdBy;
}
/**
* @param createdBy
- * The userid of the user who created this Share imageGallery.
+ * The userid of the user who created this Share imageGallery.
*/
public void setCreatedBy(ImageGalleryUser createdBy) {
this.createdBy = createdBy;
}
/**
- * @hibernate.id column="uid" generator-class="native"
*/
public Long getUid() {
return uid;
@@ -254,16 +267,14 @@
/**
* @return Returns the title.
*
- * @hibernate.property column="title"
- *
*/
public String getTitle() {
return title;
}
/**
* @param title
- * The title to set.
+ * The title to set.
*/
public void setTitle(String title) {
this.title = title;
@@ -272,25 +283,21 @@
/**
* @return Returns the lockWhenFinish.
*
- * @hibernate.property column="lock_on_finished"
- *
*/
public boolean getLockWhenFinished() {
return lockWhenFinished;
}
/**
* @param lockWhenFinished
- * Set to true to lock the imageGallery for finished users.
+ * Set to true to lock the imageGallery for finished users.
*/
public void setLockWhenFinished(boolean lockWhenFinished) {
this.lockWhenFinished = lockWhenFinished;
}
/**
* @return Returns the instructions set by the teacher.
- *
- * @hibernate.property column="instructions" type="text"
*/
public String getInstructions() {
return instructions;
@@ -299,11 +306,9 @@
public void setInstructions(String instructions) {
this.instructions = instructions;
}
-
+
/**
* @return Returns the next condecutive integer for constructing image title.
- *
- * @hibernate.property column="next_image_title"
*/
public Long getNextImageTitle() {
return nextImageTitle;
@@ -315,11 +320,6 @@
/**
*
- *
- * @hibernate.set lazy="true" inverse="false" cascade="all" order-by="create_date desc"
- * @hibernate.collection-key column="imageGallery_uid"
- * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem"
- *
* @return
*/
public Set getImageGalleryItems() {
@@ -331,7 +331,6 @@
}
/**
- * @hibernate.property column="content_in_use"
* @return
*/
public boolean isContentInUse() {
@@ -343,7 +342,6 @@
}
/**
- * @hibernate.property column="define_later"
* @return
*/
public boolean isDefineLater() {
@@ -355,7 +353,6 @@
}
/**
- * @hibernate.property column="content_id" unique="true"
* @return
*/
public Long getContentId() {
@@ -367,7 +364,6 @@
}
/**
- * @hibernate.property column="allow_comment_images"
* @return
*/
public boolean isAllowCommentImages() {
@@ -379,7 +375,6 @@
}
/**
- * @hibernate.property column="allow_share_images"
* @return
*/
public boolean isAllowShareImages() {
@@ -391,7 +386,6 @@
}
/**
- * @hibernate.property column="allow_vote"
* @return
*/
public boolean isAllowVote() {
@@ -403,7 +397,6 @@
}
/**
- * @hibernate.property column="reflect_instructions"
* @return
*/
public String getReflectInstructions() {
@@ -415,7 +408,6 @@
}
/**
- * @hibernate.property column="reflect_on_activity"
* @return
*/
public boolean isReflectOnActivity() {
@@ -427,7 +419,6 @@
}
/**
- * @hibernate.property column="allow_rank"
* @return
*/
public boolean isAllowRank() {
@@ -439,9 +430,20 @@
}
/**
- * @hibernate.property column="image_submit_notify"
+ *
* @return
*/
+ public Set getRatingCriterias() {
+ return ratingCriterias;
+ }
+
+ public void setRatingCriterias(Set ratingCriterias) {
+ this.ratingCriterias = ratingCriterias;
+ }
+
+ /**
+ * @return
+ */
public boolean isNotifyTeachersOnImageSumbit() {
return notifyTeachersOnImageSumbit;
}
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java
===================================================================
diff -u -rdbbdbe1fcf86e07c4d5163178b4c679b4dedfed9 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java (.../ImageGalleryItem.java) (revision dbbdbe1fcf86e07c4d5163178b4c679b4dedfed9)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java (.../ImageGalleryItem.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -36,7 +36,6 @@
* @hibernate.class table="tl_laimag10_imagegallery_item"
*
* @author Andrey Balan
- *
*/
public class ImageGalleryItem implements Cloneable {
@@ -108,6 +107,7 @@
try {
image = (ImageGalleryItem) super.clone();
image.setUid(null);
+
// clone ImageGalleryUser as well
if (this.createBy != null) {
image.setCreateBy((ImageGalleryUser) this.createBy.clone());
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallerySession.java
===================================================================
diff -u -rde59f382658daefe4f6679aaaea621284d1c72cc -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallerySession.java (.../ImageGallerySession.java) (revision de59f382658daefe4f6679aaaea621284d1c72cc)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallerySession.java (.../ImageGallerySession.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -30,7 +30,7 @@
/**
* ImageGallery
*
- * @author Dapeng Ni
+ * @author Andrey Balan
*
* @hibernate.class table="tl_laimag10_session"
*
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java
===================================================================
diff -u -rbb597b8155375e6ac4dfe280f630d323b6e5e575 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision bb597b8155375e6ac4dfe280f630d323b6e5e575)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -28,21 +28,19 @@
import java.util.Set;
import org.apache.struts.upload.FormFile;
-import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
import org.lamsfoundation.lams.tool.imageGallery.dto.ReflectDTO;
import org.lamsfoundation.lams.tool.imageGallery.dto.Summary;
import org.lamsfoundation.lams.tool.imageGallery.dto.UserImageContributionDTO;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryAttachment;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryConfigItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageVote;
-import org.lamsfoundation.lams.usermanagement.User;
/**
* @author Dapeng.Ni
@@ -151,14 +149,13 @@
*/
void deleteImage(Long toolSessionId, Long imageUid);
- /**
- * Save/update ImageRating.
- *
- * @param rating
- * ImageRating
- * @return
- */
- void saveOrUpdateImageRating(ImageRating rating);
+ List getRatingCriterias(Long toolContentId);
+
+ void saveOrUpdateRatingCriteria(RatingCriteria criteria);
+
+ void deleteRatingCriteria(Long ratingCriteriaId);
+
+ List getRatingDtos(ImageGallery imageGallery, Long imageUid, Long userId);
/**
* Save/update ImageVote.
@@ -216,15 +213,6 @@
ImageGallery getImageGalleryByContentId(Long contentId);
/**
- * Returns imageRating by the given imageUid and userId
- *
- * @param imageUid
- * @param userId
- * @return
- */
- ImageRating getImageRatingByImageAndUser(Long imageUid, Long userId);
-
- /**
* Returns imageVote by the given imageUid and userId
*
* @param imageUid
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java
===================================================================
diff -u -r0f642a940696f0245f882fd0e2a7d2f347e5b48e -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 0f642a940696f0245f882fd0e2a7d2f347e5b48e)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -33,6 +33,7 @@
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -52,10 +53,12 @@
import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException;
import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
-import org.lamsfoundation.lams.lesson.service.ILessonService;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
+import org.lamsfoundation.lams.rating.service.IRatingService;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolOutput;
@@ -152,6 +155,8 @@
private IExportToolContentService exportContentService;
private ICoreNotebookService coreNotebookService;
+
+ private IRatingService ratingService;
private IEventNotificationService eventNotificationService;
@@ -230,16 +235,6 @@
saveOrUpdateImageGallery(imageGallery);
}
- @Override
- public ImageRating getImageRatingByImageAndUser(Long imageUid, Long userId) {
- return imageRatingDao.getImageRatingByImageAndUser(imageUid, userId);
- }
-
- @Override
- public void saveOrUpdateImageRating(ImageRating rating) {
- imageRatingDao.saveObject(rating);
- }
-
public ImageVote getImageVoteByImageAndUser(Long imageUid, Long userId) {
return imageVoteDao.getImageVoteByImageAndUser(imageUid, userId);
}
@@ -377,6 +372,22 @@
public void updateEntry(NotebookEntry notebookEntry) {
coreNotebookService.updateEntry(notebookEntry);
}
+
+ @Override
+ public List getRatingCriterias(Long toolContentId) {
+ List ratingCriterias = ratingService.getCriteriasByToolContentId(toolContentId);
+ return ratingCriterias;
+ }
+
+ @Override
+ public void saveOrUpdateRatingCriteria(RatingCriteria criteria) {
+ ratingService.saveOrUpdateRatingCriteria(criteria);
+ }
+
+ @Override
+ public void deleteRatingCriteria(Long ratingCriteriaId) {
+ ratingService.deleteRatingCriteria(ratingCriteriaId);
+ }
@Override
public ImageGalleryUser getUser(Long uid) {
@@ -1092,6 +1103,10 @@
public void setCoreNotebookService(ICoreNotebookService coreNotebookService) {
this.coreNotebookService = coreNotebookService;
}
+
+ public void setRatingService(IRatingService ratingService) {
+ this.ratingService = ratingService;
+ }
public void setEventNotificationService(IEventNotificationService eventNotificationService) {
this.eventNotificationService = eventNotificationService;
@@ -1134,9 +1149,7 @@
return images;
}
- /**
- * {@inheritDoc}
- */
+ @Deprecated
public Object[] getRatingForGroup(Long imageUid, Long sessionId) {
List users = imageGalleryUserDao.getBySessionID(sessionId);
Long numberRatings = new Long(0);
@@ -1157,6 +1170,20 @@
return new Object[] { numberRatings, averageRating };
}
+
+ @Override
+ public List getRatingDtos(ImageGallery imageGallery, Long imageUid, Long userId) {
+ List ratingDtos = new LinkedList();
+
+ for (RatingCriteria criteria : imageGallery.getRatingCriterias()) {
+ RatingDTO ratingDto = ratingService.getRatingDTOByUser(criteria.getRatingCriteriaId(), imageUid, userId.intValue());
+ ratingDto.setRatingCriteria(criteria);
+
+ ratingDtos.add(ratingDto);
+ }
+
+ return ratingDtos;
+ }
// *****************************************************************************
// private methods
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java
===================================================================
diff -u -rdbbdbe1fcf86e07c4d5163178b4c679b4dedfed9 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision dbbdbe1fcf86e07c4d5163178b4c679b4dedfed9)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -26,10 +26,11 @@
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashSet;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -52,11 +53,11 @@
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.authoring.web.AuthoringConstants;
-import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
+import org.lamsfoundation.lams.rating.model.LearnerItemRatingCriteria;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.imageGallery.ImageGalleryConstants;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryAttachment;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService;
@@ -223,6 +224,10 @@
SortedSet imageGalleryItemList = getImageList(sessionMap);
imageGalleryItemList.clear();
imageGalleryItemList.addAll(items);
+
+ // get rating criterias from DB
+ List ratingCriterias = service.getRatingCriterias(contentId);
+ sessionMap.put(AttributeNames.ATTR_RATING_CRITERIAS, ratingCriterias);
sessionMap.put(ImageGalleryConstants.ATTR_IMAGE_GALLERY_FORM, imageGalleryForm);
sessionMap.put(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE, imageGallery.getNextImageTitle());
@@ -293,10 +298,10 @@
ImageGallery imageGallery = imageGalleryForm.getImageGallery();
IImageGalleryService service = getImageGalleryService();
+ Long contentId = imageGalleryForm.getImageGallery().getContentId();
// **********************************Get ImageGallery PO*********************
- ImageGallery imageGalleryPO = service.getImageGalleryByContentId(imageGalleryForm.getImageGallery()
- .getContentId());
+ ImageGallery imageGalleryPO = service.getImageGalleryByContentId(contentId);
if (imageGalleryPO == null) {
// new ImageGallery, create it.
imageGalleryPO = imageGallery;
@@ -327,7 +332,7 @@
// get back login user DTO
UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
ImageGalleryUser imageGalleryUser = service.getUserByIDAndContent(new Long(user.getUserID().intValue()),
- imageGalleryForm.getImageGallery().getContentId());
+ contentId);
if (imageGalleryUser == null) {
imageGalleryUser = new ImageGalleryUser(user, imageGalleryPO);
}
@@ -368,7 +373,42 @@
ImageGalleryItem delAtt = (ImageGalleryItem) iter.next();
iter.remove();
}
+
+ // ************************* Handle rating criterias *******************
+ List ratingCriterias = (List) sessionMap.get(AttributeNames.ATTR_RATING_CRITERIAS);
+ Map mapOrderIdToRatingCriteria = new HashMap();
+ for (RatingCriteria ratingCriteriaIter : ratingCriterias) {
+ mapOrderIdToRatingCriteria.put(ratingCriteriaIter.getOrderId(), ratingCriteriaIter);
+ }
+
+ int criteriaMaxOrderId = WebUtil.readIntParam(request, "criteriaMaxOrderId");
+ //i is equal to an old orderId
+ for (int i=1; i<=criteriaMaxOrderId; i++) {
+
+ String criteriaTitle = WebUtil.readStrParam(request, "criteriaTitle" + i, true);
+
+ RatingCriteria ratingCriteria = mapOrderIdToRatingCriteria.get(i);
+ if (StringUtils.isNotBlank(criteriaTitle)) {
+ int newCriteriaOrderId = WebUtil.readIntParam(request, "criteriaOrderId" + i);
+ // modify existing one if it exists. add otherwise
+ if (ratingCriteria == null) {
+ ratingCriteria = new LearnerItemRatingCriteria();
+ ratingCriteria.setRatingCriteriaTypeId(LearnerItemRatingCriteria.LEARNER_ITEM_CRITERIA_TYPE);
+ ((LearnerItemRatingCriteria) ratingCriteria).setToolContentId(contentId);
+ }
+
+ ratingCriteria.setOrderId(newCriteriaOrderId);
+ ratingCriteria.setTitle(criteriaTitle);
+ service.saveOrUpdateRatingCriteria(ratingCriteria);
+
+ //delete
+ } else if (ratingCriteria != null) {
+ service.deleteRatingCriteria(ratingCriteria.getRatingCriteriaId());
+ }
+
+ }
+
// **********************************************
// finally persist imageGalleryPO again
service.saveOrUpdateImageGallery(imageGalleryPO);
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java
===================================================================
diff -u -rfac97347394b311e0f7123bc72d54c056be5275e -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision fac97347394b311e0f7123bc72d54c056be5275e)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -37,7 +37,6 @@
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.math.NumberUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
@@ -49,12 +48,11 @@
import org.apache.struts.action.ActionRedirect;
import org.apache.struts.config.ForwardConfig;
import org.apache.struts.upload.FormFile;
-import org.lamsfoundation.lams.events.DeliveryMethodMail;
-import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.learning.web.bean.ActivityPositionDTO;
import org.lamsfoundation.lams.learning.web.util.LearningWebUtil;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.imageGallery.ImageGalleryConstants;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment;
@@ -63,7 +61,6 @@
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageVote;
import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService;
import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException;
@@ -74,7 +71,6 @@
import org.lamsfoundation.lams.tool.imageGallery.web.form.ImageRatingForm;
import org.lamsfoundation.lams.tool.imageGallery.web.form.MultipleImagesForm;
import org.lamsfoundation.lams.tool.imageGallery.web.form.ReflectionForm;
-import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.FileValidatorUtil;
import org.lamsfoundation.lams.util.WebUtil;
@@ -127,9 +123,6 @@
if (param.equals("addNewComment")) {
return addNewComment(mapping, form, request, response);
}
- if (param.equals("saveOrUpdateRating")) {
- return saveOrUpdateRating(mapping, form, request, response);
- }
if (param.equals("vote")) {
return vote(mapping, form, request, response);
}
@@ -203,6 +196,7 @@
sessionMap.put(ImageGalleryConstants.ATTR_LOCK_ON_FINISH, imageGallery.getLockWhenFinished());
sessionMap.put(ImageGalleryConstants.ATTR_USER_FINISHED,
imageGalleryUser != null && imageGalleryUser.isSessionFinished());
+ sessionMap.put(AttributeNames.PARAM_USER_ID, imageGalleryUser.getUserId());
sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId);
sessionMap.put(AttributeNames.ATTR_MODE, mode);
@@ -467,9 +461,7 @@
Long sessionId = (Long) sessionMap.get(ImageGalleryConstants.ATTR_TOOL_SESSION_ID);
IImageGalleryService service = getImageGalleryService();
ImageGallery imageGallery = service.getImageGalleryBySessionId(sessionId);
- UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
- ImageGalleryUser imageGalleryUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),
- sessionId);
+ Long userId = (Long) sessionMap.get(AttributeNames.PARAM_USER_ID);
Long imageUid = new Long(request.getParameter(ImageGalleryConstants.PARAM_IMAGE_UID));
ImageGalleryItem image = service.getImageGalleryItemByUid(imageUid);
@@ -487,7 +479,7 @@
ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE);
boolean isTeacher = mode != null && mode.isTeacher();
boolean isAuthor = !isTeacher && !image.isCreateByAuthor() && (createdBy != null)
- && (createdBy.getUserId().equals(imageGalleryUser.getUserId()));
+ && (createdBy.getUserId().equals(userId));
if (imageGallery.isAllowCommentImages()) {
TreeSet comments = new TreeSet(new ImageCommentComparator());
@@ -504,18 +496,13 @@
}
if (!isTeacher && imageGallery.isAllowRank()) {
- ImageRating imageRating = service.getImageRatingByImageAndUser(imageUid, imageGalleryUser.getUserId());
- int rating = imageRating == null ? 0 : imageRating.getRating();
-
- Object[] ratingForGroup = service.getRatingForGroup(imageUid, sessionId);
- sessionMap.put(ImageGalleryConstants.PARAM_NUMBER_RATINGS, ((Long) ratingForGroup[0]).toString());
- sessionMap.put(ImageGalleryConstants.PARAM_AVERAGE_RATING, ((Float) ratingForGroup[1]).toString());
- sessionMap.put(ImageGalleryConstants.PARAM_CURRENT_RATING, rating);
+ List ratingDtos = service.getRatingDtos(imageGallery, imageUid, userId);
+ sessionMap.put(ImageGalleryConstants.ATTR_RATING_DTOS, ratingDtos);
}
if (!isTeacher && imageGallery.isAllowVote()) {
boolean isVotedForThisImage = false;
- ImageVote imageVote = service.getImageVoteByImageAndUser(image.getUid(), imageGalleryUser.getUserId());
+ ImageVote imageVote = service.getImageVoteByImageAndUser(image.getUid(), userId);
if (imageVote != null && imageVote.isVoted()) {
isVotedForThisImage = true;
}
@@ -595,47 +582,6 @@
* @param response
* @return
*/
- private ActionForward saveOrUpdateRating(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
- String sessionMapID = WebUtil.readStrParam(request, ImageGalleryConstants.ATTR_SESSION_MAP_ID);
- SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
- Long sessionId = (Long) sessionMap.get(ImageGalleryConstants.ATTR_TOOL_SESSION_ID);
- IImageGalleryService service = getImageGalleryService();
-
- int rating = NumberUtils.stringToInt(((ImageRatingForm) form).getRating());
- Long imageUid = new Long(request.getParameter(ImageGalleryConstants.PARAM_IMAGE_UID));
- UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
- ImageGalleryUser imageGalleryUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),
- sessionId);
- ImageRating imageRating = service.getImageRatingByImageAndUser(imageUid, imageGalleryUser.getUserId());
-
- // persist ImageGalleryItem changes in DB
- ImageGalleryItem dbImage = service.getImageGalleryItemByUid(imageUid);
- if (imageRating == null) { // add
- imageRating = new ImageRating();
- imageRating.setCreateBy(imageGalleryUser);
- imageRating.setImageGalleryItem(dbImage);
- }
- imageRating.setRating(rating);
- service.saveOrUpdateImageRating(imageRating);
-
- // to make available new changes be visible in jsp page
- sessionMap.put(ImageGalleryConstants.PARAM_CURRENT_IMAGE, dbImage);
- sessionMap.put(ImageGalleryConstants.PARAM_CURRENT_RATING, rating);
-
- request.setAttribute(ImageGalleryConstants.ATTR_SESSION_MAP_ID, sessionMapID);
- return mapping.findForward(ImageGalleryConstants.SUCCESS);
- }
-
- /**
- * Move down current item.
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return
- */
private ActionForward vote(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
String sessionMapID = WebUtil.readStrParam(request, ImageGalleryConstants.ATTR_SESSION_MAP_ID);
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java
===================================================================
diff -u -rdbbdbe1fcf86e07c4d5163178b4c679b4dedfed9 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision dbbdbe1fcf86e07c4d5163178b4c679b4dedfed9)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -48,7 +48,6 @@
import org.lamsfoundation.lams.tool.imageGallery.dto.UserImageContributionDTO;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService;
import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException;
Index: lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag
===================================================================
diff -u
--- lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (revision 0)
+++ lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,212 @@
+<%
+ /**
+ * AuthoringRatingCriteria.tag
+ * Author: Andrey Balan
+ * Description: Creates list of rating criterias for authoring page
+ */
+ %>
+<%@ tag body-content="scriptless" %>
+<%@ taglib uri="tags-core" prefix="c" %>
+<%@ taglib uri="tags-fmt" prefix="fmt" %>
+<%@ taglib uri="tags-html" prefix="html" %>
+<%@ taglib uri="tags-lams" prefix="lams"%>
+<%@ taglib uri="tags-function" prefix="fn" %>
+
+
+<%@ attribute name="criterias" required="true" rtexprvalue="true" type="java.util.Collection" %>
+
+<%-- Optional attribute --%>
+<%@ attribute name="headerLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="addLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="deleteLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="upLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="downLabel" required="false" rtexprvalue="true" %>
+
+<%-- Default value for message key --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ ">
+
+ ">
+
+
+
+
+
+ ">
+
+
+ ">
+
+ |
+
+
+ " >
+ |
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: lams_tool_images/web/WEB-INF/tags/Rating.tag
===================================================================
diff -u
--- lams_tool_images/web/WEB-INF/tags/Rating.tag (revision 0)
+++ lams_tool_images/web/WEB-INF/tags/Rating.tag (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -0,0 +1,117 @@
+<%
+ /**
+ * Rating.tag
+ * Author: Andrey Balan
+ * Description: Shows rating stars widget
+ */
+ %>
+<%@ tag body-content="scriptless" %>
+<%@ taglib uri="tags-core" prefix="c" %>
+<%@ taglib uri="tags-fmt" prefix="fmt" %>
+<%@ taglib uri="tags-html" prefix="html" %>
+<%@ taglib uri="tags-lams" prefix="lams"%>
+<%@ taglib uri="tags-function" prefix="fn" %>
+
+
+<%@ attribute name="ratingDtos" required="false" rtexprvalue="true" type="java.util.Collection" %>
+
+<%-- Optional attribute --%>
+<%@ attribute name="disabled" required="false" rtexprvalue="true" %>
+<%@ attribute name="numberVotesLabel" required="false" rtexprvalue="true" %>
+
+<%-- Default value for message key --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${ratingDto.ratingCriteria.title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${ratingDto.numberOfVotes}
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: lams_tool_images/web/WEB-INF/tlds/lams/lams.tld
===================================================================
diff -u -r86a2855c49422f236ac31c35df38fa3c66220dcc -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/web/WEB-INF/tlds/lams/lams.tld (.../lams.tld) (revision 86a2855c49422f236ac31c35df38fa3c66220dcc)
+++ lams_tool_images/web/WEB-INF/tlds/lams/lams.tld (.../lams.tld) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -426,6 +426,14 @@
AuthoringButton
/WEB-INF/tags/AuthoringButton.tag
+
+
+ AuthoringRatingCriteria
+ /WEB-INF/tags/AuthoringRatingCriteria.tag
+
+
+ Rating
+ /WEB-INF/tags/Rating.tag
headItems
Index: lams_tool_images/web/includes/javascript/imageGallerycommon.js
===================================================================
diff -u -r8a7c47632a6a93892f015f068d12adb376c0ae2d -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/web/includes/javascript/imageGallerycommon.js (.../imageGallerycommon.js) (revision 8a7c47632a6a93892f015f068d12adb376c0ae2d)
+++ lams_tool_images/web/includes/javascript/imageGallerycommon.js (.../imageGallerycommon.js) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -1,10 +1,10 @@
- function showBusy(targetDiv){
- if($(targetDiv+"_Busy") != null){
- Element.show(targetDiv+"_Busy");
- }
+function showBusy(targetDiv){
+ if($(targetDiv+"_Busy") != null){
+ document.getElementById(targetDiv+"_Busy").style.display = '';
}
- function hideBusy(targetDiv){
- if($(targetDiv+"_Busy") != null){
- Element.hide(targetDiv+"_Busy");
- }
- }
+}
+function hideBusy(targetDiv){
+ if($(targetDiv+"_Busy") != null){
+ document.getElementById(targetDiv+"_Busy").style.display = 'none';
+ }
+}
Index: lams_tool_images/web/includes/javascript/imageGalleryitem.js
===================================================================
diff -u -rfb9d13eb115f5281b03ab1624ec10a22ba3b81b7 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/web/includes/javascript/imageGalleryitem.js (.../imageGalleryitem.js) (revision fb9d13eb115f5281b03ab1624ec10a22ba3b81b7)
+++ lams_tool_images/web/includes/javascript/imageGalleryitem.js (.../imageGalleryitem.js) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -51,7 +51,7 @@
}
if(area != null){
- area.style.width="650px";
+ area.style.width="100%";
area.src=url;
area.style.display="block";
}
Index: lams_tool_images/web/pages/authoring/advance.jsp
===================================================================
diff -u -rdb681dba0a5e44ae9f4e4cf6b9bc575d6175212f -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/web/pages/authoring/advance.jsp (.../advance.jsp) (revision db681dba0a5e44ae9f4e4cf6b9bc575d6175212f)
+++ lams_tool_images/web/pages/authoring/advance.jsp (.../advance.jsp) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -1,6 +1,15 @@
<%@ include file="/common/taglibs.jsp"%>
-
+
+
@@ -44,8 +54,7 @@
-
-
+
@@ -70,26 +79,30 @@
-
-
- checked="checked"
- disabled="disabled"
- />
-
-
-
-
- checked="checked"
- disabled="disabled"
- />
-
+
+
checked="checked"
+
disabled="disabled"
+ />
+
+
+
+
checked="checked"
+
disabled="disabled"
+ />
+
+
+
style="display:none;" >
+
+
+
Index: lams_tool_images/web/pages/authoring/authoring.jsp
===================================================================
diff -u -rdbbdbe1fcf86e07c4d5163178b4c679b4dedfed9 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision dbbdbe1fcf86e07c4d5163178b4c679b4dedfed9)
+++ lams_tool_images/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -9,7 +9,7 @@
<%@ include file="/common/tabbedheader.jsp"%>
-
+
@@ -132,8 +149,8 @@
- width="100%"
+ contentFolderID="${formBean.contentFolderID}"
+ width="100%">
Index: lams_tool_images/web/pages/authoring/parts/addimage.jsp
===================================================================
diff -u -rdbbdbe1fcf86e07c4d5163178b4c679b4dedfed9 -rf3be94729c90c7390a6aea11d1886a4b72d96670
--- lams_tool_images/web/pages/authoring/parts/addimage.jsp (.../addimage.jsp) (revision dbbdbe1fcf86e07c4d5163178b4c679b4dedfed9)
+++ lams_tool_images/web/pages/authoring/parts/addimage.jsp (.../addimage.jsp) (revision f3be94729c90c7390a6aea11d1886a4b72d96670)
@@ -75,13 +75,14 @@
-
-
-
+
+
+
+
+
+