Skip to content
Snippets Groups Projects
Commit aed25932 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Add OEmbed iframe HTML, convert emojis on public pages, increase size of attachment thumbnails

parent 6de079a5
No related branches found
No related tags found
No related merge requests found
//= require jquery
//= require jquery_ujs
//= require extras
import emojify from './components/emoji'
$(() => {
$.each($('.entry .content, .name, .account__header__content'), (_, content) => {
const $content = $(content);
$content.html(emojify($content.html()));
});
});
......@@ -114,6 +114,18 @@ body {
padding: 0;
}
&.embed {
background: transparent;
margin: 0;
.container {
position: absolute;
width: 100%;
height: 100%;
overflow: hidden;
}
}
@media screen and (max-width: 360px) {
padding-bottom: 0;
}
......
......@@ -232,3 +232,24 @@
}
}
}
.embed {
.activity-stream {
border-radius: 4px;
box-shadow: none;
.entry {
&:last-child {
border-radius: 0 0 4px 4px;
}
&:first-child {
border-radius: 4px 4px 0 0;
&:last-child {
border-radius: 4px;
}
}
}
}
}
......@@ -5,8 +5,8 @@ class Api::OembedController < ApiController
def show
@stream_entry = stream_entry_from_url(params[:url])
@width = [300, params[:maxwidth].to_i].min
@height = [200, params[:maxheight].to_i].min
@width = [300, params[:maxwidth].to_i].max
@height = [200, params[:maxheight].to_i].max
end
private
......
......@@ -25,6 +25,15 @@ class StreamEntriesController < ApplicationController
end
end
def embed
response.headers['X-Frame-Options'] = 'ALLOWALL'
@type = @stream_entry.activity_type.downcase
return gone if @stream_entry.activity.nil?
render layout: 'embedded'
end
private
def set_account
......
......@@ -45,14 +45,14 @@ class MediaAttachment < ApplicationRecord
if f.instance.image?
{
original: '1280x1280>',
small: '250x250>',
small: '400x400>',
}
else
{
small: {
convert_options: {
output: {
vf: 'scale=\'min(250\, iw):min(250\, ih)\':force_original_aspect_ratio=decrease',
vf: 'scale=\'min(400\, iw):min(400\, ih)\':force_original_aspect_ratio=decrease',
},
},
format: 'png',
......
......@@ -9,6 +9,6 @@ node(:author_url) { |entry| account_url(entry.account) }
node(:provider_name) { Rails.configuration.x.local_domain }
node(:provider_url) { root_url }
node(:cache_age) { 86_400 }
node(:html, &:content)
node(:html) { |entry| "<div style=\"position: relative; height: 0; overflow: hidden; padding-top: 30px; padding-bottom: 56.25%\"><iframe src=\"#{embed_account_stream_entry_url(entry.account, entry)}\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden\" frameborder=\"0\" width=\"#{@width}\" scrolling=\"no\"></iframe></div>" }
node(:width) { @width }
node(:height) { @height }
node(:height) { nil }
!!! 5
%html{:lang => 'en'}
%head
%meta{:charset => 'utf-8'}/
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application_public'
%body.embed
= yield
.activity-stream.activity-stream-headless
= render partial: @type, locals: { @type.to_sym => @stream_entry.activity }
......@@ -25,7 +25,11 @@ Rails.application.routes.draw do
}
resources :accounts, path: 'users', only: [:show], param: :username do
resources :stream_entries, path: 'updates', only: [:show]
resources :stream_entries, path: 'updates', only: [:show] do
member do
get :embed
end
end
member do
get :followers
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment