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>


Reply via email to