Merge branch 'master' into glitch-soc/merge-upstream

rebase/4.0.0rc2
Thibaut Girka 2019-05-19 17:46:31 +02:00
commit f509815379
10 changed files with 56 additions and 31 deletions

View File

@ -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

View File

@ -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>
); );

View File

@ -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 = (

View File

@ -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]);

View File

@ -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))

View File

@ -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

View File

@ -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ľ 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>&lt;a&gt;</code> a <code>&lt;em&gt;</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>&lt;a&gt;</code> a <code>&lt;em&gt;</code>.
title: Popis servera title: Popis servera

View File

@ -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

View File

@ -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"

View File

@ -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: