You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/09/13 15:41:44 UTC

svn commit: r1624736 - in /openmeetings/trunk/singlewebapp: openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ openmeetings-install/src/main/java/org/apache/openmeeti...

Author: solomax
Date: Sat Sep 13 13:41:43 2014
New Revision: 1624736

URL: http://svn.apache.org/r1624736
Log:
[OPENMEETINGS-1081] poll vote is added

Added:
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
      - copied, changed from r1624735, openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.html
      - copied unchanged from r1624735, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.html
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
      - copied, changed from r1624722, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
Removed:
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.html
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java
Modified:
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/PollType.java
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
    openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java Sat Sep 13 13:41:43 2014
@@ -35,7 +35,7 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.PollType;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
-import org.apache.openmeetings.db.entity.room.RoomPollAnswers;
+import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,7 +60,7 @@ public class PollDao {
 		log.debug("Adding poll type: " + labelId + ", " + isNumeric);
 		PollType pt = new PollType();
 		pt.setLabel(fieldValDao.get(labelId));
-		pt.setIsNumericAnswer(isNumeric);
+		pt.setNumeric(isNumeric);
 
 		em.persist(pt);
 		
@@ -195,10 +195,9 @@ public class PollDao {
 	public boolean hasVoted(Long room_id, Long userid) {
 		try {
 			log.debug(" :: hasVoted :: " + room_id + ", " + userid);
-			TypedQuery<RoomPollAnswers> q = em.createNamedQuery("hasVoted", RoomPollAnswers.class);
+			TypedQuery<RoomPollAnswer> q = em.createNamedQuery("hasVoted", RoomPollAnswer.class);
 			q.setParameter("room_id", room_id);
 			q.setParameter("userid", userid);
-			q.setParameter("archived", false);
 			q.getSingleResult();
 			return true;
 		} catch (NoResultException nre) {

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/PollType.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/PollType.java?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/PollType.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/PollType.java Sat Sep 13 13:41:43 2014
@@ -54,7 +54,7 @@ public class PollType implements IDataPr
 	private Fieldvalues label;
 	
 	@Column(name = "numeric_answer")
-	private Boolean isNumericAnswer;
+	private boolean numeric;
 	
 	/**
 	 * @return the pollTypesId
@@ -69,18 +69,6 @@ public class PollType implements IDataPr
 		this.id = id;
 	}
 	/**
-	 * @return the isNumericAnswer
-	 */
-	public Boolean getIsNumericAnswer() {
-		return isNumericAnswer;
-	}
-	/**
-	 * @param isNumericAnswer the isNumericAnswer to set
-	 */
-	public void setIsNumericAnswer(Boolean isNumericAnswer) {
-		this.isNumericAnswer = isNumericAnswer;
-	}
-	/**
 	 * @return the pollTypeLabelid
 	 */
 	public Fieldvalues getLabel() {
@@ -92,4 +80,12 @@ public class PollType implements IDataPr
 	public void setLabel(Fieldvalues label) {
 		this.label = label;
 	}
+	
+	public boolean isNumeric() {
+		return numeric;
+	}
+	
+	public void setNumeric(boolean numeric) {
+		this.numeric = numeric;
+	}
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java Sat Sep 13 13:41:43 2014
@@ -55,7 +55,7 @@ import org.simpleframework.xml.Root;
 				+ "WHERE rp.room.id = :room_id AND rp.archived = :archived"),
 		@NamedQuery(name = "hasPoll", query = "SELECT COUNT(rp) FROM RoomPoll rp "
 				+ "WHERE rp.room.id = :room_id AND rp.archived = :archived") })
-@Table(name = "room_polls")
+@Table(name = "room_poll")
 @Root(name = "roompoll")
 public class RoomPoll implements IDataProviderEntity {
 	private static final long serialVersionUID = 1L;
@@ -102,7 +102,7 @@ public class RoomPoll implements IDataPr
 	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
 	@JoinColumn(name = "room_poll_id")
 	@ElementList(name = "roompollanswers", required = false)
-	private List<RoomPollAnswers> answers;
+	private List<RoomPollAnswer> answers;
 
 	/**
 	 * @return the creator
@@ -152,9 +152,9 @@ public class RoomPoll implements IDataPr
 	/**
 	 * @return the answers
 	 */
-	public List<RoomPollAnswers> getAnswers() {
+	public List<RoomPollAnswer> getAnswers() {
 		if (answers == null) {
-			answers = new LinkedList<RoomPollAnswers>();
+			answers = new LinkedList<RoomPollAnswer>();
 		}
 		return answers;
 	}
@@ -163,7 +163,7 @@ public class RoomPoll implements IDataPr
 	 * @param answers
 	 *            the answers to set
 	 */
-	public void setAnswers(List<RoomPollAnswers> answers) {
+	public void setAnswers(List<RoomPollAnswer> answers) {
 		this.answers = answers;
 	}
 

Copied: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java (from r1624735, openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java?p2=openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java&p1=openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java&r1=1624735&r2=1624736&rev=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java Sat Sep 13 13:41:43 2014
@@ -33,19 +33,21 @@ import javax.persistence.OneToOne;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQueries({
-	@NamedQuery(name = "hasVoted", query = "SELECT rpa FROM RoomPollAnswers rpa WHERE rpa.roomPoll.room.id = :room_id " +
-				"AND rpa.votedUser.id = :userid AND rpa.roomPoll.archived = :archived")
+	@NamedQuery(name = "hasVoted", query = "SELECT rpa FROM RoomPollAnswer rpa WHERE rpa.roomPoll.room.id = :room_id " +
+				"AND rpa.votedUser.id = :userid AND rpa.roomPoll.archived = false")
 })
-@Table(name = "room_poll_answers")
+@Table(name = "room_poll_answer")
 @Root(name="roompollanswer")
-public class RoomPollAnswers {
-	
+public class RoomPollAnswer implements IDataProviderEntity {
+	private static final long serialVersionUID = 1L;
+
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	@Column(name = "id")

Modified: openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java Sat Sep 13 13:41:43 2014
@@ -92,7 +92,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.RoomModerator;
 import org.apache.openmeetings.db.entity.room.RoomOrganisation;
 import org.apache.openmeetings.db.entity.room.RoomPoll;
-import org.apache.openmeetings.db.entity.room.RoomPollAnswers;
+import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
 import org.apache.openmeetings.db.entity.room.RoomType;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.server.OAuthServer;
@@ -634,7 +634,7 @@ public class BackupImport {
 				if (rp.getCreator() == null || rp.getCreator().getId() == null) {
 					rp.setCreator(null);
 				}
-				for (RoomPollAnswers rpa : rp.getAnswers()) {
+				for (RoomPollAnswer rpa : rp.getAnswers()) {
 					if (rpa.getVotedUser() == null || rpa.getVotedUser().getId() == null) {
 						rpa.setVotedUser(null);
 					}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html Sat Sep 13 13:41:43 2014
@@ -53,5 +53,6 @@
 	</div>
 	<div wicket:id="invite"></div>
 	<div wicket:id="createPoll"></div>
+	<div wicket:id="vote"></div>
 </wicket:panel>
 </html>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Sat Sep 13 13:41:43 2014
@@ -63,6 +63,8 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.common.tree.PublicRecordingTreeProvider;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.room.message.RoomMessage;
+import org.apache.openmeetings.web.room.poll.CreatePollDialog;
+import org.apache.openmeetings.web.room.poll.VoteDialog;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -128,6 +130,7 @@ public class RoomPanel extends BasePanel
 	};
 	private final InvitationDialog invite;
 	private final CreatePollDialog createPoll;
+	private final VoteDialog vote;
 	private final MenuPanel menuPanel;
 	private final RoomMenuItem exitMenuItem = new RoomMenuItem(WebSession.getString(308), WebSession.getString(309), "room menu exit") {
 		private static final long serialVersionUID = 1L;
@@ -176,7 +179,14 @@ public class RoomPanel extends BasePanel
 			createPoll.open(target);
 		}
 	};
-	private final RoomMenuItem pollVoteMenuItem = new RoomMenuItem(WebSession.getString(42), WebSession.getString(1485), false);
+	private final RoomMenuItem pollVoteMenuItem = new RoomMenuItem(WebSession.getString(42), WebSession.getString(1485), false) {
+		private static final long serialVersionUID = 1L;
+
+		public void onClick(MainPage page, AjaxRequestTarget target) {
+			vote.updateModel(target);
+			vote.open(target);
+		}
+	};
 	private final RoomMenuItem pollResultMenuItem = new RoomMenuItem(WebSession.getString(37), WebSession.getString(1484), false);
 	private final RoomMenuItem sipDialerMenuItem = new RoomMenuItem(WebSession.getString(1447), WebSession.getString(1488), false);
 	private final WebMarkupContainer userList = new WebMarkupContainer("userList");
@@ -260,7 +270,7 @@ public class RoomPanel extends BasePanel
 					item.add(AttributeAppender.append("class", "current"));
 				}
 			}
-		}.setReuseItems(true)).setOutputMarkupId(true));
+		}).setOutputMarkupId(true));
 		add(new JQueryBehavior(".room.sidebar.left .tabs", "tabs", new Options("active", showFiles && r.isFilesOpened() ? "ftab" : "utab")) {
 			private static final long serialVersionUID = 1L;
 
@@ -283,6 +293,7 @@ public class RoomPanel extends BasePanel
 		}).setOutputMarkupPlaceholderTag(true).setVisible(false).add(new AttributeAppender("title", WebSession.getString(1480))));
 		add(invite = new InvitationDialog("invite", roomId));
 		add(createPoll = new CreatePollDialog("createPoll", roomId));
