This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch csp
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/csp by this push:
     new 11e008b  [OPENMEETINGS-2165] more dialogs were converted
11e008b is described below

commit 11e008b269718186d88dc6ac7c1d7c2c1b0b1f49
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Fri Feb 7 13:52:51 2020 +0700

    [OPENMEETINGS-2165] more dialogs were converted
---
 .../openmeetings/web/admin/users/UserForm.java     |   8 +-
 .../openmeetings/web/admin/users/UsersPanel.java   |  22 ++--
 .../web/app/Application_ar.properties.xml          |   1 +
 .../web/app/Application_bg.properties.xml          |   1 +
 .../web/app/Application_bn.properties.xml          |   1 +
 .../web/app/Application_ca.properties.xml          |   1 +
 .../web/app/Application_cs.properties.xml          |   1 +
 .../web/app/Application_da.properties.xml          |   1 +
 .../web/app/Application_de.properties.xml          |   1 +
 .../web/app/Application_el.properties.xml          |   1 +
 .../web/app/Application_es.properties.xml          |   1 +
 .../web/app/Application_fa.properties.xml          |   1 +
 .../web/app/Application_fi.properties.xml          |   1 +
 .../web/app/Application_fr.properties.xml          |   1 +
 .../web/app/Application_gl.properties.xml          |   1 +
 .../web/app/Application_he.properties.xml          |   1 +
 .../web/app/Application_hu.properties.xml          |   1 +
 .../web/app/Application_in.properties.xml          |   1 +
 .../web/app/Application_it.properties.xml          |   1 +
 .../web/app/Application_ja.properties.xml          |   1 +
 .../web/app/Application_ko.properties.xml          |   1 +
 .../web/app/Application_nl.properties.xml          |   1 +
 .../web/app/Application_pl.properties.xml          |   1 +
 .../web/app/Application_pt.properties.xml          |   1 +
 .../web/app/Application_pt_BR.properties.xml       |   1 +
 .../web/app/Application_ru.properties.xml          |   1 +
 .../web/app/Application_sk.properties.xml          |   1 +
 .../web/app/Application_sv.properties.xml          |   1 +
 .../web/app/Application_th.properties.xml          |   1 +
 .../web/app/Application_tr.properties.xml          |   1 +
 .../web/app/Application_uk.properties.xml          |   1 +
 .../web/app/Application_zh_CN.properties.xml       |   1 +
 .../web/app/Application_zh_TW.properties.xml       |   1 +
 .../apache/openmeetings/web/app/WebSession.java    |   6 +-
 .../openmeetings/web/common/InvitationDialog.html  |   4 +-
 .../openmeetings/web/common/InvitationDialog.java  | 121 ++++++++++-----------
 .../openmeetings/web/common/InvitationForm.java    |  23 ++--
 .../apache/openmeetings/web/common/MainPanel.java  |   2 +-
 .../apache/openmeetings/web/pages/HashPage.java    |  36 ++----
 .../web/pages/auth/KickMessageDialog.java          |  62 -----------
 .../openmeetings/web/pages/auth/SignInDialog.html  |   8 +-
 .../openmeetings/web/pages/auth/SignInPage.java    |  20 +++-
 .../IconTextModal.html}                            |  10 +-
 .../openmeetings/web/room/IconTextModal.java       |  73 +++++++++++++
 .../web/room/RedirectMessageDialog.java            |  51 ++-------
 .../apache/openmeetings/web/room/RoomPanel.java    |   2 +-
 .../openmeetings/web/room/menu/ActionsSubMenu.java |   2 +-
 .../web/room/menu/RoomInvitationForm.java          |  14 +--
 .../web/user/InviteUserMessageDialog.html          |   4 +-
 .../web/user/InviteUserMessageDialog.java          |  74 ++++++-------
 .../web/user/InviteUserToRoomDialog.html           |   4 +-
 .../web/user/InviteUserToRoomDialog.java           |  42 +++----
 .../openmeetings/web/user/record/VideoInfo.java    |   2 +-
 .../web/util/NonClosableMessageDialog.java         |  53 ---------
 .../src/main/webapp/css/raw-general.css            |   3 -
 .../openmeetings/web/pages/TestHashPage.java       |   9 +-
 56 files changed, 313 insertions(+), 373 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
