diff options
author | ThibG <thib@sitedethib.com> | 2018-12-09 16:38:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-09 16:38:09 +0100 |
commit | c6b7b984891413cb1db673df2cbea12f8e6f0f05 (patch) | |
tree | 46e3982da219f7a5ac34c3aecaf32f0990578d1d /app/controllers | |
parent | e3682c9c1750e5e7e5d2f817e29f6760a18400ca (diff) | |
parent | 4f59d1efd786c08cc63e0c14dceada80c37ab8da (diff) |
Merge pull request #849 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/admin/tags_controller.rb | 44 | ||||
-rw-r--r-- | app/controllers/api/v1/accounts/credentials_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/directories_controller.rb | 53 | ||||
-rw-r--r-- | app/controllers/settings/preferences_controller.rb | 1 | ||||
-rw-r--r-- | app/controllers/settings/profiles_controller.rb | 2 |
5 files changed, 100 insertions, 2 deletions
diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb new file mode 100644 index 000000000..3f2256566 --- /dev/null +++ b/app/controllers/admin/tags_controller.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +module Admin + class TagsController < BaseController + before_action :set_tags, only: :index + before_action :set_tag, except: :index + before_action :set_filter_params + + def index + authorize :tag, :index? + end + + def hide + authorize @tag, :hide? + @tag.account_tag_stat.update!(hidden: true) + redirect_to admin_tags_path(@filter_params) + end + + def unhide + authorize @tag, :unhide? + @tag.account_tag_stat.update!(hidden: true) + redirect_to admin_tags_path(@filter_params) + end + + private + + def set_tags + @tags = Tag.discoverable + @tags.merge!(Tag.hidden) if filter_params[:hidden] + end + + def set_tag + @tag = Tag.find(params[:id]) + end + + def set_filter_params + @filter_params = filter_params.to_hash.symbolize_keys + end + + def filter_params + params.permit(:hidden) + end + end +end diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb index dcd41b35c..e77f57910 100644 --- a/app/controllers/api/v1/accounts/credentials_controller.rb +++ b/app/controllers/api/v1/accounts/credentials_controller.rb @@ -21,7 +21,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController private def account_params - params.permit(:display_name, :note, :avatar, :header, :locked, :bot, fields_attributes: [:name, :value]) + params.permit(:display_name, :note, :avatar, :header, :locked, :bot, :discoverable, fields_attributes: [:name, :value]) end def user_settings_params diff --git a/app/controllers/directories_controller.rb b/app/controllers/directories_controller.rb new file mode 100644 index 000000000..9d65361a6 --- /dev/null +++ b/app/controllers/directories_controller.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +class DirectoriesController < ApplicationController + layout 'public' + + before_action :set_instance_presenter + before_action :set_tag, only: :show + before_action :set_tags + before_action :set_accounts + before_action :set_pack + + def index + render :index + end + + def show + render :index + end + + private + + def set_pack + use_pack 'share' + end + + def set_tag + @tag = Tag.discoverable.find_by!(name: params[:id].downcase) + end + + def set_tags + @tags = Tag.discoverable.limit(30) + end + + def set_accounts + @accounts = Account.searchable.discoverable.page(params[:page]).per(50).tap do |query| + query.merge!(Account.tagged_with(@tag.id)) if @tag + + if popular_requested? + query.merge!(Account.popular) + else + query.merge!(Account.by_recent_status) + end + end + end + + def set_instance_presenter + @instance_presenter = InstancePresenter.new + end + + def popular_requested? + request.path.ends_with?('/popular') + end +end diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index 5c5f31d2b..b70844b65 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -43,6 +43,7 @@ class Settings::PreferencesController < Settings::BaseController :setting_system_font_ui, :setting_noindex, :setting_hide_network, + :setting_aggregate_reblogs, notification_emails: %i(follow follow_request reblog favourite mention digest report), interactions: %i(must_be_follower must_be_following) ) diff --git a/app/controllers/settings/profiles_controller.rb b/app/controllers/settings/profiles_controller.rb index 918dbc6c6..1a0b73d16 100644 --- a/app/controllers/settings/profiles_controller.rb +++ b/app/controllers/settings/profiles_controller.rb @@ -25,7 +25,7 @@ class Settings::ProfilesController < Settings::BaseController private def account_params - params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, :bot, fields_attributes: [:name, :value]) + params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, :bot, :discoverable, fields_attributes: [:name, :value]) end def set_account |