diff --git a/app/controllers/dmails_controller.rb b/app/controllers/dmails_controller.rb index c06f5b651..be3141019 100644 --- a/app/controllers/dmails_controller.rb +++ b/app/controllers/dmails_controller.rb @@ -41,6 +41,12 @@ class DmailsController < ApplicationController redirect_to dmails_path, :notice => "Message destroyed" end + def mark_all_as_read + Dmail.visible.unread.each do |x| + x.update_column(:is_read, true) + end + end + private def check_privilege(dmail) if !dmail.visible_to?(CurrentUser.user) diff --git a/app/views/dmails/_secondary_links.html.erb b/app/views/dmails/_secondary_links.html.erb index 3534b0552..559277969 100644 --- a/app/views/dmails/_secondary_links.html.erb +++ b/app/views/dmails/_secondary_links.html.erb @@ -4,5 +4,6 @@
  • <%= link_to "Sent", dmails_path(:search => {:owner_id => CurrentUser.id, :from_id => CurrentUser.id}, :folder => "sent") %>
  • <%= link_to "New", new_dmail_path %>
  • <%= link_to "Search", search_dmails_path %>
  • +
  • <%= link_to "Mark all as read", {:controller => "dmails", :action => "mark_all_as_read"}, :method => :post, :remote => true %>
  • <% end %> diff --git a/app/views/dmails/mark_all_as_read.js.erb b/app/views/dmails/mark_all_as_read.js.erb new file mode 100644 index 000000000..345366b9b --- /dev/null +++ b/app/views/dmails/mark_all_as_read.js.erb @@ -0,0 +1 @@ +location.reload(); diff --git a/config/routes.rb b/config/routes.rb index 8e83931bd..88f44f2b2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -72,6 +72,7 @@ Danbooru::Application.routes.draw do resources :dmails do collection do get :search + post :mark_all_as_read end end resource :dtext_preview, :only => [:create]