mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-05-15 04:38:23 -04:00
Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f7845d8f1b | |||
| 63301aec97 | |||
| 9cdd47a6f4 | |||
| 6eb517a0cb | |||
| 95a088ddc6 | |||
| f1df0ee562 | |||
| ef66ed3d69 | |||
| f45bc5522e | |||
| 60c5a995f2 | |||
| 2a8178c6f3 | |||
| ae00c9e7e0 | |||
| d730f358fe | |||
| ba1d56c7d3 | |||
| 6d50d2c57a | |||
| 465bac0e94 | |||
| ec7a6c57f5 | |||
| efd70e3fea | |||
| d8e36b8479 | |||
| 2b3b64362a | |||
| 8158f8a8aa | |||
| 039b09b681 | |||
| c703ade5cb | |||
| 143ccc3750 | |||
| 31e26b6747 | |||
| 5c61b124f8 | |||
| 7f032f5fa7 | |||
| 5585b8a8a7 | |||
| 21111ae622 | |||
| 44a4035f42 | |||
| 14cdc8b880 | |||
| 0f28be3218 | |||
| dccc76d7e7 | |||
| 037b3b4c47 | |||
| f4dd3ed742 | |||
| 9a65920265 | |||
| 245c357b7a | |||
| 3a05ddfb0d | |||
| 8fb24e1605 | |||
| 1462c4d16d | |||
| daba93bcfc | |||
| f9bf70d7d3 | |||
| 7c95145459 | |||
| 82b5ef34bf |
@@ -44,6 +44,7 @@ deploy_697:
|
|||||||
environment:
|
environment:
|
||||||
name: escadron697
|
name: escadron697
|
||||||
url: http://escadron697.ca
|
url: http://escadron697.ca
|
||||||
|
when: manual
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
@@ -60,6 +61,7 @@ deploy_736:
|
|||||||
environment:
|
environment:
|
||||||
name: escadron736
|
name: escadron736
|
||||||
url: http://736.exvps.ca
|
url: http://736.exvps.ca
|
||||||
|
when: manual
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
@@ -76,6 +78,7 @@ deploy_227:
|
|||||||
environment:
|
environment:
|
||||||
name: CCMRC227
|
name: CCMRC227
|
||||||
url: http://227.exvps.ca
|
url: http://227.exvps.ca
|
||||||
|
when: manual
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
@@ -92,6 +95,7 @@ deploy_117:
|
|||||||
environment:
|
environment:
|
||||||
name: CCMRC117
|
name: CCMRC117
|
||||||
url: http://117.exvps.ca
|
url: http://117.exvps.ca
|
||||||
|
when: manual
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
@@ -108,5 +112,6 @@ deploy_dev:
|
|||||||
environment:
|
environment:
|
||||||
name: dev
|
name: dev
|
||||||
url: http://dev.exvps.ca
|
url: http://dev.exvps.ca
|
||||||
|
when: manual
|
||||||
only:
|
only:
|
||||||
- dev
|
- dev
|
||||||
+117
-102
@@ -1,169 +1,178 @@
|
|||||||
@servers(['web' => 'deployer@vps188754.vps.ovh.ca'])
|
@servers(['web' => 'deployer@vps188754.vps.ovh.ca'])
|
||||||
|
|
||||||
@setup
|
@setup
|
||||||
$repository = 'git@gitlab.com:TheGamecraft/c-cms.git';
|
$repository = 'git@gitlab.com:TheGamecraft/c-cms.git';
|
||||||
$release = date('YmdHis');
|
$release = date('YmdHis');
|
||||||
|
|
||||||
$releases_dir_697 = '/var/www/c-cms/escadron697/releases';
|
$releases_dir_697 = '/var/www/c-cms/escadron697/releases';
|
||||||
$app_dir_697 = '/var/www/c-cms/escadron697';
|
$app_dir_697 = '/var/www/c-cms/escadron697';
|
||||||
$new_release_dir_697 = $releases_dir_697 .'/'. $release;
|
$new_release_dir_697 = $releases_dir_697 .'/'. $release;
|
||||||
|
|
||||||
$releases_dir_736 = '/var/www/c-cms/escadron736/releases';
|
$releases_dir_736 = '/var/www/c-cms/escadron736/releases';
|
||||||
$app_dir_736 = '/var/www/c-cms/escadron736';
|
$app_dir_736 = '/var/www/c-cms/escadron736';
|
||||||
$new_release_dir_736 = $releases_dir_736 .'/'. $release;
|
$new_release_dir_736 = $releases_dir_736 .'/'. $release;
|
||||||
|
|
||||||
$releases_dir_dev = '/var/www/c-cms/dev/releases';
|
$releases_dir_dev = '/var/www/c-cms/dev/releases';
|
||||||
$app_dir_dev = '/var/www/c-cms/dev';
|
$app_dir_dev = '/var/www/c-cms/dev';
|
||||||
$new_release_dir_dev = $releases_dir_dev .'/'. $release;
|
$new_release_dir_dev = $releases_dir_dev .'/'. $release;
|
||||||
|
|
||||||
$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';
|
$releases_dir_117 = '/var/www/c-cms/ccmrc117/releases';
|
||||||
$app_dir_117 = '/var/www/c-cms/ccmrc117';
|
$app_dir_117 = '/var/www/c-cms/ccmrc117';
|
||||||
$new_release_dir_117 = $releases_dir_117 .'/'. $release;
|
$new_release_dir_117 = $releases_dir_117 .'/'. $release;
|
||||||
@endsetup
|
@endsetup
|
||||||
|
|
||||||
@story('deploy_697')
|
@story('deploy_697')
|
||||||
clone_repository_697
|
clone_repository_697
|
||||||
run_composer_697
|
run_composer_697
|
||||||
update_symlinks_697
|
update_symlinks_697
|
||||||
@endstory
|
@endstory
|
||||||
|
|
||||||
@story('deploy_736')
|
@story('deploy_736')
|
||||||
clone_repository_736
|
clone_repository_736
|
||||||
run_composer_736
|
run_composer_736
|
||||||
update_symlinks_736
|
update_symlinks_736
|
||||||
@endstory
|
@endstory
|
||||||
|
|
||||||
@story('deploy_dev')
|
@story('deploy_dev')
|
||||||
clone_repository_dev
|
clone_repository_dev
|
||||||
run_composer_dev
|
run_composer_dev
|
||||||
update_symlinks_dev
|
update_symlinks_dev
|
||||||
remove_old_release_dev
|
remove_old_release_dev
|
||||||
@endstory
|
@endstory
|
||||||
|
|
||||||
@story('deploy_227')
|
@story('deploy_227')
|
||||||
clone_repository_227
|
clone_repository_227
|
||||||
run_composer_227
|
run_composer_227
|
||||||
update_symlinks_227
|
update_symlinks_227
|
||||||
@endstory
|
@endstory
|
||||||
|
|
||||||
@story('deploy_117')
|
@story('deploy_117')
|
||||||
clone_repository_117
|
clone_repository_117
|
||||||
run_composer_117
|
run_composer_117
|
||||||
update_symlinks_117
|
update_symlinks_117
|
||||||
@endstory
|
@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 }}
|
||||||
git clone --depth 1 {{ $repository }} {{ $new_release_dir_697 }}
|
git clone --depth 1 {{ $repository }} {{ $new_release_dir_697 }}
|
||||||
cd {{ $new_release_dir_697 }}
|
cd {{ $new_release_dir_697 }}
|
||||||
git reset --hard {{ $commit }}
|
git reset --hard {{ $commit }}
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('run_composer_697')
|
@task('run_composer_697')
|
||||||
echo "Starting deployment ({{ $release }})"
|
echo "Starting deployment ({{ $release }})"
|
||||||
cd {{ $new_release_dir_697 }}
|
cd {{ $new_release_dir_697 }}
|
||||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||||
|
npm install
|
||||||
|
npm run production
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('update_symlinks_697')
|
@task('update_symlinks_697')
|
||||||
echo "Linking storage directory"
|
echo "Linking storage directory"
|
||||||
rm -rf {{ $new_release_dir_697 }}/storage
|
rm -rf {{ $new_release_dir_697 }}/storage
|
||||||
ln -nfs {{ $app_dir_697 }}/storage {{ $new_release_dir_697 }}/storage
|
ln -nfs {{ $app_dir_697 }}/storage {{ $new_release_dir_697 }}/storage
|
||||||
|
|
||||||
echo 'Linking .env file'
|
echo 'Linking .env file'
|
||||||
ln -nfs {{ $app_dir_697 }}/.env {{ $new_release_dir_697 }}/.env
|
ln -nfs {{ $app_dir_697 }}/.env {{ $new_release_dir_697 }}/.env
|
||||||
|
|
||||||
echo 'Linking current release'
|
echo 'Linking current release'
|
||||||
ln -nfs {{ $new_release_dir_697 }} {{ $app_dir_697 }}/current
|
ln -nfs {{ $new_release_dir_697 }} {{ $app_dir_697 }}/current
|
||||||
|
|
||||||
echo 'Setting permission'
|
echo 'Setting permission'
|
||||||
chmod -R 777 {{ $app_dir_697 }}/current/bootstrap/
|
chmod -R 777 {{ $app_dir_697 }}/current/bootstrap/
|
||||||
|
|
||||||
echo 'Migrate DB'
|
echo 'Migrate DB'
|
||||||
cd {{ $app_dir_697 }}/current/
|
cd {{ $app_dir_697 }}/current/
|
||||||
php artisan migrate
|
yes|php artisan migrate
|
||||||
php artisan db:seed --class=ConfigsTableSeeder
|
yes|php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
php artisan update
|
||||||
|
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('clone_repository_736')
|
@task('clone_repository_736')
|
||||||
echo 'Cloning repository'
|
echo 'Cloning repository'
|
||||||
[ -d {{ $releases_dir_736 }} ] || mkdir {{ $releases_dir_736 }}
|
[ -d {{ $releases_dir_736 }} ] || mkdir {{ $releases_dir_736 }}
|
||||||
git clone --depth 1 {{ $repository }} {{ $new_release_dir_736 }}
|
git clone --depth 1 {{ $repository }} {{ $new_release_dir_736 }}
|
||||||
cd {{ $new_release_dir_736 }}
|
cd {{ $new_release_dir_736 }}
|
||||||
git reset --hard {{ $commit }}
|
git reset --hard {{ $commit }}
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('run_composer_736')
|
@task('run_composer_736')
|
||||||
echo "Starting deployment ({{ $release }})"
|
echo "Starting deployment ({{ $release }})"
|
||||||
cd {{ $new_release_dir_736 }}
|
cd {{ $new_release_dir_736 }}
|
||||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||||
|
npm install
|
||||||
|
npm run production
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('update_symlinks_736')
|
@task('update_symlinks_736')
|
||||||
echo "Linking storage directory"
|
echo "Linking storage directory"
|
||||||
rm -rf {{ $new_release_dir_736 }}/storage
|
rm -rf {{ $new_release_dir_736 }}/storage
|
||||||
ln -nfs {{ $app_dir_736 }}/storage {{ $new_release_dir_736 }}/storage
|
ln -nfs {{ $app_dir_736 }}/storage {{ $new_release_dir_736 }}/storage
|
||||||
|
|
||||||
echo 'Linking .env file'
|
echo 'Linking .env file'
|
||||||
ln -nfs {{ $app_dir_736 }}/.env {{ $new_release_dir_736 }}/.env
|
ln -nfs {{ $app_dir_736 }}/.env {{ $new_release_dir_736 }}/.env
|
||||||
|
|
||||||
echo 'Linking current release'
|
echo 'Linking current release'
|
||||||
ln -nfs {{ $new_release_dir_736 }} {{ $app_dir_736 }}/current
|
ln -nfs {{ $new_release_dir_736 }} {{ $app_dir_736 }}/current
|
||||||
|
|
||||||
echo 'Setting permission'
|
echo 'Setting permission'
|
||||||
chmod -R 777 {{ $app_dir_736 }}/current/bootstrap/
|
chmod -R 777 {{ $app_dir_736 }}/current/bootstrap/
|
||||||
|
|
||||||
echo 'Migrate DB'
|
echo 'Migrate DB'
|
||||||
cd {{ $app_dir_736 }}/current/
|
cd {{ $app_dir_736 }}/current/
|
||||||
php artisan migrate
|
yes|php artisan migrate
|
||||||
php artisan db:seed --class=ConfigsTableSeeder
|
yes|php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
php artisan update
|
||||||
|
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('clone_repository_dev')
|
@task('clone_repository_dev')
|
||||||
echo 'Cloning repository'
|
echo 'Cloning repository'
|
||||||
[ -d {{ $releases_dir_dev }} ] || mkdir {{ $releases_dir_dev }}
|
[ -d {{ $releases_dir_dev }} ] || mkdir {{ $releases_dir_dev }}
|
||||||
git clone --depth 1 --single-branch -b dev {{ $repository }} {{ $new_release_dir_dev }}
|
git clone --depth 1 --single-branch -b dev {{ $repository }} {{ $new_release_dir_dev }}
|
||||||
cd {{ $new_release_dir_dev }}
|
cd {{ $new_release_dir_dev }}
|
||||||
git reset --hard {{ $commit }}
|
git reset --hard {{ $commit }}
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('run_composer_dev')
|
@task('run_composer_dev')
|
||||||
echo "Starting deployment ({{ $release }})"
|
echo "Starting deployment ({{ $release }})"
|
||||||
cd {{ $new_release_dir_dev }}
|
cd {{ $new_release_dir_dev }}
|
||||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||||
|
npm install
|
||||||
|
npm run production
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('update_symlinks_dev')
|
@task('update_symlinks_dev')
|
||||||
echo "Linking storage directory"
|
echo "Linking storage directory"
|
||||||
rm -rf {{ $new_release_dir_dev }}/storage
|
rm -rf {{ $new_release_dir_dev }}/storage
|
||||||
ln -nfs {{ $app_dir_dev }}/storage {{ $new_release_dir_dev }}/storage
|
ln -nfs {{ $app_dir_dev }}/storage {{ $new_release_dir_dev }}/storage
|
||||||
|
|
||||||
echo 'Linking .env file'
|
echo 'Linking .env file'
|
||||||
ln -nfs {{ $app_dir_dev }}/.env {{ $new_release_dir_dev }}/.env
|
ln -nfs {{ $app_dir_dev }}/.env {{ $new_release_dir_dev }}/.env
|
||||||
|
|
||||||
echo 'Linking current release'
|
echo 'Linking current release'
|
||||||
ln -nfs {{ $new_release_dir_dev }} {{ $app_dir_dev }}/current
|
ln -nfs {{ $new_release_dir_dev }} {{ $app_dir_dev }}/current
|
||||||
|
|
||||||
echo 'Setting permission'
|
echo 'Setting permission'
|
||||||
chmod -R 777 {{ $app_dir_dev }}/current/bootstrap/
|
chmod -R 777 {{ $app_dir_dev }}/current/bootstrap/
|
||||||
|
|
||||||
echo 'Migrate DB'
|
echo 'Migrate DB'
|
||||||
cd {{ $app_dir_dev }}/current/
|
cd {{ $app_dir_dev }}/current/
|
||||||
php artisan migrate
|
yes|php artisan migrate
|
||||||
php artisan db:seed --class=ConfigsTableSeeder
|
yes|php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
php artisan update
|
||||||
|
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('remove_old_release_dev')
|
@task('remove_old_release_dev')
|
||||||
cd {{ $releases_dir_dev }}
|
cd {{ $releases_dir_dev }}
|
||||||
rm -fr $(ls -t1 | tail -n +3)
|
rm -fr $(ls -t1 | tail -n +3)
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('clone_repository_227')
|
@task('clone_repository_227')
|
||||||
@@ -178,6 +187,8 @@ git reset --hard {{ $commit }}
|
|||||||
echo "Starting deployment ({{ $release }})"
|
echo "Starting deployment ({{ $release }})"
|
||||||
cd {{ $new_release_dir_227 }}
|
cd {{ $new_release_dir_227 }}
|
||||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||||
|
npm install
|
||||||
|
npm run production
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('update_symlinks_227')
|
@task('update_symlinks_227')
|
||||||
@@ -196,8 +207,9 @@ chmod -R 777 {{ $app_dir_227 }}/current/bootstrap/
|
|||||||
|
|
||||||
echo 'Migrate DB'
|
echo 'Migrate DB'
|
||||||
cd {{ $app_dir_227 }}/current/
|
cd {{ $app_dir_227 }}/current/
|
||||||
php artisan migrate
|
yes|php artisan migrate
|
||||||
php artisan db:seed --class=ConfigsTableSeeder
|
yes|php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
php artisan update
|
||||||
|
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@@ -213,6 +225,8 @@ git reset --hard {{ $commit }}
|
|||||||
echo "Starting deployment ({{ $release }})"
|
echo "Starting deployment ({{ $release }})"
|
||||||
cd {{ $new_release_dir_117 }}
|
cd {{ $new_release_dir_117 }}
|
||||||
composer install --prefer-dist --no-scripts -q -o --no-dev
|
composer install --prefer-dist --no-scripts -q -o --no-dev
|
||||||
|
npm install
|
||||||
|
npm run production
|
||||||
@endtask
|
@endtask
|
||||||
|
|
||||||
@task('update_symlinks_117')
|
@task('update_symlinks_117')
|
||||||
@@ -231,7 +245,8 @@ chmod -R 777 {{ $app_dir_117 }}/current/bootstrap/
|
|||||||
|
|
||||||
echo 'Migrate DB'
|
echo 'Migrate DB'
|
||||||
cd {{ $app_dir_117 }}/current/
|
cd {{ $app_dir_117 }}/current/
|
||||||
php artisan migrate
|
yes|php artisan migrate
|
||||||
php artisan db:seed --class=ConfigsTableSeeder
|
yes|php artisan db:seed --class=ConfigsTableSeeder
|
||||||
|
php artisan update
|
||||||
|
|
||||||
@endtask
|
@endtask
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class update extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'update';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Update C-CMS';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new command instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$this->info('Starting update ...');
|
||||||
|
|
||||||
|
$this->updateDatabase();
|
||||||
|
|
||||||
|
$this->info('Update completed !');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function updateDatabase()
|
||||||
|
{
|
||||||
|
$this->info('Updating database ...');
|
||||||
|
|
||||||
|
// Check event table
|
||||||
|
if (!Schema::hasColumn('events','hidden'))
|
||||||
|
{
|
||||||
|
$this->info('Updating events table ...');
|
||||||
|
Schema::table('events', function ($table) {
|
||||||
|
$table->boolean('hidden')->default(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->info('Events table is up to date ...');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check event_type table
|
||||||
|
if (!Schema::hasColumn('event_types','hidden'))
|
||||||
|
{
|
||||||
|
$this->info('Updating event_types table ...');
|
||||||
|
Schema::table('event_types', function ($table) {
|
||||||
|
$table->boolean('hidden')->default(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->info('Event_types table is up to date ...');
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -61,10 +61,14 @@ class Course extends Model
|
|||||||
{
|
{
|
||||||
if (\App\User::find($this->user_id)) {
|
if (\App\User::find($this->user_id)) {
|
||||||
return \App\User::find($this->user_id)->fullname();
|
return \App\User::find($this->user_id)->fullname();
|
||||||
|
} else {
|
||||||
|
if (is_numeric($this->user_id)) {
|
||||||
|
return 'Utilisateur inconnu';
|
||||||
} else {
|
} else {
|
||||||
return $this->user_id;
|
return $this->user_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function ocom()
|
public function ocom()
|
||||||
{
|
{
|
||||||
|
|||||||
+25
-2
@@ -94,8 +94,18 @@ class Event extends Model
|
|||||||
return $c;
|
return $c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$error = new \App\Course();
|
||||||
return false;
|
$error->name = "Cours manquant dans la BD";
|
||||||
|
$error->ocom = "ERREUR";
|
||||||
|
$error->periode = $p;
|
||||||
|
$error->level = $l;
|
||||||
|
$error->location = "";
|
||||||
|
$error->desc = "";
|
||||||
|
$error->comment = "Le cours est manquant dans la base de données";
|
||||||
|
$error->comment_officier = "Le cours est manquant dans la base de données";
|
||||||
|
$error->event_id = $this->id;
|
||||||
|
$error->user_id = 1;
|
||||||
|
return $error;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function logs()
|
public function logs()
|
||||||
@@ -143,4 +153,17 @@ class Event extends Model
|
|||||||
{
|
{
|
||||||
return count($this->schedule["niveaux"]);
|
return count($this->schedule["niveaux"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function getMaxLevels($events)
|
||||||
|
{
|
||||||
|
$maxlevel = 0;
|
||||||
|
foreach ($events as $e)
|
||||||
|
{
|
||||||
|
if ($e->nbNiveau() > $maxlevel)
|
||||||
|
{
|
||||||
|
$maxlevel = $e->nbNiveau();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $maxlevel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Foundation\Application;
|
||||||
|
use Illuminate\Contracts\View\Factory;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use \App\Log;
|
use \App\Log;
|
||||||
|
use Illuminate\View\View;
|
||||||
|
|
||||||
class AdminController extends Controller
|
class AdminController extends Controller
|
||||||
{
|
{
|
||||||
@@ -20,7 +23,7 @@ class AdminController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Show the application dashboard.
|
* Show the application dashboard.
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return Application|Factory|View
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
@@ -29,6 +32,39 @@ class AdminController extends Controller
|
|||||||
return view('admin.dashboard',['futureEvent' => \App\Event::future()->take(3),'userClasse' => \Auth::user()->futureCourses()->forPage(1,6)]);
|
return view('admin.dashboard',['futureEvent' => \App\Event::future()->take(3),'userClasse' => \Auth::user()->futureCourses()->forPage(1,6)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setup()
|
||||||
|
{
|
||||||
|
if (\Auth::user()->use_default_psw == true)
|
||||||
|
{
|
||||||
|
return view('admin.user.profil.setup');
|
||||||
|
}
|
||||||
|
return redirect('/admin');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function saveSetup()
|
||||||
|
{
|
||||||
|
$user = \Auth::user();
|
||||||
|
$user->firstname = \request('firstname');
|
||||||
|
$user->lastname = \request('lastname');
|
||||||
|
$user->password = bcrypt(request('psw'));
|
||||||
|
|
||||||
|
if (\request('address') != null)
|
||||||
|
{
|
||||||
|
$user->adress = \request('address');
|
||||||
|
}
|
||||||
|
if (\request('telephone') != null)
|
||||||
|
{
|
||||||
|
$user->telephone = \request('telephone');
|
||||||
|
}
|
||||||
|
if (\request('sexe') != null)
|
||||||
|
{
|
||||||
|
$user->sexe = \request('sexe');
|
||||||
|
}
|
||||||
|
$user->use_default_psw = false;
|
||||||
|
$user->save();
|
||||||
|
return redirect('/admin');
|
||||||
|
}
|
||||||
|
|
||||||
public function update()
|
public function update()
|
||||||
{
|
{
|
||||||
clog('navigate','success','consulte les notes de mise à jours');
|
clog('navigate','success','consulte les notes de mise à jours');
|
||||||
|
|||||||
@@ -32,715 +32,14 @@ class CalendarController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->listClass();
|
|
||||||
|
|
||||||
return view('admin.calendar.calendar_display');
|
return view('admin.calendar.calendar_display');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generate()
|
public function indexTable()
|
||||||
{
|
{
|
||||||
$lang = str_replace('_', '-', app()->getLocale());
|
$event = \App\Event::allThisYear()->sortBy('date_begin')->filter(function ($value,$key) {
|
||||||
setlocale(LC_ALL, $lang.'_'.strtoupper($lang).'.utf8','fra');
|
return $value->hidden != 1;
|
||||||
|
});
|
||||||
$month = request('month');
|
return view('admin.schedule.table.index',['events' => $event]);
|
||||||
$year = request('year');
|
|
||||||
|
|
||||||
$nextMonth = $month + 1;
|
|
||||||
$nextYear = $year;
|
|
||||||
|
|
||||||
if ($nextMonth > 12) {
|
|
||||||
$nextMonth = 1;
|
|
||||||
$nextYear = $nextYear + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$prevMonth = $month - 1;
|
|
||||||
$prevYear = $year;
|
|
||||||
|
|
||||||
if ($prevMonth < 1) {
|
|
||||||
$prevMonth = 12;
|
|
||||||
$prevYear = $prevYear - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$calendar = array();
|
|
||||||
|
|
||||||
$dayinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
|
|
||||||
|
|
||||||
$firstdaymonth = date("w", strtotime("01-".$month."-".$year));
|
|
||||||
|
|
||||||
$addingday = 0;
|
|
||||||
|
|
||||||
for ($i=$firstdaymonth ; $addingday < $dayinmonth ; $i++) {
|
|
||||||
$addingday = $addingday + 1;
|
|
||||||
$calendar[$i] = $addingday;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<div class="table calendar">';
|
|
||||||
echo '<div class="thead-dark">';
|
|
||||||
echo '<div class="row"><div class="col-2"><a class="btn" onclick="generate('.$prevMonth.','.$prevYear.')"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></div><div class="col-8">'.ucfirst(strftime("%B %Y", strtotime("01-".$month."-".$year))).'</div><div class="col-2"><a class="btn" onclick="generate('.$nextMonth.','.$nextYear.')"><i class="fa fa-chevron-right" aria-hidden="true"></i></a></div></div>';
|
|
||||||
echo '<div class="row calendar-head"><div style="width:14%;">Dimanche</div><div style="width:14%;">Lundi</div><div style="width:14%;">Mardi</div><div style="width:14%;">Mercredi</div><div style="width:14%;">Jeudi</div><div style="width:14%;">Vendredi</div><div style="width:14%;">Samedi</div></div>';
|
|
||||||
echo '</div>';
|
|
||||||
echo '<div class="card-body">';
|
|
||||||
for ($i=0; $i < 6 ; $i++)
|
|
||||||
{
|
|
||||||
echo '<div class="row">';
|
|
||||||
for ($a=0; $a < 7 ; $a++)
|
|
||||||
{
|
|
||||||
if (isset($calendar[(($i*7) + $a)]))
|
|
||||||
{
|
|
||||||
/** Date info */
|
|
||||||
$today = date("Y-m-d", strtotime($year."-".$month."-".$calendar[(($i*7) + $a)]));
|
|
||||||
$activityToday = Schedule::where('date','=',$today)->get();
|
|
||||||
|
|
||||||
/** If nothing today */
|
|
||||||
if ($activityToday->isEmpty()) {
|
|
||||||
echo '<a class="calendar-container calendar-empty" name="'.$today.'" type="button" data-toggle="modal" data-target="#scrollmodal" id="calendar_'.$calendar[(($i*7) + $a)].'" class="btn btn-block btn-calendar" onclick="openCalendar(this.name)"><div class="calendar-date">'.date("j", strtotime($today)).'</div></a>';
|
|
||||||
} else {
|
|
||||||
echo '<a class="calendar-container" name="'.$today.'" type="button" data-toggle="modal" data-target="#scrollmodal" id="calendar_'.$calendar[(($i*7) + $a)].'" class="btn btn-block btn-calendar" onclick="openCalendar(this.name)"><div class="calendar-date">'.date("j", strtotime($today)).'</div>';
|
|
||||||
$text = "";
|
|
||||||
foreach ($activityToday as $activity) {
|
|
||||||
echo '<div class="calendar-text" style="width:90%;height:3rem;">';
|
|
||||||
switch ($activity->type) {
|
|
||||||
case 'regular':
|
|
||||||
echo '<div class="row" style="color:orange;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-book fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'pilotage':
|
|
||||||
echo '<div class="row" style="color:#58D3F7;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-plane fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'drill':
|
|
||||||
echo '<div class="row" style="color:blue;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-trophy fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'music':
|
|
||||||
echo '<div class="row" style="color:green;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-music fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'biathlon':
|
|
||||||
echo '<div class="row" style="color:red;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-snowflake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'marksmanship':
|
|
||||||
echo '<div class="row" style="color:grey;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-star fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'founding':
|
|
||||||
echo '<div class="row" style="color:#00FF40;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-usd fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'volunteer':
|
|
||||||
echo '<div class="row" style="color:#DF0174;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-handshake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'other':
|
|
||||||
echo '<div class="row" style="color:#DF0174;"><span class="fa-stack fa-lg col-md-2"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-handshake-o fa-stack-1x fa-inverse"></i></span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
echo '<div class="row" style="color:'.\App\ComplementaryActivity::find($activity->type)->calendar_color.';"><span class="fa-stack fa-lg col-md-2">'.\App\ComplementaryActivity::find($activity->type)->calendar_icon.'</span><div class="col-md-10 calendar_event_name">'.ucfirst($activity->data['event_name'])."</div></div>";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
echo '</div>';
|
|
||||||
}
|
|
||||||
echo '</a>';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
echo '<div class="calendar-container¸calendar-empty" style="border:none !important; width:14%;"></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function load()
|
|
||||||
{
|
|
||||||
|
|
||||||
$lang = str_replace('_', '-', app()->getLocale());
|
|
||||||
setlocale(LC_ALL, $lang.'_'.strtoupper($lang).'.utf8','fra');
|
|
||||||
|
|
||||||
$Requestdate = request('date');
|
|
||||||
|
|
||||||
$url = str_replace("-","_", $Requestdate);
|
|
||||||
|
|
||||||
|
|
||||||
$today = Schedule::where('date','=',$Requestdate)->get();
|
|
||||||
$isEmpty = $today->isEmpty();
|
|
||||||
|
|
||||||
echo '<div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="scrollmodalLabel">'.ucfirst(strftime("%A le %e %B %Y", strtotime($Requestdate))).'</h5><button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span></button></div><div class="modal-body">';
|
|
||||||
foreach ($today as $date) {
|
|
||||||
|
|
||||||
if ($date->data['is_event_mandatory'] == "on") {
|
|
||||||
$is_mandatory = "<div class='btn btn-block btn-warning m-l-10 m-b-10 float-right'>Activité obligatoire</div>";
|
|
||||||
} else {
|
|
||||||
$is_mandatory = "<div class='btn btn-block btn-primary m-l-10 m-b-10 float-right'>Activité n'est pas obligatoire</div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
echo(
|
|
||||||
'<div class="row">'.
|
|
||||||
'<div class="col-7">'.
|
|
||||||
'<p>'.$date->data['event_name'].trans('calendar.begin_at').$date->data['event_begin_time'].trans('calendar.end_at').$date->data['event_end_time'].'</p>'.
|
|
||||||
'</div>'.
|
|
||||||
'<div class="col-3">'.
|
|
||||||
$is_mandatory.
|
|
||||||
'</div>'.
|
|
||||||
'<div class="col-1">'.
|
|
||||||
'<a href="/admin/calendar/edit/'.$date->id.'" type="button" class="btn btn-secondary"><i class="fa fa-cog"></i> Modifier</a>'.
|
|
||||||
'</div>'.
|
|
||||||
'<div class="col-1">'.
|
|
||||||
'<a type="button" class="btn btn-danger" onclick="deleteEvent('.$date->id.');"><i class="fa fa-times-circle" style="color:white;"></i></a>'.
|
|
||||||
'</div>'.
|
|
||||||
'</div>'.
|
|
||||||
'<p>'.$date->data['event_desc'].
|
|
||||||
'</p>'
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($date->type == "regular") {
|
|
||||||
|
|
||||||
if($date->data['n1_p1_plandone'] == "on")
|
|
||||||
{
|
|
||||||
$isdone_n1_p1 = '<span class="badge badge-success">Remis</span></i>';
|
|
||||||
} else {
|
|
||||||
$isdone_n1_p1 = '<span class="badge badge-danger">Non remis</span>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if($date->data['n1_p2_plandone'] == "on")
|
|
||||||
{
|
|
||||||
$isdone_n1_p2 = '<span class="badge badge-success">Remis</span></i>';
|
|
||||||
} else {
|
|
||||||
$isdone_n1_p2 = '<span class="badge badge-danger">Non remis</span>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if($date->data['n2_p1_plandone'] == "on")
|
|
||||||
{
|
|
||||||
$isdone_n2_p1 = '<span class="badge badge-success">Remis</span></i>';
|
|
||||||
} else {
|
|
||||||
$isdone_n2_p1 = '<span class="badge badge-danger">Non remis</span>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if($date->data['n2_p2_plandone'] == "on")
|
|
||||||
{
|
|
||||||
$isdone_n2_p2 = '<span class="badge badge-success">Remis</span></i>';
|
|
||||||
} else {
|
|
||||||
$isdone_n2_p2 = '<span class="badge badge-danger">Non remis</span>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if($date->data['n3_p1_plandone'] == "on")
|
|
||||||
{
|
|
||||||
$isdone_n3_p1 = '<span class="badge badge-success">Remis</span></i>';
|
|
||||||
} else {
|
|
||||||
$isdone_n3_p1 = '<span class="badge badge-danger">Non remis</span>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if($date->data['n3_p2_plandone'] == "on")
|
|
||||||
{
|
|
||||||
$isdone_n3_p2 = '<span class="badge badge-success">Remis</span></i>';
|
|
||||||
} else {
|
|
||||||
$isdone_n3_p2 = '<span class="badge badge-danger">Non remis</span>';
|
|
||||||
}
|
|
||||||
echo '<table class="table">
|
|
||||||
<thead class="thead-dark">
|
|
||||||
<tr>
|
|
||||||
<th>Niveau</th>
|
|
||||||
<th style="width:45%">1er Période</th>
|
|
||||||
<th style="width:45%">2e Période</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th>1</th>
|
|
||||||
<td>
|
|
||||||
<table class="table float center" style="border:none; max-width:80%; margin:auto;">
|
|
||||||
<tbody>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none; width:80%">'.User::find($date->data['n1_p1_instructor'])->fullname().'</td>
|
|
||||||
<td style="border:none;">'.$isdone_n1_p1.'</td>
|
|
||||||
<td style="border:none;"><a href="/admin/inventory/'.$date->id.'/1/1" type="button" class="btn btn-info"><i class="fa fa-archive" style="color:white;"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.$date->data['n1_p1_ocom'].' - '.$date->data['n1_p1_name'].'</td>
|
|
||||||
<td style="border:none;">'.Local::find($date->data['n1_p1_local'])->name.'</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<table class="table float center" style="border:none; max-width:80%; margin:auto;">
|
|
||||||
<tbody>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.User::find($date->data['n1_p2_instructor'])->fullname().'</td>
|
|
||||||
<td style="border:none;">'.$isdone_n1_p2.'</td>
|
|
||||||
<td style="border:none;"><a href="/admin/inventory/'.$date->id.'/2/1" type="button" class="btn btn-info"><i class="fa fa-archive" style="color:white;"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.$date->data['n1_p2_ocom'].' - '.$date->data['n1_p2_name'].'</td>
|
|
||||||
<td style="border:none;">'.Local::find($date->data['n1_p2_local'])->name.'</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>2</th>
|
|
||||||
<td>
|
|
||||||
<table class="table float center" style="border:none; max-width:80%; margin:auto;">
|
|
||||||
<tbody>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.User::find($date->data['n2_p1_instructor'])->fullname().'</td>
|
|
||||||
<td style="border:none;">'.$isdone_n2_p1.'</td>
|
|
||||||
<td style="border:none;"><a href="/admin/inventory/'.$date->id.'/1/2" type="button" class="btn btn-info"><i class="fa fa-archive" style="color:white;"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.$date->data['n2_p1_ocom'].' - '.$date->data['n2_p1_name'].'</td>
|
|
||||||
<td style="border:none;">'.Local::find($date->data['n2_p1_local'])->name.'</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<table class="table float center" style="border:none; max-width:80%; margin:auto;">
|
|
||||||
<tbody>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.User::find($date->data['n2_p2_instructor'])->fullname().'</td>
|
|
||||||
<td style="border:none;">'.$isdone_n2_p2.'</td>
|
|
||||||
<td style="border:none;"><a href="/admin/inventory/'.$date->id.'/2/2" type="button" class="btn btn-info"><i class="fa fa-archive" style="color:white;"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.$date->data['n2_p2_ocom'].' - '.$date->data['n2_p2_name'].'</td>
|
|
||||||
<td style="border:none;">'.Local::find($date->data['n2_p2_local'])->name.'</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>3</th>
|
|
||||||
<td>
|
|
||||||
<table class="table float center" style="border:none; max-width:80%; margin:auto;">
|
|
||||||
<tbody>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.User::find($date->data['n3_p1_instructor'])->fullname().'</td>
|
|
||||||
<td style="border:none;">'.$isdone_n3_p1.'</td>
|
|
||||||
<td style="border:none;"><a href="/admin/inventory/'.$date->id.'/1/3" type="button" class="btn btn-info"><i class="fa fa-archive" style="color:white;"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.$date->data['n3_p1_ocom'].' - '.$date->data['n3_p1_name'].'</td>
|
|
||||||
<td style="border:none;">'.Local::find($date->data['n3_p1_local'])->name.'</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<table class="table float center" style="border:none; max-width:80%; margin:auto;">
|
|
||||||
<tbody>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.User::find($date->data['n3_p2_instructor'])->fullname().'</td>
|
|
||||||
<td style="border:none;">'.$isdone_n3_p2.'</td>
|
|
||||||
<td style="border:none;"><a href="/admin/inventory/'.$date->id.'/2/3" type="button" class="btn btn-info"><i class="fa fa-archive" style="color:white;"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="border:none;">
|
|
||||||
<td style="border:none;width:80%">'.$date->data['n3_p2_ocom'].' - '.$date->data['n3_p2_name'].'</td>
|
|
||||||
<td style="border:none;">'.Local::find($date->data['n3_p2_local'])->name.'</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>';
|
|
||||||
}
|
|
||||||
echo '<br><hr><br>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<a href="/admin/calendar/add/'.$url.'" type="button" class="btn btn-primary btn-lg btn-block">'.trans('calendar.add_to_schedule').'</a></div><div class="modal-footer"><button type="button" class="btn btn-secondary" data-dismiss="modal">'.trans('pagination.close').'</button></div></div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function add($date)
|
|
||||||
{
|
|
||||||
$lang = str_replace('_', '-', app()->getLocale());
|
|
||||||
setlocale(LC_ALL, $lang.'_'.strtoupper($lang).'.utf8','fra');
|
|
||||||
|
|
||||||
$date = str_replace("_", "-", $date);
|
|
||||||
|
|
||||||
$UserList = User::all();
|
|
||||||
$LocalList = Local::all();
|
|
||||||
|
|
||||||
return view('admin.calendar.calendar_add' ,[
|
|
||||||
'RequestDate' => $date,
|
|
||||||
'Userslist' => $UserList,
|
|
||||||
'LocalsList' => $LocalList,
|
|
||||||
'ComplementaryActivity' => \App\ComplementaryActivity::all()]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
$schedule = Schedule::find($id);
|
|
||||||
$UserList = User::all();
|
|
||||||
$LocalList = Local::all();
|
|
||||||
|
|
||||||
return view('admin.calendar.calendar_edit' ,['RequestSchedule' => $schedule, 'Userslist' => $UserList, 'LocalsList' => $LocalList]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function store()
|
|
||||||
{
|
|
||||||
$schedule = new Schedule;
|
|
||||||
|
|
||||||
$schedule->date = request('event_date');
|
|
||||||
$schedule->type = request('event_type');
|
|
||||||
|
|
||||||
if(request('event_type') == "regular")
|
|
||||||
{
|
|
||||||
$eventData = [
|
|
||||||
"event_name" => request('event_name'),
|
|
||||||
"is_event_mandatory" => request('is_event_mandatory'),
|
|
||||||
"event_date" => request('event_date'),
|
|
||||||
"event_begin_time" => request('event_begin_time'),
|
|
||||||
"event_end_time" => request('event_end_time'),
|
|
||||||
"event_location" => request('event_location'),
|
|
||||||
"event_desc" => request('event_desc'),
|
|
||||||
"n1_p1_name" => request('n1_p1_name'),
|
|
||||||
"n1_p1_ocom" => request('n1_p1_ocom'),
|
|
||||||
"n1_p1_instructor" => request('n1_p1_instructor'),
|
|
||||||
"n1_p1_local" => request('n1_p1_local'),
|
|
||||||
"n1_p1_plandone" => request('n1_p1_plandone'),
|
|
||||||
"n1_p2_name" => request('n1_p2_name'),
|
|
||||||
"n1_p2_ocom" => request('n1_p2_ocom'),
|
|
||||||
"n1_p2_instructor" => request('n1_p2_instructor'),
|
|
||||||
"n1_p2_local" => request('n1_p2_local'),
|
|
||||||
"n1_p2_plandone" => request('n1_p2_plandone'),
|
|
||||||
"n2_p1_name" => request('n2_p1_name'),
|
|
||||||
"n2_p1_ocom" => request('n2_p1_ocom'),
|
|
||||||
"n2_p1_instructor" => request('n2_p1_instructor'),
|
|
||||||
"n2_p1_local" => request('n2_p1_local'),
|
|
||||||
"n2_p1_plandone" => request('n2_p1_plandone'),
|
|
||||||
"n2_p2_name" => request('n2_p2_name'),
|
|
||||||
"n2_p2_ocom" => request('n2_p2_ocom'),
|
|
||||||
"n2_p2_instructor" => request('n2_p2_instructor'),
|
|
||||||
"n2_p2_local" => request('n2_p2_local'),
|
|
||||||
"n2_p2_plandone" => request('n2_p2_plandone'),
|
|
||||||
"n3_p1_name" => request('n3_p1_name'),
|
|
||||||
"n3_p1_ocom" => request('n3_p1_ocom'),
|
|
||||||
"n3_p1_instructor" => request('n3_p1_instructor'),
|
|
||||||
"n3_p1_local" => request('n3_p1_local'),
|
|
||||||
"n3_p1_plandone" => request('n3_p1_plandone'),
|
|
||||||
"n3_p2_name" => request('n3_p2_name'),
|
|
||||||
"n3_p2_ocom" => request('n3_p2_ocom'),
|
|
||||||
"n3_p2_instructor" => request('n3_p2_instructor'),
|
|
||||||
"n3_p2_local" => request('n3_p2_local'),
|
|
||||||
"n3_p2_plandone" => request('n3_p2_plandone'),
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
$eventData = [
|
|
||||||
"event_name" => request('event_name'),
|
|
||||||
"is_event_mandatory" => request('is_event_mandatory'),
|
|
||||||
"event_date" => request('event_date'),
|
|
||||||
"event_begin_time" => request('event_begin_time'),
|
|
||||||
"event_end_time" => request('event_end_time'),
|
|
||||||
"event_location" => request('event_location'),
|
|
||||||
"event_desc" => request('event_desc'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$schedule->data = $eventData;
|
|
||||||
|
|
||||||
$schedule->save();
|
|
||||||
|
|
||||||
|
|
||||||
$userToNotify = $schedule->getUserToNotify();
|
|
||||||
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Ajout de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date,"/admin/calendar"));
|
|
||||||
|
|
||||||
if(\App\Config::where('name','is_schedule_build')->first()->state == 1)
|
|
||||||
{
|
|
||||||
\Notification::send($userToNotify, new mail(\Auth::User(),"Ajout d'une activité a l'horaire",\Auth::User()->fullname()." à ajouté l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date));
|
|
||||||
}
|
|
||||||
return redirect('/admin/calendar');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function patch($id)
|
|
||||||
{
|
|
||||||
$schedule = Schedule::find($id);
|
|
||||||
$original = clone($schedule);
|
|
||||||
|
|
||||||
$schedule->date = request('event_date');
|
|
||||||
$schedule->type = request('event_type');
|
|
||||||
|
|
||||||
if(request('event_type') == "regular")
|
|
||||||
{
|
|
||||||
$eventData = [
|
|
||||||
"event_name" => request('event_name'),
|
|
||||||
"is_event_mandatory" => request('is_event_mandatory'),
|
|
||||||
"event_date" => request('event_date'),
|
|
||||||
"event_begin_time" => request('event_begin_time'),
|
|
||||||
"event_end_time" => request('event_end_time'),
|
|
||||||
"event_location" => request('event_location'),
|
|
||||||
"event_desc" => request('event_desc'),
|
|
||||||
"n1_p1_name" => request('n1_p1_name'),
|
|
||||||
"n1_p1_ocom" => request('n1_p1_ocom'),
|
|
||||||
"n1_p1_instructor" => request('n1_p1_instructor'),
|
|
||||||
"n1_p1_local" => request('n1_p1_local'),
|
|
||||||
"n1_p1_plandone" => request('n1_p1_plandone'),
|
|
||||||
"n1_p2_name" => request('n1_p2_name'),
|
|
||||||
"n1_p2_ocom" => request('n1_p2_ocom'),
|
|
||||||
"n1_p2_instructor" => request('n1_p2_instructor'),
|
|
||||||
"n1_p2_local" => request('n1_p2_local'),
|
|
||||||
"n1_p2_plandone" => request('n1_p2_plandone'),
|
|
||||||
"n2_p1_name" => request('n2_p1_name'),
|
|
||||||
"n2_p1_ocom" => request('n2_p1_ocom'),
|
|
||||||
"n2_p1_instructor" => request('n2_p1_instructor'),
|
|
||||||
"n2_p1_local" => request('n2_p1_local'),
|
|
||||||
"n2_p1_plandone" => request('n2_p1_plandone'),
|
|
||||||
"n2_p2_name" => request('n2_p2_name'),
|
|
||||||
"n2_p2_ocom" => request('n2_p2_ocom'),
|
|
||||||
"n2_p2_instructor" => request('n2_p2_instructor'),
|
|
||||||
"n2_p2_local" => request('n2_p2_local'),
|
|
||||||
"n2_p2_plandone" => request('n2_p2_plandone'),
|
|
||||||
"n3_p1_name" => request('n3_p1_name'),
|
|
||||||
"n3_p1_ocom" => request('n3_p1_ocom'),
|
|
||||||
"n3_p1_instructor" => request('n3_p1_instructor'),
|
|
||||||
"n3_p1_local" => request('n3_p1_local'),
|
|
||||||
"n3_p1_plandone" => request('n3_p1_plandone'),
|
|
||||||
"n3_p2_name" => request('n3_p2_name'),
|
|
||||||
"n3_p2_ocom" => request('n3_p2_ocom'),
|
|
||||||
"n3_p2_instructor" => request('n3_p2_instructor'),
|
|
||||||
"n3_p2_local" => request('n3_p2_local'),
|
|
||||||
"n3_p2_plandone" => request('n3_p2_plandone'),
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
$eventData = [
|
|
||||||
"event_name" => request('event_name'),
|
|
||||||
"is_event_mandatory" => request('is_event_mandatory'),
|
|
||||||
"event_date" => request('event_date'),
|
|
||||||
"event_begin_time" => request('event_begin_time'),
|
|
||||||
"event_end_time" => request('event_end_time'),
|
|
||||||
"event_location" => request('event_location'),
|
|
||||||
"event_desc" => request('event_desc'),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$schedule->data = $eventData;
|
|
||||||
|
|
||||||
$schedule->save();
|
|
||||||
|
|
||||||
/** Notification */
|
|
||||||
$asChange = false;
|
|
||||||
$userToNotify = $schedule->getUserToNotify();
|
|
||||||
$changes = [];
|
|
||||||
$found = false;
|
|
||||||
|
|
||||||
if ($schedule->type == "regular") {
|
|
||||||
for ($p=1; $p < 3; $p++) {
|
|
||||||
for ($n=1; $n < 4; $n++) {
|
|
||||||
$pUser = \App\User::find($schedule->data['n'.$n.'_p'.$p.'_instructor']);
|
|
||||||
foreach ($userToNotify as $user) {
|
|
||||||
if ($user->id == $pUser->id) {
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$found) {
|
|
||||||
$userToNotify->push($pUser);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($schedule->data['event_begin_time'] != $original->data['event_begin_time']) {
|
|
||||||
array_push($changes,"L'heure de début a été modifié de ".$original->data['event_begin_time']." à ".$schedule->data['event_begin_time']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['event_end_time'] != $original->data['event_end_time']) {
|
|
||||||
array_push($changes,"L'heure de fin a été modifié de ".$original->data['event_end_time']." à ".$schedule->data['event_end_time']);
|
|
||||||
}
|
|
||||||
if ($schedule->type != $original->type) {
|
|
||||||
array_push($changes,"Le type d'évenement a été modifié de ".$original->type." à ".$schedule->type);
|
|
||||||
}
|
|
||||||
if ($schedule->data['event_name'] != $original->data['event_name']) {
|
|
||||||
array_push($changes,"Le nom de l'évenement a été modifié de ".$original->data['event_name']." à ".$schedule->data['event_name']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['is_event_mandatory'] != $original->data['is_event_mandatory']) {
|
|
||||||
if ($schedule->data['is_event_mandatory'] == "on") {
|
|
||||||
array_push($changes,"L'évenement est maintenant obligatoire");
|
|
||||||
} else {
|
|
||||||
array_push($changes,"L'évenement n'est plus obligatoire");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($schedule->data['event_location'] != $original->data['event_location']) {
|
|
||||||
array_push($changes,"Le lieu de l'évenement a été modifié de ".$original->data['event_location']." à ".$schedule->data['event_location']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['event_desc'] != $original->data['event_desc']) {
|
|
||||||
array_push($changes,"La description de l'évenement a été modifié de ".$original->data['event_desc']." à ".$schedule->data['event_desc']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($schedule->type == "regular") {
|
|
||||||
/** Check Instructor */
|
|
||||||
if ($schedule->data['n1_p1_instructor'] != $original->data['n1_p1_instructor']) {
|
|
||||||
array_push($changes,"L'instructeur du niveau 1 pour la première période a été changé de ".\App\User::find($original->data['n1_p1_instructor'])->fullname()." à ".\App\User::find($schedule->data['n1_p1_instructor'])->fullname());
|
|
||||||
\Notification::send(\App\User::find($original->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n1_p1_name']." du ".$original->date." vous a été retiré."));
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n1_p1_name']." du ".$schedule->date." vous a été ajouté."));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n1_p2_instructor'] != $original->data['n1_p2_instructor']) {
|
|
||||||
array_push($changes,"L'instructeur du niveau 1 pour la deuxième période a été changé de ".\App\User::find($original->data['n1_p2_instructor'])->fullname()." à ".\App\User::find($schedule->data['n1_p2_instructor'])->fullname());
|
|
||||||
\Notification::send(\App\User::find($original->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n1_p2_name']." du ".$original->date." vous a été retiré."));
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n1_p2_name']." du ".$schedule->date." vous a été ajouté."));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p1_instructor'] != $original->data['n2_p1_instructor']) {
|
|
||||||
array_push($changes,"L'instructeur du niveau 2 pour la première période a été changé de ".\App\User::find($original->data['n2_p1_instructor'])->fullname()." à ".\App\User::find($schedule->data['n2_p1_instructor'])->fullname());
|
|
||||||
\Notification::send(\App\User::find($original->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n2_p1_name']." du ".$original->date." vous a été retiré."));
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n2_p1_name']." du ".$schedule->date." vous a été ajouté."));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p2_instructor'] != $original->data['n2_p2_instructor']) {
|
|
||||||
array_push($changes,"L'instructeur du niveau 2 pour la deuxième période a été changé de ".\App\User::find($original->data['n2_p2_instructor'])->fullname()." à ".\App\User::find($schedule->data['n2_p2_instructor'])->fullname());
|
|
||||||
\Notification::send(\App\User::find($original->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n2_p2_name']." du ".$original->date." vous a été retiré."));
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n2_p2_name']." du ".$schedule->date." vous a été ajouté."));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p1_instructor'] != $original->data['n3_p1_instructor']) {
|
|
||||||
array_push($changes,"L'instructeur du niveau 3 pour la première période a été changé de ".\App\User::find($original->data['n3_p1_instructor'])->fullname()." à ".\App\User::find($schedule->data['n3_p1_instructor'])->fullname());
|
|
||||||
\Notification::send(\App\User::find($original->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n3_p1_name']." du ".$original->date." vous a été retiré."));
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n3_p1_name']." du ".$schedule->date." vous a été ajouté."));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p2_instructor'] != $original->data['n3_p2_instructor']) {
|
|
||||||
array_push($changes,"L'instructeur du niveau 3 pour la deuxième période a été changé de ".\App\User::find($original->data['n3_p2_instructor'])->fullname()." à ".\App\User::find($schedule->data['n3_p2_instructor'])->fullname());
|
|
||||||
\Notification::send(\App\User::find($original->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$original->data['n3_p2_name']." du ".$original->date." vous a été retiré."));
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le cours ".$schedule->data['n3_p2_name']." du ".$schedule->date." vous a été ajouté."));
|
|
||||||
}
|
|
||||||
/** Check OCOM */
|
|
||||||
if ($schedule->data['n1_p1_ocom'] != $original->data['n1_p1_ocom']) {
|
|
||||||
array_push($changes,"L'OCOM du niveau 1 pour la première période a été changé de ".$original->data['n1_p1_ocom']." à ".$schedule->data['n1_p1_ocom']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n1_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p1_ocom']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n1_p2_ocom'] != $original->data['n1_p2_ocom']) {
|
|
||||||
array_push($changes,"L'OCOM du niveau 1 pour la deuxième période a été changé de ".$original->data['n1_p2_ocom']." à ".$schedule->data['n1_p2_ocom']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n1_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p2_ocom']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p1_ocom'] != $original->data['n2_p1_ocom']) {
|
|
||||||
array_push($changes,"L'OCOM du niveau 2 pour la première période a été changé de ".$original->data['n2_p1_ocom']." à ".$schedule->data['n2_p1_ocom']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n2_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p1_ocom']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p2_ocom'] != $original->data['n2_p2_ocom']) {
|
|
||||||
array_push($changes,"L'OCOM du niveau 2 pour la deuxième période a été changé de ".$original->data['n2_p2_ocom']." à ".$schedule->data['n2_p2_ocom']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n2_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p2_ocom']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p1_ocom'] != $original->data['n3_p1_ocom']) {
|
|
||||||
array_push($changes,"L'OCOM du niveau 3 pour la première période a été changé de ".$original->data['n3_p1_ocom']." à ".$schedule->data['n3_p1_ocom']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n3_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p1_ocom']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p2_ocom'] != $original->data['n3_p2_ocom']) {
|
|
||||||
array_push($changes,"L'OCOM du niveau 3 pour la deuxième période a été changé de ".$original->data['n3_p2_ocom']." à ".$schedule->data['n3_p2_ocom']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","L'ocom du cours ".$schedule->data['n3_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p2_ocom']));
|
|
||||||
}
|
|
||||||
/** Check Local */
|
|
||||||
if ($schedule->data['n1_p1_local'] != $original->data['n1_p1_local']) {
|
|
||||||
array_push($changes,"Le local du niveau 1 pour la première période a été changé de ".$original->data['n1_p1_local']." à ".$schedule->data['n1_p1_local']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['n1_p2_local'] != $original->data['n1_p2_local']) {
|
|
||||||
array_push($changes,"Le local du niveau 1 pour la deuxième période a été changé de ".$original->data['n1_p2_local']." à ".$schedule->data['n1_p2_local']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p1_local'] != $original->data['n2_p1_local']) {
|
|
||||||
array_push($changes,"Le local du niveau 2 pour la première période a été changé de ".$original->data['n2_p1_local']." à ".$schedule->data['n2_p1_local']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p2_local'] != $original->data['n2_p2_local']) {
|
|
||||||
array_push($changes,"Le local du niveau 2 pour la deuxième période a été changé de ".$original->data['n2_p2_local']." à ".$schedule->data['n2_p2_local']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p1_local'] != $original->data['n3_p1_local']) {
|
|
||||||
array_push($changes,"Le local du niveau 3 pour la première période a été changé de ".$original->data['n3_p1_local']." à ".$schedule->data['n3_p1_local']);
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p2_local'] != $original->data['n3_p2_local']) {
|
|
||||||
array_push($changes,"Le local du niveau 3 pour la deuxième période a été changé de ".$original->data['n3_p2_local']." à ".$schedule->data['n3_p2_local']);
|
|
||||||
}
|
|
||||||
/** Check Name */
|
|
||||||
if ($schedule->data['n1_p1_name'] != $original->data['n1_p1_name']) {
|
|
||||||
array_push($changes,"Le nom du cours niveau 1 pour la première période a été changé de ".$original->data['n1_p1_name']." à ".$schedule->data['n1_p1_name']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n1_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n1_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p1_name']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n1_p2_name'] != $original->data['n1_p2_name']) {
|
|
||||||
array_push($changes,"Le nom du cours niveau 1 pour la deuxième période a été changé de ".$original->data['n1_p2_name']." à ".$schedule->data['n1_p2_name']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n1_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n1_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n1_p2_name']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p1_name'] != $original->data['n2_p1_name']) {
|
|
||||||
array_push($changes,"Le nom du cours niveau 2 pour la première période a été changé de ".$original->data['n2_p1_name']." à ".$schedule->data['n2_p1_name']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n2_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n2_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p1_name']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n2_p2_name'] != $original->data['n2_p2_name']) {
|
|
||||||
array_push($changes,"Le nom du cours niveau 2 pour la deuxième période a été changé de ".$original->data['n2_p2_name']." à ".$schedule->data['n2_p2_name']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n2_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n2_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n2_p2_name']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p1_name'] != $original->data['n3_p1_name']) {
|
|
||||||
array_push($changes,"Le nom du cours niveau 3 pour la première période a été changé de ".$original->data['n3_p1_name']." à ".$schedule->data['n3_p1_name']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n3_p1_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n3_p1_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p1_name']));
|
|
||||||
}
|
|
||||||
if ($schedule->data['n3_p2_name'] != $original->data['n3_p2_name']) {
|
|
||||||
array_push($changes,"Le nom du cours niveau 3 pour la deuxième période a été changé de ".$original->data['n3_p2_name']." à ".$schedule->data['n3_p2_name']);
|
|
||||||
\Notification::send(\App\User::find($schedule->data['n3_p2_instructor']), new mail(\Auth::User(),"Modification d'un de vos cours","Le nom du cours ".$original->data['n3_p2_name']." du ".$schedule->date." a été changé pour ".$schedule->data['n3_p2_name']));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Modification de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date,"/admin/calendar"));
|
|
||||||
|
|
||||||
$string_Change = "<ul>";
|
|
||||||
foreach ($changes as $value) {
|
|
||||||
$string_Change = $string_Change."<li>".$value."</li>";
|
|
||||||
}
|
|
||||||
$string_Change = $string_Change."</ul>";
|
|
||||||
if(\App\Config::where('name','is_schedule_build')->first()->state == 1)
|
|
||||||
{
|
|
||||||
\Notification::send($userToNotify, new mail(\Auth::User(),"Modification d'une activité a l'horaire",\Auth::User()->fullname()." à modifié l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date."<br>".$string_Change));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return redirect('/admin/calendar');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function delete()
|
|
||||||
{
|
|
||||||
$id = request('id');
|
|
||||||
|
|
||||||
$schedule = Schedule::find($id);
|
|
||||||
|
|
||||||
$schedule->delete();
|
|
||||||
|
|
||||||
\Notification::send($userToNotify, new Alert(\Auth::User()->id,"Suppresion de l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date,"/admin/calendar"));
|
|
||||||
|
|
||||||
if(\App\Config::where('name','is_schedule_build')->first()->state == 1)
|
|
||||||
{
|
|
||||||
\Notification::send($userToNotify, new mail(\Auth::User(),"Suppression d'une activité a l'horaire",\Auth::User()->fullname()." à supprimé l'activité, ".$schedule->data['event_name']." à l'horaire le ".$schedule->date));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private function listClass()
|
|
||||||
{
|
|
||||||
$schedules = \App\Schedule::all();
|
|
||||||
$filtered_schedules = collect();
|
|
||||||
$classes = [];
|
|
||||||
|
|
||||||
foreach($schedules as $schedule)
|
|
||||||
{
|
|
||||||
if($schedule->type == "regular")
|
|
||||||
{
|
|
||||||
$filtered_schedules->push($schedule);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($filtered_schedules as $schedule)
|
|
||||||
{
|
|
||||||
array_push($classes,$schedule->data['n1_p1_ocom']);
|
|
||||||
array_push($classes,$schedule->data['n1_p2_ocom']);
|
|
||||||
array_push($classes,$schedule->data['n2_p1_ocom']);
|
|
||||||
array_push($classes,$schedule->data['n2_p2_ocom']);
|
|
||||||
array_push($classes,$schedule->data['n3_p1_ocom']);
|
|
||||||
array_push($classes,$schedule->data['n3_p2_ocom']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$filtered_classes = array_unique($classes);
|
|
||||||
|
|
||||||
return $filtered_classes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function show()
|
|
||||||
{
|
|
||||||
$date = request('date');
|
|
||||||
return view('admin.calendar.modal.show',['schedules' => \App\Schedule::all()->where('date',$date),'date' => $date]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,6 +100,15 @@ class EventController extends Controller
|
|||||||
$event->use_schedule = 0;
|
$event->use_schedule = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(\request("hidden"))
|
||||||
|
{
|
||||||
|
$event->hidden = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$event->hidden = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$event->calendar_color = \request('calendar_color');
|
$event->calendar_color = \request('calendar_color');
|
||||||
$event->calendar_icon = \request('calendar_icon');
|
$event->calendar_icon = \request('calendar_icon');
|
||||||
|
|
||||||
@@ -146,8 +155,16 @@ class EventController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($instructor == null) {
|
||||||
|
$course->user_id = '';
|
||||||
|
} else {
|
||||||
$course->user_id = $instructor;
|
$course->user_id = $instructor;
|
||||||
|
}
|
||||||
|
if (request('location_n'.$l.'_p'.$p) != null) {
|
||||||
$course->location = request('location_n'.$l.'_p'.$p);
|
$course->location = request('location_n'.$l.'_p'.$p);
|
||||||
|
} else {
|
||||||
|
$course->location = "";
|
||||||
|
}
|
||||||
$course->periode = $p;
|
$course->periode = $p;
|
||||||
$course->level = $l;
|
$course->level = $l;
|
||||||
|
|
||||||
@@ -155,8 +172,16 @@ class EventController extends Controller
|
|||||||
|
|
||||||
if(\request("use_course_n".$l."_p".$p) == 'on')
|
if(\request("use_course_n".$l."_p".$p) == 'on')
|
||||||
{
|
{
|
||||||
|
if (request('name_n'.$l.'_p'.$p) == null) {
|
||||||
|
$course->name = "";
|
||||||
|
} else {
|
||||||
$course->name = request('name_n'.$l.'_p'.$p);
|
$course->name = request('name_n'.$l.'_p'.$p);
|
||||||
|
}
|
||||||
|
if (request('ocom_n'.$l.'_p'.$p) == null) {
|
||||||
|
$course->ocom = "";
|
||||||
|
} else {
|
||||||
$course->ocom = request('ocom_n'.$l.'_p'.$p);
|
$course->ocom = request('ocom_n'.$l.'_p'.$p);
|
||||||
|
}
|
||||||
$course->desc = "";
|
$course->desc = "";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -209,7 +234,15 @@ class EventController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function edit($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
return view('admin.schedule.event.edit',['event' => \App\Event::find($id)]);
|
$event = \App\Event::find($id);
|
||||||
|
if ($event->hidden == 1)
|
||||||
|
{
|
||||||
|
if (\Auth::user()->p('instruction_see_hidden_event') != 1)
|
||||||
|
{
|
||||||
|
return redirect('/admin/schedule')->with('error','Modification non authorisé');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return view('admin.schedule.event.edit',['event' => $event]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -222,6 +255,13 @@ class EventController extends Controller
|
|||||||
public function update($id)
|
public function update($id)
|
||||||
{
|
{
|
||||||
$event = Event::findOrFail($id);
|
$event = Event::findOrFail($id);
|
||||||
|
if ($event->hidden == 1)
|
||||||
|
{
|
||||||
|
if (\Auth::user()->p('instruction_see_hidden_event') != 1)
|
||||||
|
{
|
||||||
|
return redirect('/admin/schedule')->with('error','Modification non authorisé');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if (\App\GoogleDriveFile::checkConfig())
|
// if (\App\GoogleDriveFile::checkConfig())
|
||||||
// {
|
// {
|
||||||
@@ -281,6 +321,15 @@ class EventController extends Controller
|
|||||||
$event->use_schedule = 0;
|
$event->use_schedule = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(\request("hidden"))
|
||||||
|
{
|
||||||
|
$event->hidden = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$event->hidden = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$event->calendar_color = \request('calendar_color');
|
$event->calendar_color = \request('calendar_color');
|
||||||
$event->calendar_icon = \request('calendar_icon');
|
$event->calendar_icon = \request('calendar_icon');
|
||||||
|
|
||||||
@@ -330,8 +379,16 @@ class EventController extends Controller
|
|||||||
$instructor = $user->id;
|
$instructor = $user->id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($instructor == null) {
|
||||||
|
$course->user_id = "";
|
||||||
|
} else {
|
||||||
$course->user_id = $instructor;
|
$course->user_id = $instructor;
|
||||||
|
}
|
||||||
|
if (request('location_n'.$l.'_p'.$p) == null) {
|
||||||
|
$course->location = "";
|
||||||
|
} else {
|
||||||
$course->location = request('location_n'.$l.'_p'.$p);
|
$course->location = request('location_n'.$l.'_p'.$p);
|
||||||
|
}
|
||||||
$course->periode = $p;
|
$course->periode = $p;
|
||||||
$course->level = $l;
|
$course->level = $l;
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,14 @@ class EventTypeController extends Controller
|
|||||||
{
|
{
|
||||||
$eventType->use_schedule = 0;
|
$eventType->use_schedule = 0;
|
||||||
}
|
}
|
||||||
|
if(\request("hidden"))
|
||||||
|
{
|
||||||
|
$eventType->hidden = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$eventType->hidden = 0;
|
||||||
|
}
|
||||||
if ($request->is_mandatory == 'on')
|
if ($request->is_mandatory == 'on')
|
||||||
{
|
{
|
||||||
$eventType->is_mandatory = 1;
|
$eventType->is_mandatory = 1;
|
||||||
@@ -174,6 +182,14 @@ class EventTypeController extends Controller
|
|||||||
{
|
{
|
||||||
$eventType->use_schedule = 0;
|
$eventType->use_schedule = 0;
|
||||||
}
|
}
|
||||||
|
if(\request("hidden"))
|
||||||
|
{
|
||||||
|
$eventType->hidden = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$eventType->hidden = 0;
|
||||||
|
}
|
||||||
if ($request->is_mandatory == 'on')
|
if ($request->is_mandatory == 'on')
|
||||||
{
|
{
|
||||||
$eventType->is_mandatory = 1;
|
$eventType->is_mandatory = 1;
|
||||||
|
|||||||
@@ -46,6 +46,11 @@ class ScheduleController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($allevents as $event) {
|
foreach ($allevents as $event) {
|
||||||
|
if ($event->hidden == 1) {
|
||||||
|
if (\Auth::check())
|
||||||
|
{
|
||||||
|
if (\Auth::user()->p('instruction_see_hidden_event') == 1)
|
||||||
|
{
|
||||||
if(strtotime($event->date_begin) >= $start && strtotime($event->date_begin) <= $end) {
|
if(strtotime($event->date_begin) >= $start && strtotime($event->date_begin) <= $end) {
|
||||||
array_push($events,$event);
|
array_push($events,$event);
|
||||||
}
|
}
|
||||||
@@ -53,6 +58,18 @@ class ScheduleController extends Controller
|
|||||||
array_push($events,$event);
|
array_push($events,$event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(strtotime($event->date_begin) >= $start && strtotime($event->date_begin) <= $end) {
|
||||||
|
array_push($events,$event);
|
||||||
|
}
|
||||||
|
else if(strtotime($event->date_end) >= $start && strtotime($event->date_end) <= $end) {
|
||||||
|
array_push($events,$event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach ($schedules as $schedule) {
|
foreach ($schedules as $schedule) {
|
||||||
@@ -90,8 +107,16 @@ class ScheduleController extends Controller
|
|||||||
$icon = $event->calendar_icon;
|
$icon = $event->calendar_icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$name = $event->name;
|
||||||
|
|
||||||
|
if ($event->hidden == 1) {
|
||||||
|
$color = $this->hex2rgba($color,0.5);
|
||||||
|
$icon = 'fas fa-eye-slash';
|
||||||
|
$name = 'Caché - '.$name;
|
||||||
|
}
|
||||||
|
|
||||||
$myevent = [
|
$myevent = [
|
||||||
'title' => $event->name,
|
'title' => $name,
|
||||||
'start' => date('c',strtotime($event->date_begin)),
|
'start' => date('c',strtotime($event->date_begin)),
|
||||||
'end' => date('c',strtotime($event->date_end)),
|
'end' => date('c',strtotime($event->date_end)),
|
||||||
'color' => $color,
|
'color' => $color,
|
||||||
@@ -106,6 +131,45 @@ class ScheduleController extends Controller
|
|||||||
return json_encode($jsonevents);
|
return json_encode($jsonevents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hex2rgba($color, $opacity = false) {
|
||||||
|
|
||||||
|
$default = 'rgb(0,0,0)';
|
||||||
|
|
||||||
|
//Return default if no color provided
|
||||||
|
if(empty($color))
|
||||||
|
return $default;
|
||||||
|
|
||||||
|
//Sanitize $color if "#" is provided
|
||||||
|
if ($color[0] == '#' ) {
|
||||||
|
$color = substr( $color, 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check if color has 6 or 3 characters and get values
|
||||||
|
if (strlen($color) == 6) {
|
||||||
|
$hex = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
|
||||||
|
} elseif ( strlen( $color ) == 3 ) {
|
||||||
|
$hex = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
|
||||||
|
} else {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Convert hexadec to rgb
|
||||||
|
$rgb = array_map('hexdec', $hex);
|
||||||
|
|
||||||
|
//Check if opacity is set(rgba or rgb)
|
||||||
|
if($opacity){
|
||||||
|
if(abs($opacity) > 1)
|
||||||
|
$opacity = 1.0;
|
||||||
|
$output = 'rgba('.implode(",",$rgb).','.$opacity.')';
|
||||||
|
} else {
|
||||||
|
$output = 'rgb('.implode(",",$rgb).')';
|
||||||
|
}
|
||||||
|
|
||||||
|
//Return rgb(a) color string
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function loadModal($id,$db_type)
|
public function loadModal($id,$db_type)
|
||||||
{
|
{
|
||||||
if($db_type == "event")
|
if($db_type == "event")
|
||||||
@@ -216,7 +280,17 @@ class ScheduleController extends Controller
|
|||||||
public function delete($id)
|
public function delete($id)
|
||||||
{
|
{
|
||||||
$event = \App\Event::find($id);
|
$event = \App\Event::find($id);
|
||||||
|
if ($event->hidden == 1)
|
||||||
|
{
|
||||||
|
if (\Auth::user()->p('instruction_see_hidden_event') != 1)
|
||||||
|
{
|
||||||
|
abort(403);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($event->courses as $course)
|
||||||
|
{
|
||||||
|
$course->delete();
|
||||||
|
}
|
||||||
$event->delete();
|
$event->delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,13 +49,13 @@ class UserController extends Controller
|
|||||||
$user->email = request('email');
|
$user->email = request('email');
|
||||||
|
|
||||||
if (request('adresse') == null) {
|
if (request('adresse') == null) {
|
||||||
$user->adress = "Inconnu";
|
$user->adress = "";
|
||||||
} else {
|
} else {
|
||||||
$user->adress = request('adresse');
|
$user->adress = request('adresse');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request('telephone') == null) {
|
if (request('telephone') == null) {
|
||||||
$user->telephone = "Inconnu";
|
$user->telephone = "";
|
||||||
} else {
|
} else {
|
||||||
$user->telephone = request('telephone');
|
$user->telephone = request('telephone');
|
||||||
}
|
}
|
||||||
@@ -63,7 +63,7 @@ class UserController extends Controller
|
|||||||
$user->sexe = request('sexe');
|
$user->sexe = request('sexe');
|
||||||
|
|
||||||
if (request('age') == null) {
|
if (request('age') == null) {
|
||||||
$user->age = "Inconnu";
|
$user->age = "";
|
||||||
} else {
|
} else {
|
||||||
$user->age = request('age');
|
$user->age = request('age');
|
||||||
}
|
}
|
||||||
@@ -122,13 +122,13 @@ class UserController extends Controller
|
|||||||
$user->email = request('email');
|
$user->email = request('email');
|
||||||
|
|
||||||
if (request('adresse') == null) {
|
if (request('adresse') == null) {
|
||||||
$user->adress = "Inconnu";
|
$user->adress = "";
|
||||||
} else {
|
} else {
|
||||||
$user->adress = request('adresse');
|
$user->adress = request('adresse');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request('telephone') == null) {
|
if (request('telephone') == null) {
|
||||||
$user->telephone = "Inconnu";
|
$user->telephone = "";
|
||||||
} else {
|
} else {
|
||||||
$user->telephone = request('telephone');
|
$user->telephone = request('telephone');
|
||||||
}
|
}
|
||||||
@@ -136,7 +136,7 @@ class UserController extends Controller
|
|||||||
$user->sexe = request('sexe');
|
$user->sexe = request('sexe');
|
||||||
|
|
||||||
if (request('age') == null) {
|
if (request('age') == null) {
|
||||||
$user->age = "Inconnu";
|
$user->age = "";
|
||||||
} else {
|
} else {
|
||||||
$user->age = request('age');
|
$user->age = request('age');
|
||||||
}
|
}
|
||||||
@@ -250,6 +250,22 @@ class UserController extends Controller
|
|||||||
return redirect('/admin/profil')->with('success', 'Modification enregistré');
|
return redirect('/admin/profil')->with('success', 'Modification enregistré');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function UserTelephone()
|
||||||
|
{
|
||||||
|
return view('admin.user.profil.telephone');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function editUserTelephone()
|
||||||
|
{
|
||||||
|
$user = \Auth::user();
|
||||||
|
|
||||||
|
$user->telephone = request('telephone');
|
||||||
|
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/admin/profil')->with('success', 'Modification enregistré');
|
||||||
|
}
|
||||||
|
|
||||||
public function apiList()
|
public function apiList()
|
||||||
{
|
{
|
||||||
$users = \App\User::all();
|
$users = \App\User::all();
|
||||||
|
|||||||
@@ -64,5 +64,6 @@ class Kernel extends HttpKernel
|
|||||||
'perm' => \App\Http\Middleware\CheckPerm::class,
|
'perm' => \App\Http\Middleware\CheckPerm::class,
|
||||||
'fileperm' => \App\Http\Middleware\CheckFilePerm::class,
|
'fileperm' => \App\Http\Middleware\CheckFilePerm::class,
|
||||||
'courseperm' => \App\Http\Middleware\CheckCoursePerm::class,
|
'courseperm' => \App\Http\Middleware\CheckCoursePerm::class,
|
||||||
|
'firstlogin' => \App\Http\Middleware\FirstLogin::class
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class FirstLogin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param Request $request
|
||||||
|
* @param \Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle($request, Closure $next)
|
||||||
|
{
|
||||||
|
if ($request->isMethod('get'))
|
||||||
|
{
|
||||||
|
if (\Auth::user()->use_default_psw == true)
|
||||||
|
{
|
||||||
|
return redirect('/admin/setup');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
+64
-10
@@ -16,7 +16,7 @@ use Illuminate\Support\Arr;
|
|||||||
class Permission extends Model
|
class Permission extends Model
|
||||||
{
|
{
|
||||||
const PERMISSIONS = [
|
const PERMISSIONS = [
|
||||||
'news' => [
|
'Nouvelle' => [
|
||||||
'news_see' => [
|
'news_see' => [
|
||||||
'ckey' => 'news_see',
|
'ckey' => 'news_see',
|
||||||
'communName' => 'Voir les nouvelles',
|
'communName' => 'Voir les nouvelles',
|
||||||
@@ -46,7 +46,7 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'inventory' => [
|
'Inventaire' => [
|
||||||
'inventory_see' => [
|
'inventory_see' => [
|
||||||
'ckey' => 'inventory_see',
|
'ckey' => 'inventory_see',
|
||||||
'communName' => 'Voir l\'inventaire',
|
'communName' => 'Voir l\'inventaire',
|
||||||
@@ -76,7 +76,7 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'user' => [
|
'Utilisateur' => [
|
||||||
'user_see' => [
|
'user_see' => [
|
||||||
'ckey' => 'user_see',
|
'ckey' => 'user_see',
|
||||||
'communName' => 'Voir la liste des utilisateurs',
|
'communName' => 'Voir la liste des utilisateurs',
|
||||||
@@ -106,7 +106,7 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'config' => [
|
'Configuration' => [
|
||||||
'config_see' => [
|
'config_see' => [
|
||||||
'ckey' => 'config_see',
|
'ckey' => 'config_see',
|
||||||
'communName' => 'Voir les configurations',
|
'communName' => 'Voir les configurations',
|
||||||
@@ -116,13 +116,48 @@ class Permission extends Model
|
|||||||
],
|
],
|
||||||
'config_edit' => [
|
'config_edit' => [
|
||||||
'ckey' => 'config_edit',
|
'ckey' => 'config_edit',
|
||||||
'communName' => 'Modifier les configurations',
|
'communName' => 'Modifier les configurations générales',
|
||||||
'desc' => 'L\'utilisateur peut-il modifier les configurations',
|
'desc' => 'L\'utilisateur peut-il modifier les configurations générales',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'config_edit_instruction' => [
|
||||||
|
'ckey' => 'config_edit_instruction',
|
||||||
|
'communName' => 'Modifier les configurations de l\'instruction',
|
||||||
|
'desc' => 'L\'utilisateur peut-il modifier les configurations de l\'instruction',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'config_edit_administration' => [
|
||||||
|
'ckey' => 'config_edit_administration',
|
||||||
|
'communName' => 'Modifier les configurations de l\'administration',
|
||||||
|
'desc' => 'L\'utilisateur peut-il modifier les configurations de l\'administration',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'config_edit_rank' => [
|
||||||
|
'ckey' => 'config_edit_rank',
|
||||||
|
'communName' => 'Modifier les configurations des grades',
|
||||||
|
'desc' => 'L\'utilisateur peut-il modifier les configurations des grades',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'config_edit_job' => [
|
||||||
|
'ckey' => 'config_edit_job',
|
||||||
|
'communName' => 'Modifier les configurations des postes',
|
||||||
|
'desc' => 'L\'utilisateur peut-il modifier les configurations des postes',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'config_edit_customization' => [
|
||||||
|
'ckey' => 'config_edit_customization',
|
||||||
|
'communName' => 'Modifier les configurations de l\'apparence du site',
|
||||||
|
'desc' => 'L\'utilisateur peut-il modifier les configurations de l\'apparence du site',
|
||||||
'icon' => 'fa-eye',
|
'icon' => 'fa-eye',
|
||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'statistique' => [
|
'Statistique' => [
|
||||||
'stats_see' => [
|
'stats_see' => [
|
||||||
'ckey' => 'stats_see',
|
'ckey' => 'stats_see',
|
||||||
'communName' => 'Voir les statistiques',
|
'communName' => 'Voir les statistiques',
|
||||||
@@ -195,6 +230,20 @@ class Permission extends Model
|
|||||||
'icon' => 'fa-eye',
|
'icon' => 'fa-eye',
|
||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
|
'stats_instruction_see' => [
|
||||||
|
'ckey' => 'stats_instruction_see',
|
||||||
|
'communName' => 'Voir les statistiques de l\'instruction',
|
||||||
|
'desc' => 'L\'utilisateur peut-il voir les statistiques de l\'instruction',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
|
'instruction_see_hidden_event' => [
|
||||||
|
'ckey' => 'instruction_see_hidden_event',
|
||||||
|
'communName' => 'Voir les évenements cachés',
|
||||||
|
'desc' => 'L\'utilisateur peut-il voir les évenements cachés',
|
||||||
|
'icon' => 'fa-eye',
|
||||||
|
'valeur' => 0
|
||||||
|
],
|
||||||
],
|
],
|
||||||
'Administration' => [
|
'Administration' => [
|
||||||
'cadet_list_see' => [
|
'cadet_list_see' => [
|
||||||
@@ -235,7 +284,7 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'article' => [
|
'Articles' => [
|
||||||
'article_see' => [
|
'article_see' => [
|
||||||
'ckey' => 'article_see',
|
'ckey' => 'article_see',
|
||||||
'communName' => 'Voir les articles',
|
'communName' => 'Voir les articles',
|
||||||
@@ -265,7 +314,7 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'picture' => [
|
'Photos & Images' => [
|
||||||
'picture_see' => [
|
'picture_see' => [
|
||||||
'ckey' => 'picture_see',
|
'ckey' => 'picture_see',
|
||||||
'communName' => 'Voir les images',
|
'communName' => 'Voir les images',
|
||||||
@@ -295,7 +344,7 @@ class Permission extends Model
|
|||||||
'valeur' => 0
|
'valeur' => 0
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'file' => [
|
'Fichiers' => [
|
||||||
'file_see' => [
|
'file_see' => [
|
||||||
'ckey' => 'file_see',
|
'ckey' => 'file_see',
|
||||||
'communName' => 'Voir les fichiers publiques',
|
'communName' => 'Voir les fichiers publiques',
|
||||||
@@ -346,6 +395,11 @@ class Permission extends Model
|
|||||||
return self::PERMISSIONS;
|
return self::PERMISSIONS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function allToJSON()
|
||||||
|
{
|
||||||
|
return self::all()->toJson();
|
||||||
|
}
|
||||||
|
|
||||||
public static function allToString($value = null)
|
public static function allToString($value = null)
|
||||||
{
|
{
|
||||||
$perm = [];
|
$perm = [];
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
|
|||||||
{
|
{
|
||||||
Gate::define('viewTelescope', function ($user) {
|
Gate::define('viewTelescope', function ($user) {
|
||||||
return in_array($user->email, [
|
return in_array($user->email, [
|
||||||
//
|
'admin@exvps.ca'
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'path' => env('TELESCOPE_PATH', 'telescope'),
|
'path' => env('TELESCOPE_PATH', 'admin/telescope'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -62,7 +62,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'enabled' => env('TELESCOPE_ENABLED', true),
|
'enabled' => env('TELESCOPE_ENABLED', false),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -77,6 +77,7 @@ return [
|
|||||||
|
|
||||||
'middleware' => [
|
'middleware' => [
|
||||||
'web',
|
'web',
|
||||||
|
'auth',
|
||||||
Authorize::class,
|
Authorize::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ current:
|
|||||||
major: 3
|
major: 3
|
||||||
minor: 2
|
minor: 2
|
||||||
patch: 5
|
patch: 5
|
||||||
prerelease: 11-g4c5d635d
|
prerelease: 54-g63301aec
|
||||||
buildmetadata: ''
|
buildmetadata: ''
|
||||||
commit: 41845
|
commit: 41845
|
||||||
timestamp:
|
timestamp:
|
||||||
|
|||||||
@@ -20,12 +20,13 @@ class CreateUsersTable extends Migration
|
|||||||
$table->string('email')->unique();
|
$table->string('email')->unique();
|
||||||
$table->string('password');
|
$table->string('password');
|
||||||
$table->string('rank_id')->default(1);
|
$table->string('rank_id')->default(1);
|
||||||
$table->string('adress')->default('unknown');
|
$table->string('adress')->default('');
|
||||||
$table->string('telephone')->default('unknown');
|
$table->string('telephone')->default('');
|
||||||
$table->string('age');
|
$table->string('age');
|
||||||
$table->string('avatar')->default('1');
|
$table->string('avatar')->default('1');
|
||||||
$table->string('sexe');
|
$table->string('sexe');
|
||||||
$table->string('job_id')->default(6);
|
$table->string('job_id')->default(6);
|
||||||
|
$table->boolean('use_default_psw')->default(true);
|
||||||
$table->string('api_token', 60)->unique()->default(str_shuffle(str_random(60)));
|
$table->string('api_token', 60)->unique()->default(str_shuffle(str_random(60)));
|
||||||
$table->rememberToken();
|
$table->rememberToken();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class CreateEventsTable extends Migration
|
|||||||
$table->string('calendar_color');
|
$table->string('calendar_color');
|
||||||
$table->string('calendar_icon');
|
$table->string('calendar_icon');
|
||||||
$table->string('weekly_msg_publication_time')->default('-5day');
|
$table->string('weekly_msg_publication_time')->default('-5day');
|
||||||
|
$table->boolean('hidden')->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class CreateEventTypesTable extends Migration
|
|||||||
$table->boolean('use_schedule')->default(false);
|
$table->boolean('use_schedule')->default(false);
|
||||||
$table->text('schedule_model');
|
$table->text('schedule_model');
|
||||||
$table->boolean('is_promoted')->default(false);
|
$table->boolean('is_promoted')->default(false);
|
||||||
|
$table->boolean('hidden')->default(false);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class UsersTableSeeder extends Seeder
|
|||||||
'email' => 'visiteur@exvps.ca',
|
'email' => 'visiteur@exvps.ca',
|
||||||
'password' => bcrypt('f329er8kl2jHJGHdEj12567'),
|
'password' => bcrypt('f329er8kl2jHJGHdEj12567'),
|
||||||
'rank_id' => '1',
|
'rank_id' => '1',
|
||||||
'adress' => 'Inconnu',
|
'adress' => '',
|
||||||
'age' => '99',
|
'age' => '99',
|
||||||
'avatar' => '3',
|
'avatar' => '3',
|
||||||
'sexe' => 'm',
|
'sexe' => 'm',
|
||||||
@@ -31,7 +31,7 @@ class UsersTableSeeder extends Seeder
|
|||||||
'email' => 'admin@exvps.ca',
|
'email' => 'admin@exvps.ca',
|
||||||
'password' => bcrypt('SuperAdmin'),
|
'password' => bcrypt('SuperAdmin'),
|
||||||
'rank_id' => '1',
|
'rank_id' => '1',
|
||||||
'adress' => 'Inconnu',
|
'adress' => '',
|
||||||
'age' => '99',
|
'age' => '99',
|
||||||
'avatar' => '3',
|
'avatar' => '3',
|
||||||
'sexe' => 'm',
|
'sexe' => 'm',
|
||||||
|
|||||||
Vendored
+27
@@ -243,6 +243,19 @@
|
|||||||
height: 3rem;
|
height: 3rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.schedule-table-ocom {
|
||||||
|
width: 200rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-borderless > tbody > tr > td {
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.schedule-table-week > td {
|
||||||
|
border: lightgrey 2px solid;
|
||||||
|
}
|
||||||
|
|
||||||
.autocomplete-items {
|
.autocomplete-items {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border: 1px solid #d4d4d4;
|
border: 1px solid #d4d4d4;
|
||||||
@@ -1894,3 +1907,17 @@ tfoot > tr {
|
|||||||
.overflow-auto {
|
.overflow-auto {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.parsley-errors-list {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0px;
|
||||||
|
color: #f44336;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control {
|
||||||
|
padding-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-select {
|
||||||
|
margin-top: -12px;
|
||||||
|
}
|
||||||
Vendored
+18
-8
@@ -19,7 +19,7 @@ function initFullCalendar(authToken) {
|
|||||||
right: 'prev,next'
|
right: 'prev,next'
|
||||||
},
|
},
|
||||||
defaultDate: initDate,
|
defaultDate: initDate,
|
||||||
events: '/api/schedule/events',
|
events: '/api/schedule/events/auth?api_token='+authToken,
|
||||||
eventRender: function(event, element) {
|
eventRender: function(event, element) {
|
||||||
if (event.event.extendedProps.icon && event.view.type == 'dayGridMonth')
|
if (event.event.extendedProps.icon && event.view.type == 'dayGridMonth')
|
||||||
{
|
{
|
||||||
@@ -130,13 +130,7 @@ function deleteEvent(pid){
|
|||||||
if (result.value) {
|
if (result.value) {
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
$.post('/api/schedule/event/delete/'+pid+'?api_token='+api_token, function(data) {
|
$.post('/api/schedule/event/delete/'+pid+'?api_token='+api_token, function(data, status, xhr) {
|
||||||
console.log('Delete');
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
})(jQuery);
|
|
||||||
|
|
||||||
swal(
|
swal(
|
||||||
'Supprimé!',
|
'Supprimé!',
|
||||||
"L'évenement a été supprimé",
|
"L'évenement a été supprimé",
|
||||||
@@ -146,6 +140,22 @@ function deleteEvent(pid){
|
|||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}).fail(function (data, status, xhr) {
|
||||||
|
if (xhr == 'Forbidden') {
|
||||||
|
swal(
|
||||||
|
'Oups!',
|
||||||
|
"Vous n'avez pas les permissions nécessaires...",
|
||||||
|
'error'
|
||||||
|
).then((result) => {
|
||||||
|
if (result.value) {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
})(jQuery);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
+55
@@ -0,0 +1,55 @@
|
|||||||
|
// Validation errors messages for Parsley
|
||||||
|
// Load this after Parsley
|
||||||
|
|
||||||
|
Parsley.addMessages('fr', {
|
||||||
|
defaultMessage: "Cette valeur semble non valide.",
|
||||||
|
type: {
|
||||||
|
email: "Cette valeur n'est pas une adresse email valide.",
|
||||||
|
url: "Cette valeur n'est pas une URL valide.",
|
||||||
|
number: "Cette valeur doit être un nombre.",
|
||||||
|
integer: "Cette valeur doit être un entier.",
|
||||||
|
digits: "Cette valeur doit être numérique.",
|
||||||
|
alphanum: "Cette valeur doit être alphanumérique."
|
||||||
|
},
|
||||||
|
notblank: "Cette valeur ne peut pas être vide.",
|
||||||
|
required: "Ce champ est requis.",
|
||||||
|
pattern: "Cette valeur semble non valide.",
|
||||||
|
min: "Cette valeur ne doit pas être inférieure à %s.",
|
||||||
|
max: "Cette valeur ne doit pas excéder %s.",
|
||||||
|
range: "Cette valeur doit être comprise entre %s et %s.",
|
||||||
|
minlength: "Cette chaîne est trop courte. Elle doit avoir au minimum %s caractères.",
|
||||||
|
maxlength: "Cette chaîne est trop longue. Elle doit avoir au maximum %s caractères.",
|
||||||
|
length: "Cette valeur doit contenir entre %s et %s caractères.",
|
||||||
|
mincheck: "Vous devez sélectionner au moins %s choix.",
|
||||||
|
maxcheck: "Vous devez sélectionner %s choix maximum.",
|
||||||
|
check: "Vous devez sélectionner entre %s et %s choix.",
|
||||||
|
equalto: "Cette valeur devrait être identique."
|
||||||
|
});
|
||||||
|
|
||||||
|
Parsley.setLocale('fr');
|
||||||
|
|
||||||
|
window.Parsley
|
||||||
|
.addValidator('password', {
|
||||||
|
requirementType: 'boolean',
|
||||||
|
validateString: function(value, requirement) {
|
||||||
|
console.log(/^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*])[\w!@#$%^&*]{8,}$/.test(value));
|
||||||
|
return /^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*])[\w!@#$%^&*]{8,}$/.test(value);
|
||||||
|
},
|
||||||
|
messages: {
|
||||||
|
fr: 'Le mot de passe doit contenir au moins 8 caractères, une lettre majuscule, une lettre minuscule, un chiffre et un caractères spécial'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
window.Parsley.on('field:error', function (fieldInstance) {
|
||||||
|
var messages = ParsleyUI.getErrorsMessages(fieldInstance);
|
||||||
|
var errorMsg = messages.join(';');
|
||||||
|
fieldInstance.$element.parent().addClass('has-danger');
|
||||||
|
fieldInstance.$element.parent().removeClass('has-success');
|
||||||
|
|
||||||
|
});
|
||||||
|
window.Parsley.on('field:success', function (fieldInstance) {
|
||||||
|
if (fieldInstance.$element.val() != "") {
|
||||||
|
fieldInstance.$element.parent().removeClass('has-danger');
|
||||||
|
fieldInstance.$element.parent().addClass('has-success');
|
||||||
|
}
|
||||||
|
});
|
||||||
Vendored
+2
File diff suppressed because one or more lines are too long
+18
@@ -488,6 +488,15 @@ function loadEventType(date,id = 1)
|
|||||||
switchUseSchedule();
|
switchUseSchedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (eventType['hidden'] == 1)
|
||||||
|
{
|
||||||
|
$('#hidden').prop('checked',true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#hidden').removeAttr('checked');
|
||||||
|
}
|
||||||
|
|
||||||
if (eventType['use_weekly_msg'] == 1)
|
if (eventType['use_weekly_msg'] == 1)
|
||||||
{
|
{
|
||||||
$('#use_weekly_msg').prop('checked',true);
|
$('#use_weekly_msg').prop('checked',true);
|
||||||
@@ -604,6 +613,15 @@ function loadEvent(date,id)
|
|||||||
switchUseSchedule();
|
switchUseSchedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (eventType['hidden'] == 1)
|
||||||
|
{
|
||||||
|
$('#hidden').prop('checked',true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#hidden').removeAttr('checked');
|
||||||
|
}
|
||||||
|
|
||||||
if (eventType['use_weekly_msg'] == 1)
|
if (eventType['use_weekly_msg'] == 1)
|
||||||
{
|
{
|
||||||
$('#use_weekly_msg').prop('checked',true);
|
$('#use_weekly_msg').prop('checked',true);
|
||||||
|
|||||||
Vendored
+27
@@ -243,6 +243,19 @@
|
|||||||
height: 3rem;
|
height: 3rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.schedule-table-ocom {
|
||||||
|
width: 200rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-borderless > tbody > tr > td {
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.schedule-table-week > td {
|
||||||
|
border: lightgrey 2px solid;
|
||||||
|
}
|
||||||
|
|
||||||
.autocomplete-items {
|
.autocomplete-items {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border: 1px solid #d4d4d4;
|
border: 1px solid #d4d4d4;
|
||||||
@@ -1894,3 +1907,17 @@ tfoot > tr {
|
|||||||
.overflow-auto {
|
.overflow-auto {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.parsley-errors-list {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0px;
|
||||||
|
color: #f44336;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control {
|
||||||
|
padding-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-select {
|
||||||
|
margin-top: -12px;
|
||||||
|
}
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
@extends('layouts.admin.main')
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
<div class="col-sm-12 col-lg-12 text-right">
|
||||||
|
<a class="btn btn-primary btn-round" href="/admin/schedule/table">
|
||||||
|
<i class="material-icons">table_view</i> Vue Tableau
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div class="col-sm-12 col-lg-12">
|
<div class="col-sm-12 col-lg-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body pb-0">
|
<div class="card-body pb-0">
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Nom</label>
|
<label>Nom</label>
|
||||||
<input class="form-control" type="text" name="name">
|
<input class="form-control" type="text" name="name" required>
|
||||||
<small class="form-text text-muted">Nom du grade</small>
|
<small class="form-text text-muted">Nom du grade</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Description</label>
|
<label>Description</label>
|
||||||
<textarea id="desc" name="desc"></textarea>
|
<textarea id="desc" name="desc" required></textarea>
|
||||||
<small class="form-text text-muted">Description du grade</small>
|
<small class="form-text text-muted">Description du grade</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -31,41 +31,34 @@
|
|||||||
<p>
|
<p>
|
||||||
Choisissez quels permissions doivent être associé avec ce grade.
|
Choisissez quels permissions doivent être associé avec ce grade.
|
||||||
</p>
|
</p>
|
||||||
<div id="accordion" role="tablist">
|
<table id="permission-table" class="table table-bordered" style="width:100%">
|
||||||
|
<thead class="d-none">
|
||||||
|
<th class="d-none">Cat</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th></th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
@foreach(\App\Permission::allToArray() as $key => $cat)
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
<div class="card card-collapse">
|
|
||||||
<div class="card-header" role="tab" id="headingOne">
|
|
||||||
<h5 class="mb-0">
|
|
||||||
<a class="text-capitalize" data-toggle="collapse" href="#coll-{{$key}}" @if ($loop->first) aria-expanded="true" @endif aria-controls="collapseOne">
|
|
||||||
{{$key}}
|
|
||||||
<i class="material-icons">keyboard_arrow_down</i>
|
|
||||||
</a>
|
|
||||||
</h5>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="coll-{{$key}}" class="collapse @if ($loop->first) show @endif" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
@foreach($cat as $r)
|
@foreach($cat as $r)
|
||||||
<div class="col-3 text-center">
|
<tr>
|
||||||
|
<td class="d-none">{{$key}}</td>
|
||||||
|
<td>
|
||||||
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}">
|
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}">
|
||||||
<h5>{{$r['communName']}}</h5>
|
{{$r['communName']}}<br>
|
||||||
|
<small>{{$r['desc']}}</small>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon btn-outline-danger" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fas fa-times"></i></button>
|
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon btn-outline-danger" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fas fa-times"></i></button>
|
||||||
<!--<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon btn-warning" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>-->
|
<!--<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon btn-warning" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>-->
|
||||||
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon btn-outline-success" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
|
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon btn-outline-success" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
</td>
|
||||||
<small>{{$r['desc']}}</small>
|
</tr>
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mt-5">
|
<div class="col-md-12 mt-5">
|
||||||
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
@@ -83,5 +76,17 @@
|
|||||||
$('#desc').trumbowyg({
|
$('#desc').trumbowyg({
|
||||||
lang: 'fr'
|
lang: 'fr'
|
||||||
});
|
});
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#permission-table').DataTable({
|
||||||
|
rowGroup: {
|
||||||
|
dataSrc: 0
|
||||||
|
},
|
||||||
|
pageLength: 100,
|
||||||
|
lengthChange: false,
|
||||||
|
columnDefs: [
|
||||||
|
{ "visible": false, "targets": [0] }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
} );
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -31,7 +31,41 @@
|
|||||||
<p>
|
<p>
|
||||||
Choisissez quels permissions doivent être associé avec ce grade.
|
Choisissez quels permissions doivent être associé avec ce grade.
|
||||||
</p>
|
</p>
|
||||||
<div id="accordion" role="tablist">
|
<table id="permission-table" class="table table-bordered" style="width:100%">
|
||||||
|
<thead class="d-none">
|
||||||
|
<th class="d-none">Cat</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th></th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
|
@foreach($cat as $r)
|
||||||
|
<tr>
|
||||||
|
<td class="d-none">{{$key}}</td>
|
||||||
|
<td>
|
||||||
|
<input class="d-none" type="text" id="{{$r['ckey']}}"
|
||||||
|
name="{{$r['ckey']}}" value="{{$rank->p($r['ckey'])}}">
|
||||||
|
{{$r['communName']}}<br>
|
||||||
|
<small>{{$r['desc']}}</small>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" id="{{$r['ckey']}}-close"
|
||||||
|
class="btn btn-just-icon @if($rank->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif"
|
||||||
|
onclick="switchPermissionSwitch('{{$r['ckey']}}','close')">
|
||||||
|
<i class="fas fa-times"></i></button>
|
||||||
|
<button type="button" id="{{$r['ckey']}}-plus"
|
||||||
|
class="btn btn-just-icon @if($rank->p($r['ckey']) != 1) btn-outline-success @else btn-success @endif"
|
||||||
|
onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')">
|
||||||
|
<i class="fa fa-plus"></i></button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{{--<div id="accordion" role="tablist">
|
||||||
@foreach(\App\Permission::allToArray() as $key => $cat)
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<h3 class="text-capitalize">{{$key}}</h3>
|
<h3 class="text-capitalize">{{$key}}</h3>
|
||||||
@@ -56,12 +90,11 @@
|
|||||||
<i class="fa fa-plus"></i></button>
|
<i class="fa fa-plus"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>--}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mt-5">
|
<div class="col-md-12 mt-5">
|
||||||
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
@@ -79,5 +112,17 @@
|
|||||||
$('#desc').trumbowyg({
|
$('#desc').trumbowyg({
|
||||||
lang: 'fr'
|
lang: 'fr'
|
||||||
});
|
});
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#permission-table').DataTable({
|
||||||
|
rowGroup: {
|
||||||
|
dataSrc: 0
|
||||||
|
},
|
||||||
|
pageLength: 100,
|
||||||
|
lengthChange: false,
|
||||||
|
columnDefs: [
|
||||||
|
{ "visible": false, "targets": [0] }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
} );
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
@else
|
@else
|
||||||
@foreach ($futureEvent as $event)
|
@foreach ($futureEvent as $event)
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="alert" style="background-color: @if($event->calendar_color == null){{ \App\ComplementaryActivity::find($event->type)->calendar_color}} @else {{$event->calendar_color}} @endif">
|
<div class="alert cursor" style="background-color: @if($event->calendar_color == null){{ \App\ComplementaryActivity::find($event->type)->calendar_color}} @else {{$event->calendar_color}} @endif" onclick="navigate('schedule?e={{$event->id}}')">
|
||||||
<div class="row text-white">
|
<div class="row text-white">
|
||||||
<div class="col-md-2 text-capitalize m-auto d-none d-md-flex">
|
<div class="col-md-2 text-capitalize m-auto d-none d-md-flex">
|
||||||
<h3 class="m-0 p-0" style="margin-top: -0.5rem !important;">@if($event->calendar_icon == null) {!! \App\ComplementaryActivity::find($event->type)->calendar_icon !!} @else <i class="{{$event->calendar_icon}}"></i> @endif</h3>
|
<h3 class="m-0 p-0" style="margin-top: -0.5rem !important;">@if($event->calendar_icon == null) {!! \App\ComplementaryActivity::find($event->type)->calendar_icon !!} @else <i class="{{$event->calendar_icon}}"></i> @endif</h3>
|
||||||
|
|||||||
@@ -11,13 +11,13 @@
|
|||||||
<form method="post">
|
<form method="post">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-5">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="label-control">Nom</label>
|
<label class="label-control">Nom</label>
|
||||||
<input type="text" class="form-control" name="name" required/>
|
<input type="text" class="form-control" name="name" required/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="label-control">Emplacement</label>
|
<label class="label-control">Emplacement</label>
|
||||||
<input type="text" class="form-control" name="location" required/>
|
<input type="text" class="form-control" name="location" required/>
|
||||||
@@ -32,6 +32,15 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<div class="togglebutton">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" name="hidden">
|
||||||
|
<span class="toggle"></span>
|
||||||
|
Évenement caché
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="label-control">Heure de début</label>
|
<label class="label-control">Heure de début</label>
|
||||||
|
|||||||
@@ -12,13 +12,13 @@
|
|||||||
@method('PATCH')
|
@method('PATCH')
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-5">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="label-control">Nom</label>
|
<label class="label-control">Nom</label>
|
||||||
<input type="text" class="form-control" value="{{$event_type->name}}" name="name" />
|
<input type="text" class="form-control" value="{{$event_type->name}}" name="name" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="label-control">Emplacement</label>
|
<label class="label-control">Emplacement</label>
|
||||||
<input type="text" class="form-control" value="{{$event_type->location}}" name="location" />
|
<input type="text" class="form-control" value="{{$event_type->location}}" name="location" />
|
||||||
@@ -33,6 +33,15 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<div class="togglebutton">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" name="hidden" @if($event_type->hidden == 1) checked @endif>
|
||||||
|
<span class="toggle"></span>
|
||||||
|
Évenement caché
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="label-control">Heure de début</label>
|
<label class="label-control">Heure de début</label>
|
||||||
|
|||||||
@@ -31,7 +31,35 @@
|
|||||||
<p>
|
<p>
|
||||||
Choisissez quels permissions doivent être associé avec ce poste.
|
Choisissez quels permissions doivent être associé avec ce poste.
|
||||||
</p>
|
</p>
|
||||||
<div id="accordion" role="tablist">
|
<table id="permission-table" class="table table-bordered" style="width:100%">
|
||||||
|
<thead class="d-none">
|
||||||
|
<th class="d-none">Cat</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th></th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
|
@foreach($cat as $r)
|
||||||
|
<tr>
|
||||||
|
<td class="d-none">{{$key}}</td>
|
||||||
|
<td>
|
||||||
|
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}">
|
||||||
|
{{$r['communName']}}<br>
|
||||||
|
<small>{{$r['desc']}}</small>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon btn-outline-danger" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fas fa-times"></i></button>
|
||||||
|
<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon btn-warning" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fa fa-slash"></i></button>
|
||||||
|
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon btn-outline-success" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fa fa-plus"></i></button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{{--<div id="accordion" role="tablist">
|
||||||
@foreach(\App\Permission::allToArray() as $key => $cat)
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
<div class="card card-collapse">
|
<div class="card card-collapse">
|
||||||
<div class="card-header" role="tab" id="headingOne">
|
<div class="card-header" role="tab" id="headingOne">
|
||||||
@@ -65,7 +93,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>--}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mt-5">
|
<div class="col-md-12 mt-5">
|
||||||
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
@@ -83,5 +111,17 @@
|
|||||||
$('#desc').trumbowyg({
|
$('#desc').trumbowyg({
|
||||||
lang: 'fr'
|
lang: 'fr'
|
||||||
});
|
});
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#permission-table').DataTable({
|
||||||
|
rowGroup: {
|
||||||
|
dataSrc: 0
|
||||||
|
},
|
||||||
|
pageLength: 100,
|
||||||
|
lengthChange: false,
|
||||||
|
columnDefs: [
|
||||||
|
{ "visible": false, "targets": [0] }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
} );
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -14,14 +14,14 @@
|
|||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Nom</label>
|
<label>Nom</label>
|
||||||
<input class="form-control" type="text" name="name" value="{{$job->name}}">
|
<input class="form-control" type="text" name="name" value="{{$job->name}}" required>
|
||||||
<small class="form-text text-muted">Nom du poste</small>
|
<small class="form-text text-muted">Nom du poste</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Description</label>
|
<label>Description</label>
|
||||||
<textarea id="desc" name="desc">{!! $job->desc !!}</textarea>
|
<textarea id="desc" name="desc" required>{!! $job->desc !!}</textarea>
|
||||||
<small class="form-text text-muted">Description du poste</small>
|
<small class="form-text text-muted">Description du poste</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -31,7 +31,35 @@
|
|||||||
<p>
|
<p>
|
||||||
Choisissez quels permissions doivent être associé avec ce poste.
|
Choisissez quels permissions doivent être associé avec ce poste.
|
||||||
</p>
|
</p>
|
||||||
<div id="accordion" role="tablist">
|
<table id="permission-table" class="table table-bordered" style="width:100%">
|
||||||
|
<thead class="d-none">
|
||||||
|
<th class="d-none">Cat</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th></th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
|
@foreach($cat as $r)
|
||||||
|
<tr>
|
||||||
|
<td class="d-none">{{$key}}</td>
|
||||||
|
<td>
|
||||||
|
<input class="d-none" type="text" id="{{$r['ckey']}}" name="{{$r['ckey']}}" value="{{$job->p($r['ckey'])}}">
|
||||||
|
{{$r['communName']}}<br>
|
||||||
|
<small>{{$r['desc']}}</small>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" id="{{$r['ckey']}}-close" class="btn btn-just-icon @if($job->p($r['ckey']) != -1) btn-outline-danger @else btn-danger @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','close')"><i class="fas fa-times"></i></button>
|
||||||
|
<button type="button" id="{{$r['ckey']}}-slash" class="btn btn-just-icon @if($job->p($r['ckey']) == 0) btn-warning @else btn-outline-warning @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','slash')"><i class="fas fa-slash"></i></button>
|
||||||
|
<button type="button" id="{{$r['ckey']}}-plus" class="btn btn-just-icon @if($job->p($r['ckey']) != 1) btn-outline-success @else btn-success @endif" onclick="switchPermissionSwitch('{{$r['ckey']}}','plus')"><i class="fas fa-plus"></i></button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{{-- <div id="accordion" role="tablist">
|
||||||
@foreach(\App\Permission::allToArray() as $key => $cat)
|
@foreach(\App\Permission::allToArray() as $key => $cat)
|
||||||
<div class="card card-collapse">
|
<div class="card card-collapse">
|
||||||
<div class="card-header" role="tab" id="headingOne">
|
<div class="card-header" role="tab" id="headingOne">
|
||||||
@@ -65,7 +93,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>--}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mt-5">
|
<div class="col-md-12 mt-5">
|
||||||
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
@@ -83,5 +111,17 @@
|
|||||||
$('#desc').trumbowyg({
|
$('#desc').trumbowyg({
|
||||||
lang: 'fr'
|
lang: 'fr'
|
||||||
});
|
});
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#permission-table').DataTable({
|
||||||
|
rowGroup: {
|
||||||
|
dataSrc: 0
|
||||||
|
},
|
||||||
|
pageLength: 100,
|
||||||
|
lengthChange: false,
|
||||||
|
columnDefs: [
|
||||||
|
{ "visible": false, "targets": [0] }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
} );
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h4 class="card-title news-title">{{$n->title}}</h4>
|
<h4 class="card-title news-title">{{$n->title}}</h4>
|
||||||
<p class="category">{{$n->user->fullname()}} - {{$n->created_at}}
|
<p class="category">@if($n->user){{$n->user->fullname()}} -@endif {{$n->created_at}}
|
||||||
<div class="news-tags">
|
<div class="news-tags">
|
||||||
@if($n->tags != [])
|
@if($n->tags != [])
|
||||||
@foreach($n->tags as $tag)
|
@foreach($n->tags as $tag)
|
||||||
|
|||||||
@@ -157,6 +157,17 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="m-0" for="type">Évenement caché</label>
|
||||||
|
<small class="text-muted d-block">L'évenement doit t-il être caché?</small>
|
||||||
|
<div class="togglebutton">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="hidden" name="hidden">
|
||||||
|
<span class="toggle"></span>
|
||||||
|
Caché
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="accordion-apparence" role="tablist">
|
<div id="accordion-apparence" role="tablist">
|
||||||
<div class="card card-collapse">
|
<div class="card card-collapse">
|
||||||
<div class="card-header" role="tab" id="heading-apparence">
|
<div class="card-header" role="tab" id="heading-apparence">
|
||||||
|
|||||||
@@ -170,6 +170,17 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="m-0" for="type">Évenement caché</label>
|
||||||
|
<small class="text-muted d-block">L'évenement doit t-il être caché?</small>
|
||||||
|
<div class="togglebutton">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="hidden" name="hidden">
|
||||||
|
<span class="toggle"></span>
|
||||||
|
Caché
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="accordion-apparence" role="tablist">
|
<div id="accordion-apparence" role="tablist">
|
||||||
<div class="card card-collapse">
|
<div class="card card-collapse">
|
||||||
<div class="card-header" role="tab" id="heading-apparence">
|
<div class="card-header" role="tab" id="heading-apparence">
|
||||||
|
|||||||
@@ -0,0 +1,140 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-sm-12 col-lg-12 text-right">
|
||||||
|
<a class="btn btn-primary btn-round" href="/admin/schedule">
|
||||||
|
<i class="material-icons">today</i> Vue Horaire
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Horaire tableau</h3>
|
||||||
|
</div>
|
||||||
|
<div class="card-body" style="overflow: scroll;max-height: 79vh">
|
||||||
|
<div>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead class="table-dark">
|
||||||
|
<tr>
|
||||||
|
<th></th>
|
||||||
|
@for($i = 1;$i <= \App\Event::getMaxLevels($events); $i++)
|
||||||
|
<th>
|
||||||
|
Niveau {{$i}}
|
||||||
|
</th>
|
||||||
|
@endfor
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div class="row" style="width: 29rem">
|
||||||
|
<div class="col-2 pr-0">
|
||||||
|
Semaine
|
||||||
|
</div>
|
||||||
|
<div class="col-4">
|
||||||
|
Nom
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Date
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Période
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
@for($i = 1;$i <= \App\Event::getMaxLevels($events); $i++)
|
||||||
|
<td>
|
||||||
|
<div class="row" style="width: 35rem">
|
||||||
|
<div class="col-5">
|
||||||
|
OCOM - Description
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Instructeur
|
||||||
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
Salle
|
||||||
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
Materiel
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
@endfor
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
@foreach($events as $event)
|
||||||
|
<tr class="schedule-table-week">
|
||||||
|
<td>
|
||||||
|
<div class="row" style="width: 29rem">
|
||||||
|
<div class="col-2 text-center m-auto">
|
||||||
|
{{ $loop->iteration }}
|
||||||
|
</div>
|
||||||
|
<div class="col-4 m-auto">
|
||||||
|
{{$event->name}}
|
||||||
|
</div>
|
||||||
|
<div class="col-3 m-auto">
|
||||||
|
{{$event->date_begin}} à {{ $event->date_end }}
|
||||||
|
</div>
|
||||||
|
<div class="col-3 m-auto pr-0">
|
||||||
|
@if($event->use_schedule == 1)
|
||||||
|
@foreach($event->schedule["periodes"] as $periode)
|
||||||
|
<table class="table-borderless">
|
||||||
|
<tr>
|
||||||
|
<td style="height: 6rem;vertical-align: middle">
|
||||||
|
P{{$loop->iteration}} - {{ $periode['begin_time'] }} à {{ $periode['end_time'] }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
@if($event->use_schedule == 1)
|
||||||
|
@for($n = 1;$n <= $event->nbNiveau();$n++)
|
||||||
|
<td style="padding: 0px;">
|
||||||
|
@for($p = 1;$p <= $event->nbPeriode();$p++)
|
||||||
|
<table class="table-borderless">
|
||||||
|
<tr @if($p != $event->nbPeriode())class="border-bottom"@endif>
|
||||||
|
<td style="height: 6rem;">
|
||||||
|
<div class="row" style="width: 35rem">
|
||||||
|
@php($course = $event->course($p,$n))
|
||||||
|
<div class="col-5 m-auto">
|
||||||
|
@if(!$course->use_course())
|
||||||
|
<b>{{ $course->ocom }}</b> - {{ $course->name }}
|
||||||
|
@else
|
||||||
|
{{ $course->desc }}
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
{{ $course->instructor() }}
|
||||||
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
{{ $course->location }}
|
||||||
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
NA
|
||||||
|
</div>
|
||||||
|
@php($course = null)
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
@endfor
|
||||||
|
</td>
|
||||||
|
@endfor
|
||||||
|
@else
|
||||||
|
<td colspan="{{\App\Event::getMaxLevels($events)}}">
|
||||||
|
{!! $event->desc !!}
|
||||||
|
</td>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
@endsection
|
||||||
@@ -16,6 +16,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
<i class="fas fa-exclamation-triangle text-white fa-2x mr-3"></i>Plusieurs fonctionnalité sont <strong>DÉSACTIVÉ</strong> le temps de les moderniser
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<p>
|
<p>
|
||||||
@@ -41,16 +44,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
|
||||||
<div class="row">
|
|
||||||
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
|
||||||
<i class="fas fa-plus"></i>
|
|
||||||
</div>
|
|
||||||
<div class="col m-auto text-left">
|
|
||||||
Ajout d'un lien avec Google Drive
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
|
||||||
|
|||||||
@@ -1,28 +1,29 @@
|
|||||||
@extends('layouts.admin.main')
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<strong class="card-title">Ajouter un utilisateur <a href="#"><i class="fa fa-question-circle" aria-hidden="true"></i>
|
<strong class="card-title">Ajouter un utilisateur <a href="#"><i class="fa fa-question-circle"
|
||||||
|
aria-hidden="true"></i>
|
||||||
</a></strong>
|
</a></strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form action="/admin/user/add" method="post">
|
<form id="form" action="/admin/user/add" method="post">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="firstname">Prénom</label>
|
<label for="firstname">Prénom</label>
|
||||||
<input type="text" class="form-control" name="firstname" id="firstname" aria-describedby="helpId" placeholder="John" required>
|
<input type="text" class="form-control" name="firstname" id="firstname"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="helpId" placeholder="John" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="lastname">Nom de famille</label>
|
<label for="lastname">Nom de famille</label>
|
||||||
<input type="text" class="form-control" name="lastname" id="lastname" aria-describedby="helpId" placeholder="Doe" required>
|
<input type="text" class="form-control" name="lastname" id="lastname"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="helpId" placeholder="Doe" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,15 +34,17 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Email</label>
|
<label for="email">Email</label>
|
||||||
<input type="email" class="form-control" name="email" id="email" aria-describedby="emailHelp" placeholder="exemple@c-cms.cf" onkeyup="checkEmail()" required>
|
<input type="email" class="form-control" name="email" id="email"
|
||||||
<small id="emailHelp" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="emailHelp" placeholder="exemple@exvps.ca" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Confirmer l'addresse email</label>
|
<label for="email">Confirmer l'addresse email</label>
|
||||||
<input type="email" class="form-control" name="emailc" id="emailc" aria-describedby="emailHelp" placeholder="exemple@c-cms.cf" onkeyup="checkEmail()" required>
|
<input type="email" class="form-control" name="emailc" id="emailc"
|
||||||
<small id="emailHelp" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="emailHelp" placeholder="exemple@exvps.ca"
|
||||||
|
data-parsley-equalto="#email" required
|
||||||
|
data-parsley-error-message="Les emails ne sont pas identique">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -49,7 +52,8 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="adresse">Adresse</label>
|
<label for="adresse">Adresse</label>
|
||||||
<input type="text" class="form-control" name="adresse" id="adresse" aria-describedby="helpId" placeholder="14 ave Des Rue, Rimouski">
|
<input type="text" class="form-control" name="adresse" id="adresse"
|
||||||
|
aria-describedby="helpId" placeholder="14 ave Des Rue, Rimouski">
|
||||||
<small id="helpId" class="form-text text-muted"></small>
|
<small id="helpId" class="form-text text-muted"></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -57,54 +61,55 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="telephone">Telephone</label>
|
<label for="telephone">Telephone</label>
|
||||||
<input type="tel"
|
<input type="tel"
|
||||||
class="form-control" name="telephone" id="telephone" aria-describedby="helpId" placeholder="(XXX) XXX-XXXX">
|
class="form-control" name="telephone" id="telephone" aria-describedby="helpId"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-info">Si vous souhaiter recevoir des notifications par SMS</span></small>
|
placeholder="213-546-5401" pattern="([0-9]{3}-[0-9]{3}-[0-9]{4})*"
|
||||||
|
data-parsley-error-message="Le numéro de téléphone est invalide">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row mb-4">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="sexe">Sexe</label>
|
<label for="sexe">Sexe</label>
|
||||||
<select class="form-control" name="sexe" id="sexe" required>
|
<select class="form-control selectpicker" data-style="btn btn-link" name="sexe"
|
||||||
|
id="sexe" required>
|
||||||
<option value="m">Homme</option>
|
<option value="m">Homme</option>
|
||||||
<option value="f">Femme</option>
|
<option value="f">Femme</option>
|
||||||
<option value="a">Autre</option>
|
<option value="a">Autre</option>
|
||||||
</select>
|
</select>
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group" style="margin-top: 26px;">
|
||||||
<label for="age">Age</label>
|
<label for="age" style="margin-top: -7px;">Age</label>
|
||||||
<input type="number" class="form-control" name="age" id="age" aria-describedby="helpId" placeholder="Age" min="0" max="100">
|
<input type="number" class="form-control" name="age" id="age" aria-describedby="helpId"
|
||||||
|
placeholder="Age" min="0" max="100" style="padding-top: 17px;">
|
||||||
<small id="helpId" class="form-text text-muted"></small>
|
<small id="helpId" class="form-text text-muted"></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="rank">Grade</label>
|
<label for="rank">Grade</label>
|
||||||
<select class="form-control" name="rank" id="rank" required>
|
<select class="form-control selectpicker" data-style="btn btn-link" name="rank"
|
||||||
|
id="rank" required>
|
||||||
@foreach ($RankList as $rank)
|
@foreach ($RankList as $rank)
|
||||||
<option value="{{$rank->id}}">{{$rank->name}}</option>
|
<option value="{{$rank->id}}">{{$rank->name}}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="job">Poste</label>
|
<label for="job">Poste</label>
|
||||||
<select class="form-control" name="job" id="job" required>
|
<select class="form-control selectpicker" data-style="btn btn-link" name="job" id="job"
|
||||||
|
required>
|
||||||
@foreach ($JobsList as $job)
|
@foreach ($JobsList as $job)
|
||||||
<option value="{{$job->id}}">{{$job->name}}</option>
|
<option value="{{$job->id}}">{{$job->name}}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
|
||||||
<div class="alert alert-warning" id="psw_alert" role="alert" style="display:none;">
|
<div class="alert alert-warning" id="psw_alert" role="alert" style="display:none;">
|
||||||
Les mot de passe doivent être identique
|
Les mot de passe doivent être identique
|
||||||
</div>
|
</div>
|
||||||
@@ -112,15 +117,16 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="psw">Mot de passe</label>
|
<label for="psw">Mot de passe</label>
|
||||||
<input type="password" class="form-control" name="psw" id="psw" placeholder="Supermotdepasse" onkeyup="checkPassword()">
|
<input type="password" class="form-control" name="psw" id="psw"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
placeholder="Supermotdepasse" data-parsley-password required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="pswc">Confirmer le mot de passe</label>
|
<label for="pswc">Confirmer le mot de passe</label>
|
||||||
<input type="password" class="form-control" name="pswc" id="pswc" placeholder="Supermotdepasse" onkeyup="checkPassword()">
|
<input type="password" class="form-control" name="pswc" id="pswc"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
placeholder="Supermotdepasse" data-parsley-equalto="#psw"
|
||||||
|
data-parsley-error-message="Les mot de passe ne sont pas identique" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -128,13 +134,11 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
|
||||||
|
|
||||||
@section('breadcrumb')
|
|
||||||
Utilisateur / Ajouter
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('custom_scripts')
|
@section('custom_scripts')
|
||||||
<script src="/assets/admin/assets/js/user.js"></script>
|
<script>
|
||||||
|
$('#form').parsley();
|
||||||
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -14,34 +14,33 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="firstname">Prénom</label>
|
<label for="firstname">Prénom</label>
|
||||||
<input type="text" class="form-control" name="firstname" id="firstname" aria-describedby="helpId" placeholder="John" required value={{$user->firstname}}>
|
<input type="text" class="form-control" name="firstname" id="firstname"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="helpId" placeholder="John" required value="{{$user->firstname}}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="lastname">Nom de famille</label>
|
<label for="lastname">Nom de famille</label>
|
||||||
<input type="text" class="form-control" name="lastname" id="lastname" aria-describedby="helpId" placeholder="Doe" required value={{$user->lastname}}>
|
<input type="text" class="form-control" name="lastname" id="lastname"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="helpId" placeholder="Doe" required value="{{$user->lastname}}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="alert alert-warning" id="email_alert" role="alert" style="display:none;">
|
|
||||||
Les adresses email doivent être identique
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Email</label>
|
<label for="email">Email</label>
|
||||||
<input type="email" class="form-control" name="email" id="email" aria-describedby="emailHelp" placeholder="exemple@c-cms.cf" onkeyup="checkEmail()" required value={{$user->email}}>
|
<input type="email" class="form-control" name="email" id="email"
|
||||||
<small id="emailHelp" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="emailHelp" placeholder="exemple@exvps.ca" value="{{$user->email}}" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Confirmer l'addresse email</label>
|
<label for="email">Confirmer l'addresse email</label>
|
||||||
<input type="email" class="form-control" name="emailc" id="emailc" aria-describedby="emailHelp" placeholder="exemple@c-cms.cf" onkeyup="checkEmail()" required value={{$user->email}}>
|
<input type="email" class="form-control" name="emailc" id="emailc"
|
||||||
<small id="emailHelp" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
aria-describedby="emailHelp" placeholder="exemple@exvps.ca"
|
||||||
|
data-parsley-equalto="#email" required
|
||||||
|
data-parsley-error-message="Les emails ne sont pas identique" value="{{$user->email}}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -49,7 +48,8 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="adresse">Adresse</label>
|
<label for="adresse">Adresse</label>
|
||||||
<input type="text" class="form-control" name="adresse" id="adresse" aria-describedby="helpId" placeholder="14 ave Des Rue, Rimouski" value={{$user->adress}}>
|
<input type="text" class="form-control" name="adresse" id="adresse"
|
||||||
|
aria-describedby="helpId" placeholder="14 ave Des Rue, Rimouski" value="{{$user->adress}}">
|
||||||
<small id="helpId" class="form-text text-muted"></small>
|
<small id="helpId" class="form-text text-muted"></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -57,82 +57,69 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="telephone">Telephone</label>
|
<label for="telephone">Telephone</label>
|
||||||
<input type="tel"
|
<input type="tel"
|
||||||
class="form-control" name="telephone" id="telephone" aria-describedby="helpId" placeholder="(XXX) XXX-XXXX" value={{$user->telephone}}>
|
class="form-control" name="telephone" id="telephone" aria-describedby="helpId"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-info">Si vous souhaiter recevoir des notifications par SMS</span></small>
|
placeholder="213-546-5401" pattern="([0-9]{3}-[0-9]{3}-[0-9]{4})*"
|
||||||
|
data-parsley-error-message="Le numéro de téléphone est invalide" value="{{$user->telephone}}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row mb-4">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="sexe">Sexe</label>
|
<label for="sexe">Sexe</label>
|
||||||
<select class="form-control" name="sexe" id="sexe" required>
|
<select class="form-control selectpicker" data-style="btn btn-link" name="sexe"
|
||||||
@switch($user->sexe)
|
id="sexe" required>
|
||||||
@case("m")
|
<option value="m" @if($user->sexe == 'm') selected @endif >Homme</option>
|
||||||
<option value="m">Homme</option>
|
<option value="f" @if($user->sexe == 'm') selected @endif >Femme</option>
|
||||||
@break
|
<option value="a" @if($user->sexe == 'm') selected @endif >Autre</option>
|
||||||
@case("f")
|
|
||||||
<option value="f">Femme</option>
|
|
||||||
@break
|
|
||||||
@default
|
|
||||||
<option value="a">Autre</option>
|
|
||||||
@endswitch
|
|
||||||
<option value="m">Homme</option>
|
|
||||||
<option value="f">Femme</option>
|
|
||||||
<option value="a">Autre</option>
|
|
||||||
</select>
|
</select>
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group" style="margin-top: 26px;">
|
||||||
<label for="age">Age</label>
|
<label for="age" style="margin-top: -7px;">Age</label>
|
||||||
<input type="number" class="form-control" name="age" id="age" aria-describedby="helpId" placeholder="Age" min="0" max="100" value={{$user->age}}>
|
<input type="number" class="form-control" name="age" id="age" aria-describedby="helpId"
|
||||||
|
placeholder="Age" min="0" max="100" style="padding-top: 17px;">
|
||||||
<small id="helpId" class="form-text text-muted"></small>
|
<small id="helpId" class="form-text text-muted"></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="rank">Grade</label>
|
<label for="rank">Grade</label>
|
||||||
<select class="form-control" name="rank" id="rank" required>
|
<select class="form-control selectpicker" data-style="btn btn-link" name="rank"
|
||||||
<option value={{$user->rank->id}}>{{$user->rank->name}}</option>
|
id="rank" required>
|
||||||
@foreach ($RankList as $rank)
|
@foreach ($RankList as $rank)
|
||||||
<option value="{{$rank->id}}">{{$rank->name}}</option>
|
<option value="{{$rank->id}}" @if($user->rank_id == $rank->id) selected @endif >{{$rank->name}}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="job">Poste</label>
|
<label for="job">Poste</label>
|
||||||
<select class="form-control" name="job" id="job" required>
|
<select class="form-control selectpicker" data-style="btn btn-link" name="job" id="job"
|
||||||
<option value={{$user->job->id}}>{{$user->job->name}}</option>
|
required>
|
||||||
@foreach ($JobsList as $job)
|
@foreach ($JobsList as $job)
|
||||||
<option value="{{$job->id}}">{{$job->name}}</option>
|
<option value="{{$job->id}}" @if($user->job_id == $job->id) selected @endif>{{$job->name}}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
|
||||||
<div class="alert alert-warning" id="psw_alert" role="alert" style="display:none;">
|
|
||||||
Les mot de passe doivent être identique
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="psw">Mot de passe</label>
|
<label for="psw">Mot de passe</label>
|
||||||
<input type="password" class="form-control" name="psw" id="psw" placeholder="Supermotdepasse" onkeyup="checkPassword()">
|
<input type="password" class="form-control" name="psw" id="psw"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
placeholder="Supermotdepasse" data-parsley-password>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="pswc">Confirmer le mot de passe</label>
|
<label for="pswc">Confirmer le mot de passe</label>
|
||||||
<input type="password" class="form-control" name="pswc" id="pswc" placeholder="Supermotdepasse" onkeyup="checkPassword()">
|
<input type="password" class="form-control" name="pswc" id="pswc"
|
||||||
<small id="helpId" class="form-text text-muted"><span class="badge badge-warning">Requis</span></small>
|
placeholder="Supermotdepasse" data-parsley-equalto="#psw"
|
||||||
|
data-parsley-error-message="Les mot de passe ne sont pas identique">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -143,10 +130,8 @@
|
|||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('breadcrumb')
|
|
||||||
Utilisateur / Modifier
|
|
||||||
@endsection
|
|
||||||
|
|
||||||
@section('custom_scripts')
|
@section('custom_scripts')
|
||||||
<script src="/assets/admin/assets/js/user.js"></script>
|
<script>
|
||||||
|
$('#form').parsley();
|
||||||
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -43,18 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<p>Téléphone<br>
|
<p>Téléphone<br>
|
||||||
@if ($user->telephone != "Inconnu")
|
{{ $user->telephone }}
|
||||||
@php
|
|
||||||
$data = '+'.$user->telephone;
|
|
||||||
if(preg_match( '/^\+\d(\d{3})(\d{3})(\d{4})$/',$data,$matches))
|
|
||||||
{
|
|
||||||
$result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
|
|
||||||
echo $result;
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
@else
|
|
||||||
Inconnu
|
|
||||||
@endif
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
@@ -96,7 +85,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<a name="changepsw" id="changepsw" class="btn btn-warning btn-block" href="/admin/profil/password" role="button">Modifier mon mot de passe</a>
|
<a name="changepsw" id="changepsw" class="btn btn-warning btn-block" href="/admin/profil/password" role="button">Modifier mon mot de passe</a>
|
||||||
<a class="btn btn-secondary btn-block" href="/admin/profil/avatar" role="button">Modifier ma photo de profil</a>
|
<a class="btn btn-secondary btn-block" href="/admin/profil/avatar" role="button">Modifier ma photo de profil</a>
|
||||||
<button disabled class="btn btn-secondary btn-block" href="/admin/profil/phone" role="button">Modifier mon numéro de téléphone</button>
|
<a class="btn btn-secondary btn-block" href="/admin/profil/telephone" role="button">Modifier mon numéro de téléphone</a>
|
||||||
<a class="btn btn-secondary btn-block" href="/admin/profil/adress" role="button">Modifier mon adresse</a>
|
<a class="btn btn-secondary btn-block" href="/admin/profil/adress" role="button">Modifier mon adresse</a>
|
||||||
<button disabled class="btn btn-primary btn-block" href="/admin/profil/preference" role="button">Modifier mes préférences</button>
|
<button disabled class="btn btn-primary btn-block" href="/admin/profil/preference" role="button">Modifier mes préférences</button>
|
||||||
<a class="btn btn-danger btn-block" href="/logout" role="button">Déconnexion</a>
|
<a class="btn btn-danger btn-block" href="/logout" role="button">Déconnexion</a>
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-md-8 col-12 mr-auto ml-auto">
|
||||||
|
<!-- Wizard container -->
|
||||||
|
<div class="wizard-container">
|
||||||
|
<div class="card card-wizard active" data-color="primary">
|
||||||
|
<form id="form" action="/admin/setup" method="post" data-parsley-validate novalidate>
|
||||||
|
<div class="card-header text-center">
|
||||||
|
<h3 class="card-title">
|
||||||
|
Bienvenue {{ Auth::user()->fullname() }},
|
||||||
|
</h3>
|
||||||
|
<h5 class="card-description">Avant de pouvoir continer vous devez répondre a quelques
|
||||||
|
questions</h5>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<h5>Renseignement personnel</h5>
|
||||||
|
@csrf
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="">Nom <sup class="text-danger">*</sup></label>
|
||||||
|
<input type="text" class="form-control" name="lastname"
|
||||||
|
value="{{Auth::user()->lastname}}" id="" aria-describedby="helpId" required
|
||||||
|
placeholder="Doe">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="">Prenom <sup class="text-danger">*</sup></label>
|
||||||
|
<input type="text" class="form-control" name="firstname" id=""
|
||||||
|
value="{{Auth::user()->firstname}}" aria-describedby="helpId"
|
||||||
|
placeholder="John" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="">Adresse</label>
|
||||||
|
<input type="text" class="form-control" name="address" id=""
|
||||||
|
value="{{Auth::user()->adress}}" aria-describedby="helpId"
|
||||||
|
placeholder="16 ave DesRoche, Montréal, QC G0L 1B0">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="">Téléphone</label>
|
||||||
|
<input type="tel" class="form-control" name="telephone" id=""
|
||||||
|
value="{{Auth::user()->telephone}}" aria-describedby="helpId"
|
||||||
|
placeholder="213-546-5401" pattern="([0-9]{3}-[0-9]{3}-[0-9]{4})*"
|
||||||
|
data-parsley-error-message="Le numéro de téléphone est invalide">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="">Sexe</label>
|
||||||
|
<select class="form-control selectpicker" data-style="btn btn-link" name="sexe" id="">
|
||||||
|
<option @if(Auth::user()->sexe == 'm') selected @endif value="m">Homme</option>
|
||||||
|
<option @if(Auth::user()->sexe == 'f') selected @endif value="f">Femme</option>
|
||||||
|
<option @if(Auth::user()->sexe == 'a') selected @endif value="a">Autre</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h5 class="mt-5">Sécurité</h5>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="psw">Nouveau mot de passe <sup class="text-danger">*</sup></label>
|
||||||
|
<input type="password" class="form-control" name="psw" id="psw"
|
||||||
|
aria-describedby="helpId" placeholder="" data-parsley-password required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="psw">Confimer le nouveau mot de passe <sup class="text-danger">*</sup></label>
|
||||||
|
<input type="password" class="form-control" name="psw" id="psw"
|
||||||
|
aria-describedby="helpId" placeholder="" data-parsley-equalto="#psw" required
|
||||||
|
data-parsley-error-message="Les mot de passe ne sont pas identique">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<sup class="text-danger">*</sup> <small>Champ requis</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer">
|
||||||
|
<input type="submit" class="btn btn-primary btn-block" value="Continuer">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('breadcrumb')
|
||||||
|
Dashboard
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('scripts')
|
||||||
|
<script>
|
||||||
|
$('#form').parsley();
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
@extends('layouts.admin.main')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<strong class="card-title">Modification de mon numéro de téléphone </strong>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form autocomplete="off" action="/admin/profil/edit/telephone" method="POST" data-parsley-validate novalidate>
|
||||||
|
@csrf
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="adress">Entrer votre nouveau numero de téléphone</label>
|
||||||
|
<input type="text" class="form-control" name="telephone" id="telephone" placeholder="213-546-5401" pattern="([0-9]{3}-[0-9]{3}-[0-9]{4})*"
|
||||||
|
data-parsley-error-message="Le numéro de téléphone est invalide" required>
|
||||||
|
</div>
|
||||||
|
<button type="submit" id="submit" class="btn btn-primary">Enregistrer</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('custom_scripts')
|
||||||
|
<script>
|
||||||
|
$('#form').parsley();
|
||||||
|
</script>
|
||||||
|
@endsection
|
||||||
@@ -29,6 +29,9 @@
|
|||||||
<script src="/js/plugins/Chart.min.js"></script>
|
<script src="/js/plugins/Chart.min.js"></script>
|
||||||
<!-- Notifications Plugin -->
|
<!-- Notifications Plugin -->
|
||||||
<script src="/js/plugins/bootstrap-notify.js"></script>
|
<script src="/js/plugins/bootstrap-notify.js"></script>
|
||||||
|
<!-- Parsley Plugin -->
|
||||||
|
<script src="/js/plugins/parsley.min.js"></script>
|
||||||
|
<script src="/js/plugins/parsley-extra.min.js"></script>
|
||||||
|
|
||||||
<script src="/js/plugins/trumbowyg/trumbowyg.min.js"></script>
|
<script src="/js/plugins/trumbowyg/trumbowyg.min.js"></script>
|
||||||
<script src="/js/plugins/trumbowyg/langs/fr.js"></script>
|
<script src="/js/plugins/trumbowyg/langs/fr.js"></script>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ $sidebar = [
|
|||||||
'Configuration' => [
|
'Configuration' => [
|
||||||
'route' => null,
|
'route' => null,
|
||||||
'icon' => 'menu_book',
|
'icon' => 'menu_book',
|
||||||
'perm' => 'config_edit',
|
'perm' => 'config_see',
|
||||||
'child' => [
|
'child' => [
|
||||||
'Général' => [
|
'Général' => [
|
||||||
'route' => 'admin.config.general',
|
'route' => 'admin.config.general',
|
||||||
@@ -136,7 +136,7 @@ $sidebar = [
|
|||||||
'Apparence' => [
|
'Apparence' => [
|
||||||
'route' => 'admin.config.customisation',
|
'route' => 'admin.config.customisation',
|
||||||
'icon' => 'fas fa-palette',
|
'icon' => 'fas fa-palette',
|
||||||
'perm' => 'config_edit_instruction',
|
'perm' => 'config_edit_customization',
|
||||||
'child' => null
|
'child' => null
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
@if($event->hidden == 1)
|
||||||
|
<div class="alert alert-danger text-center" role="alert" style="margin-top:-4rem">
|
||||||
|
<b>Évenement caché</b>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" id="exampleModalLabel">{{$event->name}}</h5>
|
<h5 class="modal-title" id="exampleModalLabel">{{$event->name}}</h5>
|
||||||
<button type="button" class="close" onclick="closeScheduleModal()" aria-label="Close">
|
<button type="button" class="close" onclick="closeScheduleModal()" aria-label="Close">
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<h3 class="news-title mb-4">{{ $new->title }}</h3>
|
<h3 class="news-title mb-4">{{ $new->title }}</h3>
|
||||||
<div class="news-body-small"> {!! $new->body !!}</div>
|
<div class="news-body-small"> {!! $new->body !!}</div>
|
||||||
<span class="news-small">{{ \App\User::find($new->user_id)->fullname()}}, {{$new->created_at}}</span>
|
<span class="news-small">@if(\App\User::find($new->user_id)){{ \App\User::find($new->user_id)->fullname()}},@endif {{$new->created_at}}</span>
|
||||||
<div class="news-tags">
|
<div class="news-tags">
|
||||||
@if($new->tags != [])
|
@if($new->tags != [])
|
||||||
@foreach($new->tags as $tag)
|
@foreach($new->tags as $tag)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<div class="news-body-small">
|
<div class="news-body-small">
|
||||||
{!! $new->body !!}
|
{!! $new->body !!}
|
||||||
</div>
|
</div>
|
||||||
<span class="news-small">{{ \App\User::find($new->user_id)->fullname()}}, {{ $new->created_at }}</span>
|
<span class="news-small">@if(\App\User::find($new->user_id)){{ \App\User::find($new->user_id)->fullname()}},@endif {{ $new->created_at }}</span>
|
||||||
<div class="news-tags">
|
<div class="news-tags">
|
||||||
@if($new->tags != [])
|
@if($new->tags != [])
|
||||||
@foreach($new->tags as $tag)
|
@foreach($new->tags as $tag)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<p>
|
<p>
|
||||||
{!! $new->body !!}
|
{!! $new->body !!}
|
||||||
</p>
|
</p>
|
||||||
<span class="news-small">{{ \App\User::find($new->user_id)->fullname()}}, {{ $new->created_at }}</span>
|
<span class="news-small">@if(\App\User::find($new->user_id)){{ \App\User::find($new->user_id)->fullname()}},@endif {{ $new->created_at }}</span>
|
||||||
<div class="news-tags">
|
<div class="news-tags">
|
||||||
@if($new->tags != [])
|
@if($new->tags != [])
|
||||||
@foreach($new->tags as $tag)
|
@foreach($new->tags as $tag)
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ Route::get('/schedule/events/modal/{id}/{db_type}','ScheduleController@loadModal
|
|||||||
|
|
||||||
Route::middleware('auth:api')->group(function () {
|
Route::middleware('auth:api')->group(function () {
|
||||||
|
|
||||||
|
Route::get('/schedule/events/auth','ScheduleController@apiIndex');
|
||||||
Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull')->middleware('perm:schedule_see');
|
Route::get('/schedule/events/modal/full/{id}/{db_type}','ScheduleController@loadModalFull')->middleware('perm:schedule_see');
|
||||||
Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType')->middleware('perm:schedule_add');
|
Route::get('/schedule/events/add/modal/{type}/{date}','ScheduleController@loadModalDefautType')->middleware('perm:schedule_add');
|
||||||
Route::get('/schedule/editor/init/{id}','ScheduleEditorController@getTemplate')->middleware('perm:schedule_edit');
|
Route::get('/schedule/editor/init/{id}','ScheduleEditorController@getTemplate')->middleware('perm:schedule_edit');
|
||||||
|
|||||||
+20
-2
@@ -13,6 +13,12 @@ Breadcrumbs::for('admin.dashboard', function ($trail) {
|
|||||||
$trail->push('Dashboard', route('admin.dashboard'));
|
$trail->push('Dashboard', route('admin.dashboard'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Admin > Setup
|
||||||
|
Breadcrumbs::for('admin.setup', function ($trail) {
|
||||||
|
$trail->parent('admin.dashboard');
|
||||||
|
$trail->push('Configuration initiale', route('admin.setup'));
|
||||||
|
});
|
||||||
|
|
||||||
// Admin > Update
|
// Admin > Update
|
||||||
Breadcrumbs::for('admin.update', function ($trail) {
|
Breadcrumbs::for('admin.update', function ($trail) {
|
||||||
$trail->parent('admin.dashboard');
|
$trail->parent('admin.dashboard');
|
||||||
@@ -31,6 +37,12 @@ Breadcrumbs::for('admin.schedule', function ($trail) {
|
|||||||
$trail->push('Horaire', route('admin.schedule'));
|
$trail->push('Horaire', route('admin.schedule'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Admin > Schedule > Table
|
||||||
|
Breadcrumbs::for('admin.schedule.tableview', function ($trail) {
|
||||||
|
$trail->parent('admin.schedule');
|
||||||
|
$trail->push('Tableau', route('admin.schedule.tableview'));
|
||||||
|
});
|
||||||
|
|
||||||
// Admin > Schedule > Add
|
// Admin > Schedule > Add
|
||||||
Breadcrumbs::for('admin.schedule.add', function ($trail,$date) {
|
Breadcrumbs::for('admin.schedule.add', function ($trail,$date) {
|
||||||
$trail->parent('admin.schedule');
|
$trail->parent('admin.schedule');
|
||||||
@@ -64,7 +76,7 @@ Breadcrumbs::for('admin.user', function ($trail, $id) {
|
|||||||
|
|
||||||
// Admin > User > Add
|
// Admin > User > Add
|
||||||
Breadcrumbs::for('admin.user.add', function ($trail) {
|
Breadcrumbs::for('admin.user.add', function ($trail) {
|
||||||
$trail->parent('admin.user');
|
$trail->parent('admin.users');
|
||||||
$trail->push('Ajouter un utilisateur', route('admin.user.add'));
|
$trail->push('Ajouter un utilisateur', route('admin.user.add'));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -263,6 +275,12 @@ Breadcrumbs::for('admin.profil.adress', function ($trail) {
|
|||||||
$trail->push('Adresse', route('admin.profil.adress'));
|
$trail->push('Adresse', route('admin.profil.adress'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Admin > Profil > Telephone
|
||||||
|
Breadcrumbs::for('admin.profil.telephone', function ($trail) {
|
||||||
|
$trail->parent('admin.profil');
|
||||||
|
$trail->push('Téléphone', route('admin.profil.telephone'));
|
||||||
|
});
|
||||||
|
|
||||||
// Admin > Profil > Password
|
// Admin > Profil > Password
|
||||||
Breadcrumbs::for('admin.profil.psw', function ($trail) {
|
Breadcrumbs::for('admin.profil.psw', function ($trail) {
|
||||||
$trail->parent('admin.profil');
|
$trail->parent('admin.profil');
|
||||||
@@ -275,7 +293,7 @@ Breadcrumbs::for('admin.profil.courses', function ($trail) {
|
|||||||
$trail->push('Mes cours', route('admin.profil.courses'));
|
$trail->push('Mes cours', route('admin.profil.courses'));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Admin > Profil > Adress
|
// Admin > Profil > Notification
|
||||||
Breadcrumbs::for('admin.profil.notifications', function ($trail) {
|
Breadcrumbs::for('admin.profil.notifications', function ($trail) {
|
||||||
$trail->parent('admin.profil');
|
$trail->parent('admin.profil');
|
||||||
$trail->push('Mes notifications', route('admin.profil.notifications'));
|
$trail->push('Mes notifications', route('admin.profil.notifications'));
|
||||||
|
|||||||
+142
-134
@@ -1,7 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use \App\Notifications\sms;
|
use \App\Notifications\sms;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Web Routes
|
| Web Routes
|
||||||
@@ -16,8 +18,7 @@ use Illuminate\Support\Facades\Storage;
|
|||||||
/* Basic Auth Route */
|
/* Basic Auth Route */
|
||||||
Auth::routes();
|
Auth::routes();
|
||||||
Route::get('logout', 'Auth\LoginController@logout')->name('logout');
|
Route::get('logout', 'Auth\LoginController@logout')->name('logout');
|
||||||
Route::get('/ocom/create','OCOMController@updateOCOMDB');
|
Route::get('/ocom/create', 'OCOMController@updateOCOMDB');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Public Route */
|
/** Public Route */
|
||||||
@@ -29,187 +30,194 @@ Route::get('/activity/{id}', 'ComplementaryActivityController@show');
|
|||||||
Route::get('/picture/{id}', 'PictureController@show');
|
Route::get('/picture/{id}', 'PictureController@show');
|
||||||
Route::get('/pictures', 'PictureController@index');
|
Route::get('/pictures', 'PictureController@index');
|
||||||
|
|
||||||
Route::get('/file/get','GoogleDriveController@getFile')->middleware('fileperm:file,r');
|
Route::get('/file/get', 'GoogleDriveController@getFile')->middleware('fileperm:file,r');
|
||||||
@
|
|
||||||
Route::middleware(['auth'])->name('admin.')->group(function () {
|
/** Setup */
|
||||||
|
Route::get('/admin/setup', 'AdminController@setup')->middleware('auth')->name('admin.setup');
|
||||||
|
Route::post('/admin/setup', 'AdminController@saveSetup')->middleware('auth');
|
||||||
|
|
||||||
|
Route::middleware(['auth', 'firstlogin'])->name('admin.')->group(function () {
|
||||||
|
|
||||||
/* Espace Administration Route */
|
/* Espace Administration Route */
|
||||||
|
|
||||||
/** Dashboard & General */
|
/** Dashboard & General */
|
||||||
Route::get('/admin', 'AdminController@index')->name('dashboard');
|
Route::get('/admin', 'AdminController@index')->name('dashboard');
|
||||||
Route::get('/admin/update', 'AdminController@update')->name('update');
|
Route::get('/admin/update', 'AdminController@update')->name('update');
|
||||||
Route::get('/admin/status','AdminController@status')->name('status');
|
Route::get('/admin/status', 'AdminController@status')->name('status');
|
||||||
|
|
||||||
|
|
||||||
/** Schedule */
|
/** Schedule */
|
||||||
Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see')->name('schedule');
|
Route::get('/admin/schedule', 'CalendarController@index')->middleware('perm:schedule_see')->name('schedule');
|
||||||
Route::get('/admin/schedule/pdf/event/{id}','ScheduleController@printtopdf')->middleware('perm:schedule_see')->name('schedule.pdf');
|
Route::get('/admin/schedule/table', 'CalendarController@indexTable')->middleware('perm:schedule_see')->name('schedule.tableview');
|
||||||
Route::get('/admin/schedule/add/{date}','ScheduleController@create')->middleware('perm:schedule_add')->name('schedule.add');
|
Route::get('/admin/schedule/pdf/event/{id}', 'ScheduleController@printtopdf')->middleware('perm:schedule_see')->name('schedule.pdf');
|
||||||
Route::get('/admin/schedule/edit/{id}','EventController@edit')->middleware('perm:schedule_edit')->name('schedule.edit');
|
Route::get('/admin/schedule/add/{date}', 'ScheduleController@create')->middleware('perm:schedule_add')->name('schedule.add');
|
||||||
Route::post('/admin/schedule/event/add','EventController@Store')->middleware('perm:schedule_add');
|
Route::get('/admin/schedule/edit/{id}', 'EventController@edit')->middleware('perm:schedule_edit')->name('schedule.edit');
|
||||||
Route::post('/admin/schedule/event/edit/{id}','EventController@update')->middleware('perm:schedule_edit');
|
Route::post('/admin/schedule/event/add', 'EventController@Store')->middleware('perm:schedule_add');
|
||||||
|
Route::post('/admin/schedule/event/edit/{id}', 'EventController@update')->middleware('perm:schedule_edit');
|
||||||
|
|
||||||
/** Statistique */
|
/** Statistique */
|
||||||
Route::get('/admin/stats/log' , 'LogController@index')->middleware('perm:stats_see')->name('stats.log');
|
Route::get('/admin/stats/log', 'LogController@index')->middleware('perm:stats_see')->name('stats.log');
|
||||||
Route::get('/admin/stats/instruction' , 'StatsController@instruction')->middleware('perm:stats_see')->name('stats.instruction');
|
Route::get('/admin/stats/instruction', 'StatsController@instruction')->middleware('perm:stats_instruction_see')->name('stats.instruction');
|
||||||
|
|
||||||
/** Message */
|
/** Message */
|
||||||
Route::get('/admin/message' , 'MessageController@index')->middleware('perm:msg_see')->name('message');
|
Route::get('/admin/message', 'MessageController@index')->middleware('perm:msg_see')->name('message');
|
||||||
Route::get('/admin/message/add' , 'MessageController@create')->middleware('perm:msg_add')->name('message.add');
|
Route::get('/admin/message/add', 'MessageController@create')->middleware('perm:msg_add')->name('message.add');
|
||||||
Route::post('/admin/message/add' , 'MessageController@store')->middleware('perm:msg_add');
|
Route::post('/admin/message/add', 'MessageController@store')->middleware('perm:msg_add');
|
||||||
Route::get('/admin/message/{id}', ['uses' =>'MessageController@show'])->middleware('perm:msg_see')->name('message.show');
|
Route::get('/admin/message/{id}', ['uses' => 'MessageController@show'])->middleware('perm:msg_see')->name('message.show');
|
||||||
|
|
||||||
/** User */
|
/** User */
|
||||||
Route::get('/admin/user' , 'UserController@index')->middleware('perm:user_see')->name('users');
|
Route::get('/admin/user', 'UserController@index')->middleware('perm:user_see')->name('users');
|
||||||
Route::get('/admin/user/{id}' , 'UserController@show')->middleware('perm:user_see')->name('user');
|
Route::get('/admin/user/add', 'UserController@create')->middleware('perm:user_add')->name('user.add');
|
||||||
Route::get('/admin/user/{id}/course','UserController@showCourses')->name('user.courses');
|
Route::post('/admin/user/add', 'UserController@store')->middleware('perm:user_add');
|
||||||
Route::get('/admin/user/add' , 'UserController@create')->middleware('perm:user_add')->name('user.add');
|
Route::get('/admin/user/{id}', 'UserController@show')->middleware('perm:user_see')->name('user');
|
||||||
Route::post('/admin/user/add' , 'UserController@store')->middleware('perm:user_add');
|
Route::get('/admin/user/{id}/course', 'UserController@showCourses')->name('user.courses');
|
||||||
Route::get('/admin/user/edit/{id}' , 'UserController@edit')->middleware('perm:user_edit')->name('user.edit');
|
Route::get('/admin/user/edit/{id}', 'UserController@edit')->middleware('perm:user_edit')->name('user.edit');
|
||||||
Route::post('/admin/user/edit/{id}' , 'UserController@update')->middleware('perm:user_edit');
|
Route::post('/admin/user/edit/{id}', 'UserController@update')->middleware('perm:user_edit');
|
||||||
|
|
||||||
/** Config */
|
/** Config */
|
||||||
Route::get('/admin/config/instruction', 'ScheduleController@index')->middleware('perm:config_edit')->name('config.schedule');
|
Route::get('/admin/config/instruction', 'ScheduleController@index')->middleware('perm:config_edit_instruction')->name('config.schedule');
|
||||||
Route::get('/admin/config/instruction/event_type/create', 'EventTypeController@create')->middleware('perm:config_edit')->name('config.schedule.event_type.create');
|
Route::get('/admin/config/instruction/event_type/create', 'EventTypeController@create')->middleware('perm:config_edit_instruction')->name('config.schedule.event_type.create');
|
||||||
Route::post('/admin/config/instruction/event_type/create', 'EventTypeController@store')->middleware('perm:config_edit');
|
Route::post('/admin/config/instruction/event_type/create', 'EventTypeController@store')->middleware('perm:config_edit_instruction');
|
||||||
Route::get('/admin/config/instruction/event_type/{id}', 'EventTypeController@show')->middleware('perm:config_edit')->name('config.schedule.event_type');
|
Route::get('/admin/config/instruction/event_type/{id}', 'EventTypeController@show')->middleware('perm:config_edit_instruction')->name('config.schedule.event_type');
|
||||||
Route::patch('/admin/config/instruction/event_type/{id}', 'EventTypeController@update')->middleware('perm:config_edit');
|
Route::patch('/admin/config/instruction/event_type/{id}', 'EventTypeController@update')->middleware('perm:config_edit_instruction');
|
||||||
Route::patch('/admin/config/instruction' , 'ScheduleController@update')->middleware('perm:config_edit');
|
Route::patch('/admin/config/instruction', 'ScheduleController@update')->middleware('perm:config_edit_instruction');
|
||||||
Route::get('/admin/config/activity' , 'ComplementaryActivityController@index')->middleware('perm:config_edit')->name('config.complementary-activity');
|
Route::get('/admin/config/activity', 'ComplementaryActivityController@index')->middleware('perm:config_edit_administration')->name('config.complementary-activity');
|
||||||
Route::get('/admin/config/activity/add' , 'ComplementaryActivityController@create')->middleware('perm:config_edit')->name('config.complementary-activity.add');
|
Route::get('/admin/config/activity/add', 'ComplementaryActivityController@create')->middleware('perm:config_edit_administration')->name('config.complementary-activity.add');
|
||||||
Route::post('/admin/config/activity/add' , 'ComplementaryActivityController@store')->middleware('perm:config_edit');
|
Route::post('/admin/config/activity/add', 'ComplementaryActivityController@store')->middleware('perm:config_edit_administration');
|
||||||
Route::get('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@edit')->middleware('perm:config_edit')->name('config.complementary-activity.edit');
|
Route::get('/admin/config/activity/edit/{id}', 'ComplementaryActivityController@edit')->middleware('perm:config_edit_administration')->name('config.complementary-activity.edit');
|
||||||
Route::post('/admin/config/activity/edit/{id}' , 'ComplementaryActivityController@update')->middleware('perm:config_edit');
|
Route::post('/admin/config/activity/edit/{id}', 'ComplementaryActivityController@update')->middleware('perm:config_edit_administration');
|
||||||
Route::post('/admin/config/general/edit','ConfigController@update')->middleware('perm:config_edit');
|
Route::post('/admin/config/general/edit', 'ConfigController@update')->middleware('perm:config_edit');
|
||||||
Route::get('/admin/config/' , 'ConfigController@index')->middleware('perm:config_edit')->name('config.general');
|
Route::get('/admin/config/', 'ConfigController@index')->middleware('perm:config_edit')->name('config.general');
|
||||||
Route::get('/admin/config/customisation','ConfigController@customisation')->middleware('perm:config_edit')->name('config.customisation');
|
Route::get('/admin/config/customisation', 'ConfigController@customisation')->middleware('perm:config_edit_customization')->name('config.customisation');
|
||||||
Route::post('/admin/config/customisation','ConfigController@customisationUpdate')->middleware('perm:config_edit');
|
Route::post('/admin/config/customisation', 'ConfigController@customisationUpdate')->middleware('perm:config_edit_customization');
|
||||||
|
|
||||||
Route::get('/admin/config/ranks','RankController@index')->middleware('perm:config_edit')->name('config.rank');
|
Route::get('/admin/config/ranks', 'RankController@index')->middleware('perm:config_edit_rank')->name('config.rank');
|
||||||
Route::get('/admin/config/ranks/add','RankController@create')->middleware('perm:config_edit')->name('config.rank.add');
|
Route::get('/admin/config/ranks/add', 'RankController@create')->middleware('perm:config_edit_rank')->name('config.rank.add');
|
||||||
Route::post('/admin/config/ranks/add','RankController@store')->middleware('perm:config_edit');
|
Route::post('/admin/config/ranks/add', 'RankController@store')->middleware('perm:config_edit_rank');
|
||||||
Route::get('/admin/config/ranks/{id}','RankController@show')->middleware('perm:config_edit')->name('config.rank.edit');
|
Route::get('/admin/config/ranks/{id}', 'RankController@show')->middleware('perm:config_edit_rank')->name('config.rank.edit');
|
||||||
Route::post('/admin/config/ranks/{id}','RankController@update')->middleware('perm:config_edit');
|
Route::post('/admin/config/ranks/{id}', 'RankController@update')->middleware('perm:config_edit_rank');
|
||||||
Route::get('/admin/config/jobs','JobController@index')->middleware('perm:config_edit')->name('config.jobs');
|
Route::get('/admin/config/jobs', 'JobController@index')->middleware('perm:config_edit_job')->name('config.jobs');
|
||||||
Route::get('/admin/config/jobs/add','JobController@create')->middleware('perm:config_edit')->name('config.jobs.add');
|
Route::get('/admin/config/jobs/add', 'JobController@create')->middleware('perm:config_edit_job')->name('config.jobs.add');
|
||||||
Route::post('/admin/config/jobs/add','JobController@store')->middleware('perm:config_edit');
|
Route::post('/admin/config/jobs/add', 'JobController@store')->middleware('perm:config_edit_job');
|
||||||
Route::get('/admin/config/jobs/{id}','JobController@edit')->middleware('perm:config_edit')->name('config.jobs.edit');
|
Route::get('/admin/config/jobs/{id}', 'JobController@edit')->middleware('perm:config_edit_job')->name('config.jobs.edit');
|
||||||
Route::post('/admin/config/jobs/{id}','JobController@update')->middleware('perm:config_edit');
|
Route::post('/admin/config/jobs/{id}', 'JobController@update')->middleware('perm:config_edit_job');
|
||||||
|
|
||||||
Route::get('/admin/config/files' , 'ConfigController@showfilesConfig')->middleware('perm:config_edit')->name('config.files');
|
Route::get('/admin/config/files', 'ConfigController@showfilesConfig')->middleware('perm:config_edit')->name('config.files');
|
||||||
Route::post('/admin/config/files' , 'ConfigController@editfilesConfig')->middleware('perm:config_edit');
|
Route::post('/admin/config/files', 'ConfigController@editfilesConfig')->middleware('perm:config_edit');
|
||||||
|
|
||||||
/** Public page */
|
/** Public page */
|
||||||
Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit');
|
Route::get('/admin/public/edit/{config}', 'PublicController@edit')->middleware('perm:config_edit_customization');
|
||||||
Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit');
|
Route::post('/admin/public/edit/{config}', 'PublicController@update')->middleware('perm:config_edit_customization');
|
||||||
|
|
||||||
/** Picture */
|
/** Picture */
|
||||||
Route::get('/admin/picture','PictureController@indexAdmin')->middleware('perm:picture_see')->name('picture');
|
Route::get('/admin/picture', 'PictureController@indexAdmin')->middleware('perm:picture_see')->name('picture');
|
||||||
Route::get('/admin/picture/add','PictureController@create')->middleware('perm:picture_add')->name('picture.add');
|
Route::get('/admin/picture/add', 'PictureController@create')->middleware('perm:picture_add')->name('picture.add');
|
||||||
Route::post('/admin/picture/add','PictureController@store')->middleware('perm:picture_add');
|
Route::post('/admin/picture/add', 'PictureController@store')->middleware('perm:picture_add');
|
||||||
Route::get('/admin/picture/edit/{id}','PictureController@edit')->middleware('perm:picture_edit')->name('picture.edit');
|
Route::get('/admin/picture/edit/{id}', 'PictureController@edit')->middleware('perm:picture_edit')->name('picture.edit');
|
||||||
Route::post('/admin/picture/edit/{id}','PictureController@update')->middleware('perm:picture_edit');
|
Route::post('/admin/picture/edit/{id}', 'PictureController@update')->middleware('perm:picture_edit');
|
||||||
|
|
||||||
/** Inventory */
|
/** Inventory */
|
||||||
Route::get('/admin/inventory' , 'InventoryController@index')->middleware('perm:inventory_see')->name('inv');
|
Route::get('/admin/inventory', 'InventoryController@index')->middleware('perm:inventory_see')->name('inv');
|
||||||
Route::get('/admin/inventory/management','InventoryController@management')->middleware('perm:inventory_edit')->name('inv.management');
|
Route::get('/admin/inventory/management', 'InventoryController@management')->middleware('perm:inventory_edit')->name('inv.management');
|
||||||
|
|
||||||
/** Item Category */
|
/** Item Category */
|
||||||
Route::get('/admin/inventory/management/category','ItemCategoryController@index')->middleware('perm:inventory_edit')->name('inv.management.category');
|
Route::get('/admin/inventory/management/category', 'ItemCategoryController@index')->middleware('perm:inventory_edit')->name('inv.management.category');
|
||||||
Route::get('/admin/inventory/management/category/add','ItemCategoryController@create')->middleware('perm:inventory_add')->name('inv.management.category.add');
|
Route::get('/admin/inventory/management/category/add', 'ItemCategoryController@create')->middleware('perm:inventory_add')->name('inv.management.category.add');
|
||||||
Route::post('/admin/inventory/management/category/add','ItemCategoryController@store')->middleware('perm:inventory_add');
|
Route::post('/admin/inventory/management/category/add', 'ItemCategoryController@store')->middleware('perm:inventory_add');
|
||||||
Route::get('/admin/inventory/management/category/edit/{id}','ItemCategoryController@edit')->middleware('perm:inventory_edit')->name('inv.management.category.edit');
|
Route::get('/admin/inventory/management/category/edit/{id}', 'ItemCategoryController@edit')->middleware('perm:inventory_edit')->name('inv.management.category.edit');
|
||||||
Route::post('/admin/inventory/management/category/edit/{id}','ItemCategoryController@update')->middleware('perm:inventory_edit');
|
Route::post('/admin/inventory/management/category/edit/{id}', 'ItemCategoryController@update')->middleware('perm:inventory_edit');
|
||||||
|
|
||||||
/** News */
|
/** News */
|
||||||
Route::get('/admin/news','NewsController@indexAdmin')->middleware('perm:news_see')->name('news');
|
Route::get('/admin/news', 'NewsController@indexAdmin')->middleware('perm:news_see')->name('news');
|
||||||
Route::get('/admin/news/add','NewsController@create')->middleware('perm:news_add')->name('news.add');
|
Route::get('/admin/news/add', 'NewsController@create')->middleware('perm:news_add')->name('news.add');
|
||||||
Route::post('/admin/news/add','NewsController@store')->middleware('perm:news_add');
|
Route::post('/admin/news/add', 'NewsController@store')->middleware('perm:news_add');
|
||||||
Route::get('/admin/news/edit/{id}','NewsController@edit')->middleware('perm:news_edit')->name('news.edit');
|
Route::get('/admin/news/edit/{id}', 'NewsController@edit')->middleware('perm:news_edit')->name('news.edit');
|
||||||
Route::post('/admin/news/edit/{id}','NewsController@update')->middleware('perm:news_edit');
|
Route::post('/admin/news/edit/{id}', 'NewsController@update')->middleware('perm:news_edit');
|
||||||
|
|
||||||
/** Articles */
|
/** Articles */
|
||||||
Route::get('/admin/article','ArticleController@index')->middleware('perm:article_see')->name('article');
|
Route::get('/admin/article', 'ArticleController@index')->middleware('perm:article_see')->name('article');
|
||||||
Route::get('/admin/article/activity/edit/{id}','ArticleController@editActivity')->middleware('perm:article_edit')->name('article.edit');
|
Route::get('/admin/article/activity/edit/{id}', 'ArticleController@editActivity')->middleware('perm:article_edit')->name('article.edit');
|
||||||
Route::post('/admin/article/activity/edit/{id}','ArticleController@updateActivity')->middleware('perm:article_edit');
|
Route::post('/admin/article/activity/edit/{id}', 'ArticleController@updateActivity')->middleware('perm:article_edit');
|
||||||
Route::get('/admin/article/activity/picture/{id}','ArticleController@pictureActivity')->middleware('perm:article_edit');
|
Route::get('/admin/article/activity/picture/{id}', 'ArticleController@pictureActivity')->middleware('perm:article_edit');
|
||||||
Route::get('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityCreate')->middleware('perm:article_edit');
|
Route::get('/admin/article/activity/picture/{id}/add', 'ArticleController@pictureActivityCreate')->middleware('perm:article_edit');
|
||||||
Route::post('/admin/article/activity/picture/{id}/add','ArticleController@pictureActivityStore')->middleware('perm:article_edit');
|
Route::post('/admin/article/activity/picture/{id}/add', 'ArticleController@pictureActivityStore')->middleware('perm:article_edit');
|
||||||
|
|
||||||
/** Booking */
|
/** Booking */
|
||||||
Route::get('/admin/booking','BookingController@index')->middleware('perm:booking_see');
|
Route::get('/admin/booking', 'BookingController@index')->middleware('perm:booking_see');
|
||||||
Route::get('/admin/booking/{id}','BookingController@show')->middleware('perm:booking_see');
|
Route::get('/admin/booking/{id}', 'BookingController@show')->middleware('perm:booking_see');
|
||||||
Route::get('/admin/booking/{type}/{id}','BookingController@index')->middleware('perm:booking_see');
|
Route::get('/admin/booking/{type}/{id}', 'BookingController@index')->middleware('perm:booking_see');
|
||||||
Route::get('/admin/booking/{type}/{id}/add','BookingController@create')->middleware('perm:booking_add');
|
Route::get('/admin/booking/{type}/{id}/add', 'BookingController@create')->middleware('perm:booking_add');
|
||||||
Route::post('/admin/booking/{type}/{id}/add','BookingController@store')->middleware('perm:booking_add');
|
Route::post('/admin/booking/{type}/{id}/add', 'BookingController@store')->middleware('perm:booking_add');
|
||||||
Route::get('/admin/inventory/booking' , 'InventoryController@booking')->middleware('perm:inventory_see');
|
Route::get('/admin/inventory/booking', 'InventoryController@booking')->middleware('perm:inventory_see');
|
||||||
Route::post('/admin/booking/edit','BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit');
|
Route::post('/admin/booking/edit', 'BookingController@update')->middleware('perm:booking_see')->middleware('perm:booking_edit');
|
||||||
|
|
||||||
/** Item */
|
/** Item */
|
||||||
Route::get('/admin/item/add' , 'ItemController@create')->middleware('perm:inventory_add');
|
Route::get('/admin/item/add', 'ItemController@create')->middleware('perm:inventory_add');
|
||||||
Route::get('/admin/item/edit/{id}' , 'ItemController@edit')->middleware('perm:inventory_edit');
|
Route::get('/admin/item/edit/{id}', 'ItemController@edit')->middleware('perm:inventory_edit');
|
||||||
Route::post('/admin/item/add' , 'ItemController@store')->middleware('perm:inventory_add');
|
Route::post('/admin/item/add', 'ItemController@store')->middleware('perm:inventory_add');
|
||||||
Route::post('/admin/item/edit/{id}' , 'ItemController@update')->middleware('perm:inventory_edit');
|
Route::post('/admin/item/edit/{id}', 'ItemController@update')->middleware('perm:inventory_edit');
|
||||||
|
|
||||||
/** Notification */
|
/** Notification */
|
||||||
Route::get('/admin/notication/mark','UserController@notificationmarkALL');
|
Route::get('/admin/notication/mark', 'UserController@notificationmarkALL');
|
||||||
Route::post('/admin/notication/mark/{id}','UserController@notificationmark');
|
Route::post('/admin/notication/mark/{id}', 'UserController@notificationmark');
|
||||||
|
|
||||||
/** Profil */
|
/** Profil */
|
||||||
Route::get('/admin/profil/courses' , 'ProfilController@courses')->name('profil.courses');
|
Route::get('/admin/profil/courses', 'ProfilController@courses')->name('profil.courses');
|
||||||
Route::get('/admin/profil/avatar' , 'UserController@UserAvatar')->name('profil.avatar');
|
Route::get('/admin/profil/avatar', 'UserController@UserAvatar')->name('profil.avatar');
|
||||||
Route::get('/admin/profil/password' , 'UserController@UserPassword')->name('profil.psw');
|
Route::get('/admin/profil/password', 'UserController@UserPassword')->name('profil.psw');
|
||||||
Route::get('/admin/profil/adress' , 'UserController@UserAdress')->name('profil.adress');
|
Route::get('/admin/profil/adress', 'UserController@UserAdress')->name('profil.adress');
|
||||||
Route::get('/admin/profil/notifications','UserController@userNotification')->name('profil.notifications');
|
Route::get('/admin/profil/telephone', 'UserController@UserTelephone')->name('profil.telephone');
|
||||||
Route::post('/admin/profil/edit/adress' , 'UserController@editUserAdress');
|
Route::get('/admin/profil/notifications', 'UserController@userNotification')->name('profil.notifications');
|
||||||
Route::post('/admin/profil/edit/password' , 'UserController@editUserPassword');
|
Route::post('/admin/profil/edit/adress', 'UserController@editUserAdress');
|
||||||
Route::get('/admin/profil/edit/avatar/{id}' , 'UserController@editUserAvatar');
|
Route::post('/admin/profil/edit/telephone', 'UserController@editUserTelephone');
|
||||||
Route::get('/admin/profil/{id?}' , 'UserController@showUserProfil')->name('profil');
|
Route::post('/admin/profil/edit/password', 'UserController@editUserPassword');
|
||||||
|
Route::get('/admin/profil/edit/avatar/{id}', 'UserController@editUserAvatar');
|
||||||
|
Route::get('/admin/profil/{id?}', 'UserController@showUserProfil')->name('profil');
|
||||||
|
|
||||||
/** Instruction */
|
/** Instruction */
|
||||||
Route::get('/admin/instruction','AdminController@instruction')->name('instruction');
|
Route::get('/admin/instruction', 'AdminController@instruction')->name('instruction');
|
||||||
Route::get('/admin/instruction/guide','FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide');
|
Route::get('/admin/instruction/guide', 'FilesController@guide')->middleware('perm:instruction_guide_see')->name('instruction.guide');
|
||||||
Route::get('/admin/instruction/files','FilesController@instruction')->middleware('perm:file_see')->name('instruction.files');
|
Route::get('/admin/instruction/files', 'FilesController@instruction')->middleware('perm:file_see')->name('instruction.files');
|
||||||
|
|
||||||
/** Courses */
|
/** Courses */
|
||||||
Route::get('/admin/course','CourseController@index')->name('course');
|
Route::get('/admin/course', 'CourseController@index')->name('course');
|
||||||
Route::get('/admin/course/{id}','CourseController@show')->name('course.show')->middleware('courseperm:see');
|
Route::get('/admin/course/{id}', 'CourseController@show')->name('course.show')->middleware('courseperm:see');
|
||||||
Route::patch('/admin/course/{id}/commentOfficer','CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer');
|
Route::patch('/admin/course/{id}/commentOfficer', 'CourseController@updateCommentOfficer')->middleware('courseperm:comment_officer');
|
||||||
Route::patch('/admin/course/{id}/comment','CourseController@updateComment')->middleware('courseperm:edit');
|
Route::patch('/admin/course/{id}/comment', 'CourseController@updateComment')->middleware('courseperm:edit');
|
||||||
Route::patch('/admin/course/{id}/plan/commentOfficer','CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer');
|
Route::patch('/admin/course/{id}/plan/commentOfficer', 'CourseController@updateCommentOfficerPlan')->middleware('courseperm:comment_plan_officer');
|
||||||
Route::patch('/admin/course/{id}/plan/comment','CourseController@updateCommentPlan')->middleware('courseperm:edit');
|
Route::patch('/admin/course/{id}/plan/comment', 'CourseController@updateCommentPlan')->middleware('courseperm:edit');
|
||||||
Route::post('/admin/course/{id}/lessonPlan','CourseController@updateLessonPlan')->middleware('courseperm:edit');
|
Route::post('/admin/course/{id}/lessonPlan', 'CourseController@updateLessonPlan')->middleware('courseperm:edit');
|
||||||
|
|
||||||
/** Files */
|
/** Files */
|
||||||
Route::post('/file/create','GoogleDriveController@createFile')->middleware('fileperm:folder,w');
|
Route::post('/file/create', 'GoogleDriveController@createFile')->middleware('fileperm:folder,w');
|
||||||
Route::post('/file/upload','GoogleDriveController@uploadFile')->middleware('fileperm:folder,w');
|
Route::post('/file/upload', 'GoogleDriveController@uploadFile')->middleware('fileperm:folder,w');
|
||||||
Route::post('/folder/create','GoogleDriveController@createFolder')->middleware('fileperm:folder,w');
|
Route::post('/folder/create', 'GoogleDriveController@createFolder')->middleware('fileperm:folder,w');
|
||||||
Route::get('/file/delete','GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w');
|
Route::get('/file/delete', 'GoogleDriveController@deleteFile')->middleware('perm:file_delete')->middleware('fileperm:folder,w');
|
||||||
Route::get('/folder/delete','GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w');
|
Route::get('/folder/delete', 'GoogleDriveController@deleteDir')->middleware('perm:file_delete')->middleware('fileperm:folder,w');
|
||||||
Route::get('/admin/files','FilesController@index')->middleware('perm:file_see')->name('files');
|
Route::get('/admin/files', 'FilesController@index')->middleware('perm:file_see')->name('files');
|
||||||
Route::get('/admin/files/cadet','FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r');
|
Route::get('/admin/files/cadet', 'FilesController@cadet')->middleware('perm:file_see')->name('files.cadet')->middleware('fileperm:folder,r');
|
||||||
Route::get('/admin/files/staff','FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r');
|
Route::get('/admin/files/staff', 'FilesController@staff')->middleware('perm:file_see')->name('files.staff')->middleware('fileperm:folder,r');
|
||||||
Route::get('/admin/files/etamas','FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r');
|
Route::get('/admin/files/etamas', 'FilesController@etamas')->middleware('perm:file_see')->name('files.etamas')->middleware('fileperm:folder,r');
|
||||||
Route::get('/admin/files/officier','FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r');
|
Route::get('/admin/files/officier', 'FilesController@officier')->middleware('perm:file_see')->name('files.officier')->middleware('fileperm:folder,r');
|
||||||
Route::get('/admin/files/publique','FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r');
|
Route::get('/admin/files/publique', 'FilesController@publique')->middleware('perm:file_see')->name('files.publique')->middleware('fileperm:folder,r');
|
||||||
|
|
||||||
Route::get('/admin/drive/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r','perm:drive_see')->name('drive');
|
|
||||||
Route::get('/admin/folder/{folder?}','GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive');
|
|
||||||
Route::get('/admin/drive/{folder}/permission','GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission');
|
|
||||||
Route::patch('/admin/drive/{folder}/permission/{subject}/{id}','GoogleDriveController@patchPermission')->middleware('perm:file_see','fileperm:folder,p');
|
|
||||||
Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}','GoogleDriveController@deletePermission')->middleware('perm:file_see','fileperm:folder,p');
|
|
||||||
Route::patch('/admin/drive/{folder}/addpermission/{subject}','GoogleDriveController@addPermission')->middleware('perm:file_see','fileperm:folder,p');
|
|
||||||
|
|
||||||
|
Route::get('/admin/drive/{folder?}', 'GoogleDriveController@index')->middleware('fileperm:folder,r', 'perm:drive_see')->name('drive');
|
||||||
|
Route::get('/admin/folder/{folder?}', 'GoogleDriveController@index')->middleware('fileperm:folder,r')->name('drive');
|
||||||
|
Route::get('/admin/drive/{folder}/permission', 'GoogleDriveController@editPermission')->middleware('fileperm:folder,p')->name('drive.permission');
|
||||||
|
Route::patch('/admin/drive/{folder}/permission/{subject}/{id}', 'GoogleDriveController@patchPermission')->middleware('perm:file_see', 'fileperm:folder,p');
|
||||||
|
Route::get('/admin/drive/{folder}/deletepermission/{subject}/{id}', 'GoogleDriveController@deletePermission')->middleware('perm:file_see', 'fileperm:folder,p');
|
||||||
|
Route::patch('/admin/drive/{folder}/addpermission/{subject}', 'GoogleDriveController@addPermission')->middleware('perm:file_see', 'fileperm:folder,p');
|
||||||
|
|
||||||
|
|
||||||
/** OCOM */
|
/** OCOM */
|
||||||
Route::get('/admin/ocom','OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see');
|
Route::get('/admin/ocom', 'OCOMController@index')->name('ocom')->middleware('perm:instruction_db_ocom_see');
|
||||||
Route::get('/admin/ocom/generate','OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit');
|
Route::get('/admin/ocom/generate', 'OCOMController@showgenerate')->name('ocom.generate')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::put('/admin/ocom/generate','OCOMController@generate')->middleware('perm:instruction_db_ocom_edit');
|
Route::put('/admin/ocom/generate', 'OCOMController@generate')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::get('/admin/ocom/add','OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add');
|
Route::get('/admin/ocom/add', 'OCOMController@create')->name('ocom.add')->middleware('perm:instruction_db_ocom_add');
|
||||||
Route::put('/admin/ocom/add','OCOMController@store')->middleware('perm:instruction_db_ocom_add');
|
Route::put('/admin/ocom/add', 'OCOMController@store')->middleware('perm:instruction_db_ocom_add');
|
||||||
Route::get('/admin/ocom/{id}/edit','OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit');
|
Route::get('/admin/ocom/{id}/edit', 'OCOMController@edit')->name('ocom.edit')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::patch('/admin/ocom/{id}/edit','OCOMController@update')->middleware('perm:instruction_db_ocom_edit');
|
Route::patch('/admin/ocom/{id}/edit', 'OCOMController@update')->middleware('perm:instruction_db_ocom_edit');
|
||||||
Route::get('/admin/ocom/{id}','OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see');
|
Route::get('/admin/ocom/{id}', 'OCOMController@show')->name('ocom.show')->middleware('perm:instruction_db_ocom_see');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user