kopia lustrzana https://github.com/pixelfed/pixelfed
				
				
				
			Store user preferred language in database
							rodzic
							
								
									c87d8c160b
								
							
						
					
					
						commit
						18bc9c3024
					
				| 
						 | 
				
			
			@ -38,12 +38,14 @@ trait HomeSettings
 | 
			
		|||
        'name'    => 'required|string|max:'.config('pixelfed.max_name_length'),
 | 
			
		||||
        'bio'     => 'nullable|string|max:'.config('pixelfed.max_bio_length'),
 | 
			
		||||
        'website' => 'nullable|url',
 | 
			
		||||
        'language' => 'nullable|string|min:2|max:5'
 | 
			
		||||
      ]);
 | 
			
		||||
 | 
			
		||||
        $changes = false;
 | 
			
		||||
        $name = strip_tags(Purify::clean($request->input('name')));
 | 
			
		||||
        $bio = $request->filled('bio') ? strip_tags(Purify::clean($request->input('bio'))) : null;
 | 
			
		||||
        $website = $request->input('website');
 | 
			
		||||
        $language = $request->input('language');
 | 
			
		||||
        $user = Auth::user();
 | 
			
		||||
        $profile = $user->profile;
 | 
			
		||||
        $layout = $request->input('profile_layout');
 | 
			
		||||
| 
						 | 
				
			
			@ -51,10 +53,10 @@ trait HomeSettings
 | 
			
		|||
            $layout = !in_array($layout, ['metro', 'moment']) ? 'metro' : $layout;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $validate = config('pixelfed.enforce_email_verification');
 | 
			
		||||
        $enforceEmailVerification = config('pixelfed.enforce_email_verification');
 | 
			
		||||
 | 
			
		||||
        // Only allow email to be updated if not yet verified
 | 
			
		||||
        if (!$validate || !$changes && $user->email_verified_at) {
 | 
			
		||||
        if (!$enforceEmailVerification || !$changes && $user->email_verified_at) {
 | 
			
		||||
            if ($profile->name != $name) {
 | 
			
		||||
                $changes = true;
 | 
			
		||||
                $user->name = $name;
 | 
			
		||||
| 
						 | 
				
			
			@ -71,9 +73,12 @@ trait HomeSettings
 | 
			
		|||
                $profile->bio = $bio;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($profile->profile_layout != $layout) {
 | 
			
		||||
            if($user->language != $language &&
 | 
			
		||||
                in_array($language, \App\Util\Localization\Localization::languages())
 | 
			
		||||
            ) {
 | 
			
		||||
                $changes = true;
 | 
			
		||||
                $profile->profile_layout = $layout;
 | 
			
		||||
                $user->language = $language;
 | 
			
		||||
                session()->put('locale', $language);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,11 @@ class SiteController extends Controller
 | 
			
		|||
        // todo: add other locales after pushing new l10n strings
 | 
			
		||||
        $locales = Localization::languages();
 | 
			
		||||
        if(in_array($locale, $locales)) {
 | 
			
		||||
            if($request->user()) {
 | 
			
		||||
                $user = $request->user();
 | 
			
		||||
                $user->language = $locale;
 | 
			
		||||
                $user->save();
 | 
			
		||||
            }
 | 
			
		||||
          session()->put('locale', $locale);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,6 +36,7 @@ class AuthLogin
 | 
			
		|||
        $this->userState($user);
 | 
			
		||||
        $this->userDevice($user);
 | 
			
		||||
        $this->userProfileId($user);
 | 
			
		||||
        $this->userLanguage($user);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function userProfile($user)
 | 
			
		||||
| 
						 | 
				
			
			@ -132,4 +133,9 @@ class AuthLogin
 | 
			
		|||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function userLanguage($user)
 | 
			
		||||
    {
 | 
			
		||||
        session()->put('locale', $user->language ?? 'en');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,25 +37,25 @@
 | 
			
		|||
  <form method="post">
 | 
			
		||||
    @csrf
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
      <label for="name" class="col-sm-3 col-form-label font-weight-bold text-right">Name</label>
 | 
			
		||||
      <label for="name" class="col-sm-3 col-form-label font-weight-bold">Name</label>
 | 
			
		||||
      <div class="col-sm-9">
 | 
			
		||||
        <input type="text" class="form-control" id="name" name="name" placeholder="Your Name" value="{{Auth::user()->profile->name}}">
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
      <label for="username" class="col-sm-3 col-form-label font-weight-bold text-right">Username</label>
 | 
			
		||||
      <label for="username" class="col-sm-3 col-form-label font-weight-bold">Username</label>
 | 
			
		||||
      <div class="col-sm-9">
 | 
			
		||||
        <input type="text" class="form-control" id="username" name="username" placeholder="Username" value="{{Auth::user()->profile->username}}" readonly>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
      <label for="website" class="col-sm-3 col-form-label font-weight-bold text-right">Website</label>
 | 
			
		||||
      <label for="website" class="col-sm-3 col-form-label font-weight-bold">Website</label>
 | 
			
		||||
      <div class="col-sm-9">
 | 
			
		||||
        <input type="text" class="form-control" id="website" name="website" placeholder="Website" value="{{Auth::user()->profile->website}}">
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
      <label for="bio" class="col-sm-3 col-form-label font-weight-bold text-right">Bio</label>
 | 
			
		||||
      <label for="bio" class="col-sm-3 col-form-label font-weight-bold">Bio</label>
 | 
			
		||||
      <div class="col-sm-9">
 | 
			
		||||
        <textarea class="form-control" id="bio" name="bio" placeholder="Add a bio here" rows="2" data-max-length="{{config('pixelfed.max_bio_length')}}">{{Auth::user()->profile->bio}}</textarea>
 | 
			
		||||
        <p class="form-text">
 | 
			
		||||
| 
						 | 
				
			
			@ -63,11 +63,21 @@
 | 
			
		|||
        </p>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
      <label for="bio" class="col-sm-3 col-form-label font-weight-bold">Language</label>
 | 
			
		||||
      <div class="col-sm-9">
 | 
			
		||||
        <select class="form-control" name="language">
 | 
			
		||||
        @foreach(App\Util\Localization\Localization::languages() as $lang)
 | 
			
		||||
          <option value="{{$lang}}" {{Auth::user()->language == $lang ? 'selected':''}}>{{locale_get_display_language($lang, 'en')}} - {{locale_get_display_language($lang, $lang)}}</option>
 | 
			
		||||
        @endforeach
 | 
			
		||||
        </select>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="pt-3">
 | 
			
		||||
      <p class="font-weight-bold text-muted text-center">Storage Usage</p>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
      <label for="email" class="col-sm-3 col-form-label font-weight-bold text-right">Storage Used</label>
 | 
			
		||||
      <label class="col-sm-3 col-form-label font-weight-bold">Storage Used</label>
 | 
			
		||||
      <div class="col-sm-9">
 | 
			
		||||
        <div class="progress mt-2">
 | 
			
		||||
          <div class="progress-bar" role="progressbar" style="width: {{$storage['percentUsed']}}%"  aria-valuenow="{{$storage['percentUsed']}}" aria-valuemin="0" aria-valuemax="100"></div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue