diff --git a/app/models/antenna.rb b/app/models/antenna.rb index 95b0bc0af2..89b98516b1 100644 --- a/app/models/antenna.rb +++ b/app/models/antenna.rb @@ -35,7 +35,15 @@ class Antenna < ApplicationRecord scope :availables, -> { where(available: true).where(Arel.sql('any_keywords = FALSE OR any_domains = FALSE OR any_accounts = FALSE OR any_tags = FALSE')) } def enabled? - available && !expired? && !(any_keywords && any_domains && any_accounts && any_tags) + enabled_config? && !expired? + end + + def enabled_config? + available && enabled_config_raws? + end + + def enabled_config_raws? + !(any_keywords && any_domains && any_accounts && any_tags) end def expires_in diff --git a/app/views/antennas/_antenna.html.haml b/app/views/antennas/_antenna.html.haml index ad48eea804..3ba7d72377 100644 --- a/app/views/antennas/_antenna.html.haml +++ b/app/views/antennas/_antenna.html.haml @@ -1,8 +1,11 @@ -.filters-list__item{ class: [antenna.expired? && 'expired'] } +.filters-list__item{ class: [(antenna.expired? || !antenna.enabled_config?) && 'expired'] } = link_to edit_antenna_path(antenna), class: 'filters-list__item__title' do = antenna.title - - if antenna.expires? + - if !antenna.enabled_config? + .expiration{ title: t('antennas.index.disabled') } + = t('antennas.index.disabled') + - elsif antenna.expires? .expiration{ title: t('antennas.index.expires_on', date: l(antenna.expires_at)) } - if antenna.expired? = t('invites.expired') @@ -61,7 +64,10 @@ .announcements-list__item__action-bar .announcements-list__item__meta - = t('antennas.index.contexts', contexts: antenna.context.map { |context| I18n.t("antennas.contexts.#{context}") }.join(', ')) + - if antenna.enabled_config_raws? + = t('antennas.index.contexts', contexts: antenna.context.map { |context| I18n.t("antennas.contexts.#{context}") }.join(', ')) + - else + = t('antennas.errors.empty_contexts') %div = table_link_to 'pencil', t('antennas.edit.title'), edit_antenna_path(antenna) diff --git a/app/views/antennas/_antenna_fields.html.haml b/app/views/antennas/_antenna_fields.html.haml index e41ab54188..7f49139e0a 100644 --- a/app/views/antennas/_antenna_fields.html.haml +++ b/app/views/antennas/_antenna_fields.html.haml @@ -1,3 +1,6 @@ +%p= t 'antennas.edit.description' +%hr.spacer/ + .fields-row .fields-row__column.fields-row__column-6.fields-group = f.input :title, as: :string, wrapper: :with_label, hint: false @@ -6,40 +9,43 @@ .fields-row .fields-group.fields-row__column.fields-row__column-6 - = f.input :list, collection: lists, wrapper: :with_label, label_method: lambda { |list| list.title }, selected: f.object.list&.id, hint: false + = f.input :list, collection: lists, wrapper: :with_label, label_method: lambda { |list| list.title }, label: t('antennas.edit.list'), selected: f.object.list&.id, hint: false .fields-group.fields-row__column.fields-row__column-6 - = f.input :available, wrapper: :with_label, hint: false + = f.input :available, wrapper: :with_label, label: t('antennas.edit.available'), hint: false %hr.spacer/ +%p.hint= t 'antennas.edit.hint' +%hr.spacer/ -%h4= t('antennas.edit.domains') +%h4= t('antennas.contexts.domain') .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :domains_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :domains_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.domains_raw') .fields-row__column.fields-row__column-6.fields-group - = f.input :exclude_domains_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :exclude_domains_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.exclude_domains_raw') -%h4= t('antennas.edit.accounts') +%h4= t('antennas.contexts.account') +%p.hint= t 'antennas.edit.accounts_hint' .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :accounts_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :accounts_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.accounts_raw') .fields-row__column.fields-row__column-6.fields-group - = f.input :exclude_accounts_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :exclude_accounts_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.exclude_accounts_raw') -%h4= t('antennas.edit.tags') +%h4= t('antennas.contexts.tag') .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :tags_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :tags_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.tags_raw') .fields-row__column.fields-row__column-6.fields-group - = f.input :exclude_tags_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :exclude_tags_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.exclude_tags_raw') -%h4= t('antennas.edit.keywords') +%h4= t('antennas.contexts.keyword') .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keywords_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :keywords_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.keywords_raw') .fields-row__column.fields-row__column-6.fields-group - = f.input :exclude_keywords_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 } + = f.input :exclude_keywords_raw, wrapper: :with_label, as: :text, input_html: { rows: 5 }, label: t('antennas.edit.exclude_keywords_raw') diff --git a/app/views/antennas/_keyword_fields.html.haml b/app/views/antennas/_keyword_fields.html.haml deleted file mode 100644 index a0ebdb1a04..0000000000 --- a/app/views/antennas/_keyword_fields.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -%tr.nested-fields - %td= f.input :keyword, as: :string - %td - .label_input__wrapper= f.input_field :whole_word - %td - = f.hidden_field :id if f.object&.persisted? # Required so Rails doesn't put the field outside of the