diff --git a/app/controllers/admin/system_emails_controller.rb b/app/controllers/admin/system_emails_controller.rb new file mode 100644 index 000000000..626680f43 --- /dev/null +++ b/app/controllers/admin/system_emails_controller.rb @@ -0,0 +1,37 @@ +class Admin::SystemEmailsController < Admin::BaseController + + before_action :load_system_email, only: [:view, :preview_pending] + + def index + @system_emails = { + proposal_notification_digest: %w(view preview_pending) + } + end + + def view + case @system_email + when "proposal_notification_digest" + @notifications = Notification.where(notifiable_type: "ProposalNotification").limit(2) + @subject = t('mailers.proposal_notification_digest.title', org_name: Setting['org_name']) + end + end + + def preview_pending + case @system_email + when "proposal_notification_digest" + @previews = ProposalNotification.where(id: unsent_proposal_notifications_ids) + .page(params[:page]) + end + end + + private + + def load_system_email + @system_email = params[:system_email_id] + end + + def unsent_proposal_notifications_ids + Notification.where(notifiable_type: "ProposalNotification", emailed_at: nil) + .group(:notifiable_id).count.keys + end +end diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index e5af32cc4..ffec03232 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -79,21 +79,24 @@ <% end %> - <% newsletters_notifications_sections = %w(newsletters emails_download admin_notifications) %> - <% newsletters_menu_active = newsletters_notifications_sections.include?(controller_name) %> -
  • > + <% messages_sections = %w(newsletters emails_download admin_notifications system_emails) %> + <% messages_menu_active = messages_sections.include?(controller_name) %> +
  • > - <%= t("admin.menu.newsletters_and_notifications") %> + <%= t("admin.menu.messaging_users") %> -