Skip to content

Commit

Permalink
File System Display and Many Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Wauzmons committed Feb 12, 2021
1 parent 6e22875 commit 6488242
Show file tree
Hide file tree
Showing 7 changed files with 251 additions and 168 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>eu.wauz</groupId>
<artifactId>WazeraCloud</artifactId>
<version>0.1-SNAPSHOT</version>
<version>0.1</version>
<packaging>war</packaging>


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,10 @@ public void renameDocumentNode() {
inputName = "";
}

public List<FileSystem> getFileSystems() {
return FileSystem.findAll();
}

public boolean showDashboard() {
return selectedNode == null || selectedNode.getType().equals("directoryNode") || selectedNode.getType().equals("rootNode");
}
Expand Down
74 changes: 74 additions & 0 deletions src/main/java/eu/wauz/wazera/controller/docs/FileSystem.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package eu.wauz.wazera.controller.docs;

import java.io.IOException;
import java.nio.file.FileStore;
import java.nio.file.FileSystems;
import java.util.ArrayList;
import java.util.List;

public class FileSystem {

public static List<FileSystem> findAll() {
List<FileSystem> fileSystems = new ArrayList<>();
for(FileStore store : FileSystems.getDefault().getFileStores()) {
try {
if(store.getTotalSpace() > Math.pow(1028, 3) * 16) {
fileSystems.add(new FileSystem(store));
}
}
catch (IOException e) {
e.printStackTrace();
}
}
return fileSystems;
}

private String name = "Unknown";

private String type = "Unknown";

private String free = "Unknown";

private String total = "Unknown";

private int usage = 0;

private FileSystem(FileStore store) throws IOException {
name = store.name();
type = store.type();
long freeSpace = store.getUnallocatedSpace();
long totalSpace = store.getTotalSpace();
free = getByteUnit(freeSpace);
total = getByteUnit(totalSpace);
usage = (int) ((float) (totalSpace - freeSpace) / (float) totalSpace * 100.0);
}

private String getByteUnit(long bytes) {
if (bytes < 1024) {
return bytes + " B";
}
int exp = (int) (Math.log(bytes) / Math.log(1024));
return String.format("%.0f %sB", bytes / Math.pow(1024, exp), ("KMGTPE").charAt(exp - 1));
}

public String getName() {
return name;
}

public String getType() {
return type;
}

public String getFree() {
return free;
}

public String getTotal() {
return total;
}

public int getUsage() {
return usage;
}

}
54 changes: 16 additions & 38 deletions src/main/java/eu/wauz/wazera/service/DocumentsDataService.java
Original file line number Diff line number Diff line change
Expand Up @@ -288,50 +288,28 @@ public DocumentData saveDocument(DocumentData documentData, Integer index) throw
private void sortDocuments(Document document, Integer index) throws Exception {
List<Folder> allFoldersInFolder = folderRepository.findByFolderIdOrderBySortOrder(document.getFolderId());
List<Document> sortDocs = documentRepository.findByFolderIdOrderBySortOrder(document.getFolderId());
if(sortDocs.isEmpty()) {
return;
}
Integer documentId = document.getId();
Integer oldIndex = (document.getSortOrder() == null ? 0 : document.getSortOrder()) + allFoldersInFolder.size();

sortDocs = sortDocuments(sortDocs);

for(Document doc : sortDocs) {
if(doc.getId().equals(documentId)) {
doc.setSortOrder(index);
}
else {
doc.setSortOrder(doc.getSortOrder() + allFoldersInFolder.size());

Document foundDocument = null;
for(Document sortDoc : sortDocs) {
if(sortDoc.getId().equals(document.getId())) {
foundDocument = sortDoc;
break;
}
}

for(Document doc : sortDocs) {
if(doc.getId().equals(documentId)) {
continue;
}
else if(index < oldIndex && doc.getSortOrder() >= index) {
doc.setSortOrder(doc.getSortOrder() + 1);
}
else if(index > oldIndex && doc.getSortOrder() <= index) {
doc.setSortOrder(doc.getSortOrder() - 1);
}
if(foundDocument == null) {
return;
}
sortDocs.remove(foundDocument);
sortDocs.add(Math.max(0, Math.min(sortDocs.size(), index - allFoldersInFolder.size())), foundDocument);

int currentId = 1;
for(Document sortDoc : sortDocs) {
sortDoc.setSortOrder(currentId);
currentId++;
}
sortDocs = sortDocuments(sortDocs);
documentRepository.saveAll(sortDocs);
}

private List<Document> sortDocuments(List<Document> sortDocs) throws Exception {
for(Document doc : sortDocs)
if(doc.getSortOrder() == null)
doc.setSortOrder(0);

sortDocs.sort(Comparator.comparingInt(Document::getSortOrder));
for(int i = 0; i < sortDocs.size(); i++)
sortDocs.get(i).setSortOrder(i);

return sortDocs;
}

public void deleteDocument(Integer documentId) throws Exception {
if(documentId == null) {
return;
Expand Down
58 changes: 14 additions & 44 deletions src/main/java/eu/wauz/wazera/service/FoldersDataService.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package eu.wauz.wazera.service;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

import javax.annotation.PostConstruct;

Expand Down Expand Up @@ -74,56 +72,28 @@ public FolderData saveFolder(FolderData folderData, Integer index) throws Except
}

private void sortFolders(Folder folder, Integer index) throws Exception {
List<Folder> allFoldersInFolder = folderRepository.findByFolderIdOrderBySortOrder(folder.getFolderId());
if(allFoldersInFolder.isEmpty()) {
return;
}
Integer folderId = folder.getId();

List<Folder> sortFolders = allFoldersInFolder.stream()
.filter(sortFolder -> folderId == null && sortFolder.getId() != null || !folderId.equals(sortFolder.getId()))
.collect(Collectors.toList());
index = index > sortFolders.size() ? sortFolders.size() : index;
sortFolders.add(index, folder);

sortFolders = sortFolders(sortFolders);

Integer oldIndex = folder.getSortOrder();
List<Folder> sortFolders = folderRepository.findByFolderIdOrderBySortOrder(folder.getFolderId());

Folder foundFolder = null;
for(Folder sortFolder : sortFolders) {
if(sortFolder.getId().equals(folderId)) {
sortFolder.setSortOrder(index);
}
else if(index < oldIndex && sortFolder.getSortOrder() >= index) {
sortFolder.setSortOrder(sortFolder.getSortOrder() + 1);
}
else if(index > oldIndex && sortFolder.getSortOrder() <= index) {
sortFolder.setSortOrder(sortFolder.getSortOrder() - 1);
if(sortFolder.getId().equals(folder.getId())) {
foundFolder = sortFolder;
break;
}
}

sortFolders = sortFolders(sortFolders);

if(foundFolder == null) {
return;
}
sortFolders.remove(foundFolder);
sortFolders.add(Math.max(0, Math.min(sortFolders.size(), index)), foundFolder);

int currentId = 1;
for(Folder sortFolder : sortFolders) {
if(sortFolder.getId().equals(folderId)) {
folder.setSortOrder(sortFolder.getSortOrder());
}
sortFolder.setSortOrder(currentId);
currentId++;
}
folderRepository.saveAll(sortFolders);
}

private List<Folder> sortFolders(List<Folder> sortFolders) throws Exception {
for(Folder folder : sortFolders) {
if(folder.getSortOrder() == null) {
folder.setSortOrder(0);
}
}
sortFolders.sort(Comparator.comparingInt(Folder::getSortOrder));
for(int i = 0; i < sortFolders.size(); i++) {
sortFolders.get(i).setSortOrder(i);
}
return sortFolders;
}

private void saveFolderUserData(FolderData folderData, Integer userId) {
FolderUserData folderUserDataFromRepo = folderUserDataRepository.findByFolderIdAndUserId(folderData.getId(), userId);
Expand Down
Loading

0 comments on commit 6488242

Please sign in to comment.