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 <solomax...@gmail.com> 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;