This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new bfee43e2e [OPENMEETINGS-2715] Trash icon is disable if only
non-deletable items are selected
bfee43e2e is described below
commit bfee43e2eef1584139e4c4a1d76c16fdf7b33c57
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Mon Dec 12 11:43:50 2022 +0700
[OPENMEETINGS-2715] Trash icon is disable if only non-deletable items are
selected
---
.../web/common/tree/FileTreePanel.java | 25 +++++++++++++++-------
openmeetings-web/src/main/webapp/css/raw-tree.css | 1 +
2 files changed, 18 insertions(+), 8 deletions(-)
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 89cc385ef..54806e18e 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
@@ -37,7 +37,7 @@ import java.nio.file.Path;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
+import java.util.Objects;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
@@ -347,14 +347,14 @@ public abstract class FileTreePanel extends Panel {
}
private void deleteAll(AjaxRequestTarget target) {
- for (Entry<String, BaseFileItem> e : selected.entrySet()) {
- BaseFileItem f = e.getValue();
+ for (BaseFileItem f : selected.values()) {
if (!f.isReadOnly()) {
delete(f, target);
}
}
- updateSelected(target);
+ updateSelected(target); // update nodes
selected.clear();
+ updateSelected(target); // update trash icon
}
void delete(BaseFileItem f, IPartialPageRequestHandler handler) {
@@ -377,9 +377,9 @@ public abstract class FileTreePanel extends Panel {
createDir.add(AttributeModifier.replace(ATTR_CLASS,
CREATE_DIR_CLASS + (readOnly ? DISABLED_CLASS : "")));
upload.setEnabled(!readOnly);
upload.add(AttributeModifier.replace(ATTR_CLASS,
UPLOAD_CLASS + (readOnly ? DISABLED_CLASS : "")));
- trash.add(AttributeModifier.replace(ATTR_CLASS,
TRASH_CLASS + (readOnly ? DISABLED_CLASS : "")));
+ updateTrash(handler);
if (handler != null) {
- handler.add(createDir, upload, trash);
+ handler.add(createDir, upload);
update(handler);
}
}
@@ -431,8 +431,17 @@ public abstract class FileTreePanel extends Panel {
}
private void updateSelected(AjaxRequestTarget target) {
- for (Entry<String, BaseFileItem> e : selected.entrySet()) {
- updateNode(target, e.getValue());
+ for (BaseFileItem f : selected.values()) {
+ updateNode(target, f);
+ }
+ updateTrash(target);
+ }
+
+ private void updateTrash(IPartialPageRequestHandler handler) {
+ final boolean hasDeletable = selected.values().stream().map(f
-> f.getId()).anyMatch(Objects::nonNull);
+ trash.add(AttributeModifier.replace(ATTR_CLASS, TRASH_CLASS +
(hasDeletable && !readOnly ? "" : DISABLED_CLASS)));
+ if (handler != null) {
+ handler.add(trash);
}
}
diff --git a/openmeetings-web/src/main/webapp/css/raw-tree.css
b/openmeetings-web/src/main/webapp/css/raw-tree.css
index b324d59d1..611e6ea00 100644
--- a/openmeetings-web/src/main/webapp/css/raw-tree.css
+++ b/openmeetings-web/src/main/webapp/css/raw-tree.css
@@ -183,6 +183,7 @@
}
.file.item .name {
padding-top: 10px;
+ padding-inline-start: 5px;
}
.tree-node .file.item .errors {
position: absolute;