Add antenna and bio-searchability support
This commit is contained in:
parent
7e125b276f
commit
2fef21664b
35 changed files with 775 additions and 6 deletions
74
app/views/antennas/_antenna.html.haml
Normal file
74
app/views/antennas/_antenna.html.haml
Normal file
|
@ -0,0 +1,74 @@
|
|||
.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.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')
|
||||
- else
|
||||
= t('antennas.index.expires_in', distance: distance_of_time_in_words_to_now(antenna.expires_at))
|
||||
|
||||
.listname
|
||||
= antenna.list.title
|
||||
|
||||
.filters-list__item__permissions
|
||||
%ul.permissions-list
|
||||
- unless antenna.antenna_domains.empty?
|
||||
%li.permissions-list__item
|
||||
.permissions-list__item__icon
|
||||
= fa_icon('sitemap')
|
||||
.permissions-list__item__text
|
||||
.permissions-list__item__text__title
|
||||
= t('antennas.index.domains', count: antenna.antenna_domains.size)
|
||||
.permissions-list__item__text__type
|
||||
- domains = antenna.antenna_domains.map { |domain| domain.name }
|
||||
- domains = domains.take(5) + ['…'] if domains.size > 5 # TODO
|
||||
= domains.join(', ')
|
||||
- unless antenna.antenna_accounts.empty?
|
||||
%li.permissions-list__item
|
||||
.permissions-list__item__icon
|
||||
= fa_icon('users')
|
||||
.permissions-list__item__text
|
||||
.permissions-list__item__text__title
|
||||
= t('antennas.index.accounts', count: antenna.antenna_accounts.size)
|
||||
.permissions-list__item__text__type
|
||||
- accounts = antenna.antenna_accounts.map { |account| account.account.domain ? "@#{account.account.username}@#{account.account.domain}" : "@#{account.account.username}" }
|
||||
- accounts = accounts.take(5) + ['…'] if accounts.size > 5 # TODO
|
||||
= accounts.join(', ')
|
||||
- unless antenna.keywords.nil? || antenna.keywords.empty?
|
||||
%li.permissions-list__item
|
||||
.permissions-list__item__icon
|
||||
= fa_icon('paragraph')
|
||||
.permissions-list__item__text
|
||||
.permissions-list__item__text__title
|
||||
= t('antennas.index.keywords', count: antenna.keywords.size)
|
||||
.permissions-list__item__text__type
|
||||
- keywords = antenna.keywords
|
||||
- keywords = keywords.take(5) + ['…'] if keywords.size > 5 # TODO
|
||||
= keywords.join(', ')
|
||||
- unless antenna.antenna_tags.empty?
|
||||
%li.permissions-list__item
|
||||
.permissions-list__item__icon
|
||||
= fa_icon('hashtag')
|
||||
.permissions-list__item__text
|
||||
.permissions-list__item__text__title
|
||||
= t('antennas.index.tags', count: antenna.antenna_tags.size)
|
||||
.permissions-list__item__text__type
|
||||
- tags = antenna.antenna_tags.map { |tag| tag.tag.name }
|
||||
- tags = keywords.take(5) + ['…'] if tags.size > 5 # TODO
|
||||
= tags.join(', ')
|
||||
|
||||
.announcements-list__item__action-bar
|
||||
.announcements-list__item__meta
|
||||
- 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)
|
||||
= table_link_to 'times', t('antennas.index.delete'), antenna_path(antenna), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
|
51
app/views/antennas/_antenna_fields.html.haml
Normal file
51
app/views/antennas/_antenna_fields.html.haml
Normal file
|
@ -0,0 +1,51 @@
|
|||
%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
|
||||
.fields-row__column.fields-row__column-6.fields-group
|
||||
= f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: lambda { |i| I18n.t("invites.expires_in.#{i}") }, include_blank: I18n.t('invites.expires_in_prompt')
|
||||
|
||||
.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 }, 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, label: t('antennas.edit.available'), hint: false
|
||||
|
||||
%hr.spacer/
|
||||
%p.hint= t 'antennas.edit.hint'
|
||||
%hr.spacer/
|
||||
|
||||
%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 }, 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 }, label: t('antennas.edit.exclude_domains_raw')
|
||||
|
||||
%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 }, 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 }, label: t('antennas.edit.exclude_accounts_raw')
|
||||
|
||||
%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 }, 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 }, label: t('antennas.edit.exclude_tags_raw')
|
||||
|
||||
%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 }, 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 }, label: t('antennas.edit.exclude_keywords_raw')
|
8
app/views/antennas/edit.html.haml
Normal file
8
app/views/antennas/edit.html.haml
Normal file
|
@ -0,0 +1,8 @@
|
|||
- content_for :page_title do
|
||||
= t('antennas.edit.title')
|
||||
|
||||
= simple_form_for @antenna, url: antenna_path(@antenna), method: :put do |f|
|
||||
= render 'antenna_fields', f: f, lists: @lists
|
||||
|
||||
.actions
|
||||
= f.button :button, t('generic.save_changes'), type: :submit
|
14
app/views/antennas/index.html.haml
Normal file
14
app/views/antennas/index.html.haml
Normal file
|
@ -0,0 +1,14 @@
|
|||
- content_for :page_title do
|
||||
= t('antennas.index.title')
|
||||
|
||||
- content_for :heading_actions do
|
||||
= link_to t('antennas.new.title'), new_antenna_path, class: 'button'
|
||||
|
||||
.flash-message.alert
|
||||
%strong= t('antennas.beta')
|
||||
|
||||
- if @antennas.empty?
|
||||
.muted-hint.center-text= t 'antennas.index.empty'
|
||||
- else
|
||||
.applications-list
|
||||
= render partial: 'antenna', collection: @antennas
|
8
app/views/antennas/new.html.haml
Normal file
8
app/views/antennas/new.html.haml
Normal file
|
@ -0,0 +1,8 @@
|
|||
- content_for :page_title do
|
||||
= t('antennas.new.title')
|
||||
|
||||
= simple_form_for @antenna, url: antennas_path do |f|
|
||||
= render 'antenna_fields', f: f, lists: @lists
|
||||
|
||||
.actions
|
||||
= f.button :button, t('antennas.new.save'), type: :submit
|
Loading…
Add table
Add a link
Reference in a new issue