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