forked from treehouse/mastodon
Merge branch 'master' into glitch-soc/merge-upstream
commit
f509815379
|
@ -52,9 +52,7 @@ Bug reports and feature suggestions can be submitted to [GitHub Issues](https://
|
||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
|
|
||||||
You can submit translations via [Weblate](https://weblate.joinmastodon.org/). They are periodically merged into the codebase.
|
You can submit translations via pull request.
|
||||||
|
|
||||||
[![Mastodon translation statistics by language](https://weblate.joinmastodon.org/widgets/mastodon/-/multi-auto.svg)](https://weblate.joinmastodon.org/)
|
|
||||||
|
|
||||||
## Pull requests
|
## Pull requests
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ class Poll extends ImmutablePureComponent {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func,
|
dispatch: PropTypes.func,
|
||||||
disabled: PropTypes.bool,
|
disabled: PropTypes.bool,
|
||||||
|
visible: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
|
@ -69,13 +70,14 @@ class Poll extends ImmutablePureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
renderOption (option, optionIndex) {
|
renderOption (option, optionIndex) {
|
||||||
const { poll, disabled } = this.props;
|
const { poll, disabled, visible } = this.props;
|
||||||
const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
|
const percent = poll.get('votes_count') === 0 ? 0 : (option.get('votes_count') / poll.get('votes_count')) * 100;
|
||||||
const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') > other.get('votes_count'));
|
const leading = poll.get('options').filterNot(other => other.get('title') === option.get('title')).every(other => option.get('votes_count') > other.get('votes_count'));
|
||||||
const active = !!this.state.selected[`${optionIndex}`];
|
const active = !!this.state.selected[`${optionIndex}`];
|
||||||
const showResults = poll.get('voted') || poll.get('expired');
|
const showResults = poll.get('voted') || poll.get('expired');
|
||||||
|
|
||||||
let titleEmojified = option.get('title_emojified');
|
let titleEmojified = option.get('title_emojified');
|
||||||
|
|
||||||
if (!titleEmojified) {
|
if (!titleEmojified) {
|
||||||
const emojiMap = makeEmojiMap(poll);
|
const emojiMap = makeEmojiMap(poll);
|
||||||
titleEmojified = emojify(escapeTextContentForBrowser(option.get('title')), emojiMap);
|
titleEmojified = emojify(escapeTextContentForBrowser(option.get('title')), emojiMap);
|
||||||
|
@ -104,7 +106,7 @@ class Poll extends ImmutablePureComponent {
|
||||||
{!showResults && <span className={classNames('poll__input', { checkbox: poll.get('multiple'), active })} />}
|
{!showResults && <span className={classNames('poll__input', { checkbox: poll.get('multiple'), active })} />}
|
||||||
{showResults && <span className='poll__number'>{Math.round(percent)}%</span>}
|
{showResults && <span className='poll__number'>{Math.round(percent)}%</span>}
|
||||||
|
|
||||||
<span dangerouslySetInnerHTML={{ __html: titleEmojified }} />
|
{visible ? <span dangerouslySetInnerHTML={{ __html: titleEmojified }} /> : <span>{String.fromCharCode(64 + optionIndex + 1)}</span>}
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
|
|
|
@ -272,7 +272,7 @@ class Status extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status.get('poll')) {
|
if (status.get('poll')) {
|
||||||
media = <PollContainer pollId={status.get('poll')} />;
|
media = <PollContainer pollId={status.get('poll')} visible={!status.get('hidden')} />;
|
||||||
} else if (status.get('media_attachments').size > 0) {
|
} else if (status.get('media_attachments').size > 0) {
|
||||||
if (this.props.muted) {
|
if (this.props.muted) {
|
||||||
media = (
|
media = (
|
||||||
|
|
|
@ -106,7 +106,7 @@ export default class DetailedStatus extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status.get('poll')) {
|
if (status.get('poll')) {
|
||||||
media = <PollContainer pollId={status.get('poll')} />;
|
media = <PollContainer pollId={status.get('poll')} visible={!status.get('hidden')} />;
|
||||||
} else if (status.get('media_attachments').size > 0) {
|
} else if (status.get('media_attachments').size > 0) {
|
||||||
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
|
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
|
||||||
const video = status.getIn(['media_attachments', 0]);
|
const video = status.getIn(['media_attachments', 0]);
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
- unless media.file.meta.nil?
|
- unless media.file.meta.nil?
|
||||||
= opengraph 'og:image:width', media.file.meta.dig('original', 'width')
|
= opengraph 'og:image:width', media.file.meta.dig('original', 'width')
|
||||||
= opengraph 'og:image:height', media.file.meta.dig('original', 'height')
|
= opengraph 'og:image:height', media.file.meta.dig('original', 'height')
|
||||||
|
- if media.description.present?
|
||||||
|
= opengraph 'og:image:alt', media.description
|
||||||
- elsif media.video? || media.gifv?
|
- elsif media.video? || media.gifv?
|
||||||
- player_card = true
|
- player_card = true
|
||||||
= opengraph 'og:image', full_asset_url(media.file.url(:small))
|
= opengraph 'og:image', full_asset_url(media.file.url(:small))
|
||||||
|
|
|
@ -298,8 +298,8 @@ cs:
|
||||||
one: Jeden účet v databázi byl ovlivněn
|
one: Jeden účet v databázi byl ovlivněn
|
||||||
other: "%{count} účtů v databázi bylo ovlivněno"
|
other: "%{count} účtů v databázi bylo ovlivněno"
|
||||||
retroactive:
|
retroactive:
|
||||||
silence: Odtišit všechny existující účty z této domény
|
silence: Odtišit existující ovlivněné účty z této domény
|
||||||
suspend: Zrušit pozastavení všech existujících účtů z této domény
|
suspend: Zrušit pozastavení existujících ovlivněných účtů z této domény
|
||||||
title: Zrušit blokaci domény %{domain}
|
title: Zrušit blokaci domény %{domain}
|
||||||
undo: Odvolat
|
undo: Odvolat
|
||||||
undo: Odvolat blokaci domény
|
undo: Odvolat blokaci domény
|
||||||
|
|
|
@ -163,7 +163,7 @@ sk:
|
||||||
resubscribe: Znovu odoberaj
|
resubscribe: Znovu odoberaj
|
||||||
role: Oprávnenia
|
role: Oprávnenia
|
||||||
roles:
|
roles:
|
||||||
admin: Administrátor
|
admin: Správca
|
||||||
moderator: Moderátor
|
moderator: Moderátor
|
||||||
staff: Člen
|
staff: Člen
|
||||||
user: Užívateľ
|
user: Užívateľ
|
||||||
|
@ -174,7 +174,7 @@ sk:
|
||||||
created_reports: Vytvorené hlásenia
|
created_reports: Vytvorené hlásenia
|
||||||
targeted_reports: Nahlásenia od ostatných
|
targeted_reports: Nahlásenia od ostatných
|
||||||
silence: Stíš
|
silence: Stíš
|
||||||
silenced: Utíšený/é
|
silenced: Stíšený/é
|
||||||
statuses: Príspevky
|
statuses: Príspevky
|
||||||
subscribe: Odoberaj
|
subscribe: Odoberaj
|
||||||
suspended: Zablokovaní
|
suspended: Zablokovaní
|
||||||
|
@ -298,8 +298,8 @@ sk:
|
||||||
one: Jeden účet v databáze bol ovplyvnený
|
one: Jeden účet v databáze bol ovplyvnený
|
||||||
other: "%{count} účtov v databáze bolo ovplyvnených"
|
other: "%{count} účtov v databáze bolo ovplyvnených"
|
||||||
retroactive:
|
retroactive:
|
||||||
silence: Zruš stíšenie všetkých existujúcich účtov z tejto domény
|
silence: Zruš stíšenie všetkých momentálne utíšených účtov z tejto domény
|
||||||
suspend: Zruš suspendáciu všetkých existujúcich účtov z tejto domény
|
suspend: Zruš suspendáciu všetkých momentálne odročených účtov z tejto domény
|
||||||
title: Zruš blokovanie domény %{domain}
|
title: Zruš blokovanie domény %{domain}
|
||||||
undo: Vráť späť
|
undo: Vráť späť
|
||||||
undo: Odvolaj blokovanie domény
|
undo: Odvolaj blokovanie domény
|
||||||
|
@ -396,7 +396,7 @@ sk:
|
||||||
desc_html: Sčítanie miestne uverejnených príspevkov, aktívnych užívateľov, a nových registrácii, v týždenných intervaloch
|
desc_html: Sčítanie miestne uverejnených príspevkov, aktívnych užívateľov, a nových registrácii, v týždenných intervaloch
|
||||||
title: Vydať hromadné štatistiky o užívateľskej aktivite
|
title: Vydať hromadné štatistiky o užívateľskej aktivite
|
||||||
bootstrap_timeline_accounts:
|
bootstrap_timeline_accounts:
|
||||||
desc_html: Ak je prezývok viacero, každú oddeľte čiarkou. Možno zadať iba miestne, odomknuté účty. Pokiaľ necháte prázdne, je to pre všetkých miestnych administrátorov.
|
desc_html: Ak je prezývok viacero, každú oddeľ čiarkou. Je možné zadať iba miestne, odomknuté účty. Pokiaľ necháš prázdne, je to pre všetkých miestnych správcov.
|
||||||
title: Štandardní následovníci nových užívateľov
|
title: Štandardní následovníci nových užívateľov
|
||||||
contact_information:
|
contact_information:
|
||||||
email: Pracovný email
|
email: Pracovný email
|
||||||
|
@ -405,30 +405,30 @@ sk:
|
||||||
desc_html: Uprav vzhľad pomocou CSS, ktoré je načítané na každej stránke
|
desc_html: Uprav vzhľad pomocou CSS, ktoré je načítané na každej stránke
|
||||||
title: Vlastné CSS
|
title: Vlastné CSS
|
||||||
hero:
|
hero:
|
||||||
desc_html: Zobrazuje sa na hlavnej stránke. Doporučuje sa rozlišenie aspoň 600x100px Pokiaľ nič nieje dodané, bude nastavený základný orázok serveru
|
desc_html: Zobrazuje sa na hlavnej stránke. Doporučené je rozlišenie aspoň 600x100px. Pokiaľ nič nieje dodané, bude nastavený základný orázok serveru.
|
||||||
title: Obrázok hrdinu
|
title: Obrázok hrdinu
|
||||||
mascot:
|
mascot:
|
||||||
desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot
|
desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot.
|
||||||
title: Obrázok maskota
|
title: Obrázok maskota
|
||||||
peers_api_enabled:
|
peers_api_enabled:
|
||||||
desc_html: Domény, na ktoré tento server už v rámci fediverse natrafil
|
desc_html: Domény, na ktoré tento server už v rámci fediversa natrafil
|
||||||
title: Zverejni zoznam objavených serverov
|
title: Zverejni zoznam objavených serverov
|
||||||
preview_sensitive_media:
|
preview_sensitive_media:
|
||||||
desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú médiá označené ako senzitívne
|
desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú médiá označené ako citlivé
|
||||||
title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph
|
title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph
|
||||||
profile_directory:
|
profile_directory:
|
||||||
desc_html: Povoľ užívateľom, aby mohli byť nájdení
|
desc_html: Povoľ užívateľom, aby mohli byť nájdení
|
||||||
title: Zapni profilový katalóg
|
title: Zapni profilový katalóg
|
||||||
registrations:
|
registrations:
|
||||||
closed_message:
|
closed_message:
|
||||||
desc_html: Toto sa zobrazí na hlavnej stránke v prípade že sú registrácie uzavreté. Možno tu použiť aj HTML kód
|
desc_html: Toto sa zobrazí na hlavnej stránke v prípade, že sú registrácie uzavreté. Možno tu použiť aj HTML kód
|
||||||
title: Správa o uzavretých registráciách
|
title: Správa o uzavretých registráciách
|
||||||
deletion:
|
deletion:
|
||||||
desc_html: Dovoľiť každému aby si mohli zmazať svok účet
|
desc_html: Dovoľ každému aby si mohli zmazať svok účet
|
||||||
title: Sprístupniť možnosť vymazať si účet
|
title: Sprístupni možnosť vymazať si účet
|
||||||
min_invite_role:
|
min_invite_role:
|
||||||
disabled: Nikto
|
disabled: Nikto
|
||||||
title: Povoliť pozvánky od
|
title: Povoľ pozvánky od
|
||||||
registrations_mode:
|
registrations_mode:
|
||||||
modes:
|
modes:
|
||||||
approved: Pre registráciu je nutné povolenie
|
approved: Pre registráciu je nutné povolenie
|
||||||
|
@ -436,11 +436,11 @@ sk:
|
||||||
open: Ktokoľvek sa môže zaregistrovať
|
open: Ktokoľvek sa môže zaregistrovať
|
||||||
title: Režím registrácií
|
title: Režím registrácií
|
||||||
show_known_fediverse_at_about_page:
|
show_known_fediverse_at_about_page:
|
||||||
desc_html: Pokiaľ je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi.
|
desc_html: Ak je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi.
|
||||||
title: Ukáž celé známe fediverse na náhľade osi
|
title: Ukáž celé známe fediverse na náhľade osi
|
||||||
show_staff_badge:
|
show_staff_badge:
|
||||||
desc_html: Zobraz moderátorsky odznak na užívateľovom profile
|
desc_html: Ukáž moderátorsky odznak na užívateľovom profile
|
||||||
title: Zobraz značku moderátora
|
title: Ukáž značku moderátora
|
||||||
site_description:
|
site_description:
|
||||||
desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Opíš, čo robí tento Mastodon server špecifickým, a ďalej hocičo iné, čo považuješ za dôležité. Môžeš použiť HTML kód, hlavne <code><a></code> a <code><em></code>.
|
desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Opíš, čo robí tento Mastodon server špecifickým, a ďalej hocičo iné, čo považuješ za dôležité. Môžeš použiť HTML kód, hlavne <code><a></code> a <code><em></code>.
|
||||||
title: Popis servera
|
title: Popis servera
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
class RemoveBoostsWideningAudience < ActiveRecord::Migration[5.2]
|
||||||
|
disable_ddl_transaction!
|
||||||
|
|
||||||
|
def up
|
||||||
|
public_boosts = Status.find_by_sql(<<-SQL)
|
||||||
|
SELECT boost.id
|
||||||
|
FROM statuses AS boost
|
||||||
|
LEFT JOIN statuses AS boosted ON boost.reblog_of_id = boosted.id
|
||||||
|
WHERE
|
||||||
|
boost.id > 101746055577600000
|
||||||
|
AND (boost.local = TRUE OR boost.uri IS NULL)
|
||||||
|
AND boost.visibility IN (0, 1)
|
||||||
|
AND boost.reblog_of_id IS NOT NULL
|
||||||
|
AND boosted.visibility = 2
|
||||||
|
SQL
|
||||||
|
|
||||||
|
RemovalWorker.push_bulk(public_boosts.pluck(:id))
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
raise ActiveRecord::IrreversibleMigration
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2019_05_12_200918) do
|
ActiveRecord::Schema.define(version: 2019_05_19_130537) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
|
|
@ -13,7 +13,7 @@ services:
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
restart: always
|
restart: always
|
||||||
image: redis:4.0-alpine
|
image: redis:5.0-alpine
|
||||||
networks:
|
networks:
|
||||||
- internal_network
|
- internal_network
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
|
Loading…
Reference in New Issue