From ccb84572d6300c0ed69a59653b98ced89582452a Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Tue, 30 Jul 2019 16:35:53 -0500 Subject: add a domain policy viewer at `/policies` --- app/controllers/domain_policy_controller.rb | 30 +++++++++++ app/helpers/domain_policy_helper.rb | 2 + .../flavours/glitch/styles/monsterpit.about.scss | 15 ++++++ app/views/domain_blocks/_domain_block.html.haml | 14 ++++++ app/views/domain_policy/show.html.haml | 58 ++++++++++++++++++++++ 5 files changed, 119 insertions(+) create mode 100644 app/controllers/domain_policy_controller.rb create mode 100644 app/helpers/domain_policy_helper.rb create mode 100644 app/views/domain_blocks/_domain_block.html.haml create mode 100644 app/views/domain_policy/show.html.haml (limited to 'app') diff --git a/app/controllers/domain_policy_controller.rb b/app/controllers/domain_policy_controller.rb new file mode 100644 index 000000000..28e676f5e --- /dev/null +++ b/app/controllers/domain_policy_controller.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class DomainPolicyController < ApplicationController + before_action :authenticate_user! + + before_action :set_pack + layout 'public' + + before_action :set_instance_presenter, only: [:show] + + def show + @hide_navbar = true + @domain_policies = DomainBlock.all + end + + private + + def set_pack + use_pack 'common' + end + + def set_instance_presenter + @instance_presenter = InstancePresenter.new + end + + def authenticate_user! + return if user_signed_in? + not_found + end +end diff --git a/app/helpers/domain_policy_helper.rb b/app/helpers/domain_policy_helper.rb new file mode 100644 index 000000000..27ebe7c2a --- /dev/null +++ b/app/helpers/domain_policy_helper.rb @@ -0,0 +1,2 @@ +module DomainPolicyHelper +end diff --git a/app/javascript/flavours/glitch/styles/monsterpit.about.scss b/app/javascript/flavours/glitch/styles/monsterpit.about.scss index ddbaab9b3..e6c108d03 100644 --- a/app/javascript/flavours/glitch/styles/monsterpit.about.scss +++ b/app/javascript/flavours/glitch/styles/monsterpit.about.scss @@ -1 +1,16 @@ .landing .box-widget { text-align: center; } +.rich-formatting td { + ul { + list-style: none; + margin: 0; + + li { + margin: 0; + padding: 0; + line-height: 18px; + } + + li:after { content: "," } + li:last-child:after { content: "" } + } +} diff --git a/app/views/domain_blocks/_domain_block.html.haml b/app/views/domain_blocks/_domain_block.html.haml new file mode 100644 index 000000000..fae707c82 --- /dev/null +++ b/app/views/domain_blocks/_domain_block.html.haml @@ -0,0 +1,14 @@ +%tr + %td + %samp= domain_block.domain + %td= domain_block.severity.gsub('_', ' ').capitalize + %td + %ul + -if domain_block.reject_media? + %li= "Rejecting media" + -if domain_block.force_sensitive? + %li= "Media marked sensitive" + -if domain_block.reject_reports? + %li= "Rejecting reports" + %td= "None" + diff --git a/app/views/domain_policy/show.html.haml b/app/views/domain_policy/show.html.haml new file mode 100644 index 000000000..4b4b121fd --- /dev/null +++ b/app/views/domain_policy/show.html.haml @@ -0,0 +1,58 @@ +- content_for :page_title do + = "#{site_hostname} Domain Policies" + +- content_for :header_tags do + = render partial: 'shared/og' + +.grid-3 + .column-0 + .public-account-header.public-account-header--no-bar + .public-account-header__image + = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax' + + .column-1 + .landing-page__call-to-action{ dir: 'ltr' } + .row + .row__information-board + .information-board__section + %span= t 'about.user_count_before' + %strong= number_with_delimiter @instance_presenter.user_count + %span= t 'about.user_count_after', count: @instance_presenter.user_count + .information-board__section + %span= t 'about.status_count_before' + %strong= number_with_delimiter @instance_presenter.status_count + %span= t 'about.status_count_after', count: @instance_presenter.status_count + .row__mascot + .landing-page__mascot + = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: '' + + .column-2 + .landing-page__information.contact-widget + %p + %strong= t 'about.administered_by' + + = account_link_to(@instance_presenter.contact_account) + + - if @instance_presenter.site_contact_email.present? + %p.contact-widget__mail + %strong + = succeed ':' do + = t 'about.contact' + %br/ + = mail_to @instance_presenter.site_contact_email, nil, title: @instance_presenter.site_contact_email + + .column-3 + .box-widget + .rich-formatting + %h1= "#{@instance_presenter.site_title} Domain Policies" + + .table-wrapper + %table.table + %thead + %tr + %th= "Domain" + %th= "Policy" + %th= "Additional" + %th= "Reason" + %tbody + = render @domain_policies -- cgit