diff options
Diffstat (limited to 'public/assets')
| -rw-r--r-- | public/assets/js/lib/views/stream/hootform.js | 8 | ||||
| -rw-r--r-- | public/assets/js/lib/views/stream/hootstream.js | 30 | ||||
| -rw-r--r-- | public/assets/js/lib/views/stream/index.js | 3 |
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) { |
