about summary refs log tree commit diff
path: root/app/controllers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-03-12 17:34:00 +0100
committerGitHub <noreply@github.com>2019-03-12 17:34:00 +0100
commit65fffeac3f960f9c74d693525a73ac14b201bf2b (patch)
tree41d5eaa2a446e161dc26d39960cde870135ee06f /app/controllers
parent6a8dc59eb8187b49aa3cbf3e4bf80565d8aa15d3 (diff)
Redesign landing page (#10232)
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/about_controller.rb25
-rw-r--r--app/controllers/public_timelines_controller.rb34
-rw-r--r--app/controllers/tags_controller.rb16
3 files changed, 44 insertions, 31 deletions
diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb
index 0dbf0283d..67bb2c87f 100644
--- a/app/controllers/about_controller.rb
+++ b/app/controllers/about_controller.rb
@@ -1,21 +1,17 @@
 # frozen_string_literal: true
 
 class AboutController < ApplicationController
-  before_action :set_body_classes
+  layout 'public'
+
   before_action :set_instance_presenter, only: [:show, :more, :terms]
 
   def show
-    serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer)
-    @initial_state_json   = serializable_resource.to_json
+    @hide_navbar = true
   end
 
-  def more
-    render layout: 'public'
-  end
+  def more; end
 
-  def terms
-    render layout: 'public'
-  end
+  def terms; end
 
   private
 
@@ -28,15 +24,4 @@ class AboutController < ApplicationController
   def set_instance_presenter
     @instance_presenter = InstancePresenter.new
   end
-
-  def set_body_classes
-    @body_classes = 'with-modals'
-  end
-
-  def initial_state_params
-    {
-      settings: { known_fediverse: Setting.show_known_fediverse_at_about_page },
-      token: current_session&.token,
-    }
-  end
 end
diff --git a/app/controllers/public_timelines_controller.rb b/app/controllers/public_timelines_controller.rb
new file mode 100644
index 000000000..53d4472d8
--- /dev/null
+++ b/app/controllers/public_timelines_controller.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+class PublicTimelinesController < ApplicationController
+  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
+end
diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb
index 4694c823a..729553e1e 100644
--- a/app/controllers/tags_controller.rb
+++ b/app/controllers/tags_controller.rb
@@ -13,8 +13,10 @@ class TagsController < ApplicationController
 
     respond_to do |format|
       format.html do
-        serializable_resource = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(initial_state_params), serializer: InitialStateSerializer)
-        @initial_state_json   = serializable_resource.to_json
+        @initial_state_json = ActiveModelSerializers::SerializableResource.new(
+          InitialStatePresenter.new(settings: {}, token: current_session&.token),
+          serializer: InitialStateSerializer
+        ).to_json
       end
 
       format.rss do
@@ -25,8 +27,7 @@ class TagsController < ApplicationController
       end
 
       format.json do
-        @statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none), current_account, params[:local])
-                                       .paginate_by_max_id(PAGE_SIZE, params[:max_id])
+        @statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none), current_account, params[:local]).paginate_by_max_id(PAGE_SIZE, params[:max_id])
         @statuses = cache_collection(@statuses, Status)
 
         render json: collection_presenter,
@@ -55,11 +56,4 @@ 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