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 c9606b1 [OPENMEETINGS-2072] wait-moderator seems to be implemented
c9606b1 is described below
commit c9606b143af4588633c584d3fa0a189135eaefd4
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Wed Dec 25 18:43:40 2019 +0700
[OPENMEETINGS-2072] wait-moderator seems to be implemented
---
.../apache/openmeetings/db/dto/room/RoomDTO.java | 20 ++--
.../apache/openmeetings/db/entity/room/Room.java | 34 ++++---
.../openmeetings/db/util/ws/RoomMessage.java | 1 +
.../installation/ImportInitvalues.java | 2 +-
.../openmeetings/web/admin/rooms/RoomForm.java | 3 +-
.../openmeetings/web/admin/rooms/RoomsPanel.html | 6 +-
.../web/app/Application.properties.xml | 2 +
.../web/app/Application_ar.properties.xml | 2 +
.../web/app/Application_bg.properties.xml | 2 +
.../web/app/Application_bn.properties.xml | 2 +
.../web/app/Application_ca.properties.xml | 2 +
.../web/app/Application_cs.properties.xml | 2 +
.../web/app/Application_da.properties.xml | 2 +
.../web/app/Application_de.properties.xml | 2 +
.../web/app/Application_el.properties.xml | 2 +
.../web/app/Application_es.properties.xml | 2 +
.../web/app/Application_fa.properties.xml | 2 +
.../web/app/Application_fi.properties.xml | 2 +
.../web/app/Application_fr.properties.xml | 2 +
.../web/app/Application_gl.properties.xml | 2 +
.../web/app/Application_he.properties.xml | 2 +
.../web/app/Application_hu.properties.xml | 2 +
.../web/app/Application_in.properties.xml | 2 +
.../web/app/Application_it.properties.xml | 2 +
.../web/app/Application_ja.properties.xml | 2 +
.../web/app/Application_ko.properties.xml | 2 +
.../web/app/Application_nl.properties.xml | 2 +
.../web/app/Application_pl.properties.xml | 2 +
.../web/app/Application_pt.properties.xml | 2 +
.../web/app/Application_pt_BR.properties.xml | 2 +
.../web/app/Application_ru.properties.xml | 2 +
.../web/app/Application_sk.properties.xml | 2 +
.../web/app/Application_sv.properties.xml | 2 +
.../web/app/Application_th.properties.xml | 2 +
.../web/app/Application_tr.properties.xml | 2 +
.../web/app/Application_uk.properties.xml | 2 +
.../web/app/Application_zh_CN.properties.xml | 2 +
.../web/app/Application_zh_TW.properties.xml | 2 +
.../apache/openmeetings/web/app/TimerService.java | 77 ++++++++++++++++
.../apache/openmeetings/web/pages/HashPage.java | 6 +-
.../web/pages/InvitationPasswordDialog.java | 6 +-
.../web/pages/auth/KickMessageDialog.java | 6 +-
.../openmeetings/web/pages/auth/SignInDialog.java | 6 +-
.../web/pages/install/InstallWizard.java | 6 +-
.../openmeetings/web/room/NicknameDialog.java | 6 +-
...rectTimerBehavior.java => OmTimerBehavior.java} | 8 +-
.../web/room/RedirectMessageDialog.java | 13 ++-
.../apache/openmeetings/web/room/RoomPanel.html | 5 +-
.../apache/openmeetings/web/room/RoomPanel.java | 101 ++++++++++++++-------
.../openmeetings/web/room/WaitModeratorDialog.html | 25 +++++
.../WaitModeratorDialog.java} | 37 ++++----
.../web/room/WaitModeratorDialog_ru.html | 25 +++++
.../openmeetings/web/room/menu/RoomMenuPanel.java | 4 +-
.../web/util/NonClosableMessageDialog.java | 7 ++
.../webservice/TestCalendarService.java | 11 +--
pom.xml | 2 +-
56 files changed, 376 insertions(+), 105 deletions(-)
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
index 70869a3..5ae519d 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
@@ -62,9 +62,10 @@ public class RoomDTO implements Serializable {
private String externalType;
private String redirectUrl;
private boolean moderated;
+ private boolean waitModerator;
private boolean allowUserQuestions;
private boolean allowRecording;
- private boolean waitForRecording;
+ private boolean waitRecording;
private boolean audioOnly;
private Set<RoomElement> hiddenElements = new HashSet<>();
private List<RoomFileDTO> files = new ArrayList<>();
@@ -89,9 +90,10 @@ public class RoomDTO implements Serializable {
externalType = r.externalType();
redirectUrl = r.getRedirectURL();
moderated = r.isModerated();
+ waitModerator = r.isWaitModerator();
allowUserQuestions = r.isAllowUserQuestions();
allowRecording = r.isAllowRecording();
- waitForRecording = r.isWaitForRecording();
+ waitRecording = r.isWaitRecording();
audioOnly = r.isAudioOnly();
hiddenElements = r.getHiddenElements();
files = RoomFileDTO.get(r.getFiles());
@@ -117,9 +119,10 @@ public class RoomDTO implements Serializable {
}
r.setRedirectURL(redirectUrl);
r.setModerated(moderated);
+ r.setWaitModerator(waitModerator);
r.setAllowUserQuestions(allowUserQuestions);
r.setAllowRecording(allowRecording);
- r.setWaitForRecording(waitForRecording);
+ r.setWaitRecording(waitRecording);
r.setAudioOnly(audioOnly);
r.setHiddenElements(hiddenElements);
r.setFiles(RoomFileDTO.get(id, files, fileDao));
@@ -222,12 +225,12 @@ public class RoomDTO implements Serializable {
this.allowRecording = allowRecording;
}
- public boolean isWaitForRecording() {
- return waitForRecording;
+ public boolean isWaitRecording() {
+ return waitRecording;
}
- public void setWaitForRecording(boolean waitForRecording) {
- this.waitForRecording = waitForRecording;
+ public void setWaitRecording(boolean waitRecording) {
+ this.waitRecording = waitRecording;
}
public boolean isAudioOnly() {
@@ -328,9 +331,10 @@ public class RoomDTO implements Serializable {
r.externalType = o.optString("externalType", null);
r.redirectUrl = o.optString("redirectUrl");
r.moderated = o.optBoolean("moderated", false);
+ r.waitModerator = o.optBoolean("waitModerator", false);
r.allowUserQuestions = o.optBoolean("allowUserQuestions",
false);
r.allowRecording = o.optBoolean("allowRecording", false);
- r.waitForRecording = o.optBoolean("waitForRecording", false);
+ r.waitRecording = o.optBoolean("waitRecording", false);
r.audioOnly = o.optBoolean("audioOnly", false);
r.getHiddenElements().addAll(optEnumList(RoomElement.class,
o.optJSONArray("hiddenElements")));
JSONArray fa = o.optJSONArray("files");
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
index 43e6657..fcd6297 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -214,21 +214,26 @@ public class Room extends HistoricalEntity {
@Element(data = true, required = false)
private Integer demoTime; // In Seconds
- // If this is true all participants of a meeting have to wait for the
- // moderator to come into the room
- @Column(name = "ismoderatedroom", nullable = false)
+ // If this is true noone can automatically get additional rights
+ @Column(name = "moderated", nullable = false)
@Element(name="isModeratedRoom", data = true, required = false)
private boolean moderated;
+ // If this is true all participants of a meeting have to wait for the
+ // moderator to come into the room
+ @Column(name = "wait_moderator", nullable = false)
+ @Element(name="waitModerator", data = true, required = false)
+ private boolean waitModerator;
+
@Column(name = "allow_user_questions", nullable = false)
@Element(data = true, required = false)
private boolean allowUserQuestions;
- @Column(name = "is_audio_only", nullable = false)
+ @Column(name = "audio_only", nullable = false)
@Element(name = "isAudioOnly", data = true, required = false)
private boolean audioOnly;
- @Column(name = "is_closed", nullable = false)
+ @Column(name = "closed", nullable = false)
@Element(data = true, required = false)
private boolean closed;
@@ -242,8 +247,7 @@ public class Room extends HistoricalEntity {
@Column(name = "wait_for_recording", nullable = false)
@Element(data = true, required = false)
- private boolean waitForRecording; // Show warning that user has to start
-
// recording
+ private boolean waitRecording; // Show warning that user has to start
recording
@Column(name = "allow_recording", nullable = false)
@Element(name = "allowRecording", data = true, required = false)
@@ -383,6 +387,14 @@ public class Room extends HistoricalEntity {
this.moderated = moderated;
}
+ public boolean isWaitModerator() {
+ return waitModerator;
+ }
+
+ public void setWaitModerator(boolean waitModerator) {
+ this.waitModerator = waitModerator;
+ }
+
public String getExternalId() {
return externalId;
}
@@ -455,12 +467,12 @@ public class Room extends HistoricalEntity {
this.ownerId = ownerId;
}
- public boolean isWaitForRecording() {
- return waitForRecording;
+ public boolean isWaitRecording() {
+ return waitRecording;
}
- public void setWaitForRecording(boolean waitForRecording) {
- this.waitForRecording = waitForRecording;
+ public void setWaitRecording(boolean waitRecording) {
+ this.waitRecording = waitRecording;
}
public boolean isAllowRecording() {
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
index 3331380..9d21420 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
@@ -55,6 +55,7 @@ public class RoomMessage implements IWebSocketPushMessage {
, quickPollUpdated
, kurentoStatus
, wbReload
+ , moderatorInRoom
}
private final Date timestamp;
private final String uid;
diff --git
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 65705c0..18274de 100644
---
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -391,7 +391,7 @@ public class ImportInitvalues {
r.setOwnerId(null);
- r.setWaitForRecording(false);
+ r.setWaitRecording(false);
r.setAllowRecording(true);
if (groupId != null) {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
index d3d3444..722b33a 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
@@ -210,7 +210,7 @@ public class RoomForm extends AdminBaseForm<Room> {
add(new CheckBox("audioOnly"));
add(new CheckBox("closed"));
add(new TextField<String>("redirectURL"));
- add(new CheckBox("waitForRecording"));
+ add(new CheckBox("waitRecording"));
add(new CheckBox("allowRecording"));
add(new CheckBox("chatModerated"));
@@ -321,6 +321,7 @@ public class RoomForm extends AdminBaseForm<Room> {
}).setOutputMarkupId(true));
add(new CheckBox("moderated"));
+ add(new CheckBox("waitModerator"));
// Files
Form<Void> filesForm = new Form<>("filesForm");
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
index 87b196c..65bc1e4 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
@@ -109,7 +109,7 @@
<div class="formelement">
<div
class="info-text"><wicket:message key="1102" /></div>
<br/>
- <label
wicket:for="waitForRecording"><wicket:message key="1356" /></label><input
type="checkbox" class="formcheckbox" wicket:id="waitForRecording" />
+ <label
wicket:for="waitRecording"><wicket:message key="1356" /></label><input
type="checkbox" class="formcheckbox" wicket:id="waitRecording" />
</div>
<div class="formelement">
<label
wicket:for="allowRecording"><wicket:message key="1355" /></label><input
type="checkbox" class="formcheckbox" wicket:id="allowRecording" />
@@ -203,6 +203,10 @@
<label
wicket:for="moderated"><wicket:message key="640" /></label><input
type="checkbox" class="formcheckbox" wicket:id="moderated" />
</div>
<div class="formelement">
+ <div
class="info-text"><wicket:message key="admin.room.wait-moderator.info" /></div>
+ <label
wicket:for="waitModerator"><wicket:message
key="admin.room.wait-moderator.label" /></label><input type="checkbox"
class="formcheckbox" wicket:id="waitModerator" />
+ </div>
+ <div class="formelement">
<label
wicket:for="moderator2add"><wicket:message key="816" /></label><div
class="om-select2"><select wicket:id="moderator2add"
class="input"></select></div>
</div>
<div class="formelement"
wicket:id="moderatorContainer">
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index 0ad716f..fd7bd7f 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index 9217961..cf28b24 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index 2307981..8e8489d 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
index c639112..a17c4f4 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index 975f3c8..22a888f 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index 38cada5..a67c017 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index 723ddc8..8c1d3fa 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
index 9ea120e..22cc010 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -1004,4 +1004,6 @@ see https://openmeetings.apache.org/LanguageEditor.html
for Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index 2ada9a9..dd481b3 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
index 606e551..237f84d 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -997,4 +997,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
index cba9850..263484d 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
@@ -991,4 +991,6 @@ target="_blank">Custom Crypt Mechanism</a>
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index 09f1a23..045fb07 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
index 394b611..b9cdd39 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index 80157fb..c295059 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
index 0ad716f..fd7bd7f 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
index adb0ccb..0b7b55a 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -987,4 +987,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
index c9f1a00..3fb2ee8 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
index 490890a..e16fa70 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
@@ -1000,4 +1000,6 @@ see https://openmeetings.apache.org/LanguageEditor.html
for Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
index f866a62..c454a95 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index 0e2c1f7..5c22185 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index e7df5ce..c7b3b45 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 0f57712..909d135 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index 0b165ef..5d4e3b6 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index f15d3e9..70c86f8 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
index ad2c449..72587b6 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Настройки доски]]></entry>
<entry key="video.settings.https.required"><![CDATA[Камера/Микрофон
скорее всего не будут работать без HTTPS.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Восстановить начальную
доску]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[Никто не сможет
воспользоваться комнатой пока нет модератора]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Ждать
модератора]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index 99f9016..b927cff 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
index 582497b..37ed2d7 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index ded2528..c671215 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index 8836d05..d678d48 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
index f25e329..e757856 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
@@ -998,4 +998,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
index 2284158..695042d 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index 2d18c7d..5238761 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@ -999,4 +999,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="lbl.settings.whiteboard"><![CDATA[Whiteboard
Settings]]></entry>
<entry key="video.settings.https.required"><![CDATA[Camera/microphone
most probably will not work in insecure environment.]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
+ <entry key="admin.room.wait-moderator.info"><![CDATA[No one can use
room until moderator will join]]></entry>
+ <entry key="admin.room.wait-moderator.label"><![CDATA[Wait
moderator]]></entry>
</properties>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
new file mode 100644
index 0000000..d31fa1f
--- /dev/null
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
@@ -0,0 +1,77 @@
+/*
+ * 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.
+ */
+package org.apache.openmeetings.web.app;
+
+import static java.util.concurrent.CompletableFuture.delayedExecutor;
+
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.openmeetings.core.util.WebSocketHelper;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.Room.Right;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.ws.RoomMessage;
+import org.apache.openmeetings.db.util.ws.TextRoomMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TimerService {
+ private static final Logger log =
LoggerFactory.getLogger(TimerService.class);
+ private int modCheckInterval = 5;
+ private final User sysUser = new User();
+ private final Map<Long, CompletableFuture<Object>> modCheckMap = new
ConcurrentHashMap<>();
+
+ @Autowired
+ private ClientManager cm;
+
+ @PostConstruct
+ private void init() {
+ sysUser.setId(-1L);
+ sysUser.setDisplayName("System");
+ }
+
+ private void doModCheck(Long roomId) {
+ modCheckMap.put(
+ roomId
+ , new CompletableFuture<>().completeAsync(() ->
{
+ log.warn("Moderator room check {}",
roomId);
+ if (cm.listByRoom(roomId).isEmpty()) {
+ modCheckMap.remove(roomId);
+ } else {
+ WebSocketHelper.sendRoom(new
TextRoomMessage(roomId, sysUser, RoomMessage.Type.moderatorInRoom, "" +
!cm.listByRoom(roomId, c -> c.hasRight(Right.moderator)).isEmpty()));
+ doModCheck(roomId);
+ }
+ return null;
+ }, delayedExecutor(modCheckInterval,
TimeUnit.SECONDS)));
+ }
+
+ public void scheduleModCheck(Room r) {
+ if (r.isModerated() && r.isWaitModerator() &&
!cm.listByRoom(r.getId()).isEmpty() && !modCheckMap.containsKey(r.getId())) {
+ doModCheck(r.getId());
+ }
+ }
+}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
index e9830f3..c5d7fe7 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
@@ -216,7 +216,11 @@ public class HashPage extends BaseInitedPage implements
IUpdatable {
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
behavior.setOption("autoOpen", error);
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
index 710412e..e3ccc19 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
@@ -95,7 +95,11 @@ public class InvitationPasswordDialog extends
NonClosableDialog<Invitation> {
super.onConfigure(behavior);
Invitation i = WebSession.get().getInvitation();
behavior.setOption("autoOpen", i != null &&
i.isPasswordProtected());
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
index f247526..894cdd9 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
@@ -41,12 +41,16 @@ public class KickMessageDialog extends
AbstractDialog<String> {
}
@Override
+ public boolean isResizable() {
+ return false;
+ }
+
+ @Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
behavior.setOption("autoOpen", true);
behavior.setOption("closeOnEscape", false);
behavior.setOption("classes", "{'ui-dialog-titlebar':
'ui-corner-all no-close'}");
- behavior.setOption("resizable", false);
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
index 8ad70e4..0698b44 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
@@ -130,7 +130,11 @@ public class SignInDialog extends
NonClosableDialog<String> {
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
behavior.setOption("autoOpen", true);
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index 41be11a..ad544eb 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -137,7 +137,11 @@ public class InstallWizard extends
AbstractWizard<InstallationConfig> {
super.onConfigure(behavior);
behavior.setOption("closeOnEscape", false);
behavior.setOption("classes", "{'ui-dialog-titlebar':
'ui-corner-all no-close'}");
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
index f46ed28..8029183 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
@@ -87,7 +87,11 @@ public class NicknameDialog extends NonClosableDialog<User> {
u.setLastname(String.format("%s %s", u.getFirstname(),
TIME_DF.format(new Date())));
}
behavior.setOption("autoOpen", visible);
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmTimerBehavior.java
similarity index 89%
rename from
openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
rename to
openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmTimerBehavior.java
index 76a198f..3d3cdd7 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmTimerBehavior.java
@@ -23,13 +23,13 @@ import java.time.Duration;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-public abstract class OmRedirectTimerBehavior extends
AbstractAjaxTimerBehavior {
+public abstract class OmTimerBehavior extends AbstractAjaxTimerBehavior {
private static final long serialVersionUID = 1L;
private final long clock;
private final int delay;
private final String labelId;
- public OmRedirectTimerBehavior(int delay, String labelId) {
+ public OmTimerBehavior(int delay, String labelId) {
super(Duration.ofSeconds(1));
clock = System.currentTimeMillis();
this.delay = delay;
@@ -41,7 +41,7 @@ public abstract class OmRedirectTimerBehavior extends
AbstractAjaxTimerBehavior
}
public static String getText(String text, int remain) {
- return String.format("%s: %s", text, getTime(remain));
+ return text + ": " + getTime(remain);
}
protected String getText(int remain) {
@@ -61,7 +61,7 @@ public abstract class OmRedirectTimerBehavior extends
AbstractAjaxTimerBehavior
}
/**
- * @param remain - time in seconds until redirect
+ * @param remain - time in seconds until finish
*/
protected void onTimer(int remain) {
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
index 59478f8..033fabb 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
@@ -59,7 +59,7 @@ public class RedirectMessageDialog extends
NonClosableMessageDialog {
}
private void startTimer(IPartialPageRequestHandler handler) {
- label.add(new OmRedirectTimerBehavior(DELAY, labelId) {
+ label.add(new OmTimerBehavior(DELAY, labelId) {
private static final long serialVersionUID = 1L;
@Override
@@ -86,7 +86,11 @@ public class RedirectMessageDialog extends
NonClosableMessageDialog {
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
behavior.setOption("autoOpen", autoOpen);
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
@@ -100,11 +104,6 @@ public class RedirectMessageDialog extends
NonClosableMessageDialog {
}
@Override
- public void onClose(IPartialPageRequestHandler handler, DialogButton
button) {
- //no-op
- }
-
- @Override
protected Component newLabel(String id, IModel<String> model) {
label = super.newLabel(id, model);
return label;
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 765de12..c096fce 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -32,11 +32,12 @@
<div wicket:id="event-details"></div>
<div wicket:id="access-denied"></div>
<div wicket:id="room-closed"></div>
- <div wicket:id="wait-for-recording"></div>
+ <div wicket:id="wait-recording"></div>
<div wicket:id="nickname"></div>
<div wicket:id="client-kicked"></div>
- <div wicket:id="wait-for-moderator"></div>
+ <div wicket:id="wait-moderator"></div>
<div wicket:id="wait-apply-moderation"></div>
+ <div wicket:id="noone-can-help"></div>
</div>
<div id="disconnected-dlg" wicket:message="title:204, data-reload:753"
style="display:none">
<wicket:message key="556"/>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 81e174f..1cfbed5 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -59,6 +59,7 @@ import org.apache.openmeetings.db.util.ws.TextRoomMessage;
import org.apache.openmeetings.util.NullStringer;
import org.apache.openmeetings.web.app.ClientManager;
import org.apache.openmeetings.web.app.QuickPollManager;
+import org.apache.openmeetings.web.app.TimerService;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.BasePanel;
import org.apache.openmeetings.web.pages.BasePage;
@@ -189,7 +190,8 @@ public class RoomPanel extends BasePanel {
}
};
private RedirectMessageDialog roomClosed;
- private MessageDialog clientKicked, waitForModerator,
waitApplyModeration;
+ private MessageDialog clientKicked, nooneCanHelp, waitApplyModeration;
+ private WaitModeratorDialog waitModerator;
private RoomMenuPanel menu;
private RoomSidebar sidebar;
@@ -244,6 +246,8 @@ public class RoomPanel extends BasePanel {
private KurentoHandler kHandler;
@SpringBean
private StreamProcessor streamProcessor;
+ @SpringBean
+ private TimerService timerService;
public RoomPanel(String id, Room r) {
super(id);
@@ -264,6 +268,7 @@ public class RoomPanel extends BasePanel {
cm.update(getClient().updateUser(userDao));
Component accessDenied = new
WebMarkupContainer(ACCESS_DENIED_ID).setVisible(false);
+ room.setOutputMarkupPlaceholderTag(true);
room.add(menu = new RoomMenuPanel("menu", this));
room.add(AttributeModifier.append("data-room-id", r.getId()));
if (interview) {
@@ -359,7 +364,7 @@ public class RoomPanel extends BasePanel {
room.setVisible(false);
}
}
- waitForModerator = new MessageDialog("wait-for-moderator",
getString("204"), getString("696"), DialogButtons.OK, DialogIcon.LIGHT) {
+ nooneCanHelp = new MessageDialog("noone-can-help",
getString("204"), getString("696"), DialogButtons.OK, DialogIcon.LIGHT) {
private static final long serialVersionUID = 1L;
@Override
@@ -375,16 +380,19 @@ public class RoomPanel extends BasePanel {
// no-op
}
};
- add(room, accessDenied, eventDetail, waitForModerator,
waitApplyModeration);
- if (r.isWaitForRecording()) {
- add(new MessageDialog("wait-for-recording",
getString("1316"), getString("1315"), DialogButtons.OK, DialogIcon.LIGHT) {
+ if (r.isWaitRecording()) {
+ add(new MessageDialog("wait-recording",
getString("1316"), getString("1315"), DialogButtons.OK, DialogIcon.LIGHT) {
private static final long serialVersionUID = 1L;
@Override
public void onConfigure(JQueryBehavior
behavior) {
super.onConfigure(behavior);
behavior.setOption("autoOpen", true);
- behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isResizable() {
+ return false;
}
@Override
@@ -393,7 +401,7 @@ public class RoomPanel extends BasePanel {
}
});
} else {
- add(new
WebMarkupContainer("wait-for-recording").setVisible(false));
+ add(new
WebMarkupContainer("wait-recording").setVisible(false));
}
RepeatingView groupstyles = new RepeatingView("groupstyle");
add(groupstyles.setVisible(room.isVisible() &&
!r.getGroups().isEmpty()));
@@ -408,9 +416,37 @@ public class RoomPanel extends BasePanel {
));
groupstyles.add(groupstyle);
}
+ //We are setting initial rights here
+ Client c = getClient();
+ final int count = cm.addToRoom(c.setRoom(getRoom()));
+ SOAPLogin soap = WebSession.get().getSoapLogin();
+ if (soap != null && soap.isModerator()) {
+ c.allow(Right.superModerator);
+ cm.update(c);
+ } else {
+ Set<Right> rr =
AuthLevelUtil.getRoomRight(c.getUser(), r, r.isAppointment() ?
apptDao.getByRoom(r.getId()) : null, count);
+ if (!rr.isEmpty()) {
+ c.allow(rr);
+ cm.update(c);
+ log.info("Setting rights for client::
{} -> {}", rr, c.hasRight(Right.moderator));
+ }
+ }
+ if (r.isModerated() && r.isWaitModerator()
+ && !c.hasRight(Right.moderator)
+ && cm.listByRoom(r.getId(), cl ->
cl.hasRight(Right.moderator)).isEmpty())
+ {
+ room.setVisible(false);
+ createWaitModerator(true);
+ getMainPanel().getChat().toggle(null, false);
+ }
+ timerService.scheduleModCheck(r);
} else {
add(new
WebMarkupContainer("nickname").setVisible(false));
}
+ if (waitModerator == null) {
+ createWaitModerator(false);
+ }
+ add(room, accessDenied, eventDetail, waitModerator,
nooneCanHelp, waitApplyModeration);
add(clientKicked = new MessageDialog("client-kicked",
getString("797"), getString("606"), DialogButtons.OK, DialogIcon.ERROR) {
private static final long serialVersionUID = 1L;
@@ -555,6 +591,25 @@ public class RoomPanel extends BasePanel {
wb.reloadWb(handler);
}
break;
+ case moderatorInRoom: {
+ if (!r.isModerated() ||
!r.isWaitModerator()) {
+ log.warn("Something
weird: `moderatorInRoom` in wrong room {}", r);
+ } else if
(!_c.hasRight(Room.Right.moderator)) {
+ boolean moderInRoom =
Boolean.TRUE.equals(Boolean.valueOf(((TextRoomMessage)m).getText()));
+ log.warn("!!
moderatorInRoom: {}", moderInRoom);
+ if (room.isVisible() !=
moderInRoom) {
+
handler.add(room.setVisible(moderInRoom));
+
getMainPanel().getChat().toggle(handler, moderInRoom &&
!r.isHidden(RoomElement.Chat));
+ if
(room.isVisible()) {
+
handler.appendJavaScript(roomEnter.getCallbackScript());
+
waitModerator.close(handler, null);
+ } else {
+
waitModerator.open(handler);
+ }
+ }
+ }
+ }
+ break;
}
}
}
@@ -583,28 +638,6 @@ public class RoomPanel extends BasePanel {
}
}
- @Override
- protected void onBeforeRender() {
- super.onBeforeRender();
- if (room.isVisible()) {
- //We are setting initial rights here
- Client c = getClient();
- final int count = cm.addToRoom(c.setRoom(getRoom()));
- SOAPLogin soap = WebSession.get().getSoapLogin();
- if (soap != null && soap.isModerator()) {
- c.allow(Right.superModerator);
- cm.update(c);
- } else {
- Set<Right> rr =
AuthLevelUtil.getRoomRight(c.getUser(), r, r.isAppointment() ?
apptDao.getByRoom(r.getId()) : null, count);
- if (!rr.isEmpty()) {
- c.allow(rr);
- cm.update(c);
- log.info("Setting rights for client::
{} -> {}", rr, cm.get(c.getUid()).hasRight(Right.moderator));
- }
- }
- }
- }
-
public boolean isModerator(long userId, long roomId) {
return isModerator(cm, userId, roomId);
}
@@ -640,9 +673,7 @@ public class RoomPanel extends BasePanel {
}
public void show(IPartialPageRequestHandler handler) {
- if (!r.isHidden(RoomElement.Chat)) {
- getMainPanel().getChat().toggle(handler, true);
- }
+ getMainPanel().getChat().toggle(handler,
!r.isHidden(RoomElement.Chat));
handler.add(this.setVisible(true));
handler.appendJavaScript("Room.load();");
}
@@ -677,7 +708,7 @@ public class RoomPanel extends BasePanel {
if (mods.isEmpty()) {
if (r.isModerated()) {
//dialog
- waitForModerator.open(handler);
+ nooneCanHelp.open(handler);
return;
} else {
// we found no-one we can ask, allow right
@@ -791,6 +822,10 @@ public class RoomPanel extends BasePanel {
return interview;
}
+ private void createWaitModerator(final boolean autoopen) {
+ waitModerator = new WaitModeratorDialog("wait-moderator",
getString("204"), autoopen);
+ }
+
@Override
protected String getCssClass() {
String clazz = "room " + r.getType().name();
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog.html
new file mode 100644
index 0000000..fd5949b
--- /dev/null
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog.html
@@ -0,0 +1,25 @@
+<?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.
+-->
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+ Please wait until <b>moderator</b> will enter the room
+</wicket:panel>
+</html>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog.java
similarity index 71%
copy from
openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
copy to
openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog.java
index f247526..9b217c0 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog.java
@@ -16,43 +16,42 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.pages.auth;
+package org.apache.openmeetings.web.room;
+
+import java.util.List;
-import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.app.WebSession;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
-import org.apache.wicket.markup.html.basic.Label;
import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-public class KickMessageDialog extends AbstractDialog<String> {
+public class WaitModeratorDialog extends AbstractDialog<String> {
private static final long serialVersionUID = 1L;
+ private final boolean autoopen;
- public KickMessageDialog(String id) {
- super(id, "");
- }
-
- @Override
- protected void onInitialize() {
- super.onInitialize();
- add(new Label("message", getString("606")));
+ public WaitModeratorDialog(String id, String title, boolean autoopen) {
+ super(id, title);
+ this.autoopen = autoopen;
}
@Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
- behavior.setOption("autoOpen", true);
- behavior.setOption("closeOnEscape", false);
behavior.setOption("classes", "{'ui-dialog-titlebar':
'ui-corner-all no-close'}");
- behavior.setOption("resizable", false);
+ behavior.setOption("closeOnEscape", false);
+ behavior.setOption("autoOpen", autoopen);
+ behavior.setOption("appendTo", Options.asString(".room-block"));
}
@Override
- public void onClose(IPartialPageRequestHandler handler, DialogButton
button) {
- WebSession.setKickedByAdmin(false);
- Application.get().restartResponseAtSignInPage();
+ protected List<DialogButton> getButtons() {
+ return List.of();
}
+ @Override
+ public void onClose(IPartialPageRequestHandler handler, DialogButton
button) {
+ // no-op
+ }
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog_ru.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog_ru.html
new file mode 100644
index 0000000..6dd59eb
--- /dev/null
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/WaitModeratorDialog_ru.html
@@ -0,0 +1,25 @@
+<?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.
+-->
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+ Пожалуйста дождитесь появления <b>модератора</b>
+</wicket:panel>
+</html>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index 28e6447..51ddc6a 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -49,7 +49,7 @@ import org.apache.openmeetings.web.common.ImagePanel;
import org.apache.openmeetings.web.common.OmButton;
import org.apache.openmeetings.web.common.menu.MenuPanel;
import org.apache.openmeetings.web.common.menu.RoomMenuItem;
-import org.apache.openmeetings.web.room.OmRedirectTimerBehavior;
+import org.apache.openmeetings.web.room.OmTimerBehavior;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -155,7 +155,7 @@ public class RoomMenuPanel extends Panel {
Room r = room.getRoom();
add(demo.setVisible(r.isDemoRoom() && r.getDemoTime() != null
&& room.getRoom().getDemoTime().intValue() > 0));
if (demo.isVisible()) {
- demo.add(new
OmRedirectTimerBehavior(room.getRoom().getDemoTime().intValue(), "637") {
+ demo.add(new
OmTimerBehavior(room.getRoom().getDemoTime().intValue(), "637") {
private static final long serialVersionUID = 1L;
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/NonClosableMessageDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/NonClosableMessageDialog.java
index 6a537c1..2351fde 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/NonClosableMessageDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/NonClosableMessageDialog.java
@@ -20,6 +20,8 @@ package org.apache.openmeetings.web.util;
import java.util.List;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
import com.googlecode.wicket.jquery.core.JQueryBehavior;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
@@ -43,4 +45,9 @@ public abstract class NonClosableMessageDialog extends
MessageDialog {
behavior.setOption("classes", "{'ui-dialog-titlebar':
'ui-corner-all no-close'}");
behavior.setOption("closeOnEscape", false);
}
+
+ @Override
+ public void onClose(IPartialPageRequestHandler handler, DialogButton
button) {
+ // no-op
+ }
}
diff --git
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
index b70e033..470a020 100644
---
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
+++
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
@@ -108,15 +108,8 @@ public class TestCalendarService extends
AbstractWebServiceTest {
.put("moderated", true)
.put("allowUserQuestions", true)
.put("allowRecording", false)
- .put("waitForRecording", false)
- .put("audioOnly", true)
- .put("topBarHidden", false)
- .put("chatHidden", false)
- .put("activitiesHidden", false)
- .put("filesExplorerHidden", false)
- .put("actionsMenuHidden", false)
- .put("screenSharingHidden", false)
- .put("whiteboardHidden", false))
+ .put("waitRecording", false)
+ .put("audioOnly", true))
.put("languageId", 9)
.put("passwordProtected", false)
.put("connectedEvent", false)
diff --git a/pom.xml b/pom.xml
index 7c73f0d..7385c22 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,7 +76,7 @@
<junit.version>5.5.2</junit.version>
<wicket.version>9.0.0-M3</wicket.version>
<wicketju.version>9.0.0-M3.1</wicketju.version>
- <wickets.version>9.0.1-M3</wickets.version>
+ <wickets.version>9.0.0-M4-SNAPSHOT</wickets.version>
<red5-client.version>1.2.3</red5-client.version>
<spring.version>5.2.2.RELEASE</spring.version>
<mina.version>2.1.3</mina.version>