diff --git a/app/javascript/flavours/glitch/styles/modern/diff.css b/app/javascript/flavours/glitch/styles/modern/diff.css index e8af4f4a9c..e82a4e69b6 100644 --- a/app/javascript/flavours/glitch/styles/modern/diff.css +++ b/app/javascript/flavours/glitch/styles/modern/diff.css @@ -142,6 +142,7 @@ body.app-body.flavour-modern-glitch > #mastodon .status__relative-time { margin-inline: auto 5px !important; z-index: 2; flex-grow: 0 !important; + min-width: 5ch !important; } body.app-body.flavour-modern-glitch > #mastodon .reactions-bar { diff --git a/db/schema.rb b/db/schema.rb index 7aaed89751..a9adf1e128 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1609,6 +1609,53 @@ ActiveRecord::Schema[8.1].define(version: 2026_06_11_150940) do add_foreign_key "web_settings", "users", name: "fk_11910667b2", on_delete: :cascade add_foreign_key "webauthn_credentials", "users", on_delete: :cascade + create_view "instances", materialized: true, sql_definition: <<-SQL + WITH domain_counts(domain, accounts_count) AS ( + SELECT accounts.domain, + count(*) AS accounts_count + FROM accounts + WHERE (accounts.domain IS NOT NULL) + GROUP BY accounts.domain + ) + SELECT domain_counts.domain, + domain_counts.accounts_count + FROM domain_counts + UNION + SELECT domain_blocks.domain, + COALESCE(domain_counts.accounts_count, (0)::bigint) AS accounts_count + FROM (domain_blocks + LEFT JOIN domain_counts ON (((domain_counts.domain)::text = (domain_blocks.domain)::text))) + UNION + SELECT domain_allows.domain, + COALESCE(domain_counts.accounts_count, (0)::bigint) AS accounts_count + FROM (domain_allows + LEFT JOIN domain_counts ON (((domain_counts.domain)::text = (domain_allows.domain)::text))); + SQL + add_index "instances", "reverse(('.'::text || (domain)::text)), domain", name: "index_instances_on_reverse_domain" + add_index "instances", ["domain"], name: "index_instances_on_domain", unique: true + + create_view "user_ips", sql_definition: <<-SQL + SELECT t0.user_id, + t0.ip, + max(t0.used_at) AS used_at + FROM ( SELECT users.id AS user_id, + users.sign_up_ip AS ip, + users.created_at AS used_at + FROM users + WHERE (users.sign_up_ip IS NOT NULL) + UNION ALL + SELECT session_activations.user_id, + session_activations.ip, + session_activations.updated_at + FROM session_activations + UNION ALL + SELECT login_activities.user_id, + login_activities.ip, + login_activities.created_at + FROM login_activities + WHERE (login_activities.success = true)) t0 + GROUP BY t0.user_id, t0.ip; + SQL create_view "account_summaries", materialized: true, sql_definition: <<-SQL SELECT accounts.id AS account_id, mode() WITHIN GROUP (ORDER BY t0.language) AS language,