|
@@ -0,0 +1,111 @@
|
|
|
|
+@extends('admin.partial.template')
|
|
|
|
+
|
|
|
|
+@include('admin.settings.sidebar')
|
|
|
|
+
|
|
|
|
+@section('section')
|
|
|
|
+<div class="title mb-4">
|
|
|
|
+ <h3 class="font-weight-bold">Diagnostics</h3>
|
|
|
|
+ <p class="lead mb-0">Instance diagnostics</p>
|
|
|
|
+</div>
|
|
|
|
+
|
|
|
|
+<div class="pb-3 border-bottom">
|
|
|
|
+ <p class="font-weight-bold text-muted">
|
|
|
|
+ Information
|
|
|
|
+ <span class="small text-primary ml-3 copy-information cursor-pointer text-uppercase font-weight-bold">Copy</span>
|
|
|
|
+ </p>
|
|
|
|
+ <ul class="information">
|
|
|
|
+ <li>
|
|
|
|
+ <strong>APP_URL:</strong>
|
|
|
|
+ <span>{{config_cache('app.url')}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li>
|
|
|
|
+ <strong>APP_DOMAIN:</strong>
|
|
|
|
+ <span>{{config_cache('pixelfed.domain.app')}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li>
|
|
|
|
+ <strong>Version:</strong>
|
|
|
|
+ <span>{{config('pixelfed.version')}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li>
|
|
|
|
+ <strong>PHP:</strong>
|
|
|
|
+ <span>{{phpversion()}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ @foreach([
|
|
|
|
+ 'bcmath',
|
|
|
|
+ 'ctype',
|
|
|
|
+ 'curl',
|
|
|
|
+ 'intl',
|
|
|
|
+ 'json',
|
|
|
|
+ 'mbstring',
|
|
|
|
+ 'openssl',
|
|
|
|
+ 'redis'
|
|
|
|
+ ] as $ext)
|
|
|
|
+ <li>
|
|
|
|
+ <strong>PHP-{{$ext}}:</strong>
|
|
|
|
+ <span>{{extension_loaded($ext) ? 'Installed' : 'Not installed'}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ @endforeach
|
|
|
|
+ <li>
|
|
|
|
+ <strong>Database:</strong>
|
|
|
|
+ @php($v = explode(' ', DB::select('select version() as version')[0]->version))
|
|
|
|
+ <span>{{config('database.default')}} ({{count($v) == 1 ? $v[0] : $v[1]}})</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li>
|
|
|
|
+ <strong>Bootstrap:</strong>
|
|
|
|
+ <span>{{is_writable(base_path('bootstrap/')) ? 'Writable' : 'Not writable'}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li>
|
|
|
|
+ <strong>Storage:</strong>
|
|
|
|
+ <span>{{is_writable(base_path('storage/')) ? 'Writable' : 'Not writable'}}</span>
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
|
|
+</div>
|
|
|
|
+<div class="pb-3 border-bottom">
|
|
|
|
+ <div class="form-group mb-0">
|
|
|
|
+ <div class="ml-n4 mr-n2 p-3">
|
|
|
|
+ <label class="font-weight-bold text-muted">Decrypt Payload</label>
|
|
|
|
+ <textarea class="form-control payload-input" rows="5" name="payload" placeholder="Enter payload here"></textarea>
|
|
|
|
+ <p class="help-text small text-muted mt-3 mb-0">The payload is from the "Something went wrong" page, anyone can copy the payload for you to decrypt.<br />Contents are encrypted due to potential sensitive information.</p>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="form-group row">
|
|
|
|
+ <div class="col-12">
|
|
|
|
+ <button type="button" class="btn btn-primary font-weight-bold px-5 decrypt-payload">Decrypt</button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</div>
|
|
|
|
+@endsection
|
|
|
|
+
|
|
|
|
+@push('scripts')
|
|
|
|
+<script type="text/javascript" src="{{mix('js/components.js')}}"></script>
|
|
|
|
+<script type="text/javascript">
|
|
|
|
+ $('.decrypt-payload').on('click', function(e) {
|
|
|
|
+ let payload = document.querySelector('.payload-input').value;
|
|
|
|
+ axios.post('{{route('admin.diagnostics.decrypt')}}', {
|
|
|
|
+ 'payload': payload
|
|
|
|
+ }).then(res => {
|
|
|
|
+ swal(
|
|
|
|
+ 'Payload',
|
|
|
|
+ res.data.decrypted,
|
|
|
|
+ 'info'
|
|
|
|
+ );
|
|
|
|
+ document.querySelector('.payload-input').value = '';
|
|
|
|
+ }).catch(err => {
|
|
|
|
+ swal(
|
|
|
|
+ 'Error',
|
|
|
|
+ err.response.data.error,
|
|
|
|
+ 'error'
|
|
|
|
+ );
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ $('.copy-information').on('click', function(e) {
|
|
|
|
+ let text = document.querySelector('.information').innerText;
|
|
|
|
+ let payload = '=======================\n Instance Diagnostic \n=======================\n' + text + '\n========= END =========\n';
|
|
|
|
+ navigator.clipboard.writeText(payload);
|
|
|
|
+ swal('Copied', 'Successfully copied diagnostic information to clipboard!', 'success');
|
|
|
|
+ });
|
|
|
|
+</script>
|
|
|
|
+@endpush
|