summaryrefslogtreecommitdiff
path: root/public/assets/js/lib/views
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/lib/views')
-rw-r--r--public/assets/js/lib/views/stream/hootstream.js41
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);