index 97f3ce2..6d3223e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
@@ -75,7 +75,7 @@ import org.slf4j.LoggerFactory;
 import org.wicketstuff.select2.Response;
 import org.wicketstuff.select2.Select2MultiChoice;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 
 /**
  * CRUD operations in form for {@link User}
@@ -93,7 +93,7 @@ public class UserForm extends AdminBaseForm<User> {
        private final RequiredTextField<String> login = new 
RequiredTextField<>("login");
        private StrongPasswordValidator passValidator;
        private final PasswordTextField password = new 
PasswordTextField("password", new Model<String>());
-       private final MessageDialog warning;
+       private final Modal<String> warning;
        private final DropDownChoice<Long> domainId = new 
DropDownChoice<>("domainId");
        private final PasswordDialog adminPass = new 
PasswordDialog("adminPass");
        @SpringBean
@@ -105,7 +105,7 @@ public class UserForm extends AdminBaseForm<User> {
        @SpringBean
        private OAuth2Dao oauthDao;
 
-       public UserForm(String id, WebMarkupContainer listContainer, final User 
user, MessageDialog warning) {
+       public UserForm(String id, WebMarkupContainer listContainer, final User 
user, Modal<String> warning) {
                super(id, new CompoundPropertyModel<>(user));
                setOutputMarkupId(true);
                this.listContainer = listContainer;
@@ -260,7 +260,7 @@ public class UserForm extends AdminBaseForm<User> {
                }
                updateForm(target);
                if (u.getGroupUsers().isEmpty()) {
-                       warning.open(target);
+                       warning.show(target);
                }
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
index 10f2620..c8e7be5 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
@@ -30,20 +30,19 @@ import 
org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.openmeetings.web.data.SearchableGroupAdminDataProvider;
+import org.apache.openmeetings.web.room.IconTextModal;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.utilities.ColorBehavior;
 
 @AuthorizeInstantiation({"Admin", "GroupAdmin"})
 public class UsersPanel extends AdminBasePanel {
@@ -104,14 +103,11 @@ public class UsersPanel extends AdminBasePanel {
 
        @Override
        protected void onInitialize() {
-               final MessageDialog warning = new MessageDialog("warning", 
getString("797"), getString("warn.nogroup"), DialogButtons.OK, DialogIcon.WARN) 
{
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
-                               //no-op
-                       }
-               };
+               final Modal<String> warning = new IconTextModal("warning")
+                               .withLabel(new ResourceModel("warn.nogroup"))
+                               .withErrorIcon(ColorBehavior.Color.Warning)
+                               .header(new ResourceModel("797"))
+                               .addCloseButton(new ResourceModel("54"));
 
                form = new UserForm("form", listContainer, 
getNewUserInstance(userDao.get(getUserId())), warning);
                form.setNewVisible(true);
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 55c9c5d..4597925 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 60288db..1a660a0 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 01e0ade..7049781 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 bb7f06b..fdd34e6 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 6742a75..8175597 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 265d199..c45f675 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 ae4ac30..2b34ad3 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
@@ -1008,4 +1008,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 8628867..0801186 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 bb04ce5..e0d9985 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
@@ -1001,4 +1001,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 10e0368..30a1010 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
@@ -995,4 +995,5 @@ target="_blank">Custom Crypt Mechanism</a>
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 4d58589..265d023 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 0b95d25..88257a2 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 27a4921..082344b 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 2bef142..97d75f0 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 4cc2649..9a6d425 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
@@ -991,4 +991,5 @@ see https://openmeetings.apache.org/LanguageEditor.html for 
Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 f4794e8..84e5911 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 b3e6cb5..ef9e57a 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
@@ -1004,4 +1004,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 8ac2895..47bb83c 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 ee4de41..326b1ef 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 a2730cb..27f2ff0 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 1d6515a..7350030 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 8f1c504..8785fd4 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 ca91084..c492d43 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 375e4f2..6a0e023 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <entry key="admin.room.wait-moderator.info"><![CDATA[Никто не сможет 
воспользоваться комнатой пока нет модератора]]></entry>
        <entry key="admin.room.wait-moderator.label"><![CDATA[Ждать 
модератора]]></entry>
        <entry key="wait-moderator.title"><![CDATA[Пожалуйста подождите 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 00bb1e3..1277d82 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 cede951..2af6e09 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 14ee6c8..fea3a92 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 f3a5dc6..1541d6c 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 44ab9d3..7709e15 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
@@ -1002,4 +1002,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 f6df7f0..2b88ada 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></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 390daac..c7d8b49 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
@@ -1003,4 +1003,5 @@ see https://openmeetings.apache.org/LanguageEditor.html 
for Details
        <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>
        <entry key="wait-moderator.title"><![CDATA[Please be patient 
...]]></entry>
+       <entry key="lbl.or"><![CDATA[or]]></entry>
 </properties>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index 1d76f7c..1aea3be 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -534,10 +534,10 @@ public class WebSession extends 
AbstractAuthenticatedWebSession implements IWebS
        }
 
        private static void checkIsInvalid() {
-               if (isInvaldSession(get().getId())) {
+               WebSession session = get();
+               if (isInvaldSession(session.getId())) {
                        setKickedByAdmin(true);
-                       removeInvalidSession(get().getId());
-                       org.apache.wicket.Session session = get();
+                       removeInvalidSession(session.getId());
                        session.invalidateNow();
                        Application.get().restartResponseAtSignInPage();
                }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
index b0aafd5..f49d2a8 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
@@ -20,7 +20,7 @@
 -->
 <!DOCTYPE html>
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:panel>
+<wicket:extend>
        <form wicket:id="form"></form>
-</wicket:panel>
+</wicket:extend>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
index c3185ed..02ba355 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
@@ -18,99 +18,90 @@
  */
 package org.apache.openmeetings.web.common;
 
