mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-14 02:24:31 +00:00
Update account settings, add hashtags to relationships
This commit is contained in:
parent
c499c4f7e5
commit
506208f545
5 changed files with 74 additions and 16 deletions
|
@ -20,8 +20,8 @@ class Hashtag extends Model
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function url()
|
public function url($suffix = '')
|
||||||
{
|
{
|
||||||
return config('routes.hashtag.base').$this->slug;
|
return config('routes.hashtag.base').$this->slug.$suffix;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,15 +18,29 @@ trait RelationshipSettings
|
||||||
|
|
||||||
public function relationshipsHome(Request $request)
|
public function relationshipsHome(Request $request)
|
||||||
{
|
{
|
||||||
$mode = $request->input('mode') == 'following' ? 'following' : 'followers';
|
$this->validate($request, [
|
||||||
|
'mode' => 'nullable|string|in:following,followers,hashtags'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$mode = $request->input('mode');
|
||||||
$profile = Auth::user()->profile;
|
$profile = Auth::user()->profile;
|
||||||
|
|
||||||
$following = $followers = [];
|
switch ($mode) {
|
||||||
|
case 'following':
|
||||||
if($mode == 'following') {
|
|
||||||
$data = $profile->following()->simplePaginate(10);
|
$data = $profile->following()->simplePaginate(10);
|
||||||
} else {
|
break;
|
||||||
|
|
||||||
|
case 'followers':
|
||||||
$data = $profile->followers()->simplePaginate(10);
|
$data = $profile->followers()->simplePaginate(10);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'hashtags':
|
||||||
|
$data = $profile->hashtagFollowing()->with('hashtag')->simplePaginate(10);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$data = [];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('settings.relationships.home', compact('profile', 'mode', 'data'));
|
return view('settings.relationships.home', compact('profile', 'mode', 'data'));
|
||||||
|
|
|
@ -278,4 +278,9 @@ class Profile extends Model
|
||||||
'hashtag_id'
|
'hashtag_id'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hashtagFollowing()
|
||||||
|
{
|
||||||
|
return $this->hasMany(HashtagFollow::class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,9 +9,6 @@
|
||||||
<li class="nav-item pl-3 {{request()->is('settings/email')?'active':''}}">
|
<li class="nav-item pl-3 {{request()->is('settings/email')?'active':''}}">
|
||||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.email')}}">Email</a>
|
<a class="nav-link font-weight-light text-muted" href="{{route('settings.email')}}">Email</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item pl-3 {{request()->is('settings/relationships*')?'active':''}}">
|
|
||||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.relationships')}}">Followers</a>
|
|
||||||
</li>
|
|
||||||
@if(config('pixelfed.user_invites.enabled'))
|
@if(config('pixelfed.user_invites.enabled'))
|
||||||
<li class="nav-item pl-3 {{request()->is('settings/invites*')?'active':''}}">
|
<li class="nav-item pl-3 {{request()->is('settings/invites*')?'active':''}}">
|
||||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.invites')}}">Invites</a>
|
<a class="nav-link font-weight-light text-muted" href="{{route('settings.invites')}}">Invites</a>
|
||||||
|
@ -26,6 +23,9 @@
|
||||||
<li class="nav-item pl-3 {{request()->is('settings/privacy*')?'active':''}}">
|
<li class="nav-item pl-3 {{request()->is('settings/privacy*')?'active':''}}">
|
||||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.privacy')}}">Privacy</a>
|
<a class="nav-link font-weight-light text-muted" href="{{route('settings.privacy')}}">Privacy</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item pl-3 {{request()->is('settings/relationships*')?'active':''}}">
|
||||||
|
<a class="nav-link font-weight-light text-muted" href="{{route('settings.relationships')}}">Relationships</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item pl-3 {{request()->is('settings/reports*')?'active':''}}">
|
<li class="nav-item pl-3 {{request()->is('settings/reports*')?'active':''}}">
|
||||||
<a class="nav-link font-weight-light text-muted" href="{{route('settings.reports')}}">Reports</a>
|
<a class="nav-link font-weight-light text-muted" href="{{route('settings.reports')}}">Reports</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -3,23 +3,50 @@
|
||||||
@section('section')
|
@section('section')
|
||||||
|
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<h3 class="font-weight-bold">Followers & Following</h3>
|
<h3 class="font-weight-bold">Relationships</h3>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
@if(empty($data))
|
|
||||||
<p class="text-center lead pt-5 mt-5">You are not {{$mode == 'following' ? 'following anyone.' : 'followed by anyone.'}}</p>
|
|
||||||
@else
|
|
||||||
<ul class="nav nav-pills">
|
<ul class="nav nav-pills">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link font-weight-bold {{$mode == 'followers' ? 'active' : ''}}" href="?mode=followers&page=1">Followers</a>
|
<a class="nav-link font-weight-bold {{!request()->has('mode') || $mode == 'followers' ? 'active' : ''}}" href="?mode=followers&page=1">Followers</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link font-weight-bold {{$mode == 'following' ? 'active' : ''}}" href="?mode=following&page=1">Following</a>
|
<a class="nav-link font-weight-bold {{$mode == 'following' ? 'active' : ''}}" href="?mode=following&page=1">Following</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link font-weight-bold {{$mode == 'hashtags' ? 'active' : ''}}" href="?mode=hashtags&page=1">Hashtags</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr>
|
<hr>
|
||||||
|
@if(empty($data))
|
||||||
|
<p class="text-center lead pt-5 mt-5">You are not {{$mode == 'hashtags' ? 'following any hashtags.' : ($mode == 'following' ? 'following anyone.' : 'followed by anyone.')}}</p>
|
||||||
|
@else
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-bordered table-hover">
|
<table class="table table-bordered table-hover">
|
||||||
|
@if($mode == 'hashtags')
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
{{-- <th scope="col" class="pt-0 pb-1 mt-0">
|
||||||
|
<input type="checkbox" name="check" class="form-control check-all">
|
||||||
|
</th> --}}
|
||||||
|
<th scope="col">Hashtag</th>
|
||||||
|
<th scope="col">Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($data as $hashtag)
|
||||||
|
<tr>
|
||||||
|
<td class="font-weight-bold">
|
||||||
|
<a href="{{$hashtag->hashtag->url('?src=relset')}}" class="text-decoration-none text-dark">
|
||||||
|
<p class="mb-0 pb-0">#{{$hashtag->hashtag->name}}</p>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<a class="btn btn-outline-danger btn-sm py-0 action-btn" href="#" data-id="{{$hashtag->hashtag->name}}" data-action="unfollowhashtag">Unfollow</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
@else
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{-- <th scope="col" class="pt-0 pb-1 mt-0">
|
{{-- <th scope="col" class="pt-0 pb-1 mt-0">
|
||||||
|
@ -52,6 +79,7 @@
|
||||||
@endif
|
@endif
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@endif
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -113,6 +141,17 @@
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'unfollowhashtag':
|
||||||
|
axios.post('/api/local/discover/tag/subscribe', {
|
||||||
|
name: id
|
||||||
|
}).then(res => {
|
||||||
|
swal(
|
||||||
|
'Unfollow Successful',
|
||||||
|
'You have successfully unfollowed that hashtag',
|
||||||
|
'success'
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
window.location.href = window.location.href;
|
window.location.href = window.location.href;
|
||||||
|
|
Loading…
Reference in a new issue