Allowed Language change under maintenance mode

Fixed #257
This commit is contained in:
BrettonYe
2024-07-20 08:36:27 +08:00
parent 28777bef38
commit 4ea544244f
3 changed files with 32 additions and 17 deletions

View File

@@ -1,14 +1,14 @@
# **ProxyPanel** [![Crowdin](https://badges.crowdin.net/proxypanel/localized.svg)](https://crowdin.com/project/proxypanel) <img src="https://avatars.githubusercontent.com/u/70075860?s=128" alt="logo" align="right" style="margin-top: -50px;"/>
Support but not limited to: Shadowsocks, ShadowsocksR, ShadowsocksRR, V2Ray, Trojan, VNET
`We are looking for translators to help us translate this project into other languages 😊`
We are looking for translators who help us to translate this project into other languages :)
Support but not limited to: Shadowsocks, ShadowsocksR, ShadowsocksRR, V2Ray, Trojan, VNET
---
## Project
- [**Demo**](https://proxypanel.ddo.jp) will always be on dev/latest code, rather than the stable version. For showcase purposes.
- [**Demo**](https://proxypanel.ddo.jp) (dev/latest code for showcase purposes)
- **Account:** test@test.com
- **Password:** 123456
- [**WIKI**](https://proxypanel.gitbook.io/wiki/) [简体中文](https://proxypanel.gitbook.io/wiki/)
@@ -26,7 +26,7 @@ We are looking for translators who help us to translate this project into other
### Laravel 10
This project is based on Laravel 10 Framework. This means anything Laravel 10 requires to install will also be required by this project.
This project is based on Laravel 10 Framework. Therefore, it requires all Laravel 10 dependencies.
- **PHP 8.1+**
- Ctype PHP Extension
@@ -57,7 +57,7 @@ This project is based on Laravel 10 Framework. This means anything Laravel 10 re
---
## Nice VPS
## Recommended VPS
- [**Kdatacenter**](https://www.kdatacenter.com/myportal/?affid=470)
- 韩国SK线路19刀优惠后16.91刀1TB流量/月,性价比不错

View File

@@ -9,6 +9,13 @@
{!! $message !!}
<footer class="page-copyright">
<p id="countdown"></p>
<div class="social">
@foreach (config('common.language') as $key => $value)
<a class="btn btn-icon btn-pure" href="{{ route('lang', ['locale' => $key]) }}">
<i class="font-size-30 icon fi fi-{{ $value[1] }}" aria-hidden="true"></i>
</a>
@endforeach
</div>
</footer>
</div>
</div>
@@ -17,21 +24,29 @@
<script>
// 每秒更新计时器
const countDownDate = new Date("{{ $time }}").getTime();
const x = setInterval(function() {
const countdownElement = document.getElementById('countdown');
const daysLabel = '{{ trans_choice('common.days.attribute', 1) }}';
const hoursLabel = '{{ trans_choice('common.hour', 1) }}';
const minutesLabel = '{{ trans('validation.attributes.minute') }}';
const secondsLabel = '{{ trans('validation.attributes.second') }}';
const updateCountdown = () => {
const distance = countDownDate - new Date().getTime();
if (distance <= 0) {
clearInterval(interval);
countdownElement.remove();
return;
}
const days = Math.floor(distance / 86400000);
const hours = Math.floor(distance % 86400000 / 3600000);
const minutes = Math.floor(distance % 3600000 / 60000);
const seconds = Math.floor(distance % 60000 / 1000);
document.getElementById('countdown').innerHTML = '<h2>' + days + ' <span> ' +
@json(trans_choice('common.days.attribute', 1)) + ' </span>: ' +
hours + ' <span>' + @json(trans_choice('common.hour', 1)) + '</span>: ' + minutes +
' <span>{{ trans('validation.attributes.minute') }} </span>: ' +
seconds + '<span> {{ trans('validation.attributes.second') }}</span> </h2>';
if (distance <= 0) {
clearInterval(x);
document.getElementById('countdown').remove();
}
}, 1000);
countdownElement.innerHTML =
`<h3>${days} <span> ${daysLabel} </span>: ${hours} <span>${hoursLabel}</span>: ${minutes} <span>${minutesLabel}</span>: ${seconds}<span> ${secondsLabel}</span></h3>`;
};
const interval = setInterval(updateCountdown, 1000);
</script>
@endsection

View File

@@ -28,7 +28,7 @@ Route::middleware(['isForbidden', 'affiliate', 'isMaintenance'])->group(function
});
Route::controller(AuthController::class)->group(function () {
Route::get('lang/{locale}', 'switchLang')->name('lang'); // 语言切换
Route::get('lang/{locale}', 'switchLang')->name('lang')->withoutMiddleware('isMaintenance'); // 语言切换
Route::get('login', 'showLoginForm')->middleware('isSecurity')->name('login'); // 登录页面
Route::post('login', 'login')->middleware('isSecurity'); // 登录
Route::get('logout', 'logout')->name('logout'); // 退出