Setup haml-lint CI with todo config (#23524)
parent
a232a1feb8
commit
75131e7bf7
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"problemMatcher": [
|
||||||
|
{
|
||||||
|
"owner": "haml-lint",
|
||||||
|
"severity": "warning",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "^(.*):(\\d+)\\s\\[W]\\s(.*):\\s(.*)$",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"code": 3,
|
||||||
|
"message": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
name: Haml Linting
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- 'dependabot/**'
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/haml-lint-problem-matcher.json'
|
||||||
|
- '.github/workflows/lint-haml.yml'
|
||||||
|
- '.haml-lint*.yml'
|
||||||
|
- '.rubocop*.yml'
|
||||||
|
- '.ruby-version'
|
||||||
|
- '**/*.haml'
|
||||||
|
- 'Gemfile*'
|
||||||
|
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- '.github/workflows/haml-lint-problem-matcher.json'
|
||||||
|
- '.github/workflows/lint-haml.yml'
|
||||||
|
- '.haml-lint*.yml'
|
||||||
|
- '.rubocop*.yml'
|
||||||
|
- '.ruby-version'
|
||||||
|
- '**/*.haml'
|
||||||
|
- 'Gemfile*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Clone repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install native Ruby dependencies
|
||||||
|
run: sudo apt-get install -y libicu-dev libidn11-dev
|
||||||
|
|
||||||
|
- name: Set up Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: .ruby-version
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Run haml-lint
|
||||||
|
run: |
|
||||||
|
echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json"
|
||||||
|
bundle exec haml-lint
|
103
.haml-lint.yml
103
.haml-lint.yml
|
@ -1,108 +1,9 @@
|
||||||
# Whether to ignore frontmatter at the beginning of HAML documents for
|
inherits_from: .haml-lint_todo.yml
|
||||||
# frameworks such as Jekyll/Middleman
|
|
||||||
skip_frontmatter: false
|
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
- 'vendor/**/*'
|
- 'vendor/**/*'
|
||||||
- 'spec/**/*'
|
- lib/templates/haml/scaffold/_form.html.haml
|
||||||
- 'lib/templates/**/*'
|
|
||||||
- 'app/views/kaminari/**/*'
|
|
||||||
|
|
||||||
linters:
|
linters:
|
||||||
AltText:
|
AltText:
|
||||||
enabled: false
|
|
||||||
|
|
||||||
ClassAttributeWithStaticValue:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
ClassesBeforeIds:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
ConsecutiveComments:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
ConsecutiveSilentScripts:
|
|
||||||
enabled: true
|
|
||||||
max_consecutive: 2
|
|
||||||
|
|
||||||
EmptyObjectReference:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
EmptyScript:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
FinalNewline:
|
|
||||||
enabled: true
|
|
||||||
present: true
|
|
||||||
|
|
||||||
HtmlAttributes:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
ImplicitDiv:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
LeadingCommentSpace:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
LineLength:
|
|
||||||
enabled: false
|
|
||||||
max: 80
|
|
||||||
|
|
||||||
MultilinePipe:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
MultilineScript:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
ObjectReferenceAttributes:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
RuboCop:
|
|
||||||
enabled: true
|
|
||||||
# These cops are incredibly noisy when it comes to HAML templates, so we
|
|
||||||
# ignore them.
|
|
||||||
ignored_cops:
|
|
||||||
- Lint/BlockAlignment
|
|
||||||
- Lint/EndAlignment
|
|
||||||
- Lint/Void
|
|
||||||
- Metrics/BlockLength
|
|
||||||
- Metrics/LineLength
|
|
||||||
- Style/AlignParameters
|
|
||||||
- Style/BlockNesting
|
|
||||||
- Style/ElseAlignment
|
|
||||||
- Style/EndOfLine
|
|
||||||
- Style/FileName
|
|
||||||
- Style/FinalNewline
|
|
||||||
- Style/FrozenStringLiteralComment
|
|
||||||
- Style/IfUnlessModifier
|
|
||||||
- Style/IndentationWidth
|
|
||||||
- Style/Next
|
|
||||||
- Style/TrailingBlankLines
|
|
||||||
- Style/TrailingWhitespace
|
|
||||||
- Style/WhileUntilModifier
|
|
||||||
|
|
||||||
RubyComments:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
SpaceBeforeScript:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
SpaceInsideHashAttributes:
|
|
||||||
enabled: true
|
|
||||||
style: space
|
|
||||||
|
|
||||||
Indentation:
|
|
||||||
enabled: true
|
|
||||||
character: space # or tab
|
|
||||||
|
|
||||||
TagName:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
TrailingWhitespace:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
UnnecessaryInterpolation:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
UnnecessaryStringOutput:
|
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
# This configuration was generated by
|
||||||
|
# `haml-lint --auto-gen-config`
|
||||||
|
# on 2023-02-11 02:16:03 -0500 using Haml-Lint version 0.45.0.
|
||||||
|
# The point is for the user to remove these configuration records
|
||||||
|
# one by one as the lints are removed from the code base.
|
||||||
|
# Note that changes in the inspected code, or installation of new
|
||||||
|
# versions of Haml-Lint, may require this file to be generated again.
|
||||||
|
|
||||||
|
linters:
|
||||||
|
# Offense count: 76
|
||||||
|
RuboCop:
|
||||||
|
exclude:
|
||||||
|
- 'app/views/accounts/_og.html.haml'
|
||||||
|
- 'app/views/admin/account_actions/new.html.haml'
|
||||||
|
- 'app/views/admin/account_warnings/_account_warning.html.haml'
|
||||||
|
- 'app/views/admin/accounts/index.html.haml'
|
||||||
|
- 'app/views/admin/accounts/show.html.haml'
|
||||||
|
- 'app/views/admin/action_logs/index.html.haml'
|
||||||
|
- 'app/views/admin/announcements/edit.html.haml'
|
||||||
|
- 'app/views/admin/announcements/new.html.haml'
|
||||||
|
- 'app/views/admin/change_emails/show.html.haml'
|
||||||
|
- 'app/views/admin/custom_emojis/index.html.haml'
|
||||||
|
- 'app/views/admin/dashboard/index.html.haml'
|
||||||
|
- 'app/views/admin/disputes/appeals/_appeal.html.haml'
|
||||||
|
- 'app/views/admin/domain_blocks/edit.html.haml'
|
||||||
|
- 'app/views/admin/domain_blocks/new.html.haml'
|
||||||
|
- 'app/views/admin/ip_blocks/new.html.haml'
|
||||||
|
- 'app/views/admin/reports/actions/preview.html.haml'
|
||||||
|
- 'app/views/admin/reports/index.html.haml'
|
||||||
|
- 'app/views/admin/reports/show.html.haml'
|
||||||
|
- 'app/views/admin/roles/_form.html.haml'
|
||||||
|
- 'app/views/admin/settings/about/show.html.haml'
|
||||||
|
- 'app/views/admin/settings/appearance/show.html.haml'
|
||||||
|
- 'app/views/admin/settings/registrations/show.html.haml'
|
||||||
|
- 'app/views/admin/statuses/show.html.haml'
|
||||||
|
- 'app/views/application/_card.html.haml'
|
||||||
|
- 'app/views/application/_sidebar.html.haml'
|
||||||
|
- 'app/views/auth/registrations/_sessions.html.haml'
|
||||||
|
- 'app/views/auth/registrations/new.html.haml'
|
||||||
|
- 'app/views/auth/sessions/new.html.haml'
|
||||||
|
- 'app/views/disputes/strikes/show.html.haml'
|
||||||
|
- 'app/views/filters/_filter_fields.html.haml'
|
||||||
|
- 'app/views/invites/_form.html.haml'
|
||||||
|
- 'app/views/layouts/application.html.haml'
|
||||||
|
- 'app/views/layouts/error.html.haml'
|
||||||
|
- 'app/views/layouts/mailer.html.haml'
|
||||||
|
- 'app/views/notification_mailer/_status.html.haml'
|
||||||
|
- 'app/views/notification_mailer/favourite.html.haml'
|
||||||
|
- 'app/views/notification_mailer/follow_request.html.haml'
|
||||||
|
- 'app/views/oauth/authorizations/new.html.haml'
|
||||||
|
- 'app/views/oauth/authorized_applications/index.html.haml'
|
||||||
|
- 'app/views/settings/applications/_fields.html.haml'
|
||||||
|
- 'app/views/settings/imports/show.html.haml'
|
||||||
|
- 'app/views/settings/login_activities/_login_activity.html.haml'
|
||||||
|
- 'app/views/settings/preferences/appearance/show.html.haml'
|
||||||
|
- 'app/views/settings/preferences/other/show.html.haml'
|
||||||
|
- 'app/views/settings/preferences/other/show.html.haml'
|
||||||
|
- 'app/views/statuses_cleanup/show.html.haml'
|
||||||
|
- 'app/views/statuses/_detailed_status.html.haml'
|
||||||
|
- 'app/views/statuses/_og_image.html.haml'
|
||||||
|
- 'app/views/statuses/_poll.html.haml'
|
||||||
|
- 'app/views/statuses/_status.html.haml'
|
||||||
|
- 'app/views/statuses/show.html.haml'
|
||||||
|
- 'app/views/user_mailer/suspicious_sign_in.html.haml'
|
||||||
|
- 'app/views/user_mailer/warning.html.haml'
|
||||||
|
- 'app/views/user_mailer/webauthn_credential_added.html.haml'
|
||||||
|
- 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
|
||||||
|
|
||||||
|
# Offense count: 918
|
||||||
|
LineLength:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# Offense count: 22
|
||||||
|
UnnecessaryStringOutput:
|
||||||
|
exclude:
|
||||||
|
- 'app/views/accounts/show.html.haml'
|
||||||
|
- 'app/views/admin/custom_emojis/_custom_emoji.html.haml'
|
||||||
|
- 'app/views/admin/relays/_relay.html.haml'
|
||||||
|
- 'app/views/admin/rules/_rule.html.haml'
|
||||||
|
- 'app/views/admin/statuses/index.html.haml'
|
||||||
|
- 'app/views/auth/registrations/_sessions.html.haml'
|
||||||
|
- 'app/views/disputes/strikes/show.html.haml'
|
||||||
|
- 'app/views/notification_mailer/_status.html.haml'
|
||||||
|
- 'app/views/settings/two_factor_authentication_methods/index.html.haml'
|
||||||
|
- 'app/views/statuses/_detailed_status.html.haml'
|
||||||
|
- 'app/views/statuses/_poll.html.haml'
|
||||||
|
- 'app/views/statuses/_simple_status.html.haml'
|
||||||
|
- 'app/views/user_mailer/suspicious_sign_in.html.haml'
|
||||||
|
- 'app/views/user_mailer/webauthn_credential_added.html.haml'
|
||||||
|
- 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
|
||||||
|
- 'app/views/user_mailer/welcome.html.haml'
|
||||||
|
|
||||||
|
# Offense count: 3
|
||||||
|
ViewLength:
|
||||||
|
exclude:
|
||||||
|
- 'app/views/admin/accounts/show.html.haml'
|
||||||
|
- 'app/views/admin/reports/show.html.haml'
|
||||||
|
- 'app/views/disputes/strikes/show.html.haml'
|
||||||
|
|
||||||
|
# Offense count: 43
|
||||||
|
InstanceVariables:
|
||||||
|
exclude:
|
||||||
|
- 'app/views/admin/reports/_actions.html.haml'
|
||||||
|
- 'app/views/admin/roles/_form.html.haml'
|
||||||
|
- 'app/views/admin/webhooks/_form.html.haml'
|
||||||
|
- 'app/views/application/_sidebar.html.haml'
|
||||||
|
- 'app/views/auth/registrations/_sessions.html.haml'
|
||||||
|
- 'app/views/auth/registrations/_status.html.haml'
|
||||||
|
- 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
|
||||||
|
- 'app/views/authorize_interactions/_post_follow_actions.html.haml'
|
||||||
|
- 'app/views/invites/_form.html.haml'
|
||||||
|
- 'app/views/relationships/_account.html.haml'
|
||||||
|
- 'app/views/shared/_og.html.haml'
|
||||||
|
- 'app/views/statuses/_status.html.haml'
|
||||||
|
|
||||||
|
# Offense count: 6
|
||||||
|
ConsecutiveSilentScripts:
|
||||||
|
exclude:
|
||||||
|
- 'app/views/admin/settings/shared/_links.html.haml'
|
||||||
|
- 'app/views/settings/login_activities/_login_activity.html.haml'
|
||||||
|
- 'app/views/statuses/_poll.html.haml'
|
||||||
|
|
||||||
|
# Offense count: 3
|
||||||
|
IdNames:
|
||||||
|
exclude:
|
||||||
|
- 'app/views/authorize_interactions/error.html.haml'
|
||||||
|
- 'app/views/oauth/authorizations/error.html.haml'
|
||||||
|
- 'app/views/shared/_error_messages.html.haml'
|
1
Gemfile
1
Gemfile
|
@ -139,6 +139,7 @@ group :development do
|
||||||
gem 'memory_profiler'
|
gem 'memory_profiler'
|
||||||
gem 'brakeman', '~> 5.4', require: false
|
gem 'brakeman', '~> 5.4', require: false
|
||||||
gem 'bundler-audit', '~> 0.9', require: false
|
gem 'bundler-audit', '~> 0.9', require: false
|
||||||
|
gem 'haml_lint', require: false
|
||||||
|
|
||||||
gem 'capistrano', '~> 3.17'
|
gem 'capistrano', '~> 3.17'
|
||||||
gem 'capistrano-rails', '~> 1.6'
|
gem 'capistrano-rails', '~> 1.6'
|
||||||
|
|
|
@ -308,6 +308,12 @@ GEM
|
||||||
activesupport (>= 5.1)
|
activesupport (>= 5.1)
|
||||||
haml (>= 4.0.6)
|
haml (>= 4.0.6)
|
||||||
railties (>= 5.1)
|
railties (>= 5.1)
|
||||||
|
haml_lint (0.45.0)
|
||||||
|
haml (>= 4.0, < 6.2)
|
||||||
|
parallel (~> 1.10)
|
||||||
|
rainbow
|
||||||
|
rubocop (>= 0.50.0)
|
||||||
|
sysexits (~> 1.1)
|
||||||
hashdiff (1.0.1)
|
hashdiff (1.0.1)
|
||||||
hashie (5.0.0)
|
hashie (5.0.0)
|
||||||
highline (2.0.3)
|
highline (2.0.3)
|
||||||
|
@ -687,6 +693,7 @@ GEM
|
||||||
activesupport (>= 3)
|
activesupport (>= 3)
|
||||||
attr_required (>= 0.0.5)
|
attr_required (>= 0.0.5)
|
||||||
httpclient (>= 2.4)
|
httpclient (>= 2.4)
|
||||||
|
sysexits (1.2.0)
|
||||||
temple (0.10.0)
|
temple (0.10.0)
|
||||||
terminal-table (3.0.2)
|
terminal-table (3.0.2)
|
||||||
unicode-display_width (>= 1.1.1, < 3)
|
unicode-display_width (>= 1.1.1, < 3)
|
||||||
|
@ -804,6 +811,7 @@ DEPENDENCIES
|
||||||
fog-openstack (~> 0.3)
|
fog-openstack (~> 0.3)
|
||||||
fuubar (~> 2.5)
|
fuubar (~> 2.5)
|
||||||
haml-rails (~> 2.0)
|
haml-rails (~> 2.0)
|
||||||
|
haml_lint
|
||||||
hiredis (~> 0.6)
|
hiredis (~> 0.6)
|
||||||
htmlentities (~> 4.3)
|
htmlentities (~> 4.3)
|
||||||
http (~> 5.1)
|
http (~> 5.1)
|
||||||
|
|
|
@ -206,7 +206,7 @@
|
||||||
- if @deletion_request.present?
|
- if @deletion_request.present?
|
||||||
= link_to t('admin.accounts.delete'), admin_account_path(@account.id), method: :delete, class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, @account)
|
= link_to t('admin.accounts.delete'), admin_account_path(@account.id), method: :delete, class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, @account)
|
||||||
- else
|
- else
|
||||||
%div.action-buttons
|
.action-buttons
|
||||||
%div
|
%div
|
||||||
- if @account.local? && @account.user_approved?
|
- if @account.local? && @account.user_approved?
|
||||||
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
|
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
|
||||||
|
@ -276,9 +276,9 @@
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
- if @account.user&.invite_request&.text&.present?
|
- if @account.user&.invite_request&.text&.present?
|
||||||
%div.speech-bubble
|
.speech-bubble
|
||||||
%div.speech-bubble__bubble
|
.speech-bubble__bubble
|
||||||
= @account.user&.invite_request&.text
|
= @account.user&.invite_request&.text
|
||||||
%div.speech-bubble__owner
|
.speech-bubble__owner
|
||||||
= admin_account_link_to @account
|
= admin_account_link_to @account
|
||||||
= t('admin.accounts.invite_request_text')
|
= t('admin.accounts.invite_request_text')
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
= select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
|
= select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
|
||||||
|
|
||||||
- if @action_logs.empty?
|
- if @action_logs.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.action_logs.empty'
|
= t 'admin.action_logs.empty'
|
||||||
- else
|
- else
|
||||||
.report-notes
|
.report-notes
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
%li= filter_link_to safe_join([t('admin.announcements.live'), "(#{number_with_delimiter(Announcement.published.count)})"], ' '), published: '1', unpublished: nil
|
%li= filter_link_to safe_join([t('admin.announcements.live'), "(#{number_with_delimiter(Announcement.published.count)})"], ' '), published: '1', unpublished: nil
|
||||||
|
|
||||||
- if @announcements.empty?
|
- if @announcements.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.announcements.empty'
|
= t 'admin.announcements.empty'
|
||||||
- else
|
- else
|
||||||
.announcements-list
|
.announcements-list
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
%li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
|
%li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
|
||||||
|
|
||||||
- if @appeals.empty?
|
- if @appeals.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.disputes.appeals.empty'
|
= t 'admin.disputes.appeals.empty'
|
||||||
- else
|
- else
|
||||||
.announcements-list
|
.announcements-list
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
- if @instances.empty?
|
- if @instances.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.instances.empty'
|
= t 'admin.instances.empty'
|
||||||
- else
|
- else
|
||||||
= render partial: 'instance', collection: @instances
|
= render partial: 'instance', collection: @instances
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
- if @rules.empty?
|
- if @rules.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.rules.empty'
|
= t 'admin.rules.empty'
|
||||||
- else
|
- else
|
||||||
.announcements-list
|
.announcements-list
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
- if @warning_presets.empty?
|
- if @warning_presets.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.warning_presets.empty'
|
= t 'admin.warning_presets.empty'
|
||||||
- else
|
- else
|
||||||
.announcements-list
|
.announcements-list
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
- if @webhooks.empty?
|
- if @webhooks.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'admin.webhooks.empty'
|
= t 'admin.webhooks.empty'
|
||||||
- else
|
- else
|
||||||
.applications-list
|
.applications-list
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for :page_title do
|
- content_for :page_title do
|
||||||
= t('auth.login')
|
= t('auth.login')
|
||||||
|
|
||||||
=javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous'
|
= javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous'
|
||||||
|
|
||||||
- if @webauthn_enabled
|
- if @webauthn_enabled
|
||||||
= render partial: 'auth/sessions/two_factor/webauthn_form', locals: { hidden: @scheme_type != 'webauthn' }
|
= render partial: 'auth/sessions/two_factor/webauthn_form', locals: { hidden: @scheme_type != 'webauthn' }
|
||||||
|
|
|
@ -35,6 +35,6 @@
|
||||||
= render 'keyword_fields', f: keyword
|
= render 'keyword_fields', f: keyword
|
||||||
%tfoot
|
%tfoot
|
||||||
%tr
|
%tr
|
||||||
%td{ colspan: 3}
|
%td{ colspan: 3 }
|
||||||
= link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do
|
= link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do
|
||||||
= safe_join([fa_icon('plus'), t('filters.edit.add_keyword')])
|
= safe_join([fa_icon('plus'), t('filters.edit.add_keyword')])
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
= link_to t('filters.new.title'), new_filter_path, class: 'button'
|
= link_to t('filters.new.title'), new_filter_path, class: 'button'
|
||||||
|
|
||||||
- if @filters.empty?
|
- if @filters.empty?
|
||||||
%div.muted-hint.center-text= t 'filters.index.empty'
|
.muted-hint.center-text= t 'filters.index.empty'
|
||||||
- else
|
- else
|
||||||
.applications-list
|
.applications-list
|
||||||
= render partial: 'filter', collection: @filters
|
= render partial: 'filter', collection: @filters
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
-# Link to the "Next" page
|
-#
|
||||||
-# available local variables
|
Link to the "Next" page
|
||||||
-# url: url to the next page
|
available local variables
|
||||||
-# current_page: a page object for the currently displayed page
|
url: url to the next page
|
||||||
-# total_pages: total number of pages
|
current_page: a page object for the currently displayed page
|
||||||
-# per_page: number of items to fetch per page
|
total_pages: total number of pages
|
||||||
-# remote: data-remote
|
per_page: number of items to fetch per page
|
||||||
|
remote: data-remote
|
||||||
|
|
||||||
%span.next
|
%span.next
|
||||||
= link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote
|
= link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
-# The container tag
|
-#
|
||||||
-# available local variables
|
The container tag
|
||||||
-# current_page: a page object for the currently displayed page
|
available local variables
|
||||||
-# total_pages: total number of pages
|
current_page: a page object for the currently displayed page
|
||||||
-# per_page: number of items to fetch per page
|
total_pages: total number of pages
|
||||||
-# remote: data-remote
|
per_page: number of items to fetch per page
|
||||||
-# paginator: the paginator that renders the pagination tags inside
|
remote: data-remote
|
||||||
|
paginator: the paginator that renders the pagination tags inside
|
||||||
= paginator.render do
|
= paginator.render do
|
||||||
%nav.pagination
|
%nav.pagination
|
||||||
= prev_page_tag unless current_page.first?
|
= prev_page_tag unless current_page.first?
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
-# Link to the "Previous" page
|
-#
|
||||||
-# available local variables
|
Link to the "Previous" page
|
||||||
-# url: url to the previous page
|
available local variables
|
||||||
-# current_page: a page object for the currently displayed page
|
url: url to the previous page
|
||||||
-# total_pages: total number of pages
|
current_page: a page object for the currently displayed page
|
||||||
-# per_page: number of items to fetch per page
|
total_pages: total number of pages
|
||||||
-# remote: data-remote
|
per_page: number of items to fetch per page
|
||||||
|
remote: data-remote
|
||||||
%span.prev
|
%span.prev
|
||||||
= link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote
|
= link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote
|
||||||
|
|
|
@ -15,6 +15,6 @@
|
||||||
|
|
||||||
.modal-layout__mastodon
|
.modal-layout__mastodon
|
||||||
%div
|
%div
|
||||||
%img{alt: '', draggable: 'false', src: mascot_url }
|
%img{ alt: '', draggable: 'false', src: mascot_url }
|
||||||
|
|
||||||
= render template: 'layouts/application'
|
= render template: 'layouts/application'
|
||||||
|
|
|
@ -26,11 +26,11 @@
|
||||||
= "@#{status.account.pretty_acct}"
|
= "@#{status.account.pretty_acct}"
|
||||||
|
|
||||||
- if status.spoiler_text?
|
- if status.spoiler_text?
|
||||||
%div.auto-dir
|
.auto-dir
|
||||||
%p
|
%p
|
||||||
= status.spoiler_text
|
= status.spoiler_text
|
||||||
|
|
||||||
%div.auto-dir
|
.auto-dir
|
||||||
= status_content_format(status)
|
= status_content_format(status)
|
||||||
|
|
||||||
- if status.ordered_media_attachments.size > 0
|
- if status.ordered_media_attachments.size > 0
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
%p= t('doorkeeper.authorizations.show.title')
|
%p= t('doorkeeper.authorizations.show.title')
|
||||||
.input-copy
|
.input-copy
|
||||||
.input-copy__wrapper
|
.input-copy__wrapper
|
||||||
%input{ type: 'text', class: 'oauth-code', spellcheck: 'false', readonly: true, value: params[:code] }
|
%input.oauth-code{ type: 'text', spellcheck: 'false', readonly: true, value: params[:code] }
|
||||||
%button{ type: :button }= t('generic.copy')
|
%button{ type: :button }= t('generic.copy')
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
= link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'
|
= link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'
|
||||||
|
|
||||||
- if @applications.empty?
|
- if @applications.empty?
|
||||||
%div.muted-hint.center-text=t 'doorkeeper.applications.index.empty'
|
.muted-hint.center-text= t 'doorkeeper.applications.index.empty'
|
||||||
- else
|
- else
|
||||||
.table-wrapper
|
.table-wrapper
|
||||||
%table.table
|
%table.table
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
.table-wrapper
|
.table-wrapper
|
||||||
%table.table
|
%table.table
|
||||||
%tbody
|
%tbody
|
||||||
%tr
|
%tr
|
||||||
%th= t('doorkeeper.applications.show.application_id')
|
%th= t('doorkeeper.applications.show.application_id')
|
||||||
%td
|
%td
|
||||||
%code= @application.uid
|
%code= @application.uid
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
%td
|
%td
|
||||||
%code= @application.secret
|
%code= @application.secret
|
||||||
%tr
|
%tr
|
||||||
%th{ rowspan: 2}= t('applications.your_token')
|
%th{ rowspan: 2 }= t('applications.your_token')
|
||||||
%td
|
%td
|
||||||
%code= current_user.token_for_app(@application).token
|
%code= current_user.token_for_app(@application).token
|
||||||
%tr
|
%tr
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
- if @login_activities.empty?
|
- if @login_activities.empty?
|
||||||
%div.muted-hint.center-text
|
.muted-hint.center-text
|
||||||
= t 'login_activities.empty'
|
= t 'login_activities.empty'
|
||||||
- else
|
- else
|
||||||
.announcements-list
|
.announcements-list
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
%span.poll__chart
|
%span.poll__chart
|
||||||
- else
|
- else
|
||||||
%label.poll__option><
|
%label.poll__option><
|
||||||
%span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}><
|
%span.poll__input{ class: poll.multiple? ? 'checkbox' : nil }><
|
||||||
%span.poll__option__text
|
%span.poll__option__text
|
||||||
= prerender_custom_emojis(h(option.title), status.emojis)
|
= prerender_custom_emojis(h(option.title), status.emojis)
|
||||||
.poll__footer
|
.poll__footer
|
||||||
|
|
Loading…
Reference in New Issue