@extends('settings.template')
@section('section')
< div class = "title" >
< h3 class = "font-weight-bold" > Account Settings< / h3 >
< / div >
< hr >
< form method = "post" >
@csrf
< div class = "form-group row" >
< div class = "col-sm-3" >
< img src = "{{Auth::user()->profile->avatarUrl()}}" width = "38px" class = "rounded-circle img-thumbnail float-right" >
< / div >
< div class = "col-sm-9" >
< p class = "lead font-weight-bold mb-0" > {{Auth::user()->username}}< / p >
< p > < a href = "#" class = "font-weight-bold change-profile-photo" > Change Profile Photo< / a > < / p >
< / div >
< / div >
< div class = "form-group row" >
< label for = "name" class = "col-sm-3 col-form-label font-weight-bold text-right" > Name< / label >
< div class = "col-sm-9" >
< input type = "text" class = "form-control" id = "name" name = "name" placeholder = "Your Name" value = "{{Auth::user()->profile->name}}" >
< / div >
< / div >
< div class = "form-group row" >
< label for = "username" class = "col-sm-3 col-form-label font-weight-bold text-right" > Username< / label >
< div class = "col-sm-9" >
< input type = "text" class = "form-control" id = "username" name = "username" placeholder = "Username" value = "{{Auth::user()->profile->username}}" readonly >
< / div >
< / div >
< div class = "form-group row" >
< label for = "website" class = "col-sm-3 col-form-label font-weight-bold text-right" > Website< / label >
< div class = "col-sm-9" >
< input type = "text" class = "form-control" id = "website" name = "website" placeholder = "Website" value = "{{Auth::user()->profile->website}}" >
< / div >
< / div >
< div class = "form-group row" >
< label for = "bio" class = "col-sm-3 col-form-label font-weight-bold text-right" > Bio< / label >
< div class = "col-sm-9" >
< textarea class = "form-control" id = "bio" name = "bio" placeholder = "Add a bio here" rows = "2" data-max-length = "{{config('pixelfed.max_bio_length')}}" > {{Auth::user()->profile->bio}}< / textarea >
< p class = "form-text" >
< span class = "bio-counter float-right small text-muted" > 0/{{config('pixelfed.max_bio_length')}}< / span >
< / p >
< / div >
< / div >
< div class = "pt-5" >
< p class = "font-weight-bold text-muted text-center" > Private Information< / p >
< / div >
< div class = "form-group row" >
< label for = "email" class = "col-sm-3 col-form-label font-weight-bold text-right" > Email< / label >
< div class = "col-sm-9" >
< input type = "email" class = "form-control" id = "email" name = "email" placeholder = "Email Address" value = "{{Auth::user()->email}}" >
< p class = "help-text small text-muted font-weight-bold" >
@if(Auth::user()->email_verified_at)
< span class = "text-success" > Verified< / span > {{Auth::user()->email_verified_at->diffForHumans()}}
@else
< span class = "text-danger" > Unverified< / span > You need to < a href = "/i/verify-email" > verify your email< / a > .
@endif
< / p >
< / div >
< / div >
< hr >
< div class = "form-group row" >
< div class = "col-12 text-right" >
< button type = "submit" class = "btn btn-primary font-weight-bold" > Submit< / button >
< / div >
< / div >
< / form >
@endsection
@push('scripts')
< script type = "text/javascript" >
$(document).on('click', '.modal-close', function(e) {
swal.close();
});
$('#bio').on('change keyup paste', function(e) {
let el = $(this);
let len = el.val().length;
let limit = el.data('max-length');
if(len > 100) {
el.attr('rows', '4');
}
let val = len + ' / ' + limit;
if(len > limit) {
let diff = len - limit;
val = '< span class = "text-danger" > -' + diff + '< / span > / ' + limit;
}
$('.bio-counter').html(val);
});
$(document).on('click', '.change-profile-photo', function(e) {
e.preventDefault();
swal({
title: 'Upload Photo',
content: {
element: 'input',
attributes: {
placeholder: 'Upload your photo',
type: 'file',
name: 'photoUpload',
id: 'photoUploadInput'
}
},
buttons: {
confirm: {
text: 'Upload'
}
}
}).then((res) => {
if(!res) {
return;
}
const input = $('#photoUploadInput')[0];
const photo = input.files[0];
const form = new FormData();
form.append("upload", photo);
axios.post('/api/v1/avatar/update', form, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then((res) => {
swal('Success', 'Your photo has been successfully updated! It may take a few minutes to update across the site.', 'success');
}).catch((res) => {
let msg = res.response.data.errors.upload[0];
swal('Something went wrong', msg, 'error');
});
});
});
< / script >
@endpush