about summary refs log tree commit diff
path: root/app/controllers/public_timelines_controller.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-03-13 16:55:07 +0100
committerGitHub <noreply@github.com>2019-03-13 16:55:07 +0100
commit3005e473a0df4d2ea942dcc33e01c5e4c15b81fa (patch)
tree8d0b0e635bf12a56ae99278ab206684da2a9aad1 /app/controllers/public_timelines_controller.rb
parentc2857c976c7d4a8bbd02c3c18569913f2bf8a034 (diff)
parent387f253f3100317ae247928aa9168f431879ecb6 (diff)
Merge pull request #957 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers/public_timelines_controller.rb')
-rw-r--r--app/controllers/public_timelines_controller.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/app/controllers/public_timelines_controller.rb b/app/controllers/public_timelines_controller.rb
new file mode 100644
index 000000000..c5fe789f4
--- /dev/null
+++ b/app/controllers/public_timelines_controller.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+class PublicTimelinesController < ApplicationController
+  before_action :set_pack
+  layout 'public'
+
+  before_action :check_enabled
+  before_action :set_body_classes
+  before_action :set_instance_presenter
+
+  def show
+    respond_to do |format|
+      format.html do
+        @initial_state_json = ActiveModelSerializers::SerializableResource.new(
+          InitialStatePresenter.new(settings: { known_fediverse: Setting.show_known_fediverse_at_about_page }, token: current_session&.token),
+          serializer: InitialStateSerializer
+        ).to_json
+      end
+    end
+  end
+
+  private
+
+  def check_enabled
+    raise ActiveRecord::RecordNotFound unless Setting.timeline_preview
+  end
+
+  def set_body_classes
+    @body_classes = 'with-modals'
+  end
+
+  def set_instance_presenter
+    @instance_presenter = InstancePresenter.new
+  end
+
+  def set_pack
+    use_pack 'about'
+  end
+end