You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/02/12 16:30:48 UTC
[openmeetings] branch csp updated: [OPENMEETINGS-2165] java based
confirmations seems to be converted
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 <so...@gmail.com>
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>
+ <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;
}