diff --git a/app/Enums/Users/GitlabUsersEnum.php b/app/Enums/Users/GitlabUsersEnum.php index 3a8730f..43cbcdd 100644 --- a/app/Enums/Users/GitlabUsersEnum.php +++ b/app/Enums/Users/GitlabUsersEnum.php @@ -8,13 +8,17 @@ enum GitlabUsersEnum: int { use BaseEnum; - // Each user is associated to his ID on gitlab. - case nicolas = 24; + /** + * Each user is associated to his ID on gitlab. + * + * 24 is Nicolas Demangeat + */ + case default = 24; /** * Optionnal labels definition */ private const LABELS = [ - self::nicolas->name => "Nicolas Demangeat", + self::default->name => "Default", ]; } diff --git a/app/Http/Controllers/Bo/DashboardController.php b/app/Http/Controllers/Bo/DashboardController.php deleted file mode 100644 index 0dcd653..0000000 --- a/app/Http/Controllers/Bo/DashboardController.php +++ /dev/null @@ -1,29 +0,0 @@ -', now()->modify('-1 day')) - ->orderBy('date', 'asc') - ->limit(10) - ->get(); - return view('home', compact('dutyhourModels')); - } -} diff --git a/app/Http/Controllers/Bo/DutyhourController.php b/app/Http/Controllers/Bo/DutyhourController.php deleted file mode 100644 index b936483..0000000 --- a/app/Http/Controllers/Bo/DutyhourController.php +++ /dev/null @@ -1,157 +0,0 @@ -search; - if ($search) { - $this->searchQuery( - $dutyhourModels, - $search, - null, - 'date', - 'person', - 'place' - ); - } - $searchFields = trans('Date, personne, lieu'); - - /** Sort columns with a query */ - $this->sortQuery($dutyhourModels); - - /** Custom pagination */ - $dutyhourModels = $this->customPaginate($dutyhourModels, $request->pagination); - - return view('bo.pages.dutyhours.index', compact('dutyhourModels', 'search', 'searchFields')); - } - - /** - * Show the form for creating a new resource. - * - * @param \App\Models\Dutyhour $dutyhour - * @return \Illuminate\Contracts\View\View - */ - public function create(Dutyhour $dutyhour): \Illuminate\Contracts\View\View - { - return view('bo.pages.dutyhours.create', [ - 'dutyhourModel' => $dutyhour - ]); - } - - /** - * Store a newly created resource in storage. - * - * @param \App\Http\Requests\Bo\Dutyhours\StoreDutyhourRequest $request - * @return \Illuminate\Http\RedirectResponse - */ - public function store(StoreDutyhourRequest $request): \Illuminate\Http\RedirectResponse - { - return DB::transaction(function () use ($request) { - $dutyhour = new Dutyhour(); - $dutyhour->fill($request->validated()); - - if ($dutyhour->saveOrFail()) { - return redirect() - ->route('bo.dutyhours.edit', $dutyhour) - ->with('success', trans( - 'crud.messages.has_been_created', - ['model' => Str::singular(trans('models.classes.dutyhours'))] - )); - } - return redirect() - ->back() - ->with('error', trans( - 'crud.messages.cannot_be_created', - ['model' => Str::singular(trans('models.classes.dutyhours'))] - )); - }); - } - - /** - * Show the form for editing the specified resource. - * - * @param \App\Models\Dutyhour $dutyhour - * @return \Illuminate\Contracts\View\View - */ - public function edit(Dutyhour $dutyhour): \Illuminate\Contracts\View\View - { - return view('bo.pages.dutyhours.edit', [ - 'dutyhourModel' => $dutyhour - ]); - } - - /** - * Update the specified resource in storage. - * - * @param \App\Http\Requests\Bo\Dutyhours\UpdateDutyhourRequest $request - * @param \App\Models\Dutyhour $dutyhour - * @return \Illuminate\Http\RedirectResponse - */ - public function update(UpdateDutyhourRequest $request, Dutyhour $dutyhour): \Illuminate\Http\RedirectResponse - { - return DB::transaction(function () use ($request, $dutyhour) { - $dutyhour->fill($request->validated()); - if ($dutyhour->saveOrFail()) { - return redirect() - ->route('bo.dutyhours.edit', $dutyhour) - ->with('success', trans( - 'crud.messages.has_been_updated', - ['model' => Str::singular(trans('models.classes.dutyhours'))] - )); - } //end if - return redirect() - ->back() - ->with('error', trans( - 'crud.messages.cannot_be_updated', - ['model' => Str::singular(trans('models.classes.dutyhours'))] - )); - }); - } - - /** - * Remove the specified resource from storage. - * - * @param \App\Models\Dutyhour $dutyhour - * @return \Illuminate\Http\RedirectResponse - */ - public function destroy(Dutyhour $dutyhour): \Illuminate\Http\RedirectResponse - { - return DB::transaction(function () use ($dutyhour) { - if ($dutyhour->deleteOrFail()) { - return redirect() - ->route('bo.dutyhours.index') - ->with('success', trans( - 'crud.messages.has_been_deleted', - ['model' => Str::singular(trans('models.classes.dutyhours'))] - )); - } - return redirect() - ->back() - ->with('error', trans( - ':crud.messages.cannot_be_deleted', - ['model' => Str::singular(trans('models.classes.dutyhours'))] - )); - }); - } -} diff --git a/app/Http/Controllers/Bo/SiteController.php b/app/Http/Controllers/Bo/SiteController.php index be3d5f5..de9e73e 100644 --- a/app/Http/Controllers/Bo/SiteController.php +++ b/app/Http/Controllers/Bo/SiteController.php @@ -9,6 +9,7 @@ use App\Lib\Helpers\ToolboxHelper; use App\Models\Site; use App\Models\User; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; @@ -23,7 +24,7 @@ class SiteController extends Controller public function index(Request $request): \Illuminate\Contracts\View\View { /** @var \App\Models\User $user */ - $user = \auth()->user(); + $user = Auth::user(); if ($user->isAdmin()) { /** @var \Illuminate\Database\Eloquent\Builder $siteModels */ diff --git a/app/Http/Controllers/Bo/TicketController.php b/app/Http/Controllers/Bo/TicketController.php index b1fe4ff..e3b891b 100644 --- a/app/Http/Controllers/Bo/TicketController.php +++ b/app/Http/Controllers/Bo/TicketController.php @@ -27,11 +27,11 @@ use App\Models\User; use GrahamCampbell\GitLab\Facades\GitLab; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; +use Illuminate\Support\Arr; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Session; use Illuminate\Support\Str; -use Illuminate\Support\Arr; class TicketController extends Controller { @@ -97,6 +97,12 @@ class TicketController extends Controller TicketStatusEnum::archived ); + if (!$user->isAdmin() && $user->sites->count() === 1) { + $request->merge([ + 'pr' => $user->sites->first()->id, + ]); + } + $tickets = $this->filterTickets($tickets, $request); $tickets = $this->searchTicket($tickets, $request); @@ -107,8 +113,12 @@ class TicketController extends Controller $tickets = $this->customPaginate($tickets, $request->pagination); $sites = Site::select('id', 'name')->orderBy('name')->get(); - $status = TicketStatusEnum::cases(); - $types = TicketTypeEnum::cases(); + $status = Arr::sort(TicketStatusEnum::cases(), function (TicketStatusEnum $value) { + return $value->label(); + }); + $types = Arr::sort(TicketTypeEnum::cases(), function (TicketTypeEnum $value) { + return $value->label(); + }); return view('bo.pages.tickets.index', compact('tickets', 'sites', 'status', 'types')); } @@ -140,13 +150,10 @@ class TicketController extends Controller abort(403); } - $linkedTicket = $ticket->linkedTicket()->get(); - $messages = $ticket->messages()->orderBy('created_at', 'DESC')->get(); $isSubscribed = (bool)$ticket->subscriptions()->where('user_id', $user->id)->count(); return view('bo.pages.tickets.show', [ 'ticket' => $ticket, - 'linkedTicket' => $linkedTicket, 'messages' => $messages, 'isSubscribed' => $isSubscribed ]); @@ -553,6 +560,8 @@ class TicketController extends Controller Session::remove('tickets.st'); Session::remove('tickets.pr'); Session::remove('tickets.ty'); + Session::remove('tickets.sort_col'); + Session::remove('tickets.sort_way'); Session::remove('tickets.or'); Session::remove('tickets.search'); } @@ -568,6 +577,12 @@ class TicketController extends Controller if ($request->tys) { Session::remove('tickets.ty'); } + if ($request->sort_col) { + Session::put('tickets.sort_col', $request->sort_col); + } + if ($request->sort_way) { + Session::put('tickets.sort_way', $request->sort_way); + } if ($request->ord) { Session::remove('tickets.or'); } @@ -576,7 +591,6 @@ class TicketController extends Controller } if ($request->st) { Session::put('tickets.st', $request->st); - Session::remove('tickets.or'); } if ($request->ty) { Session::put('tickets.ty', $request->ty); @@ -584,9 +598,19 @@ class TicketController extends Controller if ($request->ass) { Session::put('tickets.ass', $request->ass); } + if (Session::has('tickets.or')) { + Session::remove('tickets.ass'); + Session::remove('tickets.st'); + Session::remove('tickets.ty'); + Session::remove('tickets.sort_col'); + Session::remove('tickets.sort_way'); + Session::remove('tickets.search'); + } + if ($request->or && Session::has('tickets.pr')) { Session::put('tickets.or', $request->or); } + Session::save(); if (Session::has('tickets.pr')) { @@ -609,6 +633,24 @@ class TicketController extends Controller if (Session::has('tickets.or')) { $tickets->orderBy('order', 'ASC'); + } + + if ( + Session::has('tickets.sort_col') and + Session::has('tickets.sort_way') and + in_array(Session::get('tickets.sort_col'), [ + 'type', + 'title', + 'assigned_to', + 'date_mep', + 'created_at', + 'created_by' + ]) + ) { + $tickets->orderBy( + Session::get('tickets.sort_col'), + Session::get('tickets.sort_way') + ); } else { $tickets->orderBy('last_activity', 'DESC'); } @@ -707,7 +749,13 @@ class TicketController extends Controller $description = \sprintf("%s
", $ticket->text); $cLabel = match ($ticket->type) { TicketTypeEnum::bug => 'c-bug', - TicketTypeEnum::evolution => 'c-feature', + TicketTypeEnum::evolution, TicketTypeEnum::newsletter => 'c-feature', + }; + + $assigneeId = match ($ticket->type) { + TicketTypeEnum::bug => GitlabUsersEnum::default->value, + TicketTypeEnum::evolution, + TicketTypeEnum::newsletter => $ticket->site->projectManager?->gitlab_id ?? GitlabUsersEnum::default->value }; try { @@ -719,13 +767,17 @@ class TicketController extends Controller } $issue = GitLab::issues()->create($gitlabRepoId, [ - 'title' => 'ts-' . $ticket->id, + 'title' => sprintf( + 'ts-%s : %s', + $ticket->id, + $ticket->title + ), 'description' => $description, 'labels' => \implode(",", [ 'c-support', $cLabel ]), - 'assignee_id' => GitlabUsersEnum::nicolas, + 'assignee_id' => $assigneeId, ]); } catch (\Exception $e) { \report($e); diff --git a/app/Http/Requests/Bo/Dutyhours/StoreDutyhourRequest.php b/app/Http/Requests/Bo/Dutyhours/StoreDutyhourRequest.php deleted file mode 100644 index d7751ab..0000000 --- a/app/Http/Requests/Bo/Dutyhours/StoreDutyhourRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - 'required|date|after_or_equal:today', - 'person' => 'required|string|min:3|max:255', - 'place' => 'required|string|min:3|max:255', - ]; - } - - /** - * Get custom attributes for validator errors. - * - * @return array - */ - public function attributes(): array - { - return [ - 'date' => trans('Date de la permanence'), - 'person' => trans('Personne associée à la permanence'), - 'place' => trans('Lieu de la permanence'), - ]; - } -} diff --git a/app/Http/Requests/Bo/Dutyhours/UpdateDutyhourRequest.php b/app/Http/Requests/Bo/Dutyhours/UpdateDutyhourRequest.php deleted file mode 100644 index b82afda..0000000 --- a/app/Http/Requests/Bo/Dutyhours/UpdateDutyhourRequest.php +++ /dev/null @@ -1,7 +0,0 @@ -check(); + /** @var \App\Models\User|null $user */ + $user = Auth::user(); + return Auth::check() && $user->isAdmin(); } /** diff --git a/app/Http/Requests/Bo/Sites/StoreSiteRequest.php b/app/Http/Requests/Bo/Sites/StoreSiteRequest.php index de7035e..a55bf3c 100644 --- a/app/Http/Requests/Bo/Sites/StoreSiteRequest.php +++ b/app/Http/Requests/Bo/Sites/StoreSiteRequest.php @@ -29,6 +29,7 @@ class StoreSiteRequest extends FormRequest 'users' => 'nullable|array', 'users.*.id' => 'required|exists:users,id', 'gitlab_project_id' => 'nullable|unique:sites,gitlab_project_id', + 'project_manager_id' => 'nullable|exists:users,id', 'url_re7' => 'nullable|url', 'url_prod' => 'nullable|url' ]; @@ -46,6 +47,7 @@ class StoreSiteRequest extends FormRequest 'users' => trans('Utilisateurs associés au site'), 'users.*.id' => trans('Élément parmis les Utilisateurs associés au site'), 'gitlab_project_id' => trans('ID du dépôt Gitlab'), + 'project_manager_id' => trans('Chef de projet'), 'url_re7' => trans('Url de RECETTE'), 'url_prod' => trans('Url de prod') ]; diff --git a/app/Http/Requests/Bo/StoreTicket.php b/app/Http/Requests/Bo/StoreTicket.php index c85fcc4..e6fa419 100644 --- a/app/Http/Requests/Bo/StoreTicket.php +++ b/app/Http/Requests/Bo/StoreTicket.php @@ -96,7 +96,7 @@ class StoreTicket extends FormRequest } } ], - 'date_mep' => 'required|date', + 'date_mep' => 'nullable|date', 'text' => 'required|string|min:40', 'title' => 'required|string|between:3,255', 'file_tickets' => 'sometimes|array', diff --git a/app/Http/Requests/Bo/Users/StoreUserRequest.php b/app/Http/Requests/Bo/Users/StoreUserRequest.php index ad54e3d..0faab0e 100644 --- a/app/Http/Requests/Bo/Users/StoreUserRequest.php +++ b/app/Http/Requests/Bo/Users/StoreUserRequest.php @@ -34,7 +34,8 @@ class StoreUserRequest extends FormRequest Rule::in(collect(RoleEnum::cases())->pluck('value')->all()), ], 'sites' => 'nullable|array', - 'sites.*.id' => 'required|exists:sites,id' + 'sites.*.id' => 'required|exists:sites,id', + 'gitlab_id' => 'nullable|integer|unique:users,gitlab_id' ]; } @@ -51,6 +52,7 @@ class StoreUserRequest extends FormRequest 'role' => trans('Rôle de l\'utilisateur'), 'sites' => trans('Sites associés à l\'utilisateur'), 'sites.*.id' => trans('Élément parmis les sites associés à l\'utilisateur'), + 'gitlab_id' => trans("ID de l'utilisateur Gitlab") ]; } } diff --git a/app/Listeners/AddStatusMessages.php b/app/Listeners/AddStatusMessages.php index 84d453b..1edf542 100644 --- a/app/Listeners/AddStatusMessages.php +++ b/app/Listeners/AddStatusMessages.php @@ -22,8 +22,7 @@ class AddStatusMessages $message = new Message(); $message->ticket_id = $event->ticket->id; // * Le message system est privé si demandé (eg: Assignation à une personne). - $message->type = $event->is_private ? - MessageTypeEnum::public : MessageTypeEnum::private; + $message->type = $event->is_private ? MessageTypeEnum::private : MessageTypeEnum::public; if ($event->message) { $message->message = $event->message; } elseif ($event->user) { diff --git a/app/Models/Dutyhour.php b/app/Models/Dutyhour.php deleted file mode 100644 index f615433..0000000 --- a/app/Models/Dutyhour.php +++ /dev/null @@ -1,43 +0,0 @@ - 'date' - ]; -} diff --git a/app/Models/Site.php b/app/Models/Site.php index 770064c..d8aa825 100644 --- a/app/Models/Site.php +++ b/app/Models/Site.php @@ -6,6 +6,7 @@ use App\Lib\Helpers\ToolboxHelper; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\SoftDeletes; /** @@ -29,7 +30,8 @@ class Site extends Model 'name', 'url_re7', 'url_prod', - 'gitlab_project_id' + 'gitlab_project_id', + 'project_manager_id' ]; /** @@ -109,6 +111,17 @@ class Site extends Model return $this->belongsTo(Brand::class); } + /** + * BelongsTo User relation + * The project manager of the site + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function projectManager(): BelongsTo + { + return $this->belongsTo(User::class, 'project_manager_id'); + } + /** * BelongsTo Project relation * diff --git a/app/Models/Ticket.php b/app/Models/Ticket.php index c56977d..5eda697 100644 --- a/app/Models/Ticket.php +++ b/app/Models/Ticket.php @@ -198,7 +198,7 @@ class Ticket extends Model * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ - public function linkedTicket() + public function linkedTickets() { return $this->belongsToMany(Ticket::class, 'linked_tickets', 'ticket_id', 'linked_ticket_id'); } diff --git a/app/Models/User.php b/app/Models/User.php index 7967f02..4b1a499 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -45,7 +45,8 @@ class User extends Authenticatable 'email', 'password', 'role', - 'sites' + 'sites', + 'gitlab_id' ]; /** @@ -148,8 +149,8 @@ class User extends Authenticatable */ public static function adminUsers(): Collection { - return Cache::rememberForever('AdminUsers', function () { - return self::whereIn('role', [RoleEnum::admin, RoleEnum::developper])->get(); + return Cache::remember('AdminUsers', 86400, function () { + return self::whereIn('role', [RoleEnum::admin, RoleEnum::developper])->orderBy('name')->get(); }); } diff --git a/app/Policies/TicketPolicy.php b/app/Policies/TicketPolicy.php index 14ede6f..506d58f 100644 --- a/app/Policies/TicketPolicy.php +++ b/app/Policies/TicketPolicy.php @@ -7,6 +7,7 @@ use App\Enums\Tickets\TicketTypeEnum; use App\Enums\Users\RoleEnum; use App\Models\Ticket; use App\Models\User; +use Error; use Illuminate\Auth\Access\HandlesAuthorization; class TicketPolicy @@ -283,8 +284,21 @@ class TicketPolicy public function createGitlabIssue(User $user, Ticket $ticket) { return $user->role->equals(RoleEnum::developper) - && ($ticket->type->equals(TicketTypeEnum::bug) || $ticket->type->equals(TicketTypeEnum::evolution)) + && ($ticket->type->equals(TicketTypeEnum::bug) || $ticket->type->equals(TicketTypeEnum::evolution) || $ticket->type->equals(TicketTypeEnum::newsletter)) && !\is_null($ticket->site->gitlab_project_id) && \is_null($ticket->gitlab_issue); } + + /** + * Determine if the user can changeOrder + * + * @param User $user + * @return bool + * @throws Error + */ + public function changeOrder(User $user) + { + return $user->role->equals(RoleEnum::developper); + } + } diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index f89694d..56b3a6d 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -6,7 +6,6 @@ use App\Models\Brand; use App\Models\Company; use App\Models\Credit\Account; use App\Models\Credit\CreditLog; -use App\Models\Dutyhour; use App\Models\Information; use App\Models\Invoice; use App\Models\Label; @@ -91,7 +90,6 @@ class RouteServiceProvider extends ServiceProvider Route::model('label', Label::class); Route::model('marker', Marker::class); Route::model('package', Package::class); - Route::model('dutyhour', Dutyhour::class); Route::model('information', Information::class); Route::model('company', Company::class); Route::model('invoice', Invoice::class); diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php index a042a23..7aa3b60 100644 --- a/app/Providers/TranslationServiceProvider.php +++ b/app/Providers/TranslationServiceProvider.php @@ -19,7 +19,7 @@ class TranslationServiceProvider extends ServiceProvider { foreach ($this->collectLocalesStrings() as $locale) { // * Supported locales - Cache::rememberForever(sprintf('translations.%s', $locale), function () use ($locale) { + Cache::remember(sprintf('translations.%s', $locale), 84600, function () use ($locale) { $translations = [ 'php' => $this->phpTranslations($locale), 'json' => $this->jsonTranslations($locale), diff --git a/database/migrations/2025_04_11_183728_delete_dutyhours_table.php b/database/migrations/2025_04_11_183728_delete_dutyhours_table.php new file mode 100644 index 0000000..77d5818 --- /dev/null +++ b/database/migrations/2025_04_11_183728_delete_dutyhours_table.php @@ -0,0 +1,30 @@ +id(); + $table->date('date')->unique(); + $table->string('person'); + $table->string('place'); + $table->timestamps(); + }); + } +}; diff --git a/database/migrations/2025_04_17_112713_add_users_relation_on_sites_table.php b/database/migrations/2025_04_17_112713_add_users_relation_on_sites_table.php new file mode 100644 index 0000000..3712c0d --- /dev/null +++ b/database/migrations/2025_04_17_112713_add_users_relation_on_sites_table.php @@ -0,0 +1,38 @@ +unsignedBigInteger('project_manager_id') + ->nullable() + ->after('brand_id') + ->comment('Project manager relationship'); + + $table->foreign('project_manager_id')->references('id')->on('users')->nullOnDelete(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::table('sites', function (Blueprint $table) { + $table->dropForeign(['project_manager_id']); + $table->dropColumn('project_manager_id'); + }); + } +}; diff --git a/database/migrations/2025_04_17_162711_add_gitlab_id_to_users_table.php b/database/migrations/2025_04_17_162711_add_gitlab_id_to_users_table.php new file mode 100644 index 0000000..f096889 --- /dev/null +++ b/database/migrations/2025_04_17_162711_add_gitlab_id_to_users_table.php @@ -0,0 +1,36 @@ +unsignedInteger('gitlab_id') + ->unique() + ->nullable() + ->comment("ID du user Gitlab") + ->after('remember_token'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('gitlab_id'); + }); + } +}; diff --git a/resources/lang/en/models.php b/resources/lang/en/models.php index 425de54..d659268 100644 --- a/resources/lang/en/models.php +++ b/resources/lang/en/models.php @@ -14,7 +14,6 @@ return [ 'packages' => 'Packages', 'invoices' => 'Invoices', 'companies' => 'Companies', - 'dutyhours' => 'Duty Hours', 'informations' => 'Informations', 'ticket_types' => 'Ticket types' ] diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index 35c2795..add290c 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -221,7 +221,6 @@ return [ 'order' => 'order', 'priority' => 'priority', 'default' => 'default', - 'date_mep' => 'desired MEP date', - 'date_mep_empty' => 'no date entered' + 'date_mep' => 'Desired Launch' ] ]; diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 3549abe..b405e2f 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -56,5 +56,6 @@ "Whoops!": "Oups !", "You are logged in!": "Vous êtes connecté·e !", "You are receiving this email because we received a password reset request for your account.": "Vous recevez cet e-mail car nous avons reçu une demande de réinitialisation de mot de passe pour votre compte.", - "see_mode": "voir mode :mode" + "see_mode": "voir mode :mode", + "Website": "Site" } diff --git a/resources/lang/fr/models.php b/resources/lang/fr/models.php index 314efcd..5d7e88b 100644 --- a/resources/lang/fr/models.php +++ b/resources/lang/fr/models.php @@ -13,7 +13,6 @@ return [ 'packages' => 'Forfaits', 'invoices' => 'Devis', 'companies' => 'Sociétés', - 'dutyhours' => 'Permanences', 'informations' => 'Informations', 'ticket_types' => 'Type de ticket|Types de tickets' ] diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php index e50b509..571fd1f 100644 --- a/resources/lang/fr/validation.php +++ b/resources/lang/fr/validation.php @@ -257,7 +257,6 @@ return [ 'order' => 'ordre', 'priority' => 'priorité', 'default' => 'défaut', - 'date_mep' => 'date de MEP souhaitée', - 'date_mep_empty' => 'aucune date renseignée' + 'date_mep' => 'MEP souhaitée' ] ]; diff --git a/resources/sass/bo/base/_common.scss b/resources/sass/bo/base/_common.scss index 5070921..9044e4f 100644 --- a/resources/sass/bo/base/_common.scss +++ b/resources/sass/bo/base/_common.scss @@ -1,5 +1,5 @@ .container-xxl { - max-width: 1340px !important; + max-width: 1600px !important; } #app { diff --git a/resources/views/bo/modules/change-model-order.blade.php b/resources/views/bo/modules/change-model-order.blade.php index a304ff0..d5760bd 100644 --- a/resources/views/bo/modules/change-model-order.blade.php +++ b/resources/views/bo/modules/change-model-order.blade.php @@ -1,7 +1,5 @@ - @if (isset($value)) - {{ $value }} - @endif + {{ $value ?? '' }} @can('changeOrder', $model)
$loop->first and $models->onFirstPage()]) diff --git a/resources/views/bo/modules/table-col-sorter-cell.blade.php b/resources/views/bo/modules/table-col-sorter-cell.blade.php index 327bb32..d89d85d 100644 --- a/resources/views/bo/modules/table-col-sorter-cell.blade.php +++ b/resources/views/bo/modules/table-col-sorter-cell.blade.php @@ -44,11 +44,11 @@ session("$routeName.sort_col") !== $col or session("$routeName.sort_way") === 'asc' and session("$routeName.sort_col") === $col) @endif
-@endif \ No newline at end of file +@endif diff --git a/resources/views/bo/pages/dutyhours/create.blade.php b/resources/views/bo/pages/dutyhours/create.blade.php deleted file mode 100644 index 0931033..0000000 --- a/resources/views/bo/pages/dutyhours/create.blade.php +++ /dev/null @@ -1,46 +0,0 @@ -@extends('layout.app', ['brParam' => $dutyhourModel]) - -@section('title', __('Création d\'une :model', ['model' => Str::singular(__('models.classes.dutyhours'))])) -@section('description', __('Création d\'une toute nouvelle :model', ['model' => Str::singular(__('models.classes.dutyhours'))])) -@section('breadcrumb', request()->route()->getName()) - -@section('content') -
-
- - - - @include('breadcrumbs.breadcrumb-body', ['brParam' => $dutyhourModel]) -
-
- -
-
- - @csrf - @include('bo.pages.dutyhours.form-inputs') -
-
- -
-
- -@endsection diff --git a/resources/views/bo/pages/dutyhours/edit.blade.php b/resources/views/bo/pages/dutyhours/edit.blade.php deleted file mode 100644 index 665f253..0000000 --- a/resources/views/bo/pages/dutyhours/edit.blade.php +++ /dev/null @@ -1,62 +0,0 @@ -@extends('layout.app', ['brParam' => $dutyhourModel]) - -@section('title', __('Édition d\'une :model', ['model' => Str::singular(__('models.classes.dutyhours'))])) -@section('description', __('Édition d\'une :model déjà existante', ['model' => Str::singular(__('models.classes.dutyhours'))])) -@section('breadcrumb', request()->route()->getName()) - -@section('content') -
-
- - - - @include('breadcrumbs.breadcrumb-body', ['brParam' => $dutyhourModel]) -
-
-
- @csrf - @method('DELETE') -
- - -
-
-
-
-
- @csrf - @method('PUT') - @include('bo.pages.dutyhours.form-inputs') -
-
- -
-
-
-@endsection diff --git a/resources/views/bo/pages/dutyhours/form-inputs.blade.php b/resources/views/bo/pages/dutyhours/form-inputs.blade.php deleted file mode 100644 index 1eff637..0000000 --- a/resources/views/bo/pages/dutyhours/form-inputs.blade.php +++ /dev/null @@ -1,98 +0,0 @@ -
- {{-- DATE --}} -
-
- {{ Str::ucfirst(__('validation.attributes.date')) }} -
-
- @include('bo.partials.inputs.date', [ - 'id' => 'dutyhourDate', - 'label' => __(':field de la :model', [ - 'field' => Str::ucfirst(__('validation.attributes.date')), - 'model' => Str::singular(__('models.classes.dutyhours')), - ]), - 'name' => 'date', - 'defaultValue' => true, - 'required' => true, - 'model' => $dutyhourModel ?? null, - 'helper' => __('La date doit être supérieure ou égale à aujourd\'hui.'), - ]) -
-
-
-
- {{-- PERSON --}} -
-
- {{ Str::ucfirst(__('validation.attributes.person')) }} -
-
- @include('bo.partials.inputs.varchar', [ - 'id' => 'dutyhourPerson', - 'label' => __('Nom de la personne présente lors de la :model', [ - 'model' => Str::singular(__('models.classes.dutyhours')), - ]), - 'hasWordCounter' => true, - 'name' => 'person', - 'required' => true, - 'model' => $dutyhourModel ?? null, - 'helper' => __('validation.between.string', [ - 'attribute' => __('Nom de la personne présente lors de la :model', [ - 'model' => Str::singular(__('models.classes.dutyhours')), - ]), - 'min' => 3, - 'max' => 255, - ]), - 'placeholder' => __(':field de la personne', [ - 'field' => Str::ucfirst(__('validation.attributes.name')), - ]), - ]) -
-
-
-
- {{-- PLACE --}} -
-
- {{ Str::ucfirst(__('validation.attributes.place')) }} -
-
- @include('bo.partials.inputs.varchar', [ - 'id' => 'dutyhourPlace', - 'label' => __('Endroit où se déroule la :model', [ - 'model' => Str::singular(__('models.classes.dutyhours')), - ]), - 'hasWordCounter' => true, - 'name' => 'place', - 'required' => true, - 'model' => $dutyhourModel ?? null, - 'helper' => __('validation.between.string', [ - 'attribute' => __('endroit où se déroule la :model', [ - 'model' => Str::singular(__('models.classes.dutyhours')), - ]), - 'min' => 3, - 'max' => 255, - ]), - 'placeholder' => __('Lieu de la :model', [ - 'model' => Str::singular(__('models.classes.dutyhours')), - ]), - ]) -
-
-
-
-
- -@push('scripts') - -@endpush diff --git a/resources/views/bo/pages/dutyhours/index.blade.php b/resources/views/bo/pages/dutyhours/index.blade.php deleted file mode 100644 index fce6170..0000000 --- a/resources/views/bo/pages/dutyhours/index.blade.php +++ /dev/null @@ -1,68 +0,0 @@ -@extends('layout.app') - -@section('title', __('models.classes.dutyhours')) -@section('description', __('Liste de toutes les :model', ['model' => __('models.classes.dutyhours')])) - -@section('content') -
- @include('breadcrumbs.breadcrumb-body') - - - -
-@include('bo.modules.search-bar') - - @if (count($dutyhourModels) > 0) - - @include('bo.modules.table-col-sorter', [ - 'cols' => [ - 'date' => Str::ucfirst(__('validation.attributes.date')), - 'person' => Str::ucfirst(__('validation.attributes.person')), - 'place' => Str::ucfirst(__('validation.attributes.place')), - ], - ]) - - - @foreach ($dutyhourModels as $dutyhourModel) - - - - - - - @endforeach - - @else - - - - @endif -
{{ $dutyhourModel->date->format('Y-m-d') }}{{ $dutyhourModel->person }}{{ $dutyhourModel->place }} -
- - - - @csrf - @method('DELETE') - -
-
{{ __('crud.other.no_model_found', ['model' => Str::singular(__('models.classes.dutyhours'))]) }}
-{!! $dutyhourModels->links() !!} -@endsection diff --git a/resources/views/bo/pages/sites/form-inputs.blade.php b/resources/views/bo/pages/sites/form-inputs.blade.php index 53a650f..c3b27fb 100644 --- a/resources/views/bo/pages/sites/form-inputs.blade.php +++ b/resources/views/bo/pages/sites/form-inputs.blade.php @@ -59,12 +59,14 @@ + +
{{-- GITLAB_PROJECT_ID --}}
{{ Str::ucfirst(__('validation.attributes.gitlab_project_id')) }}
-
+
@include('bo.partials.inputs.int-number', [ 'id' => 'siteGitlabProject', 'label' => __(':field du :model', [ @@ -86,6 +88,30 @@
+ {{-- PROJECT MANAGER --}} +
+
+ {{ __('Chef de projet') }} +
+
+ + +
+
+
+
+
+
{{-- SITE URLS --}}
diff --git a/resources/views/bo/pages/sites/index.blade.php b/resources/views/bo/pages/sites/index.blade.php index a187e11..8d7d3cd 100644 --- a/resources/views/bo/pages/sites/index.blade.php +++ b/resources/views/bo/pages/sites/index.blade.php @@ -25,6 +25,7 @@ 'name' => Str::ucfirst(__('validation.attributes.name')), 'url_re7' => Str::ucfirst(__('validation.attributes.url_re7')), 'url_prod' => Str::ucfirst(__('validation.attributes.url_prod')), + 'project_manager_id' => __("Chef de projet"), ], ]) @@ -46,6 +47,13 @@ - @endif + + @if ($siteModel->project_manager_id) + {{ $siteModel->projectManager->name }} + @else + - + @endif + @can('isAdmin')
+ + {{ __("Chef de projet") }} + + @if ($siteModel->project_manager_id) + {{ $siteModel->projectManager->name }} + @else + - + @endif + + {{ Str::ucfirst(__('validation.attributes.created_at')) }} {{ $siteModel->created_at }} diff --git a/resources/views/bo/pages/tickets/form-inputs.blade.php b/resources/views/bo/pages/tickets/form-inputs.blade.php index 2128af7..4391a58 100644 --- a/resources/views/bo/pages/tickets/form-inputs.blade.php +++ b/resources/views/bo/pages/tickets/form-inputs.blade.php @@ -96,7 +96,7 @@
- +
diff --git a/resources/views/bo/pages/tickets/index.blade.php b/resources/views/bo/pages/tickets/index.blade.php index d0a4b94..c8c4a40 100644 --- a/resources/views/bo/pages/tickets/index.blade.php +++ b/resources/views/bo/pages/tickets/index.blade.php @@ -9,69 +9,56 @@ $userPr = Auth::user()->sites ?? collect([]); @endphp
+
+
+

{{ __('Tickets') }} + @if (Session::get('tickets.st') == \App\Enums\Tickets\TicketStatusEnum::archived->value) + (Archivés) + @endif +

+ @if (session('tickets.pr')) + @php + $projectManager = \App\Models\Site::query()->find(session('tickets.pr'))->projectManager; + @endphp + @if($projectManager) +

{{ __("Chef de projet") }} : {{ $projectManager->name; }}

+ @endif + @endif +
+ +
-

- {{ __('Gestion des tickets') }} - @if (Session::get('tickets.st') == \App\Enums\Tickets\TicketStatusEnum::archived->value) - (Archivés) - @endif -

-
-
-
-
- @can('isAdmin') - - @endcan - -   {{ __('ticket') }} - - @if (session('tickets.pr') && session('tickets.st') != \App\Enums\Tickets\TicketStatusEnum::archived->value) - @if (session('tickets.or')) - -   {{ __('see_mode', ['mode' => __('validation.custom.default')]) }} - - @else - -   {{ __('see_mode', ['mode' => __('validation.custom.priority')]) }} - - @endif - @endif - @if (session('tickets.st') == \App\Enums\Tickets\TicketStatusEnum::archived->value) - - - - @else - - - - @endif - -  {{ __(' le tri') }} - -
-
+
+
+
+ {{-- All sites --}} +
- - @foreach ($status as $statut) - - @endforeach - - @push('scripts') - - @endpush -
-
-
-
-
- @can('assignTickets', App\Models\Ticket::class) + {{-- All types --}}
-
-
- - - @push('scripts') - - @endpush -
-
-
- @endcan -
-
- + @push('scripts') @endpush
-
-
- -
- - - + {{-- All status --}} +
+
+ + + @push('scripts') + + @endpush
- @push('scripts') - - @endpush - +
+ {{-- All assigned to --}} + @can('assignTickets', App\Models\Ticket::class) +
+
+ + + @push('scripts') + + @endpush +
+
+ @endcan + {{-- Search form --}} +
+
+
+ + + +
+ @push('scripts') + + @endpush +
+
+
+
+
+
+
+
+ @if (session('tickets.pr') && session('tickets.st') != \App\Enums\Tickets\TicketStatusEnum::archived->value) + @if (session('tickets.or')) + +   {{ __('see_mode', ['mode' => __('validation.custom.default')]) }} + + @else + +   {{ __('see_mode', ['mode' => __('validation.custom.priority')]) }} + + @endif + @endif + @if (session('tickets.st') == \App\Enums\Tickets\TicketStatusEnum::archived->value) + + + + @else + + + + @endif + +  {{ __(' le tri') }} +
@@ -187,13 +216,21 @@ $cols = []; if (session('tickets.or')) { $cols = array_merge($cols, [ - 'order' => Str::ucfirst(__('validation.custom.priority')) + 'order' => Str::ucfirst(__('validation.custom.priority')), + ]); + } + $cols = array_merge($cols, [ + 'id' => '#', + ]); + if (!session()->has('tickets.pr') && !session('tickets.or')) { + $cols = array_merge($cols, [ + 'site' => Str::ucfirst(__('Website')), ]); } $cols = array_merge($cols, [ - 'id' => Str::ucfirst(__('validation.attributes.id')), - 'title' => Str::ucfirst(__('validation.attributes.name')), 'type' => Str::ucfirst(__('validation.custom.type')), + 'status' => Str::ucfirst(__('validation.attributes.status')), + 'title' => Str::ucfirst(__('validation.attributes.name')), ]); if (Auth::user()->isAdmin()) { $cols = array_merge($cols, [ @@ -208,13 +245,16 @@ @endphp @include('bo.modules.table-col-sorter', [ 'cols' => $cols, - 'ignore' => ['id', 'tickets'], + 'ignore' => session('tickets.or') + ? array_keys($cols) + : ['id', 'site', 'status', 'tickets'], ]) @if (!count($tickets)) - +

{{ __('Aucun ticket') }}

@@ -227,26 +267,45 @@ 'routeName' => 'ticket', 'model' => $ticket, 'models' => $tickets, - 'value' => $key + 1, + 'value' => ($key + 1) + (($tickets->currentPage() - 1) * $tickets->perPage()), 'noRightsVisible' => false, ]) @endif {{-- id --}} -
- {{ $ticket->id }}  @if ($ticket->is_internal) +
+ {{ $ticket->id }}   + @if ($ticket->is_internal) @endif - +
+ + @if (!session()->has('tickets.pr') && !session('tickets.or')) + {{-- site --}} + +
@if (Auth::user()->isAdmin()) {{ $ticket->site->name }} @else - {{ $ticket->site->name }} + {{ $ticket->site->name }} @endif +
+ + @endif + {{-- type --}} + + {{ $ticket->type->label() }} + + {{-- status --}} + +
+ {{ $ticket->status->label() }} @@ -254,13 +313,9 @@
{{-- title --}} - + {{ $ticket->title }} - {{-- type --}} - - {{ $ticket->type->label() }} - {{-- tag --}} @php $routeName = request()->route()->getName(); @@ -277,10 +332,11 @@ @endcan {{-- assigned_to / date_mep --}} @if (Auth::user()->isAdmin()) - {{ $ticket->assignedUser ? $ticket->assignedUser->name : __('Personne') }} + {{ $ticket->assignedUser ? $ticket->assignedUser->name : __('Personne') }} + @endif - {{ is_null($ticket->date_mep) ? Str::ucfirst(__("validation.custom.date_mep_empty")) : $ticket->date_mep->format('d/m/Y') }} + {{ is_null($ticket->date_mep) ? '-' : $ticket->date_mep->format('d/m/Y') }} {{ Carbon\Carbon::parse($ticket->created_at)->format('d/m/Y à H:i') }} @@ -291,88 +347,97 @@ $ticket_files = $ticket->getFiles(); @endphp @foreach ($ticket_files as $key => $file) - @if ($file !== null && (\App\Lib\Helpers\ToolboxHelper::isImageFile($file) || \App\Lib\Helpers\ToolboxHelper::isPdfFile($file))) + @if ( + $file !== null && + (\App\Lib\Helpers\ToolboxHelper::isImageFile($file) || \App\Lib\Helpers\ToolboxHelper::isPdfFile($file))) + data-gallery="gallery{{ $ticket->id }}" + href="{{ asset($file) }}" target="_blank"> - @break + @break + @endif + @endforeach + {{-- Modal du ticket --}} + + + + @if (auth()->user()->isAdmin()) + @endif - @endforeach - {{-- Modal du ticket --}} - - - - @if (auth()->user()->isAdmin()) - - @endif - @can('changeStatus', $ticket) - @if (!$ticket->status->equals(\App\Enums\Tickets\TicketStatusEnum::archived)) -
- @method('PUT') - @csrf - -
- @endif - @endcan + @can('changeStatus', $ticket) + @if (!$ticket->status->equals(\App\Enums\Tickets\TicketStatusEnum::archived)) +
+ @method('PUT') + @csrf + +
+ @endif + @endcan +
-
- - -
+
@endsection diff --git a/resources/views/bo/pages/tickets/show.blade.php b/resources/views/bo/pages/tickets/show.blade.php index 1b6f759..8f61f7a 100644 --- a/resources/views/bo/pages/tickets/show.blade.php +++ b/resources/views/bo/pages/tickets/show.blade.php @@ -12,6 +12,11 @@ {{ $ticket->full_name }} @if ($ticket->is_internal)@endif {{ $ticket->type->label() }} + @if (auth()->user()->isAdmin()) + + @endif
@can('suscribeToTicket', $ticket) @@ -99,7 +104,9 @@ @endif

- {{ __('Suivi') }} + @if ($ticket->site->projectManager) + {{ __("Chef de projet") }} : {{ $ticket->site->projectManager->name }} + @endif @can('createMessage', $ticket)

@endif + @php + $linkedTickets = $ticket->linkedTickets; + @endphp + @if (!$linkedTickets->isEmpty() or auth()->user()->can('linkTicket', $ticket))
@@ -292,7 +303,7 @@
@endcan
- @foreach ($linkedTicket as $linked) + @foreach ($linkedTickets as $linked)
@can('linkTicket', $ticket)
+ @endif

@can('createGitlabIssue', $ticket) diff --git a/resources/views/bo/pages/users/form-inputs.blade.php b/resources/views/bo/pages/users/form-inputs.blade.php index 8bcb5a8..ee0e1e0 100644 --- a/resources/views/bo/pages/users/form-inputs.blade.php +++ b/resources/views/bo/pages/users/form-inputs.blade.php @@ -118,6 +118,25 @@
+ {{-- GITLAB_USER_ID --}} +
+
+ {{ __("ID de l'utilisateur Gitlab") }} +
+
+ @include('bo.partials.inputs.int-number', [ + 'id' => 'siteGitlabUserId', + 'label' => __("ID de l'utilisateur Gitlab"), + 'name' => 'gitlab_id', + 'required' => false, + 'model' => $userModel ?? null, + 'helper' => __("ID de l'utilisateur Gitlab"), + 'step' => 1, + ]) +
+
+
+
@push('scripts') diff --git a/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php b/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php index 00ae35a..dcf9d41 100644 --- a/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php +++ b/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php @@ -10,6 +10,6 @@ @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{{ $id }}Help", + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/date.blade.php b/resources/views/bo/partials/inputs/date.blade.php index 652dede..d5a69c2 100644 --- a/resources/views/bo/partials/inputs/date.blade.php +++ b/resources/views/bo/partials/inputs/date.blade.php @@ -10,6 +10,6 @@ value="{{ old($name, ((isset($model) and $model->{$name}) ? ($model->{$name}->format('Y-m-d') ?? ($defaultValue ? Carbon\Carbon::today() : '')) : ($defaultValue ? Carbon\Carbon::today() : ''))) }}"> @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/int-color.blade.php b/resources/views/bo/partials/inputs/int-color.blade.php index b3b63f6..b42f1e9 100644 --- a/resources/views/bo/partials/inputs/int-color.blade.php +++ b/resources/views/bo/partials/inputs/int-color.blade.php @@ -24,7 +24,7 @@ @endif @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => '{{ $id }}Help', + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/int-number.blade.php b/resources/views/bo/partials/inputs/int-number.blade.php index a42a331..7e1b841 100644 --- a/resources/views/bo/partials/inputs/int-number.blade.php +++ b/resources/views/bo/partials/inputs/int-number.blade.php @@ -3,9 +3,7 @@ {{ $label }} {{ $required ? '*' : '' }} @endif -@if(isset($appendText))
- @endif @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => '{{ $id }}Help', + 'helperId' => $id.'Help', 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/pivot-belongsToMany.blade.php b/resources/views/bo/partials/inputs/pivot-belongsToMany.blade.php index 0bbccd4..10f1ea4 100644 --- a/resources/views/bo/partials/inputs/pivot-belongsToMany.blade.php +++ b/resources/views/bo/partials/inputs/pivot-belongsToMany.blade.php @@ -16,6 +16,6 @@ $data = [
@include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper, ]) diff --git a/resources/views/bo/partials/inputs/publish-dates.blade.php b/resources/views/bo/partials/inputs/publish-dates.blade.php index 4df46a2..cedd68e 100644 --- a/resources/views/bo/partials/inputs/publish-dates.blade.php +++ b/resources/views/bo/partials/inputs/publish-dates.blade.php @@ -11,6 +11,6 @@ value="{{ old($name, ((isset($model) and $model->{$name}) ? $model->{$name}->format('Y-m-d\TH:i') : '')) }}"> @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => $id . 'Help', + 'helperId' => $id."Help", 'helper' => (isset($model) and $model->{$name}) ? __('Leave empty for immediate display of the slider.') : __('Empty for immediate display of the slider.') ]) diff --git a/resources/views/bo/partials/inputs/search-belongs-to-dropdown.blade.php b/resources/views/bo/partials/inputs/search-belongs-to-dropdown.blade.php index 85d83d5..571de8e 100644 --- a/resources/views/bo/partials/inputs/search-belongs-to-dropdown.blade.php +++ b/resources/views/bo/partials/inputs/search-belongs-to-dropdown.blade.php @@ -23,6 +23,6 @@ $data = [
@include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper, ]) diff --git a/resources/views/bo/partials/inputs/text-html.blade.php b/resources/views/bo/partials/inputs/text-html.blade.php index de91170..17b9af0 100644 --- a/resources/views/bo/partials/inputs/text-html.blade.php +++ b/resources/views/bo/partials/inputs/text-html.blade.php @@ -12,7 +12,7 @@ $data = [
@include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper ?? __('crud.minicrud.text_warning', ['number' => 15]) . '. ' . __('validation.min.string', [ 'attribute' => $input['label'], 'min' => 15 diff --git a/resources/views/bo/partials/inputs/text-list-items.blade.php b/resources/views/bo/partials/inputs/text-list-items.blade.php index 6262b0b..5641ec9 100644 --- a/resources/views/bo/partials/inputs/text-list-items.blade.php +++ b/resources/views/bo/partials/inputs/text-list-items.blade.php @@ -23,7 +23,7 @@
@include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper, ])
diff --git a/resources/views/bo/partials/inputs/timestamp-datetime.blade.php b/resources/views/bo/partials/inputs/timestamp-datetime.blade.php index bd1e4ca..ea9c701 100644 --- a/resources/views/bo/partials/inputs/timestamp-datetime.blade.php +++ b/resources/views/bo/partials/inputs/timestamp-datetime.blade.php @@ -10,6 +10,6 @@ value="{{ old($name, ((isset($model) and $model->{$name}) ? ($model->{$name}->format('Y-m-d\TH:i') ?? ($defaultValue ? Carbon\Carbon::today() : '')) : ($defaultValue ? Carbon\Carbon::today() : ''))) }}"> @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/tinyint-boolean.blade.php b/resources/views/bo/partials/inputs/tinyint-boolean.blade.php index a8fee20..5e4440d 100644 --- a/resources/views/bo/partials/inputs/tinyint-boolean.blade.php +++ b/resources/views/bo/partials/inputs/tinyint-boolean.blade.php @@ -10,5 +10,5 @@ @if(old($name, (old('_token') ? false : ($model->{$name} ?? false)))) checked @endif>
@include('modules.input-error', [ - 'inputName' => $name, 'helperId' => '{{ $id }}Help' , 'helper' => $helper + 'inputName' => $name, 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/tinyint-enum.blade.php b/resources/views/bo/partials/inputs/tinyint-enum.blade.php index 314fc7a..302f187 100644 --- a/resources/views/bo/partials/inputs/tinyint-enum.blade.php +++ b/resources/views/bo/partials/inputs/tinyint-enum.blade.php @@ -10,6 +10,6 @@ @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{{ $id }}Help", + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/varchar-multiline.blade.php b/resources/views/bo/partials/inputs/varchar-multiline.blade.php index d1347db..6906f56 100644 --- a/resources/views/bo/partials/inputs/varchar-multiline.blade.php +++ b/resources/views/bo/partials/inputs/varchar-multiline.blade.php @@ -22,6 +22,6 @@ $data = [
@include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/varchar.blade.php b/resources/views/bo/partials/inputs/varchar.blade.php index 1cfd04d..fa79d0a 100644 --- a/resources/views/bo/partials/inputs/varchar.blade.php +++ b/resources/views/bo/partials/inputs/varchar.blade.php @@ -21,6 +21,6 @@ @endif> @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => $id.'Help', + 'helperId' => $id."Help", 'helper' => $helper ]) diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php deleted file mode 100644 index 76a16d6..0000000 --- a/resources/views/home.blade.php +++ /dev/null @@ -1,58 +0,0 @@ -@extends('layout.app') - -@section('title', __('Accueil')) -@section('description', __('Page d\'accueil du site :site', ['site' => config('app.name')])) - -@section('content') -
- -
-
-

- {{ __('models.classes.dutyhours') . __(' à venir') }} -

-
-
-
-
-
- - - - - - - - - - @if($dutyhourModels->count()) - @foreach ($dutyhourModels as $dutyhourModel) - - - - - - @endforeach - @else - - - - @endif - -
{{ __('Date') }}{{ __('Personne présente') }}{{ __('Lieu de la permanence') }}
{{ $dutyhourModel->date->formatLocalized('%d/%m/%Y') }}{{ $dutyhourModel->person }}{{ $dutyhourModel->place }}
- {{ __('Aucune :model prévue prochainement', ['model' => Str::singular(__('models.classes.dutyhours')) ])}} -
-
-
-
-
-@endsection diff --git a/resources/views/layout/nav.blade.php b/resources/views/layout/nav.blade.php index 05eb030..696d66e 100644 --- a/resources/views/layout/nav.blade.php +++ b/resources/views/layout/nav.blade.php @@ -40,14 +40,14 @@ {{ __('models.classes.packages') }} @endcan @can('isAdmin') - {{ __('models.classes.dutyhours') }} - @endcan - @can('isAdmin') {{ __('models.classes.informations') }} @endcan @can('isAdmin') {{ trans_choice('models.classes.ticket_types', 2) }} @endcan + @can('isAdmin') + {{ __('models.classes.labels') }} + @endcan
@endcan @@ -108,7 +108,7 @@ {{ __('Identifiants') }} - + @csrf diff --git a/routes/breadcrumbs-bo.php b/routes/breadcrumbs-bo.php index d07d24b..adab166 100644 --- a/routes/breadcrumbs-bo.php +++ b/routes/breadcrumbs-bo.php @@ -3,7 +3,6 @@ use App\Enums\Invoices\InvoiceStatusEnum; use App\Models\Brand; use App\Models\Company; -use App\Models\Dutyhour; use App\Models\Information; use App\Models\Invoice; use App\Models\Label; @@ -28,19 +27,6 @@ Breadcrumbs::for('bo.packages.edit', function (Generator $trail, Package $packag $trail->push(__('crud.actions.edit'), route('bo.packages.edit', $package->id)); }); -// * DUTYHOURS -Breadcrumbs::for('bo.dutyhours.index', function (Generator $trail) { - $trail->push(__('models.classes.dutyhours'), route('bo.dutyhours.index')); -}); -Breadcrumbs::for('bo.dutyhours.create', function (Generator $trail) { - $trail->parent('bo.dutyhours.index'); - $trail->push(__('crud.actions.create'), route('bo.dutyhours.create')); -}); -Breadcrumbs::for('bo.dutyhours.edit', function (Generator $trail, Dutyhour $dutyhour) { - $trail->parent('bo.dutyhours.index'); - $trail->push(__('crud.actions.edit'), route('bo.dutyhours.edit', $dutyhour->id)); -}); - // * INFORMATIONS Breadcrumbs::for('bo.informations.index', function (Generator $trail) { $trail->push(__('models.classes.informations'), route('bo.informations.index')); diff --git a/routes/web-bo.php b/routes/web-bo.php index 5dd91c5..faca415 100644 --- a/routes/web-bo.php +++ b/routes/web-bo.php @@ -5,8 +5,6 @@ use App\Http\Controllers\Bo\CompanyController; use App\Http\Controllers\Bo\Credit\AccountController; use App\Http\Controllers\Bo\Credit\CreditLogController; use App\Http\Controllers\Bo\Credit\EstimationController; -use App\Http\Controllers\Bo\DashboardController; -use App\Http\Controllers\Bo\DutyhourController; use App\Http\Controllers\Bo\InformationController; use App\Http\Controllers\Bo\InvoiceController; use App\Http\Controllers\Bo\LabelController; @@ -43,7 +41,9 @@ Route::middleware('admin-secure') Route::middleware('auth:backend') ->group(function () { // * HOME - Route::get('/', [DashboardController::class, 'index'])->name('dashboard'); + Route::get('/', function(){ + return redirect()->route('bo.ticket.index'); + })->name('dashboard'); Route::middleware(['can:isAdmin']) ->group(function () { @@ -56,7 +56,6 @@ Route::middleware('admin-secure') ->middleware('htmlsanitize:template') ->parameters(['ticket_types' => 'ticket_type']); Route::resource('packages', PackageController::class)->except('show'); - Route::resource('dutyhours', DutyhourController::class)->except('show'); Route::resource('invoices', InvoiceController::class) ->withoutMiddleware('htmlsanitize') ->middleware(['htmlsanitize:comment']);