92 lines
2.2 KiB
Ruby
92 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class StaticController < ApplicationController
|
|
include ThemeHelper
|
|
|
|
def index
|
|
if user_signed_in?
|
|
@timeline = current_user.cursored_timeline(last_id: params[:last_id])
|
|
@timeline_last_id = @timeline.map(&:id).min
|
|
@more_data_available = !current_user.cursored_timeline(last_id: @timeline_last_id, size: 1).count.zero?
|
|
|
|
respond_to do |format|
|
|
format.html
|
|
format.js { render layout: false }
|
|
end
|
|
else
|
|
return render 'static/front'
|
|
end
|
|
end
|
|
|
|
def about
|
|
user_count = User
|
|
.where.not(confirmed_at: nil)
|
|
.where("answered_count > 0")
|
|
.count
|
|
|
|
current_ban_count = UserBan
|
|
.current
|
|
.joins(:user)
|
|
.where.not("users.confirmed_at": nil)
|
|
.where("users.answered_count > 0")
|
|
.count
|
|
|
|
@users = user_count - current_ban_count
|
|
@questions = Question.count
|
|
@answers = Answer.count
|
|
@comments = Comment.count
|
|
@smiles = Appendable::Reaction.count
|
|
end
|
|
|
|
def linkfilter
|
|
redirect_to root_path unless params[:url]
|
|
|
|
@link = params[:url]
|
|
end
|
|
|
|
def faq
|
|
|
|
end
|
|
|
|
def privacy_policy
|
|
|
|
end
|
|
|
|
def terms
|
|
|
|
end
|
|
|
|
def webapp_manifest
|
|
render json: {
|
|
name: APP_CONFIG["site_name"],
|
|
description: t(".front.subtitle"),
|
|
start_url: root_url(source: "pwa"),
|
|
scope: root_url,
|
|
display: "standalone",
|
|
categories: %w[social],
|
|
lang: I18n.locale,
|
|
shortcuts: [
|
|
{
|
|
name: t('views.navigation.inbox'),
|
|
url: inbox_url,
|
|
icons: [
|
|
{
|
|
src: "/icons/shortcuts/inbox.svg",
|
|
sizes: "96x96"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
icons: %i[1024 512 384 192 128 96 72 48].map do |size|
|
|
[
|
|
{ src: "/icons/maskable_icon_x#{size}.webp", size: "#{size}x#{size}", type: "image/webp" },
|
|
{ src: "/icons/maskable_icon_x#{size}.png", size: "#{size}x#{size}", type: "image/png" }
|
|
]
|
|
end.flatten,
|
|
theme_color: theme_color,
|
|
background_color: mobile_theme_color,
|
|
orientation: "any"
|
|
}
|
|
end
|
|
end
|