-import java.util.Arrays;
-import java.util.List;
-
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 
-public class InvitationDialog extends AbstractFormDialog<Invitation> {
+public class InvitationDialog extends Modal<Invitation> {
        private static final long serialVersionUID = 1L;
-       private DialogButton generate;
-       private DialogButton send;
-       private DialogButton cancel;
+       private BootstrapAjaxButton generate;
+       private BootstrapAjaxButton send;
        private final InvitationForm form;
 
        public InvitationDialog(String id, final InvitationForm _form) {
-               super(id, "",_form.getModel());
+               super(id, _form.getModel());
                add(form = _form);
        }
 
        @Override
        protected void onInitialize() {
-               getTitle().setObject(getString("213"));
-               generate = new DialogButton("generate", getString("1526"));
-               send = new DialogButton("send", getString("218"));
-               cancel = new DialogButton("cancel", getString("lbl.cancel"));
+               header(new ResourceModel("213"));
+               setCloseOnEscapeKey(true);
+               setBackdrop(Backdrop.STATIC);
+
+               addButton(generate = new BootstrapAjaxButton("button", new 
ResourceModel("1526"), form, Buttons.Type.Primary) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target) {
+                               InvitationDialog.this.onError(target);
+                       }
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target) {
+                               InvitationDialog.this.onClick(target, 
InvitationForm.Action.GENERATE);
+                       }
+               });
+               addButton(send = new BootstrapAjaxButton("button", new 
ResourceModel("218"), form, Buttons.Type.Primary) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target) {
+                               InvitationDialog.this.onError(target);
+                       }
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target) {
+                               InvitationDialog.this.onClick(target, 
InvitationForm.Action.SEND);
+                       }
+               });
+               addButton(new BootstrapAjaxLink<>("button", Model.of(""), 
Buttons.Type.Secondary, new ResourceModel("lbl.cancel")) {
+                       private static final long serialVersionUID = 1L;
+
+                       public void onClick(AjaxRequestTarget target) {
+                               InvitationDialog.this.close(target);
+                       }
+               });
                super.onInitialize();
        }
 
-       @Override
-       public int getWidth() {
-               return 500;
-       }
-
        public void updateModel(AjaxRequestTarget target) {
                form.updateModel(target);
-               send.setEnabled(false, target);
-               generate.setEnabled(false, target);
-       }
-
-       @Override
-       protected Form<?> getForm(DialogButton button) {
-               if (button.equals(generate) || button.equals(send)) {
-                       return form;
-               }
-               return super.getForm(button);
-       }
-
-       @Override
-       public InvitationForm getForm() {
-               return form;
-       }
-
-       @Override
-       public DialogButton getSubmitButton() {
-               return send;
-       }
-
-       @Override
-       protected List<DialogButton> getButtons() {
-               return Arrays.asList(generate, send, cancel);
+               target.add(
+                               send.setEnabled(false)
+                               , generate.setEnabled(false)
+                               );
        }
 
