mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-10-31 06:36:51 +01:00 
			
		
		
		
	Create custom number format method to catch invalid languages on php 8.4 (#1623)
This commit is contained in:
		
							parent
							
								
									5eff006843
								
							
						
					
					
						commit
						0104a08ba4
					
				| @ -5,7 +5,6 @@ namespace App\Filament\Admin\Resources\NodeResource\Widgets; | ||||
| use App\Models\Node; | ||||
| use Filament\Support\RawJs; | ||||
| use Filament\Widgets\ChartWidget; | ||||
| use Illuminate\Support\Number; | ||||
| 
 | ||||
| class NodeCpuChart extends ChartWidget | ||||
| { | ||||
| @ -82,8 +81,8 @@ class NodeCpuChart extends ChartWidget | ||||
|     { | ||||
|         $data = array_slice(end($this->cpuHistory), -60); | ||||
| 
 | ||||
|         $cpu = Number::format($data['cpu'], maxPrecision: 2, locale: auth()->user()->language); | ||||
|         $max = Number::format($this->threads * 100, locale: auth()->user()->language); | ||||
|         $cpu = format_number($data['cpu'], maxPrecision: 2); | ||||
|         $max = format_number($this->threads * 100); | ||||
| 
 | ||||
|         return trans('admin/node.cpu_chart', ['cpu' => $cpu, 'max' => $max]); | ||||
|     } | ||||
|  | ||||
| @ -5,7 +5,6 @@ namespace App\Filament\Admin\Resources\NodeResource\Widgets; | ||||
| use App\Models\Node; | ||||
| use Filament\Support\RawJs; | ||||
| use Filament\Widgets\ChartWidget; | ||||
| use Illuminate\Support\Number; | ||||
| 
 | ||||
| class NodeMemoryChart extends ChartWidget | ||||
| { | ||||
| @ -85,12 +84,12 @@ class NodeMemoryChart extends ChartWidget | ||||
|         $latestMemoryUsed = array_slice(end($this->memoryHistory), -60); | ||||
| 
 | ||||
|         $used = config('panel.use_binary_prefix') | ||||
|             ? Number::format($latestMemoryUsed['memory'], maxPrecision: 2, locale: auth()->user()->language) .' GiB' | ||||
|             : Number::format($latestMemoryUsed['memory'], maxPrecision: 2, locale: auth()->user()->language) . ' GB'; | ||||
|             ? format_number($latestMemoryUsed['memory'], maxPrecision: 2) .' GiB' | ||||
|             : format_number($latestMemoryUsed['memory'], maxPrecision: 2) . ' GB'; | ||||
| 
 | ||||
|         $total = config('panel.use_binary_prefix') | ||||
|             ? Number::format($this->totalMemory / 1024 / 1024 / 1024, maxPrecision: 2, locale: auth()->user()->language) .' GiB' | ||||
|             : Number::format($this->totalMemory / 1000 / 1000 / 1000, maxPrecision: 2, locale: auth()->user()->language) . ' GB'; | ||||
|             ? format_number($this->totalMemory / 1024 / 1024 / 1024, maxPrecision: 2) .' GiB' | ||||
|             : format_number($this->totalMemory / 1000 / 1000 / 1000, maxPrecision: 2) . ' GB'; | ||||
| 
 | ||||
|         return trans('admin/node.memory_chart', ['used' => $used, 'total' => $total]); | ||||
|     } | ||||
|  | ||||
| @ -17,7 +17,6 @@ use Filament\Forms\Components\TextInput; | ||||
| use Filament\Forms\Form; | ||||
| use Filament\Notifications\Notification; | ||||
| use Filament\Support\Enums\Alignment; | ||||
| use Illuminate\Support\Number; | ||||
| use Webbingbrasil\FilamentCopyActions\Forms\Actions\CopyAction; | ||||
| 
 | ||||
| class Settings extends ServerFormPage | ||||
| @ -104,7 +103,7 @@ class Settings extends ServerFormPage | ||||
|                                     ->prefixIcon('tabler-cpu') | ||||
|                                     ->columnSpan(1) | ||||
|                                     ->disabled() | ||||
|                                     ->formatStateUsing(fn ($state, Server $server) => !$state ? trans('server/setting.server_info.limits.unlimited') : Number::format($server->cpu, locale: auth()->user()->language) . '%'), | ||||
|                                     ->formatStateUsing(fn ($state, Server $server) => !$state ? trans('server/setting.server_info.limits.unlimited') : format_number($server->cpu) . '%'), | ||||
|                                 TextInput::make('memory') | ||||
|                                     ->label('') | ||||
|                                     ->prefix(trans('server/setting.server_info.limits.memory')) | ||||
|  | ||||
| @ -7,7 +7,6 @@ use Carbon\Carbon; | ||||
| use Filament\Facades\Filament; | ||||
| use Filament\Support\RawJs; | ||||
| use Filament\Widgets\ChartWidget; | ||||
| use Illuminate\Support\Number; | ||||
| 
 | ||||
| class ServerCpuChart extends ChartWidget | ||||
| { | ||||
| @ -31,7 +30,7 @@ class ServerCpuChart extends ChartWidget | ||||
|         $cpu = collect(cache()->get("servers.{$this->server->id}.cpu_absolute")) | ||||
|             ->slice(-$period) | ||||
|             ->map(fn ($value, $key) => [ | ||||
|                 'cpu' => Number::format($value, maxPrecision: 2), | ||||
|                 'cpu' => round($value, 2), | ||||
|                 'timestamp' => Carbon::createFromTimestamp($key, auth()->user()->timezone ?? 'UTC')->format('H:i:s'), | ||||
|             ]) | ||||
|             ->all(); | ||||
|  | ||||
| @ -7,7 +7,6 @@ use Carbon\Carbon; | ||||
| use Filament\Facades\Filament; | ||||
| use Filament\Support\RawJs; | ||||
| use Filament\Widgets\ChartWidget; | ||||
| use Illuminate\Support\Number; | ||||
| 
 | ||||
| class ServerMemoryChart extends ChartWidget | ||||
| { | ||||
| @ -31,7 +30,7 @@ class ServerMemoryChart extends ChartWidget | ||||
|         $memUsed = collect(cache()->get("servers.{$this->server->id}.memory_bytes")) | ||||
|             ->slice(-$period) | ||||
|             ->map(fn ($value, $key) => [ | ||||
|                 'memory' => Number::format(config('panel.use_binary_prefix') ? $value / 1024 / 1024 / 1024 : $value / 1000 / 1000 / 1000, maxPrecision: 2), | ||||
|                 'memory' => round(config('panel.use_binary_prefix') ? $value / 1024 / 1024 / 1024 : $value / 1000 / 1000 / 1000, 2), | ||||
|                 'timestamp' => Carbon::createFromTimestamp($key, auth()->user()->timezone ?? 'UTC')->format('H:i:s'), | ||||
|             ]) | ||||
|             ->all(); | ||||
|  | ||||
| @ -8,7 +8,6 @@ use App\Models\Server; | ||||
| use Carbon\CarbonInterface; | ||||
| use Filament\Notifications\Notification; | ||||
| use Filament\Widgets\StatsOverviewWidget; | ||||
| use Illuminate\Support\Number; | ||||
| use Livewire\Attributes\On; | ||||
| 
 | ||||
| class ServerOverview extends StatsOverviewWidget | ||||
| @ -54,9 +53,9 @@ class ServerOverview extends StatsOverviewWidget | ||||
|         } | ||||
| 
 | ||||
|         $data = collect(cache()->get("servers.{$this->server->id}.cpu_absolute"))->last(default: 0); | ||||
|         $cpu = Number::format($data, maxPrecision: 2, locale: auth()->user()->language) . ' %'; | ||||
|         $cpu = format_number($data, maxPrecision: 2) . ' %'; | ||||
| 
 | ||||
|         return $cpu . ($this->server->cpu > 0 ? ' / ' . Number::format($this->server->cpu, locale: auth()->user()->language) . ' %' : ' / ∞'); | ||||
|         return $cpu . ($this->server->cpu > 0 ? ' / ' . format_number($this->server->cpu) . ' %' : ' / ∞'); | ||||
|     } | ||||
| 
 | ||||
|     public function memoryUsage(): string | ||||
|  | ||||
| @ -38,7 +38,7 @@ class ServerEntry extends Component | ||||
|                 <div class="flex justify-between text-center items-center gap-4"> | ||||
|                     <div> | ||||
|                         <p class="text-sm dark:text-gray-400">{{ trans('server/dashboard.cpu') }}</p> | ||||
|                         <p class="text-md font-semibold">{{ Number::format(0, precision: 2, locale: auth()->user()->language ?? 'en') . '%' }}</p> | ||||
|                         <p class="text-md font-semibold">{{ format_number(0, precision: 2) . '%' }}</p> | ||||
|                         <hr class="p-0.5"> | ||||
|                         <p class="text-xs dark:text-gray-400">{{ $server->formatResource(\App\Enums\ServerResourceType::CPULimit) }}</p> | ||||
|                     </div> | ||||
|  | ||||
| @ -17,7 +17,6 @@ use Illuminate\Notifications\Notifiable; | ||||
| use Illuminate\Database\Query\JoinClause; | ||||
| use Illuminate\Support\Arr; | ||||
| use Illuminate\Support\Facades\Http; | ||||
| use Illuminate\Support\Number; | ||||
| use Psr\Http\Message\ResponseInterface; | ||||
| use Illuminate\Database\Eloquent\Relations\HasOne; | ||||
| use Illuminate\Database\Eloquent\Relations\HasMany; | ||||
| @ -484,7 +483,7 @@ class Server extends Model implements Validatable | ||||
|         } | ||||
| 
 | ||||
|         if ($resourceType->isPercentage()) { | ||||
|             return Number::format($resourceAmount, precision: 2, locale: auth()->user()->language ?? 'en') . '%'; | ||||
|             return format_number($resourceAmount, precision: 2) . '%'; | ||||
|         } | ||||
| 
 | ||||
|         return convert_bytes_to_readable($resourceAmount, base: 3); | ||||
|  | ||||
| @ -45,7 +45,7 @@ if (!function_exists('convert_bytes_to_readable')) { | ||||
|         $fromBase = log($bytes) / log($conversionUnit); | ||||
|         $base ??= floor($fromBase); | ||||
| 
 | ||||
|         return Number::format(pow($conversionUnit, $fromBase - $base), $decimals, locale: auth()->user()->language) . ' ' . $suffix[$base]; | ||||
|         return format_number(pow($conversionUnit, $fromBase - $base), precision: $decimals) . ' ' . $suffix[$base]; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| @ -98,3 +98,15 @@ if (!function_exists('get_ip_from_hostname')) { | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| if (!function_exists('format_number')) { | ||||
|     function format_number(int|float $number, ?int $precision = null, ?int $maxPrecision = null): false|string | ||||
|     { | ||||
|         try { | ||||
|             return Number::format($number, $precision, $maxPrecision, auth()->user()->language ?? 'en'); | ||||
|         } catch (Throwable) { | ||||
|             // User language is invalid, so default to english
 | ||||
|             return Number::format($number, $precision, $maxPrecision, 'en'); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Boy132
						Boy132