administration des dossiers
This commit is contained in:
parent
c58d008ec7
commit
b502e0f2c5
19 changed files with 622 additions and 8 deletions
|
|
@ -6,5 +6,38 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
class Dossier extends Model
|
||||
{
|
||||
//
|
||||
|
||||
/**
|
||||
* The marques that belong to the dossier.
|
||||
*/
|
||||
public function marques()
|
||||
{
|
||||
return $this->belongsToMany('App\Marque', 'marques_dossiers', 'dossier_id', 'marque_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the sujet that owns the dossier.
|
||||
*/
|
||||
public function sujet()
|
||||
{
|
||||
return $this->belongsTo('App\Sujet', 'sujet_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the dossiers for the parent.
|
||||
*/
|
||||
public function sousdossiers()
|
||||
{
|
||||
return $this->hasMany('App\Dossier', 'parent_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the parent that owns the dossiers.
|
||||
*/
|
||||
public function dossierParent()
|
||||
{
|
||||
return $this->belongsTo('App\Dossier', 'id', 'parent_id');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use App\Mail\contact;
|
||||
use App\Sujet;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CommunController extends Controller
|
||||
|
|
@ -45,6 +46,7 @@ class CommunController extends Controller
|
|||
*/
|
||||
public function media_manager()
|
||||
{
|
||||
return view('media_manager');
|
||||
$sujets = Sujet::all();
|
||||
return view('media_manager')->with(['sujets'=> $sujets]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
175
app/Http/Controllers/DossierController.php
Normal file
175
app/Http/Controllers/DossierController.php
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Dossier;
|
||||
use App\Sujet;
|
||||
use App\Marque;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class DossierController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$dossiers = Dossier::whereNull('parent_id')
|
||||
->get();
|
||||
$sujets = Sujet::all();
|
||||
return view('dossiers.index')->with(['dossiers'=> $dossiers, 'sujets'=> $sujets]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$marques = Marque::all();
|
||||
$sujets = Sujet::all();
|
||||
return view('dossiers.create')->with(['marques'=> $marques, 'sujets'=> $sujets]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$validatedData = $request->validate([
|
||||
'libelle' => 'required',
|
||||
'sujet' => 'required',
|
||||
]);
|
||||
|
||||
$dossierExist = Dossier::where('libelle', $request->libelle)->where('sujet_id', $request->sujet)->first();
|
||||
if($dossierExist){
|
||||
session()->flash('error', "Ce nom de dossier est déjà présent dans l'application pour ce sujet. Ajout impossible.");
|
||||
return redirect()->route('dossier.create');
|
||||
}else{
|
||||
// ---- Le dossier
|
||||
$dossier = new Dossier();
|
||||
$dossier->libelle = $request->libelle;
|
||||
$dossier->description = $request->description;
|
||||
$dossier->sujet()->associate($request->sujet);
|
||||
|
||||
if ($dossier->save()){
|
||||
|
||||
// ---- Les marques
|
||||
$sMarques = $request->marques;
|
||||
if($sMarques != ""){
|
||||
$marques = explode(",", $sMarques);
|
||||
foreach($marques as $marqueId){
|
||||
$dossier->marques()->attach($marqueId);
|
||||
}
|
||||
}
|
||||
|
||||
session()->flash('message', "Le dossier à été enregistré");
|
||||
return redirect()->route('dossier.edit', ['dossier' => $dossier]);
|
||||
}else{
|
||||
session()->flash('error', "Une erreur s'est produite, ajout impossible");
|
||||
return redirect()->route('dossier.create');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Dossier $dossier
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Dossier $dossier)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Dossier $dossier
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Dossier $dossier)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$dossierMarques = $dossier->marques;
|
||||
$marques = Marque::all();
|
||||
$dossierSujets = $dossier->sujets;
|
||||
$sujets = Sujet::all();
|
||||
return view('dossiers.edit')->with(['dossier'=> $dossier, 'dossierMarques' => $dossierMarques, 'marques' => $marques, 'sujets'=> $sujets]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Dossier $dossier
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Dossier $dossier)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$validatedData = $request->validate([
|
||||
'libelle' => 'required',
|
||||
'sujet' => 'required',
|
||||
]);
|
||||
|
||||
$dossierExist = Dossier::where('libelle', $request->libelle)->where('sujet_id', $request->sujet)->where('id', '<>', $dossier->id)->first();
|
||||
if($dossierExist){
|
||||
session()->flash('error', "Ce nom de dossier est déjà présent dans l'application pour ce sujet. Ajout impossible.");
|
||||
return redirect()->route('dossier.edit', ['dossier' => $dossier]);
|
||||
}else{
|
||||
// ---- Le dossier
|
||||
$dossier->libelle = $request->libelle;
|
||||
$dossier->description = $request->description;
|
||||
$dossier->sujet()->dissociate();
|
||||
$dossier->sujet()->associate($request->sujet);
|
||||
|
||||
if ($dossier->save()){
|
||||
|
||||
// ---- Les marques
|
||||
$dossier->marques()->detach();
|
||||
$sMarques = $request->marques;
|
||||
if($sMarques != ""){
|
||||
$marques = explode(",", $sMarques);
|
||||
foreach($marques as $marqueId){
|
||||
$dossier->marques()->attach($marqueId);
|
||||
}
|
||||
}
|
||||
|
||||
session()->flash('message', "Le dossier à été mis à jour");
|
||||
return redirect()->route('dossier.edit', ['dossier' => $dossier]);
|
||||
}else{
|
||||
session()->flash('error', "Une erreur s'est produite, enregistrement impossible");
|
||||
return redirect()->route('dossier.edit');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Dossier $dossier
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Dossier $dossier)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
if ($dossier->delete()) {
|
||||
return redirect(route('dossier.index'));
|
||||
} else {
|
||||
session()->flash('error', 'Erreur lors de la suppression');
|
||||
return redirect()->route('dossier.edit', ['user' => $dossier]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -20,7 +20,8 @@ class UserController extends Controller
|
|||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$users = User::all();
|
||||
return view('users.index')->with(['users'=> $users]);
|
||||
$sujets = Sujet::all();
|
||||
return view('users.index')->with(['users'=> $users, 'sujets'=> $sujets]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -30,6 +31,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function create()
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$roles = config('roles.label');
|
||||
$marques = Marque::all();
|
||||
$sujets = Sujet::all();
|
||||
|
|
@ -44,7 +46,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$validatedData = $request->validate([
|
||||
'matricule' => 'required',
|
||||
'firstname' => 'required',
|
||||
|
|
@ -101,6 +103,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function checkMatricule(Request $request)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$response = array();
|
||||
$response["exist_bdd"] = false;
|
||||
$response["exist_ldap"] = false;
|
||||
|
|
@ -169,6 +172,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function update(Request $request, User $user)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
$validatedData = $request->validate([
|
||||
'firstname' => 'required',
|
||||
'lastname' => 'required',
|
||||
|
|
@ -215,6 +219,7 @@ class UserController extends Controller
|
|||
*/
|
||||
public function destroy(User $user)
|
||||
{
|
||||
Auth::user()->authorizeRoles(config('roles.const.ADMIN'));
|
||||
if ($user->delete()) {
|
||||
return redirect(route('user.index'));
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -22,4 +22,12 @@ class Marque extends Model
|
|||
return $this->belongsToMany('App\User', 'marques_users', 'marque_id', 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* The dossier that belong to the marque.
|
||||
*/
|
||||
public function dossiers()
|
||||
{
|
||||
return $this->belongsToMany('App\Dossier', 'marques_dossier', 'marque_id', 'dossier_id');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
class Sujet extends Model
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The primary key associated with the table.
|
||||
*
|
||||
|
|
@ -21,4 +22,12 @@ class Sujet extends Model
|
|||
{
|
||||
return $this->belongsToMany('App\User', 'sujets_users', 'sujet_id', 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the dossier for the sujet.
|
||||
*/
|
||||
public function dossiers()
|
||||
{
|
||||
return $this->hasMany('App\Dossier');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
36
public/css/app.css
vendored
36
public/css/app.css
vendored
|
|
@ -12605,6 +12605,42 @@ table tfoot tr {
|
|||
margin-top: 25px;
|
||||
}
|
||||
|
||||
.media_manager .side_menu {
|
||||
background-color: #3b3b3b;
|
||||
position: relative;
|
||||
width: 340px;
|
||||
}
|
||||
|
||||
.media_manager .side_menu::before {
|
||||
content: "";
|
||||
background-color: #333333;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
height: 3px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.media_manager .side_menu header {
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.media_manager .side_menu header h1 {
|
||||
font-size: 19px;
|
||||
margin: 19px 0px;
|
||||
}
|
||||
|
||||
.media_manager .side_menu header h1 i {
|
||||
background-color: #f6993f;
|
||||
padding: 10px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.media_manager .side_menu .folder_container {
|
||||
background-color: #333333;
|
||||
min-height: calc(100% - 77px);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/******************************************
|
||||
PAGE LOGIN
|
||||
******************************************/
|
||||
|
|
|
|||
30
public/js/app.js
vendored
30
public/js/app.js
vendored
|
|
@ -10710,6 +10710,13 @@ $(document).ready(function () {
|
|||
$(".filter_user_input").val('');
|
||||
var roleId = $(".filter_role").val();
|
||||
tableSearch('.datatable tr.data_row', 'attr-role', roleId);
|
||||
}); // ---- Gestion des dossiers : filtre sujet
|
||||
|
||||
$(".filter_sujet_btn").on('click', function (event) {
|
||||
event.preventDefault();
|
||||
$(".filter_user_input").val('');
|
||||
var sujetId = $(".filter_sujet").val();
|
||||
tableSearch('.datatable tr.data_row', 'attr-sujet', sujetId);
|
||||
}); // ---- Gestion des utilisateurs : recherche d'utilisateur
|
||||
|
||||
$(".filter_user_btn").on('click', function (event) {
|
||||
|
|
@ -10717,6 +10724,13 @@ $(document).ready(function () {
|
|||
$(".filter_role").val(0);
|
||||
var search = $(".filter_user_input").val();
|
||||
tableGlobalSearch('.datatable tr.data_row', search, [1, 2, 3]);
|
||||
}); // ---- Gestion des dossiers : recherche un dossier
|
||||
|
||||
$(".filter_dossier_btn").on('click', function (event) {
|
||||
event.preventDefault();
|
||||
$(".filter_sujet").val(0);
|
||||
var search = $(".filter_dossier_input").val();
|
||||
tableGlobalSearch('.datatable tr.data_row', search, [1]);
|
||||
}); // ---- Edition des utilisateurs : suppression d'utilisateur
|
||||
|
||||
$(".btn_delete_user").on('click', function (event) {
|
||||
|
|
@ -10733,6 +10747,22 @@ $(document).ready(function () {
|
|||
}
|
||||
}
|
||||
});
|
||||
}); // ---- Edition des dossiers : suppression d'un dossier
|
||||
|
||||
$(".btn_delete_dossier").on('click', function (event) {
|
||||
event.preventDefault();
|
||||
var form = $(".deleteform");
|
||||
$.fancyConfirm({
|
||||
title: "Suppression d'un dossier",
|
||||
message: "Êtes-vous sûr de vouloir supprimer ce dossier ?",
|
||||
okButton: 'Supprimer',
|
||||
noButton: 'Annuler',
|
||||
callback: function callback(value) {
|
||||
if (value) {
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
});
|
||||
}); // ---- Ajout des utilisateurs : vérification du matricule
|
||||
|
||||
$(".check_matricule").on('blur', function (event) {
|
||||
|
|
|
|||
34
resources/js/admin.js
vendored
34
resources/js/admin.js
vendored
|
|
@ -9,6 +9,14 @@ $(document).ready(function() {
|
|||
tableSearch('.datatable tr.data_row', 'attr-role', roleId)
|
||||
});
|
||||
|
||||
// ---- Gestion des dossiers : filtre sujet
|
||||
$(".filter_sujet_btn").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
$(".filter_user_input").val('');
|
||||
var sujetId = $(".filter_sujet").val();
|
||||
tableSearch('.datatable tr.data_row', 'attr-sujet', sujetId)
|
||||
});
|
||||
|
||||
// ---- Gestion des utilisateurs : recherche d'utilisateur
|
||||
$(".filter_user_btn").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
|
|
@ -16,6 +24,15 @@ $(document).ready(function() {
|
|||
var search = $(".filter_user_input").val();
|
||||
tableGlobalSearch('.datatable tr.data_row', search, [1,2,3]);
|
||||
});
|
||||
|
||||
// ---- Gestion des dossiers : recherche un dossier
|
||||
$(".filter_dossier_btn").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
$(".filter_sujet").val(0);
|
||||
var search = $(".filter_dossier_input").val();
|
||||
tableGlobalSearch('.datatable tr.data_row', search, [1]);
|
||||
});
|
||||
|
||||
// ---- Edition des utilisateurs : suppression d'utilisateur
|
||||
$(".btn_delete_user").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
|
|
@ -32,6 +49,23 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
});
|
||||
|
||||
// ---- Edition des dossiers : suppression d'un dossier
|
||||
$(".btn_delete_dossier").on('click', function(event) {
|
||||
event.preventDefault();
|
||||
var form = $(".deleteform");
|
||||
$.fancyConfirm({
|
||||
title : "Suppression d'un dossier",
|
||||
message : "Êtes-vous sûr de vouloir supprimer ce dossier ?",
|
||||
okButton : 'Supprimer',
|
||||
noButton : 'Annuler',
|
||||
callback : function (value) {
|
||||
if (value) {
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
// ---- Ajout des utilisateurs : vérification du matricule
|
||||
$(".check_matricule").on('blur', function(event) {
|
||||
var matricule = $(this).val();
|
||||
|
|
|
|||
1
resources/sass/app.scss
vendored
1
resources/sass/app.scss
vendored
|
|
@ -10,4 +10,5 @@
|
|||
'partials/fontawesome/brands.scss',
|
||||
'partials/common.scss',
|
||||
'partials/form.scss',
|
||||
'partials/media.scss',
|
||||
'partials/user.scss';
|
||||
|
|
|
|||
41
resources/sass/partials/media.scss
vendored
Normal file
41
resources/sass/partials/media.scss
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
|
||||
.media_manager{
|
||||
|
||||
.side_menu{
|
||||
background-color: $grey;
|
||||
position: relative;
|
||||
width: 340px;
|
||||
|
||||
&::before{
|
||||
content: '';
|
||||
background-color: $grey3;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
height: 3px;
|
||||
top : 0;
|
||||
}
|
||||
|
||||
header{
|
||||
padding-left: 12px;
|
||||
|
||||
h1{
|
||||
font-size: 19px;
|
||||
margin: 19px 0px;
|
||||
|
||||
i{
|
||||
background-color: $orange;
|
||||
padding: 10px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.folder_container{
|
||||
background-color: $grey3;
|
||||
min-height: calc(100% - 77px);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
83
resources/views/dossiers/create.blade.php
Normal file
83
resources/views/dossiers/create.blade.php
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
@extends('layouts.app')
|
||||
@include('layouts.header')
|
||||
@section('content')
|
||||
<main class="user_index template_2col">
|
||||
<div class="side_menu">
|
||||
<a href="{{ route('user.index') }}"><span>Gestion des utilisateurs</span><i class="fas fa-users-cog"></i></a>
|
||||
<a class="active" href="{{ route('dossier.index') }}"><span>Gestion des dossiers</span><i class="fas fa-folders"></i></a>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<i class="fas fa-times"></i>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ __($error) }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session()->has('error'))
|
||||
<div class="alert alert-danger">
|
||||
<i class="fas fa-times"></i>
|
||||
<ul>
|
||||
<li>{{ Session::get('error') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session()->has('message'))
|
||||
<div class="alert alert-ok">
|
||||
<i class="fas fa-check"></i>
|
||||
<ul>
|
||||
<li>{{ Session::get('message') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="heading">
|
||||
<h1>Ajouter un dossier</h1>
|
||||
</div>
|
||||
{!! Form::open( ['route' => 'dossier.store', 'class' => 'dataform']) !!}
|
||||
@method('POST')
|
||||
<div class="form-field">
|
||||
{!! Form::label('libelle', 'Libellé') !!}
|
||||
{!! Form::text('libelle', null, ['required']) !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label('description', 'Description') !!}
|
||||
{!! Form::textarea('description', null) !!}
|
||||
</div>
|
||||
<div class="form-section">
|
||||
{!! Form::label('sujet', 'Sujet associé') !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label("", "") !!}
|
||||
{!! Form::select('sujet', $sujets->pluck('LIBELLE', 'CODE_SUJET')) !!}
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
{!! Form::label('marques', 'Marques associées') !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label("", "") !!}
|
||||
<div class="selector_form selector_marques">
|
||||
{!! Form::text('search', null, ['class' => "selector_filter", 'placeholder' => "Rechercher...", "autocomplete" => "off"]) !!}
|
||||
<div class="selector_list">
|
||||
<ul class="selector_choices" >
|
||||
@foreach ($marques as $marque)
|
||||
<li data-value="{{$marque->COD_MARQUE}}" >{{$marque->LIBELLE}}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<ul class="selector_values" >
|
||||
</ul>
|
||||
<input class="selector_dataValues" type="hidden" name="marques" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-row">
|
||||
{!! Form::submit('Enregistrer', [ 'class' => 'btn']) !!} <a href="{{ route('user.index') }}" class="btn btn-black ml-10">Annuler</a>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
</main>
|
||||
@endsection
|
||||
89
resources/views/dossiers/edit.blade.php
Normal file
89
resources/views/dossiers/edit.blade.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
@extends('layouts.app')
|
||||
@include('layouts.header')
|
||||
@section('content')
|
||||
<main class="user_index template_2col">
|
||||
<div class="side_menu">
|
||||
<a href="{{ route('user.index') }}"><span>Gestion des utilisateurs</span><i class="fas fa-users-cog"></i></a>
|
||||
<a class="active" href="{{ route('dossier.index') }}"><span>Gestion des dossiers</span><i class="fas fa-folders"></i></a>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<i class="fas fa-times"></i>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ __($error) }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session()->has('error'))
|
||||
<div class="alert alert-danger">
|
||||
<i class="fas fa-times"></i>
|
||||
<ul>
|
||||
<li>{{ Session::get('error') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@if (session()->has('message'))
|
||||
<div class="alert alert-ok">
|
||||
<i class="fas fa-check"></i>
|
||||
<ul>
|
||||
<li>{{ Session::get('message') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="heading">
|
||||
<h1>Edition d'un dossier</h1>
|
||||
</div>
|
||||
{!! Form::model($dossier, ['route' => ['dossier.update', $dossier], 'enctype' => 'multipart/form-data', 'class' => 'dataform']) !!}
|
||||
@method('PUT')
|
||||
<div class="form-field">
|
||||
{!! Form::label('libelle', 'Libellé') !!}
|
||||
{!! Form::text('libelle', $dossier->libelle, ['required']) !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label('description', 'Description') !!}
|
||||
{!! Form::textarea('description', $dossier->description) !!}
|
||||
</div>
|
||||
<div class="form-section">
|
||||
{!! Form::label('sujet', 'Sujet associé') !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label("", "") !!}
|
||||
{!! Form::select('sujet', $sujets->pluck('LIBELLE', 'CODE_SUJET'), $dossier->sujet_id) !!}
|
||||
</div>
|
||||
<div class="form-section">
|
||||
{!! Form::label('marques', 'Marques associées') !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label("", "") !!}
|
||||
<div class="selector_form selector_marques">
|
||||
{!! Form::text('search', null, ['class' => "selector_filter", 'placeholder' => "Rechercher...", "autocomplete" => "off"]) !!}
|
||||
<div class="selector_list">
|
||||
<ul class="selector_choices" >
|
||||
@foreach ($marques as $marque)
|
||||
<li data-value="{{$marque->COD_MARQUE}}" >{{$marque->LIBELLE}}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<ul class="selector_values" >
|
||||
@foreach ($dossierMarques as $dossierMarque)
|
||||
<li data-value="{{$dossierMarque->COD_MARQUE}}" >{{$dossierMarque->LIBELLE}}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<input class="selector_dataValues" type="hidden" name="marques" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-row">
|
||||
{!! Form::submit('Enregistrer', [ 'class' => 'btn']) !!} <a href="{{ route('dossier.index') }}" class="btn btn-black ml-10">Annuler</a>
|
||||
<a href="#" class="btn btn-black floatr btn_delete_dossier">Supprimer ce dossier</a>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
{!! Form::model($dossier, ['route' => ['dossier.destroy', $dossier], 'enctype' => 'multipart/form-data', 'class' => 'deleteform']) !!}
|
||||
@method('DELETE')
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
</main>
|
||||
@endsection
|
||||
55
resources/views/dossiers/index.blade.php
Normal file
55
resources/views/dossiers/index.blade.php
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
@extends('layouts.app')
|
||||
@include('layouts.header')
|
||||
@section('content')
|
||||
<main class="user_index template_2col">
|
||||
<div class="side_menu">
|
||||
<a href="{{ route('user.index') }}"><span>Gestion des utilisateurs</span><i class="fas fa-users-cog"></i></a>
|
||||
<a class="active" href="{{ route('dossier.index') }}"><span>Gestion des dossiers</span><i class="fas fa-folders"></i></a>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
<div class="heading">
|
||||
<h1>Gestion des dossiers</h1>
|
||||
<a href="{{ route('dossier.create') }}" class=" btn"><i class="fal fa-plus"></i> Ajouter</a>
|
||||
</div>
|
||||
|
||||
<div class="filter_row group">
|
||||
<div class="left_col">
|
||||
<select class="filter_sujet" >
|
||||
<option value="0">Filtrer par sujet</option>
|
||||
@foreach ($sujets as $sujet)
|
||||
<option value="{{$sujet->CODE_SUJET}}">{{$sujet->LIBELLE}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<a href="#" class=" btn btn-black filter_sujet_btn">Ok</a>
|
||||
</div>
|
||||
<div class="right_col">
|
||||
<input type="text" value="" class="filter_dossier_input">
|
||||
<a href="#" class=" btn btn-black filter_dossier_btn">Rechercher un dossier</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>LIBELLE</th>
|
||||
<th>SUJET</th>
|
||||
<th>MARQUES</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@foreach ($dossiers as $dossier)
|
||||
<tr class="data_row" attr-sujet="{{ $dossier->sujet->CODE_SUJET}}">
|
||||
<td><a href="{{ route('dossier.edit', $dossier) }}">{{ $dossier->libelle }}</a></td>
|
||||
<td>{{ $dossier->sujet->LIBELLE }}</td>
|
||||
<td>{{ $dossier->marques->implode('LIBELLE', ', ') }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</main>
|
||||
@endsection
|
||||
|
|
@ -1,7 +1,16 @@
|
|||
@extends('layouts.app')
|
||||
@include('layouts.header')
|
||||
@section('content')
|
||||
<main class="media_manager">
|
||||
|
||||
<main class="media_manager template_2col">
|
||||
<div class="side_menu">
|
||||
<header>
|
||||
<h1><i class="fas fa-images"></i> Gestion des médias</h1>
|
||||
</header>
|
||||
<div class="folder_container">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
</div>
|
||||
</main>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<main class="user_index template_2col">
|
||||
<div class="side_menu">
|
||||
<a class="active" href="{{ route('user.index') }}"><span>Gestion des utilisateurs</span><i class="fas fa-users-cog"></i></a>
|
||||
<a href="{{ route('dossier.index') }}"><span>Gestion des dossiers</span><i class="fas fa-folders"></i></a>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
@if ($errors->any())
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<main class="user_index template_2col">
|
||||
<div class="side_menu">
|
||||
<a class="active" href="{{ route('user.index') }}"><span>Gestion des utilisateurs</span><i class="fas fa-users-cog"></i></a>
|
||||
<a href="{{ route('dossier.index') }}"><span>Gestion des dossiers</span><i class="fas fa-folders"></i></a>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
@if ($errors->any())
|
||||
|
|
@ -84,7 +85,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
{!! Form::label('marques', 'Sujets disponibles') !!}
|
||||
{!! Form::label('sujets', 'Sujets disponibles') !!}
|
||||
</div>
|
||||
<div class="form-field">
|
||||
{!! Form::label("", "") !!}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<main class="user_index template_2col">
|
||||
<div class="side_menu">
|
||||
<a class="active" href="{{ route('user.index') }}"><span>Gestion des utilisateurs</span><i class="fas fa-users-cog"></i></a>
|
||||
<a href="{{ route('dossier.index') }}"><span>Gestion des dossiers</span><i class="fas fa-folders"></i></a>
|
||||
</div>
|
||||
<div class="main_content">
|
||||
<div class="heading">
|
||||
|
|
@ -46,7 +47,7 @@
|
|||
@endforeach
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<td colspan="4">
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ Route::group(['middleware' => ['auth']], function(){
|
|||
Route::get('/gestion-des-medias', 'CommunController@media_manager')->name('media_manager');
|
||||
Route::resource('user', 'UserController');
|
||||
Route::post('/check-matricule', 'UserController@checkMatricule');
|
||||
Route::resource('dossier', 'DossierController');
|
||||
});
|
||||
|
||||
Auth::routes([
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue