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 2474e0b  [OPENMEETINGS-2165] java based confirmations seems to be 
converted
2474e0b is described below

commit 2474e0bd8a0101f9db46ba25e9dd34e96d5abb89
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Wed Feb 12 23:30:29 2020 +0700

    [OPENMEETINGS-2165] java based confirmations seems to be converted
---
 .../openmeetings/web/admin/AdminActionsPanel.html  |   2 +-
 .../openmeetings/web/admin/AdminActionsPanel.java  |  28 +---
 .../openmeetings/web/admin/email/EmailForm.java    |   9 +-
 .../openmeetings/web/admin/email/EmailPanel.html   |   2 +-
 .../web/admin/labels/AddLanguageDialog.java        |   1 -
 .../openmeetings/web/admin/labels/LabelsForm.java  |   6 -
 .../openmeetings/web/admin/labels/LangPanel.html   |  11 --
 .../openmeetings/web/admin/labels/LangPanel.java   |  14 --
 .../openmeetings/web/common/FormActionsPanel.java  |  30 +---
 .../common/confirmation/ConfirmableAjaxBorder.html |   2 +-
 .../common/confirmation/ConfirmableAjaxBorder.java | 183 ++++++---------------
 .../common/confirmation/ConfirmationDialog.java    |  41 ++++-
 .../web/common/tree/FileTreePanel.java             |  48 ++++--
 .../openmeetings/web/common/tree/FolderPanel.java  |   4 +-
 .../openmeetings/web/common/tree/filetree.js       |  31 ++--
 .../web/room/sidebar/RoomFilePanel.java            |   5 +-
 .../openmeetings/web/room/sidebar/RoomSidebar.html |   1 -
 .../openmeetings/web/room/sidebar/RoomSidebar.java |  19 +--
 .../web/user/profile/InvitationDetails.java        |  25 +--
 .../web/user/profile/InvitationsPanel.html         |   4 +-
 .../web/user/record/RecordingsPanel.java           |   2 +-
 openmeetings-web/src/main/webapp/css/raw-tree.css  |   3 +
 22 files changed, 186 insertions(+), 285 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.html
index 4124e6c..8ade455 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.html
@@ -24,7 +24,7 @@
        <div class="btn btn-outline-primary btn-sm" wicket:id="btn-new" 
wicket:message="title:155">
                <i class="fas fa-plus"></i>
        </div>
-       <div class="btn btn-outline-warning btn-sm" wicket:id="btn-delete" 
wicket:message="title:157,data-original-title:157">
+       <div class="btn btn-outline-warning btn-sm" wicket:id="btn-delete" 
wicket:message="title:157">
                <i class="fas fa-times"></i>
        </div>
        <div class="btn btn-outline-success btn-sm" wicket:id="btn-restore" 
wicket:message="title:admin.restore">
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
index 400f6f3..5c36a26 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminActionsPanel.java
@@ -22,6 +22,7 @@ import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.newOkCance
 
 import org.apache.openmeetings.web.common.FormActionsPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
@@ -31,8 +32,8 @@ public abstract class AdminActionsPanel<T> extends 
FormActionsPanel<T> {
        private static final long serialVersionUID = 1L;
        private final Label newRecord = new Label("newRecord", Model.of(""));
        private final Form<T> form;
-       private AjaxButton delBtn;
-       private AjaxButton restoreBtn;
+       private AjaxLink<Void> delBtn;
+       private AjaxLink<Void> restoreBtn;
 
        public AdminActionsPanel(String id, final Form<T> form) {
                super(id, form);
@@ -67,43 +68,28 @@ public abstract class AdminActionsPanel<T> extends 
FormActionsPanel<T> {
                final Form<?> cForm = new Form<>("form");
                cForm.setMultiPart(form.isMultiPart());
                add(cForm);
-               delBtn = new AjaxButton("btn-delete", cForm) {
+               delBtn = new AjaxLink<>("btn-delete") {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
+                       public void onClick(AjaxRequestTarget target) {
                                // repaint the feedback panel so that it is 
hidden
                                target.add(feedback);
                                setNewVisible(false);
                                onDeleteSubmit(target, form);
                        }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                               setNewVisible(false);
-                               AdminActionsPanel.this.onError(target, form);
-                       }
                };
                delBtn.add(newOkCancelDangerConfirm(this, getString("833")));
-               restoreBtn = new AjaxButton("btn-restore", form) {
+               restoreBtn = new AjaxLink<>("btn-restore") {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
+                       public void onClick(AjaxRequestTarget target) {
                                // repaint the feedback panel so that it is 
hidden
                                target.add(feedback);
                                setNewVisible(false);
                                onRestoreSubmit(target, form);
                        }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                               AdminActionsPanel.this.onError(target, form);
-                       }
                };
                add(newBtn, delBtn
                                , 
restoreBtn.setOutputMarkupPlaceholderTag(true).setVisible(false));
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
index cccb431..48c6509 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
@@ -24,7 +24,7 @@ import org.apache.openmeetings.db.dao.basic.MailMessageDao;
 import org.apache.openmeetings.db.entity.basic.MailMessage;
 import org.apache.openmeetings.web.util.DateLabel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
@@ -40,7 +40,7 @@ public class EmailForm extends Form<MailMessage> {
        private static final long serialVersionUID = 1L;
        private final Label status = new Label("status", Model.of(""));
        private BootstrapAjaxButton reset;
-       private AjaxButton delBtn;
+       private AjaxLink<Void> delBtn;
        private final WebMarkupContainer list;
        @SpringBean
        private MailMessageDao emailDao;
@@ -72,11 +72,10 @@ public class EmailForm extends Form<MailMessage> {
                });
                reset.setEnabled(false);
                // add a cancel button that can be used to submit the form via 
ajax
-               delBtn = new AjaxButton("btn-delete", this) {
+               delBtn = new AjaxLink<>("btn-delete") {
                        private static final long serialVersionUID = 1L;
 
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
+                       public void onClick(AjaxRequestTarget target) {
                                
emailDao.delete(EmailForm.this.getModelObject().getId());
                                EmailForm.this.setModelObject(new 
MailMessage());
                                target.add(list, EmailForm.this);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.html
index de64b20..d1baa66 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.html
@@ -43,7 +43,7 @@
        <div class="adminPanelColumnForm">
                <form wicket:id="form" class="adminForm">
                        <div class="actions ui-widget-header">
-                               <div class="btn btn-outline-warning btn-sm" 
wicket:id="btn-delete" wicket:message="title:157,data-original-title:157">
+                               <div class="btn btn-outline-warning btn-sm" 
wicket:id="btn-delete" wicket:message="title:157">
                                        <i class="fas fa-times"></i>
                                </div>
                        </div>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/AddLanguageDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/AddLanguageDialog.java
index c4d2586..8dab3c2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/AddLanguageDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/AddLanguageDialog.java
@@ -53,7 +53,6 @@ public class AddLanguageDialog extends Modal<String> {
        @Override
        protected void onInitialize() {
                header(new ResourceModel("362"));
-               setCloseOnEscapeKey(true);
                setBackdrop(Backdrop.STATIC);
 
                addButton(new BootstrapAjaxButton("button", new 
ResourceModel("366"), form, Buttons.Type.Outline_Primary) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
index 5e84da9..5fc834e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.web.admin.labels;
 
-import static org.apache.openmeetings.web.admin.labels.LangPanel.reinitJs;
-
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.entity.label.StringLabel;
 import org.apache.openmeetings.web.admin.AdminBaseForm;
@@ -57,14 +55,12 @@ public class LabelsForm extends AdminBaseForm<StringLabel> {
                value = null;
                setModelObject(new StringLabel(key, value));
                target.add(this);
-               reinitJs(target);
        }
 
        @Override
        protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
                this.setModelObject(new StringLabel(key, value));
                target.add(this);
-               reinitJs(target);
        }
 
        @Override
@@ -76,7 +72,6 @@ public class LabelsForm extends AdminBaseForm<StringLabel> {
                }
                setNewVisible(false);
                target.add(panel.listContainer);
-               reinitJs(target);
        }
 
        @Override
@@ -87,6 +82,5 @@ public class LabelsForm extends AdminBaseForm<StringLabel> {
                        error("Unexpected error while deleting label:" + 
e.getMessage());
                }
                target.add(panel.listContainer);
-               reinitJs(target);
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.html
index e275aa9..7197bfd 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.html
@@ -20,17 +20,6 @@
 -->
 <!DOCTYPE html>
 <html xmlns:wicket="http://wicket.apache.org";>
-<wicket:head>
-       <script type="text/javascript">
-               function langPanelInit() {
-                       $('#addLanguage').dialog({
-                               closeOnEscape: true
-                               , autoOpen: false
-                               , resizable: false
-                       });
-               };
-       </script>
-</wicket:head>
 <wicket:extend>
        <div wicket:id="feedback"></div>
        <div class="adminPanelColumnTable label">
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
index 1fc8087..cdb6f5e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
@@ -35,7 +35,6 @@ import org.apache.openmeetings.db.entity.label.StringLabel;
 import org.apache.openmeetings.web.admin.AdminBasePanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -47,7 +46,6 @@ import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.extensions.ajax.AjaxDownloadBehavior;
 import 
org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -129,7 +127,6 @@ public class LangPanel extends AdminBasePanel {
                                                form.setModelObject(fv);
                                                form.setNewVisible(false);
                                                target.add(form, listContainer);
-                                               reinitJs(target);
                                        }
                                });
                                item.add(AttributeModifier.append(ATTR_CLASS, 
getRowClass(fv.getId(), form.getModelObject().getId())));
@@ -256,17 +253,6 @@ public class LangPanel extends AdminBasePanel {
                super.onInitialize();
        }
 
-       @Override
-       public BasePanel onMenuPanelLoad(IPartialPageRequestHandler handler) {
-               reinitJs(handler);
-               super.onMenuPanelLoad(handler);
-               return this;
-       }
-
-       static void reinitJs(IPartialPageRequestHandler handler) {
-               handler.appendJavaScript("langPanelInit()");
-       }
-
        public LangForm getLangForm() {
                return langForm;
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
index 4706743..56a7783 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/FormActionsPanel.java
@@ -18,8 +18,10 @@
  */
 package org.apache.openmeetings.web.common;
 
-import org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.newOkCancelDangerConfirm;
+
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
@@ -31,7 +33,7 @@ public abstract class FormActionsPanel<T> extends Panel {
        private final Form<T> form;
        protected final NotificationPanel feedback = new 
NotificationPanel("feedback");
        private AjaxButton saveBtn;
-       private ConfirmableAjaxBorder purgeBtn;
+       private AjaxLink<Void> purgeBtn;
 
        public FormActionsPanel(String id, Form<T> form) {
                super(id);
@@ -63,43 +65,29 @@ public abstract class FormActionsPanel<T> extends Panel {
                });
 
                // add a refresh button that can be used to submit the form via 
ajax
-               add(new AjaxButton("btn-refresh", form) {
+               add(new AjaxLink<Void>("btn-refresh") {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
+                       public void onClick(AjaxRequestTarget target) {
                                // repaint the feedback panel so that it is 
hidden
                                target.add(feedback);
                                setNewVisible(false);
                                onRefreshSubmit(target, form);
                        }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                               setNewVisible(false);
-                               FormActionsPanel.this.onError(target, form);
-                       }
                });
-               purgeBtn = new ConfirmableAjaxBorder("btn-purge", 
getString("admin.purge"), getString("admin.purge.desc"), form, null, false) {
+               purgeBtn = new AjaxLink<>("btn-purge") {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
+                       public void onClick(AjaxRequestTarget target) {
                                // repaint the feedback panel so that it is 
hidden
                                target.add(feedback);
                                setNewVisible(false);
                                onPurgeSubmit(target, form);
                        }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                               FormActionsPanel.this.onError(target, form);
-                       }
                };
+               purgeBtn.add(newOkCancelDangerConfirm(this, 
getString("admin.purge.desc")));
                
add(purgeBtn.setOutputMarkupPlaceholderTag(true).setVisible(false));
                super.onInitialize();
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.html
index 2526366..e1325f5 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.html
@@ -22,6 +22,6 @@
 <html xmlns:wicket="http://wicket.apache.org";>
 <wicket:border>
        <wicket:body/>
-       <form wicket:id="form" class="d-inline"><div 
wicket:id="dialog"></div></form>
+       <div wicket:id="dialog"></div>
 </wicket:border>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.java
index f48f701..dab2c01 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmableAjaxBorder.java
@@ -23,105 +23,72 @@ import static 
org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import org.apache.wicket.markup.html.border.Border;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.panel.EmptyPanel;
-import org.apache.wicket.model.Model;
-import org.danekja.java.util.function.serializable.SerializableConsumer;
-
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-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.MessageFormDialog;
+import org.apache.wicket.model.IModel;
 
 public abstract class ConfirmableAjaxBorder extends Border {
        private static final long serialVersionUID = 1L;
-       private static final String DIALOG_ID = "dialog";
-       protected final Form<?> form = new Form<>("form");
-       protected final Form<?> userForm;
-       private final ConfirmableBorderDialog dialog;
-       private boolean validate = false;
-
-       public ConfirmableAjaxBorder(String id, String title, String message) {
-               this(id, title, message, null, null);
-       }
-
-       public ConfirmableAjaxBorder(String id, String title, String message, 
Form<?> form) {
-               this(id, title, message, form, null);
-       }
-
-       public ConfirmableAjaxBorder(String id, String title, String message, 
ConfirmableBorderDialog dialog) {
-               this(id, title, message, null, dialog);
-       }
-
-       public ConfirmableAjaxBorder(String id, String title, String message, 
Form<?> userForm, ConfirmableBorderDialog dialog) {
-               this(id, title, message, userForm, dialog, false);
+       private final IModel<String> title;
+       private final IModel<String> message;
+       private ConfirmationDialog dialog;
+
+       public ConfirmableAjaxBorder(String id, IModel<String> title, 
IModel<String> message) {
+               super(id);
+               this.title = title;
+               this.message = message;
+               setOutputMarkupId(true);
        }
 
-       public ConfirmableAjaxBorder(String id, String title, String message, 
Form<?> userForm, ConfirmableBorderDialog dialog, boolean validate) {
-               super(id, Model.of(message));
+       private ConfirmationDialog getDialog() {
                if (dialog == null) {
-                       this.dialog = new ConfirmableBorderDialog(DIALOG_ID, 
title, message, userForm == null ? form : userForm);
-                       form.add(this.dialog);
-               } else {
-                       this.dialog = dialog;
-                       form.add(new EmptyPanel(DIALOG_ID));
-               }
-               this.userForm = userForm;
-               this.validate = validate;
-               this.dialog.setSubmitHandler(this::onSubmit);
-               this.dialog.setErrorHandler(this::onError);
-               setOutputMarkupId(true);
-       }
+                       dialog = new ConfirmationDialog("dialog", title, 
message) {
+                               private static final long serialVersionUID = 1L;
 
-       public AbstractFormDialog<?> getDialog() {
+                               @Override
+                               protected void onConfirm(AjaxRequestTarget 
target) {
+                                       
ConfirmableAjaxBorder.this.onConfirm(target);
+                               }
+                       };
+               }
                return dialog;
        }
 
        @Override
        protected void onInitialize() {
                super.onInitialize();
-               if (validate) {
-                       add(new AjaxFormSubmitBehavior(EVT_CLICK) {
-                               private static final long serialVersionUID = 1L;
-
-                               @Override
-                               protected void onSubmit(AjaxRequestTarget 
target) {
-                                       dialog.open(target);
-                               }
-
-                               @Override
-                               protected void onError(AjaxRequestTarget 
target) {
-                                       
ConfirmableAjaxBorder.this.onError(target);
-                               }
-                       });
-               } else {
-                       add(new AjaxEventBehavior(EVT_CLICK) {
-                               private static final long serialVersionUID = 1L;
+               add(new AjaxEventBehavior(EVT_CLICK) {
+                       private static final long serialVersionUID = 1L;
 
-                               @Override
-                               protected void 
updateAjaxAttributes(AjaxRequestAttributes attributes) {
-                                       super.updateAjaxAttributes(attributes);
-                                       
ConfirmableAjaxBorder.this.updateAjaxAttributes(attributes);
-                               }
+                       @Override
+                       protected void 
updateAjaxAttributes(AjaxRequestAttributes attributes) {
+                               super.updateAjaxAttributes(attributes);
+                               
ConfirmableAjaxBorder.this.updateAjaxAttributes(attributes);
+                       }
 
-                               @Override
-                               protected void onEvent(AjaxRequestTarget 
target) {
-                                       if (isClickable()) {
-                                               dialog.open(target);
-                                       }
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                               if (isClickable()) {
+                                       getDialog().show(target);
                                }
-                       });
-               }
-               addToBorder(form);
+                       }
+               });
+               addToBorder(getDialog());
        }
 
        protected boolean isClickable() {
                return true;
        }
 
+       public ConfirmableAjaxBorder setTitle(IModel<String> title) {
+               getDialog().header(title);
+               return this;
+       }
+
+       public ConfirmableAjaxBorder setMessage(IModel<String> message) {
+               getDialog().setModel(message);
+               return this;
+       }
+
        /**
         * Gives a chance to the specializations to modify the attributes.
         *
@@ -131,15 +98,7 @@ public abstract class ConfirmableAjaxBorder extends Border {
        }
 
        protected void onEvent(AjaxRequestTarget target) {
-               dialog.open(target);
-       }
-
-       /**
-        * Triggered when the form is submitted, but the validation failed
-        *
-        * @param target - the {@link AjaxRequestTarget}
-        */
-       protected void onError(AjaxRequestTarget target) {
+               getDialog().show(target);
        }
 
        /**
@@ -147,54 +106,12 @@ public abstract class ConfirmableAjaxBorder extends 
Border {
         *
         * @param target - the {@link AjaxRequestTarget}
         */
-       protected abstract void onSubmit(AjaxRequestTarget target);
-
-       public static class ConfirmableBorderDialog extends MessageFormDialog {
-               private static final long serialVersionUID = 1L;
-               private Form<?> form;
-               private SerializableConsumer<AjaxRequestTarget> submitHandler = 
null;
-               private SerializableConsumer<AjaxRequestTarget> errorHandler = 
null;
-
-               public ConfirmableBorderDialog(String id, String title, String 
message) {
-                       this(id, title, message, null);
-               }
-
-               public ConfirmableBorderDialog(String id, String title, String 
message, Form<?> form) {
-                       super(id, title, message, DialogButtons.OK_CANCEL, 
DialogIcon.WARN);
-                       this.form = form;
-               }
+       protected abstract void onConfirm(AjaxRequestTarget target);
 
-               public void 
setSubmitHandler(SerializableConsumer<AjaxRequestTarget> submitHandler) {
-                       this.submitHandler = submitHandler;
-               }
-
-               public void 
setErrorHandler(SerializableConsumer<AjaxRequestTarget> errorHandler) {
-                       this.errorHandler = errorHandler;
-               }
-
-               @Override
-               public DialogButton getSubmitButton() {
-                       return this.findButton(OK);
-               }
-
-               @Override
-               public Form<?> getForm() {
-                       return this.form;
-               }
-
-               @Override
-               protected void onError(AjaxRequestTarget target, DialogButton 
btn) {
-                       super.close(target, null); // closes the dialog on 
error.
-                       if (errorHandler != null) {
-                               errorHandler.accept(target);
-                       }
-               }
-
-               @Override
-               protected void onSubmit(AjaxRequestTarget target, DialogButton 
btn) {
-                       if (submitHandler != null) {
-                               submitHandler.accept(target);
-                       }
-               }
+       @Override
+       protected void detachModel() {
+               super.detachModel();
+               title.detach();
+               message.detach();
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationDialog.java
index 979a360..092dbfd 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/confirmation/ConfirmationDialog.java
@@ -22,13 +22,17 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 
+import 
de.agilecoders.wicket.core.markup.html.bootstrap.behavior.CssClassNameAppender;
 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.ModalCloseButton;
 import 
de.agilecoders.wicket.core.markup.html.bootstrap.dialog.TextContentModal;
+import de.agilecoders.wicket.core.markup.html.bootstrap.image.IconType;
+import 
de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome5IconType;
 
 public abstract class ConfirmationDialog extends TextContentModal {
        private static final long serialVersionUID = 1L;
+       private BootstrapAjaxLink<String> okButton;
 
        public ConfirmationDialog(String id, IModel<String> title, 
IModel<String> model) {
                super(id, model);
@@ -36,18 +40,37 @@ public abstract class ConfirmationDialog extends 
TextContentModal {
                setBackdrop(Backdrop.STATIC);
        }
 
+       private BootstrapAjaxLink<String> getOkButton() {
+               if (okButton == null) {
+                       okButton = new BootstrapAjaxLink<>("button", null, 
Buttons.Type.Outline_Danger, new ResourceModel("54")) {
+                               private static final long serialVersionUID = 1L;
+
+                               @Override
+                               public void onClick(AjaxRequestTarget target) {
+                                       close(target);
+                                       onConfirm(target);
+                               }
+                       };
+                       
okButton.setIconType(FontAwesome5IconType.exclamation_triangle_s);
+               }
+               return okButton;
+       }
+
+       public ConfirmationDialog withOkType(Buttons.Type type) {
+               getOkButton().setType(type);
+               return this;
+       }
+
+       public ConfirmationDialog withOkIcon(IconType icon) {
+               getOkButton().setIconType(icon);
+               return this;
+       }
+
        @Override
        protected void onInitialize() {
                super.onInitialize();
-               addButton(new BootstrapAjaxLink<>("button", null, 
Buttons.Type.Outline_Primary, new ResourceModel("54")) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClick(AjaxRequestTarget target) {
-                               close(target);
-                               onConfirm(target);
-                       }
-               }); //send
+               add(new CssClassNameAppender("om-confirm-dialog"));
+               addButton(getOkButton());
                addButton(new ModalCloseButton(new 
ResourceModel("lbl.cancel")).type(Buttons.Type.Outline_Secondary));
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index 6879ff0..8e0b725 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
@@ -43,7 +43,6 @@ import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.web.common.NameDialog;
 import org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder;
-import 
org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder.ConfirmableBorderDialog;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxEventBehavior;
@@ -170,7 +169,6 @@ public abstract class FileTreePanel extends Panel {
        };
        private final Form<Void> form = new Form<>("form");
        private final NameDialog addFolder;
-       private final ConfirmableBorderDialog trashConfirm;
        private ConfirmableAjaxBorder trashBorder;
        private final Long roomId;
        private boolean readOnly = true;
@@ -188,11 +186,10 @@ public abstract class FileTreePanel extends Panel {
        @SpringBean
        private FileItemDao fileDao;
 
-       public FileTreePanel(String id, Long roomId, NameDialog addFolder, 
ConfirmableBorderDialog trashConfirm) {
+       public FileTreePanel(String id, Long roomId, NameDialog addFolder) {
                super(id);
                this.roomId = roomId;
                this.addFolder = addFolder;
-               this.trashConfirm = trashConfirm;
                final OmTreeProvider tp = new OmTreeProvider(roomId);
                select(tp.getRoot(), null, false, false);
                form.add(tree = new FileItemTree("tree", this, tp));
@@ -268,19 +265,7 @@ public abstract class FileTreePanel extends Panel {
                                update(target);
                        }
                }));
-               trashToolbar.add(trashBorder = new 
ConfirmableAjaxBorder("trash", getString("80"), getString("713"), trashConfirm) 
{
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected boolean isClickable() {
-                               return !readOnly && !selected.isEmpty();
-                       }
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
-                               deleteAll(target);
-                       }
-               });
+               trashToolbar.add(getTrashBorder());
 
                form.add(trees.add(tree).setOutputMarkupId(true));
                updateSizes();
@@ -289,6 +274,35 @@ public abstract class FileTreePanel extends Panel {
                setReadOnly(false, null);
        }
 
+       private ConfirmableAjaxBorder getTrashBorder() {
+               if (trashBorder == null) {
+                       trashBorder = new ConfirmableAjaxBorder("trash", new 
ResourceModel("80"), new ResourceModel("713")) {
+                               private static final long serialVersionUID = 1L;
+
+                               @Override
+                               protected boolean isClickable() {
+                                       return !readOnly && !selected.isEmpty();
+                               }
+
+                               @Override
+                               protected void onConfirm(AjaxRequestTarget 
target) {
+                                       deleteAll(target);
+                               }
+                       };
+               }
+               return trashBorder;
+       }
+
+       public FileTreePanel setBorderTitle(IModel<String> title) {
+               getTrashBorder().setTitle(title);
+               return this;
+       }
+
+       public FileTreePanel setBorderMessage(IModel<String> message) {
+               getTrashBorder().setMessage(message);
+               return this;
+       }
+
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
index ec3461c..7b8b0c8 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
@@ -91,9 +91,9 @@ public class FolderPanel extends Panel implements 
IDraggableListener, IDroppable
                        add(new DraggableBehavior(
                                        selector
                                        , new Options()
-                                               .set("revert", "treeRevert")
+                                               .set("revert", 
"OmFileTree.treeRevert")
                                                .set("cursor", 
Options.asString("move"))
-                                               .set("helper", "dragHelper")
+                                               .set("helper", 
"OmFileTree.dragHelper")
                                                .set("cursorAt", "{left: 40, 
top: 18}")
                                                .set("containment", 
Options.asString(treePanel.getContainment()))
                                        , this));
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/filetree.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/filetree.js
index d7694c7..d268e5c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/filetree.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/filetree.js
@@ -1,14 +1,21 @@
 /* Licensed under the Apache License, Version 2.0 (the "License") 
http://www.apache.org/licenses/LICENSE-2.0 */
-function dragHelper() {
-       let s = $(this);
-       if (s.hasClass('ui-state-active')) {
-               s = $('.file.ui-state-active.ui-draggable.ui-draggable-handle, 
.recording.ui-state-active.ui-draggable.ui-draggable-handle');
+var OmFileTree = (function() {
+       return {
+               dragHelper: function() {
+                       let s = $(this);
+                       if (s.hasClass('ui-state-active')) {
+                               s = 
$('.file.ui-state-active.ui-draggable.ui-draggable-handle, 
.recording.ui-state-active.ui-draggable.ui-draggable-handle');
+                       }
+                       const c = $('<div/>').attr('id', 
'draggingContainer').addClass('drag-container').width(80).height(36)
+                               , h = $('<div class="ui-corner-all 
ui-widget-header"/>').append(s.clone()).width(s.width());
+                       return c.append(h);
+               }
+               , treeRevert: function(dropped) {
+                       $('.file-tree .trees')[0].scrollTop = 
$(this).parent()[0].offsetTop - 32;
+                       return !dropped || (!!dropped.context && 
$(dropped.context).hasClass('wb', 'room'));
+               }
+               , confirmTrash: function() {
+                       
+               }
        }
-       const c = $('<div/>').attr('id', 
'draggingContainer').addClass('drag-container').width(80).height(36)
-               , h = $('<div class="ui-corner-all 
ui-widget-header"/>').append(s.clone()).width(s.width());
-       return c.append(h);
-}
-function treeRevert(dropped) {
-       $('.file-tree .trees')[0].scrollTop = $(this).parent()[0].offsetTop - 
32;
-       return !dropped || (!!dropped.context && 
$(dropped.context).hasClass('wb', 'room'));
-}
+})();
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
index 63a01ad..a2e4b50 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
@@ -27,7 +27,6 @@ import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dto.record.RecordingContainerData;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.web.common.NameDialog;
-import 
org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder.ConfirmableBorderDialog;
 import org.apache.openmeetings.web.common.tree.FileTreePanel;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.Component;
@@ -43,8 +42,8 @@ public class RoomFilePanel extends FileTreePanel {
        @SpringBean
        private RecordingDao recDao;
 
-       public RoomFilePanel(String id, RoomPanel room, NameDialog addFolder, 
ConfirmableBorderDialog trashConfirm) {
-               super(id, room.getRoom().getId(), addFolder, trashConfirm);
+       public RoomFilePanel(String id, RoomPanel room, NameDialog addFolder) {
+               super(id, room.getRoom().getId(), addFolder);
                this.room = room;
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
index 1ac1510..278c558 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html
@@ -51,7 +51,6 @@
        </div>
        <div wicket:id="activities"></div>
        <div wicket:id="addFolder"></div>
-       <form wicket:id="form"><div wicket:id="confirm-trash"></div></form>
        <div wicket:id="upload"></div>
        <div wicket:id="confirm-kick" />
        <div wicket:id="settings" />
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index c79d1ac..34e4321 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -38,8 +38,7 @@ import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.web.app.ClientManager;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.NameDialog;
-import org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder;
-import 
org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder.ConfirmableBorderDialog;
+import org.apache.openmeetings.web.common.confirmation.ConfirmationDialog;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.RoomPanel.Action;
 import org.apache.openmeetings.web.room.VideoSettings;
@@ -53,12 +52,12 @@ import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
@@ -82,7 +81,7 @@ public class RoomSidebar extends Panel {
        private final WebMarkupContainer userList = new 
WebMarkupContainer("user-list");
        private final WebMarkupContainer fileTab = new 
WebMarkupContainer("file-tab");
        private final SelfIconsPanel selfRights;
-       private ConfirmableAjaxBorder confirmKick;
+       private ConfirmationDialog confirmKick;
        private boolean showFiles;
        private boolean avInited = false;
        private Client kickedClient;
@@ -167,23 +166,21 @@ public class RoomSidebar extends Panel {
                                super.onSubmit(target);
                        }
                };
-               final Form<?> form = new Form<>("form");
-               ConfirmableBorderDialog confirmTrash = new 
ConfirmableBorderDialog("confirm-trash", getString("80"), getString("713"), 
form);
-               roomFiles = new RoomFilePanel("tree", room, addFolder, 
confirmTrash);
+               roomFiles = new RoomFilePanel("tree", room, addFolder);
                add(selfRights, userList.add(users).setOutputMarkupId(true)
                                , fileTab.setVisible(!room.isInterview()), 
roomFiles.setVisible(!room.isInterview()));
 
                add(addFolder, settings, userCount.setOutputMarkupId(true));
                add(avSettings);
-               add(confirmKick = new ConfirmableAjaxBorder("confirm-kick", 
getString("603"), getString("605")) {
+               add(new ConfirmationDialog("confirm-kick", new 
ResourceModel("603"), new ResourceModel("605")) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
+                       protected void onConfirm(AjaxRequestTarget target) {
                                kickUser(kickedClient);
                        }
                });
-               add(form.add(confirmTrash), upload = new UploadDialog("upload", 
room, roomFiles));
+               add(upload = new UploadDialog("upload", room, roomFiles));
                updateShowFiles(null);
                add(new JQueryUIBehavior("#room-sidebar-tabs", "tabs"));
                add(activities = new ActivitiesPanel("activities", room));
@@ -255,7 +252,7 @@ public class RoomSidebar extends Panel {
                                                        return;
                                                }
                                                if 
(!kickedClient.hasRight(Right.superModerator) && 
!self.getUid().equals(kickedClient.getUid())) {
-                                                       
confirmKick.getDialog().open(handler);
+                                                       
confirmKick.show(handler);
                                                }
                                        }
                                        break;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
index 293d312..f71a50c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
@@ -20,15 +20,16 @@ package org.apache.openmeetings.web.user.profile;
 
 import static org.apache.openmeetings.db.util.FormatHelper.formatUser;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.newOkCancelDangerConfirm;
 
 import java.util.Date;
 
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.room.Invitation.Valid;
-import org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.util.DateLabel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
@@ -39,7 +40,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 public class InvitationDetails extends Form<Invitation>{
        private static final long serialVersionUID = 1L;
        private final WebMarkupContainer list;
-       private ConfirmableAjaxBorder delBtn;
+       private AjaxLink<Void> delBtn;
        private final Label valid = new Label("valid", Model.of(""));
        private final Label invitee = new Label("invitee", Model.of(""));
        private final DateLabel from = new DateLabel("validFrom", 
Model.of((Date)null));
@@ -51,27 +52,27 @@ public class InvitationDetails extends Form<Invitation>{
                super(id, new CompoundPropertyModel<>(i));
                this.list = list;
                setOutputMarkupId(true);
-               add(new Label("id"));
-               add(valid);
-               add(invitee);
-               add(from);
-               add(to);
        }
 
        @Override
        protected void onInitialize() {
                super.onInitialize();
+               add(new Label("id"));
+               add(valid);
+               add(invitee);
+               add(from);
+               add(to);
                // add a cancel button that can be used to submit the form via 
ajax
-               delBtn = new ConfirmableAjaxBorder("ajax-cancel-button", 
getString("80"), getString("833"), this) {
+               delBtn = new AjaxLink<>("ajax-cancel-button") {
                        private static final long serialVersionUID = 1L;
 
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target) {
-                               inviteDao.delete(getModelObject(), getUserId());
-                               setModelObject(new Invitation());
+                       public void onClick(AjaxRequestTarget target) {
+                               
inviteDao.delete(InvitationDetails.this.getModelObject(), getUserId());
+                               InvitationDetails.this.setModelObject(new 
Invitation());
                                target.add(list, InvitationDetails.this);
                        }
                };
+               delBtn.add(newOkCancelDangerConfirm(this, getString("833")));
                add(delBtn.setOutputMarkupId(true).setEnabled(false));
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.html
index 9d0658f..9dc0c20 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.html
@@ -44,8 +44,8 @@
        <div class="adminPanelColumnForm">
                <form wicket:id="form" class="adminForm">
                        <div class="actions ui-widget-header">
-                               <div class="ui-button ui-widget ui-corner-all 
ui-button-icon-only ui-state-error" wicket:id="ajax-cancel-button" 
wicket:message="title:157">
-                                       <span class="ui-button-icon ui-icon 
ui-icon-closethick"></span>&nbsp;
+                               <div class="btn btn-outline-warning btn-sm" 
wicket:id="ajax-cancel-button" wicket:message="title:157">
+                                       <i class="fas fa-times"></i>
                                </div>
                        </div>
                        <div class="scrollcontent" id="adminForm">
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
index d0fee77..8579b09 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
@@ -53,7 +53,7 @@ public class RecordingsPanel extends UserBasePanel {
                                super.onSubmit(target);
                        }
                };
-               add(fileTree = new FileTreePanel("tree", null, addFolder, null) 
{
+               add(fileTree = new FileTreePanel("tree", null, addFolder) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
diff --git a/openmeetings-web/src/main/webapp/css/raw-tree.css 
b/openmeetings-web/src/main/webapp/css/raw-tree.css
index f73c578..c8d5f5e 100644
--- a/openmeetings-web/src/main/webapp/css/raw-tree.css
+++ b/openmeetings-web/src/main/webapp/css/raw-tree.css
@@ -34,6 +34,9 @@
        padding-top: 5px;
        overflow: hidden;
 }
+.trash-toolbar .om-confirm-dialog {
+       color: var(--danger);
+}
 .trash-toolbar .om-icon.fileitem, .trash-toolbar .om-icon.recorditem {
        display: none !important;
 }

Reply via email to