diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-10-07 20:00:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-07 20:00:35 +0200 |
commit | f486ef2666dacbcb6fcd26e371bb5e945369dcfe (patch) | |
tree | c6e0dee82c450a62e56cf0ef368f49f2359513f1 /app/controllers | |
parent | d2dee6ea431f52ab90c568b21b25169d5129c7a6 (diff) |
Redesign public hashtag pages (#5237)
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/tags_controller.rb | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 240ef058a..9f3090e37 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -1,17 +1,22 @@ # frozen_string_literal: true class TagsController < ApplicationController - layout 'public' + before_action :set_body_classes + before_action :set_instance_presenter def show - @tag = Tag.find_by!(name: params[:id].downcase) - @statuses = Status.as_tag_timeline(@tag, current_account, params[:local]).paginate_by_max_id(20, params[:max_id]) - @statuses = cache_collection(@statuses, Status) + @tag = Tag.find_by!(name: params[:id].downcase) respond_to do |format| - format.html + format.html do + serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer) + @initial_state_json = serializable_resource.to_json + end format.json do + @statuses = Status.as_tag_timeline(@tag, current_account, params[:local]).paginate_by_max_id(20, params[:max_id]) + @statuses = cache_collection(@statuses, Status) + render json: collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, @@ -22,6 +27,14 @@ class TagsController < ApplicationController private + def set_body_classes + @body_classes = 'tag-body' + end + + def set_instance_presenter + @instance_presenter = InstancePresenter.new + end + def collection_presenter ActivityPub::CollectionPresenter.new( id: tag_url(@tag), @@ -30,4 +43,11 @@ class TagsController < ApplicationController items: @statuses.map { |s| ActivityPub::TagManager.instance.uri_for(s) } ) end + + def initial_state_params + { + settings: {}, + token: current_session&.token, + } + end end |