mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 10:49:10 -04:00
Merge branch '3.2.1' into 'dev'
3.2.1 See merge request TheGamecraft/c-cms!49
This commit is contained in:
@@ -69,6 +69,22 @@ deploy_227:
|
|||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
deploy_117:
|
||||||
|
stage: deploy
|
||||||
|
script:
|
||||||
|
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
|
||||||
|
- eval $(ssh-agent -s)
|
||||||
|
- ssh-add <(echo "$SSH_PRIVATE_KEY")
|
||||||
|
- mkdir -p ~/.ssh
|
||||||
|
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
|
||||||
|
|
||||||
|
- ~/.composer/vendor/bin/envoy run deploy_117 --commit="$CI_COMMIT_SHA"
|
||||||
|
environment:
|
||||||
|
name: CCMRC117
|
||||||
|
url: http://117.exvps.ca
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|
||||||
deploy_dev:
|
deploy_dev:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
script:
|
script:
|
||||||
|
|||||||
@@ -19,6 +19,10 @@
|
|||||||
$releases_dir_227 = '/var/www/c-cms/ccmrc227/releases';
|
$releases_dir_227 = '/var/www/c-cms/ccmrc227/releases';
|
||||||
$app_dir_227 = '/var/www/c-cms/ccmrc227';
|
$app_dir_227 = '/var/www/c-cms/ccmrc227';
|
||||||
$new_release_dir_227 = $releases_dir_227 .'/'. $release;
|
$new_release_dir_227 = $releases_dir_227 .'/'. $release;
|
||||||
|
|
||||||
|
$releases_dir_117 = '/var/www/c-cms/ccmrc117/releases';
|
||||||
|
$app_dir_117 = '/var/www/c-cms/ccmrc117';
|
||||||
|
$new_release_dir_117 = $releases_dir_117 .'/'. $release;
|
||||||
@endsetup
|
@endsetup
|
||||||
|
|
||||||
@story('deploy_697')
|
@story('deploy_697')
|
||||||
@@ -45,6 +49,12 @@
|
|||||||
update_symlinks_227
|
update_symlinks_227
|
||||||
@endstory
|
@endstory
|
||||||
|
|
||||||
|
@story('deploy_117')
|
||||||
|
clone_repository_117
|
||||||
|
run_composer_117
|
||||||
|
update_symlinks_117
|
||||||
|
@endstory
|
||||||
|
|
||||||
@task('clone_repository_697')
|
@task('clone_repository_697')
|
||||||
echo 'Cloning repository'
|
echo 'Cloning repository'
|
||||||
[ -d {{ $releases_dir_697 }} ] || mkdir {{ $releases_dir_697 }}
|
[ -d {{ $releases_dir_697 }} ] || mkdir {{ $releases_dir_697 }}
|
||||||
@@ -153,7 +163,7 @@
|
|||||||
@task('clone_repository_227')
|
@task('clone_repository_227')
|
||||||
echo 'Cloning repository'
|
echo 'Cloning repository'
|
||||||
[ -d {{ $releases_dir_227 }} ] || mkdir {{ $releases_dir_227 }}
|
[ -d {{ $releases_dir_227 }} ] || mkdir {{ $releases_dir_227 }}
|
||||||
git clone --depth 1 --single-branch -b dev {{ $repository }} {{ $new_release_dir_227 }}
|
git clone --depth 1 {{ $repository }} {{ $new_release_dir_227 }}
|
||||||
cd {{ $new_release_dir_227 }}
|
cd {{ $new_release_dir_227 }}
|
||||||
git reset --hard {{ $commit }}
|
git reset --hard {{ $commit }}
|
||||||
@endtask
|
@endtask
|
||||||
@@ -183,4 +193,39 @@ cd {{ $app_dir_227 }}/current/
|
|||||||
php artisan migrate
|
php artisan migrate
|
||||||
php artisan db:seed --class=ConfigsTableSeeder
|
php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
|
||||||
|
@endtask
|
||||||
|
|
||||||
|
@task('clone_repository_117')
|
||||||
|
echo 'Cloning repository'
|
||||||
|
[ -d {{ $releases_dir_117 }} ] || mkdir {{ $releases_dir_117 }}
|
||||||
|
git clone --depth 1 {{ $repository }} {{ $new_release_dir_117 }}
|
||||||
|
cd {{ $new_release_dir_117 }}
|
||||||
|
git reset --hard {{ $commit }}
|
||||||
|
@endtask
|
||||||
|
|
||||||
|
@task('run_composer_117')
|
||||||
|
echo "Starting deployment ({{ $release }})"
|
||||||
|
cd {{ $new_release_dir_117 }}
|
||||||
|
composer install --prefer-dist --no-scripts -q -o
|
||||||
|
@endtask
|
||||||
|
|
||||||
|
@task('update_symlinks_117')
|
||||||
|
echo "Linking storage directory"
|
||||||
|
rm -rf {{ $new_release_dir_117 }}/storage
|
||||||
|
ln -nfs {{ $app_dir_117 }}/storage {{ $new_release_dir_117 }}/storage
|
||||||
|
|
||||||
|
echo 'Linking .env file'
|
||||||
|
ln -nfs {{ $app_dir_117 }}/.env {{ $new_release_dir_117 }}/.env
|
||||||
|
|
||||||
|
echo 'Linking current release'
|
||||||
|
ln -nfs {{ $new_release_dir_117 }} {{ $app_dir_117 }}/current
|
||||||
|
|
||||||
|
echo 'Setting permission'
|
||||||
|
chmod -R 777 {{ $app_dir_117 }}/current/bootstrap/
|
||||||
|
|
||||||
|
echo 'Migrate DB'
|
||||||
|
cd {{ $app_dir_117 }}/current/
|
||||||
|
php artisan migrate
|
||||||
|
php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
|
||||||
@endtask
|
@endtask
|
||||||
@@ -17,6 +17,28 @@ class ConfigController extends Controller
|
|||||||
return view ('admin.configs.general',['configs' => Config::all()]);
|
return view ('admin.configs.general',['configs' => Config::all()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function customisation()
|
||||||
|
{
|
||||||
|
return view ('admin.configs.perso',['configs' => Config::all()]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function customisationUpdate()
|
||||||
|
{
|
||||||
|
$configs = [
|
||||||
|
'public_index_img_url'
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($configs as $config) {
|
||||||
|
$c = \App\Config::all()->where('name',$config)->first();
|
||||||
|
$c->data = [request($config)];
|
||||||
|
$c->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
\App\Log::saveLog('Modification de la configuration du site');
|
||||||
|
|
||||||
|
return redirect('/admin/config/customisation')->with('success','Modification sauvegarder avec succès !');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for creating a new resource.
|
* Show the form for creating a new resource.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -139,6 +139,17 @@ class EventController extends Controller
|
|||||||
|
|
||||||
$course = new \App\Course();
|
$course = new \App\Course();
|
||||||
|
|
||||||
|
foreach ($event->courses as $c)
|
||||||
|
{
|
||||||
|
if ($c->periode == $p)
|
||||||
|
{
|
||||||
|
if ($c->level == $l)
|
||||||
|
{
|
||||||
|
$course = $c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$users = \App\User::all();
|
$users = \App\User::all();
|
||||||
$instructor = 1;
|
$instructor = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ class InventoryController extends Controller
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function management()
|
||||||
|
{
|
||||||
|
return view('admin.inventory.management');
|
||||||
|
}
|
||||||
|
|
||||||
public function booking()
|
public function booking()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Item;
|
||||||
use App\ItemCategory;
|
use App\ItemCategory;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@@ -14,7 +15,7 @@ class ItemCategoryController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
//
|
return view('admin.itemcategory.index',['categories' => ItemCategory::all()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,7 +25,7 @@ class ItemCategoryController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
//
|
return view('admin.itemcategory.add');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,9 +34,32 @@ class ItemCategoryController extends Controller
|
|||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store()
|
||||||
{
|
{
|
||||||
//
|
$c = new ItemCategory();
|
||||||
|
|
||||||
|
$c->name = \request('name');
|
||||||
|
$c->desc = \request('desc');
|
||||||
|
if (\request('is_training') == 1)
|
||||||
|
{
|
||||||
|
$c->is_training = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$c->is_training = 0;
|
||||||
|
}
|
||||||
|
if (\request('is_op_appro') == 1)
|
||||||
|
{
|
||||||
|
$c->is_op_appro = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$c->is_op_appro = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$c->save();
|
||||||
|
|
||||||
|
return redirect('/admin/inventory/management/category/')->with('success','Catégorie ajouté avec succès');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,9 +79,9 @@ class ItemCategoryController extends Controller
|
|||||||
* @param \App\ItemCategory $itemCategory
|
* @param \App\ItemCategory $itemCategory
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function edit(ItemCategory $itemCategory)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
//
|
return view('admin.itemcategory.edit',['category' => ItemCategory::find($id)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -67,9 +91,32 @@ class ItemCategoryController extends Controller
|
|||||||
* @param \App\ItemCategory $itemCategory
|
* @param \App\ItemCategory $itemCategory
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, ItemCategory $itemCategory)
|
public function update($id)
|
||||||
{
|
{
|
||||||
//
|
$c = ItemCategory::find($id);
|
||||||
|
|
||||||
|
$c->name = \request('name');
|
||||||
|
$c->desc = \request('desc');
|
||||||
|
if (\request('is_training') == 1)
|
||||||
|
{
|
||||||
|
$c->is_training = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$c->is_training = 0;
|
||||||
|
}
|
||||||
|
if (\request('is_op_appro') == 1)
|
||||||
|
{
|
||||||
|
$c->is_op_appro = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$c->is_op_appro = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$c->save();
|
||||||
|
|
||||||
|
return redirect('/admin/inventory/management/category/')->with('success','Catégorie modifié avec succès');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,8 +125,10 @@ class ItemCategoryController extends Controller
|
|||||||
* @param \App\ItemCategory $itemCategory
|
* @param \App\ItemCategory $itemCategory
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function destroy(ItemCategory $itemCategory)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
//
|
$c = ItemCategory::find($id);
|
||||||
|
|
||||||
|
$c->delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
app/Item.php
18
app/Item.php
@@ -31,4 +31,22 @@ class Item extends Model
|
|||||||
{
|
{
|
||||||
return \App\ItemCategory::find($this->category_id);
|
return \App\ItemCategory::find($this->category_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function available()
|
||||||
|
{
|
||||||
|
|
||||||
|
return $this->quantity - $this->booked();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function booked()
|
||||||
|
{
|
||||||
|
$nbBooked = 0;
|
||||||
|
|
||||||
|
foreach ($this->bookings() as $b)
|
||||||
|
{
|
||||||
|
$nbBooked = $nbBooked + $b->amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $nbBooked;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,6 +100,8 @@
|
|||||||
<small id="emailHelp" class="form-text text-muted">Email du CC. Laisser vide si aucun</small>
|
<small id="emailHelp" class="form-text text-muted">Email du CC. Laisser vide si aucun</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ml-2 row">
|
||||||
<div class="col-md-6 p-2">
|
<div class="col-md-6 p-2">
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<label class="form-check-label">
|
<label class="form-check-label">
|
||||||
|
|||||||
69
resources/views/admin/configs/perso.blade.php
Normal file
69
resources/views/admin/configs/perso.blade.php
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4>Configuration Générale</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body mt-5">
|
||||||
|
<form action="/admin/config/customisation" method="POST">
|
||||||
|
@csrf
|
||||||
|
<div class="row ml-2">
|
||||||
|
<div class="col-md-6 p-2">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="exampleInputEmail1">Photo page publique</label>
|
||||||
|
<input type="text" class="form-control" id="escadron_name_full" name="public_index_img_url" aria-describedby="emailHelp" value="{{\App\Config::getData('public_index_img_url')}}">
|
||||||
|
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 p-2">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('breadcrumb')
|
||||||
|
<div class="breadcrumbs">
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<div class="page-header float-left">
|
||||||
|
<div class="page-title">
|
||||||
|
<h1>Configuration Générale</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<div class="page-header float-right">
|
||||||
|
<div class="page-title">
|
||||||
|
<ol class="breadcrumb text-right">
|
||||||
|
<li class="active">Configuration/Générale</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
function saveChange(pPerm) {
|
||||||
|
(function($) {
|
||||||
|
var myswitch = document.getElementById(pPerm);
|
||||||
|
$.post('/api/config/general/save?api_token='+api_token, { value: myswitch.checked,perm: pPerm } , function(data) {
|
||||||
|
swal({
|
||||||
|
title: 'Modification enregistré !',
|
||||||
|
type: 'success',
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.value) {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
})(jQuery);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -8,7 +8,10 @@
|
|||||||
</a></strong>
|
</a></strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<a name="add" id="add" class="btn btn-primary btn-block" href="/admin/item/add" role="button">Ajouter un item a l'inventaire</a>
|
<div class="btn-group btn-block">
|
||||||
|
<a name="add" id="add" class="btn btn-primary btn-block" href="/admin/item/add" role="button">Ajouter un item</a>
|
||||||
|
<a name="add" id="add" class="btn btn-outline-primary btn-block" href="/admin/item/add" role="button">Réserver un item</a>
|
||||||
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<table id="log-data" class="table table-striped table-bordered">
|
<table id="log-data" class="table table-striped table-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -16,6 +19,8 @@
|
|||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th>Nom</th>
|
<th>Nom</th>
|
||||||
<th>Categorie</th>
|
<th>Categorie</th>
|
||||||
|
<th>Quantité Total</th>
|
||||||
|
<th>Quantité Disponible</th>
|
||||||
<th>Description</th>
|
<th>Description</th>
|
||||||
<th>Action</th>
|
<th>Action</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -26,6 +31,8 @@
|
|||||||
<td>{{$item->official_number}}</td>
|
<td>{{$item->official_number}}</td>
|
||||||
<td>{{$item->name}}</td>
|
<td>{{$item->name}}</td>
|
||||||
<td>{{$item->category()->name}}</td>
|
<td>{{$item->category()->name}}</td>
|
||||||
|
<td>{{$item->quantity}}</td>
|
||||||
|
<td>{{$item->available()}}</td>
|
||||||
<td>{!! $item->desc !!}</td>
|
<td>{!! $item->desc !!}</td>
|
||||||
<td style="width: 12%;">
|
<td style="width: 12%;">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
|
|||||||
42
resources/views/admin/inventory/management.blade.php
Normal file
42
resources/views/admin/inventory/management.blade.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<strong class="card-title">Gestion de l'inventaire <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i>
|
||||||
|
</a></strong>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header card-header-primary">
|
||||||
|
<h4 class="card-title">Catégorie</h4>
|
||||||
|
<p class="category">Gestion des catégories de l'inventaire</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<p>
|
||||||
|
Les catégories permettent de diviser l'inventaire et de définir les permissions d'accès aux items
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-primary" href="/admin/inventory/management/category">Gérer les catégories</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
|
||||||
|
@endsection
|
||||||
@@ -9,52 +9,52 @@
|
|||||||
<div class="card-body mt-5">
|
<div class="card-body mt-5">
|
||||||
<form action="/admin/item/add" method="post">
|
<form action="/admin/item/add" method="post">
|
||||||
|
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Numéro d'article</label>
|
<label>Numéro d'article</label>
|
||||||
<input name="official_number" type="text" class="form-control" required>
|
<input name="official_number" type="text" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Nom de l'article</label>
|
||||||
|
<input name="name" type="text" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Taille de l'article</label>
|
||||||
|
<input name="metadata-size" type="text" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Quantité disponible</label>
|
||||||
|
<input name="quantity" type="number" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Catégorie</label>
|
||||||
|
<select name="category_id" class="form-control selectpicker" required>
|
||||||
|
@foreach($categories as $category)
|
||||||
|
<option value="{{$category->id}}">{{$category->name}}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 mt-4">
|
||||||
|
<label for="desc">Description de l'image</label>
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="desc" id="desc" class="form-control" required></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Nom de l'article</label>
|
|
||||||
<input name="name" type="text" class="form-control" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Taille de l'article</label>
|
|
||||||
<input name="metadata-size" type="text" class="form-control" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Quantité disponible</label>
|
|
||||||
<input name="quantity" type="number" class="form-control" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Catégorie</label>
|
|
||||||
<select name="category_id" class="form-control selectpicker" required>
|
|
||||||
@foreach($categories as $category)
|
|
||||||
<option value="{{$category->id}}">{{$category->name}}</option>
|
|
||||||
@endforeach
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-12 mt-4">
|
|
||||||
<label for="desc">Description de l'image</label>
|
|
||||||
<div class="form-group">
|
|
||||||
<textarea name="desc" id="desc" class="form-control" required></textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
64
resources/views/admin/itemcategory/add.blade.php
Normal file
64
resources/views/admin/itemcategory/add.blade.php
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<strong class="card-title">Ajouter une catégorie <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i>
|
||||||
|
</a></strong>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form action="/admin/inventory/management/category/add" method="post">
|
||||||
|
@csrf
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Nom de la catégorie</label>
|
||||||
|
<input name="name" type="text" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 pt-3">
|
||||||
|
<div class="form-check">
|
||||||
|
<label class="form-check-label">
|
||||||
|
<input class="form-check-input" type="checkbox" name="is_training" value="1">
|
||||||
|
Les items de cette catégorie sont ils disponible pour l'instruction ?
|
||||||
|
<span class="form-check-sign">
|
||||||
|
<span class="check"></span>
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 pt-3">
|
||||||
|
<div class="form-check">
|
||||||
|
<label class="form-check-label">
|
||||||
|
<input class="form-check-input" name="is_op_appro" type="checkbox" value="1">
|
||||||
|
Les items de cette catégorie sont ils réservés à l'officier d'approvisionnement?
|
||||||
|
<span class="form-check-sign">
|
||||||
|
<span class="check"></span>
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 mt-4">
|
||||||
|
<label for="desc">Description de l'image</label>
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="desc" id="desc" class="form-control" required></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
$('#desc').trumbowyg({
|
||||||
|
lang: 'fr'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
64
resources/views/admin/itemcategory/edit.blade.php
Normal file
64
resources/views/admin/itemcategory/edit.blade.php
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<strong class="card-title">Modifier une catégorie <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i>
|
||||||
|
</a></strong>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form action="/admin/inventory/management/category/edit/{{$category->id}}" method="post">
|
||||||
|
@csrf
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Nom de la catégorie</label>
|
||||||
|
<input name="name" type="text" class="form-control" required value="{{$category->name}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 pt-3">
|
||||||
|
<div class="form-check">
|
||||||
|
<label class="form-check-label">
|
||||||
|
<input class="form-check-input" type="checkbox" name="is_training" value="1" @if($category->is_training == 1) checked @endif>
|
||||||
|
Les items de cette catégorie sont ils disponible pour l'instruction ?
|
||||||
|
<span class="form-check-sign">
|
||||||
|
<span class="check"></span>
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 pt-3">
|
||||||
|
<div class="form-check">
|
||||||
|
<label class="form-check-label">
|
||||||
|
<input class="form-check-input" name="is_op_appro" type="checkbox" value="1" @if($category->is_op_appro == 1) checked @endif>
|
||||||
|
Les items de cette catégorie sont ils réservés à l'officier d'approvisionnement?
|
||||||
|
<span class="form-check-sign">
|
||||||
|
<span class="check"></span>
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 mt-4">
|
||||||
|
<label for="desc">Description de l'image</label>
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="desc" id="desc" class="form-control" required>{!! $category->desc !!}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
$('#desc').trumbowyg({
|
||||||
|
lang: 'fr'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
113
resources/views/admin/itemcategory/index.blade.php
Normal file
113
resources/views/admin/itemcategory/index.blade.php
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<strong class="card-title">Gestion de l'inventaire <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i>
|
||||||
|
</a></strong>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-primary" href="/admin/inventory/management/category/add">Ajouter une catégorie</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<table id="log-data" class="table table-striped table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">ID</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th>Disponible pour l'instruction</th>
|
||||||
|
<th>Réservé a l'officer d'approvisionnement</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($categories as $category)
|
||||||
|
<tr>
|
||||||
|
<td class="text-center" style="width: 3.5rem;">{{$category->id}}</td>
|
||||||
|
<td>{{$category->name}}</td>
|
||||||
|
<td>{!! $category->desc !!}</td>
|
||||||
|
<td class="text-center" style="width: 10rem;">
|
||||||
|
@if($category->is_training == 1)
|
||||||
|
<i class="fas fa-check-square text-success fa-2x"></i>
|
||||||
|
@else
|
||||||
|
<i class="far fa-square text-warning fa-2x"></i>
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td class="text-center" style="width: 10rem;"#>
|
||||||
|
@if($category->is_op_appro == 1)
|
||||||
|
<i class="fas fa-check-square text-success fa-2x"></i>
|
||||||
|
@else
|
||||||
|
<i class="far fa-square text-warning fa-2x"></i>
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td style="width: 12%;">
|
||||||
|
<div class="btn-group">
|
||||||
|
<a href="/admin/inventory/management/category/edit/{{$category->id}}" type="button" class="btn btn-secondary"><i class="fa fa-cog"></i> Modifier</a>
|
||||||
|
<a type="button" class="btn btn-danger" onclick="Delete({{$category->id}});"><i class="fa fa-times-circle" style="color:white;"></i></a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
(function($) {
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#log-data').DataTable({
|
||||||
|
"order": [[ 2, "asc" ]],
|
||||||
|
"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
|
||||||
|
});
|
||||||
|
} );
|
||||||
|
})(jQuery);
|
||||||
|
|
||||||
|
function Delete(pID) {
|
||||||
|
swal({
|
||||||
|
title: 'Êtes vous certain de vouloir supprimer la catégorie?',
|
||||||
|
text: "Vous ne pourrez pas annuler cette action",
|
||||||
|
type: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Oui',
|
||||||
|
cancelButtonText: 'Non'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.value) {
|
||||||
|
|
||||||
|
(function($) {
|
||||||
|
$.post('/api/itemcategory/delete/'+pID+'?api_token='+api_token, function(data) {
|
||||||
|
console.log('Delete');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
})(jQuery);
|
||||||
|
|
||||||
|
swal(
|
||||||
|
'Supprimé!',
|
||||||
|
"La catégorie a été supprimé",
|
||||||
|
'success'
|
||||||
|
).then((result) => {
|
||||||
|
if (result.value) {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -81,13 +81,13 @@
|
|||||||
<li class="nav-item ">
|
<li class="nav-item ">
|
||||||
<a class="nav-link" href="/admin/inventory">
|
<a class="nav-link" href="/admin/inventory">
|
||||||
<span class="sidebar-mini"> <i class="fas fa-box"></i> </span>
|
<span class="sidebar-mini"> <i class="fas fa-box"></i> </span>
|
||||||
<span class="sidebar-normal"> Afficher l'inventaire </span>
|
<span class="sidebar-normal"> Voir l'inventaire </span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item ">
|
<li class="nav-item ">
|
||||||
<a class="nav-link" href="/admin/item/add">
|
<a class="nav-link" href="/admin/inventory/management">
|
||||||
<span class="sidebar-mini"> <i class="fas fa-plus"></i> </span>
|
<span class="sidebar-mini"> <i class="fas fa-cogs"></i> </span>
|
||||||
<span class="sidebar-normal"> Ajouter un item </span>
|
<span class="sidebar-normal"> Gestion de l'inventaire </span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<!--<li class="nav-item ">
|
<!--<li class="nav-item ">
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item ">
|
<li class="nav-item ">
|
||||||
<a class="nav-link" data-toggle="collapse" href="#inventory">
|
<a class="nav-link" data-toggle="collapse" href="#picture">
|
||||||
<i class="material-icons">image</i>
|
<i class="material-icons">image</i>
|
||||||
<p> Image
|
<p> Image
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
@@ -192,6 +192,12 @@
|
|||||||
<span class="sidebar-normal"> Activités </span>
|
<span class="sidebar-normal"> Activités </span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item ">
|
||||||
|
<a class="nav-link" href="/admin/config/customisation">
|
||||||
|
<span class="sidebar-mini"> <i class="fas fa-palette"></i> </span>
|
||||||
|
<span class="sidebar-normal"> Apparence </span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ Route::middleware('auth:api')->group(function () {
|
|||||||
/** Inventory Route */
|
/** Inventory Route */
|
||||||
Route::post('/item/delete', 'ItemController@destroy');
|
Route::post('/item/delete', 'ItemController@destroy');
|
||||||
|
|
||||||
|
/** Item Category */
|
||||||
|
Route::post('/itemcategory/delete/{id}','ItemCategoryController@destroy');
|
||||||
|
|
||||||
/** Config Route */
|
/** Config Route */
|
||||||
Route::post('/config/general/save', 'ConfigController@update');
|
Route::post('/config/general/save', 'ConfigController@update');
|
||||||
Route::post('/config/activity/delete', 'ComplementaryActivityController@destroy');
|
Route::post('/config/activity/delete', 'ComplementaryActivityController@destroy');
|
||||||
|
|||||||
@@ -80,6 +80,8 @@ Route::middleware(['auth','admin'])->group(function () {
|
|||||||
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update');
|
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update');
|
||||||
Route::post('/admin/config/general/edit','ConfigController@update');
|
Route::post('/admin/config/general/edit','ConfigController@update');
|
||||||
Route::get('/admin/config/' , 'ConfigController@index');
|
Route::get('/admin/config/' , 'ConfigController@index');
|
||||||
|
Route::get('/admin/config/customisation','ConfigController@customisation');
|
||||||
|
Route::post('/admin/config/customisation','ConfigController@customisationUpdate');
|
||||||
|
|
||||||
/** Public page */
|
/** Public page */
|
||||||
Route::get('/admin/public/edit/{config}', 'PublicController@edit');
|
Route::get('/admin/public/edit/{config}', 'PublicController@edit');
|
||||||
@@ -94,21 +96,29 @@ Route::middleware(['auth','admin'])->group(function () {
|
|||||||
|
|
||||||
/** Inventory */
|
/** Inventory */
|
||||||
Route::get('/admin/inventory' , 'InventoryController@index');
|
Route::get('/admin/inventory' , 'InventoryController@index');
|
||||||
Route::get('/admin/inventory/booking' , 'InventoryController@booking');
|
Route::get('/admin/inventory/management','InventoryController@management');
|
||||||
Route::get('/admin/inventory/{id}/{periode}/{niveau}' , 'InventoryController@show');
|
|
||||||
Route::post('/admin/inventory/add/{id}/{periode}/{niveau}' , 'InventoryController@store');
|
/** Item Category */
|
||||||
Route::post('/admin/inventory/remove/{id}/{periode}/{niveau}' , 'InventoryController@destroy');
|
Route::get('/admin/inventory/management/category','ItemCategoryController@index');
|
||||||
|
Route::get('/admin/inventory/management/category/add','ItemCategoryController@create');
|
||||||
|
Route::post('/admin/inventory/management/category/add','ItemCategoryController@store');
|
||||||
|
Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit');
|
||||||
|
Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Booking */
|
/** Booking */
|
||||||
Route::get('/admin/booking/{type}/{id}',function() {
|
Route::get('/admin/booking/{type}/{id}',function() {
|
||||||
return 'A faire';
|
return 'A faire';
|
||||||
});
|
});
|
||||||
|
Route::get('/admin/inventory/booking' , 'InventoryController@booking');
|
||||||
|
|
||||||
/** Item */
|
/** Item */
|
||||||
Route::get('/admin/item/add' , 'ItemController@create');
|
Route::get('/admin/item/add' , 'ItemController@create');
|
||||||
Route::get('/admin/item/edit/{id}' , 'ItemController@edit');
|
Route::get('/admin/item/edit/{id}' , 'ItemController@edit');
|
||||||
Route::post('/admin/item/add' , 'ItemController@store');
|
Route::post('/admin/item/add' , 'ItemController@store');
|
||||||
Route::post('/admin/item/edit/{id}' , 'ItemController@update');
|
Route::post('/admin/item/edit/{id}' , 'ItemController@update');
|
||||||
|
|
||||||
/** Local */
|
/** Local */
|
||||||
Route::get('/admin/config/local' , 'LocalController@index');
|
Route::get('/admin/config/local' , 'LocalController@index');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user