+		add(vote = new VoteDialog("vote", roomId));
 	}
 
 	@Override
@@ -293,6 +304,7 @@ public class RoomPanel extends BasePanel
 				RoomMessage m = (RoomMessage)wsEvent.getMessage();
 				switch (m.getType()) {
 					case pollCreated:
+					case voted:
 					case rightUpdated:
 						updateUserMenuIcons(wsEvent.getHandler());
 						break;
@@ -396,8 +408,8 @@ public class RoomPanel extends BasePanel
 		applyWbMenuItem.setActive(!moder);
 		applyAvMenuItem.setActive(!moder);
 		pollCreateMenuItem.setActive(moder);
-		pollVoteMenuItem.setActive(pollExists && notExternalUser);
-		pollResultMenuItem.setActive(pollExists && notExternalUser);
+		pollVoteMenuItem.setActive(pollExists && notExternalUser && !getBean(PollDao.class).hasVoted(roomId, getUserId()));
+		pollResultMenuItem.setActive(pollExists || getBean(PollDao.class).getArchivedPollList(roomId).size() > 0);
 		//TODO sip menus
 		handler.add(menuPanel, askBtn.setVisible(!moder), shareBtn.setVisible(shareVisible));
 	}
@@ -455,8 +467,8 @@ public class RoomPanel extends BasePanel
 
 	private List<RoomClient> getUsers() {
 		List<RoomClient> list = new ArrayList<RoomPanel.RoomClient>();
-		for (Client c : getRoomUsers(roomId)) {
-			list.add(new RoomClient(c));
+		for (Client cl : getRoomUsers(roomId)) {
+			list.add(new RoomClient(cl));
 		}
 		return list;
 	}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/message/RoomMessage.java Sat Sep 13 13:41:43 2014
@@ -29,6 +29,7 @@ public class RoomMessage implements IWeb
 		roomEnter
 		, roomExit
 		, pollCreated
+		, voted
 		, rightUpdated
 	}
 	private final Date timestamp;

