about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-07-11 15:27:59 +0200
committerGitHub <noreply@github.com>2017-07-11 15:27:59 +0200
commite19eefe219c46ea9f763d0279029f03c5cf4554f (patch)
treedb31dd31a9bcabe22f18155872e0498fc0d906f6 /app/serializers
parent8784bd79d0053cb15775eb078f45e6aca7775d77 (diff)
Redesign the landing page, mount public timeline on it (#4122)
* Redesign the landing page, mount public timeline on it

* Adjust the standalone mounted component to the lacking of router

* Adjust auth layout pages to new design

* Fix tests

* Standalone public timeline polling every 5 seconds

* Remove now obsolete translations

* Add responsive design for new landing page

* Address reviews

* Add floating clouds behind frontpage form

* Use access token from public page when available

* Fix mentions and hashtags links, cursor on status content in standalone mode

* Add footer link to source code

* Fix errors on pages that don't embed the component, use classnames

* Fix tests

* Change anonymous autoPlayGif default to false

* When gif autoplay is disabled, hover to play

* Add option to hide the timeline preview

* Slightly improve alt layout

* Add elephant friend to new frontpage

* Display "back to mastodon" in place of "login" when logged in on frontpage

* Change polling time to 3s
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/initial_state_serializer.rb35
1 files changed, 22 insertions, 13 deletions
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 49ff9e377..6751c9411 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -5,32 +5,41 @@ class InitialStateSerializer < ActiveModel::Serializer
              :media_attachments, :settings
 
   def meta
-    {
+    store = {
       streaming_api_base_url: Rails.configuration.x.streaming_api_base_url,
       access_token: object.token,
       locale: I18n.locale,
       domain: Rails.configuration.x.local_domain,
-      me: object.current_account.id,
       admin: object.admin&.id,
-      boost_modal: object.current_account.user.setting_boost_modal,
-      delete_modal: object.current_account.user.setting_delete_modal,
-      auto_play_gif: object.current_account.user.setting_auto_play_gif,
-      system_font_ui: object.current_account.user.setting_system_font_ui,
     }
+
+    if object.current_account
+      store[:me]             = object.current_account.id
+      store[:boost_modal]    = object.current_account.user.setting_boost_modal
+      store[:delete_modal]   = object.current_account.user.setting_delete_modal
+      store[:auto_play_gif]  = object.current_account.user.setting_auto_play_gif
+      store[:system_font_ui] = object.current_account.user.setting_system_font_ui
+    end
+
+    store
   end
 
   def compose
-    {
-      me: object.current_account.id,
-      default_privacy: object.current_account.user.setting_default_privacy,
-      default_sensitive: object.current_account.user.setting_default_sensitive,
-    }
+    store = {}
+
+    if object.current_account
+      store[:me]                = object.current_account.id
+      store[:default_privacy]   = object.current_account.user.setting_default_privacy
+      store[:default_sensitive] = object.current_account.user.setting_default_sensitive
+    end
+
+    store
   end
 
   def accounts
     store = {}
-    store[object.current_account.id] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer)
-    store[object.admin.id]           = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) unless object.admin.nil?
+    store[object.current_account.id] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account
+    store[object.admin.id]           = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin
     store
   end