diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php
index 541988bf5..d18eb11b2 100644
--- a/app/Http/Controllers/InternalApiController.php
+++ b/app/Http/Controllers/InternalApiController.php
@@ -343,27 +343,6 @@ class InternalApiController extends Controller
return response()->json($res);
}
- public function remoteProfile(Request $request, $id)
- {
- $profile = Profile::whereNull('status')
- ->whereNotNull('domain')
- ->findOrFail($id);
-
- $settings = [
- 'crawlable' => false,
- 'following' => [
- 'count' => true,
- 'list' => false
- ],
- 'followers' => [
- 'count' => true,
- 'list' => false
- ]
- ];
-
- return view('profile.show', compact('profile', 'settings'));
- }
-
public function accountStatuses(Request $request, $id)
{
$this->validate($request, [
@@ -440,6 +419,15 @@ class InternalApiController extends Controller
return response()->json($res);
}
+ public function remoteProfile(Request $request, $id)
+ {
+ $profile = Profile::whereNull('status')
+ ->findOrFail($id);
+ $user = Auth::user();
+
+ return view('profile.remote', compact('profile', 'user'));
+ }
+
public function remoteStatus(Request $request, $profileId, $statusId)
{
$user = Profile::whereNull('status')
@@ -450,7 +438,7 @@ class InternalApiController extends Controller
->whereNull('reblog_of_id')
->whereVisibility('public')
->findOrFail($statusId);
- $template = $status->in_reply_to_id ? 'status.reply' : 'status.show';
+ $template = $status->in_reply_to_id ? 'status.reply' : 'status.remote';
return view($template, compact('user', 'status'));
}
}
diff --git a/resources/assets/js/components/RemotePost.vue b/resources/assets/js/components/RemotePost.vue
new file mode 100644
index 000000000..4e039afa7
--- /dev/null
+++ b/resources/assets/js/components/RemotePost.vue
@@ -0,0 +1,1018 @@
+
+
+
+
+
+
+
+
You are blocking this account
+
Click here to view this status
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Error: Problem rendering preview.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{status.favourites_count || 0}} likes
+
+
+ {{status.reblogs_count || 0}} shares
+
+
+
+
+ {{timestampFormat()}}
+
+
{{status.visibility}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/assets/js/components/RemoteProfile.vue b/resources/assets/js/components/RemoteProfile.vue
new file mode 100644
index 000000000..8bca17c0d
--- /dev/null
+++ b/resources/assets/js/components/RemoteProfile.vue
@@ -0,0 +1,375 @@
+
+
+
+
+
You are blocking this account
+
Click here to view profile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{profile.display_name}}
+
{{profile.acct}}
+
+
+
+ {{profile.statuses_count}}
+ Posts
+
+
+ {{profile.following_count}}
+ Following
+
+
+ {{profile.followers_count}}
+ Followers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{profile.username}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/assets/js/rempos.js b/resources/assets/js/rempos.js
new file mode 100644
index 000000000..41bf90d0b
--- /dev/null
+++ b/resources/assets/js/rempos.js
@@ -0,0 +1,34 @@
+Vue.component(
+ 'photo-presenter',
+ require('./components/presenter/PhotoPresenter.vue').default
+);
+
+Vue.component(
+ 'video-presenter',
+ require('./components/presenter/VideoPresenter.vue').default
+);
+
+Vue.component(
+ 'photo-album-presenter',
+ require('./components/presenter/PhotoAlbumPresenter.vue').default
+);
+
+Vue.component(
+ 'video-album-presenter',
+ require('./components/presenter/VideoAlbumPresenter.vue').default
+);
+
+Vue.component(
+ 'mixed-album-presenter',
+ require('./components/presenter/MixedAlbumPresenter.vue').default
+);
+
+Vue.component(
+ 'post-menu',
+ require('./components/PostMenu.vue').default
+);
+
+Vue.component(
+ 'remote-post',
+ require('./components/RemotePost.vue').default
+);
\ No newline at end of file
diff --git a/resources/assets/js/rempro.js b/resources/assets/js/rempro.js
new file mode 100644
index 000000000..766b52ec3
--- /dev/null
+++ b/resources/assets/js/rempro.js
@@ -0,0 +1,4 @@
+Vue.component(
+ 'remote-profile',
+ require('./components/RemoteProfile.vue').default
+);
\ No newline at end of file
diff --git a/resources/views/profile/remote.blade.php b/resources/views/profile/remote.blade.php
new file mode 100644
index 000000000..106286b3e
--- /dev/null
+++ b/resources/views/profile/remote.blade.php
@@ -0,0 +1,16 @@
+@extends('layouts.app')
+
+@section('content')
+
+@endsection
+
+@push('meta')
+
+@endpush
+
+@push('scripts')
+
+
+@endpush
diff --git a/resources/views/status/remote.blade.php b/resources/views/status/remote.blade.php
new file mode 100644
index 000000000..f36a2f4be
--- /dev/null
+++ b/resources/views/status/remote.blade.php
@@ -0,0 +1,17 @@
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
+@endsection
+
+@push('meta')
+
+@endpush
+
+@push('scripts')
+
+
+@endpush
diff --git a/routes/web.php b/routes/web.php
index b1d9f11aa..487a38d7c 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -263,6 +263,8 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
Route::post('stories/viewed', 'StoryController@apiV1Viewed');
Route::get('stories/new', 'StoryController@compose');
Route::get('my/story', 'StoryController@iRedirect');
+ Route::get('web/profile/_/{id}', 'InternalApiController@remoteProfile');
+ Route::get('web/post/_/{profileId}/{statusid}', 'InternalApiController@remoteStatus');
});
Route::group(['prefix' => 'account'], function () {
diff --git a/webpack.mix.js b/webpack.mix.js
index c519076c5..315527f8c 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -38,6 +38,9 @@ mix.js('resources/assets/js/app.js', 'public/js')
// .js('resources/assets/js/direct.js', 'public/js')
// .js('resources/assets/js/admin.js', 'public/js')
// .js('resources/assets/js/micro.js', 'public/js')
+.js('resources/assets/js/rempro.js', 'public/js')
+.js('resources/assets/js/rempos.js', 'public/js')
+//.js('resources/assets/js/timeline_next.js', 'public/js')
.extract([
'lodash',
+ + {{truncate(reply.account.username,15)}} + + + +
+
+
++ + {{reply.favourites_count == 1 ? '1 like' : reply.favourites_count + ' likes'}} + Reply +
++ + {{s.account.username}} + + + + +
+
+
++ + {{s.favourites_count == 1 ? '1 like' : s.favourites_count + ' likes'}} +
+