Copied: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java (from r1624722, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java&r1=1624722&r2=1624736&rev=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/CreatePollDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java Sat Sep 13 13:41:43 2014
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room;
+package org.apache.openmeetings.web.room.poll;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
@@ -32,6 +32,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.message.RoomMessage;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;

Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html?rev=1624736&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html Sat Sep 13 13:41:43 2014
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="form">
+		<table>
+			<tr>
+				<td colspan="2"><span wicket:id="user"></span>&nbsp;<wicket:ommessage key="36" /></td>
+			</tr>
+			<tr>
+				<td colspan="2"><span wicket:id="roomPoll.question"></span></td>
+			</tr>
+			<tr>
+				<td><wicket:ommessage key="33" /></td>
+				<td style="height: 50px;">
+					<div wicket:id="typeBool">
+						<div wicket:id="answer">
+							<input type="radio" wicket:id="true"/><label wicket:for="true"><wicket:ommessage key="34" /></label><br/>
+							<input type="radio" wicket:id="false"/><label wicket:for="false"><wicket:ommessage key="35" /></label>
+						</div>
+					</div>
+					<div wicket:id="typeInt">
+						<select wicket:id="pointList"></select>
+					</div>
+				</td>
+			</tr>
+		</table>
+		<div wicket:id="feedback"></div>
+	</form>
+</wicket:panel>
+</html>

Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java?rev=1624736&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java Sat Sep 13 13:41:43 2014
@@ -0,0 +1,125 @@
+/**
+ * 
+ */
+package org.apache.openmeetings.web.room.poll;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.PollDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.message.RoomMessage;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
+
+/**
+ * @author solomax
+ *
+ */
+public class VoteDialog extends AbstractFormDialog<RoomPollAnswer> {
+	private static final long serialVersionUID = 1L;
+	private final static List<Integer> answers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+	private final long roomId;
+	private final PollAnswerForm form;
+	private final DialogButton vote = new DialogButton(WebSession.getString(32));
+	private final DialogButton cancel = new DialogButton(WebSession.getString(25));
+	private final KendoFeedbackPanel feedback = new KendoFeedbackPanel("feedback", new Options("button", true));
+	private final IModel<String> user = Model.of((String)null);
+
+	public VoteDialog(String id, long roomId) {
+		super(id, WebSession.getString(18));
+		this.roomId = roomId;
+		add(form = new PollAnswerForm("form", new CompoundPropertyModel<RoomPollAnswer>(new RoomPollAnswer())));
+	}
+	
+	public void updateModel(AjaxRequestTarget target) {
+		RoomPollAnswer a = new RoomPollAnswer();
+		a.setRoomPoll(getBean(PollDao.class).getPoll(roomId));
+		User u = getBean(UserDao.class).get(getUserId());
+		a.setVotedUser(u);
+		user.setObject(a.getRoomPoll().getCreator().getFirstname() + " " + a.getRoomPoll().getCreator().getLastname());
+		form.setModelObject(a);
+		target.add(form);
+	}
+	
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(vote, cancel);
+	}
+	
+	/* (non-Javadoc)
+	 * @see com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog#getSubmitButton()
+	 */
+	@Override
+	protected DialogButton getSubmitButton() {
+		return vote;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog#getForm()
+	 */
+	@Override
+	public PollAnswerForm getForm() {
+		return form;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog#onError(org.apache.wicket.ajax.AjaxRequestTarget)
+	 */
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		target.add(feedback);
+	}
+
+	/* (non-Javadoc)
+	 * @see com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog#onSubmit(org.apache.wicket.ajax.AjaxRequestTarget)
+	 */
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		RoomPollAnswer a = form.getModelObject();
+		a.setVoteDate(new Date());
+		a.getRoomPoll().getAnswers().add(a);
+		getBean(PollDao.class).update(a.getRoomPoll());
+		RoomPanel.broadcast(new RoomMessage(roomId, getUserId(), RoomMessage.Type.voted));
+	}
+	
+	private class PollAnswerForm extends Form<RoomPollAnswer> {
+		private static final long serialVersionUID = 1L;
+
+		PollAnswerForm(String id, IModel<RoomPollAnswer> model) {
+			super(id, model);
+			add(feedback);
+			add(new Label("user", user));
+			add(new Label("roomPoll.question"));
+			RoomPollAnswer a = getModelObject();
+			boolean typeNum = a.getRoomPoll() != null && a.getRoomPoll().getType() != null && a.getRoomPoll().getType().isNumeric();
+			add(new WebMarkupContainer("typeBool")
+				.add(new RadioGroup<Boolean>("answer").setRequired(true)
+						.add(new Radio<Boolean>("true", Model.of(Boolean.TRUE))).add(new Radio<Boolean>("false", Model.of(Boolean.FALSE)))
+				).setVisible(!typeNum));
+			add(new WebMarkupContainer("typeInt")
+				.add(new DropDownChoice<Integer>("pointList", answers).setRequired(true)).setVisible(typeNum));
+		}
+	}
+}

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml Sat Sep 13 13:41:43 2014
@@ -53,7 +53,7 @@
 		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
 		<class>org.apache.openmeetings.db.entity.room.PollType</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
