Setup haml-lint CI with todo config (#23524)
This commit is contained in:
		
							
								
								
									
										17
									
								
								.github/workflows/haml-lint-problem-matcher.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/haml-lint-problem-matcher.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								.github/workflows/lint-haml.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								.github/workflows/lint-haml.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
# frameworks such as Jekyll/Middleman
 | 
			
		||||
skip_frontmatter: false
 | 
			
		||||
inherits_from: .haml-lint_todo.yml
 | 
			
		||||
 | 
			
		||||
exclude:
 | 
			
		||||
  - 'vendor/**/*'
 | 
			
		||||
  - 'spec/**/*'
 | 
			
		||||
  - 'lib/templates/**/*'
 | 
			
		||||
  - 'app/views/kaminari/**/*'
 | 
			
		||||
  - lib/templates/haml/scaffold/_form.html.haml
 | 
			
		||||
 | 
			
		||||
linters:
 | 
			
		||||
  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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										128
									
								
								.haml-lint_todo.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								.haml-lint_todo.yml
									
									
									
									
									
										Normal file
									
								
							@@ -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 'brakeman', '~> 5.4', require: false
 | 
			
		||||
  gem 'bundler-audit', '~> 0.9', require: false
 | 
			
		||||
  gem 'haml_lint', require: false
 | 
			
		||||
 | 
			
		||||
  gem 'capistrano', '~> 3.17'
 | 
			
		||||
  gem 'capistrano-rails', '~> 1.6'
 | 
			
		||||
 
 | 
			
		||||
@@ -308,6 +308,12 @@ GEM
 | 
			
		||||
      activesupport (>= 5.1)
 | 
			
		||||
      haml (>= 4.0.6)
 | 
			
		||||
      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)
 | 
			
		||||
    hashie (5.0.0)
 | 
			
		||||
    highline (2.0.3)
 | 
			
		||||
@@ -687,6 +693,7 @@ GEM
 | 
			
		||||
      activesupport (>= 3)
 | 
			
		||||
      attr_required (>= 0.0.5)
 | 
			
		||||
      httpclient (>= 2.4)
 | 
			
		||||
    sysexits (1.2.0)
 | 
			
		||||
    temple (0.10.0)
 | 
			
		||||
    terminal-table (3.0.2)
 | 
			
		||||
      unicode-display_width (>= 1.1.1, < 3)
 | 
			
		||||
@@ -804,6 +811,7 @@ DEPENDENCIES
 | 
			
		||||
  fog-openstack (~> 0.3)
 | 
			
		||||
  fuubar (~> 2.5)
 | 
			
		||||
  haml-rails (~> 2.0)
 | 
			
		||||
  haml_lint
 | 
			
		||||
  hiredis (~> 0.6)
 | 
			
		||||
  htmlentities (~> 4.3)
 | 
			
		||||
  http (~> 5.1)
 | 
			
		||||
 
 | 
			
		||||
@@ -206,7 +206,7 @@
 | 
			
		||||
    - 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)
 | 
			
		||||
  - else
 | 
			
		||||
    %div.action-buttons
 | 
			
		||||
    .action-buttons
 | 
			
		||||
      %div
 | 
			
		||||
        - 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)
 | 
			
		||||
@@ -276,9 +276,9 @@
 | 
			
		||||
  %hr.spacer/
 | 
			
		||||
 | 
			
		||||
  - if @account.user&.invite_request&.text&.present?
 | 
			
		||||
    %div.speech-bubble
 | 
			
		||||
      %div.speech-bubble__bubble
 | 
			
		||||
    .speech-bubble
 | 
			
		||||
      .speech-bubble__bubble
 | 
			
		||||
        = @account.user&.invite_request&.text
 | 
			
		||||
      %div.speech-bubble__owner
 | 
			
		||||
      .speech-bubble__owner
 | 
			
		||||
        = admin_account_link_to @account
 | 
			
		||||
        = 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')
 | 
			
		||||
 | 
			
		||||
- if @action_logs.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.action_logs.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .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
 | 
			
		||||
 | 
			
		||||
- if @announcements.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.announcements.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .announcements-list
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
      %li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
 | 
			
		||||
 | 
			
		||||
- if @appeals.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.disputes.appeals.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .announcements-list
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@
 | 
			
		||||
%hr.spacer/
 | 
			
		||||
 | 
			
		||||
- if @instances.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.instances.empty'
 | 
			
		||||
- else
 | 
			
		||||
  = render partial: 'instance', collection: @instances
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
  %hr.spacer/
 | 
			
		||||
 | 
			
		||||
- if @rules.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.rules.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .announcements-list
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@
 | 
			
		||||
  %hr.spacer/
 | 
			
		||||
 | 
			
		||||
- if @warning_presets.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.warning_presets.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .announcements-list
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
%hr.spacer/
 | 
			
		||||
 | 
			
		||||
- if @webhooks.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'admin.webhooks.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .applications-list
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
- content_for :page_title do
 | 
			
		||||
  = t('auth.login')
 | 
			
		||||
 | 
			
		||||
=javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous'
 | 
			
		||||
= javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous'
 | 
			
		||||
 | 
			
		||||
- if @webauthn_enabled
 | 
			
		||||
  = render partial: 'auth/sessions/two_factor/webauthn_form', locals: { hidden: @scheme_type != 'webauthn' }
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,6 @@
 | 
			
		||||
        = render 'keyword_fields', f: keyword
 | 
			
		||||
    %tfoot
 | 
			
		||||
      %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
 | 
			
		||||
            = 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'
 | 
			
		||||
 | 
			
		||||
