aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2018-07-01 04:12:34 +0200
committerGitHub <noreply@github.com>2018-07-01 04:12:34 +0200
commit2092d5c0ad099e8f60eb001ee0cd647fc759aefc (patch)
treef5e6dfdd44ebf18bd648fdfbe5bd9b446ee1d5b3
parent8fea9cc3112968d90ba4df02a90aa3a031a5f3a9 (diff)
downloadmastodon-2092d5c0ad099e8f60eb001ee0cd647fc759aefc.tar
mastodon-2092d5c0ad099e8f60eb001ee0cd647fc759aefc.tar.gz
mastodon-2092d5c0ad099e8f60eb001ee0cd647fc759aefc.tar.bz2
mastodon-2092d5c0ad099e8f60eb001ee0cd647fc759aefc.zip
Improve embeds (#7919)
* Make embeds cacheable by reverse proxy * Make follow button on embeds open remote follow modal Instead of web+mastodon://, also, turn the button blue, and add a sign up prompt to the remote follow modal
-rw-r--r--app/controllers/remote_follow_controller.rb1
-rw-r--r--app/controllers/statuses_controller.rb5
-rw-r--r--app/javascript/packs/public.js2
-rw-r--r--app/javascript/styles/mastodon/accounts.scss1
-rw-r--r--app/javascript/styles/mastodon/stream_entries.scss13
-rw-r--r--app/views/remote_follow/new.html.haml2
-rw-r--r--app/views/stream_entries/_detailed_status.html.haml2
-rw-r--r--config/locales/en.yml1
8 files changed, 21 insertions, 6 deletions
diff --git a/app/controllers/remote_follow_controller.rb b/app/controllers/remote_follow_controller.rb
index 3b988e08d..cd61fd763 100644
--- a/app/controllers/remote_follow_controller.rb
+++ b/app/controllers/remote_follow_controller.rb
@@ -5,6 +5,7 @@ class RemoteFollowController < ApplicationController
before_action :set_account
before_action :gone, if: :suspended_account?
+ before_action :set_body_classes
def new
@remote_follow = RemoteFollow.new(session_params)
diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb
index 645995c2a..b85341822 100644
--- a/app/controllers/statuses_controller.rb
+++ b/app/controllers/statuses_controller.rb
@@ -46,7 +46,12 @@ class StatusesController < ApplicationController
end
def embed
+ raise ActiveRecord::RecordNotFound if @status.hidden?
+
+ skip_session!
+ expires_in 180, public: true
response.headers['X-Frame-Options'] = 'ALLOWALL'
+
render 'stream_entries/embed', layout: 'embedded'
end
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index d5e5b7fe0..cc2fed3f1 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -64,7 +64,7 @@ function main() {
[].forEach.call(document.querySelectorAll('.logo-button'), (content) => {
content.addEventListener('click', (e) => {
e.preventDefault();
- window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');
+ window.open(e.target.href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');
});
});
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 14dc5dd62..8033e6418 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -464,6 +464,7 @@
background: $simple-background-color;
&__header {
+ background: $base-shadow-color;
background-size: cover;
background-position: center center;
height: 90px;
diff --git a/app/javascript/styles/mastodon/stream_entries.scss b/app/javascript/styles/mastodon/stream_entries.scss
index 281cbaf83..369bb4479 100644
--- a/app/javascript/styles/mastodon/stream_entries.scss
+++ b/app/javascript/styles/mastodon/stream_entries.scss
@@ -324,6 +324,9 @@
.button.button-secondary.logo-button {
flex: 0 auto;
font-size: 14px;
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+ border: 0;
svg {
width: 20px;
@@ -332,19 +335,21 @@
margin-right: 5px;
path:first-child {
- fill: $ui-primary-color;
+ fill: $primary-text-color;
}
path:last-child {
- fill: $simple-background-color;
+ fill: $ui-highlight-color;
}
}
&:active,
&:focus,
&:hover {
- svg path:first-child {
- fill: lighten($ui-primary-color, 4%);
+ background: lighten($ui-highlight-color, 10%);
+
+ svg path:last-child {
+ fill: lighten($ui-highlight-color, 10%);
}
}
}
diff --git a/app/views/remote_follow/new.html.haml b/app/views/remote_follow/new.html.haml
index fc5c4da20..3273c318c 100644
--- a/app/views/remote_follow/new.html.haml
+++ b/app/views/remote_follow/new.html.haml
@@ -11,3 +11,5 @@
.actions
= f.button :button, t('remote_follow.proceed'), type: :submit
+
+ %p.hint.subtle-hint= t('remote_follow.no_account_html', sign_up_path: open_registrations? ? new_user_registration_path : 'https://joinmastodon.org')
diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml
index c0f1e4f0f..de844818f 100644
--- a/app/views/stream_entries/_detailed_status.html.haml
+++ b/app/views/stream_entries/_detailed_status.html.haml
@@ -8,7 +8,7 @@
%span= acct(status.account)
- if embedded_view?
- = link_to "web+mastodon://follow?uri=#{status.account.local_username_and_domain}", class: 'button button-secondary logo-button', target: '_new' do
+ = link_to account_remote_follow_path(status.account), class: 'button button-secondary logo-button', target: '_new' do
= render file: Rails.root.join('app', 'javascript', 'images', 'logo.svg')
= t('accounts.follow')
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 5cb81ebe9..8ab652045 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -615,6 +615,7 @@ en:
remote_follow:
acct: Enter your username@domain you want to follow from
missing_resource: Could not find the required redirect URL for your account
+ no_account_html: Don't have an account? You can <a href='%{sign_up_path}' target='_blank'>sign up here</a>
proceed: Proceed to follow
prompt: 'You are going to follow:'
remote_unfollow: