Add antenna view texts
This commit is contained in:
parent
e83f407ff1
commit
afd99fed9f
6 changed files with 69 additions and 26 deletions
|
@ -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')) }
|
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?
|
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
|
end
|
||||||
|
|
||||||
def expires_in
|
def expires_in
|
||||||
|
|
|
@ -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
|
= link_to edit_antenna_path(antenna), class: 'filters-list__item__title' do
|
||||||
= antenna.title
|
= 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)) }
|
.expiration{ title: t('antennas.index.expires_on', date: l(antenna.expires_at)) }
|
||||||
- if antenna.expired?
|
- if antenna.expired?
|
||||||
= t('invites.expired')
|
= t('invites.expired')
|
||||||
|
@ -61,7 +64,10 @@
|
||||||
|
|
||||||
.announcements-list__item__action-bar
|
.announcements-list__item__action-bar
|
||||||
.announcements-list__item__meta
|
.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
|
%div
|
||||||
= table_link_to 'pencil', t('antennas.edit.title'), edit_antenna_path(antenna)
|
= table_link_to 'pencil', t('antennas.edit.title'), edit_antenna_path(antenna)
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
%p= t 'antennas.edit.description'
|
||||||
|
%hr.spacer/
|
||||||
|
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.fields-row__column.fields-row__column-6.fields-group
|
||||||
= f.input :title, as: :string, wrapper: :with_label, hint: false
|
= f.input :title, as: :string, wrapper: :with_label, hint: false
|
||||||
|
@ -6,40 +9,43 @@
|
||||||
|
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-group.fields-row__column.fields-row__column-6
|
.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
|
.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/
|
%hr.spacer/
|
||||||
|
%p.hint= t 'antennas.edit.hint'
|
||||||
|
%hr.spacer/
|
||||||
|
|
||||||
%h4= t('antennas.edit.domains')
|
%h4= t('antennas.contexts.domain')
|
||||||
|
|
||||||
.fields-row
|
.fields-row
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.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
|
.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
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.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
|
.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
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.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
|
.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
|
||||||
.fields-row__column.fields-row__column-6.fields-group
|
.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
|
.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')
|
||||||
|
|
|
@ -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 <tr/>
|
|
||||||
= link_to_remove_association(f, class: 'table-action-link') do
|
|
||||||
= safe_join([fa_icon('times'), t('antennas.index.delete')])
|
|
|
@ -971,13 +971,28 @@ en:
|
||||||
keyword: Keywords
|
keyword: Keywords
|
||||||
tag: Tags
|
tag: Tags
|
||||||
edit:
|
edit:
|
||||||
|
accounts_hint: \@askyq or @askyq@example.com
|
||||||
|
accounts_raw: Account list
|
||||||
|
available: Available
|
||||||
|
description: アンテナは、サーバーが認識した全ての公開・ローカル公開投稿のうち、検索許可が「公開」または明示的に設定されていないもの(検索許可システムに対応していないサーバーからの投稿)、かつ購読を拒否していないすべてのアカウントからの投稿が対象です。検出された投稿は、指定したリストに追加されます。
|
||||||
|
domains_raw: Domain list
|
||||||
|
exclude_accounts_raw: Excluding account list
|
||||||
|
exclude_domains_raw: Excluding domain list
|
||||||
|
exclude_keywords_raw: Excluding keyword list
|
||||||
|
exclude_tags_raw: Excluding hashtag list
|
||||||
|
hint: 下のリストに、絞り込み条件・除外条件を入力します。条件は複数指定することができます。1行につき1つずつ入力してください。空行、コメント、重複を含めることはできません。
|
||||||
|
keywords_raw: Keyword list
|
||||||
|
list: Destination list
|
||||||
|
tags_raw: Hashtag list
|
||||||
title: Edit antenna
|
title: Edit antenna
|
||||||
errors:
|
errors:
|
||||||
deprecated_api_multiple_keywords: These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface.
|
deprecated_api_multiple_keywords: These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface.
|
||||||
|
empty_contexts: No contexts! You must set any context filters
|
||||||
invalid_context: None or invalid context supplied
|
invalid_context: None or invalid context supplied
|
||||||
index:
|
index:
|
||||||
contexts: Antennas in %{contexts}
|
contexts: Antennas in %{contexts}
|
||||||
delete: Delete
|
delete: Delete
|
||||||
|
disabled: Disabled
|
||||||
empty: You have no antennas.
|
empty: You have no antennas.
|
||||||
expires_in: Expires in %{distance}
|
expires_in: Expires in %{distance}
|
||||||
expires_on: Expires on %{date}
|
expires_on: Expires on %{date}
|
||||||
|
|
|
@ -952,13 +952,29 @@ ja:
|
||||||
domain: ドメイン
|
domain: ドメイン
|
||||||
keyword: キーワード
|
keyword: キーワード
|
||||||
tag: ハッシュタグ
|
tag: ハッシュタグ
|
||||||
|
errors:
|
||||||
|
empty_contexts: 絞り込み条件が1つも指定されていないため無効です(除外条件はカウントされません)
|
||||||
edit:
|
edit:
|
||||||
|
accounts_hint: ローカルアカウントの場合は「@info」、リモートアカウントの場合は「@info@example.com」の形式で指定します。サーバーが認識していないアカウントは保存時に自動的に削除されます。
|
||||||
|
accounts_raw: 絞り込むアカウント
|
||||||
|
available: 有効
|
||||||
|
description: アンテナは、サーバーが認識した全ての公開・ローカル公開投稿のうち、検索許可が「公開」または明示的に設定されていないもの(検索許可システムに対応していないサーバーからの投稿)、かつ購読を拒否していないすべてのアカウントからの投稿が対象です。検出された投稿は、指定したリストに追加されます。
|
||||||
|
domains_raw: 絞り込むドメイン
|
||||||
|
exclude_accounts_raw: 除外するアカウント
|
||||||
|
exclude_domains_raw: 除外するドメイン
|
||||||
|
exclude_keywords_raw: 除外するキーワード
|
||||||
|
exclude_tags_raw: 除外するハッシュタグ
|
||||||
|
hint: 下のリストに、絞り込み条件・除外条件を入力します。条件は複数指定することができます。1行につき1つずつ入力してください。空行、コメント、重複を含めることはできません。
|
||||||
|
keywords_raw: 絞り込むキーワード
|
||||||
|
list: 投稿配置先リスト
|
||||||
|
tags_raw: 絞り込むハッシュタグ
|
||||||
title: アンテナを編集
|
title: アンテナを編集
|
||||||
index:
|
index:
|
||||||
accounts:
|
accounts:
|
||||||
other: "%{count}件のアカウント"
|
other: "%{count}件のアカウント"
|
||||||
contexts: "%{contexts}のアンテナ"
|
contexts: "%{contexts}のアンテナ"
|
||||||
delete: 削除
|
delete: 削除
|
||||||
|
disabled: 無効
|
||||||
domains:
|
domains:
|
||||||
other: "%{count}件のドメイン"
|
other: "%{count}件のドメイン"
|
||||||
empty: アンテナはありません。
|
empty: アンテナはありません。
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue