Przeglądaj źródła

Allowed Language change under maintenance mode

Fixed #257
BrettonYe 1 rok temu
rodzic
commit
4ea544244f
3 zmienionych plików z 32 dodań i 17 usunięć
  1. 5 5
      readme.md
  2. 26 11
      resources/views/auth/maintenance.blade.php
  3. 1 1
      routes/web.php

+ 5 - 5
readme.md

@@ -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:** [email protected]
     - **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流量/月,性价比不错

+ 26 - 11
resources/views/auth/maintenance.blade.php

@@ -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

+ 1 - 1
routes/web.php

@@ -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'); // 退出