implemented social identities management page + pw editing page. probably need to fix backend
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<div class="list-group list-group-flush">
|
||||
@if(count($tables) == 0)
|
||||
<span class="list-group-item">No tables yet.</span>
|
||||
@else
|
||||
@foreach($tables as $table)
|
||||
<a class="list-group-item list-group-item-action"
|
||||
href="{{$table->viewPage}}">
|
||||
<span class="d-block row">
|
||||
<span class="d-inline-block col-10">
|
||||
<i class="fa-table fa-pr"></i>{{ $table->title }}
|
||||
</span>{{--
|
||||
--}}<span class="d-inline-block col-2 small text-right">
|
||||
{{ $table->revision->row_count }} rows
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="d-block small row">
|
||||
<span class="d-inline-block col-8">
|
||||
{{ ellipsis($table->description, 215) }}
|
||||
</span>{{--
|
||||
--}}<span class="d-inline-block col-4 text-right text-muted">
|
||||
Last change {{ $table->updated_at->diffForHumans() }}
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
@@ -0,0 +1,33 @@
|
||||
{{-- Profile edit form --}}
|
||||
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{route('profile.store')}}" class="row justify-content-center"
|
||||
aria-label="Your Profile">
|
||||
@csrf
|
||||
|
||||
<div class="col-md-10">
|
||||
@php(Widget::setLayout(3, 7))
|
||||
|
||||
{!! Widget::header(1, 'Settings') !!}
|
||||
|
||||
{!! Widget::text('title', 'Display Name')->value($user->title)->required()->autofocus()
|
||||
->help('Shown on your profile page, tables, comments, etc.') !!}
|
||||
|
||||
{!! Widget::textarea('bio', 'About Me')->value($user->bio)->height('8em')
|
||||
->help('This is shown in your profile box') !!}
|
||||
|
||||
{!! Widget::text('website', 'Website')->value($user->website)->prepend('<i class="fa-globe"></i>')
|
||||
->help('Custom clickable link shown on your profile page.') !!}
|
||||
|
||||
<div class="row form-group">
|
||||
<div class="col-md-7 offset-md-3">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fa-save pr-2"></i>Save Changes
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@endsection
|
||||
@@ -0,0 +1,140 @@
|
||||
{{-- Profile edit form --}}
|
||||
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
@php(Widget::setLayout(3, 7))
|
||||
|
||||
<form method="POST" action="{{route('profile.store')}}" class="row justify-content-center">
|
||||
@csrf
|
||||
|
||||
<div class="col-md-10">
|
||||
{!! Widget::header(1, 'Login Settings') !!}
|
||||
{!! Widget::par('Confirm using the save button at the bottom.') !!}
|
||||
</div>
|
||||
|
||||
<div class="col-md-10 mt-3">
|
||||
{!! Widget::header(2, 'Identifiers') !!}
|
||||
|
||||
{!! Widget::par('Caution: Changing username will alter URLs of your tables.') !!}
|
||||
{!! Widget::text('name', 'Username')->value($user->name)->required()
|
||||
->prepend('@')
|
||||
->help('This is part of your vanity URL, and can be also used to login') !!}
|
||||
|
||||
{!! Widget::par('E-mail change will apply after you confirm the new address.
|
||||
We will send you a confirmation link when you submit the form.', 'text-justify') !!}
|
||||
{!! Widget::email('email', 'E-Mail Address')->value($user->email)->required()
|
||||
->help('Used to login and for password resets.') !!}
|
||||
</div>
|
||||
|
||||
<div class="col-md-10 mt-3">
|
||||
{!! Widget::header(2, 'Password Change') !!}
|
||||
{!! Widget::par('Leave empty to keep your current password (if any).') !!}
|
||||
|
||||
{!! Widget::password('new_password', 'New Password') !!}
|
||||
|
||||
{!! Widget::password('new_password_confirmation', 'Confirm New Password') !!}
|
||||
</div>
|
||||
|
||||
<div class="col-md-10 mt-3">
|
||||
<div class="row form-group">
|
||||
<div class="col-md-7 offset-md-3">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fa-save pr-2"></i>Apply Changes
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-10 mt-3">
|
||||
{!! Widget::header(2, 'OAuth2 Logins') !!}
|
||||
{!! Widget::par('
|
||||
Here you can remove identities you do not wish to use anymore.
|
||||
To completely revoke the authorization, also remove the app
|
||||
from your provider\'s settings.
|
||||
', 'text-justify')!!}
|
||||
|
||||
<?php
|
||||
$icons = [
|
||||
'github' => 'github',
|
||||
'facebook' => 'facebook-square',
|
||||
'google' => 'google',
|
||||
];
|
||||
?>
|
||||
|
||||
@if(!count($user->socialIdentities))
|
||||
<div class="row form-group">
|
||||
<div class="col-md-7 offset-md-3 border border-primary border-dashed rounded">
|
||||
No identities connected.
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
@foreach($user->socialIdentities as $identity)
|
||||
<div class="row form-group">
|
||||
<div class="col-md-3 col-form-label text-md-right">
|
||||
<a href="{{route('forget-identity', ['id' => $identity->getKey()])}}" class="btn btn-danger" role="button">Forget</a>
|
||||
</div>
|
||||
<div class="col-md-7 border border-primary rounded p-1 pl-0">
|
||||
<table>
|
||||
<tr>
|
||||
<td rowspan=4>
|
||||
<i class="fa-{{ $icons[$identity->provider] }} fa-huge py-3 px-4"></i>
|
||||
</td>
|
||||
<th>Nickname</th>
|
||||
<td class="pl-2">{{ $identity->nick_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Full Name</th>
|
||||
<td class="pl-2">{{ $identity->full_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>E-Mail</th>
|
||||
<td class="pl-2">{{ $identity->email }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>User ID</th>
|
||||
<td class="pl-2">{{ $identity->provider_user_id }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
{!! Widget::par(
|
||||
'Click the buttons below to add a new OAuth2 identity.
|
||||
You will be redirected to the authorization form.',
|
||||
'text-justify'
|
||||
)!!}
|
||||
|
||||
<div class="row form-group">
|
||||
<div class="col-md-3 col-form-label text-md-right">
|
||||
Add identity
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
@set('services.oauth_providers.github.client_id')
|
||||
<a type="submit" href="{{route('oauth-github-authorize')}}" class="btn btn-dark">
|
||||
<i class="fa-github pr-1"></i>
|
||||
{{ __('GitHub') }}
|
||||
</a>
|
||||
@endset
|
||||
|
||||
@set('services.oauth_providers.google.client_id')
|
||||
<a type="submit" href="{{route('oauth-google-authorize')}}" class="btn btn-dark">
|
||||
<i class="fa-google pr-1"></i>
|
||||
{{ __('Google') }}
|
||||
</a>
|
||||
@endset
|
||||
|
||||
@set('services.oauth_providers.facebook.client_id')
|
||||
<a type="submit" href="{{route('oauth-facebook-authorize')}}" class="btn btn-dark">
|
||||
<i class="fa-facebook-square pr-1"></i>
|
||||
{{ __('Facebook') }}
|
||||
</a>
|
||||
@endset
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,92 @@
|
||||
{{-- User's dashboard / profile page --}}
|
||||
@extends('layouts.app')
|
||||
|
||||
@php
|
||||
/** @var \App\Models\Table[] $tables */
|
||||
/** @var \App\Models\User $user */
|
||||
@endphp
|
||||
|
||||
@section('content')
|
||||
<div class="row justify-content-center">
|
||||
|
||||
{{-- Dash card --}}
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-header card-header-extra">
|
||||
<i class="fa-user-circle-o fa-pr fa-large"></i>{{ $user->title }}
|
||||
|
||||
@if(authed() && user()->is($user))
|
||||
<a href="{{route('profile.edit')}}" class="btn ml-auto">Edit</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($user->bio)
|
||||
@if(mb_strlen($user->bio) > 250)
|
||||
<p id="bio-short" aria-hidden=true>
|
||||
{{mb_substr($user->bio, 0, 250)}}…
|
||||
<a class="text-muted small" title="Show more" href="#" onclick="$('#bio-short').addClass('hidden'); $('#bio-full').removeClass('hidden'); return false;">
|
||||
[more]
|
||||
</a>
|
||||
</p>
|
||||
<p id="bio-full" class="hidden">
|
||||
{{ $user->bio }}
|
||||
<a class="text-muted small" title="Collapse" href="#" onclick="$('#bio-full').addClass('hidden'); $('#bio-short').removeClass('hidden'); return false;">
|
||||
[collapse]
|
||||
</a>
|
||||
</p>
|
||||
@else
|
||||
<p>
|
||||
{{ $user->bio }}
|
||||
</p>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if($user->website)
|
||||
<p>
|
||||
<i class="fa-link fa-pr" aria-label="User's Website" title="User's Website"></i>{{--
|
||||
--}}<a href="{{ $user->website }}">{{ $user->website }}</a>
|
||||
</p>
|
||||
@endif
|
||||
|
||||
<p class="mb-0">
|
||||
<i class="fa-calendar fa-pr" aria-hidden=true></i>{{--
|
||||
--}}Joined {{ $user->created_at->diffForHumans() }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Table list card --}}
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header card-header-extra">
|
||||
<span>
|
||||
@if(authed() && user()->is($user))
|
||||
Your Tables
|
||||
@else
|
||||
User's Tables
|
||||
@endif
|
||||
</span>
|
||||
|
||||
<nav class="ml-auto" aria-label="Pages of the table list">
|
||||
{{ $tables->links(null, ['ulClass' => 'pagination-sm mb-0 pagination-outline-light']) }}
|
||||
</nav>
|
||||
|
||||
@if(authed() && user()->is($user))
|
||||
<a href="{{route('table.create')}}" class="btn ml-3">New</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@include('profile._table-list')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user