parent
31268ba6e1
commit
10d7e0654d
12 changed files with 361 additions and 245 deletions
|
@ -1,3 +1,6 @@
|
|||
## v.3.1 (WIP)
|
||||
+ Updated translations
|
||||
|
||||
## v.3.0.2
|
||||
+ Fixed error with migrate command.
|
||||
+ Updated translations.
|
||||
|
|
12
Gruntfile.js
12
Gruntfile.js
|
@ -101,6 +101,18 @@ module.exports = function (grunt) {
|
|||
src: ['dropzone.min.css', 'dropzone.min.js'],
|
||||
dest: 'static/dropzone'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'node_modules/bootstrap4-toggle/css',
|
||||
src: ['bootstrap4-toggle.min.css'],
|
||||
dest: 'static/bootstrap/css'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'node_modules/bootstrap4-toggle/js',
|
||||
src: ['bootstrap4-toggle.min.js'],
|
||||
dest: 'static/bootstrap/js'
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'src/images',
|
||||
|
|
|
@ -43,6 +43,7 @@ class AdminController extends Controller
|
|||
'upload_max_filesize' => ini_get('upload_max_filesize'),
|
||||
'installed_lang' => $this->lang->getList(),
|
||||
'forced_lang' => $request->getAttribute('forced_lang'),
|
||||
'php_version' => phpversion(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -120,6 +120,12 @@ class MediaController extends Controller
|
|||
throw new HttpBadRequestException($request);
|
||||
}
|
||||
|
||||
// If contains html, return it as text/plain
|
||||
if (strpos($this->storage->getMimetype($media->storage_path), 'text/htm') !== false) {
|
||||
$response = $this->streamMedia($request, $response, $this->storage, $media);
|
||||
return $response->withHeader('Content-Type', 'text/plain');
|
||||
}
|
||||
|
||||
return $this->streamMedia($request, $response, $this->storage, $media);
|
||||
}
|
||||
|
||||
|
@ -358,7 +364,7 @@ class MediaController extends Controller
|
|||
protected function handlePartialRequest(Response $response, Stream $stream, string $range, string $disposition, $media, $mime)
|
||||
{
|
||||
$end = $stream->getSize() - 1;
|
||||
list(, $range) = explode('=', $range, 2);
|
||||
[, $range] = explode('=', $range, 2);
|
||||
|
||||
if (strpos($range, ',') !== false) {
|
||||
return $response->withHeader('Content-Type', $mime)
|
||||
|
|
10
app/Controllers/SettingController.php
Normal file
10
app/Controllers/SettingController.php
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
|
||||
class SettingController extends Controller
|
||||
{
|
||||
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "sergix44/xbackbone",
|
||||
"version": "3.0.2",
|
||||
"version": "3.1",
|
||||
"description": "A lightweight ShareX PHP backend",
|
||||
"type": "project",
|
||||
"require": {
|
||||
|
|
403
composer.lock
generated
403
composer.lock
generated
File diff suppressed because it is too large
Load diff
53
package-lock.json
generated
53
package-lock.json
generated
|
@ -3,9 +3,9 @@
|
|||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": {
|
||||
"version": "5.11.2",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.2.tgz",
|
||||
"integrity": "sha512-XiUPoS79r1G7PcpnNtq85TJ7inJWe0v+b5oZJZKb0pGHNIV6+UiNeQWiFGmuQ0aj7GEhnD/v9iqxIsjuRKtEnQ=="
|
||||
"version": "5.12.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz",
|
||||
"integrity": "sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw=="
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
|
@ -107,6 +107,11 @@
|
|||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz",
|
||||
"integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA=="
|
||||
},
|
||||
"bootstrap4-toggle": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap4-toggle/-/bootstrap4-toggle-3.6.1.tgz",
|
||||
"integrity": "sha512-eRejcTc9YurhZ64nHY9Ii9DQn+F9/R74H9RPoeANVM3N1+C2lZ2tUuFCx1w3orOJ1y/iG4A7iCwdDZphMDIrYg=="
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
|
@ -250,9 +255,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"core-js": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.4.1.tgz",
|
||||
"integrity": "sha512-KX/dnuY/J8FtEwbnrzmAjUYgLqtk+cxM86hfG60LGiW3MmltIc2yAmDgBgEkfm0blZhUrdr1Zd84J2Y14mLxzg=="
|
||||
"version": "3.6.4",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
|
||||
"integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw=="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -360,9 +365,9 @@
|
|||
}
|
||||
},
|
||||
"dropzone": {
|
||||
"version": "5.5.1",
|
||||
"resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.5.1.tgz",
|
||||
"integrity": "sha512-3VduRWLxx9hbVr42QieQN25mx/I61/mRdUSuxAmDGdDqZIN8qtP7tcKMa3KfpJjuGjOJGYYUzzeq6eGDnkzesA=="
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.7.0.tgz",
|
||||
"integrity": "sha512-kOltiZXH5cO/72I22JjE+w6BoT6uaVLfWdFMsi1PMKFkU6BZWpqRwjnsRm0o6ANGTBuZar5Piu7m/CbKqRPiYg=="
|
||||
},
|
||||
"duplexer": {
|
||||
"version": "0.1.1",
|
||||
|
@ -1025,9 +1030,9 @@
|
|||
}
|
||||
},
|
||||
"loadjs": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmjs.org/loadjs/-/loadjs-3.6.1.tgz",
|
||||
"integrity": "sha512-AZEBw2GWdJk2IzBgQ+Wohoao5j+t0rajqK8dJu8jQqgYxDTxhmCt0ayMo/vCa0ZAMvZxnJcam6uLICfnVd8KAw=="
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz",
|
||||
"integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA=="
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "2.0.0",
|
||||
|
@ -1340,21 +1345,21 @@
|
|||
}
|
||||
},
|
||||
"plyr": {
|
||||
"version": "3.5.6",
|
||||
"resolved": "https://registry.npmjs.org/plyr/-/plyr-3.5.6.tgz",
|
||||
"integrity": "sha512-buudbt2qwZYjEdBXW9DvQ7t/LqaSbv9tSjCrqg7nTXVM5BXNdhuiJCyvko+5+DFMdp30mliyKGoOHGXz43OwrA==",
|
||||
"version": "3.5.10",
|
||||
"resolved": "https://registry.npmjs.org/plyr/-/plyr-3.5.10.tgz",
|
||||
"integrity": "sha512-wbbSuzk3yKVOmYWQUnxG1bxikqZNkxZmL3OjS1DFVU0D2Uko1evGY72LuD9rm/HnNCNzcTuc0c6MCn7bRRpUTA==",
|
||||
"requires": {
|
||||
"core-js": "^3.1.4",
|
||||
"core-js": "^3.6.4",
|
||||
"custom-event-polyfill": "^1.0.7",
|
||||
"loadjs": "^3.6.1",
|
||||
"loadjs": "^4.2.0",
|
||||
"rangetouch": "^2.0.0",
|
||||
"url-polyfill": "^1.1.5"
|
||||
"url-polyfill": "^1.1.8"
|
||||
}
|
||||
},
|
||||
"popper.js": {
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz",
|
||||
"integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw=="
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
|
||||
},
|
||||
"pretty-bytes": {
|
||||
"version": "3.0.1",
|
||||
|
@ -1651,9 +1656,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"url-polyfill": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.7.tgz",
|
||||
"integrity": "sha512-ZrAxYWCREjmMtL8gSbSiKKLZZticgihCvVBtrFbUVpyoETt8GQJeG2okMWA8XryDAaHMjJfhnc+rnhXRbI4DXA=="
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.8.tgz",
|
||||
"integrity": "sha512-Ey61F4FEqhcu1vHSOMmjl0Vd/RPRLEjMj402qszD/dhMBrVfoUsnIj8KSZo2yj+eIlxJGKFdnm6ES+7UzMgZ3Q=="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.11.2",
|
||||
"@fortawesome/fontawesome-free": "^5.12.1",
|
||||
"bootstrap": "^4.4.1",
|
||||
"bootstrap4-toggle": "^3.6.1",
|
||||
"clipboard": "^2.0.4",
|
||||
"dropzone": "^5.5.1",
|
||||
"dropzone": "^5.7.0",
|
||||
"highlightjs": "^9.16.2",
|
||||
"jquery": "^3.4.1",
|
||||
"plyr": "^3.5.6",
|
||||
"popper.js": "^1.16.0",
|
||||
"plyr": "^3.5.10",
|
||||
"popper.js": "^1.16.1",
|
||||
"tooltip.js": "^1.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -40,7 +40,8 @@ return [
|
|||
'apply' => 'Apply',
|
||||
'save' => 'Save',
|
||||
'used' => 'Used',
|
||||
'system_info' => 'System Information',
|
||||
'php_info' => 'PHP Informations',
|
||||
'system_settings' => 'System Settings',
|
||||
'user.create' => 'Create User',
|
||||
'user.edit' => 'Edit User',
|
||||
'is_active' => 'Is active',
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
<link href="{{ asset('/static/highlightjs/styles/monokai.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('/static/plyr/plyr.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('/static/dropzone/dropzone.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('/static/bootstrap/css/bootstrap4-toggle.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ asset('/static/app/app.css') }}" rel="stylesheet">
|
||||
<script>
|
||||
window.AppConfig = {
|
||||
|
@ -49,6 +50,7 @@
|
|||
<script src="{{ asset('/static/clipboardjs/clipboard.min.js') }}"></script>
|
||||
<script src="{{ asset('/static/plyr/plyr.min.js') }}"></script>
|
||||
<script src="{{ asset('/static/dropzone/dropzone.min.js') }}"></script>
|
||||
<script src="{{ asset('/static/bootstrap/js/bootstrap4-toggle.min.js') }}"></script>
|
||||
<script src="{{ asset('/static/app/app.js') }}"></script>
|
||||
<script>hljs.initHighlightingOnLoad();</script>
|
||||
</body>
|
||||
|
|
|
@ -54,7 +54,76 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="row same-height-container">
|
||||
|
||||
<div class="card shadow-sm mt-3">
|
||||
<div class="card-header"><i class="fas fa-cog fa-fw"></i> {{ lang('system_settings') }}</div>
|
||||
<div class="card-body">
|
||||
<form method="post" action="{#{{ route('systemSettings.apply') }}#}">
|
||||
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="custom_head" class="col-sm-4 col-form-label">{{ lang('register_enabled') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="checkbox" checked data-toggle="toggle">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="custom_head" class="col-sm-4 col-form-label">{{ lang('hide_by_default') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="checkbox" checked data-toggle="toggle">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="custom_head" class="col-sm-4 col-form-label">{{ lang('copy_url_behavior') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-on="Default URL" data-off="Raw URL" data-onstyle="primary" data-offstyle="secondary">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="custom_head" class="col-sm-4 col-form-label">{{ lang('theme') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-control" id="themes" name="css">
|
||||
<option id="theme-load" selected disabled hidden>{{ lang('click_to_load') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="custom_head" class="col-sm-4 col-form-label">{{ lang('enforce_language') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<select class="form-control" id="lang" name="lang">
|
||||
<option value="auto">({{ lang('auto_set') }})</option>
|
||||
{% for lang, name in installed_lang %}
|
||||
<option value="{{ lang }}"{{ forced_lang == lang ? ' selected' }}>{{ name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<small>{{ lang('default_lang_behavior') }}</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="custom_head" class="col-sm-4 col-form-label">{{ lang('custom_head_html') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea name="custom_head" class="form-control text-monospace">{{ customHead|raw }}</textarea>
|
||||
<small>{{ lang('custom_head_html_hint') }}</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-outline-success float-right mt-3">
|
||||
<i class="fas fa-save fa-fw"></i> {{ lang('apply') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{#<div class="row same-height-container">
|
||||
<div class="col-md-6 mt-3">
|
||||
<div class="card shadow-sm same-height">
|
||||
<div class="card-header"><i class="fas fa-paint-brush fa-fw"></i> {{ lang('theme') }}</div>
|
||||
|
@ -105,7 +174,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>#}
|
||||
<div class="card shadow-sm mt-3">
|
||||
<div class="card-header"><i class="fas fa-cloud-download-alt fa-fw"></i> {{ lang('updates') }} <span class="float-right">v{{ PLATFORM_VERSION }}</span></div>
|
||||
<div class="card-body">
|
||||
|
@ -131,23 +200,24 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card shadow-sm mt-3">
|
||||
<div class="card-header"><i class="fas fa-code fa-fw"></i> {{ lang('custom_head_html') }}</div>
|
||||
<div class="card-body">
|
||||
<form method="post" action="{{ route('customHead.apply') }}">
|
||||
<textarea name="custom_head" class="form-control text-monospace">{{ customHead|raw }}</textarea>
|
||||
<small>{{ lang('custom_head_html_hint') }}</small>
|
||||
<button type="submit" class="btn btn-outline-success float-right mt-3">
|
||||
<i class="fas fa-save fa-fw"></i> {{ lang('apply') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{# <div class="card shadow-sm mt-3">#}
|
||||
{# <div class="card-header"><i class="fas fa-code fa-fw"></i> {{ lang('custom_head_html') }}</div>#}
|
||||
{# <div class="card-body">#}
|
||||
{# <form method="post" action="{{ route('customHead.apply') }}">#}
|
||||
{# <textarea name="custom_head" class="form-control text-monospace">{{ customHead|raw }}</textarea>#}
|
||||
{# <small>{{ lang('custom_head_html_hint') }}</small>#}
|
||||
{# <button type="submit" class="btn btn-outline-success float-right mt-3">#}
|
||||
{# <i class="fas fa-save fa-fw"></i> {{ lang('apply') }}#}
|
||||
{# </button>#}
|
||||
{# </form>#}
|
||||
{# </div>#}
|
||||
{# </div>#}
|
||||
</div>
|
||||
<div class="col-md-4 mt-3">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header"><i class="fas fa-cog fa-fw"></i> {{ lang('system_info') }}</div>
|
||||
<div class="card-header"><i class="fab fa-php fa-fw"></i> {{ lang('php_info') }}</div>
|
||||
<div class="card-body">
|
||||
<strong>PHP Version:</strong> {{ php_version }}<br>
|
||||
<strong>Max upload size:</strong>
|
||||
<ul>
|
||||
<li><code>post_max_size</code>: {{ post_max_size }}</li>
|
||||
|
|
Loading…
Add table
Reference in a new issue