refactor: pint pass
This commit is contained in:
parent
792797fb88
commit
0ac2c42105
519 changed files with 5475 additions and 9308 deletions
|
|
@ -6,6 +6,8 @@ use App\Models\Customer;
|
|||
use Illuminate\Auth\EloquentUserProvider;
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Illuminate\Contracts\Auth\UserProvider;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -28,11 +30,8 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
|
||||
/**
|
||||
* Retrieve a user by the given credentials.
|
||||
*
|
||||
* @param array $credentials
|
||||
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||
*/
|
||||
public function retrieveByCredentials(array $credentials): \Illuminate\Contracts\Auth\Authenticatable|null
|
||||
public function retrieveByCredentials(array $credentials): ?Authenticatable
|
||||
{
|
||||
// * Let laravel find a model
|
||||
$model = parent::retrieveByCredentials($credentials) ?? self::retrieveTrashed($credentials);
|
||||
|
|
@ -42,10 +41,10 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
$crm = app('crmAPI');
|
||||
|
||||
// Si pas de compte local.
|
||||
if (!$model) {
|
||||
if (! $model) {
|
||||
$crmCustomer = $crm->getCustomer($credentials['email']);
|
||||
|
||||
if (!$crmCustomer) {
|
||||
if (! $crmCustomer) {
|
||||
// * Customer is not found on CRM.
|
||||
return null;
|
||||
}
|
||||
|
|
@ -62,19 +61,18 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
Log::error('Unhandled response ' . $e->getApiError()->label());
|
||||
} catch (CrmException | \Exception $e) {
|
||||
report($e);
|
||||
|
||||
// Une erreur critique est survenue avec la CRM.
|
||||
return null;
|
||||
} //end try
|
||||
} // end try
|
||||
Log::error(__CLASS__ . '::retrieveByCredentials reached end of possibilities.');
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate a user against the given credentials.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Authenticatable $model
|
||||
* @param array $credentials
|
||||
* @return boolean
|
||||
* @throws \RuntimeException If model provided is not a Customer or connection to server fails.
|
||||
* @throws \LDC\LDCCRM\Exceptions\CrmException On CRM call error.
|
||||
* @throws \Exception On CRM call error.
|
||||
|
|
@ -92,8 +90,7 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
|
||||
// * If has trait soft delete and customer trashed, then restore customer.
|
||||
if (
|
||||
\in_array(\Illuminate\Database\Eloquent\SoftDeletes::class, \class_uses_recursive($model)) and
|
||||
// @phpstan-ignore-next-line
|
||||
\in_array(SoftDeletes::class, \class_uses_recursive($model)) and // @phpstan-ignore-next-line
|
||||
$model->trashed()
|
||||
) {
|
||||
// @phpstan-ignore-next-line
|
||||
|
|
@ -104,8 +101,9 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
return $crm->login($credentials['email'], $credentials['password']);
|
||||
} catch (ApiErrorException $e) {
|
||||
// @phpstan-ignore-next-line
|
||||
if (!$model->hashcode or !CrmCustomer::find($model->hashcode)) {
|
||||
if (! $model->hashcode or ! CrmCustomer::find($model->hashcode)) {
|
||||
$model->forceDelete();
|
||||
|
||||
return false;
|
||||
}
|
||||
if ($e->getApiError()->equals(ApiError::authFailed)) {
|
||||
|
|
@ -114,6 +112,7 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
// ! Assert Authenticable model must be valided (MustValidate trait).
|
||||
if ($e->getApiError()->equals(ApiError::customerNotActivated)) {
|
||||
Session::flash('warning', \trans('Vous devez activer votre compte'));
|
||||
|
||||
return true;
|
||||
}
|
||||
} catch (CrmException | \Exception $e) {
|
||||
|
|
@ -121,8 +120,9 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
if (config('app.debug')) {
|
||||
throw $e;
|
||||
}
|
||||
|
||||
return false;
|
||||
} //end try
|
||||
} // end try
|
||||
|
||||
Log::error(__CLASS__ . '::validateCredentials reached end of possibilities.');
|
||||
|
||||
|
|
@ -132,15 +132,13 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
/**
|
||||
* Create a local customer
|
||||
*
|
||||
* @param \LDC\LDCCRM\Models\Customer $crmCustomer
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
* @throws \Throwable If saving to DB failed.
|
||||
*/
|
||||
private function createLocalCustomer(\LDC\LDCCRM\Models\Customer $crmCustomer): \Illuminate\Database\Eloquent\Model
|
||||
private function createLocalCustomer(CrmCustomer $crmCustomer): Model
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Model $model */
|
||||
$model = $this->usedModel::firstOrNew([
|
||||
'email' => $crmCustomer->email
|
||||
'email' => $crmCustomer->email,
|
||||
]);
|
||||
// @phpstan-ignore-next-line
|
||||
$model->hashcode = $crmCustomer->hashcode;
|
||||
|
|
@ -154,11 +152,9 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
/**
|
||||
* Retrieve a trashed customer by the given credentials.
|
||||
*
|
||||
* @param array $credentials
|
||||
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||
* @throws \ErrorException If cannot connect to LDAP.
|
||||
*/
|
||||
private function retrieveTrashed(array $credentials): ?\Illuminate\Contracts\Auth\Authenticatable
|
||||
private function retrieveTrashed(array $credentials): ?Authenticatable
|
||||
{
|
||||
// * Make changes
|
||||
if (empty($credentials)) {
|
||||
|
|
@ -171,7 +167,7 @@ class CrmUserProvider extends EloquentUserProvider implements UserProvider
|
|||
$query = $this->createModel()->newQuery();
|
||||
|
||||
foreach ($credentials as $key => $value) {
|
||||
if (!Str::contains($key, 'password')) {
|
||||
if (! Str::contains($key, 'password')) {
|
||||
$query->where($key, $value);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
namespace App\Auth;
|
||||
|
||||
use App\Models\Customer;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Auth\EloquentUserProvider;
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Illuminate\Contracts\Auth\UserProvider;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
/**
|
||||
* Overload EloquentUserProvider to handle
|
||||
|
|
@ -17,11 +17,9 @@ class ReactivateCustomerProvider extends EloquentUserProvider implements UserPro
|
|||
/**
|
||||
* Retrieve a customer by the given credentials.
|
||||
*
|
||||
* @param array $credentials
|
||||
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||
* @throws \ErrorException If cannot connect to LDAP.
|
||||
*/
|
||||
public function retrieveByCredentials(array $credentials): ?\Illuminate\Contracts\Auth\Authenticatable
|
||||
public function retrieveByCredentials(array $credentials): ?Authenticatable
|
||||
{
|
||||
// * Make changes
|
||||
if (empty($credentials)) {
|
||||
|
|
@ -34,7 +32,7 @@ class ReactivateCustomerProvider extends EloquentUserProvider implements UserPro
|
|||
$query = $this->createModel()->newQuery();
|
||||
|
||||
foreach ($credentials as $key => $value) {
|
||||
if (!Str::contains($key, 'password')) {
|
||||
if (! Str::contains($key, 'password')) {
|
||||
$query->where($key, $value);
|
||||
}
|
||||
}
|
||||
|
|
@ -46,9 +44,6 @@ class ReactivateCustomerProvider extends EloquentUserProvider implements UserPro
|
|||
/**
|
||||
* Validate a customer against the given credentials.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Authenticatable $customer
|
||||
* @param array $credentials
|
||||
* @return boolean
|
||||
* @throws \ErrorException If model provided is not a Customer or connection to server fails.
|
||||
*/
|
||||
public function validateCredentials(Authenticatable $customer, array $credentials): bool
|
||||
|
|
|
|||
|
|
@ -8,32 +8,20 @@ use Illuminate\Database\Eloquent\Model;
|
|||
/**
|
||||
* Custom cast Html Color
|
||||
*/
|
||||
//phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceAfterLastUsed
|
||||
//phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceBeforeLastUsed
|
||||
// phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceAfterLastUsed
|
||||
// phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceBeforeLastUsed
|
||||
class HtmlColor implements CastsAttributes
|
||||
{
|
||||
/**
|
||||
* Cast the given value.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @param array $attributes
|
||||
* @return string
|
||||
*/
|
||||
public function get(Model $model, string $key, mixed $value, array $attributes): string
|
||||
{
|
||||
return "#" . $this->zeropad(dechex($value), 6);
|
||||
return '#' . $this->zeropad(dechex($value), 6);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare the given value for storage.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @param array $attributes
|
||||
* @return integer
|
||||
*/
|
||||
public function set(Model $model, string $key, mixed $value, array $attributes): int
|
||||
{
|
||||
|
|
@ -42,13 +30,9 @@ class HtmlColor implements CastsAttributes
|
|||
|
||||
/**
|
||||
* Pad with zeros a numeric string
|
||||
*
|
||||
* @param string $num
|
||||
* @param integer $lim
|
||||
* @return string
|
||||
*/
|
||||
protected function zeropad(string $num, int $lim): string
|
||||
{
|
||||
return (strlen($num) >= $lim) ? $num : $this->zeropad("0" . $num, $lim);
|
||||
return (strlen($num) >= $lim) ? $num : $this->zeropad('0' . $num, $lim);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,18 +11,15 @@ class NiceDate implements CastsAttributes
|
|||
/**
|
||||
* Cast the given value.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Model|null $model
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @param array $attributes
|
||||
* @return string
|
||||
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceAfterLastUsed
|
||||
*
|
||||
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceBeforeLastUsed
|
||||
*/
|
||||
public function get(Model|null $model, string $key, mixed $value, array $attributes): string
|
||||
public function get(?Model $model, string $key, mixed $value, array $attributes): string
|
||||
{
|
||||
// phpcs:enable
|
||||
$value = Carbon::parse($value);
|
||||
|
||||
return $value->isToday() ?
|
||||
trans('Aujourd\'hui à :time', ['time' => $value->format('H:i')]) : $value->format('Y/m/d à H:i');
|
||||
}
|
||||
|
|
@ -30,12 +27,8 @@ class NiceDate implements CastsAttributes
|
|||
/**
|
||||
* Prepare the given value for storage.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @param array $attributes
|
||||
* @return string
|
||||
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceAfterLastUsed
|
||||
*
|
||||
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInImplementedInterfaceBeforeLastUsed
|
||||
*/
|
||||
public function set(Model $model, string $key, mixed $value, array $attributes): string
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ class FetchDigitalRecruiterOffersCommand extends Command
|
|||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ class FetchMesBrCommand extends Command
|
|||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ use App\Models\User;
|
|||
use Carbon\Carbon;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class UserCreate extends Command
|
||||
{
|
||||
|
|
@ -56,8 +56,6 @@ class UserCreate extends Command
|
|||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
|
|
@ -74,11 +72,11 @@ class UserCreate extends Command
|
|||
$this->addRole();
|
||||
|
||||
$user = new User([
|
||||
'first_name' => $this->first_name,
|
||||
'last_name' => $this->last_name,
|
||||
'email' => $this->email,
|
||||
'role' => $this->role,
|
||||
'published' => true,
|
||||
'first_name' => $this->first_name,
|
||||
'last_name' => $this->last_name,
|
||||
'email' => $this->email,
|
||||
'role' => $this->role,
|
||||
'published' => true,
|
||||
'published_at' => Carbon::now(),
|
||||
]);
|
||||
$user->saveOrFail();
|
||||
|
|
@ -88,8 +86,6 @@ class UserCreate extends Command
|
|||
|
||||
/**
|
||||
* Add a first name to the user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function addFirstName(): void
|
||||
{
|
||||
|
|
@ -97,7 +93,7 @@ class UserCreate extends Command
|
|||
try {
|
||||
$tmp = $this->ask('Type the wanted user first name', 'Admin');
|
||||
$validator = Validator::make(['first_name' => $tmp], [
|
||||
'first_name' => 'required|min:3|max:255'
|
||||
'first_name' => 'required|min:3|max:255',
|
||||
]);
|
||||
$validator->validate();
|
||||
$this->first_name = $tmp;
|
||||
|
|
@ -106,15 +102,14 @@ class UserCreate extends Command
|
|||
'Please provide a valid first name %s',
|
||||
\implode(',', collect($e->errors())->flatten()->all())
|
||||
));
|
||||
|
||||
continue;
|
||||
} //end try
|
||||
}; //end while
|
||||
} // end try
|
||||
} // end while
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a last name to the user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function addLastName(): void
|
||||
{
|
||||
|
|
@ -122,7 +117,7 @@ class UserCreate extends Command
|
|||
try {
|
||||
$tmp = $this->ask('Type the wanted user last name', 'Saïtama');
|
||||
$validator = Validator::make(['last_name' => $tmp], [
|
||||
'last_name' => 'required|min:3|max:255'
|
||||
'last_name' => 'required|min:3|max:255',
|
||||
]);
|
||||
$validator->validate();
|
||||
$this->last_name = $tmp;
|
||||
|
|
@ -131,15 +126,14 @@ class UserCreate extends Command
|
|||
'Please provide a valid last_name %s',
|
||||
\implode(',', collect($e->errors())->flatten()->all())
|
||||
));
|
||||
|
||||
continue;
|
||||
} //end try
|
||||
}; //end while
|
||||
} // end try
|
||||
} // end while
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an email to the user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function addEmail(): void
|
||||
{
|
||||
|
|
@ -147,7 +141,7 @@ class UserCreate extends Command
|
|||
try {
|
||||
$tmp = $this->ask('Type the wanted user email', 'equipe.web@ldc.fr');
|
||||
$validator = Validator::make(['email' => $tmp], [
|
||||
'email' => 'required|unique:users,email|email:rfc,dns'
|
||||
'email' => 'required|unique:users,email|email:rfc,dns',
|
||||
]);
|
||||
$validator->validate();
|
||||
$this->email = $tmp;
|
||||
|
|
@ -156,15 +150,14 @@ class UserCreate extends Command
|
|||
'Please provide a valid email %s',
|
||||
\implode(',', collect($e->errors())->flatten()->all())
|
||||
));
|
||||
|
||||
continue;
|
||||
} //end try
|
||||
}; //end while
|
||||
} // end try
|
||||
} // end while
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a role to the user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function addRole(): void
|
||||
{
|
||||
|
|
@ -175,7 +168,7 @@ class UserCreate extends Command
|
|||
[
|
||||
Str::ucFirst(RoleEnum::conceptor->label()),
|
||||
Str::ucFirst(RoleEnum::admin->label()),
|
||||
Str::ucFirst(RoleEnum::visitor->label())
|
||||
Str::ucFirst(RoleEnum::visitor->label()),
|
||||
],
|
||||
Str::ucFirst(RoleEnum::visitor->label()),
|
||||
);
|
||||
|
|
@ -189,7 +182,7 @@ class UserCreate extends Command
|
|||
$tmp = RoleEnum::visitor;
|
||||
}
|
||||
$validator = Validator::make(['role' => $tmp], [
|
||||
'role' => 'required'
|
||||
'role' => 'required',
|
||||
]);
|
||||
$validator->validate();
|
||||
$this->role = $tmp;
|
||||
|
|
@ -198,8 +191,9 @@ class UserCreate extends Command
|
|||
'Please choose from the selection %s',
|
||||
\implode(',', collect($e->errors())->flatten()->all())
|
||||
));
|
||||
|
||||
continue;
|
||||
} //end try
|
||||
}; //end while
|
||||
} // end try
|
||||
} // end while
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,6 @@ class Kernel extends ConsoleKernel
|
|||
{
|
||||
/**
|
||||
* Define the application's command schedule.
|
||||
*
|
||||
* @param \Illuminate\Console\Scheduling\Schedule $schedule
|
||||
* @return void
|
||||
*/
|
||||
protected function schedule(Schedule $schedule): void
|
||||
{
|
||||
|
|
@ -25,8 +22,6 @@ class Kernel extends ConsoleKernel
|
|||
|
||||
/**
|
||||
* Register the commands for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function commands(): void
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,8 +37,6 @@ enum ActivityLogsEventEnum: int
|
|||
|
||||
/**
|
||||
* Get Class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function bootstrapClass(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ enum BlockPositionEnum: string
|
|||
case Centre = 'centre';
|
||||
case Droite = 'droite';
|
||||
|
||||
const LABELS = [
|
||||
public const LABELS = [
|
||||
'Gauche' => 'Gauche',
|
||||
'Centre' => 'Centre',
|
||||
'Droite' => 'Droite',
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ namespace App\Enums;
|
|||
|
||||
use App\Enums\Block\BlockContentTypeEnum;
|
||||
use App\Enums\Block\BlockPositionEnum;
|
||||
use App\Models\News;
|
||||
use App\Traits\Enums\BaseEnum;
|
||||
|
||||
enum BlockTypeEnum: int
|
||||
|
|
@ -14,7 +15,6 @@ enum BlockTypeEnum: int
|
|||
case picto = 2;
|
||||
case bienfait = 3;
|
||||
|
||||
|
||||
/**
|
||||
* Optionnal labels definition.
|
||||
*
|
||||
|
|
@ -67,18 +67,18 @@ enum BlockTypeEnum: int
|
|||
'article_id' => [
|
||||
'label' => 'Article associé',
|
||||
'inputType' => InputType::searchBelongsTo->value,
|
||||
'source' => \App\Models\News::class,
|
||||
'source' => News::class,
|
||||
'required' => true,
|
||||
'value' => null,
|
||||
'validate' => ['integer', 'exists:news,id'],
|
||||
'showWhen' => ['block_type' => [BlockContentTypeEnum::Actu->value, BlockContentTypeEnum::Both->value]],
|
||||
],
|
||||
"visibility" => [
|
||||
"label" => "Afficher le bloc",
|
||||
"inputType" => InputType::boolean->value,
|
||||
"value" => false,
|
||||
"validate" => "required|boolean",
|
||||
'required' => true
|
||||
'visibility' => [
|
||||
'label' => 'Afficher le bloc',
|
||||
'inputType' => InputType::boolean->value,
|
||||
'value' => false,
|
||||
'validate' => 'required|boolean',
|
||||
'required' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
|
@ -100,27 +100,26 @@ enum BlockTypeEnum: int
|
|||
'required' => true,
|
||||
],
|
||||
'description' => [
|
||||
'label' => 'Section 2 : Description',
|
||||
'label' => 'Section 2 : Description',
|
||||
'inputType' => InputType::text->value,
|
||||
'value' => '',
|
||||
'validate' => 'required|string|min:15',
|
||||
'required' => true
|
||||
'value' => '',
|
||||
'validate' => 'required|string|min:15',
|
||||
'required' => true,
|
||||
],
|
||||
'picture' => [
|
||||
'label' => 'Picto ',
|
||||
'inputType' => InputType::image->value,
|
||||
'label' => 'Picto ',
|
||||
'inputType' => InputType::image->value,
|
||||
'dimensions' => [
|
||||
'width' => 70,
|
||||
'height' => 60
|
||||
'width' => 70,
|
||||
'height' => 60,
|
||||
],
|
||||
'alt' => '',
|
||||
'title' => '',
|
||||
'value' => '',
|
||||
'alt' => '',
|
||||
'title' => '',
|
||||
'value' => '',
|
||||
'validate' => 'required',
|
||||
'required' => true
|
||||
'required' => true,
|
||||
],
|
||||
|
||||
|
||||
],
|
||||
]
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,8 +29,6 @@ enum ContactFormType: int
|
|||
|
||||
/**
|
||||
* Get the description.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function description(): string
|
||||
{
|
||||
|
|
@ -39,27 +37,25 @@ enum ContactFormType: int
|
|||
self::complain => trans('enums.contact-form-type.complain.description'),
|
||||
self::club => trans('enums.contact-form-type.club.description'),
|
||||
self::games => trans('enums.contact-form-type.games.description'),
|
||||
default => '',
|
||||
default => '',
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the picto src/alt.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function picto(): array
|
||||
{
|
||||
return match ($this) {
|
||||
self::complain => [
|
||||
'src' => 'resources/assets/images/contact/exclamation.svg',
|
||||
'alt' => 'enums.contact-form-type.misc.picto-exclamation-alt'
|
||||
'alt' => 'enums.contact-form-type.misc.picto-exclamation-alt',
|
||||
],
|
||||
self::club,
|
||||
self::games,
|
||||
self::none => [
|
||||
'src' => 'resources/assets/images/contact/question-mark.svg',
|
||||
'alt' => 'enums.contact-form-type.misc.picto-question-mark-alt'
|
||||
'alt' => 'enums.contact-form-type.misc.picto-question-mark-alt',
|
||||
],
|
||||
default => [
|
||||
'src' => '',
|
||||
|
|
@ -70,8 +66,6 @@ enum ContactFormType: int
|
|||
|
||||
/**
|
||||
* Get all contact types except 'none'.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getContactTypes(): array
|
||||
{
|
||||
|
|
@ -92,8 +86,6 @@ enum ContactFormType: int
|
|||
|
||||
/**
|
||||
* Get all 'locales' contact types.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getLocalesContactType(): array
|
||||
{
|
||||
|
|
@ -104,8 +96,6 @@ enum ContactFormType: int
|
|||
|
||||
/**
|
||||
* Check if the current subject has a file input.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function hasFileInput(): bool
|
||||
{
|
||||
|
|
@ -121,8 +111,6 @@ enum ContactFormType: int
|
|||
|
||||
/**
|
||||
* Get the CRM subject ID for the current enum case.
|
||||
*
|
||||
* @return ?string
|
||||
*/
|
||||
public function crmId(): ?string
|
||||
{
|
||||
|
|
@ -138,9 +126,10 @@ enum ContactFormType: int
|
|||
{
|
||||
$subjects = self::getCrmSubjects();
|
||||
$subjectIds = collect(self::cases())
|
||||
->mapWithKeys(fn($case) => [$case->name => $subjects[$case->name] ?? null])
|
||||
->mapWithKeys(fn ($case) => [$case->name => $subjects[$case->name] ?? null])
|
||||
->all();
|
||||
return array_filter($subjectIds, fn($v) => !is_null($v));
|
||||
|
||||
return array_filter($subjectIds, fn ($v) => ! is_null($v));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ enum Civility: int
|
|||
|
||||
case m = 1;
|
||||
case mme = 2;
|
||||
|
||||
/**
|
||||
* Optionnal labels definition.
|
||||
*
|
||||
|
|
@ -23,21 +24,17 @@ enum Civility: int
|
|||
|
||||
/**
|
||||
* Get picture
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function picture(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::m => Vite::asset("resources/assets/images/club/game-points/chicken.png"),
|
||||
self::mme => Vite::asset("resources/assets/images/club/game-points/hen.png"),
|
||||
self::m => Vite::asset('resources/assets/images/club/game-points/chicken.png'),
|
||||
self::mme => Vite::asset('resources/assets/images/club/game-points/hen.png'),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Get autocomplete
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function autoComplete(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ enum LivingStatus: int
|
|||
case parent = 3;
|
||||
case parentAlone = 4;
|
||||
case elder = 5;
|
||||
|
||||
/**
|
||||
* Optionnal labels definition.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -202,6 +202,6 @@ enum DepartaimantCurrent: string implements IDepartaimant
|
|||
self::martinique->name => 'Martinique',
|
||||
self::guyane->name => 'Guyane',
|
||||
self::lareunion->name => 'La réunion',
|
||||
self::mayotte->name => 'Mayotte'
|
||||
self::mayotte->name => 'Mayotte',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,6 +198,6 @@ enum DepartaimantVintage: string implements IDepartaimant
|
|||
self::essonne->name => 'Essonne',
|
||||
self::guadeloupeMartinique->name => 'Guadeloupe et Martinique',
|
||||
self::guyane->name => 'Guyane',
|
||||
self::lareunion->name => 'La réunion'
|
||||
self::lareunion->name => 'La réunion',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ interface IDepartaimant
|
|||
{
|
||||
/**
|
||||
* Get enum value.
|
||||
*
|
||||
* @return string|integer
|
||||
*/
|
||||
public function value(): string|int;
|
||||
public function value(): string | int;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,6 +216,6 @@ enum Department: string
|
|||
self::martinique->name => 'Martinique',
|
||||
self::guyane->name => 'Guyane',
|
||||
self::lareunion->name => 'La réunion',
|
||||
self::mayotte->name => 'Mayotte'
|
||||
self::mayotte->name => 'Mayotte',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,8 +41,6 @@ enum GamePointLevel: int
|
|||
|
||||
/**
|
||||
* Get Level
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function level(): int
|
||||
{
|
||||
|
|
@ -51,8 +49,6 @@ enum GamePointLevel: int
|
|||
|
||||
/**
|
||||
* Get picture
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function picture(): string
|
||||
{
|
||||
|
|
@ -62,7 +58,7 @@ enum GamePointLevel: int
|
|||
/**
|
||||
* Get enum Levels
|
||||
*
|
||||
* @return array<integer>
|
||||
* @return array<int>
|
||||
*/
|
||||
public static function toLevels(): array
|
||||
{
|
||||
|
|
@ -71,9 +67,6 @@ enum GamePointLevel: int
|
|||
|
||||
/**
|
||||
* Get Level from point value
|
||||
*
|
||||
* @param integer $points
|
||||
* @return \App\Enums\Games\GamePointLevel
|
||||
*/
|
||||
public static function fromPoints(int $points): self
|
||||
{
|
||||
|
|
@ -83,19 +76,18 @@ enum GamePointLevel: int
|
|||
return $level;
|
||||
}
|
||||
}
|
||||
|
||||
// * This should not happen while egg level is 0
|
||||
return self::egg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Next Level
|
||||
*
|
||||
* @param integer $points
|
||||
* @return \App\Enums\Games\GamePointLevel|null
|
||||
*/
|
||||
public static function fromPointsNextLevel(int $points): self|null
|
||||
public static function fromPointsNextLevel(int $points): ?self
|
||||
{
|
||||
$currentLevel = self::fromPoints($points);
|
||||
|
||||
return collect(self::all())
|
||||
->filter(fn ($level) => $level->level() > $currentLevel->level())
|
||||
->first();
|
||||
|
|
@ -103,9 +95,6 @@ enum GamePointLevel: int
|
|||
|
||||
/**
|
||||
* Percent from points
|
||||
*
|
||||
* @param integer $points
|
||||
* @return float
|
||||
*/
|
||||
public static function percentFromPoints(int $points): float
|
||||
{
|
||||
|
|
@ -113,15 +102,14 @@ enum GamePointLevel: int
|
|||
$level = self::fromPoints($points);
|
||||
$nextLevel = self::fromPointsNextLevel($points);
|
||||
|
||||
if (!$nextLevel) {
|
||||
if (! $nextLevel) {
|
||||
return 100;
|
||||
}
|
||||
|
||||
// * Bars between 2 levels
|
||||
$ratio = 4;
|
||||
$percentBetween2Levels = 100 / ($levels->count() - 1);
|
||||
$adjustment = $percentBetween2Levels *
|
||||
($nextLevel->level() - $points) / ($nextLevel->level() - $level->level());
|
||||
$percentBetween2Levels = 100 / ($levels->count() - 1);
|
||||
$adjustment = $percentBetween2Levels * ($nextLevel->level() - $points) / ($nextLevel->level() - $level->level());
|
||||
|
||||
return round((($level->value() * 100) / $levels->last()) + $percentBetween2Levels - $adjustment);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,6 @@ enum HistoricalMilestonePosition: int
|
|||
*/
|
||||
private const LABELS = [
|
||||
self::topLeft->name => 'Haut gauche',
|
||||
self::topRight->name => "Haut droit",
|
||||
self::topRight->name => 'Haut droit',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@ enum MailToTest: string
|
|||
{
|
||||
use BaseEnum;
|
||||
|
||||
case ValidateAccount = 'validate_account';
|
||||
case ValidateAccount = 'validate_account';
|
||||
case ForgottenPassword = 'forgotten_password';
|
||||
case UpdatePassword = 'update_password';
|
||||
case OrderRecap = 'order_recap';
|
||||
case DestroyCustomer = 'destroy_customer';
|
||||
case UpdatePassword = 'update_password';
|
||||
case OrderRecap = 'order_recap';
|
||||
case DestroyCustomer = 'destroy_customer';
|
||||
case DestroyedCustomer = 'destroyed_customer';
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ enum NewsClubTypeEnum: int
|
|||
|
||||
/**
|
||||
* Get the icon.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function icon(): string
|
||||
{
|
||||
|
|
@ -36,8 +34,6 @@ enum NewsClubTypeEnum: int
|
|||
|
||||
/**
|
||||
* Get the color.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function color(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -52,12 +52,10 @@ enum MenuNodeType: int
|
|||
|
||||
/**
|
||||
* Get Class
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function routeName(): ?string
|
||||
{
|
||||
return !empty(self::ROUTENAMES[$this->name]) ?
|
||||
return ! empty(self::ROUTENAMES[$this->name]) ?
|
||||
self::ROUTENAMES[$this->name] : null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,8 +31,6 @@ enum SellItemsType: int
|
|||
|
||||
/**
|
||||
* Get color.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function color(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,37 +8,37 @@ enum StaticPageType: int
|
|||
{
|
||||
use BaseEnum;
|
||||
|
||||
case contact = 1;
|
||||
case legals = 2;
|
||||
case confidentiality = 3;
|
||||
case recruitment = 4;
|
||||
case story = 5;
|
||||
case saga = 6;
|
||||
case recipes = 7;
|
||||
case recipe = 8;
|
||||
case products = 9;
|
||||
case product = 10;
|
||||
case home = 11;
|
||||
case selling = 12;
|
||||
case accessibility = 13;
|
||||
case news = 14;
|
||||
case social = 15;
|
||||
case breedingPoultry = 16;
|
||||
case breedingJob = 17;
|
||||
case breedingFood = 18;
|
||||
case breedingHealth = 19;
|
||||
case search = 20;
|
||||
case sitemap = 21;
|
||||
case rules = 22;
|
||||
case exitOutside = 23;
|
||||
case ouiCBon = 24;
|
||||
case ourFarms = 25;
|
||||
case tdf = 26;
|
||||
case respectTheEarth = 27;
|
||||
case contact = 1;
|
||||
case legals = 2;
|
||||
case confidentiality = 3;
|
||||
case recruitment = 4;
|
||||
case story = 5;
|
||||
case saga = 6;
|
||||
case recipes = 7;
|
||||
case recipe = 8;
|
||||
case products = 9;
|
||||
case product = 10;
|
||||
case home = 11;
|
||||
case selling = 12;
|
||||
case accessibility = 13;
|
||||
case news = 14;
|
||||
case social = 15;
|
||||
case breedingPoultry = 16;
|
||||
case breedingJob = 17;
|
||||
case breedingFood = 18;
|
||||
case breedingHealth = 19;
|
||||
case search = 20;
|
||||
case sitemap = 21;
|
||||
case rules = 22;
|
||||
case exitOutside = 23;
|
||||
case ouiCBon = 24;
|
||||
case ourFarms = 25;
|
||||
case tdf = 26;
|
||||
case respectTheEarth = 27;
|
||||
case forLivingTogether = 28;
|
||||
case poultryBrand = 29;
|
||||
case raiseSustainably = 30;
|
||||
case feedProperly =31;
|
||||
case poultryBrand = 29;
|
||||
case raiseSustainably = 30;
|
||||
case feedProperly = 31;
|
||||
|
||||
/**
|
||||
* Optionnal labels definition.
|
||||
|
|
@ -46,43 +46,41 @@ enum StaticPageType: int
|
|||
* @phpstan-ignore-next-line
|
||||
*/
|
||||
private const LABELS = [
|
||||
self::contact->name => 'Contact',
|
||||
self::legals->name => 'Mentions légales et CGU',
|
||||
self::confidentiality->name => 'Confidentialité',
|
||||
self::recruitment->name => 'Recrutement',
|
||||
self::story->name => 'Qui sommes-nous ?',
|
||||
self::saga->name => 'Saga publicitaire',
|
||||
self::recipes->name => 'Recettes',
|
||||
self::recipe->name => 'Recette',
|
||||
self::products->name => 'Produits',
|
||||
self::product->name => 'Produit',
|
||||
self::home->name => 'Accueil',
|
||||
self::selling->name => 'Conditions générales de vente',
|
||||
self::accessibility->name => 'Accessibilité',
|
||||
self::news->name => 'Actualités',
|
||||
self::social->name => 'Réseaux sociaux',
|
||||
self::breedingPoultry->name => 'L\'élevage des volailles',
|
||||
self::breedingJob->name => 'Le métier d\'éleveur de volailles',
|
||||
self::breedingFood->name => 'L\'alimentation des volailles',
|
||||
self::breedingHealth->name => 'La santé des volailles',
|
||||
self::search->name => 'Recherche',
|
||||
self::sitemap->name => 'Plan du site',
|
||||
self::rules->name => 'Règlement du jeu',
|
||||
self::exitOutside->name => 'Sortir à l\'extérieur',
|
||||
self::ouiCBon->name => 'Oui c\'est bon',
|
||||
self::ourFarms->name => 'Nos élevages',
|
||||
self::tdf->name => 'Tour de France',
|
||||
self::respectTheEarth->name => 'Respecter la terre',
|
||||
self::contact->name => 'Contact',
|
||||
self::legals->name => 'Mentions légales et CGU',
|
||||
self::confidentiality->name => 'Confidentialité',
|
||||
self::recruitment->name => 'Recrutement',
|
||||
self::story->name => 'Qui sommes-nous ?',
|
||||
self::saga->name => 'Saga publicitaire',
|
||||
self::recipes->name => 'Recettes',
|
||||
self::recipe->name => 'Recette',
|
||||
self::products->name => 'Produits',
|
||||
self::product->name => 'Produit',
|
||||
self::home->name => 'Accueil',
|
||||
self::selling->name => 'Conditions générales de vente',
|
||||
self::accessibility->name => 'Accessibilité',
|
||||
self::news->name => 'Actualités',
|
||||
self::social->name => 'Réseaux sociaux',
|
||||
self::breedingPoultry->name => 'L\'élevage des volailles',
|
||||
self::breedingJob->name => 'Le métier d\'éleveur de volailles',
|
||||
self::breedingFood->name => 'L\'alimentation des volailles',
|
||||
self::breedingHealth->name => 'La santé des volailles',
|
||||
self::search->name => 'Recherche',
|
||||
self::sitemap->name => 'Plan du site',
|
||||
self::rules->name => 'Règlement du jeu',
|
||||
self::exitOutside->name => 'Sortir à l\'extérieur',
|
||||
self::ouiCBon->name => 'Oui c\'est bon',
|
||||
self::ourFarms->name => 'Nos élevages',
|
||||
self::tdf->name => 'Tour de France',
|
||||
self::respectTheEarth->name => 'Respecter la terre',
|
||||
self::forLivingTogether->name => 'Favoriser le mieux vivre ensemble',
|
||||
self::poultryBrand->name => 'la marque de volaille 100% française',
|
||||
self::raiseSustainably->name => 'Élever durablement',
|
||||
self::feedProperly->name => 'Bien nourrir tous les français',
|
||||
self::raiseSustainably->name => 'Élever durablement',
|
||||
self::feedProperly->name => 'Bien nourrir tous les français',
|
||||
];
|
||||
|
||||
/**
|
||||
* Get all breeding pages.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getBreedingPages(): array
|
||||
{
|
||||
|
|
@ -91,7 +89,7 @@ enum StaticPageType: int
|
|||
self::breedingJob,
|
||||
self::breedingFood,
|
||||
self::breedingHealth,
|
||||
self::ourFarms
|
||||
self::ourFarms,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -103,11 +101,11 @@ enum StaticPageType: int
|
|||
public static function getBreedingValues(): array
|
||||
{
|
||||
return collect(self::getBreedingPages())
|
||||
->map(fn($page) => $page->value)
|
||||
->map(fn ($page) => $page->value)
|
||||
->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Get all commitment pages type values.
|
||||
*
|
||||
* @return array<string>
|
||||
|
|
@ -126,13 +124,13 @@ enum StaticPageType: int
|
|||
public static function getCommitmmentsPagesValues(): array
|
||||
{
|
||||
return collect(self::getCommitmentsPages())
|
||||
->map(fn(object $page) => $page->value)
|
||||
->toArray();
|
||||
->map(fn (object $page) => $page->value)
|
||||
->toArray();
|
||||
}
|
||||
|
||||
public function routeForCommitments(): string
|
||||
{
|
||||
return match($this) {
|
||||
return match ($this) {
|
||||
self::poultryBrand => 'fo.commitments.brand',
|
||||
self::raiseSustainably => 'fo.commitments.raise',
|
||||
self::forLivingTogether => 'fo.commitments.life',
|
||||
|
|
|
|||
|
|
@ -17,17 +17,12 @@ class NewNotification
|
|||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
* @param \App\Enums\NotificationType $type
|
||||
* @param string $content
|
||||
* @param \App\Interfaces\Notifiable $model
|
||||
* @param \App\Models\Customer|null $customer
|
||||
*/
|
||||
public function __construct(
|
||||
public NotificationType $type,
|
||||
public string $content,
|
||||
public Notifiable $model,
|
||||
public Customer|null $customer = null
|
||||
public ?Customer $customer = null
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
namespace App\Exceptions;
|
||||
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Throwable;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
|
|
@ -50,20 +52,19 @@ class Handler extends ExceptionHandler
|
|||
* Render an exception into an HTTP response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Throwable $e
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function render($request, Throwable $e)
|
||||
{
|
||||
if ($request->expectsJson()) {
|
||||
if ($e instanceof \Illuminate\Http\Exceptions\HttpResponseException) {
|
||||
if ($e instanceof HttpResponseException) {
|
||||
return parent::render($request, $e);
|
||||
}
|
||||
|
||||
if ($e instanceof \Illuminate\Validation\ValidationException && $request->ajax()) {
|
||||
if ($e instanceof ValidationException && $request->ajax()) {
|
||||
return response()->json([
|
||||
'message' => $e->getMessage(),
|
||||
'errors' => $e->errors(),
|
||||
'errors' => $e->errors(),
|
||||
], $e->status);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|||
use App\Models\ActivityLog;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ActivityLogController extends Controller
|
||||
|
|
@ -15,11 +16,8 @@ class ActivityLogController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
$this->authorize('isConceptor');
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $query */
|
||||
|
|
@ -61,11 +59,8 @@ class ActivityLogController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\ActivityLog $activity_log
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(ActivityLog $activity_log): \Illuminate\Contracts\View\View
|
||||
public function show(ActivityLog $activity_log): View
|
||||
{
|
||||
$this->authorize('isConceptor');
|
||||
$targetModelClass = $activity_log->model_class;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ use App\Http\Requests\Bo\Approaches\StoreApproachRequest;
|
|||
use App\Http\Requests\Bo\Approaches\UpdateApproachRequest;
|
||||
use App\Models\Approach;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -26,11 +29,8 @@ class ApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $approachModels */
|
||||
$approachModels = Approach::query()->where('type', ApproachTypeEnum::make($request->approach_type));
|
||||
|
|
@ -60,33 +60,24 @@ class ApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Approach $approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Approach $approach): \Illuminate\Contracts\View\View
|
||||
public function show(Approach $approach): View
|
||||
{
|
||||
return view('bo.pages.approaches.show', ['approachModel' => $approach]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Approach $approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Approach $approach): \Illuminate\Contracts\View\View
|
||||
public function create(Approach $approach): View
|
||||
{
|
||||
return view('bo.pages.approaches.create', ['approachModel' => $approach]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Approaches\StoreApproachRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreApproachRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreApproachRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$approach = new Approach();
|
||||
|
|
@ -99,39 +90,33 @@ class ApproachController extends Controller
|
|||
trans(ApproachTypeEnum::demarche->equals($approach->type)
|
||||
? 'validation.custom.demarche'
|
||||
: 'validation.custom.label')
|
||||
)
|
||||
),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(
|
||||
trans(ApproachTypeEnum::demarche->equals($approach->type)
|
||||
? 'validation.custom.demarche'
|
||||
: 'validation.custom.label')
|
||||
)
|
||||
),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Approach $approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Approach $approach): \Illuminate\Contracts\View\View
|
||||
public function edit(Approach $approach): View
|
||||
{
|
||||
return view('bo.pages.approaches.edit', ['approachModel' => $approach]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Approaches\UpdateApproachRequest $request
|
||||
* @param \App\Models\Approach $approach
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateApproachRequest $request, Approach $approach): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateApproachRequest $request, Approach $approach): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $approach) {
|
||||
$approach->fill($request->validated());
|
||||
|
|
@ -143,27 +128,25 @@ class ApproachController extends Controller
|
|||
trans(ApproachTypeEnum::demarche->equals($approach->type)
|
||||
? 'validation.custom.demarche'
|
||||
: 'validation.custom.label')
|
||||
)
|
||||
),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.approaches.edit', $approach)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(
|
||||
trans(ApproachTypeEnum::demarche->equals($approach->type)
|
||||
? 'validation.custom.demarche'
|
||||
: 'validation.custom.label')
|
||||
)
|
||||
),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Approach $approach
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Approach $approach): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Approach $approach): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -177,37 +160,32 @@ class ApproachController extends Controller
|
|||
trans(ApproachTypeEnum::demarche->equals($approach->type)
|
||||
? 'validation.custom.demarche'
|
||||
: 'validation.custom.label')
|
||||
)
|
||||
),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(
|
||||
trans(ApproachTypeEnum::demarche->equals($approach->type)
|
||||
? 'validation.custom.demarche'
|
||||
: 'validation.custom.label')
|
||||
)
|
||||
),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Approach $approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Approach $approach): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Approach $approach): View
|
||||
{
|
||||
return $this->create($approach->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a paginate resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function jsonPaginateDemarches(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function jsonPaginateDemarches(Request $request): JsonResponse
|
||||
{
|
||||
/** @var \App\Models\Approach $approachModels */
|
||||
$approachModels = $request->targetModel::query()
|
||||
|
|
@ -215,6 +193,7 @@ class ApproachController extends Controller
|
|||
->where('name', 'like', "%{$request->input('search')}%")
|
||||
->orderBy('name', 'ASC')
|
||||
->paginate($request->input('paginate') ?? 10);
|
||||
|
||||
return \response()->json($approachModels);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
namespace App\Http\Controllers\Bo\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
|
@ -23,28 +25,22 @@ class LoginController extends Controller
|
|||
|
||||
/**
|
||||
* Get the guard to be used during authentication.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Auth\StatefulGuard
|
||||
*/
|
||||
protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
|
||||
protected function guard(): StatefulGuard
|
||||
{
|
||||
return Auth::guard('backend');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application's login form.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function showLoginForm(): \Illuminate\Contracts\View\View
|
||||
public function showLoginForm(): View
|
||||
{
|
||||
return view('bo.auth.login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function redirectTo(): string
|
||||
{
|
||||
|
|
@ -53,15 +49,13 @@ class LoginController extends Controller
|
|||
|
||||
/**
|
||||
* Attempt to log the user into the application.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return boolean
|
||||
*/
|
||||
protected function attemptLogin(Request $request): bool
|
||||
{
|
||||
$credentials = $this->credentials($request);
|
||||
// * Attempt login only using published users.
|
||||
$credentials['published'] = true;
|
||||
|
||||
return $this->guard()->attempt(
|
||||
$credentials,
|
||||
$request->boolean('remember')
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Http\Controllers\Bo\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
|
|
@ -12,18 +13,14 @@ class ResetPasswordController extends Controller
|
|||
|
||||
/**
|
||||
* Get the guard to be used during authentication.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Auth\StatefulGuard
|
||||
*/
|
||||
protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
|
||||
protected function guard(): StatefulGuard
|
||||
{
|
||||
return Auth::guard('backend');
|
||||
}
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function redirectTo(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,18 +6,19 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\BlockPage\UpdateBlockRequest;
|
||||
use App\Models\Block;
|
||||
use App\Services\StaticPage\BlockService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class BlockController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public function __construct(
|
||||
private readonly BlockService $service
|
||||
) {}
|
||||
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(UpdateBlockRequest $request, Block $block): \Illuminate\Http\JsonResponse
|
||||
public function update(UpdateBlockRequest $request, Block $block): JsonResponse
|
||||
{
|
||||
$this->service->update($block, $request->validated());
|
||||
|
||||
|
|
@ -26,5 +27,4 @@ class BlockController extends Controller
|
|||
'message' => __('Bloc mis à jour avec succès.'),
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,14 +8,16 @@ use App\Http\Requests\Bo\BrandAdvantages\UpdateBrandAdvantageRequest;
|
|||
use App\Models\BrandAdvantage;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class BrandAdvantageController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -27,11 +29,8 @@ class BrandAdvantageController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $brandAdvantageModels */
|
||||
$brandAdvantageModels = BrandAdvantage::query();
|
||||
|
|
@ -65,34 +64,24 @@ class BrandAdvantageController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\BrandAdvantage $brandAdvantage
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(BrandAdvantage $brandAdvantage): \Illuminate\Contracts\View\View
|
||||
public function show(BrandAdvantage $brandAdvantage): View
|
||||
{
|
||||
return view('bo.pages.brand_advantages.show', ['brandAdvantageModel' => $brandAdvantage]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\BrandAdvantage $brandAdvantage
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(BrandAdvantage $brandAdvantage): \Illuminate\Contracts\View\View
|
||||
public function create(BrandAdvantage $brandAdvantage): View
|
||||
{
|
||||
return view('bo.pages.brand_advantages.create', ['brandAdvantageModel' => $brandAdvantage]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\BrandAdvantages\StoreBrandAdvantageRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreBrandAdvantageRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreBrandAdvantageRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$brandAdvantage = new BrandAdvantage();
|
||||
|
|
@ -101,61 +90,53 @@ class BrandAdvantageController extends Controller
|
|||
if ($brandAdvantage->saveOrFail()) {
|
||||
return redirect()->route('bo.brand_advantages.edit', $brandAdvantage)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.brand_advantage', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.brand_advantage', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1))
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\BrandAdvantage $brandAdvantage
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(BrandAdvantage $brandAdvantage): \Illuminate\Contracts\View\View
|
||||
public function edit(BrandAdvantage $brandAdvantage): View
|
||||
{
|
||||
return view('bo.pages.brand_advantages.edit', ['brandAdvantageModel' => $brandAdvantage]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\BrandAdvantages\UpdateBrandAdvantageRequest $request
|
||||
* @param \App\Models\BrandAdvantage $brandAdvantage
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateBrandAdvantageRequest $request,
|
||||
BrandAdvantage $brandAdvantage
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $brandAdvantage) {
|
||||
$brandAdvantage->fill($request->validated());
|
||||
|
||||
if ($brandAdvantage->saveOrFail()) {
|
||||
return redirect()->route('bo.brand_advantages.edit', $brandAdvantage)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1))
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.brand_advantages.edit', $brandAdvantage)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1))
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\BrandAdvantage $brandAdvantage
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(BrandAdvantage $brandAdvantage): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(BrandAdvantage $brandAdvantage): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -163,22 +144,20 @@ class BrandAdvantageController extends Controller
|
|||
if ($brandAdvantage->deleteOrFail()) {
|
||||
return redirect()->route('bo.brand_advantages.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1))
|
||||
'model' => Str::ucFirst(trans_choice('models.classes.brand_advantage', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classebrand_advantage'))
|
||||
'model' => Str::ucFirst(trans('models.classebrand_advantage')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\BrandAdvantage $brandAdvantage
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(BrandAdvantage $brandAdvantage): \Illuminate\Contracts\View\View
|
||||
public function duplicate(BrandAdvantage $brandAdvantage): View
|
||||
{
|
||||
return $this->create($brandAdvantage->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ namespace App\Http\Controllers\Bo;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Bo\CategoryApproaches\CategoryApproachRequest;
|
||||
use App\Models\CategoryApproach;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -22,16 +25,13 @@ class CategoryApproachesController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
$categories = CategoryApproach::query();
|
||||
$count = CategoryApproach::count();
|
||||
/** @var string $search Search field */
|
||||
$search = $request->search;
|
||||
/** @var string $search Search field */
|
||||
$search = $request->search;
|
||||
if ($search) {
|
||||
$this->searchQuery(
|
||||
$categories,
|
||||
|
|
@ -40,9 +40,9 @@ class CategoryApproachesController extends Controller
|
|||
'name',
|
||||
);
|
||||
}
|
||||
$searchFields = \implode(', ', [
|
||||
trans('validation.attributes.name'),
|
||||
]);
|
||||
$searchFields = \implode(', ', [
|
||||
trans('validation.attributes.name'),
|
||||
]);
|
||||
|
||||
/** Sort columns with a query */
|
||||
$this->sortQuery($categories);
|
||||
|
|
@ -54,19 +54,18 @@ class CategoryApproachesController extends Controller
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\CategoryApproach $categoryApproaches
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(CategoryApproach $categoryApproaches)
|
||||
{
|
||||
$count = CategoryApproach::count();
|
||||
if ($count >= CategoryApproach::MAX_CATEGORIES) {
|
||||
return redirect()
|
||||
->route('bo.categories.approaches.index')
|
||||
->with('error', "Limite atteinte : vous ne pouvez pas créer plus de " . CategoryApproach::MAX_CATEGORIES . " catégories.");
|
||||
->with('error', 'Limite atteinte : vous ne pouvez pas créer plus de ' . CategoryApproach::MAX_CATEGORIES . ' catégories.');
|
||||
}
|
||||
|
||||
return view('bo.pages.categories_approaches.create', ['categoryApproachesModel' => $categoryApproaches]);
|
||||
|
|
@ -74,17 +73,15 @@ class CategoryApproachesController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\CategoryApproaches\CategoryApproachRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(CategoryApproachRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(CategoryApproachRequest $request): RedirectResponse
|
||||
{
|
||||
if (CategoryApproach::count() >= CategoryApproach::MAX_CATEGORIES) {
|
||||
throw ValidationException::withMessages([
|
||||
'name' => "Limite atteinte : maximum " . CategoryApproach::MAX_CATEGORIES . " catégories."
|
||||
'name' => 'Limite atteinte : maximum ' . CategoryApproach::MAX_CATEGORIES . ' catégories.',
|
||||
]);
|
||||
}
|
||||
|
||||
return DB::transaction(function () use ($request) {
|
||||
$category = new CategoryApproach();
|
||||
$category->fill($request->validated());
|
||||
|
|
@ -92,48 +89,42 @@ class CategoryApproachesController extends Controller
|
|||
if ($category->saveOrFail()) {
|
||||
return redirect()->route('bo.categories.approaches.index')
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('validation.custom.category'))
|
||||
'model' => Str::ucfirst(trans('validation.custom.category')),
|
||||
]));
|
||||
}
|
||||
});
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('validation.custom.category'))
|
||||
]));
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('validation.custom.category')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\CategoryApproach $categories_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(CategoryApproach $categories_approach): \Illuminate\Contracts\View\View
|
||||
public function edit(CategoryApproach $categories_approach): View
|
||||
{
|
||||
return view('bo.pages.categories_approaches.edit', [
|
||||
'categoryApproachesModel' => $categories_approach
|
||||
'categoryApproachesModel' => $categories_approach,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\CategoryApproach $categories_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(CategoryApproach $categories_approach): \Illuminate\Contracts\View\View
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function show(CategoryApproach $categories_approach): View
|
||||
{
|
||||
return view('bo.pages.categories_approaches.show', [
|
||||
'categoryApproachesModel' => $categories_approach
|
||||
'categoryApproachesModel' => $categories_approach,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Request\Bo\CategoryApproaches\CategoryApproachRequest $request
|
||||
* @param \App\Models\CategoryApproach $categories_approach
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @param \App\Http\Request\Bo\CategoryApproaches\CategoryApproachRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(CategoryApproachRequest $request, CategoryApproach $categories_approach)
|
||||
{
|
||||
|
|
@ -144,25 +135,23 @@ class CategoryApproachesController extends Controller
|
|||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.categoryApproach', 1))]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.categories.approaches.edit', $categories_approach)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.categoryApproach', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.categoryApproach', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\CategoryApproach $categories_approach
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(CategoryApproach $categories_approach): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(CategoryApproach $categories_approach): RedirectResponse
|
||||
{
|
||||
|
||||
if (CategoryApproach::count() === CategoryApproach::MIN_CATEGORIES) {
|
||||
return redirect()
|
||||
->route('bo.categories.approaches.index')
|
||||
->with('error', "Limite atteinte : vous ne pouvez pas supprimer toutes les catégories (une catégorie minimum).");
|
||||
->with('error', 'Limite atteinte : vous ne pouvez pas supprimer toutes les catégories (une catégorie minimum).');
|
||||
}
|
||||
if ($categories_approach->delete()) {
|
||||
return redirect()
|
||||
|
|
@ -170,31 +159,30 @@ class CategoryApproachesController extends Controller
|
|||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.categoryApproach', 1))]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('success', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.categoryApproach', 1))]));
|
||||
->with('success', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.categoryApproach', 1))]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param CategoryApproach $section_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param CategoryApproach $section_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(CategoryApproach $categories_approach)
|
||||
{
|
||||
return $this->create($categories_approach->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a paginate resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function jsonPaginateCategory(Request $request): \Illuminate\Http\JsonResponse
|
||||
/**
|
||||
* Get a paginate resource.
|
||||
*/
|
||||
public function jsonPaginateCategory(Request $request): JsonResponse
|
||||
{
|
||||
$categoryApproachModel = $request->targetModel::query()->orderBy('name', 'ASC')->paginate();
|
||||
|
||||
return \response()->json($categoryApproachModel);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Requests\Bo\Claims\StoreClaimRequest;
|
|||
use App\Http\Requests\Bo\Claims\UpdateClaimRequest;
|
||||
use App\Models\Claim;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -25,11 +27,8 @@ class ClaimController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $claimModels */
|
||||
$claimModels = Claim::query();
|
||||
|
|
@ -59,33 +58,24 @@ class ClaimController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Claim $claim
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Claim $claim): \Illuminate\Contracts\View\View
|
||||
public function show(Claim $claim): View
|
||||
{
|
||||
return view('bo.pages.claims.show', ['claimModel' => $claim]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Claim $claim
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Claim $claim): \Illuminate\Contracts\View\View
|
||||
public function create(Claim $claim): View
|
||||
{
|
||||
return view('bo.pages.claims.create', ['claimModel' => $claim]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Claims\StoreClaimRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreClaimRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreClaimRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$claim = new Claim();
|
||||
|
|
@ -94,35 +84,29 @@ class ClaimController extends Controller
|
|||
if ($claim->saveOrFail()) {
|
||||
return redirect()->route('bo.claims.edit', $claim)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.claim'))
|
||||
'model' => Str::ucfirst(trans('models.classes.claim')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.claim'))
|
||||
'model' => Str::ucfirst(trans('models.classes.claim')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Claim $claim
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Claim $claim): \Illuminate\Contracts\View\View
|
||||
public function edit(Claim $claim): View
|
||||
{
|
||||
return view('bo.pages.claims.edit', ['claimModel' => $claim]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Claims\UpdateClaimRequest $request
|
||||
* @param \App\Models\Claim $claim
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateClaimRequest $request, Claim $claim): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateClaimRequest $request, Claim $claim): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $claim) {
|
||||
$claim->fill($request->validated());
|
||||
|
|
@ -130,23 +114,21 @@ class ClaimController extends Controller
|
|||
if ($claim->saveOrFail()) {
|
||||
return redirect()->route('bo.claims.edit', $claim)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.claim'))
|
||||
'model' => Str::ucfirst(trans('models.classes.claim')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.claims.edit', $claim)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.claim'))
|
||||
'model' => Str::ucfirst(trans('models.classes.claim')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Claim $claim
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Claim $claim): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Claim $claim): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -154,22 +136,20 @@ class ClaimController extends Controller
|
|||
if ($claim->deleteOrFail()) {
|
||||
return redirect()->route('bo.claims.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.claim'))
|
||||
'model' => Str::ucfirst(trans('models.classes.claim')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.claim'))
|
||||
'model' => Str::ucfirst(trans('models.classes.claim')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Claim $claim
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Claim $claim): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Claim $claim): View
|
||||
{
|
||||
return $this->create($claim->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\ConsumptionMoments\StoreConsumptionMomentRequest;
|
||||
use App\Http\Requests\Bo\ConsumptionMoments\UpdateConsumptionMomentRequest;
|
||||
use App\Models\ConsumptionMoment;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -22,11 +24,8 @@ class ConsumptionMomentController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $consumptionMomentModels */
|
||||
$consumptionMomentModels = ConsumptionMoment::query();
|
||||
|
|
@ -60,33 +59,24 @@ class ConsumptionMomentController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\ConsumptionMoment $consumptionMoment
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(ConsumptionMoment $consumptionMoment): \Illuminate\Contracts\View\View
|
||||
public function show(ConsumptionMoment $consumptionMoment): View
|
||||
{
|
||||
return view('bo.pages.consumption_moments.show', ['consumptionMomentModel' => $consumptionMoment]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\ConsumptionMoment $consumptionMoment
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(ConsumptionMoment $consumptionMoment): \Illuminate\Contracts\View\View
|
||||
public function create(ConsumptionMoment $consumptionMoment): View
|
||||
{
|
||||
return view('bo.pages.consumption_moments.create', ['consumptionMomentModel' => $consumptionMoment]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\ConsumptionMoments\StoreConsumptionMomentRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreConsumptionMomentRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreConsumptionMomentRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$consumptionMoment = new ConsumptionMoment();
|
||||
|
|
@ -95,61 +85,53 @@ class ConsumptionMomentController extends Controller
|
|||
if ($consumptionMoment->saveOrFail()) {
|
||||
return redirect()->route('bo.consumption_moments.edit', $consumptionMoment)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\ConsumptionMoment $consumptionMoment
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(ConsumptionMoment $consumptionMoment): \Illuminate\Contracts\View\View
|
||||
public function edit(ConsumptionMoment $consumptionMoment): View
|
||||
{
|
||||
return view('bo.pages.consumption_moments.edit', ['consumptionMomentModel' => $consumptionMoment]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\ConsumptionMoments\UpdateConsumptionMomentRequest $request
|
||||
* @param \App\Models\ConsumptionMoment $consumptionMoment
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateConsumptionMomentRequest $request,
|
||||
ConsumptionMoment $consumptionMoment
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $consumptionMoment) {
|
||||
$consumptionMoment->fill($request->validated());
|
||||
|
||||
if ($consumptionMoment->saveOrFail()) {
|
||||
return redirect()->route('bo.consumption_moments.edit', $consumptionMoment)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.consumption_moments.edit', $consumptionMoment)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\ConsumptionMoment $consumptionMoment
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(ConsumptionMoment $consumptionMoment): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(ConsumptionMoment $consumptionMoment): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -157,22 +139,20 @@ class ConsumptionMomentController extends Controller
|
|||
if ($consumptionMoment->deleteOrFail()) {
|
||||
return redirect()->route('bo.consumption_moments.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.consumption_moment', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\ConsumptionMoment $consumptionMoment
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(ConsumptionMoment $consumptionMoment): \Illuminate\Contracts\View\View
|
||||
public function duplicate(ConsumptionMoment $consumptionMoment): View
|
||||
{
|
||||
return $this->create($consumptionMoment->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,15 +3,14 @@
|
|||
namespace App\Http\Controllers\Bo;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
/**
|
||||
* Dashboard Page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
return view('bo.pages.dashboard');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ use App\Http\Requests\Bo\DemarcheSlides\UpdateDemarcheSlideRequest;
|
|||
use App\Models\DemarcheSlide;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -27,11 +29,8 @@ class DemarcheSlideController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $demarcheSlideModels */
|
||||
$demarcheSlideModels = DemarcheSlide::query();
|
||||
|
|
@ -63,33 +62,24 @@ class DemarcheSlideController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\DemarcheSlide $demarcheSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(DemarcheSlide $demarcheSlide): \Illuminate\Contracts\View\View
|
||||
public function show(DemarcheSlide $demarcheSlide): View
|
||||
{
|
||||
return view('bo.pages.demarche_slides.show', ['demarcheSlideModel' => $demarcheSlide]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\DemarcheSlide $demarcheSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(DemarcheSlide $demarcheSlide): \Illuminate\Contracts\View\View
|
||||
public function create(DemarcheSlide $demarcheSlide): View
|
||||
{
|
||||
return view('bo.pages.demarche_slides.create', ['demarcheSlideModel' => $demarcheSlide]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\DemarcheSlides\StoreDemarcheSlideRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreDemarcheSlideRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreDemarcheSlideRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$demarcheSlide = new DemarcheSlide();
|
||||
|
|
@ -98,61 +88,53 @@ class DemarcheSlideController extends Controller
|
|||
if ($demarcheSlide->saveOrFail()) {
|
||||
return redirect()->route('bo.demarche_slides.edit', $demarcheSlide)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\DemarcheSlide $demarcheSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(DemarcheSlide $demarcheSlide): \Illuminate\Contracts\View\View
|
||||
public function edit(DemarcheSlide $demarcheSlide): View
|
||||
{
|
||||
return view('bo.pages.demarche_slides.edit', ['demarcheSlideModel' => $demarcheSlide]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\DemarcheSlides\UpdateDemarcheSlideRequest $request
|
||||
* @param \App\Models\DemarcheSlide $demarcheSlide
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateDemarcheSlideRequest $request,
|
||||
DemarcheSlide $demarcheSlide
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $demarcheSlide) {
|
||||
$demarcheSlide->fill($request->validated());
|
||||
|
||||
if ($demarcheSlide->saveOrFail()) {
|
||||
return redirect()->route('bo.demarche_slides.edit', $demarcheSlide)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.demarche_slides.edit', $demarcheSlide)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\DemarcheSlide $demarcheSlide
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(DemarcheSlide $demarcheSlide): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(DemarcheSlide $demarcheSlide): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -160,22 +142,20 @@ class DemarcheSlideController extends Controller
|
|||
if ($demarcheSlide->deleteOrFail()) {
|
||||
return redirect()->route('bo.demarche_slides.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.demarche_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\DemarcheSlide $demarcheSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(DemarcheSlide $demarcheSlide): \Illuminate\Contracts\View\View
|
||||
public function duplicate(DemarcheSlide $demarcheSlide): View
|
||||
{
|
||||
return $this->create($demarcheSlide->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ namespace App\Http\Controllers\Bo;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Discount;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DiscountController extends Controller
|
||||
|
|
@ -21,11 +23,8 @@ class DiscountController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $query */
|
||||
$query = Discount::query();
|
||||
|
|
@ -59,23 +58,19 @@ class DiscountController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Discount $discount
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Discount $discount): \Illuminate\Contracts\View\View
|
||||
public function show(Discount $discount): View
|
||||
{
|
||||
return view('bo.pages.discounts.show', ['discountModel' => $discount]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function fetchList(): \Illuminate\Http\RedirectResponse
|
||||
public function fetchList(): RedirectResponse
|
||||
{
|
||||
Discount::updateDiscounts();
|
||||
|
||||
return redirect()->route('bo.discounts.index')
|
||||
->with('success', trans('Mise à jour des réductions réussie !'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\GeneralSettings\UpdateGeneralSettingRequest;
|
||||
use App\Lib\Helpers\FileStorageHelper;
|
||||
use App\Models\GeneralSetting;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
|
|
@ -22,64 +25,52 @@ class GeneralSettingController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\GeneralSetting $general_setting
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(GeneralSetting $general_setting): \Illuminate\Contracts\View\View
|
||||
public function edit(GeneralSetting $general_setting): View
|
||||
{
|
||||
return view('bo.pages.general_settings.edit', [
|
||||
'generalSettingModel' => $general_setting,
|
||||
'menuNodes' => $general_setting->value
|
||||
'menuNodes' => $general_setting->value,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\GeneralSettings\UpdateGeneralSettingRequest $request
|
||||
* @param \App\Models\GeneralSetting $general_setting
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateGeneralSettingRequest $request,
|
||||
GeneralSetting $general_setting
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $general_setting) {
|
||||
match ($general_setting->type) {
|
||||
SettingsType::hotNews => self::updateHotNews($request, $general_setting),
|
||||
SettingsType::breederMap => self::updateBreederMap($request, $general_setting),
|
||||
default => $general_setting->fill($request->only('value'))
|
||||
default => $general_setting->fill($request->only('value'))
|
||||
};
|
||||
|
||||
if ($general_setting->saveOrFail()) {
|
||||
return redirect()->route('bo.general_settings.edit', $general_setting)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.general_setting', 1))
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.general_setting', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.general_settings.edit', $general_setting)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.general_setting', 1))
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.general_setting', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update content for the General Setting with the type 'Hot News'
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\GeneralSettings\UpdateGeneralSettingRequest $request
|
||||
* @param \App\Models\GeneralSetting $general_setting
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function updateHotNews(UpdateGeneralSettingRequest $request, GeneralSetting $general_setting): void
|
||||
{
|
||||
collect($request->only(['value->text', 'value->picture', 'value->picture_alt', 'value->picture_title']))
|
||||
->each(fn(string|\Illuminate\Http\UploadedFile|null $value, string $attribute) =>
|
||||
$general_setting->setAttribute(
|
||||
->each(fn (string | \Illuminate\Http\UploadedFile | null $value, string $attribute) => $general_setting->setAttribute(
|
||||
$attribute,
|
||||
$value instanceof \Illuminate\Http\UploadedFile ?
|
||||
$value instanceof UploadedFile ?
|
||||
FileStorageHelper::storeFile($general_setting, $value, true) :
|
||||
$value ?? json_decode(collect($general_setting->value))->picture
|
||||
));
|
||||
|
|
@ -87,21 +78,15 @@ class GeneralSettingController extends Controller
|
|||
|
||||
/**
|
||||
* Update content for the General Setting with the type 'Breeder Map Component'
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\GeneralSettings\UpdateGeneralSettingRequest $request
|
||||
* @param \App\Models\GeneralSetting $general_setting
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function updateBreederMap(
|
||||
UpdateGeneralSettingRequest $request,
|
||||
GeneralSetting $general_setting
|
||||
): void {
|
||||
collect($request->only(['value->title', 'value->main_text', 'value->picto_text']))
|
||||
->each(fn(string|null $value, string $attribute) =>
|
||||
$general_setting->setAttribute(
|
||||
$attribute,
|
||||
$value ?? json_decode(collect($general_setting->value))->picto
|
||||
));
|
||||
->each(fn (?string $value, string $attribute) => $general_setting->setAttribute(
|
||||
$attribute,
|
||||
$value ?? json_decode(collect($general_setting->value))->picto
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ use App\Http\Requests\Bo\HistoricalMilestones\UpdateHistoricalMilestoneRequest;
|
|||
use App\Models\HistoricalMilestone;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -27,11 +29,8 @@ class HistoricalMilestoneController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $historicalMilestoneModels */
|
||||
$historicalMilestoneModels = HistoricalMilestone::query();
|
||||
|
|
@ -69,33 +68,24 @@ class HistoricalMilestoneController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\HistoricalMilestone $historicalMilestone
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(HistoricalMilestone $historicalMilestone): \Illuminate\Contracts\View\View
|
||||
public function show(HistoricalMilestone $historicalMilestone): View
|
||||
{
|
||||
return view('bo.pages.historical_milestones.show', ['historicalMilestoneModel' => $historicalMilestone]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\HistoricalMilestone $historicalMilestone
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(HistoricalMilestone $historicalMilestone): \Illuminate\Contracts\View\View
|
||||
public function create(HistoricalMilestone $historicalMilestone): View
|
||||
{
|
||||
return view('bo.pages.historical_milestones.create', ['historicalMilestoneModel' => $historicalMilestone]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\HistoricalMilestones\StoreHistoricalMilestoneRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreHistoricalMilestoneRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreHistoricalMilestoneRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$historicalMilestone = new HistoricalMilestone();
|
||||
|
|
@ -104,61 +94,53 @@ class HistoricalMilestoneController extends Controller
|
|||
if ($historicalMilestone->saveOrFail()) {
|
||||
return redirect()->route('bo.historical_milestones.edit', $historicalMilestone)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\HistoricalMilestone $historicalMilestone
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(HistoricalMilestone $historicalMilestone): \Illuminate\Contracts\View\View
|
||||
public function edit(HistoricalMilestone $historicalMilestone): View
|
||||
{
|
||||
return view('bo.pages.historical_milestones.edit', ['historicalMilestoneModel' => $historicalMilestone]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\HistoricalMilestones\UpdateHistoricalMilestoneRequest $request
|
||||
* @param \App\Models\HistoricalMilestone $historicalMilestone
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateHistoricalMilestoneRequest $request,
|
||||
HistoricalMilestone $historicalMilestone
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $historicalMilestone) {
|
||||
$historicalMilestone->fill($request->validated());
|
||||
|
||||
if ($historicalMilestone->saveOrFail()) {
|
||||
return redirect()->route('bo.historical_milestones.edit', $historicalMilestone)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.historical_milestones.edit', $historicalMilestone)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\HistoricalMilestone $historicalMilestone
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(HistoricalMilestone $historicalMilestone): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(HistoricalMilestone $historicalMilestone): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -166,22 +148,20 @@ class HistoricalMilestoneController extends Controller
|
|||
if ($historicalMilestone->deleteOrFail()) {
|
||||
return redirect()->route('bo.historical_milestones.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.historical_milestone', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\HistoricalMilestone $historicalMilestone
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(HistoricalMilestone $historicalMilestone): \Illuminate\Contracts\View\View
|
||||
public function duplicate(HistoricalMilestone $historicalMilestone): View
|
||||
{
|
||||
return $this->create($historicalMilestone->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,18 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\KeyNumbers\StoreKeyNumberRequest;
|
||||
use App\Http\Requests\Bo\KeyNumbers\UpdateKeyNumberRequest;
|
||||
use App\Models\KeyNumber;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class KeyNumberController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -27,11 +29,8 @@ class KeyNumberController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $keyNumberModels */
|
||||
$keyNumberModels = KeyNumber::query();
|
||||
|
|
@ -61,33 +60,24 @@ class KeyNumberController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\KeyNumber $keyNumber
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(KeyNumber $keyNumber): \Illuminate\Contracts\View\View
|
||||
public function show(KeyNumber $keyNumber): View
|
||||
{
|
||||
return view('bo.pages.key_numbers.show', ['keyNumberModel' => $keyNumber]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\KeyNumber $keyNumber
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(KeyNumber $keyNumber): \Illuminate\Contracts\View\View
|
||||
public function create(KeyNumber $keyNumber): View
|
||||
{
|
||||
return view('bo.pages.key_numbers.create', ['keyNumberModel' => $keyNumber]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\KeyNumbers\StoreKeyNumberRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreKeyNumberRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreKeyNumberRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$keyNumber = new KeyNumber();
|
||||
|
|
@ -96,35 +86,29 @@ class KeyNumberController extends Controller
|
|||
if ($keyNumber->saveOrFail()) {
|
||||
return redirect()->route('bo.key_numbers.edit', $keyNumber)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number'))
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number'))
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\KeyNumber $keyNumber
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(KeyNumber $keyNumber): \Illuminate\Contracts\View\View
|
||||
public function edit(KeyNumber $keyNumber): View
|
||||
{
|
||||
return view('bo.pages.key_numbers.edit', ['keyNumberModel' => $keyNumber]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\KeyNumbers\UpdateKeyNumberRequest $request
|
||||
* @param \App\Models\KeyNumber $keyNumber
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateKeyNumberRequest $request, KeyNumber $keyNumber): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateKeyNumberRequest $request, KeyNumber $keyNumber): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $keyNumber) {
|
||||
$keyNumber->fill($request->validated());
|
||||
|
|
@ -132,23 +116,21 @@ class KeyNumberController extends Controller
|
|||
if ($keyNumber->saveOrFail()) {
|
||||
return redirect()->route('bo.key_numbers.edit', $keyNumber)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number'))
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.key_numbers.edit', $keyNumber)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number'))
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\KeyNumber $keyNumber
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(KeyNumber $keyNumber): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(KeyNumber $keyNumber): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -156,22 +138,20 @@ class KeyNumberController extends Controller
|
|||
if ($keyNumber->deleteOrFail()) {
|
||||
return redirect()->route('bo.key_numbers.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number'))
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number'))
|
||||
'model' => Str::ucfirst(trans('models.classes.key_number')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\KeyNumber $keyNumber
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(KeyNumber $keyNumber): \Illuminate\Contracts\View\View
|
||||
public function duplicate(KeyNumber $keyNumber): View
|
||||
{
|
||||
return $this->create($keyNumber->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ class MailTesterController extends Controller
|
|||
return back()->with('success', __("Le mail a été envoyé à l'adresse {$recipient->address}"));
|
||||
} catch (Throwable $e) {
|
||||
report($e);
|
||||
|
||||
return back()->with('error', "Échec lors de l'envoi du mail : {$e->getMessage()}");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ use App\Models\Approach;
|
|||
use App\Models\MainSlide;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -29,11 +31,8 @@ class MainSlideController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $mainSlideModels */
|
||||
$mainSlideModels = MainSlide::query();
|
||||
|
|
@ -65,38 +64,30 @@ class MainSlideController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\MainSlide $mainSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(MainSlide $mainSlide): \Illuminate\Contracts\View\View
|
||||
public function show(MainSlide $mainSlide): View
|
||||
{
|
||||
return view('bo.pages.main_slides.show', ['mainSlideModel' => $mainSlide]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\MainSlide $mainSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(MainSlide $mainSlide): \Illuminate\Contracts\View\View
|
||||
public function create(MainSlide $mainSlide): View
|
||||
{
|
||||
$demarcheModels = Approach::query()->where('type', ApproachTypeEnum::demarche)
|
||||
->orderBy('name', 'ASC')->paginate(10);
|
||||
|
||||
return view('bo.pages.main_slides.create', [
|
||||
'mainSlideModel' => $mainSlide,
|
||||
'demarcheModels' => $demarcheModels
|
||||
'demarcheModels' => $demarcheModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\MainSlides\StoreMainSlideRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreMainSlideRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreMainSlideRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$mainSlide = new MainSlide();
|
||||
|
|
@ -105,66 +96,59 @@ class MainSlideController extends Controller
|
|||
if ($mainSlide->saveOrFail()) {
|
||||
return redirect()->route('bo.main_slides.edit', $mainSlide)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\MainSlide $mainSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(MainSlide $mainSlide): \Illuminate\Contracts\View\View
|
||||
public function edit(MainSlide $mainSlide): View
|
||||
{
|
||||
$demarcheModels = Approach::query()->where('type', ApproachTypeEnum::demarche)
|
||||
->orderBy('name', 'ASC')->paginate(10);
|
||||
|
||||
return view('bo.pages.main_slides.edit', [
|
||||
'mainSlideModel' => $mainSlide,
|
||||
'demarcheModels' => $demarcheModels
|
||||
'demarcheModels' => $demarcheModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\MainSlides\UpdateMainSlideRequest $request
|
||||
* @param \App\Models\MainSlide $mainSlide
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateMainSlideRequest $request,
|
||||
MainSlide $mainSlide
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $mainSlide) {
|
||||
$mainSlide->fill($request->validated());
|
||||
|
||||
if ($mainSlide->saveOrFail()) {
|
||||
return redirect()->route('bo.main_slides.edit', $mainSlide)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.main_slides.edit', $mainSlide)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\MainSlide $mainSlide
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(MainSlide $mainSlide): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(MainSlide $mainSlide): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -172,22 +156,20 @@ class MainSlideController extends Controller
|
|||
if ($mainSlide->deleteOrFail()) {
|
||||
return redirect()->route('bo.main_slides.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide'))
|
||||
'model' => Str::ucfirst(trans('models.classes.main_slide')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\MainSlide $mainSlide
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(MainSlide $mainSlide): \Illuminate\Contracts\View\View
|
||||
public function duplicate(MainSlide $mainSlide): View
|
||||
{
|
||||
return $this->create($mainSlide->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,14 +10,16 @@ use App\Models\Meat;
|
|||
use App\Models\Submeat;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class MeatController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -29,11 +31,8 @@ class MeatController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $meatModels */
|
||||
$meatModels = Meat::query()->with('submeats:id,meat_id');
|
||||
|
|
@ -67,34 +66,24 @@ class MeatController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\Meat $meat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Meat $meat): \Illuminate\Contracts\View\View
|
||||
public function show(Meat $meat): View
|
||||
{
|
||||
return view('bo.pages.meats.show', ['meatModel' => $meat]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Meat $meat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Meat $meat): \Illuminate\Contracts\View\View
|
||||
public function create(Meat $meat): View
|
||||
{
|
||||
return view('bo.pages.meats.create', ['meatModel' => $meat]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Meats\StoreMeatRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreMeatRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreMeatRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$meat = new Meat();
|
||||
|
|
@ -103,61 +92,53 @@ class MeatController extends Controller
|
|||
if ($meat->saveOrFail()) {
|
||||
return redirect()->route('bo.meats.edit', $meat)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.meat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.meat')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.meat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.meat')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Meat $meat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Meat $meat): \Illuminate\Contracts\View\View
|
||||
public function edit(Meat $meat): View
|
||||
{
|
||||
return view('bo.pages.meats.edit', ['meatModel' => $meat]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Meats\UpdateMeatRequest $request
|
||||
* @param \App\Models\Meat $meat
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateMeatRequest $request,
|
||||
Meat $meat
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $meat) {
|
||||
$meat->fill($request->validated());
|
||||
|
||||
if ($meat->saveOrFail()) {
|
||||
return redirect()->route('bo.meats.edit', $meat)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.meat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.meat')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.meats.edit', $meat)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.meat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.meat')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Meat $meat
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Meat $meat): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Meat $meat): RedirectResponse
|
||||
{
|
||||
// We can't delete a meat with associated submeats.
|
||||
/** @var \Illuminate\Database\Eloquent\Collection $submeats */
|
||||
|
|
@ -174,34 +155,28 @@ class MeatController extends Controller
|
|||
if ($meat->deleteOrFail()) {
|
||||
return redirect()->route('bo.meats.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.meat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.meat')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.meat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.meat')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Meat $meat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Meat $meat): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Meat $meat): View
|
||||
{
|
||||
return $this->create($meat->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the form to edit submeats order.
|
||||
*
|
||||
* @param \App\Models\Meat $meat
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function editSubmeatsOrder(Meat $meat): \Illuminate\Contracts\View\View
|
||||
public function editSubmeatsOrder(Meat $meat): View
|
||||
{
|
||||
$submeats = $meat->submeats()->orderBy('order')->get(['id', 'label', 'meat_id']);
|
||||
$meats = Meat::query()->get(['id', 'label']);
|
||||
|
|
@ -210,22 +185,17 @@ class MeatController extends Controller
|
|||
'modelName' => 'meat',
|
||||
'model' => $meat,
|
||||
'models' => $meats,
|
||||
'submodels' => $submeats
|
||||
'submodels' => $submeats,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updated the order of submeats related to a given range.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Meats\UpdateSubmodelsOrderRequest $request
|
||||
* @param \App\Models\Meat $meat
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function updateSubmeatsOrder(
|
||||
UpdateSubmodelsOrderRequest $request,
|
||||
Meat $meat
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
$oldList = $meat->submeats()->orderBy('order')->get();
|
||||
$newList = (json_decode($request->get('jsonValue'), true));
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Bo;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Bo\MenuNodeData\UpdateMenuNodeDataRequest;
|
||||
use App\Models\MenuNodeData;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
|
@ -22,31 +23,26 @@ class MenuNodeDataController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function index(): \Illuminate\Http\JsonResponse
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
return response()->json(MenuNodeData::all());
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\MenuNodeData\UpdateMenuNodeDataRequest $request
|
||||
* @param \App\Models\MenuNodeData $menuNodeData
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateMenuNodeDataRequest $request,
|
||||
MenuNodeData $menuNodeData
|
||||
): \Illuminate\Http\JsonResponse {
|
||||
): JsonResponse {
|
||||
return DB::transaction(function () use ($request, $menuNodeData) {
|
||||
$menuNodeData->fill($request->validated());
|
||||
|
||||
if ($menuNodeData->saveOrFail()) {
|
||||
return response()->json();
|
||||
}
|
||||
|
||||
return response()->json([], 500);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ use App\Models\NewsBreeding;
|
|||
use App\Models\StaticPage;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -18,8 +20,8 @@ use Illuminate\Support\Str;
|
|||
|
||||
class NewsBreedingController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -28,13 +30,11 @@ class NewsBreedingController extends Controller
|
|||
{
|
||||
$this->authorizeResource(NewsBreeding::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $newsBreedingModels */
|
||||
$newsBreedingModels = NewsBreeding::query()
|
||||
|
|
@ -74,11 +74,8 @@ class NewsBreedingController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(NewsBreeding $newsBreeding): \Illuminate\Contracts\View\View
|
||||
public function create(NewsBreeding $newsBreeding): View
|
||||
{
|
||||
$breedingPages = StaticPage::query()
|
||||
->whereIn('type', Arr::pluck(StaticPageType::getBreedingPages(), 'value'))
|
||||
|
|
@ -89,11 +86,8 @@ class NewsBreedingController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsBreedings\StoreNewsBreedingRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreNewsBreedingRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreNewsBreedingRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$newsBreeding = new NewsBreeding();
|
||||
|
|
@ -101,71 +95,60 @@ class NewsBreedingController extends Controller
|
|||
if ($newsBreeding->saveOrFail()) {
|
||||
return redirect()->route('bo.news_breedings.edit', $newsBreeding)
|
||||
->with('success', __('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', __('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(NewsBreeding $newsBreeding): \Illuminate\Contracts\View\View
|
||||
public function show(NewsBreeding $newsBreeding): View
|
||||
{
|
||||
return view('bo.pages.news_breedings.show', ['newsBreedingModel' => $newsBreeding]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(NewsBreeding $newsBreeding): \Illuminate\Contracts\View\View
|
||||
public function edit(NewsBreeding $newsBreeding): View
|
||||
{
|
||||
return view('bo.pages.news_breedings.edit', ['newsBreedingModel' => $newsBreeding]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsBreedings\UpdateNewsBreedingRequest $request
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateNewsBreedingRequest $request,
|
||||
NewsBreeding $newsBreeding
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $newsBreeding) {
|
||||
$newsBreeding->fill($request->validated());
|
||||
if ($newsBreeding->saveOrFail()) {
|
||||
return redirect()->route('bo.news_breedings.edit', $newsBreeding)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.news_breedings.edit', $newsBreeding)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(NewsBreeding $newsBreeding): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(NewsBreeding $newsBreeding): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -173,22 +156,20 @@ class NewsBreedingController extends Controller
|
|||
if ($newsBreeding->deleteOrFail()) {
|
||||
return redirect()->route('bo.news_breedings.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_breeding', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(NewsBreeding $newsBreeding): \Illuminate\Contracts\View\View
|
||||
public function duplicate(NewsBreeding $newsBreeding): View
|
||||
{
|
||||
return $this->create($newsBreeding->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,18 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\NewsCategories\StoreNewsCategoryRequest;
|
||||
use App\Http\Requests\Bo\NewsCategories\UpdateNewsCategoryRequest;
|
||||
use App\Models\NewsCategory;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class NewsCategoryController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -27,11 +29,8 @@ class NewsCategoryController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $newsCategoryModels */
|
||||
$newsCategoryModels = NewsCategory::query();
|
||||
|
|
@ -61,22 +60,16 @@ class NewsCategoryController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\NewsCategory $newsCategory
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(NewsCategory $newsCategory): \Illuminate\Contracts\View\View
|
||||
public function create(NewsCategory $newsCategory): View
|
||||
{
|
||||
return view('bo.pages.news_categories.create', ['newsCategoryModel' => $newsCategory]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsCategories\StoreNewsCategoryRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreNewsCategoryRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreNewsCategoryRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$newsCategory = new NewsCategory();
|
||||
|
|
@ -85,72 +78,61 @@ class NewsCategoryController extends Controller
|
|||
if ($newsCategory->saveOrFail()) {
|
||||
return redirect()->route('bo.news_categories.edit', $newsCategory)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsCategory $newsCategory
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(NewsCategory $newsCategory): \Illuminate\Contracts\View\View
|
||||
public function show(NewsCategory $newsCategory): View
|
||||
{
|
||||
return view('bo.pages.news_categories.show', ['newsCategoryModel' => $newsCategory]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsCategory $newsCategory
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(NewsCategory $newsCategory): \Illuminate\Contracts\View\View
|
||||
public function edit(NewsCategory $newsCategory): View
|
||||
{
|
||||
return view('bo.pages.news_categories.edit', ['newsCategoryModel' => $newsCategory]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsCategories\UpdateNewsCategoryRequest $request
|
||||
* @param \App\Models\NewsCategory $newsCategory
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateNewsCategoryRequest $request,
|
||||
NewsCategory $newsCategory
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $newsCategory) {
|
||||
$newsCategory->fill($request->validated());
|
||||
|
||||
if ($newsCategory->saveOrFail()) {
|
||||
return redirect()->route('bo.news_categories.edit', $newsCategory)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.news_categories.edit', $newsCategory)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\NewsCategory $newsCategory
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(NewsCategory $newsCategory): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(NewsCategory $newsCategory): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -158,22 +140,20 @@ class NewsCategoryController extends Controller
|
|||
if ($newsCategory->deleteOrFail()) {
|
||||
return redirect()->route('bo.news_categories.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsCategory $newsCategory
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(NewsCategory $newsCategory): \Illuminate\Contracts\View\View
|
||||
public function duplicate(NewsCategory $newsCategory): View
|
||||
{
|
||||
return $this->create($newsCategory->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\NewsClubs\StoreNewsClubRequest;
|
||||
use App\Http\Requests\Bo\NewsClubs\UpdateNewsClubRequest;
|
||||
use App\Models\NewsClub;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -23,11 +25,8 @@ class NewsClubController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $newsClubModels */
|
||||
$newsClubModels = NewsClub::query()
|
||||
|
|
@ -59,33 +58,24 @@ class NewsClubController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(NewsClub $newsClub): \Illuminate\Contracts\View\View
|
||||
public function show(NewsClub $newsClub): View
|
||||
{
|
||||
return view('bo.pages.news_clubs.show', ['newsClubModel' => $newsClub]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(NewsClub $newsClub): \Illuminate\Contracts\View\View
|
||||
public function create(NewsClub $newsClub): View
|
||||
{
|
||||
return view('bo.pages.news_clubs.create', ['newsClubModel' => $newsClub]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsClubs\StoreNewsClubRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreNewsClubRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreNewsClubRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$newsClub = new NewsClub();
|
||||
|
|
@ -94,35 +84,29 @@ class NewsClubController extends Controller
|
|||
if ($newsClub->saveOrFail()) {
|
||||
return redirect()->route('bo.news_clubs.edit', $newsClub)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(NewsClub $newsClub): \Illuminate\Contracts\View\View
|
||||
public function edit(NewsClub $newsClub): View
|
||||
{
|
||||
return view('bo.pages.news_clubs.edit', ['newsClubModel' => $newsClub]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsClubs\UpdateNewsClubRequest $request
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateNewsClubRequest $request, NewsClub $newsClub): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateNewsClubRequest $request, NewsClub $newsClub): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $newsClub) {
|
||||
$newsClub->fill($request->validated());
|
||||
|
|
@ -130,23 +114,21 @@ class NewsClubController extends Controller
|
|||
if ($newsClub->saveOrFail()) {
|
||||
return redirect()->route('bo.news_clubs.edit', $newsClub)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.news_clubs.edit', $newsClub)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(NewsClub $newsClub): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(NewsClub $newsClub): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -154,22 +136,20 @@ class NewsClubController extends Controller
|
|||
if ($newsClub->deleteOrFail()) {
|
||||
return redirect()->route('bo.news_clubs.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news_club')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(NewsClub $newsClub): \Illuminate\Contracts\View\View
|
||||
public function duplicate(NewsClub $newsClub): View
|
||||
{
|
||||
return $this->create($newsClub->replicate());
|
||||
}
|
||||
|
|
@ -177,7 +157,6 @@ class NewsClubController extends Controller
|
|||
/**
|
||||
* Change model published.
|
||||
*
|
||||
* @param \App\Models\NewsClub $newsClub
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function changePublished(NewsClub $newsClub)
|
||||
|
|
@ -185,22 +164,23 @@ class NewsClubController extends Controller
|
|||
$newsClubModels = NewsClub::query()->where('published', true)->orderBy('created_at')->get();
|
||||
if (
|
||||
$newsClubModels->count() >= 3
|
||||
&& !$newsClubModels->contains($newsClub)
|
||||
&& !$newsClub->published
|
||||
&& ! $newsClubModels->contains($newsClub)
|
||||
&& ! $newsClub->published
|
||||
) {
|
||||
/** @var \App\Models\News $firstNews */
|
||||
$firstNews = $newsClubModels->first();
|
||||
$firstNews->published = false;
|
||||
$firstNews->save();
|
||||
}
|
||||
$newsClub->update(['published' => !$newsClub->getOriginal('published')]);
|
||||
$newsClub->update(['published' => ! $newsClub->getOriginal('published')]);
|
||||
|
||||
return redirect()->back()->with(
|
||||
'success',
|
||||
trans('crud.messages.publish_status_saved') . (
|
||||
($newsClubModels->count() >= 3 && $newsClub->getOriginal('published'))
|
||||
// phpcs:ignore Generic.Files.LineLength.TooLong
|
||||
? \trans(' Maximum 3 :model doivent être publiées en même temps, la plus ancienne est donc dépubliée.', [
|
||||
'model' => trans_choice('models.classes.news_club', \INF)
|
||||
'model' => trans_choice('models.classes.news_club', \INF),
|
||||
])
|
||||
: '')
|
||||
);
|
||||
|
|
|
|||
|
|
@ -7,17 +7,19 @@ use App\Http\Requests\Bo\News\StoreNewsRequest;
|
|||
use App\Http\Requests\Bo\News\UpdateNewsRequest;
|
||||
use App\Models\News;
|
||||
use App\Models\NewsCategory;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class NewsController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -26,20 +28,18 @@ class NewsController extends Controller
|
|||
{
|
||||
$this->authorizeResource(News::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $newsModels */
|
||||
$newsModels = News::query()->with('newsCategory');
|
||||
|
||||
/** @var string $search Search field */
|
||||
$search = $request->search;
|
||||
if ($search) {
|
||||
if ($search) {
|
||||
$this->searchQuery(
|
||||
$newsModels,
|
||||
$search,
|
||||
|
|
@ -69,23 +69,18 @@ class NewsController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\News $news
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(News $news): \Illuminate\Contracts\View\View
|
||||
public function create(News $news): View
|
||||
{
|
||||
$newsCategoryModels = NewsCategory::getPublishedOrdered();
|
||||
|
||||
return view('bo.pages.news.create', ['newsModel' => $news, 'newsCategoryModels' => $newsCategoryModels]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\News\StoreNewsRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreNewsRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreNewsRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$news = new News();
|
||||
|
|
@ -93,72 +88,62 @@ class NewsController extends Controller
|
|||
if ($news->saveOrFail()) {
|
||||
return redirect()->route('bo.news.edit', $news)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\News $news
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(News $news): \Illuminate\Contracts\View\View
|
||||
public function show(News $news): View
|
||||
{
|
||||
return view('bo.pages.news.show', ['newsModel' => $news]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\News $news
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(News $news): \Illuminate\Contracts\View\View
|
||||
public function edit(News $news): View
|
||||
{
|
||||
$newsCategoryModels = NewsCategory::getPublishedOrdered();
|
||||
|
||||
return view('bo.pages.news.edit', ['newsModel' => $news, 'newsCategoryModels' => $newsCategoryModels]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\News\UpdateNewsRequest $request
|
||||
* @param \App\Models\News $news
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateNewsRequest $request,
|
||||
News $news
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $news) {
|
||||
$news->fill($request->validated());
|
||||
if ($news->saveOrFail()) {
|
||||
return redirect()->route('bo.news.edit', $news)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.news.edit', $news)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\News $news
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(News $news): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(News $news): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -166,22 +151,20 @@ class NewsController extends Controller
|
|||
if ($news->deleteOrFail()) {
|
||||
return redirect()->route('bo.news.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.news'))
|
||||
'model' => Str::ucfirst(trans('models.classes.news')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\News $news
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(News $news): \Illuminate\Contracts\View\View
|
||||
public function duplicate(News $news): View
|
||||
{
|
||||
return $this->create($news->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,18 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\NewsCorporates\StoreNewsCorporateRequest;
|
||||
use App\Http\Requests\Bo\NewsCorporates\UpdateNewsCorporateRequest;
|
||||
use App\Models\NewsCorporate;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class NewsCorporateController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -27,11 +29,8 @@ class NewsCorporateController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $newsCorporateModels */
|
||||
$newsCorporateModels = NewsCorporate::query();
|
||||
|
|
@ -62,22 +61,16 @@ class NewsCorporateController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\NewsCorporate $newsCorporate
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(NewsCorporate $newsCorporate): \Illuminate\Contracts\View\View
|
||||
public function create(NewsCorporate $newsCorporate): View
|
||||
{
|
||||
return view('bo.pages.news_corporates.create', ['newsCorporateModel' => $newsCorporate]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsCorporates\StoreNewsCorporateRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreNewsCorporateRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreNewsCorporateRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$newsCorporate = new NewsCorporate();
|
||||
|
|
@ -86,72 +79,61 @@ class NewsCorporateController extends Controller
|
|||
if ($newsCorporate->saveOrFail()) {
|
||||
return redirect()->route('bo.news_corporates.edit', $newsCorporate)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsCorporate $newsCorporate
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(NewsCorporate $newsCorporate): \Illuminate\Contracts\View\View
|
||||
public function show(NewsCorporate $newsCorporate): View
|
||||
{
|
||||
return view('bo.pages.news_corporates.show', ['newsCorporateModel' => $newsCorporate]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsCorporate $newsCorporate
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(NewsCorporate $newsCorporate): \Illuminate\Contracts\View\View
|
||||
public function edit(NewsCorporate $newsCorporate): View
|
||||
{
|
||||
return view('bo.pages.news_corporates.edit', ['newsCorporateModel' => $newsCorporate]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\NewsCorporates\UpdateNewsCorporateRequest $request
|
||||
* @param \App\Models\NewsCorporate $newsCorporate
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateNewsCorporateRequest $request,
|
||||
NewsCorporate $newsCorporate
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $newsCorporate) {
|
||||
$newsCorporate->fill($request->validated());
|
||||
|
||||
if ($newsCorporate->saveOrFail()) {
|
||||
return redirect()->route('bo.news_corporates.edit', $newsCorporate)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.news_corporates.edit', $newsCorporate)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\NewsCorporate $newsCorporate
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(NewsCorporate $newsCorporate): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(NewsCorporate $newsCorporate): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -159,22 +141,20 @@ class NewsCorporateController extends Controller
|
|||
if ($newsCorporate->deleteOrFail()) {
|
||||
return redirect()->route('bo.news_corporates.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_corporate', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\NewsCorporate $newsCorporate
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(NewsCorporate $newsCorporate): \Illuminate\Contracts\View\View
|
||||
public function duplicate(NewsCorporate $newsCorporate): View
|
||||
{
|
||||
return $this->create($newsCorporate->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Requests\Bo\Offers\StoreOfferRequest;
|
|||
use App\Http\Requests\Bo\Offers\UpdateOfferRequest;
|
||||
use App\Models\Offer;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -25,11 +27,8 @@ class OfferController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $offerModels */
|
||||
$offerModels = Offer::query();
|
||||
|
|
@ -59,33 +58,24 @@ class OfferController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Offer $offer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Offer $offer): \Illuminate\Contracts\View\View
|
||||
public function show(Offer $offer): View
|
||||
{
|
||||
return view('bo.pages.offers.show', ['offerModel' => $offer]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Offer $offer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Offer $offer): \Illuminate\Contracts\View\View
|
||||
public function create(Offer $offer): View
|
||||
{
|
||||
return view('bo.pages.offers.create', ['offerModel' => $offer]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Offers\StoreOfferRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreOfferRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreOfferRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$offer = new Offer();
|
||||
|
|
@ -94,35 +84,29 @@ class OfferController extends Controller
|
|||
if ($offer->saveOrFail()) {
|
||||
return redirect()->route('bo.offers.edit', $offer)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.offer'))
|
||||
'model' => Str::ucfirst(trans('models.classes.offer')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.offer'))
|
||||
'model' => Str::ucfirst(trans('models.classes.offer')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Offer $offer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Offer $offer): \Illuminate\Contracts\View\View
|
||||
public function edit(Offer $offer): View
|
||||
{
|
||||
return view('bo.pages.offers.edit', ['offerModel' => $offer]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Offers\UpdateOfferRequest $request
|
||||
* @param \App\Models\Offer $offer
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateOfferRequest $request, Offer $offer): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateOfferRequest $request, Offer $offer): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $offer) {
|
||||
$offer->fill($request->validated());
|
||||
|
|
@ -130,23 +114,21 @@ class OfferController extends Controller
|
|||
if ($offer->saveOrFail()) {
|
||||
return redirect()->route('bo.offers.edit', $offer)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.offer'))
|
||||
'model' => Str::ucfirst(trans('models.classes.offer')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.offers.edit', $offer)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.offer'))
|
||||
'model' => Str::ucfirst(trans('models.classes.offer')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Offer $offer
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Offer $offer): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Offer $offer): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -154,22 +136,20 @@ class OfferController extends Controller
|
|||
if ($offer->deleteOrFail()) {
|
||||
return redirect()->route('bo.offers.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.offer'))
|
||||
'model' => Str::ucfirst(trans('models.classes.offer')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.offer'))
|
||||
'model' => Str::ucfirst(trans('models.classes.offer')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Offer $offer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Offer $offer): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Offer $offer): View
|
||||
{
|
||||
return $this->create($offer->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,8 @@ use Illuminate\Http\JsonResponse;
|
|||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Laravel\Octane\Exceptions\DdException;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
use Laravel\Octane\Exceptions\DdException;
|
||||
|
||||
class PictoController extends Controller
|
||||
{
|
||||
|
|
@ -39,12 +38,12 @@ class PictoController extends Controller
|
|||
$query->orderBy($sortCol, $sortWay);
|
||||
|
||||
$pictos = $query->get();
|
||||
|
||||
return view('bo.pages.pictos.index-list', compact('pictos'));
|
||||
}
|
||||
abort(404);
|
||||
}
|
||||
|
||||
|
||||
public function create(Picto $picto)
|
||||
{
|
||||
return view('bo.pages.pictos.create', [
|
||||
|
|
@ -55,9 +54,10 @@ class PictoController extends Controller
|
|||
/**
|
||||
* Store Picto.
|
||||
*
|
||||
* @param StorePictoRequest $request Request
|
||||
* @param PictoService $pictoService Service for Picto.
|
||||
* @param StorePictoRequest $request Request
|
||||
* @param PictoService $pictoService Service for Picto.
|
||||
* @return RedirectResponse
|
||||
*
|
||||
* @throws DdException
|
||||
*/
|
||||
public function store(StorePictoRequest $request, PictoService $pictoService)
|
||||
|
|
@ -83,8 +83,6 @@ class PictoController extends Controller
|
|||
/**
|
||||
* Show the form for editing the specified picto (AJAX returns a partial view).
|
||||
*
|
||||
* @param \App\Models\Picto $picto
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Picto $picto, Request $request)
|
||||
|
|
@ -95,14 +93,13 @@ class PictoController extends Controller
|
|||
'section' => $picto->section,
|
||||
]);
|
||||
}
|
||||
|
||||
return view('bo.pages.pictos.edit', ['pictoModel' => $picto, 'section' => $picto->section]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified picto in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Pictos\StorePictoRequest $request
|
||||
* @param \App\Models\Picto $picto
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function update(StorePictoRequest $request, Picto $picto)
|
||||
|
|
@ -126,12 +123,8 @@ class PictoController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Save the picture width and height for a picto.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function savePictureSize(Request $request): JsonResponse
|
||||
{
|
||||
|
|
@ -151,11 +144,9 @@ class PictoController extends Controller
|
|||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified picto and return the refreshed picto list.
|
||||
*
|
||||
* @param \App\Models\Picto $picto
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function destroy(Picto $picto)
|
||||
|
|
@ -171,7 +162,7 @@ class PictoController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function changeOrder(UpdateChangeOrderRequest $request, Picto $picto): \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
|
||||
public function changeOrder(UpdateChangeOrderRequest $request, Picto $picto): JsonResponse | RedirectResponse
|
||||
{
|
||||
$tmp = Picto::query()
|
||||
->where('section_id', $picto->section_id)
|
||||
|
|
@ -179,7 +170,7 @@ class PictoController extends Controller
|
|||
->orderBy('order', $request->direction ? 'DESC' : 'ASC')
|
||||
->first();
|
||||
|
||||
if (!$tmp) {
|
||||
if (! $tmp) {
|
||||
return $request->ajax()
|
||||
? response()->json(['message' => trans('crud.messages.order_not_changed')], 422)
|
||||
: back()->with('error', trans('crud.messages.order_not_changed'));
|
||||
|
|
@ -192,6 +183,7 @@ class PictoController extends Controller
|
|||
});
|
||||
|
||||
$msg = trans('crud.messages.order_changed');
|
||||
|
||||
return $request->ajax()
|
||||
? response()->json(['message' => $msg])
|
||||
: back()->with('success', $msg);
|
||||
|
|
|
|||
|
|
@ -15,18 +15,21 @@ use App\Models\ProductType;
|
|||
use App\Models\Range;
|
||||
use App\Models\Submeat;
|
||||
use App\Models\Subrange;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class ProductController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -38,11 +41,8 @@ class ProductController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $productModels */
|
||||
$productModels = Product::query()->with('ratings')->withAvg('ratings', 'rate');
|
||||
|
|
@ -58,7 +58,7 @@ class ProductController extends Controller
|
|||
);
|
||||
}
|
||||
$searchFields = \implode(', ', [
|
||||
trans('validation.custom.label')
|
||||
trans('validation.custom.label'),
|
||||
]);
|
||||
|
||||
/** Sort columns with a query */
|
||||
|
|
@ -72,22 +72,16 @@ class ProductController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Product $product
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Product $product): \Illuminate\Contracts\View\View
|
||||
public function show(Product $product): View
|
||||
{
|
||||
return view('bo.pages.products.show', ['productModel' => $product]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Product $product
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Product $product): \Illuminate\Contracts\View\View
|
||||
public function create(Product $product): View
|
||||
{
|
||||
return view('bo.pages.products.create', [
|
||||
'productModel' => $product,
|
||||
|
|
@ -110,11 +104,8 @@ class ProductController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Products\StoreProductRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreProductRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreProductRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$product = new Product();
|
||||
|
|
@ -123,7 +114,6 @@ class ProductController extends Controller
|
|||
['labels', 'productTypes', 'claims', 'nutritionnal_values']
|
||||
));
|
||||
|
||||
|
||||
if ($product->saveOrFail()) {
|
||||
$product->labels()->sync(collect($request->validated()['labels'] ?? [])->pluck('id'));
|
||||
$product->productTypes()->sync(collect($request->validated()['productTypes'] ?? [])->pluck('id'));
|
||||
|
|
@ -136,24 +126,22 @@ class ProductController extends Controller
|
|||
if ($nutritionnalValueModel->saveOrFail()) {
|
||||
return redirect()->route('bo.products.edit', $product)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.product'))
|
||||
'model' => Str::ucfirst(trans('models.classes.product')),
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.product'))
|
||||
'model' => Str::ucfirst(trans('models.classes.product')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Product $product
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Product $product): \Illuminate\Contracts\View\View
|
||||
public function edit(Product $product): View
|
||||
{
|
||||
return view('bo.pages.products.edit', [
|
||||
'productModel' => $product,
|
||||
|
|
@ -177,12 +165,8 @@ class ProductController extends Controller
|
|||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Products\UpdateProductRequest $request
|
||||
* @param \App\Models\Product $product
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateProductRequest $request, Product $product): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateProductRequest $request, Product $product): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $product) {
|
||||
$product->fill(Arr::except(
|
||||
|
|
@ -203,23 +187,21 @@ class ProductController extends Controller
|
|||
if ($product->saveOrFail() && $nutritionnalValueModel->saveOrFail()) {
|
||||
return redirect()->route('bo.products.edit', $product)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.product'))
|
||||
'model' => Str::ucfirst(trans('models.classes.product')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.products.edit', $product)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.product'))
|
||||
'model' => Str::ucfirst(trans('models.classes.product')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Product $product
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Product $product): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Product $product): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -227,37 +209,31 @@ class ProductController extends Controller
|
|||
if ($product->deleteOrFail()) {
|
||||
return redirect()->route('bo.products.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.product'))
|
||||
'model' => Str::ucfirst(trans('models.classes.product')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.product'))
|
||||
'model' => Str::ucfirst(trans('models.classes.product')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Product $product
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Product $product): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Product $product): View
|
||||
{
|
||||
return $this->create($product->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @param string $fieldName
|
||||
* @return \Illuminate\Pagination\LengthAwarePaginator
|
||||
*/
|
||||
private function getModelsPaginate(
|
||||
Builder $query,
|
||||
string $fieldName = "label"
|
||||
): \Illuminate\Pagination\LengthAwarePaginator {
|
||||
string $fieldName = 'label'
|
||||
): LengthAwarePaginator {
|
||||
return $query->where('published', true)
|
||||
->orderBy($fieldName, 'ASC')
|
||||
->paginate(10);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Requests\Bo\ProductTypes\StoreProductTypeRequest;
|
|||
use App\Http\Requests\Bo\ProductTypes\UpdateProductTypeRequest;
|
||||
use App\Models\ProductType;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -25,11 +27,8 @@ class ProductTypeController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $productTypeModels */
|
||||
$productTypeModels = ProductType::query();
|
||||
|
|
@ -61,33 +60,24 @@ class ProductTypeController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(ProductType $productType): \Illuminate\Contracts\View\View
|
||||
public function show(ProductType $productType): View
|
||||
{
|
||||
return view('bo.pages.product_types.show', ['productTypeModel' => $productType]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(ProductType $productType): \Illuminate\Contracts\View\View
|
||||
public function create(ProductType $productType): View
|
||||
{
|
||||
return view('bo.pages.product_types.create', ['productTypeModel' => $productType]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\ProductTypes\StoreProductTypeRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreProductTypeRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreProductTypeRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$productTypeModel = new ProductType();
|
||||
|
|
@ -95,60 +85,52 @@ class ProductTypeController extends Controller
|
|||
if ($productTypeModel->saveOrFail()) {
|
||||
return redirect()->route('bo.product_types.edit', $productTypeModel)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(ProductType $productType): \Illuminate\Contracts\View\View
|
||||
public function edit(ProductType $productType): View
|
||||
{
|
||||
return view('bo.pages.product_types.edit', ['productTypeModel' => $productType]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\ProductTypes\UpdateProductTypeRequest $request
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateProductTypeRequest $request,
|
||||
ProductType $productType
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $productType) {
|
||||
$productType->fill($request->validated());
|
||||
if ($productType->saveOrFail()) {
|
||||
return redirect()->route('bo.product_types.edit', $productType)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.product_types.edit', $productType)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(ProductType $productType): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(ProductType $productType): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -156,22 +138,20 @@ class ProductTypeController extends Controller
|
|||
if ($productType->deleteOrFail()) {
|
||||
return redirect()->route('bo.product_types.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.product_type', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(ProductType $productType): \Illuminate\Contracts\View\View
|
||||
public function duplicate(ProductType $productType): View
|
||||
{
|
||||
return $this->create($productType->replicate());
|
||||
}
|
||||
|
|
@ -179,12 +159,12 @@ class ProductTypeController extends Controller
|
|||
/**
|
||||
* Change model button status.
|
||||
*
|
||||
* @param \App\Models\ProductType $productType
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function changeButtonStatus(ProductType $productType)
|
||||
{
|
||||
$productType->update(['button_status' => !$productType->getOriginal('button_status')]);
|
||||
$productType->update(['button_status' => ! $productType->getOriginal('button_status')]);
|
||||
|
||||
return redirect()->back()->with('success', trans('crud.messages.publish_status_saved'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Requests\Bo\Professions\StoreProfessionRequest;
|
|||
use App\Http\Requests\Bo\Professions\UpdateProfessionRequest;
|
||||
use App\Models\Profession;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -25,11 +27,8 @@ class ProfessionController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $professionModels */
|
||||
$professionModels = Profession::query();
|
||||
|
|
@ -65,33 +64,24 @@ class ProfessionController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Profession $profession
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Profession $profession): \Illuminate\Contracts\View\View
|
||||
public function show(Profession $profession): View
|
||||
{
|
||||
return view('bo.pages.professions.show', ['professionModel' => $profession]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Profession $profession
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Profession $profession): \Illuminate\Contracts\View\View
|
||||
public function create(Profession $profession): View
|
||||
{
|
||||
return view('bo.pages.professions.create', ['professionModel' => $profession]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Professions\StoreProfessionRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreProfessionRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreProfessionRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$profession = new Profession();
|
||||
|
|
@ -100,35 +90,29 @@ class ProfessionController extends Controller
|
|||
if ($profession->saveOrFail()) {
|
||||
return redirect()->route('bo.professions.edit', $profession)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.profession'))
|
||||
'model' => Str::ucfirst(trans('models.classes.profession')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.profession'))
|
||||
'model' => Str::ucfirst(trans('models.classes.profession')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Profession $profession
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Profession $profession): \Illuminate\Contracts\View\View
|
||||
public function edit(Profession $profession): View
|
||||
{
|
||||
return view('bo.pages.professions.edit', ['professionModel' => $profession]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Professions\UpdateProfessionRequest $request
|
||||
* @param \App\Models\Profession $profession
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateProfessionRequest $request, Profession $profession): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateProfessionRequest $request, Profession $profession): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $profession) {
|
||||
$profession->fill($request->validated());
|
||||
|
|
@ -136,23 +120,21 @@ class ProfessionController extends Controller
|
|||
if ($profession->saveOrFail()) {
|
||||
return redirect()->route('bo.professions.edit', $profession)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.profession'))
|
||||
'model' => Str::ucfirst(trans('models.classes.profession')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.professions.edit', $profession)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.profession'))
|
||||
'model' => Str::ucfirst(trans('models.classes.profession')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Profession $profession
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Profession $profession): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Profession $profession): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -160,22 +142,20 @@ class ProfessionController extends Controller
|
|||
if ($profession->deleteOrFail()) {
|
||||
return redirect()->route('bo.professions.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.profession'))
|
||||
'model' => Str::ucfirst(trans('models.classes.profession')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.profession'))
|
||||
'model' => Str::ucfirst(trans('models.classes.profession')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Profession $profession
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Profession $profession): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Profession $profession): View
|
||||
{
|
||||
return $this->create($profession->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,14 +10,16 @@ use App\Models\Range;
|
|||
use App\Models\Subrange;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class RangeController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -29,11 +31,8 @@ class RangeController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $rangeModels */
|
||||
$rangeModels = Range::query()->with('subranges:id,range_id');
|
||||
|
|
@ -67,34 +66,24 @@ class RangeController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\Range $range
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Range $range): \Illuminate\Contracts\View\View
|
||||
public function show(Range $range): View
|
||||
{
|
||||
return view('bo.pages.ranges.show', ['rangeModel' => $range]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Range $range
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Range $range): \Illuminate\Contracts\View\View
|
||||
public function create(Range $range): View
|
||||
{
|
||||
return view('bo.pages.ranges.create', ['rangeModel' => $range]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Ranges\StoreRangeRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreRangeRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreRangeRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$range = new Range();
|
||||
|
|
@ -103,61 +92,53 @@ class RangeController extends Controller
|
|||
if ($range->saveOrFail()) {
|
||||
return redirect()->route('bo.ranges.edit', $range)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.range'))
|
||||
'model' => Str::ucFirst(trans('models.classes.range')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.range'))
|
||||
'model' => Str::ucFirst(trans('models.classes.range')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Range $range
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Range $range): \Illuminate\Contracts\View\View
|
||||
public function edit(Range $range): View
|
||||
{
|
||||
return view('bo.pages.ranges.edit', ['rangeModel' => $range]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Ranges\UpdateRangeRequest $request
|
||||
* @param \App\Models\Range $range
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateRangeRequest $request,
|
||||
Range $range
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $range) {
|
||||
$range->fill($request->validated());
|
||||
|
||||
if ($range->saveOrFail()) {
|
||||
return redirect()->route('bo.ranges.edit', $range)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.range'))
|
||||
'model' => Str::ucFirst(trans('models.classes.range')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.ranges.edit', $range)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.range'))
|
||||
'model' => Str::ucFirst(trans('models.classes.range')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Range $range
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Range $range): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Range $range): RedirectResponse
|
||||
{
|
||||
// We can't delete a range with associated subranges.
|
||||
/** @var \Illuminate\Database\Eloquent\Collection $subranges */
|
||||
|
|
@ -174,57 +155,47 @@ class RangeController extends Controller
|
|||
if ($range->deleteOrFail()) {
|
||||
return redirect()->route('bo.ranges.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.range'))
|
||||
'model' => Str::ucFirst(trans('models.classes.range')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.range'))
|
||||
'model' => Str::ucFirst(trans('models.classes.range')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Range $range
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Range $range): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Range $range): View
|
||||
{
|
||||
return $this->create($range->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form to edit subranges order.
|
||||
*
|
||||
* @param \App\Models\Range $range
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function editSubrangesOrder(Range $range): \Illuminate\Contracts\View\View
|
||||
public function editSubrangesOrder(Range $range): View
|
||||
{
|
||||
$subranges = $range->subranges()->orderBy('order')->get();
|
||||
$ranges = Range::query()->get(['id', 'label']);
|
||||
|
||||
return view('bo.pages.submodels_order.edit', [
|
||||
'modelName' => 'range',
|
||||
'model' => $range,
|
||||
'models' => $ranges,
|
||||
'submodels' => $subranges
|
||||
'submodels' => $subranges,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updated the order of subranges related to a given range.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Ranges\UpdateSubmodelsOrderRequest $request
|
||||
* @param \App\Models\Range $range
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function updateSubrangesOrder(
|
||||
UpdateSubmodelsOrderRequest $request,
|
||||
Range $range
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
$oldList = $range->subranges()->orderBy('order')->get();
|
||||
$newList = (json_decode($request->get('jsonValue'), true));
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ use App\Models\Product;
|
|||
use App\Models\Recipe;
|
||||
use App\Models\Video;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -29,11 +31,8 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $recipeModels */
|
||||
$recipeModels = Recipe::query()->with('ratings')->withAvg('ratings', 'rate');
|
||||
|
|
@ -69,30 +68,26 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Recipe $recipe): \Illuminate\Contracts\View\View
|
||||
public function show(Recipe $recipe): View
|
||||
{
|
||||
$productModels = Product::query()->where('published', true)->get();
|
||||
|
||||
return view('bo.pages.recipes.show', [
|
||||
'recipeModel' => $recipe,
|
||||
'recipeModel' => $recipe,
|
||||
'productModels' => $productModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Recipe $recipe): \Illuminate\Contracts\View\View
|
||||
public function create(Recipe $recipe): View
|
||||
{
|
||||
$productModels = Product::query()->where('published', true)->orderBy('label', 'ASC')->paginate(12);
|
||||
$videoModels = Video::query()->where('published', true)->orderBy('order', 'ASC')->paginate(10);
|
||||
$consumptionMomentModels = ConsumptionMoment::query()->orderBy('title', 'ASC')->paginate(10);
|
||||
|
||||
return view('bo.pages.recipes.create', [
|
||||
'recipeModel' => $recipe,
|
||||
'productModels' => $productModels,
|
||||
|
|
@ -103,11 +98,8 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Recipes\StoreRecipeRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreRecipeRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreRecipeRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$recipe = new Recipe();
|
||||
|
|
@ -115,29 +107,29 @@ class RecipeController extends Controller
|
|||
|
||||
if ($recipe->saveOrFail()) {
|
||||
$recipe->products()->sync($request->products);
|
||||
|
||||
return redirect()->route('bo.recipes.edit', $recipe)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe'))
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe'))
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Recipe $recipe): \Illuminate\Contracts\View\View
|
||||
public function edit(Recipe $recipe): View
|
||||
{
|
||||
$productModels = Product::query()->where('published', true)->orderBy('label', 'ASC')->paginate(12);
|
||||
$videoModels = Video::query()->where('published', true)->orderBy('title', 'ASC')->paginate(10);
|
||||
$consumptionMomentModels = ConsumptionMoment::query()->orderBy('title', 'ASC')->paginate(10);
|
||||
|
||||
return view('bo.pages.recipes.edit', [
|
||||
'recipeModel' => $recipe,
|
||||
'productModels' => $productModels,
|
||||
|
|
@ -148,12 +140,8 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Recipes\UpdateRecipeRequest $request
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateRecipeRequest $request, Recipe $recipe): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateRecipeRequest $request, Recipe $recipe): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $recipe) {
|
||||
$recipe->fill(Arr::except($request->validated(), ['products']));
|
||||
|
|
@ -163,23 +151,21 @@ class RecipeController extends Controller
|
|||
if ($recipe->saveOrFail()) {
|
||||
return redirect()->route('bo.recipes.edit', $recipe)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe'))
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.recipes.edit', $recipe)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe'))
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Recipe $recipe): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Recipe $recipe): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -187,22 +173,20 @@ class RecipeController extends Controller
|
|||
if ($recipe->deleteOrFail()) {
|
||||
return redirect()->route('bo.recipes.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe'))
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe'))
|
||||
'model' => Str::ucfirst(trans('models.classes.recipe')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Recipe $recipe): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Recipe $recipe): View
|
||||
{
|
||||
return $this->create($recipe->replicate());
|
||||
}
|
||||
|
|
@ -210,7 +194,6 @@ class RecipeController extends Controller
|
|||
/**
|
||||
* Change recipe highlight.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipe
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function changeHighlight(Recipe $recipe)
|
||||
|
|
@ -223,6 +206,7 @@ class RecipeController extends Controller
|
|||
}
|
||||
$recipe->highlight = true;
|
||||
$recipe->saveQuietly();
|
||||
|
||||
return redirect()->back()->with('success', trans('crud.messages.highlight_status_saved'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\SectionApproaches\SectionApproachRequest;
|
||||
use App\Models\SectionApproach;
|
||||
use App\Services\SectionApproach\SectionApproachService;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -24,11 +27,8 @@ class SectionApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
$sections = SectionApproach::with(['category', 'page']);
|
||||
$formData = $this->sectionApproachService->getFormData();
|
||||
|
|
@ -57,11 +57,8 @@ class SectionApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\SectionApproach $section_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(SectionApproach $section_approach): \Illuminate\Contracts\View\View
|
||||
public function create(SectionApproach $section_approach): View
|
||||
{
|
||||
$formData = $this->sectionApproachService->getFormData();
|
||||
|
||||
|
|
@ -74,11 +71,8 @@ class SectionApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\SectionApproaches\SectionApproachRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(SectionApproachRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(SectionApproachRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
try {
|
||||
|
|
@ -95,13 +89,10 @@ class SectionApproachController extends Controller
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\SectionApproach $section_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(SectionApproach $section_approach): \Illuminate\Contracts\View\View
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show(SectionApproach $section_approach): View
|
||||
{
|
||||
return view(
|
||||
'bo.pages.sections_approaches.show',
|
||||
|
|
@ -111,13 +102,11 @@ class SectionApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\SectionApproach $section_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(SectionApproach $section_approach): \Illuminate\Contracts\View\View
|
||||
public function edit(SectionApproach $section_approach): View
|
||||
{
|
||||
$formData = $this->sectionApproachService->getFormData();
|
||||
|
||||
return view(
|
||||
'bo.pages.sections_approaches.edit',
|
||||
['sectionApproachModel' => $section_approach]
|
||||
|
|
@ -126,12 +115,8 @@ class SectionApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\SectionApproaches\SectionApproachRequest $request
|
||||
* @param \App\Models\SectionApproach $section_approach
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(SectionApproachRequest $request, SectionApproach $section_approach): \Illuminate\Http\RedirectResponse
|
||||
public function update(SectionApproachRequest $request, SectionApproach $section_approach): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $section_approach) {
|
||||
try {
|
||||
|
|
@ -148,13 +133,10 @@ class SectionApproachController extends Controller
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param SectionApproach $section_approach
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(SectionApproach $section_approach): \Illuminate\Http\RedirectResponse
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(SectionApproach $section_approach): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($section_approach) {
|
||||
try {
|
||||
|
|
@ -173,23 +155,16 @@ class SectionApproachController extends Controller
|
|||
|
||||
/**
|
||||
* Duplicate the specified section approach by pre-filling the create form.
|
||||
*
|
||||
* @param SectionApproach $section_approach
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
|
||||
*/
|
||||
public function duplicate(SectionApproach $section_approach): \Illuminate\Contracts\View\View
|
||||
public function duplicate(SectionApproach $section_approach): View
|
||||
{
|
||||
return $this->create($section_approach->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a paginate resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function jsonPaginatePage(Request $request): \Illuminate\Http\JsonResponse
|
||||
/**
|
||||
* Get a paginate resource.
|
||||
*/
|
||||
public function jsonPaginatePage(Request $request): JsonResponse
|
||||
{
|
||||
$staticPageModel = $request->targetModel::whereIn('type', [
|
||||
StaticPageType::ouiCBon,
|
||||
|
|
|
|||
|
|
@ -13,13 +13,11 @@ class SectionPageController extends Controller
|
|||
{
|
||||
public function __construct(
|
||||
private readonly SectionPageService $service
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all sections for a given static page.
|
||||
*
|
||||
* @param StaticPage $page
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index(StaticPage $page): JsonResponse
|
||||
{
|
||||
|
|
@ -30,9 +28,6 @@ class SectionPageController extends Controller
|
|||
|
||||
/**
|
||||
* Return a single section.
|
||||
*
|
||||
* @param SectionPage $section
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function show(SectionPage $section): JsonResponse
|
||||
{
|
||||
|
|
@ -44,10 +39,6 @@ class SectionPageController extends Controller
|
|||
/**
|
||||
* Update an existing section.
|
||||
* Merges uploaded files into the validated data before updating.
|
||||
*
|
||||
* @param UpdateSectionPageRequest $request
|
||||
* @param SectionPage $sectionPage
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(UpdateSectionPageRequest $request, SectionPage $sectionPage): JsonResponse
|
||||
{
|
||||
|
|
@ -67,15 +58,12 @@ class SectionPageController extends Controller
|
|||
|
||||
return response()->json([
|
||||
'message' => 'Section mise à jour',
|
||||
'data' => $sectionPage,
|
||||
'data' => $sectionPage,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle the visibility of a section.
|
||||
*
|
||||
* @param SectionPage $section
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function toggleVisibility(SectionPage $section): JsonResponse
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Requests\Bo\SellItems\StoreSellItemRequest;
|
|||
use App\Http\Requests\Bo\SellItems\UpdateSellItemRequest;
|
||||
use App\Models\SellItem;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -25,11 +27,8 @@ class SellItemController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $query */
|
||||
$query = SellItem::query();
|
||||
|
|
@ -59,33 +58,24 @@ class SellItemController extends Controller
|
|||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*
|
||||
* @param \App\Models\SellItem $sellItem
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(SellItem $sellItem): \Illuminate\Contracts\View\View
|
||||
public function show(SellItem $sellItem): View
|
||||
{
|
||||
return view('bo.pages.sell_items.show', ['sellItemModel' => $sellItem]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\SellItem $sellItem
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(SellItem $sellItem): \Illuminate\Contracts\View\View
|
||||
public function create(SellItem $sellItem): View
|
||||
{
|
||||
return view('bo.pages.sell_items.create', ['sellItemModel' => $sellItem]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\SellItems\StoreSellItemRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreSellItemRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreSellItemRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$sellItemModel = new SellItem();
|
||||
|
|
@ -94,35 +84,29 @@ class SellItemController extends Controller
|
|||
if ($sellItemModel->saveOrFail()) {
|
||||
return redirect()->route('bo.sell_items.edit', $sellItemModel)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\SellItem $sellItem
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(SellItem $sellItem): \Illuminate\Contracts\View\View
|
||||
public function edit(SellItem $sellItem): View
|
||||
{
|
||||
return view('bo.pages.sell_items.edit', ['sellItemModel' => $sellItem]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\SellItems\UpdateSellItemRequest $request
|
||||
* @param \App\Models\SellItem $sellItem
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateSellItemRequest $request, SellItem $sellItem): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateSellItemRequest $request, SellItem $sellItem): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $sellItem) {
|
||||
$sellItem->fill($request->validated());
|
||||
|
|
@ -130,23 +114,21 @@ class SellItemController extends Controller
|
|||
if ($sellItem->saveOrFail()) {
|
||||
return redirect()->route('bo.sell_items.edit', $sellItem)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.sell_items.edit', $sellItem)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\SellItem $sellItem
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(SellItem $sellItem): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(SellItem $sellItem): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -154,22 +136,20 @@ class SellItemController extends Controller
|
|||
if ($sellItem->deleteOrFail()) {
|
||||
return redirect()->route('bo.sell_items.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.sell_item', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\SellItem $sellItem
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(SellItem $sellItem): \Illuminate\Contracts\View\View
|
||||
public function duplicate(SellItem $sellItem): View
|
||||
{
|
||||
return $this->create($sellItem->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Bo\StaticPages\UpdateCommonSectionRequest;
|
||||
use App\Http\Requests\Bo\StaticPages\UpdateStaticPageRequest;
|
||||
use App\Models\StaticPage;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -24,11 +25,8 @@ class StaticPageController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\StaticPage $static_page
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(StaticPage $static_page): \Illuminate\Contracts\View\View
|
||||
public function edit(StaticPage $static_page): View
|
||||
{
|
||||
$hasSections = in_array(
|
||||
$static_page->type,
|
||||
|
|
@ -45,15 +43,10 @@ class StaticPageController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\StaticPages\UpdateStaticPageRequest $request
|
||||
* @param \App\Models\StaticPage $static_page
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateStaticPageRequest $request, StaticPage $static_page): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateStaticPageRequest $request, StaticPage $static_page): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $static_page) {
|
||||
$validated = $request->validated();
|
||||
|
|
@ -74,27 +67,25 @@ class StaticPageController extends Controller
|
|||
if ($static_page->saveOrFail()) {
|
||||
return redirect()->route('bo.static_pages.edit', $static_page)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.static_page', 1))
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.static_page', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.static_pages.edit', $static_page)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.static_page', 1))
|
||||
'model' => Str::ucfirst(\trans_choice('models.classes.static_page', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display the common section edit form for all breeding static pages.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getCommonSection(): \Illuminate\Contracts\View\View
|
||||
public function getCommonSection(): View
|
||||
{
|
||||
$commonSection = StaticPage::whereIn('type', StaticPageType::getBreedingValues())
|
||||
->get()
|
||||
->map(fn($page) => $page->data['common_section'] ?? null)
|
||||
->map(fn ($page) => $page->data['common_section'] ?? null)
|
||||
->filter()
|
||||
->first();
|
||||
|
||||
|
|
@ -105,9 +96,6 @@ class StaticPageController extends Controller
|
|||
|
||||
/**
|
||||
* Update the common section for all breeding static pages.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\StaticPages\UpdateCommonSectionRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function updateCommonSection(UpdateCommonSectionRequest $request): RedirectResponse
|
||||
{
|
||||
|
|
@ -133,12 +121,12 @@ class StaticPageController extends Controller
|
|||
->withInput()
|
||||
->with('error', __('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part'))]));
|
||||
}//end try
|
||||
}// end try
|
||||
|
||||
return redirect()
|
||||
->route('bo.static_page.sections.edit')
|
||||
->with('success', __('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part'))
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part')),
|
||||
]));
|
||||
}
|
||||
|
||||
|
|
@ -165,27 +153,25 @@ class StaticPageController extends Controller
|
|||
->back()
|
||||
->withInput()
|
||||
->with('error', __('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part'))
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part')),
|
||||
]));
|
||||
} //end try
|
||||
} // end try
|
||||
|
||||
return redirect()
|
||||
->route('bo.static_page.commitmments.sections.edit')
|
||||
->with('success', __('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part'))
|
||||
'model' => Str::ucfirst(__('validation.custom.common_section_part')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the common section edit form for all breeding static pages.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getCommitmentsCommonSection(): \Illuminate\Contracts\View\View
|
||||
public function getCommitmentsCommonSection(): View
|
||||
{
|
||||
$commonSection = StaticPage::whereIn('type', StaticPageType::getCommitmentsPages())
|
||||
->get()
|
||||
->map(fn($page) => $page->data['common_section'] ?? null)
|
||||
->map(fn ($page) => $page->data['common_section'] ?? null)
|
||||
->filter()
|
||||
->first();
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ use App\Http\Requests\Bo\Submeats\UpdateSubmeatRequest;
|
|||
use App\Models\Meat;
|
||||
use App\Models\Submeat;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -26,11 +28,8 @@ class SubmeatController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $submeatModels */
|
||||
$submeatModels = Submeat::query()->with('meat');
|
||||
|
|
@ -64,39 +63,29 @@ class SubmeatController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\Submeat $submeat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Submeat $submeat): \Illuminate\Contracts\View\View
|
||||
public function show(Submeat $submeat): View
|
||||
{
|
||||
return view('bo.pages.submeats.show', ['submeatModel' => $submeat]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Submeat $submeat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Submeat $submeat): \Illuminate\Contracts\View\View
|
||||
public function create(Submeat $submeat): View
|
||||
{
|
||||
$meatModels = Meat::query()->orderBy('order')->get();
|
||||
|
||||
return view('bo.pages.submeats.create', [
|
||||
'submeatModel' => $submeat,
|
||||
'meatModels' => $meatModels,
|
||||
'meatModels' => $meatModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Submeats\StoreSubmeatRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreSubmeatRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreSubmeatRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$submeat = new Submeat();
|
||||
|
|
@ -105,66 +94,58 @@ class SubmeatController extends Controller
|
|||
if ($submeat->saveOrFail()) {
|
||||
return redirect()->route('bo.submeats.edit', $submeat)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Submeat $submeat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Submeat $submeat): \Illuminate\Contracts\View\View
|
||||
public function edit(Submeat $submeat): View
|
||||
{
|
||||
$meatModels = Meat::query()->orderBy('order')->get();
|
||||
|
||||
return view('bo.pages.submeats.edit', [
|
||||
'submeatModel' => $submeat,
|
||||
'meatModels' => $meatModels,
|
||||
'meatModels' => $meatModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Submeats\UpdateSubmeatRequest $request
|
||||
* @param \App\Models\Submeat $submeat
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateSubmeatRequest $request,
|
||||
Submeat $submeat
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $submeat) {
|
||||
$submeat->fill($request->validated());
|
||||
|
||||
if ($submeat->saveOrFail()) {
|
||||
return redirect()->route('bo.submeats.edit', $submeat)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.submeats.edit', $submeat)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Submeat $submeat
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Submeat $submeat): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Submeat $submeat): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -172,22 +153,20 @@ class SubmeatController extends Controller
|
|||
if ($submeat->deleteOrFail()) {
|
||||
return redirect()->route('bo.submeats.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat'))
|
||||
'model' => Str::ucFirst(trans('models.classes.submeat')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Submeat $submeat
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Submeat $submeat): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Submeat $submeat): View
|
||||
{
|
||||
return $this->create($submeat->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ use App\Http\Requests\Bo\Subranges\UpdateSubrangeRequest;
|
|||
use App\Models\Range;
|
||||
use App\Models\Subrange;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -26,11 +28,8 @@ class SubrangeController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $subrangeModels */
|
||||
$subrangeModels = Subrange::query()->with('range');
|
||||
|
|
@ -64,23 +63,16 @@ class SubrangeController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\Subrange $subrange
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Subrange $subrange): \Illuminate\Contracts\View\View
|
||||
public function show(Subrange $subrange): View
|
||||
{
|
||||
return view('bo.pages.subranges.show', ['subrangeModel' => $subrange]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Subrange $subrange
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Subrange $subrange): \Illuminate\Contracts\View\View
|
||||
public function create(Subrange $subrange): View
|
||||
{
|
||||
$rangeModels = Range::query()->orderBy('order')->get();
|
||||
|
||||
|
|
@ -92,11 +84,8 @@ class SubrangeController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Subranges\StoreSubrangeRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreSubrangeRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreSubrangeRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$subrange = new Subrange();
|
||||
|
|
@ -105,23 +94,21 @@ class SubrangeController extends Controller
|
|||
if ($subrange->saveOrFail()) {
|
||||
return redirect()->route('bo.subranges.edit', $subrange)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange'))
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange'))
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Subrange $subrange
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Subrange $subrange): \Illuminate\Contracts\View\View
|
||||
public function edit(Subrange $subrange): View
|
||||
{
|
||||
$rangeModels = Range::query()->orderBy('order')->get();
|
||||
|
||||
|
|
@ -133,38 +120,32 @@ class SubrangeController extends Controller
|
|||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Subranges\UpdateSubrangeRequest $request
|
||||
* @param \App\Models\Subrange $subrange
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateSubrangeRequest $request,
|
||||
Subrange $subrange
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $subrange) {
|
||||
$subrange->fill($request->validated());
|
||||
|
||||
if ($subrange->saveOrFail()) {
|
||||
return redirect()->route('bo.subranges.edit', $subrange)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange'))
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.subranges.edit', $subrange)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange'))
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Subrange $subrange
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Subrange $subrange): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Subrange $subrange): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -172,22 +153,20 @@ class SubrangeController extends Controller
|
|||
if ($subrange->deleteOrFail()) {
|
||||
return redirect()->route('bo.subranges.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange'))
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange'))
|
||||
'model' => Str::ucFirst(trans('models.classes.subrange')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Subrange $subrange
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Subrange $subrange): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Subrange $subrange): View
|
||||
{
|
||||
return $this->create($subrange->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ use App\Http\Requests\Bo\UpdateChangeOrderRequest;
|
|||
use App\Models\NewsClub;
|
||||
use App\Models\SurveysAnswer;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -30,11 +32,8 @@ class SurveysAnswerController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $query */
|
||||
$query = SurveysAnswer::query()->with('newsClub');
|
||||
|
|
@ -75,29 +74,24 @@ class SurveysAnswerController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\SurveysAnswer $surveysAnswer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(SurveysAnswer $surveysAnswer): \Illuminate\Contracts\View\View
|
||||
public function create(SurveysAnswer $surveysAnswer): View
|
||||
{
|
||||
$newsClubModels = NewsClub::query()
|
||||
->where('published', true)
|
||||
->where('type', NewsClubTypeEnum::survey)
|
||||
->paginate(10);
|
||||
|
||||
return view('bo.pages.surveys_answers.create', [
|
||||
'surveysAnswerModel' => $surveysAnswer,
|
||||
'newsClubModels' => $newsClubModels
|
||||
'newsClubModels' => $newsClubModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\SurveysAnswers\StoreSurveysAnswerRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreSurveysAnswerRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreSurveysAnswerRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$surveysAnswer = new SurveysAnswer();
|
||||
|
|
@ -106,79 +100,69 @@ class SurveysAnswerController extends Controller
|
|||
if ($surveysAnswer->saveOrFail()) {
|
||||
return redirect()->route('bo.surveys_answers.edit', $surveysAnswer)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\SurveysAnswer $surveysAnswer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(SurveysAnswer $surveysAnswer): \Illuminate\Contracts\View\View
|
||||
public function show(SurveysAnswer $surveysAnswer): View
|
||||
{
|
||||
return view('bo.pages.surveys_answers.show', ['surveysAnswerModel' => $surveysAnswer]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\SurveysAnswer $surveysAnswer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(SurveysAnswer $surveysAnswer): \Illuminate\Contracts\View\View
|
||||
public function edit(SurveysAnswer $surveysAnswer): View
|
||||
{
|
||||
$newsClubModels = NewsClub::query()
|
||||
->where('published', true)
|
||||
->where('type', NewsClubTypeEnum::survey)
|
||||
->paginate(10);
|
||||
|
||||
return view('bo.pages.surveys_answers.edit', [
|
||||
'surveysAnswerModel' => $surveysAnswer,
|
||||
'newsClubModels' => $newsClubModels
|
||||
'newsClubModels' => $newsClubModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\SurveysAnswers\UpdateSurveysAnswerRequest $request
|
||||
* @param \App\Models\SurveysAnswer $surveysAnswer
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateSurveysAnswerRequest $request,
|
||||
SurveysAnswer $surveysAnswer
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $surveysAnswer) {
|
||||
$surveysAnswer->fill($request->validated());
|
||||
|
||||
if ($surveysAnswer->saveOrFail()) {
|
||||
return redirect()->route('bo.surveys_answers.edit', $surveysAnswer)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.surveys_answers.edit', $surveysAnswer)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\SurveysAnswer $surveysAnswer
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(SurveysAnswer $surveysAnswer): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(SurveysAnswer $surveysAnswer): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -186,22 +170,20 @@ class SurveysAnswerController extends Controller
|
|||
if ($surveysAnswer->deleteOrFail()) {
|
||||
return redirect()->route('bo.surveys_answers.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1))
|
||||
'model' => Str::ucfirst(trans_choice('models.classes.news_category', 1)),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\SurveysAnswer $surveysAnswer
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(SurveysAnswer $surveysAnswer): \Illuminate\Contracts\View\View
|
||||
public function duplicate(SurveysAnswer $surveysAnswer): View
|
||||
{
|
||||
return $this->create($surveysAnswer->replicate());
|
||||
}
|
||||
|
|
@ -209,23 +191,20 @@ class SurveysAnswerController extends Controller
|
|||
/**
|
||||
* Change order.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\UpdateChangeOrderRequest $request
|
||||
* @param mixed ...$params
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @throws \RuntimeException Si le nom du parametre de la route ne correspond pas au params utilisé.
|
||||
*/
|
||||
public function changeOrder(UpdateChangeOrderRequest $request, mixed ...$params): \Illuminate\Http\RedirectResponse
|
||||
public function changeOrder(UpdateChangeOrderRequest $request, mixed ...$params): RedirectResponse
|
||||
{
|
||||
$paramNames = collect(request()->route()->parameterNames);
|
||||
$className = Str::of($paramNames->get($paramNames->count() - 3))->lower()->studly();
|
||||
$className = "\\App\\Models\\{$className}";
|
||||
$model = Arr::get($params, $paramNames->count() - 3);
|
||||
|
||||
if (!class_exists($className)) {
|
||||
if (! class_exists($className)) {
|
||||
throw new \RuntimeException("The {$className} class doesn't exist.");
|
||||
}
|
||||
|
||||
if (!\is_object($model)) {
|
||||
if (! \is_object($model)) {
|
||||
throw new \RuntimeException("The second last param isn't an object.");
|
||||
}
|
||||
|
||||
|
|
@ -238,9 +217,10 @@ class SurveysAnswerController extends Controller
|
|||
->where($model->getRouteKeyName(), $model->getRouteKey())
|
||||
->first();
|
||||
|
||||
if (!$model) {
|
||||
if (! $model) {
|
||||
return back()->with('error', trans('crud.messages.order_not_changed'));
|
||||
}
|
||||
|
||||
return DB::transaction(function () use ($request, $className, $model) {
|
||||
/** @var \App\Models\NewsClub $newsClubModel */
|
||||
$newsClubModel = request()->route()->parameter('news_club');
|
||||
|
|
@ -253,7 +233,7 @@ class SurveysAnswerController extends Controller
|
|||
->orderBy('order', $request->direction ? 'DESC' : 'ASC')
|
||||
->first();
|
||||
|
||||
if (!$tmp) {
|
||||
if (! $tmp) {
|
||||
return back()->with('error', trans('crud.messages.order_not_changed'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ use App\Http\Requests\Bo\Testimonials\UpdateTestimonialRequest;
|
|||
use App\Models\Meat;
|
||||
use App\Models\Testimonial;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -26,11 +28,8 @@ class TestimonialController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $testimonialModels */
|
||||
$testimonialModels = Testimonial::query();
|
||||
|
|
@ -66,23 +65,16 @@ class TestimonialController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\Testimonial $testimonial
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Testimonial $testimonial): \Illuminate\Contracts\View\View
|
||||
public function show(Testimonial $testimonial): View
|
||||
{
|
||||
return view('bo.pages.testimonials.show', ['testimonialModel' => $testimonial]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Testimonial $testimonial
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Testimonial $testimonial): \Illuminate\Contracts\View\View
|
||||
public function create(Testimonial $testimonial): View
|
||||
{
|
||||
$meatModels = Meat::query()->orderBy('order')->get();
|
||||
|
||||
|
|
@ -94,11 +86,8 @@ class TestimonialController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Testimonials\StoreTestimonialRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreTestimonialRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreTestimonialRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$testimonial = new Testimonial();
|
||||
|
|
@ -107,23 +96,21 @@ class TestimonialController extends Controller
|
|||
if ($testimonial->saveOrFail()) {
|
||||
return redirect()->route('bo.testimonials.edit', $testimonial)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial'))
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial'))
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Testimonial $testimonial
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Testimonial $testimonial): \Illuminate\Contracts\View\View
|
||||
public function edit(Testimonial $testimonial): View
|
||||
{
|
||||
$meatModels = Meat::query()->orderBy('order')->get();
|
||||
|
||||
|
|
@ -135,38 +122,32 @@ class TestimonialController extends Controller
|
|||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Testimonials\UpdateTestimonialRequest $request
|
||||
* @param \App\Models\Testimonial $testimonial
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateTestimonialRequest $request,
|
||||
Testimonial $testimonial
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $testimonial) {
|
||||
$testimonial->fill($request->validated());
|
||||
|
||||
if ($testimonial->saveOrFail()) {
|
||||
return redirect()->route('bo.testimonials.edit', $testimonial)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial'))
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.testimonials.edit', $testimonial)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial'))
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Testimonial $testimonial
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Testimonial $testimonial): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Testimonial $testimonial): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -174,22 +155,20 @@ class TestimonialController extends Controller
|
|||
if ($testimonial->deleteOrFail()) {
|
||||
return redirect()->route('bo.testimonials.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial'))
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial'))
|
||||
'model' => Str::ucFirst(trans('models.classes.testimonial')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Testimonial $testimonial
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Testimonial $testimonial): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Testimonial $testimonial): View
|
||||
{
|
||||
return $this->create($testimonial->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,13 +12,12 @@ class UploadController extends Controller
|
|||
* Upload a file sent in a request.
|
||||
* Used for picture upload in CKEditor.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\UploadFileRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function uploadFile(UploadFileRequest $request)
|
||||
{
|
||||
$modelClass = "App\\Models\\$request->folder";
|
||||
if (!class_exists($modelClass)) {
|
||||
if (! class_exists($modelClass)) {
|
||||
return response()->json(['error' => 'Invalid model class'], 404);
|
||||
}
|
||||
$model = new $modelClass();
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Requests\Bo\Users\StoreUserRequest;
|
|||
use App\Http\Requests\Bo\Users\UpdateUserRequest;
|
||||
use App\Models\User;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -25,11 +27,8 @@ class UserController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $userModels */
|
||||
$userModels = User::query();
|
||||
|
|
@ -65,33 +64,24 @@ class UserController extends Controller
|
|||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(User $user): \Illuminate\Contracts\View\View
|
||||
public function create(User $user): View
|
||||
{
|
||||
return view('bo.pages.users.create', ['userModel' => $user]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(User $user): \Illuminate\Contracts\View\View
|
||||
public function show(User $user): View
|
||||
{
|
||||
return view('bo.pages.users.show', ['userModel' => $user]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Users\StoreUserRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreUserRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreUserRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$user = new User();
|
||||
|
|
@ -100,35 +90,29 @@ class UserController extends Controller
|
|||
if ($user->saveOrFail()) {
|
||||
return redirect()->route('bo.users.edit', $user)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.user'))
|
||||
'model' => Str::ucfirst(trans('models.classes.user')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucfirst(trans('models.classes.user'))
|
||||
'model' => Str::ucfirst(trans('models.classes.user')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(User $user): \Illuminate\Contracts\View\View
|
||||
public function edit(User $user): View
|
||||
{
|
||||
return view('bo.pages.users.edit', ['userModel' => $user]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Users\UpdateUserRequest $request
|
||||
* @param \App\Models\User $user
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateUserRequest $request, User $user): \Illuminate\Http\RedirectResponse
|
||||
public function update(UpdateUserRequest $request, User $user): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request, $user) {
|
||||
$user->fill($request->validated());
|
||||
|
|
@ -136,23 +120,21 @@ class UserController extends Controller
|
|||
if ($user->saveOrFail()) {
|
||||
return redirect()->route('bo.users.edit', $user)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.user'))
|
||||
'model' => Str::ucfirst(trans('models.classes.user')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.users.edit', $user)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('models.classes.user'))
|
||||
'model' => Str::ucfirst(trans('models.classes.user')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(User $user): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(User $user): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -160,22 +142,20 @@ class UserController extends Controller
|
|||
if ($user->deleteOrFail()) {
|
||||
return redirect()->route('bo.users.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.user'))
|
||||
'model' => Str::ucfirst(trans('models.classes.user')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucfirst(trans('models.classes.user'))
|
||||
'model' => Str::ucfirst(trans('models.classes.user')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\User $user
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(User $user): \Illuminate\Contracts\View\View
|
||||
public function duplicate(User $user): View
|
||||
{
|
||||
return $this->create($user->replicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,14 +9,16 @@ use App\Models\Product;
|
|||
use App\Models\Video;
|
||||
use App\Traits\Controllers\ChangesModelOrder;
|
||||
use App\Traits\Controllers\UpdateModelPublished;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class VideoController extends Controller
|
||||
{
|
||||
use UpdateModelPublished;
|
||||
use ChangesModelOrder;
|
||||
use UpdateModelPublished;
|
||||
|
||||
/**
|
||||
* Create the controller instance.
|
||||
|
|
@ -28,11 +30,8 @@ class VideoController extends Controller
|
|||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(Request $request): \Illuminate\Contracts\View\View
|
||||
public function index(Request $request): View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $videoModels */
|
||||
$videoModels = Video::query();
|
||||
|
|
@ -62,23 +61,16 @@ class VideoController extends Controller
|
|||
|
||||
/**
|
||||
* Show a specific resource.
|
||||
*
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Video $video): \Illuminate\Contracts\View\View
|
||||
public function show(Video $video): View
|
||||
{
|
||||
return view('bo.pages.videos.show', ['videoModel' => $video]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function create(Video $video): \Illuminate\Contracts\View\View
|
||||
public function create(Video $video): View
|
||||
{
|
||||
$productModels = Product::query()->orderBy('label', 'ASC')->paginate(10);
|
||||
|
||||
|
|
@ -87,11 +79,8 @@ class VideoController extends Controller
|
|||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Videos\StoreVideoRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreVideoRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreVideoRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$video = new Video();
|
||||
|
|
@ -100,23 +89,21 @@ class VideoController extends Controller
|
|||
if ($video->saveOrFail()) {
|
||||
return redirect()->route('bo.videos.edit', $video)
|
||||
->with('success', trans('crud.messages.has_been_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.video'))
|
||||
'model' => Str::ucFirst(trans('models.classes.video')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_created', [
|
||||
'model' => Str::ucFirst(trans('models.classes.video'))
|
||||
'model' => Str::ucFirst(trans('models.classes.video')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit(Video $video): \Illuminate\Contracts\View\View
|
||||
public function edit(Video $video): View
|
||||
{
|
||||
$productModels = Product::query()->orderBy('label', 'ASC')->paginate(10);
|
||||
|
||||
|
|
@ -125,38 +112,32 @@ class VideoController extends Controller
|
|||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Bo\Videos\UpdateVideoRequest $request
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateVideoRequest $request,
|
||||
Video $video
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request, $video) {
|
||||
$video->fill($request->validated());
|
||||
|
||||
if ($video->saveOrFail()) {
|
||||
return redirect()->route('bo.videos.edit', $video)
|
||||
->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.video'))
|
||||
'model' => Str::ucFirst(trans('models.classes.video')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->route('bo.videos.edit', $video)
|
||||
->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucFirst(trans('models.classes.video'))
|
||||
'model' => Str::ucFirst(trans('models.classes.video')),
|
||||
]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Video $video): \Illuminate\Http\RedirectResponse
|
||||
public function destroy(Video $video): RedirectResponse
|
||||
{
|
||||
/** @var array<string,string> */
|
||||
$previousQueries = [];
|
||||
|
|
@ -164,35 +145,31 @@ class VideoController extends Controller
|
|||
if ($video->deleteOrFail()) {
|
||||
return redirect()->route('bo.videos.index', $previousQueries)
|
||||
->with('success', trans('crud.messages.has_been_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.video'))
|
||||
'model' => Str::ucFirst(trans('models.classes.video')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('crud.messages.cannot_be_deleted', [
|
||||
'model' => Str::ucFirst(trans('models.classes.video'))
|
||||
'model' => Str::ucFirst(trans('models.classes.video')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function duplicate(Video $video): \Illuminate\Contracts\View\View
|
||||
public function duplicate(Video $video): View
|
||||
{
|
||||
return $this->create($video->replicate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param \App\Models\Video $video
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function changeHomepage(Video $video): \Illuminate\Http\RedirectResponse
|
||||
public function changeHomepage(Video $video): RedirectResponse
|
||||
{
|
||||
$video->update(['is_on_homepage' => !$video->getOriginal('is_on_homepage')]);
|
||||
$video->update(['is_on_homepage' => ! $video->getOriginal('is_on_homepage')]);
|
||||
|
||||
return redirect()->back()->with('success', trans('crud.messages.publish_status_saved'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,14 +3,15 @@
|
|||
namespace App\Http\Controllers\Club\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Foundation\Auth\ConfirmsPasswords;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ConfirmPasswordController extends Controller
|
||||
{
|
||||
use ConfirmsPasswords;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
|
|
@ -23,21 +24,18 @@ class ConfirmPasswordController extends Controller
|
|||
|
||||
/**
|
||||
* Display the password confirmation view.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function showConfirmForm(): \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
|
||||
public function showConfirmForm(): View | RedirectResponse
|
||||
{
|
||||
if (Auth::guard('club')->check()) {
|
||||
return \response()->redirectToRoute('home');
|
||||
}
|
||||
|
||||
return view('club.auth.passwords.confirm');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the post register / login redirect path.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function redirectPath(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,9 +5,12 @@ namespace App\Http\Controllers\Club\Auth;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Lib\Utils;
|
||||
use App\Models\Customer;
|
||||
use Illuminate\Contracts\Auth\PasswordBroker;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
|
|
@ -17,10 +20,11 @@ class ForgotPasswordController extends Controller
|
|||
* Message to user
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
* @phpcs:disable Generic.Files.LineLength.TooLong
|
||||
*/
|
||||
private $message = 'Si votre compte existe vous devriez recevoir un message avec un lien pour réinitialiser votre mot de passe';
|
||||
//phpcs:enable
|
||||
// phpcs:enable
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
|
|
@ -34,20 +38,16 @@ class ForgotPasswordController extends Controller
|
|||
|
||||
/**
|
||||
* Display the form to request a password reset link.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function showLinkRequestForm(): \Illuminate\View\View
|
||||
public function showLinkRequestForm(): View
|
||||
{
|
||||
return view('club.auth.passwords.email');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the broker to be used during password reset.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Auth\PasswordBroker
|
||||
*/
|
||||
public function broker(): \Illuminate\Contracts\Auth\PasswordBroker
|
||||
public function broker(): PasswordBroker
|
||||
{
|
||||
return Password::broker('customers');
|
||||
}
|
||||
|
|
@ -56,34 +56,29 @@ class ForgotPasswordController extends Controller
|
|||
* Get the response for a successful password reset link.
|
||||
* ! Dans les deux cas on ne divulgue pas si un user existe.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $response
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @param string $response
|
||||
*
|
||||
* @phpcs:disable
|
||||
*/
|
||||
protected function sendResetLinkResponse(Request $request, $response): \Illuminate\Http\RedirectResponse
|
||||
protected function sendResetLinkResponse(Request $request, $response): RedirectResponse
|
||||
{
|
||||
//phpcs:enable
|
||||
// phpcs:enable
|
||||
return back()->with('info', trans($this->message));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the response for a failed password reset link.
|
||||
* ! Dans les deux cas on ne divulgue pas si un user existe.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param string $response
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
protected function sendResetLinkFailedResponse(
|
||||
Request $request,
|
||||
string $response
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
// ! Ne pas notifier que l'utilisateur n'existe pas.
|
||||
if ($response === 'passwords.user') {
|
||||
return back()->with('info', trans($this->message));
|
||||
}
|
||||
|
||||
// * Renvoyer les autres message d'erreur style throttle.
|
||||
return back()
|
||||
->withInput($request->only('email'))
|
||||
|
|
@ -94,7 +89,6 @@ class ForgotPasswordController extends Controller
|
|||
* Send a reset link to the given user.
|
||||
* ! Overload this method to re-create customer if he's deleted from local database but active in CRM.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function sendResetLinkEmail(Request $request)
|
||||
|
|
@ -104,9 +98,9 @@ class ForgotPasswordController extends Controller
|
|||
// Search for a local customer and re-create it if it's not in local database but in CRM.
|
||||
$email = $request->input('email');
|
||||
$crm = app('crmAPI');
|
||||
if (!Customer::query()->where('email', $email)->first() and $crmCustomer = $crm->getCustomer($email)) {
|
||||
if (! Customer::query()->where('email', $email)->first() and $crmCustomer = $crm->getCustomer($email)) {
|
||||
$customer = Customer::firstOrNew([
|
||||
'email' => $crmCustomer->email
|
||||
'email' => $crmCustomer->email,
|
||||
]);
|
||||
$customer->hashcode = $crmCustomer->hashcode;
|
||||
$customer->username = Utils::getUniquePseudo(
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
|
|||
use App\Lib\Utils;
|
||||
use App\Models\Customer;
|
||||
use Exception;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
|
|
@ -31,28 +33,22 @@ class LoginController extends Controller
|
|||
|
||||
/**
|
||||
* Get the guard to be used during authentication.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Auth\StatefulGuard
|
||||
*/
|
||||
protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
|
||||
protected function guard(): StatefulGuard
|
||||
{
|
||||
return Auth::guard('club');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application's login form.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function showLoginForm(): \Illuminate\Contracts\View\View
|
||||
public function showLoginForm(): View
|
||||
{
|
||||
return view('club.auth.login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function redirectTo(): string
|
||||
{
|
||||
|
|
@ -61,9 +57,6 @@ class LoginController extends Controller
|
|||
|
||||
/**
|
||||
* Attempt to log the user into the application.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return boolean
|
||||
*/
|
||||
protected function attemptLogin(Request $request): bool
|
||||
{
|
||||
|
|
@ -72,9 +65,9 @@ class LoginController extends Controller
|
|||
$crmCustomer = CrmCustomer::findWithEmail(Arr::get($credentials, 'email'));
|
||||
|
||||
// Check database customer.
|
||||
if (!$customerModel) {
|
||||
if (! $customerModel) {
|
||||
// Check crm customer.
|
||||
if (!$crmCustomer) {
|
||||
if (! $crmCustomer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -86,34 +79,34 @@ class LoginController extends Controller
|
|||
);
|
||||
$customerModel->hashcode = $crmCustomer->hashcode;
|
||||
|
||||
if (!$customerModel->saveOrFail()) {
|
||||
if (! $customerModel->saveOrFail()) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// Check crm customer.
|
||||
if (!$crmCustomer) {
|
||||
if (! $crmCustomer) {
|
||||
$customerModel->delete();
|
||||
|
||||
return false;
|
||||
}
|
||||
} //end if
|
||||
} // end if
|
||||
|
||||
try {
|
||||
CrmCustomer::login(Arr::get($credentials, 'email'), Arr::get($credentials, 'password'));
|
||||
} catch (Exception $ex) {
|
||||
Log::error($ex);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->guard()->loginUsingId($customerModel->getKey());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* The user has been authenticated.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Database\Eloquent\Model $customerModel
|
||||
* @return void
|
||||
* @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing, Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
|
||||
*/
|
||||
protected function authenticated(Request $request, Model $customerModel): void
|
||||
|
|
@ -127,8 +120,6 @@ class LoginController extends Controller
|
|||
/**
|
||||
* The user has logged out of the application.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return void
|
||||
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
|
||||
*/
|
||||
protected function loggedOut(Request $request): void
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ class RegisterController extends Controller
|
|||
{
|
||||
$request = StoreCustomerRequest::capture();
|
||||
$request->prepareForValidation();
|
||||
|
||||
return Validator::make(
|
||||
$request->validationData(),
|
||||
$request->rules(),
|
||||
|
|
@ -72,8 +73,8 @@ class RegisterController extends Controller
|
|||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\Models\Customer
|
||||
*
|
||||
* @throws IlluminateValidationException If there are validation errors.
|
||||
* @throws \RuntimeException On unhandled api Error.
|
||||
*/
|
||||
|
|
@ -102,7 +103,7 @@ class RegisterController extends Controller
|
|||
// * Enregistrement du Hashcode
|
||||
/** @var \App\Models\Customer $customer */
|
||||
$customer = new Customer(
|
||||
Arr::only($data, (new \ReflectionClass(\App\Models\Customer::class))
|
||||
Arr::only($data, (new \ReflectionClass(Customer::class))
|
||||
->getProperty('fillable')->getDefaultValue())
|
||||
);
|
||||
$customer->hashcode = $crmCustomer->hashcode;
|
||||
|
|
@ -118,12 +119,12 @@ class RegisterController extends Controller
|
|||
} catch (ApiErrorException $e) {
|
||||
if ($e->getApiError()->equals(ApiError::customerExists)) {
|
||||
throw IlluminateValidationException::withMessages([
|
||||
'error' => trans('Un compte est déjà associé à cette adresse email.')
|
||||
'error' => trans('Un compte est déjà associé à cette adresse email.'),
|
||||
]);
|
||||
}
|
||||
if ($e->getApiError()->equals(ApiError::validationFailed)) {
|
||||
throw IlluminateValidationException::withMessages([
|
||||
'error' => $e->getMessage()
|
||||
'error' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
report($e);
|
||||
|
|
@ -131,9 +132,9 @@ class RegisterController extends Controller
|
|||
throw new \RuntimeException(__CLASS__ . '::create reached end of possibilities.');
|
||||
} catch (CrmValidationException $e) {
|
||||
throw IlluminateValidationException::withMessages([
|
||||
'error' => $e->getMessage()
|
||||
'error' => $e->getMessage(),
|
||||
]);
|
||||
} //end try
|
||||
} // end try
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ namespace App\Http\Controllers\Club\Auth;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Customer;
|
||||
use Illuminate\Auth\Events\PasswordReset;
|
||||
use Illuminate\Contracts\Auth\PasswordBroker;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
|
@ -31,10 +34,8 @@ class ResetPasswordController extends Controller
|
|||
|
||||
/**
|
||||
* Get the guard to be used during authentication.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Auth\StatefulGuard
|
||||
*/
|
||||
protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
|
||||
protected function guard(): StatefulGuard
|
||||
{
|
||||
return Auth::guard('club');
|
||||
}
|
||||
|
|
@ -43,26 +44,20 @@ class ResetPasswordController extends Controller
|
|||
* Display the password reset view for the given token.
|
||||
*
|
||||
* If no token is present, display the link request form.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function showResetForm(Request $request): \Illuminate\Contracts\View\View
|
||||
public function showResetForm(Request $request): View
|
||||
{
|
||||
$token = $request->route()->parameter('token');
|
||||
|
||||
return view('club.auth.passwords.reset')->with([
|
||||
'token' => $token,
|
||||
'email' => $request->email
|
||||
'email' => $request->email,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the given user's password.
|
||||
*
|
||||
* @param \App\Models\Customer $customer
|
||||
* @param string $password
|
||||
* @return void
|
||||
* @throws \Illuminate\Validation\ValidationException If something goes wrong.
|
||||
*/
|
||||
protected function resetPassword(Customer $customer, string $password): void
|
||||
|
|
@ -71,9 +66,9 @@ class ResetPasswordController extends Controller
|
|||
$crm = app('crmAPI');
|
||||
|
||||
try {
|
||||
if (!($crmCustomer = $crm->getCustomer($customer->hashcode))) {
|
||||
if (! ($crmCustomer = $crm->getCustomer($customer->hashcode))) {
|
||||
throw ValidationException::withMessages([
|
||||
'error' => trans('Changement impossible, compte inexistant.')
|
||||
'error' => trans('Changement impossible, compte inexistant.'),
|
||||
]);
|
||||
}
|
||||
$crmCustomer->password = $password;
|
||||
|
|
@ -81,11 +76,11 @@ class ResetPasswordController extends Controller
|
|||
} catch (\TypeError | CrmException | ApiErrorException $e) {
|
||||
report($e);
|
||||
throw ValidationException::withMessages([
|
||||
'error' => trans('Une erreur est survenue, merci de réessayer ultérieurement.')
|
||||
'error' => trans('Une erreur est survenue, merci de réessayer ultérieurement.'),
|
||||
]);
|
||||
} catch (ExceptionsValidationException $e) {
|
||||
throw ValidationException::withMessages([
|
||||
'password' => $e->getMessage()
|
||||
'password' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -99,8 +94,6 @@ class ResetPasswordController extends Controller
|
|||
|
||||
/**
|
||||
* Get the post register / login redirect path.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function redirectPath(): string
|
||||
{
|
||||
|
|
@ -109,10 +102,8 @@ class ResetPasswordController extends Controller
|
|||
|
||||
/**
|
||||
* Get the broker to be used during password reset.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Auth\PasswordBroker
|
||||
*/
|
||||
public function broker(): \Illuminate\Contracts\Auth\PasswordBroker
|
||||
public function broker(): PasswordBroker
|
||||
{
|
||||
return Password::broker('customers');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,10 @@ use App\Http\Controllers\Controller;
|
|||
use App\Models\Customer;
|
||||
use Illuminate\Auth\Access\AuthorizationException;
|
||||
use Illuminate\Auth\Events\Verified;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use LDC\LDCCRM\Enums\ApiError;
|
||||
|
|
@ -33,11 +35,8 @@ class VerificationController extends Controller
|
|||
|
||||
/**
|
||||
* Show the email verification notice.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View
|
||||
public function show(Request $request): RedirectResponse | View
|
||||
{
|
||||
return $request->user('club')->hasVerifiedEmail()
|
||||
? redirect($this->redirectPath())
|
||||
|
|
@ -49,20 +48,18 @@ class VerificationController extends Controller
|
|||
*
|
||||
* ! Overloaded trait
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
|
||||
* @throws \Illuminate\Auth\Access\AuthorizationException If request is invalid.
|
||||
*/
|
||||
public function verify(Request $request): \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
|
||||
public function verify(Request $request): JsonResponse | RedirectResponse
|
||||
{
|
||||
/** @var \App\Models\Customer */
|
||||
$user = Customer::findOrFail($request->route('id'));
|
||||
|
||||
if (!hash_equals((string) $request->route('id'), (string) $user->getKey())) {
|
||||
if (! hash_equals((string) $request->route('id'), (string) $user->getKey())) {
|
||||
throw new AuthorizationException();
|
||||
}
|
||||
|
||||
if (!hash_equals((string) $request->route('hash'), sha1($user->getEmailForVerification()))) {
|
||||
if (! hash_equals((string) $request->route('hash'), sha1($user->getEmailForVerification()))) {
|
||||
throw new AuthorizationException();
|
||||
}
|
||||
|
||||
|
|
@ -91,8 +88,6 @@ class VerificationController extends Controller
|
|||
/**
|
||||
* The user has been verified.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return mixed
|
||||
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
|
||||
*/
|
||||
protected function verified(Request $request): mixed
|
||||
|
|
@ -105,8 +100,6 @@ class VerificationController extends Controller
|
|||
|
||||
/**
|
||||
* Get the post register/login redirect path.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function redirectPath(): string
|
||||
{
|
||||
|
|
@ -116,8 +109,6 @@ class VerificationController extends Controller
|
|||
/**
|
||||
* Set crm customer active.
|
||||
*
|
||||
* @param \App\Models\Customer $customer
|
||||
* @return void
|
||||
* @throws \Illuminate\Http\Exceptions\HttpResponseException In case of failure.
|
||||
*/
|
||||
private function setCrmCustomerAsVerified(Customer $customer): void
|
||||
|
|
@ -135,12 +126,12 @@ class VerificationController extends Controller
|
|||
if ($e->getApiError()->equals(ApiError::customerAlreadyActive)) {
|
||||
// * Ignore this and continue, as it may be activated via another CRM service.
|
||||
return;
|
||||
} else {
|
||||
report($e);
|
||||
redirect($this->redirectPath())->with('error', trans(
|
||||
'Une erreur est survenue'
|
||||
))->throwResponse();
|
||||
}
|
||||
report($e);
|
||||
redirect($this->redirectPath())->with('error', trans(
|
||||
'Une erreur est survenue'
|
||||
))->throwResponse();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ use App\Models\Customer;
|
|||
use App\Models\Product;
|
||||
use App\Models\Recipe;
|
||||
use Illuminate\Auth\Events\PasswordReset;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
|
@ -22,10 +24,8 @@ class CustomerController extends Controller
|
|||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
/** @var \App\Models\Customer $customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
|
@ -34,7 +34,7 @@ class CustomerController extends Controller
|
|||
$questions = Customer::cacheCrm(
|
||||
$customer->hashcode,
|
||||
'questions',
|
||||
fn() => collect(Question::all())->filter(function ($question) {
|
||||
fn () => collect(Question::all())->filter(function ($question) {
|
||||
return $question->id === intval(config('crm.question'));
|
||||
})
|
||||
);
|
||||
|
|
@ -47,18 +47,16 @@ class CustomerController extends Controller
|
|||
$crmAnswers = $question['customerAnswers'];
|
||||
}
|
||||
});
|
||||
|
||||
return view('club.pages.customers.index', compact('customer', 'crmCustomer', 'questions', 'crmAnswers'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Customers\UpdateCustomerRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(
|
||||
UpdateCustomerRequest $request,
|
||||
): \Illuminate\Http\RedirectResponse {
|
||||
): RedirectResponse {
|
||||
return DB::transaction(function () use ($request) {
|
||||
/** @var \App\Models\Customer $customer */
|
||||
$customer = auth('club')->user();
|
||||
|
|
@ -69,13 +67,13 @@ class CustomerController extends Controller
|
|||
'password',
|
||||
'ok_cgv',
|
||||
'ok_cgu',
|
||||
'email'
|
||||
'email',
|
||||
])->toArray())
|
||||
) {
|
||||
if ($customer->saveOrFail()) {
|
||||
/** @var \LDC\LDCCRM\Models\Customer $crmCustomer */
|
||||
$crmCustomer = $customer->api_data;
|
||||
if (!Answer::setQuestionAnswers($crmCustomer->hashcode, $request->question_id, $request->answers)) {
|
||||
if (! Answer::setQuestionAnswers($crmCustomer->hashcode, $request->question_id, $request->answers)) {
|
||||
return redirect()->route('club.customers.index')
|
||||
->with('error', trans('Une erreur est survenue lors de l\'enregistrement de la réponse
|
||||
à la question, merci de réessayer plus tard'));
|
||||
|
|
@ -84,9 +82,11 @@ class CustomerController extends Controller
|
|||
return redirect()->route('club.customers.index')
|
||||
->with('success', trans('Vos informations ont bien été enregistrées.'));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('Une erreur est survenue, merci de réessayer ultérieurement.'));
|
||||
}
|
||||
|
||||
return redirect()->back()
|
||||
->with('error', trans('Une erreur est survenue, merci de réessayer ultérieurement.'));
|
||||
});
|
||||
|
|
@ -95,9 +95,8 @@ class CustomerController extends Controller
|
|||
/**
|
||||
* Updates user info.
|
||||
*
|
||||
* @param \App\Models\Customer $customer
|
||||
* @param array $data
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException If something failed.
|
||||
*/
|
||||
private function updateCrmCustomerInfo(Customer $customer, array $data)
|
||||
|
|
@ -108,58 +107,55 @@ class CustomerController extends Controller
|
|||
} catch (ApiErrorException $e) {
|
||||
if ($e->getApiError()->equals(ApiError::validationFailed)) {
|
||||
throw ValidationException::withMessages([
|
||||
'error' => $e->getMessage()
|
||||
'error' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
report($e);
|
||||
|
||||
return false;
|
||||
} //end try
|
||||
} // end try
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update customer password.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Customers\UpdatePasswordRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function passwordUpdate(UpdatePasswordRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function passwordUpdate(UpdatePasswordRequest $request): RedirectResponse
|
||||
{
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = \auth('club')->user();
|
||||
|
||||
if ($this->updateCrmCustomerInfo($customer, ['password' => $request->input('password')])) {
|
||||
event(new PasswordReset($customer));
|
||||
|
||||
return redirect()->back()->with('success', trans('crud.messages.has_been_updated', [
|
||||
'model' => Str::ucfirst(trans('validation.attributes.password'))
|
||||
'model' => Str::ucfirst(trans('validation.attributes.password')),
|
||||
]));
|
||||
}
|
||||
|
||||
return redirect()->back()->with('error', trans('crud.messages.cannot_be_updated', [
|
||||
'model' => Str::ucfirst(trans('validation.attributes.password'))
|
||||
'model' => Str::ucfirst(trans('validation.attributes.password')),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function indexProducts(): \Illuminate\Contracts\View\View
|
||||
public function indexProducts(): View
|
||||
{
|
||||
$models = Product::query()->where('published', true)->take(15)->paginate(9);
|
||||
|
||||
return view('club.pages.customers.favorites.products', compact('models'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function indexRecipes(): \Illuminate\Contracts\View\View
|
||||
public function indexRecipes(): View
|
||||
{
|
||||
$models = Recipe::query()->with('products', 'consumptionMoment')
|
||||
->where('published', true)->take(15)->paginate(9);
|
||||
|
||||
return view('club.pages.customers.favorites.recipes', compact('models'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,22 +11,22 @@ use App\Http\Requests\Club\Bourse\SearchCustomerCollectionRequest;
|
|||
use App\Lib\Utils;
|
||||
use App\Models\BlockList;
|
||||
use App\Models\DepartaimantsCollection;
|
||||
use Illuminate\Container\Container;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Container\Container;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
|
||||
class DepartaimantController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
|
@ -40,15 +40,12 @@ class DepartaimantController extends Controller
|
|||
/**
|
||||
* Save Customer collection state
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Bourse\SaveCustomerCollectionRequest $request
|
||||
* @param \App\Enums\Departaimants\DepartaimantCollectionType $collectiontype
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @throws \RuntimeException If a collection type is missing.
|
||||
*/
|
||||
public function bourseSaveState(
|
||||
SaveCustomerCollectionRequest $request,
|
||||
DepartaimantCollectionType $collectiontype
|
||||
): \Illuminate\Http\JsonResponse {
|
||||
): JsonResponse {
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
/** @var \App\Models\DepartaimantsCollection $departaimantCollection */
|
||||
|
|
@ -58,8 +55,8 @@ class DepartaimantController extends Controller
|
|||
$depStatus = DepartaimantStatus::make($request->integer('state'));
|
||||
/** @var string|null */
|
||||
$depEnumClass = Arr::get($request->maps, $collectiontype->value(), null);
|
||||
if (!$depEnumClass) {
|
||||
throw new \RuntimeException("Missing " . $collectiontype->value() . 'from request');
|
||||
if (! $depEnumClass) {
|
||||
throw new \RuntimeException('Missing ' . $collectiontype->value() . 'from request');
|
||||
}
|
||||
/** @var \App\Enums\Departaimants\IDepartaimant */
|
||||
$departaimant = forward_static_call(
|
||||
|
|
@ -75,22 +72,20 @@ class DepartaimantController extends Controller
|
|||
|
||||
return response()->json([
|
||||
'status' => 'OK',
|
||||
'map' => $this->getUserDepartaimantsMaps($depCollections)
|
||||
'map' => $this->getUserDepartaimantsMaps($depCollections),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Summary of bourseSearch
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Bourse\SearchCustomerCollectionRequest $request
|
||||
* @param \App\Enums\Departaimants\DepartaimantCollectionType $collectiontype
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* phpcs:disable Generic.Metrics.CyclomaticComplexity
|
||||
* phpcs:disable Generic.Metrics.CyclomaticComplexity
|
||||
*/
|
||||
public function bourseSearch(
|
||||
SearchCustomerCollectionRequest $request,
|
||||
DepartaimantCollectionType $collectiontype
|
||||
): \Illuminate\Http\JsonResponse {
|
||||
): JsonResponse {
|
||||
// @phpcs:enable
|
||||
$itemsPerPage = 15;
|
||||
$output = collect();
|
||||
|
|
@ -107,15 +102,15 @@ class DepartaimantController extends Controller
|
|||
} else {
|
||||
return response()->json([
|
||||
'status' => 'KO',
|
||||
'message' => 'Message cannot search with other status than wants or gives'
|
||||
'message' => 'Message cannot search with other status than wants or gives',
|
||||
]);
|
||||
}
|
||||
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
$ids = collect(BlockList::query()->select('customer_id', 'blocked_id')
|
||||
->whereHas('customer', fn(Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->orWhereHas('blocked', fn(Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->whereHas('customer', fn (Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->orWhereHas('blocked', fn (Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->get()->toArray());
|
||||
$ids = $ids->flatten()->unique();
|
||||
|
||||
|
|
@ -168,11 +163,11 @@ class DepartaimantController extends Controller
|
|||
'departaimant' => $dep->departaimant->label(),
|
||||
'username' => $depCollection->customer->username,
|
||||
'hashcode' => $depCollection->customer->hashcode,
|
||||
'date' => (new NiceDate())->get(null, '', $depCollection->updated_at, [])
|
||||
'date' => (new NiceDate())->get(null, '', $depCollection->updated_at, []),
|
||||
]);
|
||||
}
|
||||
} //end foreach
|
||||
} //end foreach
|
||||
} // end foreach
|
||||
} // end foreach
|
||||
|
||||
// Paginate.
|
||||
$depCollectionPaginate = $this->paginateManually(
|
||||
|
|
@ -190,9 +185,6 @@ class DepartaimantController extends Controller
|
|||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @param \Illuminate\Support\Collection $departaimantsCollection
|
||||
* @return array
|
||||
*/
|
||||
private function getUserDepartaimantsMaps(Collection $departaimantsCollection): array
|
||||
{
|
||||
|
|
@ -205,6 +197,7 @@ class DepartaimantController extends Controller
|
|||
'state' => $departaimantItem->status->value(),
|
||||
];
|
||||
}
|
||||
|
||||
return $datas;
|
||||
})->toArray();
|
||||
|
||||
|
|
@ -213,34 +206,21 @@ class DepartaimantController extends Controller
|
|||
|
||||
/**
|
||||
* Paginate a collection.
|
||||
*
|
||||
* @param integer $totalCount
|
||||
* @param \Illuminate\Support\Collection $results
|
||||
* @param integer $pageSize
|
||||
* @param integer $page
|
||||
* @return \Illuminate\Pagination\LengthAwarePaginator
|
||||
*/
|
||||
private function paginateManually(
|
||||
int $totalCount,
|
||||
Collection $results,
|
||||
int $pageSize,
|
||||
int $page = 1
|
||||
): \Illuminate\Pagination\LengthAwarePaginator {
|
||||
): LengthAwarePaginator {
|
||||
return $this->paginator($results, $totalCount, $pageSize, $page, [
|
||||
'path' => Paginator::resolveCurrentPath(),
|
||||
'path' => Paginator::resolveCurrentPath(),
|
||||
'pageName' => 'page',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new length-aware paginator instance.
|
||||
*
|
||||
* @param \Illuminate\Support\Collection $items
|
||||
* @param integer $total
|
||||
* @param integer $perPage
|
||||
* @param integer $currentPage
|
||||
* @param array $options
|
||||
* @return \Illuminate\Pagination\LengthAwarePaginator
|
||||
*/
|
||||
protected function paginator(
|
||||
Collection $items,
|
||||
|
|
@ -248,13 +228,13 @@ class DepartaimantController extends Controller
|
|||
int $perPage,
|
||||
int $currentPage,
|
||||
array $options
|
||||
): \Illuminate\Pagination\LengthAwarePaginator {
|
||||
): LengthAwarePaginator {
|
||||
return Container::getInstance()->makeWith(LengthAwarePaginator::class, [
|
||||
'items' => $items,
|
||||
'total' => $total,
|
||||
'perPage' => $perPage,
|
||||
'currentPage' => $currentPage,
|
||||
'options' => $options
|
||||
'options' => $options,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,17 @@ namespace App\Http\Controllers\Club;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Club\MesBr\PrintCouponsRequest;
|
||||
use App\Models\Discount;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Arr;
|
||||
use LDC\LDCCRM\Models\Customer;
|
||||
|
||||
class DiscountController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show customer BR list.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function showCustomerBrList(): \Illuminate\Contracts\View\View
|
||||
public function showCustomerBrList(): View
|
||||
{
|
||||
/** @var \App\Models\Customer $customer */
|
||||
$customer = auth('club')->user();
|
||||
|
|
@ -22,16 +23,14 @@ class DiscountController extends Controller
|
|||
$crmCustomer = $customer->api_data;
|
||||
|
||||
$brList = $this->fetchActiveBr($crmCustomer);
|
||||
|
||||
return view('club.pages.discounts.index', compact('crmCustomer', 'brList'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch PDF BR.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\MesBr\PrintCouponsRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function fetchBrPdf(PrintCouponsRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function fetchBrPdf(PrintCouponsRequest $request): RedirectResponse
|
||||
{
|
||||
/** @var \LDC\MESBR\MesBr */
|
||||
$mesBr = app('mesBrAPI');
|
||||
|
|
@ -66,13 +65,10 @@ class DiscountController extends Controller
|
|||
* +"mobile_image_available": "https://dev.mesbr.eu/coupons/KE3YodVeDPSG7pVzPQZhPEpVGlxwjTPWCJ8WGN29.png"
|
||||
* +"mobile_image_unavailable": "https://dev.mesbr.eu/coupons/FOFhdT0d2X1AURQfYm9O7ac2ca9SGUk3IHCTWJiZ.png"
|
||||
* }
|
||||
*
|
||||
* @param \LDC\LDCCRM\Models\Customer $customer
|
||||
* @return object|null
|
||||
*/
|
||||
private function fetchActiveBr(\LDC\LDCCRM\Models\Customer $customer): ?object
|
||||
private function fetchActiveBr(Customer $customer): ?object
|
||||
{
|
||||
if (!$this->createOrUpdateMesBrCustomer($customer)) {
|
||||
if (! $this->createOrUpdateMesBrCustomer($customer)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +79,7 @@ class DiscountController extends Controller
|
|||
|
||||
try {
|
||||
$res = $mesBr->getMurCustomer($customer->hashcode);
|
||||
if (!$res) {
|
||||
if (! $res) {
|
||||
$message = "ERROR MesBR API : getMurCustomer on api failed {$customer->hashcode}";
|
||||
} elseif (Arr::get((array) $res, 'status') === 'KO') {
|
||||
$message = Arr::get(
|
||||
|
|
@ -98,23 +94,23 @@ class DiscountController extends Controller
|
|||
if (config('app.env') === 'local') {
|
||||
$res = Discount::replaceCouponsPictureHost($res);
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
report(new \RuntimeException($message));
|
||||
|
||||
return null;
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
|
||||
return null;
|
||||
} //end try
|
||||
} // end try
|
||||
}
|
||||
|
||||
/**
|
||||
* Report for sure true if the customer is set in mesBr.
|
||||
*
|
||||
* @param \LDC\LDCCRM\Models\Customer $customer
|
||||
* @return boolean
|
||||
*/
|
||||
private function createOrUpdateMesBrCustomer(\LDC\LDCCRM\Models\Customer $customer): bool
|
||||
private function createOrUpdateMesBrCustomer(Customer $customer): bool
|
||||
{
|
||||
// * Ajout du customer sur mes BR
|
||||
/** @var \LDC\MESBR\MesBr */
|
||||
|
|
@ -129,7 +125,7 @@ class DiscountController extends Controller
|
|||
try {
|
||||
// * Create (or update) the customer
|
||||
$res = $mesBr->createCustomer($customer->hashcode, $customer->email, 'France');
|
||||
if (!$res) {
|
||||
if (! $res) {
|
||||
$message = "ERROR MesBR API : createCustomer on api failed {$customer->hashcode}";
|
||||
} elseif (Arr::get((array) $res, 'status') === 'KO') {
|
||||
$message = Arr::get(
|
||||
|
|
@ -143,10 +139,12 @@ class DiscountController extends Controller
|
|||
return true;
|
||||
}
|
||||
report(new \RuntimeException($message));
|
||||
|
||||
return false;
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
|
||||
return false;
|
||||
} //end try
|
||||
} // end try
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,51 +4,47 @@ namespace App\Http\Controllers\Club;
|
|||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Club\Favorite\UpdateFavoriteRequest;
|
||||
use App\Models\Customer;
|
||||
use App\Lib\Helpers\CollectionHelper;
|
||||
use App\Models\Customer;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FavoriteController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function indexProducts(Request $request): \Illuminate\Contracts\View\View
|
||||
public function indexProducts(Request $request): View
|
||||
{
|
||||
$models = CollectionHelper::paginateManually(auth('club')->user()->products, 9, $request->page ?? 1);
|
||||
|
||||
return view('club.pages.favorites.products', compact('models'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function indexRecipes(Request $request): \Illuminate\Contracts\View\View
|
||||
public function indexRecipes(Request $request): View
|
||||
{
|
||||
$models = CollectionHelper::paginateManually(auth('club')->user()->recipes, 9, $request->page ?? 1);
|
||||
|
||||
return view('club.pages.favorites.recipes', compact('models'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update favorites models for a specific club customer.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Favorite\UpdateFavoriteRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function update(UpdateFavoriteRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function update(UpdateFavoriteRequest $request): JsonResponse
|
||||
{
|
||||
$customer = Customer::query()->where('id', $request->validated()['customer'])->first();
|
||||
$currentFavorites = $customer->{$request->validated()['class']}->pluck('id');
|
||||
/** @var integer $newFavorites */
|
||||
/** @var int $newFavorites */
|
||||
$newFavorites = $request->validated()['model'];
|
||||
($currentFavorites->contains($newFavorites))
|
||||
? $customer->{$request->validated()['class']}()->detach($newFavorites)
|
||||
: $customer->{$request->validated()['class']}()->attach($newFavorites);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'OK',
|
||||
'data' => $customer->{$request->validated()['class']}()->get()->pluck('id'),
|
||||
|
|
|
|||
|
|
@ -3,15 +3,14 @@
|
|||
namespace App\Http\Controllers\Club;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class GameController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
return view('club.pages.games.index');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,15 +6,15 @@ use App\Http\Controllers\Controller;
|
|||
use App\Http\Requests\Club\Games\GoldenCrushParticipateRequest;
|
||||
use App\Lib\Helpers\GamePeriodHelper;
|
||||
use App\Models\GoldenCrushGame;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
|
||||
class GoldenCrushController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show game page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
|
||||
public function index(): View | RedirectResponse
|
||||
{
|
||||
$routeNameForGoldenCrush = GamePeriodHelper::routeName();
|
||||
|
||||
|
|
@ -23,8 +23,8 @@ class GoldenCrushController extends Controller
|
|||
$hasAlreadyParticipated = $customerId ? GoldenCrushGame::hasCustomerParticipated($customerId) : false;
|
||||
|
||||
return view('club.pages.games.golden-crush.golden-crush', [
|
||||
'hasAlreadyParticipated' => $hasAlreadyParticipated,
|
||||
'videos' => GoldenCrushGame::getVideos(),
|
||||
'hasAlreadyParticipated' => $hasAlreadyParticipated,
|
||||
'videos' => GoldenCrushGame::getVideos(),
|
||||
'routeNameForGoldenCrush' => $routeNameForGoldenCrush,
|
||||
]);
|
||||
}
|
||||
|
|
@ -32,7 +32,7 @@ class GoldenCrushController extends Controller
|
|||
/**
|
||||
* Register participation of costumer
|
||||
*
|
||||
* @param GoldenCrushParticipateRequest $request HTTP Request.
|
||||
* @param GoldenCrushParticipateRequest $request HTTP Request.
|
||||
* @return RedirectResponse Response.
|
||||
*/
|
||||
public function store(GoldenCrushParticipateRequest $request)
|
||||
|
|
@ -49,8 +49,8 @@ class GoldenCrushController extends Controller
|
|||
if ($request->validated()) {
|
||||
GoldenCrushGame::create([
|
||||
'customer_id' => $customerId,
|
||||
'choice' => $request->integer('choice'),
|
||||
'ip_address' => app('clientIp'),
|
||||
'choice' => $request->integer('choice'),
|
||||
'ip_address' => app('clientIp'),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -59,35 +59,30 @@ class GoldenCrushController extends Controller
|
|||
|
||||
/**
|
||||
* View to thanks if customer has participated.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function thanksForParticipation(): \Illuminate\Contracts\View\View
|
||||
public function thanksForParticipation(): View
|
||||
{
|
||||
$customerId = auth('club')->id();
|
||||
$alreadyParticipated = GoldenCrushGame::hasCustomerParticipated($customerId);
|
||||
if (!$alreadyParticipated) {
|
||||
if (! $alreadyParticipated) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
return view('club.pages.games.golden-crush.thanks-for-participation');
|
||||
}
|
||||
|
||||
/**
|
||||
* View for end of participation if customer has participated.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function endOfParticipation(): \Illuminate\Contracts\View\View
|
||||
public function endOfParticipation(): View
|
||||
{
|
||||
return view('club.pages.games.golden-crush.end-of-participation');
|
||||
}
|
||||
|
||||
/**
|
||||
* View for end of game.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function endOfGame(): \Illuminate\Contracts\View\View
|
||||
public function endOfGame(): View
|
||||
{
|
||||
return view('club.pages.games.golden-crush.end-of-game');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,21 +6,21 @@ use App\Http\Controllers\Controller;
|
|||
use App\Lib\Helpers\GamePeriodHelper;
|
||||
use App\Models\Discount;
|
||||
use App\Models\NewsClub;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
$gamePeriodGoldenCrush = GamePeriodHelper::isGamePeriod();
|
||||
$routeNameForGoldenCrush = GamePeriodHelper::routeName();
|
||||
$newsClubModels = NewsClub::getPublishedOrderedByPublishAt();
|
||||
$discountModels = Discount::getCachedDiscounts();
|
||||
$discountsTotal = $discountModels->sum('value');
|
||||
|
||||
return (auth('club')->check())
|
||||
? view('club.pages.home.homepage', compact('newsClubModels', 'discountModels', 'discountsTotal', 'gamePeriodGoldenCrush', 'routeNameForGoldenCrush'))
|
||||
: view('club.pages.home.guest', compact('newsClubModels', 'discountsTotal'));
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ use App\Models\BlockList;
|
|||
use App\Models\Customer;
|
||||
use App\Models\Message;
|
||||
use App\Models\Notification;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Lottery;
|
||||
|
|
@ -23,20 +25,16 @@ class MessageController extends Controller
|
|||
{
|
||||
/**
|
||||
* Show messagerie.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
return view('club.pages.messages.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch conversations and block list.
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function conversations(): \Illuminate\Http\JsonResponse
|
||||
public function conversations(): JsonResponse
|
||||
{
|
||||
/** How many message to keey in a conversation */
|
||||
$messagesToKeepInConversations = 25;
|
||||
|
|
@ -45,8 +43,8 @@ class MessageController extends Controller
|
|||
$conversations = $customer->conversations();
|
||||
$ids = collect($conversations)->pluck('to_id');
|
||||
$block_list = BlockList::query()
|
||||
->whereHas('customer', fn(Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->orWhereHas('blocked', fn(Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->whereHas('customer', fn (Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->orWhereHas('blocked', fn (Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->get();
|
||||
|
||||
// * Sort In reverse order messages
|
||||
|
|
@ -55,12 +53,13 @@ class MessageController extends Controller
|
|||
$sortFn = fn (Message $a, Message $b) => $a->created_at->timestamp < $b->created_at->timestamp;
|
||||
// * Limit messages per conversations
|
||||
Lottery::odds(1, 20)
|
||||
->winner(fn() => collect($conversation['messages'])
|
||||
->winner(fn () => collect($conversation['messages'])
|
||||
// @phpstan-ignore-next-line
|
||||
->sort($sortFn)
|
||||
->splice($messagesToKeepInConversations)
|
||||
->each(fn(Message $message) => $message->delete()))
|
||||
->sort($sortFn)
|
||||
->splice($messagesToKeepInConversations)
|
||||
->each(fn (Message $message) => $message->delete()))
|
||||
->choose();
|
||||
|
||||
return $conversation;
|
||||
})->all();
|
||||
|
||||
|
|
@ -75,11 +74,8 @@ class MessageController extends Controller
|
|||
|
||||
/**
|
||||
* Send a message to a club customer.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Messages\SendMessageRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function send(SendMessageRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function send(SendMessageRequest $request): JsonResponse
|
||||
{
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
|
@ -96,16 +92,14 @@ class MessageController extends Controller
|
|||
$message,
|
||||
$toCustomer
|
||||
));
|
||||
|
||||
return response()->json($message->load(['fromCustomer', 'toCustomer']));
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy a club customer's message.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Messages\DeleteMessagesRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function delete(DeleteMessagesRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function delete(DeleteMessagesRequest $request): JsonResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
/** @var \App\Models\Customer */
|
||||
|
|
@ -132,18 +126,15 @@ class MessageController extends Controller
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Block a customer to prevent him sending messages.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Messages\BlockCustomerRequest $request
|
||||
* @param boolean $status
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function toggleBlock(BlockCustomerRequest $request, bool $status): \Illuminate\Http\JsonResponse
|
||||
public function toggleBlock(BlockCustomerRequest $request, bool $status): JsonResponse
|
||||
{
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
|
@ -154,16 +145,14 @@ class MessageController extends Controller
|
|||
'blocked_id' => $customerToBlock->getKey(),
|
||||
]);
|
||||
($status) ? $blockCustomer->saveOrFail() : $blockCustomer->deleteOrFail();
|
||||
|
||||
return response()->json($blockCustomer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark notificaiton as read.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Messages\MarkAsReadRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function notificationsRead(MarkAsReadRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function notificationsRead(MarkAsReadRequest $request): JsonResponse
|
||||
{
|
||||
/** @var \App\Models\Customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
|
@ -171,7 +160,7 @@ class MessageController extends Controller
|
|||
$notificationsToRead = Notification::query()
|
||||
->where('notifiable_type', Message::class)
|
||||
->whereIn('id', $request->input('messageList'))
|
||||
->whereHas('customer', fn(Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->whereHas('customer', fn (Builder $q) => $q->where('id', $customer->getKey()))
|
||||
->get()
|
||||
->pluck('id');
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ namespace App\Http\Controllers\Club;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Club\Notifications\DeleteNotificationsRequest;
|
||||
use App\Models\Notification;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\View as FacadesView;
|
||||
|
||||
|
|
@ -12,53 +14,45 @@ class NotificationController extends Controller
|
|||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
/** @var \App\Models\Customer $customerModel */
|
||||
$customerModel = auth('club')->user();
|
||||
$notificationModels = $customerModel->notifications()
|
||||
->whereNotIn('id', $customerModel->readNotifications()->pluck('notification_id'))
|
||||
->orderBy('created_at', 'DESC')
|
||||
->paginate(10);
|
||||
->whereNotIn('id', $customerModel->readNotifications()->pluck('notification_id'))
|
||||
->orderBy('created_at', 'DESC')
|
||||
->paginate(10);
|
||||
|
||||
return view('club.pages.notifications.index', compact('notificationModels'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get notifications count
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function notificationsCount(): \Illuminate\Http\JsonResponse
|
||||
public function notificationsCount(): JsonResponse
|
||||
{
|
||||
return response()->json(FacadesView::shared('notifications_count', 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete notification from list
|
||||
*
|
||||
* @param Notification $notification
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function destroy(Notification $notification): \Illuminate\Http\JsonResponse
|
||||
public function destroy(Notification $notification): JsonResponse
|
||||
{
|
||||
/** @var \App\Models\Customer $customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
||||
$customer->readNotifications()->syncWithoutDetaching($notification->id);
|
||||
session()->flash('success', __('Notification supprimée.'));
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete notification from list
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Notifications\DeleteNotificationsRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function destroyMultiple(DeleteNotificationsRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function destroyMultiple(DeleteNotificationsRequest $request): JsonResponse
|
||||
{
|
||||
/** @var \App\Models\Customer $customer */
|
||||
$customer = Auth::guard('club')->user();
|
||||
|
|
@ -72,6 +66,7 @@ class NotificationController extends Controller
|
|||
$count,
|
||||
['count' => $count]
|
||||
));
|
||||
|
||||
return response()->json(['success' => true]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,15 +3,14 @@
|
|||
namespace App\Http\Controllers\Club;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class QuestController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show index page
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
return view('club.pages.quests.index');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,9 +18,14 @@ use App\Models\Notification;
|
|||
use App\Models\Order;
|
||||
use App\Models\SellItem;
|
||||
use Exception;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class ShopController extends Controller
|
||||
|
|
@ -30,25 +35,23 @@ class ShopController extends Controller
|
|||
) {
|
||||
return parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Shop index.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
$sellItemModels = SellItem::all();
|
||||
|
||||
return view('club.pages.shop.index', compact('sellItemModels'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax service to validate transaction details.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Shop\ShopBuyRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @phpcs:disable Generic.Metrics.CyclomaticComplexity.TooHigh
|
||||
*/
|
||||
public function validateBuy(ShopBuyRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function validateBuy(ShopBuyRequest $request): JsonResponse
|
||||
{
|
||||
// phpcs:enable
|
||||
/** @var \App\Models\Customer */
|
||||
|
|
@ -63,7 +66,7 @@ class ShopController extends Controller
|
|||
'quantity' => $item['count'],
|
||||
'unitPrice' => $sellItem->price,
|
||||
'totalPrice' => $item['count'] * $sellItem->price,
|
||||
'subject' => $sellItem->arcadia_id
|
||||
'subject' => $sellItem->arcadia_id,
|
||||
];
|
||||
$orderTotalPrice += $item['count'] * $sellItem->price;
|
||||
}
|
||||
|
|
@ -93,7 +96,7 @@ class ShopController extends Controller
|
|||
)]);
|
||||
}
|
||||
abort(500, sprintf('Order already exists but type is unkown %d', $order->getKey()));
|
||||
} //end try
|
||||
} // end try
|
||||
|
||||
$order->customer()->associate($customerModel);
|
||||
|
||||
|
|
@ -113,6 +116,7 @@ class ShopController extends Controller
|
|||
case OrderType::cb->value():
|
||||
\session()->put(sprintf('shop.order.%d.time', $order->getKey()), \time());
|
||||
\session()->save();
|
||||
|
||||
return response()->json(['redirect' => route('club.shop.payementCB', compact('order'))]);
|
||||
case OrderType::check->value():
|
||||
try {
|
||||
|
|
@ -134,20 +138,17 @@ class ShopController extends Controller
|
|||
}
|
||||
default:
|
||||
abort(422);
|
||||
} //end switch
|
||||
} // end switch
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirection After Ajax validate.
|
||||
*
|
||||
* @param \App\Models\Order $order
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function validatedBuy(Order $order): \Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View
|
||||
public function validatedBuy(Order $order): RedirectResponse | View
|
||||
{
|
||||
Notification::getNotifications();
|
||||
$time = session()->get(sprintf('shop.order.%d.time', $order->getKey()), 0);
|
||||
if (!($order->status->equals(OrderStatus::payed) || $order->status->equals(OrderStatus::waitingCheck))) {
|
||||
if (! ($order->status->equals(OrderStatus::payed) || $order->status->equals(OrderStatus::waitingCheck))) {
|
||||
return response()->redirectToRoute('club.shop.index');
|
||||
}
|
||||
// 4 minutes
|
||||
|
|
@ -161,12 +162,11 @@ class ShopController extends Controller
|
|||
/**
|
||||
* Pay with CB.
|
||||
*
|
||||
* @param \App\Models\Order $order
|
||||
* @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
|
||||
* @throws \App\Exceptions\CBPayementError Error response from Axepta Lib.
|
||||
*
|
||||
* @phpcs:disable Generic.Metrics.CyclomaticComplexity.TooHigh
|
||||
*/
|
||||
public function payWithCb(Order $order): \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
|
||||
public function payWithCb(Order $order): View | RedirectResponse
|
||||
{
|
||||
// phpcs:enable
|
||||
Notification::getNotifications();
|
||||
|
|
@ -210,12 +210,13 @@ class ShopController extends Controller
|
|||
route('club.shop.reglement.payementConfirmCB', ['order' => $order, 'cancel' => true]),
|
||||
route('club.shop.reglement.payementConfirmCBServ', $order)
|
||||
);
|
||||
|
||||
return response()->redirectTo($payment);
|
||||
} catch (\RuntimeException $e) {
|
||||
$order->status = OrderStatus::failed;
|
||||
$order->save();
|
||||
throw new CBPayementError(sprintf(
|
||||
"Error response from Axepta Lib : %s",
|
||||
'Error response from Axepta Lib : %s',
|
||||
$e->getMessage()
|
||||
));
|
||||
}
|
||||
|
|
@ -226,29 +227,28 @@ class ShopController extends Controller
|
|||
$order->getKey(),
|
||||
$e->getMessage()
|
||||
));
|
||||
|
||||
return view('club.pages.shop.info')
|
||||
->with('title', trans('Commande annulée'))
|
||||
->with('message', trans("Le paiement n'a pu aboutir. Veuillez réessayer"));
|
||||
} //end try
|
||||
} // end try
|
||||
}
|
||||
|
||||
/**
|
||||
* Pas de validate ou custom request sur la réponse de Axepta,
|
||||
* C'est la Lib Axepta qui fait.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Order $order
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Contracts\Routing\ResponseFactory
|
||||
* @throws \App\Exceptions\CBPayementError Data were altered from response.
|
||||
*
|
||||
* @phpcs:disable Generic.Metrics.CyclomaticComplexity.TooHigh
|
||||
*/
|
||||
public function confirmCbFromAxepta(
|
||||
Request $request,
|
||||
Order $order
|
||||
): \Illuminate\Http\Response|\Illuminate\Contracts\Routing\ResponseFactory {
|
||||
): Response | ResponseFactory {
|
||||
// phpcs:enable
|
||||
try {
|
||||
if (!$this->aPayment->isValidWebhookAccess($request)) {
|
||||
if (! $this->aPayment->isValidWebhookAccess($request)) {
|
||||
$order->status = OrderStatus::failed;
|
||||
$order->save();
|
||||
// @phpstan-ignore finally.exitPoint
|
||||
|
|
@ -259,20 +259,19 @@ class ShopController extends Controller
|
|||
|
||||
if (is_null($response)) {
|
||||
if (
|
||||
!$order->confirmMailSent and
|
||||
!$order->status->equals(OrderStatus::payed)
|
||||
! $order->confirmMailSent and ! $order->status->equals(OrderStatus::payed)
|
||||
) {
|
||||
$order->status = OrderStatus::failed;
|
||||
$order->save();
|
||||
}
|
||||
|
||||
return response('', 200);
|
||||
}
|
||||
|
||||
switch (intval($response[0])) {
|
||||
case PaymentResponse::ok->value:
|
||||
if (
|
||||
!$order->confirmMailSent and
|
||||
!$order->status->equals(OrderStatus::payed)
|
||||
! $order->confirmMailSent and ! $order->status->equals(OrderStatus::payed)
|
||||
) {
|
||||
$order->status = OrderStatus::payed;
|
||||
$order->save();
|
||||
|
|
@ -286,8 +285,7 @@ class ShopController extends Controller
|
|||
case PaymentResponse::error->value:
|
||||
case PaymentResponse::fatalerror->value:
|
||||
if (
|
||||
!$order->confirmMailSent and
|
||||
!$order->status->equals(OrderStatus::payed)
|
||||
! $order->confirmMailSent and ! $order->status->equals(OrderStatus::payed)
|
||||
) {
|
||||
$order->status = OrderStatus::failed;
|
||||
$order->save();
|
||||
|
|
@ -296,8 +294,7 @@ class ShopController extends Controller
|
|||
default:
|
||||
// * ERROR
|
||||
if (
|
||||
!$order->confirmMailSent and
|
||||
!$order->status->equals(OrderStatus::payed)
|
||||
! $order->confirmMailSent and ! $order->status->equals(OrderStatus::payed)
|
||||
) {
|
||||
$order->status = OrderStatus::failed;
|
||||
$order->save();
|
||||
|
|
@ -308,8 +305,8 @@ class ShopController extends Controller
|
|||
$response,
|
||||
$order->ref
|
||||
));
|
||||
} //end switch
|
||||
} catch (ModelNotFoundException | CBPayementError | \Exception $e) {
|
||||
} // end switch
|
||||
} catch (ModelNotFoundException | CBPayementError | Exception $e) {
|
||||
report($e);
|
||||
Log::critical(sprintf(
|
||||
'Could not end customer transaction in boutique for order %d, %s',
|
||||
|
|
@ -319,25 +316,20 @@ class ShopController extends Controller
|
|||
} finally {
|
||||
// @phpstan-ignore finally.exitPoint
|
||||
return response('', 200);
|
||||
} //end try
|
||||
} // end try
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirm CB method
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Order $order
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
* @throws \App\Exceptions\CBPayementError Data were altered from response.
|
||||
*/
|
||||
public function confirmCb(Request $request, Order $order): \Illuminate\Contracts\View\View
|
||||
public function confirmCb(Request $request, Order $order): View
|
||||
{
|
||||
Notification::getNotifications();
|
||||
|
||||
if (
|
||||
!$request->has('PayID') or
|
||||
$request->has('cancel') or
|
||||
$order->status->equals(OrderStatus::failed)
|
||||
! $request->has('PayID') or $request->has('cancel') or $order->status->equals(OrderStatus::failed)
|
||||
) {
|
||||
return view('club.pages.shop.info')
|
||||
->with('title', trans('Commande annulée'))
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ namespace App\Http\Controllers\Club;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Club\Surveys\StoreSurveyAnswerRequest;
|
||||
use App\Models\NewsClub;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
|
@ -12,11 +14,8 @@ class SurveyController extends Controller
|
|||
{
|
||||
/**
|
||||
* Display the showing page for an article (whatever the type).
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(Request $request): \Illuminate\Contracts\View\View
|
||||
public function show(Request $request): View
|
||||
{
|
||||
/** @var \App\Models\Customer $customerModel */
|
||||
$customerModel = auth('club')->user();
|
||||
|
|
@ -28,16 +27,14 @@ class SurveyController extends Controller
|
|||
->filter(function ($surveyAnswer) use ($newsClubModel) {
|
||||
return $surveyAnswer->newsClub->getKey() === $newsClubModel->getKey();
|
||||
});
|
||||
|
||||
return view('club.pages.surveys.show', compact('newsClubModel', 'customerSurveyAnswers'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store answers from a club customer.
|
||||
*
|
||||
* @param \App\Http\Requests\Club\Surveys\StoreSurveyAnswerRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreSurveyAnswerRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function store(StoreSurveyAnswerRequest $request): RedirectResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
/** @var \App\Models\Customer $customerModel */
|
||||
|
|
@ -47,6 +44,7 @@ class SurveyController extends Controller
|
|||
->where('id', $request->validated()['news_club_id'])
|
||||
->first();
|
||||
$customerModel->surveyAnswers()->sync(collect($request->validated()['answers']));
|
||||
|
||||
return redirect()->route('club.news.show', $newsClubModel->slug)
|
||||
->with('success', trans('Votre réponse à bien été enregistrée !'));
|
||||
});
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ use App\Models\Notification;
|
|||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Pagination\LengthAwarePaginator as LengthAwarePaginatorCustom;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
|
@ -42,8 +44,7 @@ class Controller extends BaseController
|
|||
// @phpstan-ignore-next-line
|
||||
->whereNotIn('id', $customerModel->readNotifications->pluck('id'))
|
||||
->filter(function (Notification $notificationModel) {
|
||||
return $notificationModel->notifiable_type === Message::class and
|
||||
!is_null($notificationModel->customer_id);
|
||||
return $notificationModel->notifiable_type === Message::class and ! is_null($notificationModel->customer_id);
|
||||
})
|
||||
->count());
|
||||
$discountCache = Cache::remember(
|
||||
|
|
@ -54,15 +55,14 @@ class Controller extends BaseController
|
|||
}
|
||||
);
|
||||
View::share('discountsCustomerCount', $discountCache);
|
||||
} //end if
|
||||
} // end if
|
||||
|
||||
return $next($request);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the redirection path for FO Auth controllers.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function authLoggedRedirectPath(): string
|
||||
{
|
||||
|
|
@ -71,36 +71,29 @@ class Controller extends BaseController
|
|||
|
||||
/**
|
||||
* Get a paginate resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function jsonPaginateModels(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function jsonPaginateModels(Request $request): JsonResponse
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Model $models */
|
||||
$models = $request->targetModel::query()
|
||||
->where($request->input('fieldName') ?? 'name', 'like', "%{$request->input('search')}%")
|
||||
->orderBy($request->input('fieldName') ?? 'name', 'ASC')
|
||||
->paginate($request->input('paginate') ?? 10);
|
||||
|
||||
return \response()->json($models);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get models titles for search input propositions.
|
||||
*
|
||||
* @param Builder $query
|
||||
* @param string $searchField
|
||||
* @param string|null $search
|
||||
* @return \Illuminate\Pagination\LengthAwarePaginator
|
||||
*/
|
||||
public function getModelsTitles(
|
||||
Builder $query,
|
||||
string $searchField,
|
||||
string|null $search = null
|
||||
): \Illuminate\Pagination\LengthAwarePaginator {
|
||||
?string $search = null
|
||||
): LengthAwarePaginator {
|
||||
$modelsTitles = [];
|
||||
$searchLower = Str::lower($search);
|
||||
$query->when(!is_null($search), function (Builder $q) use ($searchLower, $searchField) {
|
||||
$query->when(! is_null($search), function (Builder $q) use ($searchLower, $searchField) {
|
||||
$q->where($searchField, 'like', "%{$searchLower}%");
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -108,22 +101,24 @@ class Controller extends BaseController
|
|||
->pluck($searchField)
|
||||
->each(function (string $title) use (&$modelsTitles, $searchLower) {
|
||||
if (count($modelsTitles) < 5) {
|
||||
foreach (explode(" ", $title) as $word) {
|
||||
foreach (explode(' ', $title) as $word) {
|
||||
$word = Str::lower($word);
|
||||
if (
|
||||
strlen($word) > 3
|
||||
&& !in_array($word, $modelsTitles)
|
||||
&& ! in_array($word, $modelsTitles)
|
||||
&& str_contains($word, $searchLower)
|
||||
) {
|
||||
$modelsTitles[] = $word;
|
||||
}
|
||||
}
|
||||
|
||||
return $modelsTitles;
|
||||
}
|
||||
})
|
||||
->toArray();
|
||||
\sort($modelsTitles);
|
||||
$titles = array_slice($modelsTitles, 0, 5);
|
||||
|
||||
return new LengthAwarePaginatorCustom($titles, count($titles), (count($titles) <= 0) ? 1 : count($titles));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@
|
|||
|
||||
namespace App\Http\Controllers\Fo;
|
||||
|
||||
use App\Enums\Department;
|
||||
use App\Enums\Settings\SettingsType;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Breeder;
|
||||
use App\Models\GeneralSetting;
|
||||
use App\Models\OcbBreeder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -15,10 +17,8 @@ class BreederController extends Controller
|
|||
{
|
||||
/**
|
||||
* Get an array of total count of breeders per department.
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function getBreederCountPerDepartment(): \Illuminate\Http\JsonResponse
|
||||
public function getBreederCountPerDepartment(): JsonResponse
|
||||
{
|
||||
// TODO: mettre à jour le cache lors de l'édition/ajout/suppression d'un éleveur.
|
||||
$breederCountPerDepartment = Cache::remember(
|
||||
|
|
@ -32,16 +32,14 @@ class BreederController extends Controller
|
|||
->get()->toArray();
|
||||
}
|
||||
);
|
||||
|
||||
return response()->json($breederCountPerDepartment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the breeders in a given department.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function getDepartmentBreeders(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function getDepartmentBreeders(Request $request): JsonResponse
|
||||
{
|
||||
// TODO: checker si le departement existe.
|
||||
// TODO: mettre à jour le cache lors de l'édition/ajout/suppression d'un éleveur.
|
||||
|
|
@ -52,17 +50,17 @@ class BreederController extends Controller
|
|||
return Breeder::query()
|
||||
->where('published', true)
|
||||
->where('is_highlighted', true)
|
||||
->where('department', \App\Enums\Department::make($request->DEPARTMENT))
|
||||
->where('department', Department::make($request->DEPARTMENT))
|
||||
->get()->toArray();
|
||||
}
|
||||
);
|
||||
|
||||
return response()->json($breeders);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the breeders views in a given department.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array<string>
|
||||
*/
|
||||
public function getDepartmentBreedersViews(Request $request): array
|
||||
|
|
@ -70,11 +68,11 @@ class BreederController extends Controller
|
|||
return Breeder::query()
|
||||
->where('published', true)
|
||||
->where('is_highlighted', true)
|
||||
->where('department', \App\Enums\Department::make($request->DEPARTMENT))
|
||||
->where('department', Department::make($request->DEPARTMENT))
|
||||
->get()
|
||||
->map(function ($breederModel) {
|
||||
return view('fo.partials.breeder-card', [
|
||||
'model' => $breederModel,
|
||||
'model' => $breederModel,
|
||||
'isSlider' => true,
|
||||
])->render();
|
||||
})->toArray();
|
||||
|
|
@ -82,8 +80,6 @@ class BreederController extends Controller
|
|||
|
||||
/**
|
||||
* Get all the breeders views in a given department.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getManageableTextComponent(): array
|
||||
{
|
||||
|
|
@ -92,9 +88,6 @@ class BreederController extends Controller
|
|||
|
||||
/**
|
||||
* Get all the breeders views in a given department.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function searchOcbBreedersCards(Request $request): array
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,19 +10,18 @@ use App\Models\NewsBreeding;
|
|||
use App\Models\OcbBreeder;
|
||||
use App\Models\SectionApproach;
|
||||
use App\Models\StaticPage;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class BreedingController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the given breeding page.
|
||||
*
|
||||
* @param \App\Models\StaticPage $staticPage
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function breedingPage(StaticPage $staticPage): \Illuminate\Contracts\View\View
|
||||
public function breedingPage(StaticPage $staticPage): View
|
||||
{
|
||||
$newsBreedingModels = NewsBreeding::getPublishedOrderedForType($staticPage);
|
||||
|
||||
return view('fo.pages.breeding.show', [
|
||||
'staticPageModel' => $staticPage,
|
||||
'newsBreedingModels' => $newsBreedingModels,
|
||||
|
|
@ -31,10 +30,8 @@ class BreedingController extends Controller
|
|||
|
||||
/**
|
||||
* Display the given breeding page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function ocbBreederPage(): \Illuminate\Contracts\View\View
|
||||
public function ocbBreederPage(): View
|
||||
{
|
||||
$ocbBreederModels = OcbBreeder::getOcbBreederCards();
|
||||
$staticPage = StaticPage::query()->where('type', StaticPageType::ouiCBon)->first();
|
||||
|
|
@ -43,23 +40,20 @@ class BreedingController extends Controller
|
|||
->with('category')
|
||||
->where('page_id', $staticPage->id)
|
||||
->get()
|
||||
->groupBy(fn($section) => $section->category?->name);
|
||||
->groupBy(fn ($section) => $section->category?->name);
|
||||
|
||||
return view('fo.pages.breeding.oui-c-est-bon', [
|
||||
'ocbBreederModels' => $ocbBreederModels,
|
||||
'staticPageModel' => $staticPage,
|
||||
'ocbBreederModels' => $ocbBreederModels,
|
||||
'staticPageModel' => $staticPage,
|
||||
'categoryApproachModels' => $categoryApproachModels,
|
||||
'sections' => $sections
|
||||
'sections' => $sections,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the given breeding article.
|
||||
*
|
||||
* @param \App\Models\StaticPage $staticPage
|
||||
* @param \App\Models\NewsBreeding $newsBreeding
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function breedingArticle(StaticPage $staticPage, NewsBreeding $newsBreeding): \Illuminate\Contracts\View\View
|
||||
public function breedingArticle(StaticPage $staticPage, NewsBreeding $newsBreeding): View
|
||||
{
|
||||
$asideNewsModels = NewsBreeding::query()
|
||||
->whereHas('staticpage', function (Builder $query) use ($staticPage) {
|
||||
|
|
@ -74,16 +68,14 @@ class BreedingController extends Controller
|
|||
return view('fo.pages.breeding.article', [
|
||||
'staticPageModel' => $staticPage,
|
||||
'newsBreedingModel' => $newsBreeding,
|
||||
'asideNewsModels' => $asideNewsModels
|
||||
'asideNewsModels' => $asideNewsModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the given breeding page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function exitOutsidePage(): \Illuminate\Contracts\View\View
|
||||
public function exitOutsidePage(): View
|
||||
{
|
||||
$staticPage = StaticPage::query()->where('type', StaticPageType::exitOutside)->first();
|
||||
$sliderImages = CollectionHelper::mapSlidesToFields($staticPage->data);
|
||||
|
|
@ -92,24 +84,23 @@ class BreedingController extends Controller
|
|||
->with('category')
|
||||
->where('page_id', $staticPage->id)
|
||||
->get()
|
||||
->groupBy(fn($section) => $section->category?->name);
|
||||
->groupBy(fn ($section) => $section->category?->name);
|
||||
|
||||
return view('fo.pages.breeding.sortant-a-l-exterieur', [
|
||||
'staticPageModel' => $staticPage,
|
||||
'sliderImages' => $sliderImages,
|
||||
'staticPageModel' => $staticPage,
|
||||
'sliderImages' => $sliderImages,
|
||||
'categoryApproachModels' => $categoryApproachModels,
|
||||
'sections' => $sections,
|
||||
'sections' => $sections,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display our farms page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function ourFarmsPage(): \Illuminate\Contracts\View\View
|
||||
public function ourFarmsPage(): View
|
||||
{
|
||||
$staticPage = StaticPage::query()->where('type', StaticPageType::ourFarms)->first();
|
||||
|
||||
return view('fo.pages.breeding.index', ['staticPageModel' => $staticPage]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,37 +5,37 @@ namespace App\Http\Controllers\Fo;
|
|||
use App\Enums\StaticPageType;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\StaticPage;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class CommitmentController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Build the list of commitment navigation models from cached static pages.
|
||||
*
|
||||
* @return \Illuminate\Support\Collection<int, array{picto: array<string, string>, type: string, link: string}>
|
||||
*/
|
||||
private function getCommitmentModels(): \Illuminate\Support\Collection
|
||||
private function getCommitmentModels(): Collection
|
||||
{
|
||||
return StaticPage::getCachedCommitmentsStaticPages()
|
||||
->map(fn($page) => [
|
||||
'title' => $page->type->label(),
|
||||
'picto' => $page->data['picto_navigation'] ?? null,
|
||||
'activePicto' => $page->data['picto_banner'] ?? null,
|
||||
'type' => $page->type->value,
|
||||
'link' => route($page->type->routeForCommitments()),
|
||||
->map(fn ($page) => [
|
||||
'title' => $page->type->label(),
|
||||
'picto' => $page->data['picto_navigation'] ?? null,
|
||||
'activePicto' => $page->data['picto_banner'] ?? null,
|
||||
'type' => $page->type->value,
|
||||
'link' => route($page->type->routeForCommitments()),
|
||||
])
|
||||
->filter(fn($item) => !empty($item['picto']['value']))
|
||||
->filter(fn ($item) => ! empty($item['picto']['value']))
|
||||
->values();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a commitment page view with its static page model and navigation models.
|
||||
*
|
||||
* @param StaticPageType $type The commitment page type to load.
|
||||
* @param string $view The fully qualified Blade view name to render.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
* @param StaticPageType $type The commitment page type to load.
|
||||
* @param string $view The fully qualified Blade view name to render.
|
||||
*/
|
||||
private function renderPage(StaticPageType $type, string $view): \Illuminate\Contracts\View\View
|
||||
private function renderPage(StaticPageType $type, string $view): View
|
||||
{
|
||||
$staticPageModel = StaticPage::getCachedStaticPage($type);
|
||||
$staticPageModel->load(['sections.blocks', 'sections.pictos']);
|
||||
|
|
@ -48,45 +48,40 @@ class CommitmentController extends Controller
|
|||
|
||||
/**
|
||||
* Display the given commitment page.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getRestpectEarthPage(): \Illuminate\Contracts\View\View
|
||||
public function getRestpectEarthPage(): View
|
||||
{
|
||||
return $this->renderPage(StaticPageType::respectTheEarth, 'fo.pages.commitments.respect');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the given commitment page.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getLivingToghether(): \Illuminate\Contracts\View\View
|
||||
public function getLivingToghether(): View
|
||||
{
|
||||
return $this->renderPage(StaticPageType::forLivingTogether, 'fo.pages.commitments.life');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the given commitment brand poultry page.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getBrandPoultry(): \Illuminate\Contracts\View\View
|
||||
public function getBrandPoultry(): View
|
||||
{
|
||||
return $this->renderPage(StaticPageType::poultryBrand, 'fo.pages.commitments.brand');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the given page.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getRaiseSustainably(): \Illuminate\Contracts\View\View
|
||||
public function getRaiseSustainably(): View
|
||||
{
|
||||
return $this->renderPage(StaticPageType::raiseSustainably, 'fo.pages.commitments.raise');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the given page.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getFeedProperly(): \Illuminate\Contracts\View\View
|
||||
public function getFeedProperly(): View
|
||||
{
|
||||
return $this->renderPage(StaticPageType::feedProperly, 'fo.pages.commitments.eat');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,26 +2,27 @@
|
|||
|
||||
namespace App\Http\Controllers\Fo;
|
||||
|
||||
use App\Models\OptinConsent;
|
||||
use LDC\LDCCRM\Models\SingleOptin;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Fo\ConsentRequest;
|
||||
use LDC\LDCCRM\Exceptions\CrmException;
|
||||
use App\Models\OptinConsent;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use LDC\LDCCRM\Exceptions\ApiErrorException;
|
||||
use LDC\LDCCRM\Exceptions\CrmException;
|
||||
use LDC\LDCCRM\Exceptions\ValidationException;
|
||||
use LDC\LDCCRM\Models\SingleOptin;
|
||||
|
||||
class ConsentController extends Controller
|
||||
{
|
||||
/**
|
||||
* Check if a customer consent to receive newsletters.
|
||||
*
|
||||
* @param \App\Http\Requests\Fo\ConsentRequest $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
|
||||
*
|
||||
* @throws \LDC\LDCCRM\Exceptions\ValidationException ValidationException.
|
||||
* @throws \LDC\LDCCRM\Exceptions\CrmException CrmException
|
||||
* @throws \LDC\LDCCRM\Exceptions\ApiErrorException ApiErrorException
|
||||
*/
|
||||
public function consent(ConsentRequest $request): \Illuminate\Contracts\View\View
|
||||
public function consent(ConsentRequest $request): View
|
||||
{
|
||||
$isSubscribed = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ use App\Jobs\Mails\SendNLMail;
|
|||
use App\Jobs\Mails\SendPasserelleMail;
|
||||
use App\Models\MailContactData;
|
||||
use App\Models\StaticPage;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
|
@ -21,29 +24,25 @@ class ContactController extends Controller
|
|||
{
|
||||
/**
|
||||
* Contact page.
|
||||
*
|
||||
* @param \App\Models\StaticPage $staticPageModel
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function contact(StaticPage $staticPageModel): \Illuminate\Contracts\View\View
|
||||
public function contact(StaticPage $staticPageModel): View
|
||||
{
|
||||
$staticPageModel = StaticPage::getCachedStaticPage(StaticPageType::contact);
|
||||
|
||||
return view('fo.pages.contact', ['staticPageModel' => $staticPageModel]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send contact form data.
|
||||
*
|
||||
* @param \App\Http\Requests\Fo\ContactFormRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function contactSubmit(ContactFormRequest $request): \Illuminate\Http\RedirectResponse
|
||||
public function contactSubmit(ContactFormRequest $request): RedirectResponse
|
||||
{
|
||||
/** @var array<string, mixed> $validatedData */
|
||||
$validatedData = $request->validated();
|
||||
|
||||
return DB::transaction(function () use ($validatedData) {
|
||||
try {
|
||||
$joinFilePath = ContactFormType::make($validatedData['type'])->hasFileInput() && !empty($validatedData['joinFile'])
|
||||
$joinFilePath = ContactFormType::make($validatedData['type'])->hasFileInput() && ! empty($validatedData['joinFile'])
|
||||
? $this->storeFile($validatedData['joinFile'])
|
||||
: null;
|
||||
$data = new MailContactData(
|
||||
|
|
@ -59,7 +58,7 @@ class ContactController extends Controller
|
|||
app()->setLocale('nl');
|
||||
\dispatch(new SendNLMail($data, $joinFilePath));
|
||||
} else {
|
||||
// Send to the CRM.
|
||||
// Send to the CRM.
|
||||
if ($joinFilePath) {
|
||||
$relativePath = str_replace(storage_path('app/public') . '/', '', $joinFilePath);
|
||||
$binary = Storage::disk('public')->get($relativePath);
|
||||
|
|
@ -82,24 +81,21 @@ class ContactController extends Controller
|
|||
|
||||
// Send mail.
|
||||
\dispatch(new SendClaimMail($data, $joinFilePath));
|
||||
}//end if
|
||||
}// end if
|
||||
|
||||
return back()->with('success', trans('contact.message_contact_send'));
|
||||
} catch (AbortContactMailer $e) {
|
||||
Log::error('Fail to build mail from complain page ', ['exception' => $e]);
|
||||
} //end try
|
||||
} // end try
|
||||
|
||||
return back()->withInput()->with('error', trans('contact.message_contact_failed'));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Store the file sent in the request if it exists.
|
||||
*
|
||||
* @param \Illuminate\Http\UploadedFile|null $file
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
private function storeFile(\Illuminate\Http\UploadedFile|null $file): string|null
|
||||
private function storeFile(?UploadedFile $file): ?string
|
||||
{
|
||||
$joinFilePath = null;
|
||||
$joinFile = '';
|
||||
|
|
@ -111,6 +107,7 @@ class ContactController extends Controller
|
|||
);
|
||||
$joinFilePath = storage_path('app/' . $joinFile);
|
||||
}
|
||||
|
||||
return $joinFilePath;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,17 +3,17 @@
|
|||
namespace App\Http\Controllers\Fo;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class ExportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Contact page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function nl(): \Illuminate\Contracts\View\View
|
||||
public function nl(): View
|
||||
{
|
||||
app()->setLocale('nl');
|
||||
|
||||
return view('fo.pages.export');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,47 +5,42 @@ namespace App\Http\Controllers\Fo;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Lib\Helpers\GamePeriodHelper;
|
||||
use App\Models\GoldenCrushGame;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class GoldenCrushController extends Controller
|
||||
{
|
||||
/**
|
||||
* Reuturn landing page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
$startVote = GamePeriodHelper::isGamePeriod();
|
||||
|
||||
return view('fo.pages.goldenCrush.golden-crush', ['startVote' => $startVote]);
|
||||
}
|
||||
|
||||
/**
|
||||
* End of participation landing page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function endParticipation(): \Illuminate\Contracts\View\View
|
||||
public function endParticipation(): View
|
||||
{
|
||||
return $this->render('fo.pages.goldenCrush.end-of-participation');
|
||||
}
|
||||
|
||||
/**
|
||||
* End of game landing page.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function endGame(): \Illuminate\Contracts\View\View
|
||||
/**
|
||||
* End of game landing page.
|
||||
*/
|
||||
public function endGame(): View
|
||||
{
|
||||
return $this->render('fo.pages.goldenCrush.end-game');
|
||||
}
|
||||
|
||||
/**
|
||||
* Render video in view.
|
||||
*
|
||||
* @param string $view for inject videos.
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
private function render(string $view): \Illuminate\Contracts\View\View
|
||||
/**
|
||||
* Render video in view.
|
||||
*
|
||||
* @param string $view for inject videos.
|
||||
*/
|
||||
private function render(string $view): View
|
||||
{
|
||||
$videos = GoldenCrushGame::getVideos();
|
||||
|
||||
|
|
|
|||
|
|
@ -9,31 +9,31 @@ use App\Http\Requests\Fo\SingleOptinRequest;
|
|||
use App\Http\Requests\Fo\UnsubscribeNewsletterRequest;
|
||||
use App\Models\DemarcheSlide;
|
||||
use App\Models\Discount;
|
||||
use App\Models\MainSlide;
|
||||
use App\Models\Product;
|
||||
use App\Models\GeneralSetting;
|
||||
use App\Models\MainSlide;
|
||||
use App\Models\News;
|
||||
use App\Models\Product;
|
||||
use App\Models\Range;
|
||||
use App\Models\Recipe;
|
||||
use App\Models\StaticPage;
|
||||
use App\Models\Video;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use LDC\LDCCRM\Enums\ApiError;
|
||||
use LDC\LDCCRM\Exceptions\ApiErrorException;
|
||||
use LDC\LDCCRM\Exceptions\CrmException;
|
||||
use LDC\LDCCRM\Exceptions\ValidationException;
|
||||
use LDC\LDCCRM\Models\SingleOptin;
|
||||
use LDC\LDCCRM\Models\Customer;
|
||||
use LDC\LDCCRM\Models\SingleOptin;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
$productCacheKey = 'HomeProductsViews' . (auth('club')->user() ? '_' . auth('club')->user()->id : '');
|
||||
$recipeCacheKey = 'HomeRecipesViews' . (auth('club')->user() ? '_' . auth('club')->user()->id : '');
|
||||
|
|
@ -53,6 +53,7 @@ class HomeController extends Controller
|
|||
$discountsTotal = Discount::getCachedDiscounts()->sum('value');
|
||||
|
||||
$staticPageModel->load(['sections.blocks', 'sections.pictos']);
|
||||
|
||||
return view('fo.pages.home', compact(
|
||||
'staticPageModel',
|
||||
'mainSlideModels',
|
||||
|
|
@ -70,8 +71,8 @@ class HomeController extends Controller
|
|||
/**
|
||||
* Call the CRM to add a single optin
|
||||
*
|
||||
* @param \App\Http\Requests\Fo\SingleOptinRequest $request
|
||||
* @return string|array|null|\Illuminate\Contracts\Translation\Translator
|
||||
*
|
||||
* @throws \LDC\LDCCRM\Exceptions\ValidationException ValidationException.
|
||||
* @throws \Illuminate\Contracts\Container\BindingResolutionException BindingResolutionException.
|
||||
*/
|
||||
|
|
@ -79,27 +80,27 @@ class HomeController extends Controller
|
|||
{
|
||||
try {
|
||||
SingleOptin::setStatus($request->email, true);
|
||||
return \response(trans("Votre inscription à la newsletter a été prise en compte"), 200);
|
||||
|
||||
return \response(trans('Votre inscription à la newsletter a été prise en compte'), 200);
|
||||
} catch (ApiErrorException $e) {
|
||||
// Il y a deja un customerInfo avec optin a true pour ce customer.
|
||||
if ($e->getApiError()->equals(ApiError::singleOptinCustomerExists)) {
|
||||
return trans('Vous êtes déjà inscrit avec cette adresse email');
|
||||
}
|
||||
\report($e);
|
||||
|
||||
return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 404);
|
||||
} catch (CrmException $e) {
|
||||
\report($e);
|
||||
|
||||
return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 404);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* unsubscribeNewsletter method
|
||||
*
|
||||
* @param \App\Http\Requests\Fo\UnsubscribeNewsletterRequest $request
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function unsubscribeNewsletter(UnsubscribeNewsletterRequest $request): \Illuminate\Contracts\View\View
|
||||
public function unsubscribeNewsletter(UnsubscribeNewsletterRequest $request): View
|
||||
{
|
||||
$error = null;
|
||||
$hashcode = $request->hashcode;
|
||||
|
|
@ -132,25 +133,25 @@ class HomeController extends Controller
|
|||
if (app()->bound('sentry')) {
|
||||
app('sentry')->captureException($e);
|
||||
}
|
||||
} //end try
|
||||
} // end try
|
||||
|
||||
if (!is_null($error)) {
|
||||
if (! is_null($error)) {
|
||||
return view('fo.pages.newsletter-unsubscribe')->with(
|
||||
'error',
|
||||
trans('Une erreur est survenue, merci de réessayer ultérieurement')
|
||||
);
|
||||
}
|
||||
|
||||
return view('fo.pages.newsletter-unsubscribe');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function updateHotNewsSatus(): \Illuminate\Http\JsonResponse
|
||||
public function updateHotNewsSatus(): JsonResponse
|
||||
{
|
||||
Cache::put('hotNewsIsDisplayed', true, now()->addHours(24));
|
||||
|
||||
return response()->json();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,17 +7,17 @@ use App\Http\Controllers\Controller;
|
|||
use App\Models\News;
|
||||
use App\Models\NewsCategory;
|
||||
use App\Models\StaticPage;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class NewsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): \Illuminate\Contracts\View\View
|
||||
public function index(): View
|
||||
{
|
||||
$staticPageModel = StaticPage::getCachedStaticPage(StaticPageType::news);
|
||||
$newsCategories = NewsCategory::getPublishedOrdered();
|
||||
|
|
@ -26,17 +26,14 @@ class NewsController extends Controller
|
|||
return view('fo.pages.news.index', [
|
||||
'newsViews' => $newsViews,
|
||||
'newsCategories' => $newsCategories,
|
||||
'staticPageModel' => $staticPageModel
|
||||
'staticPageModel' => $staticPageModel,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view of a specific news.
|
||||
*
|
||||
* @param string $slug
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(string $slug): \Illuminate\Contracts\View\View
|
||||
public function show(string $slug): View
|
||||
{
|
||||
/** @var \App\Models\News|null $newsModel Current news model */
|
||||
$newsModel = News::query()
|
||||
|
|
@ -59,17 +56,14 @@ class NewsController extends Controller
|
|||
|
||||
return view('fo.pages.news.show', [
|
||||
'newsModel' => $newsModel,
|
||||
'asideNewsModels' => $asideNewsModels
|
||||
'asideNewsModels' => $asideNewsModels,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get filtered news.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function jsonGetNewsViewsByCategory(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function jsonGetNewsViewsByCategory(Request $request): JsonResponse
|
||||
{
|
||||
return response()->json(News::getNewsViewsByNewsCategory($request->LEGENDSLUG));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,9 +13,11 @@ use App\Models\Recipe;
|
|||
use App\Models\StaticPage;
|
||||
use App\Models\Submeat;
|
||||
use App\Models\Subrange;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
|
|
@ -25,23 +27,21 @@ class ProductController extends Controller
|
|||
* Use for pagination,
|
||||
* number of product models per page.
|
||||
*
|
||||
* @var integer
|
||||
* @var int
|
||||
*/
|
||||
private $productModelsPerPage = 8;
|
||||
|
||||
/**
|
||||
* Get products by a specific range into a json response.
|
||||
*
|
||||
* @param \Illuminate\Pagination\LengthAwarePaginator|null $productModelsFiltered
|
||||
* @param \Illuminate\Support\Collection<\App\Models\Subrange>|null $subrangeModelsFiltered
|
||||
* @param \Illuminate\Support\Collection<\App\Models\Submeat>|null $submeatModelsFiltered
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
* @param \Illuminate\Support\Collection<\App\Models\Subrange>|null $subrangeModelsFiltered
|
||||
* @param \Illuminate\Support\Collection<\App\Models\Submeat>|null $submeatModelsFiltered
|
||||
*/
|
||||
public function index(
|
||||
LengthAwarePaginator|null $productModelsFiltered = null,
|
||||
Collection|null $subrangeModelsFiltered = null,
|
||||
Collection|null $submeatModelsFiltered = null,
|
||||
): \Illuminate\Contracts\View\View {
|
||||
?LengthAwarePaginator $productModelsFiltered = null,
|
||||
?Collection $subrangeModelsFiltered = null,
|
||||
?Collection $submeatModelsFiltered = null,
|
||||
): View {
|
||||
|
||||
/** @var \Illuminate\Pagination\LengthAwarePaginator $productModels */
|
||||
$productModels = $productModelsFiltered ?? Product::query()
|
||||
|
|
@ -55,6 +55,7 @@ class ProductController extends Controller
|
|||
$subrangeModels = $subrangeModelsFiltered ?? Subrange::getPublishedOrdered();
|
||||
$meatModels = Meat::getPublishedOrderedWithSubmeats();
|
||||
$submeatModels = $submeatModelsFiltered ?? Submeat::getPublishedOrdered();
|
||||
|
||||
return view('fo.pages.products.index', [
|
||||
'viewsPaginate' => CollectionHelper::getViewsFromPaginateModels(
|
||||
$productModels,
|
||||
|
|
@ -73,11 +74,8 @@ class ProductController extends Controller
|
|||
|
||||
/**
|
||||
* Get the view of a specific product.
|
||||
*
|
||||
* @param string $slug
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(string $slug): \Illuminate\Contracts\View\View
|
||||
public function show(string $slug): View
|
||||
{
|
||||
/** @var \App\Models\Product|null $productModel Current product model */
|
||||
$productModel = Product::query()->where([['slug', $slug], ['published', true]])->first();
|
||||
|
|
@ -123,9 +121,6 @@ class ProductController extends Controller
|
|||
|
||||
/**
|
||||
* Get product models titles for search input propositions.
|
||||
*
|
||||
* @param \App\Models\Product $productModel
|
||||
* @return array
|
||||
*/
|
||||
public function getSiblingModels(Product $productModel): array
|
||||
{
|
||||
|
|
@ -135,10 +130,10 @@ class ProductController extends Controller
|
|||
/** @var string $slug */
|
||||
$slug = $filter
|
||||
? ((is_null($productModel->{$filter})
|
||||
? $productModel->{"sub" . $this->cleanSubSubFilter($filter)}
|
||||
->{$this->cleanSubSubFilter($filter)} ?? null
|
||||
: $productModel->{$filter})->slug ?? "")
|
||||
: "";
|
||||
? $productModel->{'sub' . $this->cleanSubSubFilter($filter)}
|
||||
->{$this->cleanSubSubFilter($filter)} ?? null
|
||||
: $productModel->{$filter})->slug ?? '')
|
||||
: '';
|
||||
|
||||
// FIXME: the previous element are added on 30/10/24 to avoid error when productFilters was set on "submeat"
|
||||
// for example and user access to product which not have submeat relation -> "Attempt to read property 'sub***' on null"
|
||||
|
|
@ -171,7 +166,7 @@ class ProductController extends Controller
|
|||
$collectionIndex = $productModelsList->search(function ($productModelItem, $key) use ($productModel) {
|
||||
if ($productModelItem->getKey() === $productModel->getKey()) {
|
||||
return $key;
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
$productModelSibling[0] = (is_null($productModelsList->get($collectionIndex - 1)))
|
||||
|
|
@ -180,27 +175,22 @@ class ProductController extends Controller
|
|||
$productModelSibling[1] = (is_null($productModelsList->get($collectionIndex + 1)))
|
||||
? $productModelsList->first()
|
||||
: $productModelsList->get($collectionIndex + 1);
|
||||
|
||||
return $productModelSibling;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get product models titles for search input propositions.
|
||||
*
|
||||
* @param string|null $search
|
||||
* @return \Illuminate\Pagination\LengthAwarePaginator
|
||||
*/
|
||||
public function getProductModelsTitles(string|null $search = null): \Illuminate\Pagination\LengthAwarePaginator
|
||||
public function getProductModelsTitles(?string $search = null): LengthAwarePaginator
|
||||
{
|
||||
return $this->getModelsTitles(Product::query(), 'label', $search);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of words for the search input propositions.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function getWordsList(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function getWordsList(Request $request): JsonResponse
|
||||
{
|
||||
return response()->json($this->getProductModelsTitles($request->input('search')));
|
||||
}
|
||||
|
|
@ -208,11 +198,8 @@ class ProductController extends Controller
|
|||
/**
|
||||
* Get products by specific words,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getProductsByWords(Request $request): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
public function getProductsByWords(Request $request): JsonResponse | View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $productModels */
|
||||
$productModels = Product::query()
|
||||
|
|
@ -225,7 +212,7 @@ class ProductController extends Controller
|
|||
if ($search) {
|
||||
$this->searchQuery(
|
||||
$productModels,
|
||||
str_replace(",", " ", $request->input('words')),
|
||||
str_replace(',', ' ', $request->input('words')),
|
||||
null,
|
||||
'label',
|
||||
);
|
||||
|
|
@ -242,26 +229,24 @@ class ProductController extends Controller
|
|||
'children' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($productModels, collect());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get products by a specific meat,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getProductsByRange(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
Cache::put('productsFilter', 'range');
|
||||
$rangeModel = Range::query()
|
||||
->where('slug', $request->model_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$subrangeModels = Subrange::query()
|
||||
->when(!is_null($rangeModel), function (Builder $q) use ($rangeModel) {
|
||||
->when(! is_null($rangeModel), function (Builder $q) use ($rangeModel) {
|
||||
$q->where('range_id', $rangeModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -270,13 +255,13 @@ class ProductController extends Controller
|
|||
|
||||
$productModels = Product::query()
|
||||
->with(['range', 'subrange', 'meat', 'submeat'])
|
||||
->when(!is_null($rangeModel), function (Builder $q) use ($rangeModel, $request) {
|
||||
->when(! is_null($rangeModel), function (Builder $q) use ($rangeModel, $request) {
|
||||
$q->where(function (Builder $q) use ($rangeModel, $request) {
|
||||
$q->whereHas('range', function (Builder $q) use ($rangeModel) {
|
||||
$q->where('published', true)->where('id', $rangeModel->getKey());
|
||||
})->orWhereHas('subrange', function (Builder $q) use ($rangeModel, $request) {
|
||||
if ($request->child_slug) {
|
||||
$q->where('published', true)->where("slug", $request->child_slug);
|
||||
$q->where('published', true)->where('slug', $request->child_slug);
|
||||
} else {
|
||||
$q->where('published', true)->whereIn('id', $rangeModel->subranges->pluck('id')->toArray());
|
||||
}
|
||||
|
|
@ -305,13 +290,10 @@ class ProductController extends Controller
|
|||
/**
|
||||
* Get products by a specific submeat,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getProductsBySubrange(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
Cache::put('productsFilter', 'subrange');
|
||||
$rangeModel = Range::query()
|
||||
->where('slug', $request->model_slug)
|
||||
|
|
@ -319,7 +301,7 @@ class ProductController extends Controller
|
|||
->first();
|
||||
|
||||
$subrangeModel = Subrange::query()
|
||||
->when(!is_null($rangeModel), function (Builder $q) use ($rangeModel) {
|
||||
->when(! is_null($rangeModel), function (Builder $q) use ($rangeModel) {
|
||||
$q->where('range_id', $rangeModel->getKey());
|
||||
})
|
||||
->where('slug', $request->child_slug)
|
||||
|
|
@ -327,7 +309,7 @@ class ProductController extends Controller
|
|||
->first();
|
||||
|
||||
$subrangeModels = Subrange::query()
|
||||
->when(!is_null($rangeModel), function (Builder $q) use ($rangeModel) {
|
||||
->when(! is_null($rangeModel), function (Builder $q) use ($rangeModel) {
|
||||
$q->where('range_id', $rangeModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -336,7 +318,7 @@ class ProductController extends Controller
|
|||
$productModels = Product::query()
|
||||
->with(['range', 'subrange', 'meat', 'submeat'])
|
||||
->where('published', true)
|
||||
->when(!is_null($subrangeModel), function (Builder $q) use ($subrangeModel) {
|
||||
->when(! is_null($subrangeModel), function (Builder $q) use ($subrangeModel) {
|
||||
$q->whereHas('subrange', function (Builder $q) use ($subrangeModel) {
|
||||
$q->where('published', true)->where('id', $subrangeModel->getKey());
|
||||
});
|
||||
|
|
@ -355,26 +337,24 @@ class ProductController extends Controller
|
|||
'children' => $subrangeModels,
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($productModels, $subrangeModels);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get products by a specific meat,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getProductsByMeat(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
Cache::put('productsFilter', 'meat');
|
||||
$meatModel = Meat::query()
|
||||
->where('slug', $request->model_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$submeatModels = Submeat::query()
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where('meat_id', $meatModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -382,7 +362,7 @@ class ProductController extends Controller
|
|||
->get();
|
||||
$productModels = Product::query()
|
||||
->with(['range', 'subrange', 'meat', 'submeat'])
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where(function (Builder $q) use ($meatModel) {
|
||||
$q->whereHas('meat', function (Builder $q) use ($meatModel) {
|
||||
$q->where('published', true)->where('id', $meatModel->getKey());
|
||||
|
|
@ -404,33 +384,31 @@ class ProductController extends Controller
|
|||
'children' => $submeatModels,
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($productModels, null, $submeatModels);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get products by a specific submeat,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getProductsBySubmeat(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
Cache::put('productsFilter', 'submeat');
|
||||
$meatModel = Meat::query()
|
||||
->where('slug', $request->model_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$submeatModel = Submeat::query()
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where('meat_id', $meatModel->getKey());
|
||||
})
|
||||
->where('slug', $request->child_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$submeatModels = Submeat::query()
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where('meat_id', $meatModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -439,7 +417,7 @@ class ProductController extends Controller
|
|||
$productModels = Product::query()
|
||||
->with(['range', 'subrange', 'meat', 'submeat'])
|
||||
->where('published', true)
|
||||
->when(!is_null($submeatModel), function (Builder $q) use ($submeatModel) {
|
||||
->when(! is_null($submeatModel), function (Builder $q) use ($submeatModel) {
|
||||
$q->whereHas('submeat', function (Builder $q) use ($submeatModel) {
|
||||
$q->where('published', true)->where('id', $submeatModel->getKey());
|
||||
});
|
||||
|
|
@ -456,6 +434,7 @@ class ProductController extends Controller
|
|||
'children' => $submeatModels,
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($productModels, null, $submeatModels);
|
||||
}
|
||||
|
||||
|
|
@ -463,11 +442,8 @@ class ProductController extends Controller
|
|||
* Get products by a selected product model,
|
||||
* filtered first by product subrange/range,
|
||||
* and by meats/submeats.
|
||||
*
|
||||
* @param \App\Models\Product $productModel
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getProductsFiltered(Product $productModel): \Illuminate\Support\Collection
|
||||
public function getProductsFiltered(Product $productModel): Collection
|
||||
{
|
||||
/** @var int $nbrMaxProducts Maximum number of products required */
|
||||
$nbrMaxProducts = 9;
|
||||
|
|
@ -476,7 +452,7 @@ class ProductController extends Controller
|
|||
$productModels = Product::query()
|
||||
->whereNot('id', $productModel->getKey())
|
||||
->where('published', true)
|
||||
->when(!is_null($productModel->range), function (Builder $q) use ($productModel) {
|
||||
->when(! is_null($productModel->range), function (Builder $q) use ($productModel) {
|
||||
$q->whereHas('range', function (Builder $q) use ($productModel) {
|
||||
$q->where('published', true)->where('id', $productModel->range->getKey());
|
||||
})->orWhereHas('subrange', function (Builder $q) use ($productModel) {
|
||||
|
|
@ -484,7 +460,7 @@ class ProductController extends Controller
|
|||
$q->where('published', true)->where('id', $productModel->range->getKey());
|
||||
});
|
||||
});
|
||||
})->when(!is_null($productModel->subrange), function (Builder $q) use ($productModel) {
|
||||
})->when(! is_null($productModel->subrange), function (Builder $q) use ($productModel) {
|
||||
$q->whereHas('subrange', function (Builder $q) use ($productModel) {
|
||||
$q->where('published', true)->where('id', $productModel->subrange->getKey());
|
||||
});
|
||||
|
|
@ -495,7 +471,7 @@ class ProductController extends Controller
|
|||
$test = Product::query()
|
||||
->whereNot('id', $productModel->getKey())
|
||||
->where('published', true)
|
||||
->when(!is_null($productModel->meat), function (Builder $q) use ($productModel) {
|
||||
->when(! is_null($productModel->meat), function (Builder $q) use ($productModel) {
|
||||
$q->whereHas('meat', function (Builder $q) use ($productModel) {
|
||||
$q->where('published', true)->where('id', $productModel->meat->getKey());
|
||||
})->orWhereHas('submeat', function (Builder $q) use ($productModel) {
|
||||
|
|
@ -503,13 +479,14 @@ class ProductController extends Controller
|
|||
$q->where('published', true)->where('id', $productModel->meat->getKey());
|
||||
});
|
||||
});
|
||||
})->when(!is_null($productModel->submeat), function (Builder $q) use ($productModel) {
|
||||
})->when(! is_null($productModel->submeat), function (Builder $q) use ($productModel) {
|
||||
$q->whereHas('submeat', function (Builder $q) use ($productModel) {
|
||||
$q->where('published', true)->where('id', $productModel->submeat->getKey());
|
||||
});
|
||||
})
|
||||
->get();
|
||||
}
|
||||
|
||||
return $productModels->slice(0, $nbrMaxProducts);
|
||||
}
|
||||
|
||||
|
|
@ -517,11 +494,8 @@ class ProductController extends Controller
|
|||
* Get recipes by a selected product model,
|
||||
* filtered first by products associated,
|
||||
* by meats/submeats and finally by consumption moment.
|
||||
*
|
||||
* @param \App\Models\Product $productModel
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getRecipesFiltered(Product $productModel): \Illuminate\Support\Collection
|
||||
public function getRecipesFiltered(Product $productModel): Collection
|
||||
{
|
||||
/** @var int $nbrMaxRecipes Maximum number of recipes required */
|
||||
$nbrMaxRecipes = 9;
|
||||
|
|
@ -541,7 +515,7 @@ class ProductController extends Controller
|
|||
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])
|
||||
->where('published', true)
|
||||
->whereHas('products', function (Builder $q) use ($productModel) {
|
||||
$q->when(!is_null($productModel->range), function (Builder $q) use ($productModel) {
|
||||
$q->when(! is_null($productModel->range), function (Builder $q) use ($productModel) {
|
||||
$q->whereHas('range', function (Builder $q) use ($productModel) {
|
||||
$q->where('published', true)->where('id', $productModel->range->getKey());
|
||||
})->orWhereHas('subrange', function (Builder $q) use ($productModel) {
|
||||
|
|
@ -549,38 +523,32 @@ class ProductController extends Controller
|
|||
$q->where('published', true)->where('id', $productModel->range->getKey());
|
||||
});
|
||||
});
|
||||
})->when(!is_null($productModel->subrange), function (Builder $q) use ($productModel) {
|
||||
})->when(! is_null($productModel->subrange), function (Builder $q) use ($productModel) {
|
||||
$q->whereHas('subrange', function (Builder $q) use ($productModel) {
|
||||
$q->where('published', true)->where('id', $productModel->subrange->getKey());
|
||||
});
|
||||
});
|
||||
})
|
||||
->get());
|
||||
} //end if
|
||||
} // end if
|
||||
|
||||
return $recipeModels->slice(0, $nbrMaxRecipes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get products by a specific range into a json response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function jsonGetProductsViewsByRange(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function jsonGetProductsViewsByRange(Request $request): JsonResponse
|
||||
{
|
||||
return response()->json(Product::getProductsViewsByRange($request->LEGENDSLUG));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete the "sub" start filter to avoid "subsubrange" when user has some filters
|
||||
* and hard visit a total different product filter
|
||||
*
|
||||
* @param string|null $filter
|
||||
* @return mixed
|
||||
*/
|
||||
private function cleanSubSubFilter(string|null $filter = null): mixed
|
||||
private function cleanSubSubFilter(?string $filter = null): mixed
|
||||
{
|
||||
return str_starts_with($filter, "sub") ? preg_replace('/^sub/', '', $filter) : $filter;
|
||||
return str_starts_with($filter, 'sub') ? preg_replace('/^sub/', '', $filter) : $filter;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,17 +5,15 @@ namespace App\Http\Controllers\Fo;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Fo\StoreRatingRequest;
|
||||
use App\Models\Rating;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RatingController extends Controller
|
||||
{
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \App\Http\Requests\Fo\StoreRatingRequest $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function store(StoreRatingRequest $request): \Illuminate\Http\JsonResponse
|
||||
public function store(StoreRatingRequest $request): JsonResponse
|
||||
{
|
||||
return DB::transaction(function () use ($request) {
|
||||
$validated = $request->validated();
|
||||
|
|
|
|||
|
|
@ -9,14 +9,18 @@ use App\Lib\Helpers\CollectionHelper;
|
|||
use App\Models\ConsumptionMoment;
|
||||
use App\Models\Meat;
|
||||
use App\Models\Rating;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use App\Models\Recipe;
|
||||
use App\Models\StaticPage;
|
||||
use App\Models\Submeat;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Str;
|
||||
use Mccarlosen\LaravelMpdf\LaravelMpdf;
|
||||
|
||||
class RecipeController extends Controller
|
||||
{
|
||||
|
|
@ -24,21 +28,19 @@ class RecipeController extends Controller
|
|||
* Use for pagination,
|
||||
* number of recipe models per page.
|
||||
*
|
||||
* @var integer
|
||||
* @var int
|
||||
*/
|
||||
private $recipeModelsPerPage = 8;
|
||||
|
||||
/**
|
||||
* Get recipes by a specific range into a json response.
|
||||
*
|
||||
* @param \Illuminate\Pagination\LengthAwarePaginator|null $recipeModelsFiltered
|
||||
* @param \Illuminate\Support\Collection<\App\Models\Submeat>|null $submeatModelsFiltered
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
* @param \Illuminate\Support\Collection<\App\Models\Submeat>|null $submeatModelsFiltered
|
||||
*/
|
||||
public function index(
|
||||
LengthAwarePaginator|null $recipeModelsFiltered = null,
|
||||
Collection|null $submeatModelsFiltered = null,
|
||||
): \Illuminate\Contracts\View\View {
|
||||
?LengthAwarePaginator $recipeModelsFiltered = null,
|
||||
?Collection $submeatModelsFiltered = null,
|
||||
): View {
|
||||
/** @var \Illuminate\Pagination\LengthAwarePaginator $recipeModels */
|
||||
$recipeModels = $recipeModelsFiltered ?? Recipe::query()
|
||||
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])
|
||||
|
|
@ -49,8 +51,7 @@ class RecipeController extends Controller
|
|||
$staticPageModel = StaticPage::getCachedStaticPage(StaticPageType::recipes);
|
||||
$consumptionMomentModels = ConsumptionMoment::getOrderedBySlug();
|
||||
$meatModels = Meat::getPublishedOrderedWithSubmeats();
|
||||
$submeatModels = $submeatModelsFiltered ??
|
||||
Submeat::getPublishedOrdered();
|
||||
$submeatModels = $submeatModelsFiltered ?? Submeat::getPublishedOrdered();
|
||||
|
||||
return view('fo.pages.recipes.index', [
|
||||
'viewsPaginate' => CollectionHelper::getViewsFromPaginateModels(
|
||||
|
|
@ -69,17 +70,14 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Get the view of a specific recipe.
|
||||
*
|
||||
* @param string $slug
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show(string $slug): \Illuminate\Contracts\View\View
|
||||
public function show(string $slug): View
|
||||
{
|
||||
/** @var \App\Models\Recipe|null $recipeModel Current recipe model */
|
||||
$recipeModel = Recipe::query()->where([['slug', $slug], ['published', true]])->with([
|
||||
'products.meat',
|
||||
'products.submeat',
|
||||
'products.approach'
|
||||
'products.approach',
|
||||
])->first();
|
||||
if (is_null($recipeModel)) {
|
||||
abort(404);
|
||||
|
|
@ -98,23 +96,18 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Get recipe models titles for search input propositions.
|
||||
*
|
||||
* @param string|null $search
|
||||
* @return \Illuminate\Pagination\LengthAwarePaginator
|
||||
*/
|
||||
public function getRecipeModelsTitles(string|null $search = null): \Illuminate\Pagination\LengthAwarePaginator
|
||||
public function getRecipeModelsTitles(?string $search = null): LengthAwarePaginator
|
||||
{
|
||||
$query = Recipe::query()->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment']);
|
||||
|
||||
return $this->getModelsTitles($query, 'title', $search);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of words for the search input propositions.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function getWordsList(Request $request): \Illuminate\Http\JsonResponse
|
||||
public function getWordsList(Request $request): JsonResponse
|
||||
{
|
||||
return response()->json($this->getRecipeModelsTitles($request->input('search')));
|
||||
}
|
||||
|
|
@ -122,11 +115,8 @@ class RecipeController extends Controller
|
|||
/**
|
||||
* Get recipes by specific words,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getRecipesByWords(Request $request): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
public function getRecipesByWords(Request $request): JsonResponse | View
|
||||
{
|
||||
/** @var \Illuminate\Database\Eloquent\Builder $recipeModels */
|
||||
$recipeModels = Recipe::query()
|
||||
|
|
@ -139,7 +129,7 @@ class RecipeController extends Controller
|
|||
if ($search) {
|
||||
$this->searchQuery(
|
||||
$recipeModels,
|
||||
str_replace(",", " ", $request->input('words')),
|
||||
str_replace(',', ' ', $request->input('words')),
|
||||
null,
|
||||
'title',
|
||||
);
|
||||
|
|
@ -156,25 +146,23 @@ class RecipeController extends Controller
|
|||
'children' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($recipeModels, collect());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recipes by a specific consumption_moment,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getRecipesByConsumptionMoment(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
$consumptionMomentModel = ConsumptionMoment::query()
|
||||
->where('slug', $request->model_slug)
|
||||
->first();
|
||||
$recipeModels = Recipe::query()
|
||||
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])
|
||||
->when(!is_null($consumptionMomentModel), function (Builder $q) use ($consumptionMomentModel) {
|
||||
->when(! is_null($consumptionMomentModel), function (Builder $q) use ($consumptionMomentModel) {
|
||||
$q->where('consumption_moment_id', $consumptionMomentModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -190,25 +178,23 @@ class RecipeController extends Controller
|
|||
'children' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($recipeModels, collect());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recipes by a specific meat,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getRecipesByMeat(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
$meatModel = Meat::query()
|
||||
->where('slug', $request->model_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$submeatModels = Submeat::query()
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where('meat_id', $meatModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -217,7 +203,7 @@ class RecipeController extends Controller
|
|||
$recipeModels = Recipe::query()
|
||||
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])
|
||||
->where('published', true)
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->whereHas('products', function (Builder $q) use ($meatModel) {
|
||||
$q->whereHas('meat', function (Builder $q) use ($meatModel) {
|
||||
$q->where('published', true)->where('id', $meatModel->getKey());
|
||||
|
|
@ -238,32 +224,30 @@ class RecipeController extends Controller
|
|||
'children' => $submeatModels,
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($recipeModels, $submeatModels);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recipes by a specific submeat,
|
||||
* the response can be a json or a view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function getRecipesBySubmeat(
|
||||
Request $request
|
||||
): \Illuminate\Http\JsonResponse|\Illuminate\Contracts\View\View {
|
||||
): JsonResponse | View {
|
||||
$meatModel = Meat::query()
|
||||
->where('slug', $request->model_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$submeatModel = Submeat::query()
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where('meat_id', $meatModel->getKey());
|
||||
})
|
||||
->where('slug', $request->child_slug)
|
||||
->where('published', true)
|
||||
->first();
|
||||
$submeatModels = Submeat::query()
|
||||
->when(!is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
->when(! is_null($meatModel), function (Builder $q) use ($meatModel) {
|
||||
$q->where('meat_id', $meatModel->getKey());
|
||||
})
|
||||
->where('published', true)
|
||||
|
|
@ -272,7 +256,7 @@ class RecipeController extends Controller
|
|||
$recipeModels = Recipe::query()
|
||||
->with(['products', 'products.meat', 'products.submeat', 'consumptionMoment'])
|
||||
->where('published', true)
|
||||
->when(!is_null($submeatModel), function (Builder $q) use ($submeatModel) {
|
||||
->when(! is_null($submeatModel), function (Builder $q) use ($submeatModel) {
|
||||
$q->whereHas('products', function (Builder $q) use ($submeatModel) {
|
||||
$q->whereHas('submeat', function (Builder $q) use ($submeatModel) {
|
||||
$q->where('published', true)->where('id', $submeatModel->getKey());
|
||||
|
|
@ -292,6 +276,7 @@ class RecipeController extends Controller
|
|||
'children' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->index($recipeModels, $submeatModels);
|
||||
}
|
||||
|
||||
|
|
@ -299,16 +284,13 @@ class RecipeController extends Controller
|
|||
* Get recipes by a selected recipe model,
|
||||
* filtered first by products associated,
|
||||
* by meats/submeats and finally by consumption moment.
|
||||
*
|
||||
* @param \App\Models\Recipe $recipeModel
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getRecipesFiltered(Recipe $recipeModel): \Illuminate\Support\Collection
|
||||
public function getRecipesFiltered(Recipe $recipeModel): Collection
|
||||
{
|
||||
/** @var int $nbrMaxRecipes Maximum number of recipes required */
|
||||
$nbrMaxRecipes = 9;
|
||||
|
||||
/** @var array<integer> $recipeProducts Id of recipe products relation */
|
||||
/** @var array<int> $recipeProducts Id of recipe products relation */
|
||||
$recipeProducts = $recipeModel->products->pluck('id')->toArray();
|
||||
/** @var \Illuminate\Support\Collection<\App\Models\Recipe> $recipeWithProducts Recipe query builder for products relation */
|
||||
$recipeWithProducts = Recipe::query()
|
||||
|
|
@ -326,7 +308,7 @@ class RecipeController extends Controller
|
|||
/** @var \Illuminate\Support\Collection<\App\Models\Recipe> $recipeModels All collections of recipes merged */
|
||||
$recipeModels = collect();
|
||||
if (count($recipeWithProducts) < $nbrMaxRecipes) {
|
||||
/** @var array<integer> $recipeProductsSubmeats */
|
||||
/** @var array<int> $recipeProductsSubmeats */
|
||||
$recipeProductsSubmeats = [];
|
||||
$recipeModel->products->map(function ($product) use (&$recipeProductsSubmeats) {
|
||||
$recipeProductsSubmeats = array_merge(
|
||||
|
|
@ -367,27 +349,24 @@ class RecipeController extends Controller
|
|||
->get();
|
||||
$recipeModels = $recipeModels->merge($recipeWithConsumptionMoment);
|
||||
}
|
||||
} //end if
|
||||
} // end if
|
||||
|
||||
return $recipeModels->slice(0, $nbrMaxRecipes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print product commercial sheet
|
||||
*
|
||||
* @param string $slug
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function printCommericalSheet(string $slug): \Illuminate\Http\Response
|
||||
public function printCommericalSheet(string $slug): Response
|
||||
{
|
||||
$recipeModel = Recipe::query()->where('slug', $slug)->first();
|
||||
$title = trans('Fiche commerciale de la recette : :title - :appname', [
|
||||
'label' => $recipeModel->title,
|
||||
'appname' => \config('app.name', 'Le Gaulois')
|
||||
'label' => $recipeModel->title,
|
||||
'appname' => \config('app.name', 'Le Gaulois'),
|
||||
]);
|
||||
$filename = trans('fiche-commerciale-:slug-:date', [
|
||||
'slug' => Str::slug($recipeModel->title),
|
||||
'date' => \now()->format('Y-m-d')
|
||||
'date' => \now()->format('Y-m-d'),
|
||||
]);
|
||||
|
||||
/**
|
||||
|
|
@ -412,15 +391,11 @@ class RecipeController extends Controller
|
|||
|
||||
/**
|
||||
* Generate recipe commercial sheet PDF
|
||||
*
|
||||
* @param \App\Models\Recipe $recipeModel
|
||||
* @param string $title
|
||||
* @return \Mccarlosen\LaravelMpdf\LaravelMpdf
|
||||
*/
|
||||
private function generateRecipeCommercialPdf(
|
||||
Recipe $recipeModel,
|
||||
string $title
|
||||
): \Mccarlosen\LaravelMpdf\LaravelMpdf {
|
||||
): LaravelMpdf {
|
||||
/** @var \Mccarlosen\LaravelMpdf\LaravelMpdfWrapper */
|
||||
$mpdf = app('laravel-mpdf');
|
||||
/** @var \Mccarlosen\LaravelMpdf\LaravelMpdf */
|
||||
|
|
@ -429,33 +404,33 @@ class RecipeController extends Controller
|
|||
// * Dirty convert to object.
|
||||
[
|
||||
'title' => $title,
|
||||
'recipeModel' => \json_decode(\json_encode(new RecipeCommericalSheetResource($recipeModel)))
|
||||
'recipeModel' => \json_decode(\json_encode(new RecipeCommericalSheetResource($recipeModel))),
|
||||
],
|
||||
[],
|
||||
[
|
||||
'mode' => 'utf-8',
|
||||
'format' => 'A4',
|
||||
'default_font_size' => '12',
|
||||
'default_font' => 'sans-serif',
|
||||
'margin_left' => 0,
|
||||
'margin_right' => 0,
|
||||
'mirrorMargins' => true,
|
||||
'margin_top' => 0,
|
||||
'margin_bottom' => 0,
|
||||
'margin_header' => 0,
|
||||
'margin_footer' => 0,
|
||||
'orientation' => 'P',
|
||||
'title' => $title,
|
||||
'author' => \config('app.name', 'Le Gaulois'),
|
||||
'watermark' => '',
|
||||
'show_watermark' => false,
|
||||
'watermark_font' => 'sans-serif',
|
||||
'display_mode' => 'fullpage',
|
||||
'watermark_text_alpha' => 0.1,
|
||||
'custom_font_dir' => '',
|
||||
'custom_font_data' => [],
|
||||
'mode' => 'utf-8',
|
||||
'format' => 'A4',
|
||||
'default_font_size' => '12',
|
||||
'default_font' => 'sans-serif',
|
||||
'margin_left' => 0,
|
||||
'margin_right' => 0,
|
||||
'mirrorMargins' => true,
|
||||
'margin_top' => 0,
|
||||
'margin_bottom' => 0,
|
||||
'margin_header' => 0,
|
||||
'margin_footer' => 0,
|
||||
'orientation' => 'P',
|
||||
'title' => $title,
|
||||
'author' => \config('app.name', 'Le Gaulois'),
|
||||
'watermark' => '',
|
||||
'show_watermark' => false,
|
||||
'watermark_font' => 'sans-serif',
|
||||
'display_mode' => 'fullpage',
|
||||
'watermark_text_alpha' => 0.1,
|
||||
'custom_font_dir' => '',
|
||||
'custom_font_data' => [],
|
||||
'auto_language_detection' => false,
|
||||
'temp_dir' => rtrim(
|
||||
'temp_dir' => rtrim(
|
||||
ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir(),
|
||||
DIRECTORY_SEPARATOR
|
||||
),
|
||||
|
|
@ -463,6 +438,7 @@ class RecipeController extends Controller
|
|||
'pdfaauto' => false,
|
||||
]
|
||||
);
|
||||
|
||||
return $pdf;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue