From 18f2c390748a112ac72bf9203f1513d295b13b3d Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Sun, 31 May 2020 16:11:02 +0200 Subject: Hide local-only pinned toots from public profiles Fixes #1336 This also fixes federating pinned toots when some of them are local-only. Public profiles will not show public toots, whether you are logged in or not (this is consistent with local-only toots that are not pinned). --- app/controllers/accounts_controller.rb | 2 +- app/controllers/activitypub/collections_controller.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index e3d8c1061..76703ed05 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -27,7 +27,7 @@ class AccountsController < ApplicationController return end - @pinned_statuses = cache_collection(@account.pinned_statuses, Status) if show_pinned_statuses? + @pinned_statuses = cache_collection(@account.pinned_statuses.not_local_only, Status) if show_pinned_statuses? @statuses = filtered_status_page @statuses = cache_collection(@statuses, Status) @rss_url = rss_url diff --git a/app/controllers/activitypub/collections_controller.rb b/app/controllers/activitypub/collections_controller.rb index c1e7aa550..9ca216e4f 100644 --- a/app/controllers/activitypub/collections_controller.rb +++ b/app/controllers/activitypub/collections_controller.rb @@ -24,7 +24,7 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController def set_size case params[:id] when 'featured' - @size = @account.pinned_statuses.count + @size = @account.pinned_statuses.not_local_only.count else not_found end @@ -39,7 +39,7 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController if authorized_fetch_mode? && !signed_request_account.nil? && (@account.blocking?(signed_request_account) || (!signed_request_account.domain.nil? && @account.domain_blocking?(signed_request_account.domain))) Status.none else - @account.pinned_statuses + @account.pinned_statuses.not_local_only end end end -- cgit From 64154c5161d4d5c82877fba549d72068cc7f9e16 Mon Sep 17 00:00:00 2001 From: "Brian C. Lindner" Date: Sun, 31 May 2020 14:34:34 -0400 Subject: Allow Ctrl-click to keep EmojiPicker window open (#13896) --- .../mastodon/features/compose/components/emoji_picker_dropdown.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js index 582bb0d39..a6186010b 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js @@ -199,12 +199,13 @@ class EmojiPickerMenu extends React.PureComponent { }; } - handleClick = emoji => { + handleClick = (emoji, event) => { if (!emoji.native) { emoji.native = emoji.colons; } - - this.props.onClose(); + if (!event.ctrlKey) { + this.props.onClose(); + } this.props.onPick(emoji); } -- cgit From b4a8400afd88a2ae8822757e5d30975494be2512 Mon Sep 17 00:00:00 2001 From: Christopher Choi Date: Sun, 31 May 2020 11:35:18 -0700 Subject: Adjust flash alert contrast for better readability (#13892) --- app/javascript/styles/mastodon/forms.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 0e5b00e8f..7a0b2f9a3 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -587,7 +587,7 @@ code { &.alert { border: 1px solid rgba($error-value-color, 0.5); - background: rgba($error-value-color, 0.25); + background: rgba($error-value-color, 0.1); color: $error-value-color; } -- cgit From eeddb1a624c0e743e3e7b6d35104adfb10f2a747 Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 31 May 2020 20:38:56 +0200 Subject: Fix unsent toot confirmation dialog not popping up in single column (#13888) --- .../features/ui/components/compose_panel.js | 38 +++++++++++++++++----- app/javascript/mastodon/features/ui/index.js | 1 + 2 files changed, 30 insertions(+), 9 deletions(-) (limited to 'app') diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.js index c7821f473..3d0c48c7a 100644 --- a/app/javascript/mastodon/features/ui/components/compose_panel.js +++ b/app/javascript/mastodon/features/ui/components/compose_panel.js @@ -1,16 +1,36 @@ import React from 'react'; +import { connect } from 'react-redux'; +import PropTypes from 'prop-types'; import SearchContainer from 'mastodon/features/compose/containers/search_container'; import ComposeFormContainer from 'mastodon/features/compose/containers/compose_form_container'; import NavigationContainer from 'mastodon/features/compose/containers/navigation_container'; import LinkFooter from './link_footer'; +import { changeComposing } from 'mastodon/actions/compose'; -const ComposePanel = () => ( -
- - - - -
-); +export default @connect() +class ComposePanel extends React.PureComponent { -export default ComposePanel; + static propTypes = { + dispatch: PropTypes.func.isRequired, + }; + + onFocus = () => { + this.props.dispatch(changeComposing(true)); + } + + onBlur = () => { + this.props.dispatch(changeComposing(false)); + } + + render() { + return ( +
+ + + + +
+ ); + } + +} diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 81ffad22e..d21ecf208 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -254,6 +254,7 @@ class UI extends React.PureComponent { dispatch(synchronouslySubmitMarkers()); if (isComposing && (hasComposingText || hasMediaAttachments)) { + e.preventDefault(); // Setting returnValue to any string causes confirmation dialog. // Many browsers no longer display this text to users, // but we set user-friendly message for other browsers, e.g. Edge. -- cgit From 51ff679b9deb559ddc53cdfa6265b996f6c7fd5e Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 1 Jun 2020 03:47:20 +0200 Subject: Fix admin page crashing when trying to block an invalid domain name (#13884) * Fix admin page crashing when trying to block an invalid domain name Fixes #13880 * Fix trailing and leading spaces not being properly stripped for domain blocks --- app/models/concerns/domain_normalizable.rb | 2 +- app/models/domain_block.rb | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/models/concerns/domain_normalizable.rb b/app/models/concerns/domain_normalizable.rb index c00b3142f..fb84058fc 100644 --- a/app/models/concerns/domain_normalizable.rb +++ b/app/models/concerns/domain_normalizable.rb @@ -4,7 +4,7 @@ module DomainNormalizable extend ActiveSupport::Concern included do - before_save :normalize_domain + before_validation :normalize_domain end private diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index f0a5bd296..2b18e01fa 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -50,11 +50,13 @@ class DomainBlock < ApplicationRecord def rule_for(domain) return if domain.blank? - uri = Addressable::URI.new.tap { |u| u.host = domain.gsub(/[\/]/, '') } + uri = Addressable::URI.new.tap { |u| u.host = domain.strip.gsub(/[\/]/, '') } segments = uri.normalized_host.split('.') variants = segments.map.with_index { |_, i| segments[i..-1].join('.') } where(domain: variants).order(Arel.sql('char_length(domain) desc')).first + rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError + nil end end -- cgit From 1f94f4009e5b072f8b508b1bf1a046ea034de7c1 Mon Sep 17 00:00:00 2001 From: ariasuni Date: Mon, 1 Jun 2020 02:10:45 +0200 Subject: Improve appearance of notification cleaning UI - Use smaller font-size for consistency with the rest of the UI - Make better use of the horizontal space when available --- .../flavours/glitch/styles/components/columns.scss | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss index 3269638eb..6b657660a 100644 --- a/app/javascript/flavours/glitch/styles/components/columns.scss +++ b/app/javascript/flavours/glitch/styles/components/columns.scss @@ -363,8 +363,8 @@ @extend .column-header__button; background: transparent; text-align: center; - padding: 10px 0; - white-space: pre-wrap; + padding: 10px 5px; + font-size: 14px; } b { @@ -372,6 +372,23 @@ } } + +.layout-single-column .column-header__notif-cleaning-buttons { + @media screen and (min-width: $no-gap-breakpoint) { + b, i { + margin-right: 5px; + } + + br { + display: none; + } + + button { + padding: 15px 5px; + } + } +} + // The notifs drawer with no padding to have more space for the buttons .column-header__collapsible-inner.nopad-drawer { padding: 0; -- cgit From a8559458c3dece078db3e087973bfee10379318a Mon Sep 17 00:00:00 2001 From: "Brian C. Lindner" Date: Sun, 31 May 2020 14:34:34 -0400 Subject: [Glitch] Allow Ctrl-click to keep EmojiPicker window open Port 64154c5161d4d5c82877fba549d72068cc7f9e16 to glitch-soc Signed-off-by: Thibaut Girka --- app/javascript/flavours/glitch/features/emoji_picker/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/javascript/flavours/glitch/features/emoji_picker/index.js b/app/javascript/flavours/glitch/features/emoji_picker/index.js index 3717fcd82..14e5cb94a 100644 --- a/app/javascript/flavours/glitch/features/emoji_picker/index.js +++ b/app/javascript/flavours/glitch/features/emoji_picker/index.js @@ -279,12 +279,13 @@ class EmojiPickerMenu extends React.PureComponent { }; } - handleClick = emoji => { + handleClick = (emoji, event) => { if (!emoji.native) { emoji.native = emoji.colons; } - - this.props.onClose(); + if (!event.ctrlKey) { + this.props.onClose(); + } this.props.onPick(emoji); } -- cgit From c225ac8b9eebf4cc3f32bf3f204f7a5256d93d38 Mon Sep 17 00:00:00 2001 From: Christopher Choi Date: Sun, 31 May 2020 11:35:18 -0700 Subject: [Glitch] Adjust flash alert contrast for better readability Port b4a8400afd88a2ae8822757e5d30975494be2512 to glitch-soc Signed-off-by: Thibaut Girka --- app/javascript/flavours/glitch/styles/forms.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/javascript/flavours/glitch/styles/forms.scss b/app/javascript/flavours/glitch/styles/forms.scss index 5de650f0a..6767c15f1 100644 --- a/app/javascript/flavours/glitch/styles/forms.scss +++ b/app/javascript/flavours/glitch/styles/forms.scss @@ -578,7 +578,7 @@ code { &.alert { border: 1px solid rgba($error-value-color, 0.5); - background: rgba($error-value-color, 0.25); + background: rgba($error-value-color, 0.1); color: $error-value-color; } -- cgit From f96a891853e73454bacdb25922d403834878f8c4 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Tue, 2 Jun 2020 10:24:04 +0900 Subject: Fix ref attr for react-textarea-autozsize (#13936) --- app/javascript/mastodon/components/autosuggest_textarea.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.js index ac2a6366a..58ec4f6eb 100644 --- a/app/javascript/mastodon/components/autosuggest_textarea.js +++ b/app/javascript/mastodon/components/autosuggest_textarea.js @@ -208,7 +208,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { {placeholder}