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
|