- if @filters.empty?
 | 
			
		||||
  %div.muted-hint.center-text= t 'filters.index.empty'
 | 
			
		||||
  .muted-hint.center-text= t 'filters.index.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .applications-list
 | 
			
		||||
    = render partial: 'filter', collection: @filters
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,11 @@
 | 
			
		||||
-#  Link to the "Next" page
 | 
			
		||||
-#  available local variables
 | 
			
		||||
-#    url:           url to the next page
 | 
			
		||||
-#    current_page:  a page object for the currently displayed page
 | 
			
		||||
-#    total_pages:   total number of pages
 | 
			
		||||
-#    per_page:      number of items to fetch per page
 | 
			
		||||
-#    remote:        data-remote
 | 
			
		||||
-#
 | 
			
		||||
  Link to the "Next" page
 | 
			
		||||
  available local variables
 | 
			
		||||
    url:           url to the next page
 | 
			
		||||
    current_page:  a page object for the currently displayed page
 | 
			
		||||
    total_pages:   total number of pages
 | 
			
		||||
    per_page:      number of items to fetch per page
 | 
			
		||||
    remote:        data-remote
 | 
			
		||||
 | 
			
		||||
%span.next
 | 
			
		||||
  = 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
 | 
			
		||||
-#    current_page:  a page object for the currently displayed page
 | 
			
		||||
-#    total_pages:   total number of pages
 | 
			
		||||
-#    per_page:      number of items to fetch per page
 | 
			
		||||
-#    remote:        data-remote
 | 
			
		||||
-#    paginator:     the paginator that renders the pagination tags inside
 | 
			
		||||
-#
 | 
			
		||||
  The container tag
 | 
			
		||||
  available local variables
 | 
			
		||||
    current_page:  a page object for the currently displayed page
 | 
			
		||||
    total_pages:   total number of pages
 | 
			
		||||
    per_page:      number of items to fetch per page
 | 
			
		||||
    remote:        data-remote
 | 
			
		||||
    paginator:     the paginator that renders the pagination tags inside
 | 
			
		||||
= paginator.render do
 | 
			
		||||
  %nav.pagination
 | 
			
		||||
    = prev_page_tag unless current_page.first?
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
-#  Link to the "Previous" page
 | 
			
		||||
-#  available local variables
 | 
			
		||||
-#    url:           url to the previous page
 | 
			
		||||
-#    current_page:  a page object for the currently displayed page
 | 
			
		||||
-#    total_pages:   total number of pages
 | 
			
		||||
-#    per_page:      number of items to fetch per page
 | 
			
		||||
-#    remote:        data-remote
 | 
			
		||||
-#
 | 
			
		||||
  Link to the "Previous" page
 | 
			
		||||
  available local variables
 | 
			
		||||
    url:           url to the previous page
 | 
			
		||||
    current_page:  a page object for the currently displayed page
 | 
			
		||||
    total_pages:   total number of pages
 | 
			
		||||
    per_page:      number of items to fetch per page
 | 
			
		||||
    remote:        data-remote
 | 
			
		||||
%span.prev
 | 
			
		||||
  = 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
 | 
			
		||||
    %div
 | 
			
		||||
      %img{alt: '', draggable: 'false', src: mascot_url }
 | 
			
		||||
      %img{ alt: '', draggable: 'false', src: mascot_url }
 | 
			
		||||
 | 
			
		||||
= render template: 'layouts/application'
 | 
			
		||||
 
 | 
			
		||||
@@ -26,11 +26,11 @@
 | 
			
		||||
                                      = "@#{status.account.pretty_acct}"
 | 
			
		||||
 | 
			
		||||
                              - if status.spoiler_text?
 | 
			
		||||
                                %div.auto-dir
 | 
			
		||||
                                .auto-dir
 | 
			
		||||
                                  %p
 | 
			
		||||
                                    = status.spoiler_text
 | 
			
		||||
 | 
			
		||||
                              %div.auto-dir
 | 
			
		||||
                              .auto-dir
 | 
			
		||||
                                = status_content_format(status)
 | 
			
		||||
 | 
			
		||||
                                - if status.ordered_media_attachments.size > 0
 | 
			
		||||
 
 | 
			
		||||
@@ -3,5 +3,5 @@
 | 
			
		||||
    %p= t('doorkeeper.authorizations.show.title')
 | 
			
		||||
    .input-copy
 | 
			
		||||
      .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')
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
  = link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'
 | 
			
		||||
 | 
			
		||||
- if @applications.empty?
 | 
			
		||||
  %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty'
 | 
			
		||||
  .muted-hint.center-text= t 'doorkeeper.applications.index.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .table-wrapper
 | 
			
		||||
    %table.table
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
        %td
 | 
			
		||||
          %code= @application.secret
 | 
			
		||||
      %tr
 | 
			
		||||
        %th{ rowspan: 2}= t('applications.your_token')
 | 
			
		||||
        %th{ rowspan: 2 }= t('applications.your_token')
 | 
			
		||||
        %td
 | 
			
		||||
          %code= current_user.token_for_app(@application).token
 | 
			
		||||
      %tr
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
%hr.spacer/
 | 
			
		||||
 | 
			
		||||
- if @login_activities.empty?
 | 
			
		||||
  %div.muted-hint.center-text
 | 
			
		||||
  .muted-hint.center-text
 | 
			
		||||
    = t 'login_activities.empty'
 | 
			
		||||
- else
 | 
			
		||||
  .announcements-list
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
            %span.poll__chart
 | 
			
		||||
        - else
 | 
			
		||||
          %label.poll__option><
 | 
			
		||||
            %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}><
 | 
			
		||||
            %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil }><
 | 
			
		||||
            %span.poll__option__text
 | 
			
		||||
              = prerender_custom_emojis(h(option.title), status.emojis)
 | 
			
		||||
  .poll__footer
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user