This is an automated email from the ASF dual-hosted git repository. sebawagner pushed a commit to branch feature/OPENMEETINGS-2273-room-file-tree-details-area in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit 80f8b0aa8245bf5822cbdca58405579ee513ab13 Author: Sebastian Wagner <[email protected]> AuthorDate: Sat Apr 18 11:12:04 2020 +1200 Fixes: - Adding heading to the size of public and personal drive. There is enough space for it. - Adjust height to 70px - Toggle download button enable disable instead of visible true/false - Fix so that you can actually download original. getFile(null) defaults to first slide and gives you a PNG. Not the original --- .../openmeetings/db/entity/file/BaseFileItem.java | 27 +++++++++++++++++++++- .../web/common/tree/FileTreePanel.html | 11 ++++++--- .../web/common/tree/FileTreePanel.java | 7 +++--- openmeetings-web/src/main/webapp/css/raw-tree.css | 6 +++++ .../src/main/webapp/css/raw-variables.css | 2 +- 5 files changed, 44 insertions(+), 9 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 c8fa9cf..0d07d67 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 @@ -54,6 +54,7 @@ import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import org.apache.commons.io.FilenameUtils; import org.apache.openmeetings.db.bind.adapter.FileTypeAdapter; import org.apache.openmeetings.db.bind.adapter.IntAdapter; import org.apache.openmeetings.db.bind.adapter.LongAdapter; @@ -296,7 +297,31 @@ public abstract class BaseFileItem extends HistoricalEntity { public void setExternalType(String externalType) { this.externalType = externalType; } - + + /** + * Generates a link to download. As opposed to display it on the Whiteboard. + * + * @param ext + * @return + */ + public final File getDownloadFile(String ext) { + // passing in null for PRESENTATION won't return the original + if (ext == null && getType() != null && getType().equals(Type.PRESENTATION)) { + // could by either a Doc/XLS/PPT or just a PDF + return getFile(FilenameUtils.getExtension(getName())); + } + // for other file types passing in null should return original + return getFile(ext); + } + + /** + * Returns a file. But mostly to get a link for the Whiteboard. + * + * In case of a Presentation it will try to assume the first slide if passing in null. + * + * @param ext + * @return + */ public final File getFile(String ext) { File f = null; if (!isDeleted() && getHash() != null) { diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html index 6d787f0..5ece9e5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html @@ -52,11 +52,16 @@ <div wicket:id="tree"></div> </div> <div class="footer"> - <span wicket:id="download" wicket:message="title:867"></span> + <span class="download" wicket:id="download" wicket:message="title:867"></span> + <div class="sizes"> + <span class="size font-weight-bold"><wicket:message key="923"/></span> + <span class="font-weight-bold">/</span> + <span class="font-weight-bold"><wicket:message key="924"/></span> + </div> <div wicket:id="sizes" class="sizes"> <span class="size" wicket:message="title:923" wicket:id="homeSize"></span> - <span class="size">/</span> - <span class="size" wicket:message="title:924" wicket:id="publicSize"></span> + <span>/</span> + <span wicket:message="title:924" wicket:id="publicSize"></span> </div> </div> <div wicket:id="errors"></div> 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 1082227..943a7e9 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 @@ -158,8 +158,7 @@ public abstract class FileTreePanel extends Panel { public void onDownlownClick(AjaxRequestTarget target, String ext) { BaseFileItem fi = getLastSelected(); - File f = ext == null && (Type.IMAGE == fi.getType() || Type.PRESENTATION == fi.getType()) - ? fi.getOriginal() : fi.getFile(ext); + File f = fi.getDownloadFile(ext); if (f != null && f.exists()) { dwnldFile = f; downloader.initiate(target); @@ -192,7 +191,7 @@ public abstract class FileTreePanel extends Panel { final OmTreeProvider tp = new OmTreeProvider(roomId); select(tp.getRoot(), null, false, false); form.add(tree = new FileItemTree("tree", this, tp)); - form.add(download.setVisible(false).setOutputMarkupPlaceholderTag(true)); + form.add(download.setEnabled(false).setOutputMarkupPlaceholderTag(true)); add(form.add(downloader)); } @@ -467,7 +466,7 @@ public abstract class FileTreePanel extends Panel { } updateSelected(target); //all finally selected are in the update list if (target != null) { - target.add(trashBorder, download.setVisible(isDownloadable(lastSelected))); + target.add(trashBorder, download.setEnabled(isDownloadable(lastSelected))); } } diff --git a/openmeetings-web/src/main/webapp/css/raw-tree.css b/openmeetings-web/src/main/webapp/css/raw-tree.css index 6cb4f70..e263640 100644 --- a/openmeetings-web/src/main/webapp/css/raw-tree.css +++ b/openmeetings-web/src/main/webapp/css/raw-tree.css @@ -17,6 +17,12 @@ } .file-tree .footer { height: var(--tree-footer-height); + display: flex; + flex-direction: column; +} +.file-tree .footer .download { + padding-left: 5px; + padding-right: 5px; } .file-tree .footer .sizes { display: inline-block; diff --git a/openmeetings-web/src/main/webapp/css/raw-variables.css b/openmeetings-web/src/main/webapp/css/raw-variables.css index 55b38dc..7f8c478 100644 --- a/openmeetings-web/src/main/webapp/css/raw-variables.css +++ b/openmeetings-web/src/main/webapp/css/raw-variables.css @@ -38,7 +38,7 @@ body.no-menu { } .file-tree { --tree-header-height: 36px; - --tree-footer-height: 80px; + --tree-footer-height: 70px; } .main.room { --header-height: 0px;
