Add profile localization options

This commit is contained in:
Miguel Nogueira 2020-09-01 17:46:27 +01:00
parent 4a09fa581d
commit 1e2f331778
4 changed files with 244 additions and 115 deletions

View File

@ -33,10 +33,28 @@ return [
'my_acc' => 'My Account', 'my_acc' => 'My Account',
'confirm' => 'Please Confirm', 'confirm' => 'Please Confirm',
'confirm_plain' => 'Confirm', 'confirm_plain' => 'Confirm',
'confirm_click' => 'Click to Confirm',
'date' => 'Date', 'date' => 'Date',
'datetime' => 'Time & Date', 'datetime' => 'Time & Date',
'location' => 'Location', 'location' => 'Location',
'none_yet' => 'None yet' 'none_yet' => 'None yet',
'reason' => 'Reason',
'days' => 'Days',
'weeks' => 'Weeks',
'months' => 'Months',
'years' => 'Years',
'yes' => 'Yes',
'no' => 'No',
'roles' => 'Roles',
'member_since' => 'Member since :date',
'lookup' => 'Lookup :ipAddress',
'abt' => 'About',
'acc' => 'Account',
'settings' => 'Settings',
'profile' => 'My Profile',
'code' => 'code',
'here' => 'here',
'auth_req' => 'Please authenticate'
], ],
@ -363,6 +381,118 @@ EOT,
'no_pending_review' => 'There are no applications pending review', 'no_pending_review' => 'There are no applications pending review',
'no_pending_review_exp' => 'Check the other queues for any applications! Applications will be shown here as soon as their interview is completed. You\'ll be able to view meeting notes and vote based on your observations.', 'no_pending_review_exp' => 'Check the other queues for any applications! Applications will be shown here as soon as their interview is completed. You\'ll be able to view meeting notes and vote based on your observations.',
],
// ============= PROFILE & USER MESSAGES ===============
'profile' => [
'title' => ':name\'s profile',
'profile' => 'Profile',
'users' => 'Users',
'account_banned' => 'Account banned',
'account_banned_exp' => 'This user has been banned by the moderators.',
'ban_confirm' => 'Please confirm that you want to ban this user account. You\'ll need to add a reason and expiration date to confirm this. Bans don\'t transfer to connected Minecraft networks (yet).',
'leave_empty' => 'Leave empty for a permanent ban',
'duration' => 'Duration',
'p_duration' => 'Punishment duration',
'p_duration_exp' => 'e.g. Spamming',
'ban' => 'Ban',
'terminate_notice' => 'You are about to terminate a staff member',
'terminate_notice_warning' => 'Terminating a staff member will remove their privileges on the team management site and Network.
They will be notified of their termination. Make sure to have discussed this with them first.',
'terminate_notice_consequence' => 'THIS PROCESS IS IRREVERSIBLE AND IMMEDIATE',
'terminate_txt' => 'Terminate Staff Member',
'delete_acc_warn' => 'WARNING: This is a potentially destructive action!',
'delete_acc_consequence' => 'Deleting a user\'s account is an irreversible process. Historic and current applications, votes, and profile content, as well as any personally identifiable information will be immediately erased.',
'type_to_confirm' => 'Type to confirm:',
'type_placeholder' => 'Please type the above',
'delete_acc' => 'Delete Account',
'edit_acc' => 'Edit Account',
'ban_acc' => 'Ban Account',
'unban_acc' => 'Unban Account',
'search_result' => 'Search results',
'origin_cc' => 'Origin country',
'state_prov' => 'State/Province',
'district' => 'District (if any)',
'city' => 'City',
'zipcode' => 'Zipcode',
'coords' => 'Coordinates',
'european' => 'European?',
'isp' => 'ISP', // Internet service provider
'org' => 'Organization (if any)',
'ctype' => 'C. Type', // Internet Connection type
'timezone' => 'Timezone',
'noresults' => 'This query returned no results.',
'edituser' => 'Edit PII and Roles', // PII: Personally identifiable information
'edituser_consequence' => 'Warning! This is a sensitive setting! Changing this could have unintended consequences!',
'acc_management' => 'Account Management (Admin)',
'discord_tag' => 'User\'s Discord Tag: :discordTag',
'account_settings' => 'Account Settings',
'2fa_welcome' => 'We\'re glad you decided to increase your account\'s security!',
'supported_apps' => 'Supported apps you can install: ',
'scan_code' => 'Scan the :scannable code with your preferred app, and then copy the code here.',
'otp' => 'One-time code',
'2fa_enable' => 'Enable 2FA',
'2fa_remove_consequence' => 'Removing two-factor authentication will reduce the security of your account.',
'2fa_password_confirm' => 'Confirm your password to continue',
'2fa_password_confirm_exp' => 'To prevent unauthorized changes, a password is always required for sensitive operations.',
'2fa_disable_consent' => '"I understand the possible consequences of disabling two factor authentication"',
'2fa_remove' => 'Remove 2FA',
'security_lgotherdev' => 'For your security, you\'ll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.',
'password_reenter' => 'Re-enter your password',
'acc_security' => 'Account Security',
'2fa' => 'Two Factor Authentication',
'sessions' => 'Sessions',
'contact_settings' => 'Contact Settings (E-Mail)',
'change_password' => 'Change Password',
'change_password_exp' => 'Change your password here. This will log you out from all existing sessions for your security.',
'old_pass' => 'Old Password',
'forgot_pw' => 'Forgot your password? Reset it :link',
'new_pw' => 'New Password',
'2fa_enable_success' => 'Hooray! 2FA is setup correctly for your account. A code will be asked each time you login.',
'2fa_avail' => 'Two-factor auth is available for your account.',
'2fa_avail_exp' => ' Enabling this security option greatly increases your account\'s security in case your password ever gets stolen.',
'session_manager' => 'Session Manager',
'terminate_others' => 'Terminating other sessions is generally a good idea if your account has been compromised.',
'current_session' => 'Your current session: logged in from :ipAddress',
'flush_session' => 'Flush sessions',
'personal_data_change' => 'Need to change personal data? You can do so here.',
'current_email' => 'Current Email Address',
'new_email' => 'New Email Address',
'current_password' => 'Current Password',
'security_nochangepw' => 'For security reasons, you cannot make important account changes without confirming your password. You\'ll also need to verify your new email.',
'change_email' => 'Change Email Address',
'basic_info' => 'Basic Information',
'fl_name' => 'First / Last Name',
'shortbio' => 'Short Bio',
'about_me' => 'About Me',
'pref_media' => 'Preferences & Media',
'avatar_source' => 'Retrieve avatar from: ',
'social_media' => 'Social Media',
'github_user' => 'Github Username',
'twitter_user' => 'Twitter Username',
'insta_user' => 'Instagram Username',
'discord_user' => 'Discord Handle',
'update_prfl' => 'Update Profile'
] ]

