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
This commit is contained in:
Eugen Rochko 2018-07-01 04:12:34 +02:00 committed by GitHub
parent 8fea9cc311
commit 2092d5c0ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 6 deletions

View file

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

View file

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

View file

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

View file

@ -464,6 +464,7 @@
background: $simple-background-color;
&__header {
background: $base-shadow-color;
background-size: cover;
background-position: center center;
height: 90px;

View file

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

View file

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

View file

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

View file

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