1
0
Fork 0
forked from gitea/nas

Add antenna view texts

This commit is contained in:
KMY 2023-04-24 09:52:46 +09:00
parent e83f407ff1
commit afd99fed9f
6 changed files with 69 additions and 26 deletions

View file

@ -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

View file

@ -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)

View file

@ -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')

View file

@ -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')])

View file

@ -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}

View file

@ -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: アンテナはありません。