diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb
index 56e26fc..ae407fa 100644
--- a/app/controllers/messages_controller.rb
+++ b/app/controllers/messages_controller.rb
@@ -2,12 +2,17 @@ class MessagesController < ApplicationController
PER_PAGE = 50
# GET /ruby-dev or /q=searchterm
- def index(list_name: nil, q: nil, page: nil)
+ def index(list_name: nil, yyyymm: nil, q: nil, page: nil)
if list_name
@list = List.find_by_name list_name
- messages = Message.with_recursive(parent_and_children: [Message.where(list_id: @list, parent_id: nil).order(:id).limit(100), Message.joins('inner join parent_and_children on messages.parent_id = parent_and_children.id')])
+ @yyyymms = Message.where(list_id: @list).order('yyyymm').pluck(Arel.sql "distinct to_char(published_at, 'YYYYMM') as yyyymm")
+ @yyyymm = yyyymm || @yyyymms.last
+
+ root_query = Message.where(list_id: @list, parent_id: nil).where("to_char(published_at, 'YYYYMM') = ?", @yyyymm).order(:id)
+ messages = Message.with_recursive(parent_and_children: [root_query, Message.joins('inner join parent_and_children on messages.parent_id = parent_and_children.id')])
.joins('inner join parent_and_children on parent_and_children.id = messages.id')
+
@messages = compose_tree(messages)
elsif q
search q, page
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index 4f40b01..42cc57d 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -22,8 +22,9 @@
Mailing list archive
- <%= link_to "blade.ruby-lang.org", root_path, class: "hover:text-red-600 dark:hover:text-red-400 transition-colors" %>
+ <%= link_to @list&.name || 'blade.ruby-lang.org', @list || root_path, class: "hover:text-red-600 dark:hover:text-red-400 transition-colors" %>
+
Mailing list archive
+