diff options
| author | julian laplace <julescarbon@gmail.com> | 2022-10-27 17:34:23 +0200 |
|---|---|---|
| committer | julian laplace <julescarbon@gmail.com> | 2022-10-27 17:34:23 +0200 |
| commit | 77e4a4a015ef7d1d338f7badb68efab83f19de4d (patch) | |
| tree | 5ca76c75ebbf7d8cb9441ca4e3c8e3a746479c8c /public/assets | |
| parent | efd005f152b894298a0a350b159ecb8f0458dfa9 (diff) | |
sorting files based on thread
Diffstat (limited to 'public/assets')
| -rw-r--r-- | public/assets/js/lib/views/stream/hootstream.js | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/public/assets/js/lib/views/stream/hootstream.js b/public/assets/js/lib/views/stream/hootstream.js index d13ae0a..5718642 100644 --- a/public/assets/js/lib/views/stream/hootstream.js +++ b/public/assets/js/lib/views/stream/hootstream.js @@ -287,6 +287,7 @@ var HootStream = View.extend({ : filteredImages.slice(0, 6) ), this.renderFiles( + thread, isViewingThread || postedToday ? files : files.slice(0, 10) ), ...this.renderHoots({ @@ -339,15 +340,45 @@ var HootStream = View.extend({ return $table; }, - renderFiles: function (files) { + renderFiles: function (thread, files) { if (!files.length) { return null; } const $table = $("<div class='fileList'>"); - const sortedFiles = files - .map((file) => [file.filename.toLowerCase(), file]) - .sort((a, b) => a[0].localeCompare(b[0])) - .map(([, file]) => file); + let sortedFiles; + switch (thread.settings?.sort) { + case "name_asc": + sortedFiles = files + .map((file) => [file.filename.toLowerCase(), file]) + .sort((a, b) => a[0].localeCompare(b[0])) + .map(([, file]) => file); + break; + case "name_desc": + sortedFiles = files + .map((file) => [file.filename.toLowerCase(), file]) + .sort((a, b) => b[0].localeCompare(a[0])) + .map(([, file]) => file); + break; + case "date_asc": + sortedFiles = [...files].reverse(); + break; + default: + case "date_desc": + sortedFiles = files; + break; + case "size_asc": + sortedFiles = files + .map((file) => [file.size, file]) + .sort((a, b) => a[0] - b[0]) + .map(([, file]) => file); + break; + case "size_desc": + sortedFiles = files + .map((file) => [file.size, file]) + .sort((a, b) => b[0] - a[0]) + .map(([, file]) => file); + break; + } for (const file of sortedFiles) { const $el = this.renderFile(this.fileTemplate, file); $table.append($el); |
