From 77e4a4a015ef7d1d338f7badb68efab83f19de4d Mon Sep 17 00:00:00 2001 From: julian laplace Date: Thu, 27 Oct 2022 17:34:23 +0200 Subject: sorting files based on thread --- public/assets/js/lib/views/stream/hootstream.js | 41 ++++++++++++++++++++++--- 1 file 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 = $("
"); - 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); -- cgit v1.2.3-70-g09d2