about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2017-10-15 04:51:42 -0500
committerDavid Yip <yipdw@member.fsf.org>2017-10-21 14:54:36 -0500
commit2e03a10059889cb05d4fab7736447a4315f90bf5 (patch)
treec5f4a997e9ed281ed356284f2c2450fb3a46d8bf
parent4fa2f7e82d68c974ecfdb8896f15a5a3aba25828 (diff)
Spike out index and new views for keyword mutes controller.
-rw-r--r--app/controllers/settings/keyword_mutes_controller.rb23
-rw-r--r--app/views/settings/keyword_mutes/_keyword_mute.html.haml7
-rw-r--r--app/views/settings/keyword_mutes/index.html.haml13
-rw-r--r--app/views/settings/keyword_mutes/new.html.haml19
-rw-r--r--config/locales/en.yml5
5 files changed, 67 insertions, 0 deletions
diff --git a/app/controllers/settings/keyword_mutes_controller.rb b/app/controllers/settings/keyword_mutes_controller.rb
index ffe94e33a..4b3e01b9c 100644
--- a/app/controllers/settings/keyword_mutes_controller.rb
+++ b/app/controllers/settings/keyword_mutes_controller.rb
@@ -4,4 +4,27 @@ class Settings::KeywordMutesController < ApplicationController
   layout 'admin'
 
   before_action :authenticate_user!
+  before_action :set_account
+
+  def index
+    @keyword_mutes = paginated_keyword_mutes_for_account
+  end
+
+  def new
+    @keyword_mute = keyword_mutes_for_account.build
+  end
+
+  private
+
+  def set_account
+    @account = current_user.account
+  end
+
+  def keyword_mutes_for_account
+    KeywordMute.where(account: @account)
+  end
+
+  def paginated_keyword_mutes_for_account
+    keyword_mutes_for_account.order(:keyword).page params[:page]
+  end
 end
diff --git a/app/views/settings/keyword_mutes/_keyword_mute.html.haml b/app/views/settings/keyword_mutes/_keyword_mute.html.haml
new file mode 100644
index 000000000..a2698ac7b
--- /dev/null
+++ b/app/views/settings/keyword_mutes/_keyword_mute.html.haml
@@ -0,0 +1,7 @@
+%tr
+  %td
+    = keyword_mute.keyword
+  %td
+    = table_link_to 'edit', t('settings.keyword_mutes.edit'), edit_settings_keyword_mute_path(keyword_mute)
+  %td
+    = table_link_to 'times', t('settings.keyword_mutes.delete'), settings_keyword_mute_path(keyword_mute), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/settings/keyword_mutes/index.html.haml b/app/views/settings/keyword_mutes/index.html.haml
index 421fbeba2..6b212895d 100644
--- a/app/views/settings/keyword_mutes/index.html.haml
+++ b/app/views/settings/keyword_mutes/index.html.haml
@@ -1,2 +1,15 @@
 - content_for :page_title do
   = t('settings.keyword_mutes')
+
+.table-wrapper
+  %table.table
+    %thead
+      %tr
+        %th= t('settings.keyword_mutes.keyword')
+        %th
+        %th
+      %tbody
+        = render @keyword_mutes
+
+= paginate @keyword_mutes
+= link_to t('settings.keyword_mutes.add_keyword'), new_settings_keyword_mute_path, class: 'button'
diff --git a/app/views/settings/keyword_mutes/new.html.haml b/app/views/settings/keyword_mutes/new.html.haml
new file mode 100644
index 000000000..5e8268e97
--- /dev/null
+++ b/app/views/settings/keyword_mutes/new.html.haml
@@ -0,0 +1,19 @@
+- content_for :page_title do
+  = t('settings.keyword_mutes.add_keyword')
+
+= simple_form_for @keyword_mute, url: settings_keyword_mutes_path do |f|
+  = render 'shared/error_messages', object: @keyword_mute
+
+  %p.muted-hint
+    Keywords match word boundaries case-insensitively.  For example:
+    %ul
+      %li
+        <strong>alice</strong> matches <strong>alice</strong>, <strong>Alice</strong>, and <strong>Alice's</strong>
+      %li
+        <strong>bob</strong> matches <strong>bob</strong> and <strong>Bob</strong> but not <strong>bobcat</strong>
+
+  .fields-group
+    = f.input :keyword
+
+  .actions
+    = f.button :button, t('admin.keyword_mutes.add_keyword'), type: :submit
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 6b4e602bd..5b91f8320 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -215,6 +215,11 @@ en:
       contact_information:
         email: Business e-mail
         username: Contact username
+      keyword_mutes:
+        edit: Edit
+        delete: Delete
+        add_keyword: Add keyword
+        keyword: Keyword
       registrations:
         closed_message:
           desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags