diff options
Diffstat (limited to 'public/assets/js/lib/views/stream/hootstream.js')
| -rw-r--r-- | public/assets/js/lib/views/stream/hootstream.js | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/public/assets/js/lib/views/stream/hootstream.js b/public/assets/js/lib/views/stream/hootstream.js index 5718642..a7a15d2 100644 --- a/public/assets/js/lib/views/stream/hootstream.js +++ b/public/assets/js/lib/views/stream/hootstream.js @@ -263,6 +263,7 @@ var HootStream = View.extend({ // console.log(filteredImages); // console.log(thread); + const sortedFiles = this.sortFiles(files, thread.settings?.sort); return [ "<div class='divider dark'></div>", @@ -287,8 +288,7 @@ var HootStream = View.extend({ : filteredImages.slice(0, 6) ), this.renderFiles( - thread, - isViewingThread || postedToday ? files : files.slice(0, 10) + isViewingThread || postedToday ? sortedFiles : sortedFiles.slice(0, 10) ), ...this.renderHoots({ hoots: comments.slice(0, 1).map( @@ -340,46 +340,48 @@ var HootStream = View.extend({ return $table; }, - renderFiles: function (thread, files) { + sortFiles: function (files, sort) { if (!files.length) { - return null; + return []; } - const $table = $("<div class='fileList'>"); - let sortedFiles; - switch (thread.settings?.sort) { + switch (sort) { case "name_asc": - sortedFiles = files + return files .map((file) => [file.filename.toLowerCase(), file]) .sort((a, b) => a[0].localeCompare(b[0])) .map(([, file]) => file); break; case "name_desc": - sortedFiles = files + return 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(); + return [...files].reverse(); break; default: case "date_desc": - sortedFiles = files; + return files; break; case "size_asc": - sortedFiles = files + return files .map((file) => [file.size, file]) .sort((a, b) => a[0] - b[0]) .map(([, file]) => file); break; case "size_desc": - sortedFiles = files + return files .map((file) => [file.size, file]) .sort((a, b) => b[0] - a[0]) .map(([, file]) => file); break; } - for (const file of sortedFiles) { + }, + + renderFiles: function (files) { + const $table = $("<div class='fileList'>"); + for (const file of files) { const $el = this.renderFile(this.fileTemplate, file); $table.append($el); } |
