summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
Diffstat (limited to 'public')
-rw-r--r--public/assets/js/lib/views/stream/hootform.js8
-rw-r--r--public/assets/js/lib/views/stream/hootstream.js30
-rw-r--r--public/assets/js/lib/views/stream/index.js3
3 files changed, 27 insertions, 14 deletions
diff --git a/public/assets/js/lib/views/stream/hootform.js b/public/assets/js/lib/views/stream/hootform.js
index 368e616..f13cc55 100644
--- a/public/assets/js/lib/views/stream/hootform.js
+++ b/public/assets/js/lib/views/stream/hootform.js
@@ -18,6 +18,14 @@ var HootForm = FormView.extend({
this.$el.hide();
},
+ toggle: function (state) {
+ if (state) {
+ this.show();
+ } else {
+ this.hide();
+ }
+ },
+
load: function (comments) {
if (!comments || (!comments.length && !this.options.required)) {
this.$el.hide();
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);
}
diff --git a/public/assets/js/lib/views/stream/index.js b/public/assets/js/lib/views/stream/index.js
index bfd042a..1504554 100644
--- a/public/assets/js/lib/views/stream/index.js
+++ b/public/assets/js/lib/views/stream/index.js
@@ -18,6 +18,9 @@ var StreamView = View.extend({
populate: function (data) {
$("body").removeClass("loading");
this.data = data;
+ const { query } = data;
+ const isHomePage = !(query.thread || query.username || query.keyword);
+ this.hootform.toggle(isHomePage);
this.hootfilters.load(data, this.target);
this.hootstream.load(data, this.hootfilters.state);
if (data.mail.count) {