Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

ConfigureCompanyDefault.php 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Listeners;
  3. use App\Enums\Setting\PrimaryColor;
  4. use App\Events\CompanyConfigured;
  5. use App\Services\CompanySettingsService;
  6. use App\Utilities\Currency\ConfigureCurrencies;
  7. use Filament\Facades\Filament;
  8. use Filament\Forms\Components\DatePicker;
  9. use Filament\Forms\Components\Section;
  10. use Filament\Forms\Components\Tabs\Tab;
  11. use Filament\Resources\Components\Tab as ResourcesTab;
  12. use Filament\Support\Facades\FilamentColor;
  13. class ConfigureCompanyDefault
  14. {
  15. /**
  16. * Handle the event.
  17. */
  18. public function handle(CompanyConfigured $event): void
  19. {
  20. $company = $event->company;
  21. $companyId = $company->id;
  22. session(['current_company_id' => $companyId]);
  23. $settings = CompanySettingsService::getSettings($companyId);
  24. app()->setLocale($settings['default_language']);
  25. locale_set_default($settings['default_language']);
  26. config(['app.timezone' => $settings['default_timezone']]);
  27. date_default_timezone_set($settings['default_timezone']);
  28. FilamentColor::register([
  29. 'primary' => PrimaryColor::from($settings['default_primary_color'])->getColor(),
  30. ]);
  31. Filament::getPanel('company')
  32. ->font($settings['default_font'])
  33. ->brandName($company->name);
  34. DatePicker::configureUsing(static function (DatePicker $component) use ($settings) {
  35. $component
  36. ->displayFormat($settings['default_date_format'])
  37. ->firstDayOfWeek($settings['default_week_start']);
  38. });
  39. Tab::configureUsing(static function (Tab $tab) {
  40. $label = $tab->getLabel();
  41. if ($label) {
  42. $translatedLabel = translate($label);
  43. $tab->label(ucwords($translatedLabel));
  44. }
  45. }, isImportant: true);
  46. Section::configureUsing(static function (Section $section): void {
  47. $heading = $section->getHeading();
  48. if ($heading) {
  49. $translatedHeading = translate($heading);
  50. $section->heading(ucfirst($translatedHeading));
  51. }
  52. }, isImportant: true);
  53. ResourcesTab::configureUsing(static function (ResourcesTab $tab): void {
  54. $tab->localizeLabel();
  55. }, isImportant: true);
  56. ConfigureCurrencies::syncCurrencies();
  57. }
  58. }