-       @Override
-       protected void onError(AjaxRequestTarget target, DialogButton btn) {
+       protected void onError(AjaxRequestTarget target) {
                form.onError(target);
        }
 
-       public void onSuperClick(AjaxRequestTarget target, DialogButton button) 
{
-               super.onClick(target, button);
+       public void onClick(AjaxRequestTarget target, InvitationForm.Action 
action) {
+               form.onClick(target, action);
        }
 
-       @Override
-       public void onClick(AjaxRequestTarget target, DialogButton button) {
-               form.onClick(target, button);
-       }
-
-       @Override
-       protected void onSubmit(AjaxRequestTarget target, DialogButton btn) {
-               //designed to be empty because of multiple submit buttons
-       }
-
-       public DialogButton getGenerate() {
+       public BootstrapAjaxButton getGenerate() {
                return generate;
        }
 
-       public DialogButton getSend() {
+       public BootstrapAjaxButton getSend() {
                return send;
        }
-
-       public DialogButton getCancel() {
-               return cancel;
-       }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index 60b5391..09a6e3a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -61,8 +61,6 @@ import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-
 import 
de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 
 public abstract class InvitationForm extends Form<Invitation> {
@@ -86,6 +84,11 @@ public abstract class InvitationForm extends 
Form<Invitation> {
        @SpringBean
        private InvitationManager inviteManager;
 
+       public enum Action {
+               GENERATE
+               , SEND
+       };
+
        public InvitationForm(String id) {
                super(id, new CompoundPropertyModel<>(new Invitation()));
                setOutputMarkupId(true);
@@ -145,8 +148,10 @@ public abstract class InvitationForm extends 
Form<Invitation> {
 
        protected void updateButtons(AjaxRequestTarget target) {
                Collection<User> recpnts = recipients.getModelObject();
-               dialog.getSend().setEnabled(!recpnts.isEmpty(), target);
-               dialog.getGenerate().setEnabled(recpnts.size() == 1, target);
+               target.add(
+                               dialog.getSend().setEnabled(!recpnts.isEmpty())
+                               , 
dialog.getGenerate().setEnabled(recpnts.size() == 1)
+                               );
        }
 
        @Override
@@ -213,16 +218,14 @@ public abstract class InvitationForm extends 
Form<Invitation> {
                this.dialog = dialog;
        }
 
-       public void onClick(AjaxRequestTarget target, DialogButton button) {
+       public void onClick(AjaxRequestTarget target, Action action) {
                final String userbaseUrl = 
WebSession.get().getExtendedProperties().getBaseUrl();
-               if (button.equals(dialog.getCancel())) {
-                       dialog.onSuperClick(target, button);
-               } else if (button.equals(dialog.getGenerate())) {
+               if (Action.GENERATE == action) {
                        Invitation i = 
create(recipients.getModelObject().iterator().next());
                        setModelObject(i);
                        url.setModelObject(getInvitationLink(i, userbaseUrl));
                        target.add(url);
-               } else if (button.equals(dialog.getSend())) {
+               } else {
                        if (Strings.isEmpty(url.getModelObject())) {
                                for (User u : recipients.getModelObject()) {
                                        Invitation i = create(u);
@@ -240,7 +243,7 @@ public abstract class InvitationForm extends 
Form<Invitation> {
                                        log.error("error while sending 
invitation by URL ", e);
                                }
                        }
-                       dialog.onSuperClick(target, button);
+                       dialog.close(target);
                }
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
index 8f3fd57..a097c4c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
@@ -284,7 +284,7 @@ public class MainPanel extends Panel {
 
                        @Override
                        protected void respond(AjaxRequestTarget target) {
-                               inviteUser.open(target, 
getParam(getComponent(), PARAM_USER_ID).toLong());
+                               inviteUser.show(target, 
getParam(getComponent(), PARAM_USER_ID).toLong());
                        }
 
                        @Override
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 c5d7fe7..8bc7ca7 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
@@ -37,6 +37,7 @@ import org.apache.openmeetings.web.common.IUpdatable;
 import org.apache.openmeetings.web.common.MainPanel;
 import org.apache.openmeetings.web.common.OmAjaxClientInfoBehavior;
 import org.apache.openmeetings.web.common.OmWebSocketPanel;
+import org.apache.openmeetings.web.room.IconTextModal;
 import org.apache.openmeetings.web.room.NetTestPanel;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.VideoSettings;
@@ -44,11 +45,11 @@ import org.apache.openmeetings.web.user.record.VideoInfo;
 import org.apache.openmeetings.web.user.record.VideoPlayer;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.protocol.http.request.WebClientInfo;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
 import org.apache.wicket.request.IRequestParameters;
@@ -56,12 +57,6 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
 
-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;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
-
 public class HashPage extends BaseInitedPage implements IUpdatable {
        private static final long serialVersionUID = 1L;
        public static final String APP = "app";
@@ -208,26 +203,13 @@ public class HashPage extends BaseInitedPage implements 
IUpdatable {
                
add(recContainer.add(vi.setShowShare(false).setOutputMarkupPlaceholderTag(true),
                                vp.setOutputMarkupPlaceholderTag(true)), new 
InvitationPasswordDialog("i-pass", this));
                remove(urlParametersReceivingBehavior);
-               add(new MessageDialog("access-denied", 
getString("invalid.hash"), errorMsg, DialogButtons.OK,
-                               DialogIcon.ERROR) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onConfigure(JQueryBehavior behavior) {
-                               super.onConfigure(behavior);
-                               behavior.setOption("autoOpen", error);
-                       }
-
-                       @Override
-                       public boolean isResizable() {
-                               return false;
-                       }
-
-                       @Override
-                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
-                               // no-op
-                       }
-               });
+               add(new IconTextModal("access-denied")
+                               .withLabel(errorMsg)
+                               .withErrorIcon()
+                               .addCloseButton(new ResourceModel("54"))
+                               .header(new ResourceModel("invalid.hash"))
+                               .show(error)
+                               );
        }
 
        @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
deleted file mode 100644
index 894cdd9..0000000
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.pages.auth;
-
-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.ui.widget.dialog.AbstractDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-
-public class KickMessageDialog extends AbstractDialog<String> {
-       private static final long serialVersionUID = 1L;
-
-       public KickMessageDialog(String id) {
-               super(id, "");
-       }
-
-       @Override
-       protected void onInitialize() {
-               super.onInitialize();
-               add(new Label("message", getString("606")));
-       }
-
-       @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'}");
-       }
-
-       @Override
-       public void onClose(IPartialPageRequestHandler handler, DialogButton 
button) {
-               WebSession.setKickedByAdmin(false);
-               Application.get().restartResponseAtSignInPage();
-       }
-
-}
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html
index 369e416..36e48c9 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html
@@ -48,9 +48,11 @@
                                </div>
                        </div>
                        <div class="row form-group no-gutters">
-                               <div class="col-6 remember">
-                                       <input wicket:id="rememberMe" 
type="checkbox" />
-                                       <label 
wicket:for="rememberMe"><wicket:message key="288" /></label>
+                               <div class="col-6">
+                                       <div class="custom-control 
custom-checkbox">
+                                               <input type="checkbox" 
wicket:id="rememberMe" class="custom-control-input"/>
+                                               <label wicket:for="rememberMe" 
class="custom-control-label"><wicket:message key="288" /></label>
+                                       </div>
                                </div>
                                <div class="col-5">
                                        <a class="text-primary" 
wicket:id="forget"><wicket:message key="311"/></a>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
index 0bfb0c2..2207b39 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
@@ -57,6 +57,7 @@ import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.pages.BaseInitedPage;
+import org.apache.openmeetings.web.room.IconTextModal;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.model.ResourceModel;
@@ -80,7 +81,23 @@ public class SignInPage extends BaseInitedPage {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
LoggerFactory.getLogger(SignInPage.class);
        private SignInDialog signin;
-       private KickMessageDialog kick;
+       private final Modal<String> kick = new IconTextModal("kick") {
+               private static final long serialVersionUID = 1L;
+               {
+                       withLabel(new ResourceModel("606"));
+                       withErrorIcon();
+                       setCloseOnEscapeKey(false);
+                       show(true);
+                       setUseCloseHandler(true);
+                       addCloseButton(new ResourceModel("54"));
+               }
+
+               @Override
+               protected void onClose(IPartialPageRequestHandler target) {
+                       WebSession.setKickedByAdmin(false);
+                       Application.get().restartResponseAtSignInPage();
+               }
+       };
        private final Modal<String> forgetInfoDialog = new 
TextContentModal("forgetInfo", new ResourceModel("321")) {
                private static final long serialVersionUID = 1L;
 
@@ -178,7 +195,6 @@ public class SignInPage extends BaseInitedPage {
                signin.setForgetPasswordDialog(forget);
                r.setSignInDialog(signin);
                forget.setSignInDialog(signin);
-               kick = new KickMessageDialog("kick");
                add(signin.setVisible(!WebSession.get().isKickedByAdmin()),
                                r.setVisible(allowRegister()), forget, 
kick.setVisible(WebSession.get().isKickedByAdmin()));
                add(forgetInfoDialog
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/IconTextModal.html
similarity index 89%
rename from 
openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.html
rename to 
openmeetings-web/src/main/java/org/apache/openmeetings/web/room/IconTextModal.html
index b0cc105..1a5d0a4 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/IconTextModal.html
@@ -20,11 +20,7 @@
 -->
 <!DOCTYPE html>
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:panel>
-       <table>
-               <tr>
-                       <td wicket:id="message">[message]</td>
-               </tr>
-       </table>
-</wicket:panel>
+<wicket:extend>
+       <i wicket:id="icon"></i><span wicket:id="label"></span>
+</wicket:extend>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/IconTextModal.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/IconTextModal.java
new file mode 100644
index 0000000..e126182
--- /dev/null
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/IconTextModal.java
@@ -0,0 +1,73 @@
+/*
+ * 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.room;
+
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import de.agilecoders.wicket.core.markup.html.bootstrap.image.Icon;
+import de.agilecoders.wicket.core.markup.html.bootstrap.image.IconType;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.utilities.ColorBehavior;
+import 
de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome5IconTypeBuilder;
+import 
de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome5IconTypeBuilder.FontAwesome5Solid;
+
+public class IconTextModal extends Modal<String> {
+       private static final long serialVersionUID = 1L;
+       private final Icon icon = new Icon("icon", (IconType) null);
+       private final Label label = new Label("label", Model.of(""));
+
+       public IconTextModal(String id) {
+               super(id);
+               setBackdrop(Backdrop.STATIC);
+       }
+
+       @Override
+       protected void onInitialize() {
+               super.onInitialize();
+               add(icon, label);
+       }
+
+       public IconTextModal withIcon(IconType icon) {
+               this.icon.setType(icon);
+               return this;
+       }
+
+       public IconTextModal withLabel(IModel<String> model) {
+               label.setDefaultModel(model);
+               return this;
+       }
+
+       public IconTextModal withLabel(String label) {
+               this.label.setDefaultModelObject(label);
+               return this;
+       }
+
+       public IconTextModal withErrorIcon() {
+               return withErrorIcon(ColorBehavior.Color.Danger);
+       }
+
+       public IconTextModal withErrorIcon(ColorBehavior.Color color) {
+               add(new ColorBehavior(color));
+               return 
withIcon(FontAwesome5IconTypeBuilder.on(FontAwesome5Solid.exclamation_triangle)
+                       .size(FontAwesome5IconTypeBuilder.Size.three)
+                       .build());
+       }
+}
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 033fabb..b25c14d 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
@@ -18,23 +18,16 @@
  */
 package org.apache.openmeetings.web.room;
 
-import java.util.ArrayList;
-
 import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.util.NonClosableMessageDialog;
 import org.apache.wicket.Component;
 import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
-import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.flow.RedirectToUrlException;
 import org.apache.wicket.util.string.Strings;
 
-import com.googlecode.wicket.jquery.core.JQueryBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
-
-public class RedirectMessageDialog extends NonClosableMessageDialog {
+public class RedirectMessageDialog extends IconTextModal {
        private static final long serialVersionUID = 1L;
        private static final int DELAY = 5;
        private final String labelId;
@@ -43,7 +36,7 @@ public class RedirectMessageDialog extends 
NonClosableMessageDialog {
        private Component label;
 
        public RedirectMessageDialog(String id, String labelId, boolean 
autoOpen, String url) {
-               super(id, "", "", new ArrayList<DialogButton>(), 
DialogIcon.ERROR);
+               super(id);
                this.labelId = labelId;
                this.url = url;
                this.autoOpen = autoOpen;
@@ -51,7 +44,11 @@ public class RedirectMessageDialog extends 
NonClosableMessageDialog {
 
        @Override
        protected void onInitialize() {
-               getTitle().setObject(getString("204"));
+               header(new ResourceModel("204"));
+               setCloseOnEscapeKey(false);
+               show(autoOpen);
+               withLabel(labelId);
+               withErrorIcon();
                super.onInitialize();
                if (autoOpen) {
                        startTimer(null);
@@ -77,35 +74,9 @@ public class RedirectMessageDialog extends 
NonClosableMessageDialog {
        }
 
        @Override
-       protected void onOpen(IPartialPageRequestHandler handler) {
-               super.onOpen(handler);
+       public RedirectMessageDialog show(IPartialPageRequestHandler handler) {
+               super.show(handler);
                startTimer(handler);
-       }
-
-       @Override
-       public void onConfigure(JQueryBehavior behavior) {
-               super.onConfigure(behavior);
-               behavior.setOption("autoOpen", autoOpen);
-       }
-
-       @Override
-       public boolean isResizable() {
-               return false;
-       }
-
-       @Override
-       public boolean isModal() {
-               return true;
-       }
-
-       @Override
-       public boolean isDefaultCloseEventEnabled() {
-               return false;
-       }
-
-       @Override
-       protected Component newLabel(String id, IModel<String> model) {
-               label = super.newLabel(id, model);
-               return label;
+               return this;
        }
 }
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 fd68cc9..18a0bbd 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
@@ -507,7 +507,7 @@ public class RoomPanel extends BasePanel {
                                                break;
                                        case roomClosed:
                                                
handler.add(room.setVisible(false));
-                                               roomClosed.open(handler);
+                                               roomClosed.show(handler);
                                                break;
                                        case requestRightModerator:
                                                sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.reqRightModerator), handler);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
index c5d4fd0..148ec6f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
@@ -74,7 +74,7 @@ public class ActionsSubMenu implements Serializable {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                                invite.updateModel(target);
-                               invite.open(target);
+                               invite.show(target);
                        }
                };
                shareMenuItem = new RoomMenuItem(mp.getString("239"), 
mp.getString("1480"), false) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
index 80a6e43..2032ec5 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
@@ -50,8 +50,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.wicketstuff.select2.Select2MultiChoice;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-
 public class RoomInvitationForm extends InvitationForm {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
LoggerFactory.getLogger(RoomInvitationForm.class);
@@ -118,8 +116,10 @@ public class RoomInvitationForm extends InvitationForm {
                        super.updateButtons(target);
                } else {
                        Collection<Group> to = groups.getModelObject();
-                       dialog.getSend().setEnabled(!to.isEmpty(), target);
-                       dialog.getGenerate().setEnabled(false, target);
+                       target.add(
+                                       
dialog.getSend().setEnabled(!to.isEmpty())
+                                       , dialog.getGenerate().setEnabled(false)
+                                       );
                }
        }
 
@@ -137,8 +137,8 @@ public class RoomInvitationForm extends InvitationForm {
        }
 
        @Override
-       public void onClick(AjaxRequestTarget target, DialogButton button) {
-               if (button.equals(dialog.getSend()) && 
Strings.isEmpty(url.getModelObject()) && rdi.getModelObject() == 
InviteeType.group) {
+       public void onClick(AjaxRequestTarget target, InvitationForm.Action 
action) {
+               if (InvitationForm.Action.SEND == action && 
Strings.isEmpty(url.getModelObject()) && rdi.getModelObject() == 
InviteeType.group) {
                        final String userbaseUrl = 
WebSession.get().getExtendedProperties().getBaseUrl();
                        for (Group g : groups.getModelObject()) {
                                for (GroupUser ou : groupUserDao.get(g.getId(), 
0, Integer.MAX_VALUE)) {
@@ -151,6 +151,6 @@ public class RoomInvitationForm extends InvitationForm {
                                }
                        }
                }
-               super.onClick(target, button);
+               super.onClick(target, action);
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
index 1ef5788..65c2c43 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.html
@@ -20,12 +20,12 @@
 -->
 <!DOCTYPE html>
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:panel>
+<wicket:extend>
        <form wicket:id="form">
                <textarea wicket:id="message" class="w-100"></textarea>
                <div>
                        <input type="checkbox" wicket:id="enterRoom" /><label 
wicket:for="enterRoom"><wicket:message key="1134"/></label>
                </div>
        </form>
-</wicket:panel>
+</wicket:extend>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
index f4fabf3..c857746 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
@@ -18,9 +18,6 @@
  */
 package org.apache.openmeetings.web.user;
 
-import java.util.Arrays;
-import java.util.List;
-
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Room;
@@ -31,15 +28,16 @@ import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 
-public class InviteUserMessageDialog extends AbstractFormDialog<String> {
+public class InviteUserMessageDialog extends Modal<String> {
        private static final long serialVersionUID = 1L;
-       private DialogButton send;
-       private DialogButton cancel;
        private final Form<Void> form = new Form<>("form");
        private final TextArea<String> message = new TextArea<>("message", 
Model.of(""));
        private final CheckBox enterRoom = new CheckBox("enterRoom", 
Model.of(false));
@@ -49,49 +47,45 @@ public class InviteUserMessageDialog extends 
AbstractFormDialog<String> {
        private RoomDao roomDao;
 
        public InviteUserMessageDialog(String id) {
-               super(id, "");
-               add(form.add(message.setRequired(true), 
enterRoom.setOutputMarkupId(true)).setOutputMarkupId(true));
+               super(id);
        }
 
        @Override
        protected void onInitialize() {
-               getTitle().setObject(getString("1138"));
-               send = new DialogButton("send", getString("213"));
-               cancel = new DialogButton("cancel", getString("lbl.cancel"));
+               header(new ResourceModel("1138"));
+               setCloseOnEscapeKey(true);
+               setBackdrop(Backdrop.STATIC);
+
+               addButton(new BootstrapAjaxButton("button", new 
ResourceModel("213"), form, Buttons.Type.Primary) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target) {
+                               // no-op
+                       }
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target) {
+                               InviteUserMessageDialog.this.close(target);
+                       }
+               }); //send
+               addButton(new BootstrapAjaxLink<>("button", Model.of(""), 
Buttons.Type.Secondary, new ResourceModel("lbl.cancel")) {
+                       private static final long serialVersionUID = 1L;
+
+                       public void onClick(AjaxRequestTarget target) {
+                               InviteUserMessageDialog.this.close(target);
+                       }
+               });
                super.onInitialize();
+               add(form.add(message.setRequired(true), 
enterRoom.setOutputMarkupId(true)).setOutputMarkupId(true));
        }
 
-       public void open(IPartialPageRequestHandler handler, Long roomId, Long 
userId) {
+       public void show(IPartialPageRequestHandler handler, Long roomId, Long 
userId) {
                Room r = roomDao.get(roomId);
                User u = userDao.get(userId);
                message.setModelObject(String.format("%s %s %s %s", 
u.getFirstname(), u.getLastname(), getString("1137"), r.getName()));
                enterRoom.setModelObject(false);
                handler.add(form);
-               open(handler);
-       }
-
-       @Override
-       protected List<DialogButton> getButtons() {
-               return Arrays.asList(send, cancel);
-       }
-
-       @Override
-       public DialogButton getSubmitButton() {
-               return send;
-       }
-
-       @Override
-       public Form<?> getForm() {
-               return form;
-       }
-
-       @Override
-       protected void onError(AjaxRequestTarget target, DialogButton btn) {
-               // no-op
-       }
-
-       @Override
-       protected void onSubmit(AjaxRequestTarget target, DialogButton btn) {
-               // no-op
+               show(handler);
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
index a6b82c3..468f29f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.html
@@ -20,7 +20,7 @@
 -->
 <!DOCTYPE html>
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:panel>
+<wicket:extend>
        <div class="rooms desc info-text"><wicket:message key="1132"/></div>
        <div class="rooms title"><wicket:message key="777"/></div>
        <div class="room list container">
@@ -31,5 +31,5 @@
                <div wicket:id="privateRooms"></div>
        </div>
        <div wicket:id="inviteMsg"/>
-</wicket:panel>
+</wicket:extend>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
index 6ec9b77..c129d18 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
@@ -21,7 +21,6 @@ package org.apache.openmeetings.web.user;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -31,14 +30,16 @@ import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.web.user.rooms.RoomListPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 
-public class InviteUserToRoomDialog extends AbstractDialog<String> {
+public class InviteUserToRoomDialog extends Modal<String> {
        private static final long serialVersionUID = 1L;
-       private DialogButton cancel;
        private RoomListPanel publicRooms;
        private RoomListPanel privateRooms;
        private final InviteUserMessageDialog inviteMsg = new 
InviteUserMessageDialog("inviteMsg");
@@ -57,18 +58,27 @@ public class InviteUserToRoomDialog extends 
AbstractDialog<String> {
 
                @Override
                public void onRoomEnter(AjaxRequestTarget target, Long roomId) {
-                       inviteMsg.open(target, roomId, userId);
+                       inviteMsg.show(target, roomId, userId);
                }
        }
 
        public InviteUserToRoomDialog(String id) {
-               super(id, "");
+               super(id);
        }
 
        @Override
        protected void onInitialize() {
-               getTitle().setObject(getString("1131"));
-               cancel = new DialogButton("cancel", getString("lbl.cancel"));
+               header(new ResourceModel("1131"));
+               setCloseOnEscapeKey(true);
+               setBackdrop(Backdrop.STATIC);
+
+               addButton(new BootstrapAjaxLink<>("button", Model.of(""), 
Buttons.Type.Secondary, new ResourceModel("lbl.cancel")) {
+                       private static final long serialVersionUID = 1L;
+
+                       public void onClick(AjaxRequestTarget target) {
+                               InviteUserToRoomDialog.this.close(target);
+                       }
+               });
                add(publicRooms = new InviteRoomListPanel("publicRooms", new 
ArrayList<Room>(), getString("1135")));
                add(privateRooms = new InviteRoomListPanel("privateRooms", new 
ArrayList<Room>(), getString("1135")));
                add(inviteMsg);
@@ -92,20 +102,10 @@ public class InviteUserToRoomDialog extends 
AbstractDialog<String> {
                return result;
        }
 
-       public void open(IPartialPageRequestHandler handler, Long userId) {
+       public void show(IPartialPageRequestHandler handler, Long userId) {
                this.userId = userId;
                publicRooms.update(handler, roomDao.getPublicRooms());
                privateRooms.update(handler, getPrivateRooms(getUserId(), 
userId, roomDao));
-               open(handler);
-       }
-
-       @Override
-       protected List<DialogButton> getButtons() {
-               return Arrays.asList(cancel);
-       }
-
-       @Override
-       public void onClose(IPartialPageRequestHandler handler, DialogButton 
button) {
-               //no-op
+               show(handler);
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
index 560d7dc..602837a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
@@ -111,7 +111,7 @@ public class VideoInfo extends Panel {
                protected void onSubmit(AjaxRequestTarget target) {
                        rif.setRecordingId(rm.getObject().getId());
                        invite.updateModel(target);
-                       invite.open(target);
+                       invite.show(target);
                }
        };
        @SpringBean
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
deleted file mode 100644
index 2351fde..0000000
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/NonClosableMessageDialog.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.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;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
-
-public abstract class NonClosableMessageDialog extends MessageDialog {
-       private static final long serialVersionUID = 1L;
-
-       public NonClosableMessageDialog(String id, String title, String 
message) {
-               super(id, title, message, DialogButtons.OK, DialogIcon.INFO);
-       }
-
-       public NonClosableMessageDialog(String id, String title, String 
message, List<DialogButton> buttons, DialogIcon icon) {
-               super(id, title, message, buttons, icon);
-       }
-
-       @Override
-       public void onConfigure(JQueryBehavior behavior) {
-               super.onConfigure(behavior);
-               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/main/webapp/css/raw-general.css 
b/openmeetings-web/src/main/webapp/css/raw-general.css
index 29a5c67..c66e873 100644
--- a/openmeetings-web/src/main/webapp/css/raw-general.css
+++ b/openmeetings-web/src/main/webapp/css/raw-general.css
@@ -26,9 +26,6 @@ html, body {
        background-repeat: no-repeat;
        padding-left: 20px;
 }
-.signin .remember {
-       white-space: nowrap;
-}
 .signin .or-seperator {
        margin-top: 20px;
        text-align: center;
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
index 059d6d4..53bbb35 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
@@ -54,7 +54,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 
 public class TestHashPage extends AbstractWicketTester {
        private static final Logger log = 
LoggerFactory.getLogger(TestHashPage.class);
@@ -69,7 +70,8 @@ public class TestHashPage extends AbstractWicketTester {
        private void checkAccessDenied(PageParameters pp) {
                tester.startPage(HashPage.class, pp);
                tester.assertRenderedPage(HashPage.class);
-               MessageDialog dlg = 
(MessageDialog)tester.getComponentFromLastRenderedPage("access-denied");
+               @SuppressWarnings("unchecked")
+               Modal<String> dlg = 
(Modal<String>)tester.getComponentFromLastRenderedPage("access-denied");
                Boolean autoOpen = 
((JQueryBehavior)dlg.getBehaviors().get(0)).getOption("autoOpen");
                assertTrue(autoOpen, "Access denied should be displayed");
                tester.assertInvisible(PANEL_MAIN);
@@ -78,7 +80,8 @@ public class TestHashPage extends AbstractWicketTester {
        private HashPage commonCheck(PageParameters pp) {
                HashPage page = tester.startPage(HashPage.class, pp);
                tester.assertRenderedPage(HashPage.class);
-               MessageDialog dlg = 
(MessageDialog)tester.getComponentFromLastRenderedPage("access-denied");
+               @SuppressWarnings("unchecked")
+               Modal<String> dlg = 
(Modal<String>)tester.getComponentFromLastRenderedPage("access-denied");
                Boolean autoOpen = 
((JQueryBehavior)dlg.getBehaviors().get(0)).getOption("autoOpen");
                assertFalse(autoOpen, "Access denied should NOT be displayed");
                return page;

Reply via email to