30 lines
834 B
Ruby
30 lines
834 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class BootstrapController < ApplicationController
|
||
|
include ApplicationHelper
|
||
|
include ActionView::Helpers::AssetUrlHelper
|
||
|
|
||
|
# This endpoint allows us to produce the data required to start up Discourse via JSON API,
|
||
|
# so that you don't have to scrape the HTML for `data-*` payloads
|
||
|
def index
|
||
|
locale = script_asset_path("locales/#{I18n.locale}")
|
||
|
|
||
|
preload_anonymous_data
|
||
|
if current_user
|
||
|
current_user.sync_notification_channel_position
|
||
|
preload_current_user_data
|
||
|
end
|
||
|
|
||
|
bootstrap = {
|
||
|
theme_ids: theme_ids,
|
||
|
title: SiteSetting.title,
|
||
|
current_homepage: current_homepage,
|
||
|
locale_script: "#{Discourse.base_url}#{locale}",
|
||
|
setup_data: client_side_setup_data,
|
||
|
preloaded: @preloaded
|
||
|
}
|
||
|
|
||
|
render_json_dump(bootstrap: bootstrap)
|
||
|
end
|
||
|
end
|