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 2020/09/29 14:13:43 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2456] opened
poll results are dynamically updated
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new ac950ca [OPENMEETINGS-2456] opened poll results are dynamically updated
ac950ca is described below
commit ac950cabc414d242a07618b9fc3753053240c510
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Sep 29 21:13:25 2020 +0700
[OPENMEETINGS-2456] opened poll results are dynamically updated
---
.../openmeetings/web/room/menu/PollsSubMenu.java | 4 +-
.../web/room/poll/CreatePollDialog.html | 38 +++++++++---------
.../web/room/poll/PollResultsDialog.html | 42 ++++++++++----------
.../web/room/poll/PollResultsDialog.java | 17 +++-----
.../openmeetings/web/room/poll/VoteDialog.html | 46 ++++++++++++----------
openmeetings-web/src/main/webapp/css/raw-room.css | 3 ++
6 files changed, 75 insertions(+), 75 deletions(-)
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
index f3b7af6..7843f55 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
@@ -139,7 +139,7 @@ public class PollsSubMenu implements Serializable {
@Override
public void onClick(AjaxRequestTarget target) {
- pollResults.updateModel(target, room.getClient().hasRight(Room.Right.MODERATOR));
+ pollResults.updateModel(target, true, room.getClient().hasRight(Room.Right.MODERATOR));
pollResults.show(target);
}
};
@@ -178,7 +178,7 @@ public class PollsSubMenu implements Serializable {
vote.show(handler);
}
if (pollResults.isOpened()) {
- pollResults.updateModel(handler, room.getClient().hasRight(Room.Right.MODERATOR));
+ pollResults.updateModel(handler, false, room.getClient().hasRight(Room.Right.MODERATOR));
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.html
index b382aeb..1885736 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.html
@@ -22,26 +22,24 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
<form wicket:id="form">
- <table>
- <tr>
- <th colspan="2"><wicket:message key="19" /></th>
- </tr>
- <tr>
- <td><label wicket:for="name"><wicket:message key="1410" /></label></td>
- <td><input type="text" wicket:id="name" class="input"/></td>
- </tr>
- <tr>
- <td><label wicket:for="question"><wicket:message key="20" /></label></td>
- <td><textarea wicket:id="question"></textarea></td>
- </tr>
- <tr>
- <td><label wicket:for="type"><wicket:message key="21" /></label></td>
- <td><select wicket:id="type"/></td>
- </tr>
- <tr>
- <td colspan="2"><wicket:message key="23" /></td>
- </tr>
- </table>
+ <div class="row form-group">
+ <div class="col-11"><wicket:message key="19"/></div>
+ </div>
+ <div class="row form-group">
+ <label wicket:for="name" class="col-4"><wicket:message key="1410"/></label>
+ <input type="text" wicket:id="name" class="col-7"/>
+ </div>
+ <div class="row form-group">
+ <label wicket:for="question" class="col-4"><wicket:message key="20"/></label>
+ <textarea wicket:id="question" class="col-7"></textarea>
+ </div>
+ <div class="row form-group">
+ <label wicket:for="type" class="col-4"><wicket:message key="21" /></label>
+ <select wicket:id="type" class="custom-select col-7"/>
+ </div>
+ <div class="row">
+ <div class="col-11"><wicket:message key="23" /></div>
+ </div>
<div wicket:id="feedback"></div>
</form>
</wicket:extend>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
index ed22811..7aef2b6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
@@ -22,30 +22,28 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
<form wicket:id="selForm">
- <table class="w-100">
- <tr>
- <td><wicket:message key="1412"/></td>
- <td><select class="form-control" wicket:id="polls"></select></td>
- </tr>
- </table>
+ <div class="row">
+ <div class="col-4"><wicket:message key="1412"/></div>
+ <select class="custom-select col-7" wicket:id="polls"></select>
+ </div>
</form>
<form wicket:id="dispForm">
- <table class="w-100">
- <tr>
- <td colspan="2"><span wicket:id="name"></span> <wicket:message key="36"/></td>
- </tr>
- <tr>
- <td colspan="2"><span wicket:id="question"></span></td>
- </tr>
- <tr>
- <td><wicket:message key="39"/> (<span wicket:id="count"></span>)</td>
- <td><select class="form-control" wicket:id="chartType"></select></td>
- </tr>
- <tr>
- <td><wicket:message key="40"/></td>
- <td><div wicket:id="chart"></div></td>
- </tr>
- </table>
+ <div class="row">
+ <div class="col-11">
+ <span wicket:id="name"></span> <wicket:message key="36"/>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-11"><span wicket:id="question"></span></div>
+ </div>
+ <div class="row">
+ <div class="col-4"><wicket:message key="39"/> (<span wicket:id="count"></span>)</div>
+ <select class="custom-select col-7" wicket:id="chartType"></select>
+ </div>
</form>
+ <div class="row">
+ <div class="col-4"><wicket:message key="40"/></div>
+ <div class="col-7" wicket:id="chart" id="room-poll-chart"></div>
+ </div>
</wicket:extend>
</html>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
index 7074c5e..c6ef92c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
@@ -155,27 +155,22 @@ public class PollResultsDialog extends Modal<RoomPoll> {
});
clone.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
addButton(OmModalCloseButton.of());
+ add(chartDiv.setOutputMarkupId(true));
super.onInitialize();
}
- public void updateModel(IPartialPageRequestHandler target, boolean moderator) {
+ public void updateModel(IPartialPageRequestHandler target, boolean onOpen, boolean moderator) {
selForm.updateModel(target);
this.moderator = moderator;
RoomPoll p = selForm.select.getModelObject();
- dispForm.updateModel(p, false, target);
- StringBuilder builder = new StringBuilder();
- builder.append("$('#").append(PollResultsDialog.this.getMarkupId()).append("').on('dialogopen', function( event, ui ) {");
- builder.append(getScript(barChart(p), true));
- builder.append("});");
-
- target.appendJavaScript(builder.toString());
+ dispForm.updateModel(p, !onOpen, target);
}
private StringBuilder getScript(Chart<?> chart, boolean onShow) {
StringBuilder sb = new StringBuilder()
.append("$('#").append(chartDiv.getMarkupId()).append("').html(''); ");
if (onShow) {
- sb.append("$('#").append(getMarkupId()).append("').on('shown.bs.modal', function (e) {\n");
+ sb.append("$('#").append(getMarkupId()).append("').off().on('shown.bs.modal', function (e) {\n");
}
sb.append("$.jqplot('").append(chartDiv.getMarkupId()).append("', ")
.append(chart.getChartData().toJsonString())
@@ -219,7 +214,7 @@ public class PollResultsDialog extends Modal<RoomPoll> {
public Modal<RoomPoll> show(IPartialPageRequestHandler handler) {
opened = true;
super.show(handler);
- dispForm.redraw(handler, true);
+ handler.appendJavaScript(getScript(barChart(selForm.select.getModelObject()), true));
return this;
}
@@ -290,6 +285,7 @@ public class PollResultsDialog extends Modal<RoomPoll> {
PollSelectForm(String id) {
super(id);
+ setOutputMarkupId(true);
}
@Override
@@ -349,7 +345,6 @@ public class PollResultsDialog extends Modal<RoomPoll> {
@Override
protected void onInitialize() {
- add(chartDiv.setOutputMarkupId(true));
chartSimple = getString("1414");
chartPie = getString("1415");
add(name, question, count);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html
index 5c294b1..11d2463 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.html
@@ -22,28 +22,34 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:extend>
<form wicket:id="form">
- <table>
- <tr>
- <td colspan="2"><span wicket:id="user"></span> <wicket:message key="36" /></td>
- </tr>
- <tr>
- <td colspan="2"><span wicket:id="roomPoll.question"></span></td>
- </tr>
- <tr>
- <td><wicket:message key="33" /></td>
- <td>
- <div wicket:id="typeBool">
- <div wicket:id="answer">
- <input type="radio" wicket:id="true"/><label wicket:for="true"><wicket:message key="34" /></label><br/>
- <input type="radio" wicket:id="false"/><label wicket:for="false"><wicket:message key="35" /></label>
+ <div class="row form-group">
+ <div class="col-11">
+ <span wicket:id="user"></span> <wicket:message key="36"/>
+ </div>
+ </div>
+ <div class="row form-group">
+ <div class="col-11"><span wicket:id="roomPoll.question"></span></div>
+ </div>
+ <div class="row">
+ <div class="col-4"><wicket:message key="33" /></div>
+ <div class="col-7">
+ <div wicket:id="typeBool">
+ <div wicket:id="answer">
+ <div class="custom-control custom-radio">
+ <input type="radio" wicket:id="true" class="custom-control-input"/>
+ <label wicket:for="true" class="custom-control-label"><wicket:message key="34" /></label>
+ </div>
+ <div class="custom-control custom-radio">
+ <input type="radio" wicket:id="false" class="custom-control-input"/>
+ <label wicket:for="false" class="custom-control-label"><wicket:message key="35" /></label>
</div>
</div>
- <div wicket:id="typeInt">
- <select wicket:id="pointList"></select>
- </div>
- </td>
- </tr>
- </table>
+ </div>
+ <div wicket:id="typeInt">
+ <select class="custom-select" wicket:id="pointList"></select>
+ </div>
+ </div>
+ </div>
<div wicket:id="feedback"></div>
</form>
</wicket:extend>
diff --git a/openmeetings-web/src/main/webapp/css/raw-room.css b/openmeetings-web/src/main/webapp/css/raw-room.css
index 24fd529..2204572 100644
--- a/openmeetings-web/src/main/webapp/css/raw-room.css
+++ b/openmeetings-web/src/main/webapp/css/raw-room.css
@@ -663,6 +663,9 @@ html[dir="rtl"] .room-block .sb-wb .sidebar {
.main.room.INTERVIEW .wb-block .wb-area .rec-btn .ui-button-icon.ui-icon.record {
border-radius: 15px;
}
+#room-poll-chart {
+ height: 300px;
+}
#quick-vote {
position: absolute;
right: 40px;