Skip to content

Commit 2963e3d

Browse files
committed
(filemanager) restructured inputs
1 parent 11b531e commit 2963e3d

File tree

8 files changed

+72
-33
lines changed

8 files changed

+72
-33
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<filemanager [items]="items"></filemanager>
1+
<filemanager [files]="files"></filemanager>
Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Component } from "@angular/core";
2-
import { Folder } from "../../../../../schoolsquirrel/filemanager/src/lib/Folder";
32
import { File } from "../../../../../schoolsquirrel/filemanager/src/lib/File";
43

54
@Component({
@@ -8,30 +7,25 @@ import { File } from "../../../../../schoolsquirrel/filemanager/src/lib/File";
87
styleUrls: ["./file-manager-demo.component.scss"],
98
})
109
export class FileManagerDemoComponent {
11-
public items: (File | Folder)[] = [
10+
public files: File[] = [
1211
{
13-
name: "CVs",
14-
files: [],
12+
path: "CVs",
1513
isFolder: true,
1614
},
1715
{
18-
name: "Assignments",
19-
files: [],
20-
isFolder: true,
16+
path: "Pictures/Holidays/Winter/cool.png",
2117
},
2218
{
23-
name: "Pictures",
24-
files: [],
25-
isFolder: true,
19+
path: "Spreadsheets/Calculations/Prices.xlsx",
2620
},
2721
{
28-
name: "README.docx",
22+
path: "README.docx",
2923
},
3024
{
31-
name: "Infos.pptx",
25+
path: "Infos.pptx",
3226
},
3327
{
34-
name: "Logo.psd",
28+
path: "Logo.psd",
3529
},
3630
];
3731
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { User } from "./User";
22

33
export class File {
4-
name: string;
5-
4+
path: string;
5+
isFolder?: boolean;
66
created?: Date;
77
modified?: Date;
88
createdBy?: User;
99
modifiedBy?: User;
10+
_name?: string;
1011
}

projects/schoolsquirrel/filemanager/src/lib/Folder.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

projects/schoolsquirrel/filemanager/src/lib/file-extension.pipe.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ import { Pipe, PipeTransform } from "@angular/core";
66

77
export class FileExtensionPipe implements PipeTransform {
88
public transform(value: string): string {
9-
return value.split(".")?.pop() || "";
9+
return value?.split(".")?.pop() || "";
1010
}
1111
}
Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
1-
<table class="table table-striped table-hover" *ngIf="items && items.length">
1+
<table class="table table-hover" *ngIf="currentFiles && currentFiles.length">
22
<thead>
33
<tr>
4-
<th></th>
4+
<th class="sm"></th>
5+
<th class="sm"></th>
56
<th>Name</th>
67
<th colspan="2">Modified</th>
78
</tr>
89
</thead>
910
<tbody>
10-
<tr *ngFor="let item of items" class="pointer">
11-
<td></td>
11+
<tr *ngFor="let file of currentFiles" class="pointer">
1212
<td>
13-
<div [class]="'d-inline-block fi fi-round-md fi-' + (item.name | fileExtension)" *ngIf="!item.isFolder">
14-
<div class="fi-content">{{item.name | fileExtension}}</div>
13+
<div class="custom-control custom-checkbox autohide">
14+
<input type="checkbox" class="custom-control-input" [id]="file.path">
15+
<label class="custom-control-label pointer" [for]="file.path"></label>
1516
</div>
16-
<span>{{item.name}}</span>
1717
</td>
18-
<td>{{item.modified | date}}</td>
19-
<td>{{item.modifiedBy?.name}}</td>
18+
<td>
19+
<div [class]="'d-inline-block fi fi-size-xs fi-round-md fi-' + (file._name | fileExtension)" *ngIf="!file.isFolder">
20+
<div class="fi-content">{{file._name | fileExtension}}</div>
21+
</div>
22+
<i class="folder-icon fas fa-folder fa-2x" *ngIf="file.isFolder"></i>
23+
</td>
24+
<td>
25+
<span>{{file._name}}</span>
26+
</td>
27+
<td>{{file.modified | date}}</td>
28+
<td>{{file.modifiedBy?.name}}</td>
2029
</tr>
2130
</tbody>
2231
</table>
2332

24-
<span *ngIf="!items || items.length == 0">No files or folders found!</span>
33+
<span *ngIf="!currentFiles || currentFiles.length == 0">No files or folders found!</span>

projects/schoolsquirrel/filemanager/src/lib/filemanager.component.scss

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,24 @@
22

33
.pointer {
44
cursor: pointer;
5+
.autohide {
6+
display: none;
7+
}
8+
&:hover {
9+
.autohide {
10+
display: unset;
11+
}
12+
}
13+
}
14+
15+
.folder-icon {
16+
color: #FFDA68;
17+
}
18+
19+
table {
20+
tr {
21+
th.sm, td.sm {
22+
width: 4rem;
23+
}
24+
}
525
}

projects/schoolsquirrel/filemanager/src/lib/filemanager.component.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
Component, Input,
33
} from "@angular/core";
44
import { File } from "./File";
5-
import { Folder } from "./Folder";
65

76
@Component({
87
selector: "filemanager",
@@ -13,5 +12,25 @@ import { Folder } from "./Folder";
1312
styleUrls: ["./filemanager.component.scss"],
1413
})
1514
export class FileManagerComponent {
16-
@Input() public items: (File | Folder)[];
15+
@Input() public files: File[];
16+
public currentFiles: File[] = [];
17+
public currentPath: string[] = [];
18+
19+
public ngOnInit(): void {
20+
for (const file of this.files) {
21+
if (this.currentPath.length > 0) {
22+
//
23+
} else {
24+
const parts = file.path.split("/");
25+
const topLevelName = parts.shift();
26+
if (this.currentFiles.findIndex((f) => f._name == topLevelName) === -1) {
27+
this.currentFiles.push({
28+
_name: topLevelName,
29+
path: file.path,
30+
isFolder: file.isFolder || parts.length > 0,
31+
});
32+
}
33+
}
34+
}
35+
}
1736
}

0 commit comments

Comments
 (0)