Skip to content

Commit 3fe2f2f

Browse files
committed
sort files in explorer view
1 parent 7175173 commit 3fe2f2f

3 files changed

Lines changed: 23 additions & 3 deletions

File tree

src/explorer/dir.hbs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
2323
.size {
2424
padding: 0 8px;
25+
text-align: right;
26+
display: block;
27+
white-space: pre;
2528
}
2629
2730
i.icon.directory {
@@ -310,7 +313,7 @@
310313
<td><i class="icon {{this.0}} blank"></i></td>
311314
<td><code>({{this.1}})</code></td>
312315
<td>{{this.2}}</td>
313-
<td><code class="size">{{this.3}}B</code></td>
316+
<td><code class="size">{{this.3}}</code></td>
314317
<td><a href="/{{this.4}}">{{this.5}}</a></td>
315318
</tr>
316319
{{/each}}

src/explorer/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ pub fn render_directory_explorer(
3737
file_path: &Path,
3838
) -> anyhow::Result<String> {
3939
let dir_path = PathBuf::from(file_path);
40-
let dir = self::fs::read_dir(&dir_path)?;
40+
let dir = fs::read_dir(&dir_path)?;
4141
let mut files = Vec::<(String, String, String, String, String, String)>::new();
4242
let mut folders = Vec::<(String, String, String, String)>::new();
4343

@@ -105,6 +105,9 @@ pub fn render_directory_explorer(
105105
}
106106
}
107107

108+
folders.sort_by(|a, b| a.3.to_lowercase().cmp(&b.3.to_lowercase()));
109+
files.sort_by(|a, b| a.5.to_lowercase().cmp(&b.5.to_lowercase()));
110+
108111
let handlebars = Handlebars::new();
109112
let Ok(output) = handlebars.render_template(
110113
DIR_PAGE,

src/explorer/unix.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,19 @@ pub fn get_meta_mode(meta: &Metadata) -> String {
99
}
1010

1111
pub fn get_meta_size(meta: &Metadata) -> String {
12-
format!("{}", meta.size())
12+
let size = meta.size();
13+
if size >= 1000 {
14+
return format!("{} kb", meta.size() / 1000);
15+
}
16+
if size >= (1000 * 1000) {
17+
return format!("{} mb", meta.size() / (1000 * 1000));
18+
}
19+
if size >= (1000 * 1000 * 1000) {
20+
return format!("{} gb", meta.size() / (1000 * 1000 * 1000));
21+
}
22+
if size >= (1000 * 1000 * 1000 * 1000) {
23+
return format!("{} tb", meta.size() / (1000 * 1000 * 1000 * 1000));
24+
}
25+
26+
format!("{} b ", size)
1327
}

0 commit comments

Comments
 (0)