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 6df6814 [OPENMEETINGS-2165] conversion + some minor issues
6df6814 is described below
commit 6df6814394b929c05565c9e06deac5653b7dd3cd
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Feb 11 14:07:29 2020 +0700
[OPENMEETINGS-2165] conversion + some minor issues
---
.../openmeetings/db/entity/file/BaseFileItem.java | 2 +-
.../web/common/AbstractOmDateTimePicker.java | 1 +
.../apache/openmeetings/web/common/NameDialog.html | 4 +-
.../apache/openmeetings/web/common/NameDialog.java | 84 +++++++++++-----------
.../org/apache/openmeetings/web/common/main.js | 10 ++-
.../web/common/tree/FileTreePanel.java | 2 +-
.../openmeetings/web/common/tree/FolderPanel.java | 2 +-
.../openmeetings/web/room/sidebar/RoomSidebar.java | 4 +-
.../apache/openmeetings/web/room/wb/WbPanel.java | 21 +++---
.../openmeetings/web/user/chat/ChatToolbar.java | 8 ++-
.../web/user/profile/MessagesContactsPanel.java | 7 +-
.../web/user/record/RecordingsPanel.java | 5 +-
.../src/main/webapp/css/raw-general.css | 3 +
13 files changed, 80 insertions(+), 73 deletions(-)
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
index b641b0f..ffda12b 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
@@ -334,7 +334,7 @@ public abstract class BaseFileItem extends HistoricalEntity
{
}
public final boolean exists() {
- return Type.Folder == type || exists(null);
+ return exists(null);
}
public final boolean exists(String ext) {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/AbstractOmDateTimePicker.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/AbstractOmDateTimePicker.java
index aab215a..a81057e 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/AbstractOmDateTimePicker.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/AbstractOmDateTimePicker.java
@@ -53,6 +53,7 @@ public abstract class AbstractOmDateTimePicker<T> extends
AbstractDateTimePicker
.useClearIcon(FontAwesome5IconType.eraser_s)
.useCloseIcon(FontAwesome5IconType.times_s))
);
+ setRenderBodyOnly(false);
}
public static String getDateTimeFormat() {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.html
index 94f4a88..cdeb97c 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.html
@@ -20,11 +20,11 @@
-->
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
-<wicket:panel>
+<wicket:extend>
<form wicket:id="form">
<label class="pl-4 pr-4" wicket:id="label"></label><input
type="text" wicket:id="title"/>
<div wicket:id="feedback"></div>
<input type="submit" wicket:id="submit"
class="invisible-form-component"/>
</form>
-</wicket:panel>
+</wicket:extend>
</html>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.java
index aa11fce..ef6c7a3 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/NameDialog.java
@@ -18,26 +18,23 @@
*/
package org.apache.openmeetings.web.common;
-import java.util.Arrays;
-import java.util.List;
-
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-
+import
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
import
de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
-public abstract class NameDialog extends AbstractFormDialog<String> {
+public abstract class NameDialog extends Modal<String> {
private static final long serialVersionUID = 1L;
- private DialogButton add;
- private DialogButton cancel;
private final Form<String> form;
protected final NotificationPanel feedback = new
NotificationPanel("feedback");
private final String name;
@@ -48,17 +45,32 @@ public abstract class NameDialog extends
AbstractFormDialog<String> {
}
public NameDialog(String id, String name) {
- super(id, "", Model.of(name));
+ super(id, Model.of(name));
this.name = name;
form = new Form<>("form", getModel());
}
@Override
protected void onInitialize() {
- setTitle(Model.of(getTitleStr()));
- add = new DialogButton("add", getAddStr());
- cancel = new DialogButton("cancel", getString("lbl.cancel"));
- form.add(new Label("label", getLabelStr())
+ header(getTitle());
+ setCloseOnEscapeKey(true);
+ setBackdrop(Backdrop.STATIC);
+
+ addCloseButton(new ResourceModel("lbl.cancel"));
+ addButton(new BootstrapAjaxButton("button", getAddBtnLabel(),
form, Buttons.Type.Primary) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target) {
+ NameDialog.this.onSubmit(target);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target) {
+ NameDialog.this.onError(target);
+ }
+ }); // add
+ form.add(new Label("label", getLabel())
, title = new RequiredTextField<>("title",
getModel())
, feedback.setOutputMarkupId(true)
, new AjaxButton("submit") { //FAKE button so
"submit-on-enter" works as expected
@@ -66,60 +78,44 @@ public abstract class NameDialog extends
AbstractFormDialog<String> {
@Override
protected void
onSubmit(AjaxRequestTarget target) {
-
NameDialog.this.onSubmit(target, add);
+
NameDialog.this.onSubmit(target);
}
@Override
protected void
onError(AjaxRequestTarget target) {
- NameDialog.this.onError(target,
add);
+ NameDialog.this.onError(target);
}
});
- title.setLabel(Model.of(getLabelStr()));
+ title.setLabel(getLabel());
add(form.setOutputMarkupId(true));
super.onInitialize();
}
@Override
- protected void onOpen(IPartialPageRequestHandler handler) {
+ public Modal<String> show(IPartialPageRequestHandler handler) {
handler.add(form);
setModelObject(name);
getFeedbackMessages().clear();
+ return super.show(handler);
}
- @Override
- protected void onSubmit(AjaxRequestTarget target, DialogButton btn) {
- close(target, getSubmitButton());
+ protected void onSubmit(AjaxRequestTarget target) {
+ close(target);
}
- @Override
- protected List<DialogButton> getButtons() {
- return Arrays.asList(add, cancel);
- }
-
- @Override
- public DialogButton getSubmitButton() {
- return add;
- }
-
- @Override
- public Form<String> getForm() {
- return form;
- }
-
- @Override
- protected void onError(AjaxRequestTarget target, DialogButton btn) {
+ protected void onError(AjaxRequestTarget target) {
target.add(feedback);
}
- protected String getTitleStr() {
- return getString("703");
+ protected IModel<String> getTitle() {
+ return new ResourceModel("703");
}
- protected String getLabelStr() {
- return getString("572");
+ protected IModel<String> getLabel() {
+ return new ResourceModel("572");
}
- protected String getAddStr() {
- return getString("1261");
+ protected IModel<String> getAddBtnLabel() {
+ return new ResourceModel("1261");
}
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
index 08d8428..b162f29 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
@@ -23,7 +23,7 @@ var Settings = (function() {
};
})();
var OmUtil = (function() {
- let options, errs
+ let options, errs, alertId = 0;
const self = {};
function _init(_options) {
@@ -53,11 +53,15 @@ var OmUtil = (function() {
}
function __alert(level, msg, autohideAfter) {
const holder = $('#alert-holder');
- holder.append($(`<div class="alert alert-${level}
alert-dismissible fade show m-0" role="alert">${msg}
+ const curId = 'om-alert' + alertId++;
+ holder.append($(`<div id="${curId}" class="alert alert-${level}
alert-dismissible fade show m-0" role="alert">${msg}
<button type="button" class="close"
data-dismiss="alert" aria-label="${holder.data('lbl-close')}">
<span aria-hidden="true">×</span>
</button>
- </div>`))
+ </div>`));
+ if (autohideAfter > 0) {
+ setTimeout(() => { $(`#${curId}`).alert('close');},
autohideAfter);
+ }
}
function _error(msg) {
if (typeof(msg) === 'object') {
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 157db03..ddbcfcc 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
@@ -128,7 +128,7 @@ public abstract class FileTreePanel extends Panel {
@Override
protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
+ addFolder.show(target);
}
});
private final Component upload = new WebMarkupContainer("upload");
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 b26f638..717c058 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
@@ -185,7 +185,7 @@ public class FolderPanel extends Panel implements
IDraggableListener, IDroppable
if (f.getId() == null) {
style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my " :
"public ");
} else {
- if (!f.exists()) {
+ if (BaseFileItem.Type.Folder != f.getType() &&
!f.exists()) {
style.append("broken ");
}
switch(f.getType()) {
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 88b6a41..c79d1ac 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
@@ -67,7 +67,6 @@ import org.slf4j.LoggerFactory;
import com.github.openjson.JSONObject;
import com.googlecode.wicket.jquery.ui.JQueryUIBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
public class RoomSidebar extends Panel {
private static final long serialVersionUID = 1L;
@@ -163,8 +162,9 @@ public class RoomSidebar extends Panel {
private static final long serialVersionUID = 1L;
@Override
- protected void onSubmit(AjaxRequestTarget target,
DialogButton btn) {
+ protected void onSubmit(AjaxRequestTarget target) {
roomFiles.createFolder(target,
getModelObject());
+ super.onSubmit(target);
}
};
final Form<?> form = new Form<>("form");
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index 2295b07..0f31456 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -82,6 +82,8 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.spring.injection.annot.SpringBean;
@@ -93,7 +95,6 @@ import org.slf4j.LoggerFactory;
import com.github.openjson.JSONArray;
import com.github.openjson.JSONObject;
import com.github.openjson.JSONTokener;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
public class WbPanel extends AbstractWbPanel {
private static final long serialVersionUID = 1L;
@@ -112,27 +113,29 @@ public class WbPanel extends AbstractWbPanel {
private static final long serialVersionUID = 1L;
@Override
- protected void onSubmit(AjaxRequestTarget target, DialogButton
btn) {
+ protected void onSubmit(AjaxRequestTarget target) {
String res = saveWb(roomId, wb2save, getModelObject());
if (!Strings.isEmpty(res)) {
error("Unexpected error while saving WB: " +
res);
target.add(feedback);
+ } else {
+ super.onSubmit(target);
}
}
@Override
- protected String getTitleStr() {
- return getString("199");
+ protected IModel<String> getTitle() {
+ return new ResourceModel("199");
}
@Override
- protected String getLabelStr() {
- return getString("200");
+ protected IModel<String> getLabel() {
+ return new ResourceModel("200");
}
@Override
- protected String getAddStr() {
- return getString("144");
+ protected IModel<String> getAddBtnLabel() {
+ return new ResourceModel("144");
}
};
private final SerializableConsumer<Whiteboard> addUndo = wb -> {
@@ -400,7 +403,7 @@ public class WbPanel extends AbstractWbPanel {
break;
case save:
wb2save = obj.getLong("wbId");
- fileName.open(handler);
+ fileName.show(handler);
break;
case undo:
{
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
index acfc083..7b8e6a2 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
@@ -27,6 +27,7 @@ import static
org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+import static
org.apache.openmeetings.web.util.CallbackFunctionHelper.newOkCancelDangerConfirm;
import java.util.List;
@@ -37,12 +38,12 @@ import org.apache.openmeetings.db.dao.basic.ChatDao;
import org.apache.openmeetings.db.entity.basic.ChatMessage;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.web.app.ClientManager;
-import org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder;
import org.apache.openmeetings.web.pages.BasePage;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.extensions.ajax.AjaxDownloadBehavior;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
@@ -66,7 +67,7 @@ public class ChatToolbar extends Panel implements
IWysiwygToolbar {
private final WebMarkupContainer toolbar = new
WebMarkupContainer("toolbar");
private final WebMarkupContainer save = new WebMarkupContainer("save");
private final ChatForm chatForm;
- private ConfirmableAjaxBorder delBtn;
+ private AjaxButton delBtn;
private final AjaxDownloadBehavior download = new
AjaxDownloadBehavior(new ResourceStreamResource() {
private static final long serialVersionUID = 1L;
private static final char DELIMITER = ',';
@@ -182,7 +183,7 @@ public class ChatToolbar extends Panel implements
IWysiwygToolbar {
BasePage page = (BasePage)getPage();
add(toolbar.add(new
WebMarkupContainer("hyperlink").add(AttributeModifier.append("class",
page.isRtl() ? "dropdown-menu-left" : "dropdown-menu-right"))));
add(download);
- delBtn = new ConfirmableAjaxBorder("delete", getString("80"),
getString("832"), chatForm) {
+ delBtn = new AjaxButton("delete", chatForm) {
private static final long serialVersionUID = 1L;
@Override
@@ -210,6 +211,7 @@ public class ChatToolbar extends Panel implements
IWysiwygToolbar {
});
}
};
+ delBtn.add(newOkCancelDangerConfirm(this, getString("832")));
toolbar.add(delBtn.setVisible(hasAdminLevel(getRights())).setOutputMarkupId(true)
.setOutputMarkupPlaceholderTag(true));
toolbar.add(save.setVisible(hasAdminLevel(getRights())).setOutputMarkupId(true)
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
index 17425eb..d181996 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
@@ -82,7 +82,6 @@ import org.apache.wicket.model.util.ListModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import com.googlecode.wicket.jquery.core.JQueryBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
public class MessagesContactsPanel extends UserBasePanel {
private static final long serialVersionUID = 1L;
@@ -171,8 +170,8 @@ public class MessagesContactsPanel extends UserBasePanel {
private static final long serialVersionUID = 1L;
@Override
- protected void onSubmit(AjaxRequestTarget target,
DialogButton btn) {
- super.onSubmit(target, btn);
+ protected void onSubmit(AjaxRequestTarget target) {
+ super.onSubmit(target);
folderDao.addPrivateMessageFolder(getModelObject(), getUserId());
foldersModel.setObject(folderDao.get(0,
Integer.MAX_VALUE));
updateMoveModel();
@@ -210,7 +209,7 @@ public class MessagesContactsPanel extends UserBasePanel {
@Override
protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
+ addFolder.show(target);
}
}).add(new JQueryBehavior(".email.newdir", "button")));
add(folders.add(new ListView<>("folder", foldersModel) {
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 5b6e062..d0fee77 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
@@ -30,8 +30,6 @@ import org.apache.openmeetings.web.common.tree.FileTreePanel;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.spring.injection.annot.SpringBean;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-
public class RecordingsPanel extends UserBasePanel {
private static final long serialVersionUID = 1L;
private final VideoPlayer video = new VideoPlayer("video");
@@ -50,8 +48,9 @@ public class RecordingsPanel extends UserBasePanel {
private static final long serialVersionUID = 1L;
@Override
- protected void onSubmit(AjaxRequestTarget target,
DialogButton btn) {
+ protected void onSubmit(AjaxRequestTarget target) {
fileTree.createFolder(target, getModelObject());
+ super.onSubmit(target);
}
};
add(fileTree = new FileTreePanel("tree", null, addFolder, null)
{
diff --git a/openmeetings-web/src/main/webapp/css/raw-general.css
b/openmeetings-web/src/main/webapp/css/raw-general.css
index 297c5fb..614b898 100644
--- a/openmeetings-web/src/main/webapp/css/raw-general.css
+++ b/openmeetings-web/src/main/webapp/css/raw-general.css
@@ -779,3 +779,6 @@ select.messages.selector {
right: 0;
bottom: 0;
}
+.popover.confirmation.show {
+ z-index: 3000; /* FIXME TODO move this to variables */
+}