View File

@ -1,10 +1,10 @@
@extends('adminlte::page') @extends('adminlte::page')
@section('title', 'Raspberry Network | ' . $profile->user->name . '\'s profile') @section('title', config('app.name') . ' | ' . __('messages.profile.title', ['name' => $profile->user->name]))
@section('content_header') @section('content_header')
<h4>Users / Profile / {{ $profile->user->name }}</h4> <h4>{{__('messages.profile.users')}} / {{__('messages.profile.profile')}} / {{ $profile->user->name }}</h4>
@stop @stop
@ -22,9 +22,9 @@
<div class="alert alert-danger"> <div class="alert alert-danger">
<span><i class="fa fa-ban"></i> <b>Account banned</b></span> <span><i class="fa fa-ban"></i> <b>{{__('messages.profile.account_banned')}}</b></span>
<p>This user has been banned by the moderators.</p> <p>{{__('messages.profile.account_banned_exp')}}</p>
<p> <p>
<i class="fas fa-chevron-right"></i> <b>{{$profile->user->bans->reason}}</> <i class="fas fa-chevron-right"></i> <b>{{$profile->user->bans->reason}}</>
@ -38,18 +38,18 @@
<x-modal id="banAccountModal" modal-label="banAccount" modal-title="Please confirm" include-close-button="true"> <x-modal id="banAccountModal" modal-label="banAccount" modal-title="Please confirm" include-close-button="true">
<p>Please confirm that you want to ban this user account. You'll need to add a reason and expiration date to confirm this. Bans don't transfer to connected Minecraft networks (yet).</p> <p>{{__('messages.profile.ban_confirm')}}</p>
<form id="banAccountForm" name="banAccount" method="POST" action="{{route('banUser', ['user' => $profile->user->id])}}"> <form id="banAccountForm" name="banAccount" method="POST" action="{{route('banUser', ['user' => $profile->user->id])}}">
@csrf @csrf
<label for="reason">Reason</label> <label for="reason">{{__('messages.reusable.reason')}}</label>
<input type="text" name="reason" id="reason" class="form-control" placeholder="e.g. Spamming"> <input type="text" name="reason" id="reason" class="form-control" placeholder="{{__('messages.profile.p_duration_exp')}}">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" name="durationOperator" aria-label="Punishment duration"> <input type="text" class="form-control" name="durationOperator" aria-label="{{__('messages.profile.p_duration')}}">
<div class="input-group-append"> <div class="input-group-append">
<button id="durationDropdown" class="btn btn-outline-secondary dropdown-toggle duration-btn" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Duration</button> <button id="durationDropdown" class="btn btn-outline-secondary dropdown-toggle duration-btn" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{__('messages.profile.duration')}}</button>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a class="dropdown-item" href="#">Days</a> <a class="dropdown-item" href="#">Days</a>
<a class="dropdown-item" href="#">Weeks</a> <a class="dropdown-item" href="#">Weeks</a>
@ -59,7 +59,7 @@
</div> </div>
</div> </div>
</div> </div>
<p class="text-muted text-sm">Leave empty for a permanent ban</p> <p class="text-muted text-sm">{{__('messages.profile.leave_empty')}}</p>
<input id="operator" type="hidden" value="" name="durationOperand" class="duration-operator-fld"> <input id="operator" type="hidden" value="" name="durationOperand" class="duration-operator-fld">
@ -67,7 +67,7 @@
<x-slot name="modalFooter"> <x-slot name="modalFooter">
<button id="banAccountButton" type="button" class="btn btn-danger"><i class="fa fa-ban"></i> Ban</button> <button id="banAccountButton" type="button" class="btn btn-danger"><i class="fa fa-ban"></i> {{__('messages.profile.ban')}}</button>
</x-slot> </x-slot>
@ -76,13 +76,12 @@
@if (!Auth::user()->is($profile->user) && $profile->user->isStaffMember()) @if (!Auth::user()->is($profile->user) && $profile->user->isStaffMember())
<x-modal id="terminateUser" modal-label="terminateUser" modal-title="Please confirm" include-close-button="true"> <x-modal id="terminateUser" modal-label="terminateUser" modal-title="Please confirm" include-close-button="true">
<p><i class="fa fa-exclamation-triangle"></i> <b>You are about to terminate a staff member</b></p> <p><i class="fa fa-exclamation-triangle"></i> <b>{{__('messages.profile.terminate_notice')}}</b></p>
<p> <p>
Terminating a staff member will remove their privileges on the team management site and Network. {{__('messages.profile.terminate_notice_warning')}}
They will be notified of their termination. Make sure to have discussed this with them first.
</p> </p>
<p> <p>
<b>THIS PROCESS IS IRREVERSIBLE AND IMMEDIATE</b> <b>{{__('messages.profile.terminate_notice_consequence')}}</b>
</p> </p>
@ -91,7 +90,7 @@
<form method="POST" action="{{route('terminateStaffMember', ['user' => $profile->user->id])}}" id="terminateUserForm"> <form method="POST" action="{{route('terminateStaffMember', ['user' => $profile->user->id])}}" id="terminateUserForm">
@csrf @csrf
@method('PATCH') @method('PATCH')
<button type="submit" class="btn btn-warning"><i class="fas fa-exclamation-circle"></i> Confirm</button> <button type="submit" class="btn btn-warning"><i class="fas fa-exclamation-circle"></i> {{__('messages.reusable.confirm')}}</button>
</form> </form>
@ -102,30 +101,30 @@
<x-modal id="deleteAccount" modal-label="deleteAccount" modal-title="Please confirm" include-close-button="true"> <x-modal id="deleteAccount" modal-label="deleteAccount" modal-title="Please confirm" include-close-button="true">
<p><i class="fa fa-exclamation-triangle"></i><b> WARNING: This is a potentially destructive action!</b></p> <p><i class="fa fa-exclamation-triangle"></i><b> {{__('messages.profile.delete_acc_warn')}}</b></p>
<p>Deleting a user's account is an irreversible process. Historic and current applications, votes, and profile content, as well as any personally identifiable information will be immediately erased.</p> <p>{{__('messages.profile.delete_acc_consequence')}}</p>
<form id="deleteAccountForm" method="POST" action={{route('deleteUser', ['user' => $profile->user->id])}}> <form id="deleteAccountForm" method="POST" action={{route('deleteUser', ['user' => $profile->user->id])}}>
@csrf @csrf
@method('DELETE') @method('DELETE')
<label for="promptConfirm">Type to confirm: "DELETE ACCOUNT"</label> <label for="promptConfirm">{{__('messages.profile.type_to_confirm')}} "DELETE ACCOUNT"</label>
<input type="text" name="confirmPrompt" class="form-control" placeholder="Please type the above"> <input type="text" name="confirmPrompt" class="form-control" placeholder="{{__('messages.profile.type_placeholder')}}">
</form> </form>
<x-slot name="modalFooter"> <x-slot name="modalFooter">
<button type="button" class="btn btn-danger" onclick="document.getElementById('deleteAccountForm').submit()"><i class="fa fa-trash"></i> CONFIRM</button> <button type="button" class="btn btn-danger" onclick="document.getElementById('deleteAccountForm').submit()"><i class="fa fa-trash"></i> {{strtoupper(__('messages.reusable.confirm'))}}</button>
</x-slot> </x-slot>
</x-modal> </x-modal>
<x-modal id="ipInfo" modal-label="ipInfo" modal-title="IP Address Information for {{$ipInfo->ip ?? 'Unknown'}}" include-close-button="true"> <x-modal id="ipInfo" modal-label="ipInfo" modal-title="IP Address Information for {{$ipInfo->ip ?? 'Unknown'}}" include-close-button="true">
<h4 class="text-center">Search results</h3> <h4 class="text-center">{{__('messages.profile.search_result')}}</h3>
@if (!isset($ipInfo->message)) @if (!isset($ipInfo->message))
@ -134,58 +133,58 @@
<tbody> <tbody>
<tr> <tr>
<th>Origin Country</th> <th>{{__('messages.profile.origin_cc')}}</th>
<td>{{$ipInfo->country_name ?? 'N/A'}}</td> <td>{{$ipInfo->country_name ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>State/Province</th> <th>{{__('messages.profile.state_prov')}}</th>
<td>{{$ipInfo->state_prov ?? 'None'}}</td> <td>{{$ipInfo->state_prov ?? 'None'}}</td>
</tr> </tr>
<tr> <tr>
<th>District (if any)</th> <th>{{__('messages.profile.district')}}</th>
<td>{{$ipInfo->district ?? 'N/A'}}</td> <td>{{$ipInfo->district ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>City</th> <th>{{__('messages.profile.city')}}</th>
<td>{{$ipInfo->city ?? 'N/A'}}</td> <td>{{$ipInfo->city ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>Zipcode</th> <th>{{__('messages.profile.zipcode')}}</th>
<td>{{$ipInfo->zipcode ?? 'N/A'}}</td> <td>{{$ipInfo->zipcode ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>Coordinates</th> <th>{{__('messages.profile.coords')}}</th>
<td>{{$ipInfo->latitude ?? 0}}, {{$ipInfo->longitude ?? 0}}</td> <td>{{$ipInfo->latitude ?? 0}}, {{$ipInfo->longitude ?? 0}}</td>
</tr> </tr>
<tr> <tr>
<th>European?</th> <th>{{__('messages.profile.european')}}</th>
<td>{{($ipInfo->is_eu) ? 'Yes' : 'No'}}</td> <td>{{($ipInfo->is_eu) ? __('messages.reusable.yes') : __('messages.reusable.no')}}</td>
</tr> </tr>
<tr> <tr>
<th>ISP</th> <th>{{__('messages.profile.isp')}}</th>
<td>{{$ipInfo->isp ?? 'N/A'}}</td> <td>{{$ipInfo->isp ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>Organization (if any)</th> <th>{{__('messages.profile.org')}}</th>
<td>{{$ipInfo->organization ?? 'N/A'}}</td> <td>{{$ipInfo->organization ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>C. Type</th> <th>{{__('messages.profile.ctype')}}</th>
<td>{{$ipInfo->connection_type ?? 'N/A'}}</td> <td>{{$ipInfo->connection_type ?? 'N/A'}}</td>
</tr> </tr>
<tr> <tr>
<th>Timezone</th> <th>{{__('messages.profile.timezone')}}</th>
<td>{{$ipInfo->time_zone->name ?? 'N/A'}}</td> <td>{{$ipInfo->time_zone->name ?? 'N/A'}}</td>
</tr> </tr>
@ -196,7 +195,7 @@
@else @else
<div class="alert alert-danger"> <div class="alert alert-danger">
<i class="fas fa-exclamation-circle"></i> <b>This query returned no results</b> <i class="fas fa-exclamation-circle"></i> <b>{{__('messages.profile.noresults')}}</b>
<p> <p>
{{$ipInfo->message}} {{$ipInfo->message}}
</p> </p>
@ -207,27 +206,27 @@
<x-slot name="modalFooter"></x-slot> <x-slot name="modalFooter"></x-slot>
</x-modal> </x-modal>
<x-modal id="editUser" modal-label="editUser" modal-title="Edit PII and Roles" include-close-button="true"> <x-modal id="editUser" modal-label="editUser" modal-title="{{__('messages.profile.edituser')}}" include-close-button="true">
<form id="updateUserForm" method="post" action="{{ route('updateUser', ['user' => $profile->user->id]) }}"> <form id="updateUserForm" method="post" action="{{ route('updateUser', ['user' => $profile->user->id]) }}">
@csrf @csrf
@method('PATCH') @method('PATCH')
<label for="email">Email address</label> <label for="email">{{__('messages.contactlabel_email')}}</label>
<input id="email" type="text" name="email" class="form-control" required value="{{ $profile->user->email }}" /> <input id="email" type="text" name="email" class="form-control" required value="{{ $profile->user->email }}" />
<label for="name">Name</label> <label for="name">{{__('messages.contactlabel_name')}}</label>
<input id="name" type="text" name="name" class="form-control" required value="{{ $profile->user->name }}" /> <input id="name" type="text" name="name" class="form-control" required value="{{ $profile->user->name }}" />
<label for="uuid">Mojang UUID</label> <label for="uuid">Mojang UUID</label>
<input id="uuid" type="text" name="uuid" class="form-control" required value="{{ $profile->user->uuid }}" /> <input id="uuid" type="text" name="uuid" class="form-control" required value="{{ $profile->user->uuid }}" />
<p class="text-muted text-sm"> <p class="text-muted text-sm">
<i class="fas fa-exclamation-triangle"></i> Warning! This is a sensitive setting! Changing this could have unintended consequences! <i class="fas fa-exclamation-triangle"></i> {{__('messages.profile.edituser_consequence')}}
</p> </p>
<div class="form-group mt-3"> <div class="form-group mt-3">
<label>Roles</label> <label>{{__('messages.reusable.roles')}}</label>
<table class="table table-borderless"> <table class="table table-borderless">
<tbody> <tbody>
@ -250,7 +249,7 @@
<x-slot name="modalFooter"> <x-slot name="modalFooter">
<button type="button" class="btn btn-warning" onclick="$('#updateUserForm').submit()"><i class="fa fa-exclamation-cicle"></i> Save changes</button> <button type="button" class="btn btn-warning" onclick="$('#updateUserForm').submit()"><i class="fa fa-exclamation-cicle"></i> {{__('messages.vacancy.save')}}</button>
</x-slot> </x-slot>
@ -291,15 +290,15 @@
@endif @endif
<p class="text-muted">{{$profile->profileShortBio}}</p> <p class="text-muted">{{$profile->profileShortBio}}</p>
<p class="text-muted">Member since {{$since}}</p> <p class="text-muted">{{__('messages.reusable.member_since', ['date' => $since])}}</p>
@if (Auth::user()->hasRole('admin')) @if (Auth::user()->hasRole('admin'))
<button type="button" class="btn btn-sm btn-info" onclick="$('#ipInfo').modal('show')">Lookup {{$profile->user->originalIP}}</button> <button type="button" class="btn btn-sm btn-info" onclick="$('#ipInfo').modal('show')">{{__('messages.reusable.lookup', ['ipAddress' => $profile->user->originalIP])}}</button>
@endif @endif
@if ($profile->user->is(Auth::user())) @if ($profile->user->is(Auth::user()))
<button type="button" class="btn btn-sm btn-warning" onclick="window.location.href='{{route('showProfileSettings')}}'"><i class="fas fa-pencil-alt"></i></button> <button type="button" class="btn btn-sm btn-warning" onclick="window.location.href='{{route('showProfileSettings')}}'"><i class="fas fa-pencil-alt"></i></button>
@elseif (Auth::user()->hasRole('admin') && $profile->user->isStaffMember()) @elseif (Auth::user()->hasRole('admin') && $profile->user->isStaffMember())
<button type="button" class="btn btn-sm btn-danger" onclick="$('#terminateUser').modal('show')">Terminate Staff Member</button> <button type="button" class="btn btn-sm btn-danger" onclick="$('#terminateUser').modal('show')">{{__('messages.profile.terminate_txt')}}</button>
@endif @endif
</div> </div>
@ -326,7 +325,7 @@
<h5 class="card-header"> <h5 class="card-header">
<a class="collapsed d-block" data-toggle="collapse" href="#collapse-collapsed" aria-expanded="true" aria-controls="collapse-collapsed" id="heading-collapsed"> <a class="collapsed d-block" data-toggle="collapse" href="#collapse-collapsed" aria-expanded="true" aria-controls="collapse-collapsed" id="heading-collapsed">
<i class="fa fa-chevron-down pull-right"></i> <i class="fa fa-chevron-down pull-right"></i>
Account Management (Admin) {{__('messages.profile.acc_management')}}
</a> </a>
</h5> </h5>
<div id="collapse-collapsed" class="collapse" aria-labelledby="heading-collapsed"> <div id="collapse-collapsed" class="collapse" aria-labelledby="heading-collapsed">
@ -335,19 +334,19 @@
<div class="management-btn text-center"> <div class="management-btn text-center">
@if (!$profile->user->isBanned()) @if (!$profile->user->isBanned())
<button class="btn btn-danger mb-2" id="banAccountTrigger"><i class="fa fa-ban"></i> Ban Account</button><br> <button class="btn btn-danger mb-2" id="banAccountTrigger"><i class="fa fa-ban"></i> {{__('messages.profile.ban_acc')}}</button><br>
@else @else
<form method="post" action="{{route('unbanUser', ['user' => $profile->user->id])}}"> <form method="post" action="{{route('unbanUser', ['user' => $profile->user->id])}}">
@method('DELETE') @method('DELETE')
@csrf @csrf
<button type="submit" class="btn btn-warning mb-2"><i class="fa fa-check"></i> Unban</button> <button type="submit" class="btn btn-warning mb-2"><i class="fa fa-check"></i> {{__('messages.profile.unban_acc')}}</button>
</form> </form>
@endif @endif
<button class="btn btn-danger mb-2" onclick="$('#deleteAccount').modal('show')"><i class="fas fa-trash-alt"></i> Delete Account</button><br> <button class="btn btn-danger mb-2" onclick="$('#deleteAccount').modal('show')"><i class="fas fa-trash-alt"></i> {{__('messages.profile.delete_acc')}}</button><br>
<button class="btn btn-warning mb-2" onclick="$('#editUser').modal('show')"><i class="fas fa-pencil-alt"></i> Edit Account</button><br> <button class="btn btn-warning mb-2" onclick="$('#editUser').modal('show')"><i class="fas fa-pencil-alt"></i> {{__('messages.profile.edit_acc')}}</button><br>
</div> </div>
</div> </div>
@ -369,7 +368,7 @@
<div class="card-body text-center"> <div class="card-body text-center">
<a href="https://github.com/{{$github}}" class="pr-2 pl-2"><i class="fab fa-github fa-2x"></i></a> <a href="https://github.com/{{$github}}" class="pr-2 pl-2"><i class="fab fa-github fa-2x"></i></a>
<a href="#" onclick="toastr.info('User\'s Discord tag: {{$discord}}')" class="pr-2 pl-2"><i class="fab fa-discord fa-2x"></i></a> <a href="#" onclick="toastr.info('{{__('messages.profile.discord_tag', ['discordTag' => $discord])}}')" class="pr-2 pl-2"><i class="fab fa-discord fa-2x"></i></a>
<a href="https://twitter.com/{{$twitter}}" class="pr-2 pl-2"><i class="fab fa-twitter fa-2x"></i></a> <a href="https://twitter.com/{{$twitter}}" class="pr-2 pl-2"><i class="fab fa-twitter fa-2x"></i></a>
<a href="https://instagram.com/{{$insta}}" class="pr-2 pl-2"><i class="fab fa-instagram fa-2x"></i></a> <a href="https://instagram.com/{{$insta}}" class="pr-2 pl-2"><i class="fab fa-instagram fa-2x"></i></a>
@ -389,7 +388,7 @@
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<h4>About</h4> <h4>{{__('messages.reusable.abt')}}</h4>
</div> </div>
<div class="card-body"> <div class="card-body">

View File

@ -1,10 +1,10 @@
@extends('adminlte::page') @extends('adminlte::page')
@section('title', 'Raspberry Network | Account Settings') @section('title', config('app.name') . ' | ' . __('messages.profile.account_settings'))
@section('content_header') @section('content_header')
<h4>My Profile / Account / Settings</h4> <h4>{{__('messages.reusable.profile')}} / {{__('messages.reusable.acc')}} / {{__('messages.reusable.settings')}}</h4>
@stop @stop
@ -25,14 +25,14 @@
<x-modal id="twoFactorAuthModal" modal-label="2faLabel" modal-title="Two-factor Authentication" include-close-button="true"> <x-modal id="twoFactorAuthModal" modal-label="2faLabel" modal-title="Two-factor Authentication" include-close-button="true">
<h3><i class="fas fa-user-shield"></i> We're glad you decided to increase your account's security!</h3> <h3><i class="fas fa-user-shield"></i> {{__('messages.profile.2fa_welcome')}}</h3>
<p><b>Supported apps you can install:</b></p> <p><b>{{__('messages.profile.supported_apps')}}</b></p>
<ul> <ul>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en"><i class="fab fa-google-play"></i> Google Authenticator</a></li> <li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en"><i class="fab fa-google-play"></i> Google Authenticator</a></li>
</ul> </ul>
<p>Scan the <i>QR code</i> below with your preferred app, and then copy the code here.</p> <p>{{__('messages.profile.scan_code', ['scannable', 'QR'])}}</p>
<div class="row"> <div class="row">
@ -52,7 +52,7 @@
<form method="POST" action="{{ route('enable2FA') }}" id="enable2Fa"> <form method="POST" action="{{ route('enable2FA') }}" id="enable2Fa">
@csrf @csrf
@method('PATCH') @method('PATCH')
<label for="otp">One-time code</label> <label for="otp">{{__('messages.profile.otp')}}</label>
<input type="text" id="otp" name="otp" class="form-control" /> <input type="text" id="otp" name="otp" class="form-control" />
</form> </form>
@ -65,7 +65,7 @@
<x-slot name="modalFooter"> <x-slot name="modalFooter">
<button type="button" class="btn btn-success" onclick="$('#enable2Fa').submit()"><i class="fas fa-key"></i> Enable 2FA</button> <button type="button" class="btn btn-success" onclick="$('#enable2Fa').submit()"><i class="fas fa-key"></i> {{__('messages.profile.2fa_enable')}}</button>
</x-slot> </x-slot>
@ -77,19 +77,19 @@
<x-modal id="remove2FA" modal-label="remove2FALabel" modal-title="Remove Two-Factor Authentication" include-close-button="true"> <x-modal id="remove2FA" modal-label="remove2FALabel" modal-title="Remove Two-Factor Authentication" include-close-button="true">
<p><i class="fas fa-exclamation-triangle"></i> <b>Are you sure?</b> Removing two-factor authentication will reduce the security of your account.</p> <p><i class="fas fa-exclamation-triangle"></i> <b>{{__('messages.application_m.modal_confirm')}}</b> {{__('messages.profile.2fa_remove_consequence')}}</p>
<form action="{{ route('disable2FA') }}" method="POST" id="disable2FA"> <form action="{{ route('disable2FA') }}" method="POST" id="disable2FA">
@csrf @csrf
@method('PATCH') @method('PATCH')
<label for="currentPassword">Confirm your password to continue</label> <label for="currentPassword">{{__('messages.profile.2fa_password_confirm')}}</label>
<input id="currentPassword" type="password" name="currentPassword" class="form-control" required /> <input id="currentPassword" type="password" name="currentPassword" class="form-control" required />
<p class="text-sm text-muted">To prevent unauthorized changes, a password is always required for sensitive operations.</p> <p class="text-sm text-muted">{{__('messages.profile.2fa_password_confirm_exp')}}</p>
<div class="form-group mt-2"> <div class="form-group mt-2">
<label for="consent">"I understand the possible consequences of disabling two factor authentication"</label> <label for="consent">{{__('messages.profile.2fa_disable_consent')}}</label>
<span><i>Click to confirm </i> </span><input type="checkbox" name="consent" id="consent" required /> <span><i>{{__('messages.reusable.confirm_click')}} </i> </span><input type="checkbox" name="consent" id="consent" required />
</div> </div>
@ -97,7 +97,7 @@
<x-slot name="modalFooter"> <x-slot name="modalFooter">
<button type="button" class="btn btn-danger" onclick="$('#disable2FA').submit()"><i class="fa fa-trash"></i> Remove 2FA</button> <button type="button" class="btn btn-danger" onclick="$('#disable2FA').submit()"><i class="fa fa-trash"></i> {{__('messages.profile.2fa_remove')}}</button>
</x-slot> </x-slot>
@ -109,24 +109,24 @@
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="authenticationFormLabel">Please authenticate</h5> <h5 class="modal-title" id="authenticationFormLabel">{{__('messages.reusable.auth_req')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p class="text-muted">For your security, you'll need to re-enter your password before logging out other devices. If you believe your account has been compromised, please change your password instead, as that will automatically log out anyone else who might using your account, and prevent them from signing back in.</p> <p class="text-muted">{{__('messages.profile.security_lgotherdev')}}</p>
<form method="POST" action="{{route('flushSessions')}}" id="flushSessions"> <form method="POST" action="{{route('flushSessions')}}" id="flushSessions">
@csrf @csrf
<label for="reenter">Re-enter your password</label> <label for="reenter">{{__('messages.profile.password_reenter')}}</label>
<input type="password" name="currentPasswordFlush" id="currentPasswordFlush" class="form-control" autocomplete="current-password"> <input type="password" name="currentPasswordFlush" id="currentPasswordFlush" class="form-control" autocomplete="current-password">
</form> </form>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" onclick="document.getElementById('flushSessions').submit()">Confirm</button> <button type="button" class="btn btn-success" onclick="document.getElementById('flushSessions').submit()">{{__('messages.reusable.confirm')}}</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">{{__('messages.modal_close')}}</button>
</div> </div>
</div> </div>
</div> </div>
@ -140,10 +140,10 @@
<div class="card-body"> <div class="card-body">
<h3>Welcome back, {{Auth::user()->name}}</h3> <h3>{{__('messages.welcome_back')}} {{Auth::user()->name}}</h3>
<p class="text-muted">{{Auth::user()->email}}</p> <p class="text-muted">{{Auth::user()->email}}</p>
<a href="https://namemc.com/profile/{{Auth::user()->uuid}}" target="_blank">View @ NameMC</a> <a href="https://namemc.com/profile/{{Auth::user()->uuid}}" target="_blank">{{__('messages.reusable.view')}} @ NameMC</a>
</div> </div>
</div> </div>
@ -159,69 +159,69 @@
<div class="card-header tab-card-header"> <div class="card-header tab-card-header">
<ul class="nav nav-tabs card-header-tabs" id="myTab" role="tablist"> <ul class="nav nav-tabs card-header-tabs" id="myTab" role="tablist">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="accountSecurityTab" data-toggle="tab" href="#accountSecurity" role="tab" aria-controls="AccountSecurity" aria-selected="true">Account Security</a> <a class="nav-link" id="accountSecurityTab" data-toggle="tab" href="#accountSecurity" role="tab" aria-controls="AccountSecurity" aria-selected="true">{{__('messages.profile.acc_security')}}</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="twofaTab" data-toggle="tab" href="#twofa" role="tab" aria-controls="TwoFa" aria-selected="false">Two Factor Authentication</a> <a class="nav-link" id="twofaTab" data-toggle="tab" href="#twofa" role="tab" aria-controls="TwoFa" aria-selected="false">{{__('messages.profile.2fa')}}</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="sessionsTab" data-toggle="tab" href="#sessions" role="tab" aria-controls="Sessions" aria-selected="false">Sessions</a> <a class="nav-link" id="sessionsTab" data-toggle="tab" href="#sessions" role="tab" aria-controls="Sessions" aria-selected="false">{{__('messages.profile.sessions')}}</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="contactSettingsTab" data-toggle="tab" href="#contactSettings" role="tab" aria-controls="ContactSettings" aria-selected="false">Contact Settings (E-mail)</a> <a class="nav-link" id="contactSettingsTab" data-toggle="tab" href="#contactSettings" role="tab" aria-controls="ContactSettings" aria-selected="false">{{__('messages.profile.contact_settings')}}</a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="tab-content" id="myTabContent"> <div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active p-3" id="accountSecurity" role="tabpanel" aria-labelledby="accountSecurityTab"> <div class="tab-pane fade show active p-3" id="accountSecurity" role="tabpanel" aria-labelledby="accountSecurityTab">
<h5 class="card-title">Change Password</h5> <h5 class="card-title">{{__('messages.profile.change_password')}}</h5>
<p class="card-text">Change your password here. This will log you out from all existing sessions for your security.</p> <p class="card-text">{{__('messages.profile.change_password_exp')}}</p>
<form method="POST" action="{{route('changePassword')}}" id="changePassword"> <form method="POST" action="{{route('changePassword')}}" id="changePassword">
@csrf @csrf
@method('PATCH') @method('PATCH')
<label for="oldpassword">Old Password</label> <label for="oldpassword">{{__('messages.profile.old_pass')}}</label>
<input class="form-control" name="oldPassword" type="password" id="oldpassword" autocomplete="current-password"> <input class="form-control" name="oldPassword" type="password" id="oldpassword" autocomplete="current-password">
<p class="text-sm text-muted">Forgot your password? Reset it <a href="/auth/password/reset">here</a></p> <p class="text-sm text-muted">{{__('messages.forgot_pw', ['link' => '<a href="/auth/password/reset">' . __('messages.reusable.here') . '</a>'])}}</p>
<div class="form-group mt-5"> <div class="form-group mt-5">
<label for="newpassword">New Password</label> <label for="newpassword">{{__('messages.profile.new_pw')}}</label>
<input type="password" name="newPassword" id="newpassword" class="form-control" autocomplete="new-password"> <input type="password" name="newPassword" id="newpassword" class="form-control" autocomplete="new-password">
<label for="newpassword_confirmation">Confirm Password</label> <label for="newpassword_confirmation">{{__('messages.sronly_confirmpassword')}}</label>
<input type="password" name="newPassword_confirmation" id="newpassword_confirmation" autocomplete="new-password" class="form-control"> <input type="password" name="newPassword_confirmation" id="newpassword_confirmation" autocomplete="new-password" class="form-control">
</div> </div>
</form> </form>
<button class="btn btn-success" type="button" onclick="document.getElementById('changePassword').submit()">Change Password</button> <button class="btn btn-success" type="button" onclick="document.getElementById('changePassword').submit()">{{__('messages.profile.change_password')}}</button>
</div> </div>
<div class="tab-pane fade p-3" id="twofa" role="tabpanel" aria-labelledby="twofaTab"> <div class="tab-pane fade p-3" id="twofa" role="tabpanel" aria-labelledby="twofaTab">
<h5 class="card-title">Two-factor Authentication</h5> <h5 class="card-title">{{__('messages.profile.2fa')}}</h5>
<br /> <br />
@if (Auth::user()->has2FA()) @if (Auth::user()->has2FA())
<p><b>Hooray!</b> 2FA is setup correctly for your account. A code will be asked each time you login.</p> <p>{{__('messages.profile.2fa_enable_success')}}</p>
<button type="button" class="btn btn-danger" onclick="$('#remove2FA').modal('show')"><i class="fa fa-ban"></i> Disable 2FA (not recommended)</button> <button type="button" class="btn btn-danger" onclick="$('#remove2FA').modal('show')"><i class="fa fa-ban"></i>{{__('messages.profile.2fa_remove')}}</button>
@else @else
<p class="card-text"><b>Two-factor auth is available for your account.</b> Enabling this security option greatly increases your account's security in case your password ever gets stolen.</p> <p class="card-text"><b>{{__('messages.profile.2fa_avail')}}</b>{{__('messages.profile.2fa_avail_exp')}}</p>
<button type="button" class="btn btn-primary" onclick="$('#twoFactorAuthModal').modal('show')">Enable 2FA</button> <button type="button" class="btn btn-primary" onclick="$('#twoFactorAuthModal').modal('show')">{{__('messages.profile.2fa_enable')}}</button>
@endif @endif
</div> </div>
<div class="tab-pane fade p-3" id="sessions" role="tabpanel" aria-labelledby="sessionsTab"> <div class="tab-pane fade p-3" id="sessions" role="tabpanel" aria-labelledby="sessionsTab">
<h5 class="card-title">Session Manager</h5> <h5 class="card-title">{{__('messages.profile.session_manager')}}</h5>
<p class="card-text">Terminating other sessions is generally a good idea if your account has been compromised.</p> <p class="card-text">{{__('messages.profile.terminate_others')}}</p>
<p>Your current session: Logged in from {{ $ip }}</p> <p>{{__('messages.profile.current_session', ['ipAddress' => $ip])}}</p>
<button type="button" class="btn btn-warning" onclick="$('#authenticationForm').modal('show')">Flush Sessions</button> <button type="button" class="btn btn-warning" onclick="$('#authenticationForm').modal('show')">{{__('messages.profile.flush_session')}}</button>
</div> </div>
<div class="tab-pane fade p-3" id="contactSettings" role="tabpanel" aria-labelledby="contactSettingsTab"> <div class="tab-pane fade p-3" id="contactSettings" role="tabpanel" aria-labelledby="contactSettingsTab">
<h5 class="card-title">Contact Settings</h5> <h5 class="card-title">{{__('messages.profile.contact_settings')}}</h5>
<p class="card-text">Need to change personal data? You can do so here.</p> <p class="card-text">{{__('messages.profile.personal_data_change')}}</p>
<form method="POST" action="{{route('changeEmail')}}" id="changeEmail"> <form method="POST" action="{{route('changeEmail')}}" id="changeEmail">
@ -229,11 +229,11 @@
@method('PATCH') @method('PATCH')
<div class="form-group"> <div class="form-group">
<label for="oldEmail">Current Email Address</label> <label for="oldEmail">{{__('messages.profile.current_email')}}</label>
<input type="text" class="form-control" id="oldEmail" disabled value="{{Auth::user()->email}}"> <input type="text" class="form-control" id="oldEmail" disabled value="{{Auth::user()->email}}">
<label for="newEmail">New Email Address</label> <label for="newEmail">{{__('messages.profile.new_email')}}</label>
<input type="email" name="newEmail" class="form-control mb-3" id="newEmail"> <input type="email" name="newEmail" class="form-control mb-3" id="newEmail">
@ -241,13 +241,13 @@
<div class="form-group mt-5"> <div class="form-group mt-5">
<label for="currentPassword">Current Password</label> <label for="currentPassword">{{__('messages.profile.current_password')}}</label>
<input type="password" name="currentPassword" class="form-control" id="currentPassword" autocomplete="current-password"> <input type="password" name="currentPassword" class="form-control" id="currentPassword" autocomplete="current-password">
<p class="text-sm text-muted">For security reasons, you cannot make important account changes without confirming your password. You'll also need to verify your new email.</p> <p class="text-sm text-muted">{{__('messages.profile.security_nochangepw')}}</p>
</div> </div>
</form> </form>
<button class="btn btn-success" type="button" onclick="document.getElementById('changeEmail').submit()">Change Email Address</button> <button class="btn btn-success" type="button" onclick="document.getElementById('changeEmail').submit()">{{__('messages.profile.change_email')}}</button>
</div> </div>
</div> </div>

View File

@ -1,10 +1,10 @@
@extends('adminlte::page') @extends('adminlte::page')
@section('title', 'Raspberry Network | Profile') @section('title', config('app.name') . ' | ' . __('messages.profile.profile'))
@section('content_header') @section('content_header')
<h4>My Profile / Settings</h4> <h4>{{__('messages.reusable.profile')}} / {{__('messages.reusable.settings')}}</h4>
@stop @stop
@ -67,7 +67,7 @@
<div class="card-footer text-center"> <div class="card-footer text-center">
<a href="https://github.com/{{$github}}" class="pr-2 pl-2"><i class="fab fa-github fa-2x"></i></a> <a href="https://github.com/{{$github}}" class="pr-2 pl-2"><i class="fab fa-github fa-2x"></i></a>
<a href="#" onclick="toastr.info('User\'s Discord tag: {{$discord}}')" class="pr-2 pl-2"><i class="fab fa-discord fa-2x"></i></a> <a href="#" onclick="toastr.info('{{__('messages.profile.discord_tag', ['discordTag' => $discord])}}')" class="pr-2 pl-2"><i class="fab fa-discord fa-2x"></i></a>
<a href="https://twitter.com/{{$twitter}}" class="pr-2 pl-2"><i class="fab fa-twitter fa-2x"></i></a> <a href="https://twitter.com/{{$twitter}}" class="pr-2 pl-2"><i class="fab fa-twitter fa-2x"></i></a>
<a href="https://instagram.com/{{$insta}}" class="pr-2 pl-2"><i class="fab fa-instagram fa-2x"></i></a> <a href="https://instagram.com/{{$insta}}" class="pr-2 pl-2"><i class="fab fa-instagram fa-2x"></i></a>
@ -100,7 +100,7 @@
<div class="card-header"> <div class="card-header">
<div class="card-title"><h3>Basic Information</h3></div> <div class="card-title"><h3>{{__('messages.profile.basic_info')}}</h3></div>
</div> </div>
@ -110,7 +110,7 @@
<div class="col"> <div class="col">
<label for="firstName">First / Last Name</label> <label for="firstName">{{__('messages.profile.fl_name')}}</label>
<input disabled type="text" class="form-control" id="firstName" value="{{Auth::user()->name}}"> <input disabled type="text" class="form-control" id="firstName" value="{{Auth::user()->name}}">
</div> </div>
@ -119,16 +119,16 @@
<div class="form-group mt-3"> <div class="form-group mt-3">
<label for="shortBio">Short Bio</label> <label for="shortBio">{{__('messages.profile.shortbio')}}</label>
<input type="text" name="shortBio" id="shortBio" class="form-control" value="{{$profile->profileShortBio}}"> <input type="text" name="shortBio" id="shortBio" class="form-control" value="{{$profile->profileShortBio}}">
</div> </div>
<div class="form-group mt-3"> <div class="form-group mt-3">
<label for="aboutMe">About Me</label> <label for="aboutMe">{{__('messages.profile.about_me')}}</label>
<textarea name="aboutMe" id="aboutMe" rows="8" class="form-control">{{$profile->profileAboutMe}}</textarea> <textarea name="aboutMe" id="aboutMe" rows="8" class="form-control">{{$profile->profileAboutMe}}</textarea>
<p class="text-muted"><a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet">Github-flavored Markdown</a> supported</p> <p class="text-muted"><a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet">{{__('messages.vacancy.markdown')}}</p>
</div> </div>
@ -143,12 +143,12 @@
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="card-title"><h3>Preferences & Media</h3></div> <div class="card-title"><h3>{{__('messages.profile.pref_media')}}</h3></div>
</div> </div>
<div class="card-body"> <div class="card-body">
<label>Retrieve avatar from: </label> <label>{{__('messages.profile.avatar_source')}} </label>
<div class="form-group mb-3"> <div class="form-group mb-3">
@ -164,34 +164,34 @@
</div> </div>
<label>Social Media</label> <label>{{__('messages.profile.social_media')}}</label>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text"><i class="fab fa-github"></i></span> <span class="input-group-text"><i class="fab fa-github"></i></span>
</div> </div>
<input name="socialGithub" type="text" class="form-control" placeholder="Github Username" value="{{$github}}"> <input name="socialGithub" type="text" class="form-control" placeholder="{{__('messages.profile.github_user')}}" value="{{$github}}">
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text"><i class="fab fa-discord"></i></span> <span class="input-group-text"><i class="fab fa-discord"></i></span>
</div> </div>
<input name="socialDiscord" type="text" class="form-control" placeholder="Discord Handle" value="{{$discord}}"> <input name="socialDiscord" type="text" class="form-control" placeholder="{{__('messages.profile.discord_user')}}" value="{{$discord}}">
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text"><i class="fab fa-twitter"></i></span> <span class="input-group-text"><i class="fab fa-twitter"></i></span>
</div> </div>
<input name="socialTwitter" type="text" class="form-control" placeholder="Twitter Username" value="{{$twitter}}"> <input name="socialTwitter" type="text" class="form-control" placeholder="{{__('messages.profile.twitter_user')}}" value="{{$twitter}}">
</div> </div>
<div class="input-group mb-3"> <div class="input-group mb-3">
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text"><i class="fab fa-instagram"></i></span> <span class="input-group-text"><i class="fab fa-instagram"></i></span>
</div> </div>
<input name="socialInsta" type="text" class="form-control" placeholder="Instagram Username" value="{{$insta}}"> <input name="socialInsta" type="text" class="form-control" placeholder="{{__('messages.profile.insta_user')}}" value="{{$insta}}">
</div> </div>
</div> </div>
@ -206,7 +206,7 @@
<div class="col text-center"> <div class="col text-center">
<button type="button" class="btn btn-success" onclick="document.getElementById('saveProfileSettings').submit()">Update Profile</button> <button type="button" class="btn btn-success" onclick="document.getElementById('saveProfileSettings').submit()">{{__('messages.profile.update_prfl')}}</button>
</div> </div>