-		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
 		<class>org.apache.openmeetings.db.entity.room.Client</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
 		<class>org.apache.openmeetings.db.entity.room.Room</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Sat Sep 13 13:41:43 2014
@@ -53,7 +53,7 @@
 		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
 		<class>org.apache.openmeetings.db.entity.room.PollType</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
-		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
 		<class>org.apache.openmeetings.db.entity.room.Client</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
 		<class>org.apache.openmeetings.db.entity.room.Room</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml Sat Sep 13 13:41:43 2014
@@ -52,7 +52,7 @@
 		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
 		<class>org.apache.openmeetings.db.entity.room.PollType</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
-		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
 		<class>org.apache.openmeetings.db.entity.room.Client</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
 		<class>org.apache.openmeetings.db.entity.room.Room</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml Sat Sep 13 13:41:43 2014
@@ -53,7 +53,7 @@
 		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
 		<class>org.apache.openmeetings.db.entity.room.PollType</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
-		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
 		<class>org.apache.openmeetings.db.entity.room.Client</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
 		<class>org.apache.openmeetings.db.entity.room.Room</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml Sat Sep 13 13:41:43 2014
@@ -53,7 +53,7 @@
 		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
 		<class>org.apache.openmeetings.db.entity.room.PollType</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
-		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
 		<class>org.apache.openmeetings.db.entity.room.Client</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
 		<class>org.apache.openmeetings.db.entity.room.Room</class>

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml?rev=1624736&r1=1624735&r2=1624736&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml Sat Sep 13 13:41:43 2014
@@ -53,7 +53,7 @@
 		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
 		<class>org.apache.openmeetings.db.entity.room.PollType</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
-		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
 		<class>org.apache.openmeetings.db.entity.room.Client</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
 		<class>org.apache.openmeetings.db.entity.room.Room</class>