Mise en prod
This commit is contained in:
@@ -11,7 +11,7 @@ trim_trailing_whitespace = true
|
|||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[*.{yml,yaml}]
|
[*.{js,yml,yaml}]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
[docker-compose.yml]
|
[docker-compose.yml]
|
||||||
|
|||||||
@@ -3,16 +3,14 @@ APP_ENV=local
|
|||||||
APP_KEY=
|
APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_TIMEZONE=UTC
|
APP_TIMEZONE=UTC
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost:8000
|
||||||
|
|
||||||
APP_LOCALE=en
|
APP_LOCALE=en
|
||||||
APP_FALLBACK_LOCALE=en
|
APP_FALLBACK_LOCALE=en
|
||||||
APP_FAKER_LOCALE=en_US
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
APP_MAINTENANCE_DRIVER=file
|
APP_MAINTENANCE_DRIVER=file
|
||||||
# APP_MAINTENANCE_STORE=database
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
PHP_CLI_SERVER_WORKERS=4
|
|
||||||
|
|
||||||
BCRYPT_ROUNDS=12
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,15 +1,12 @@
|
|||||||
/.phpunit.cache
|
/.phpunit.cache
|
||||||
/node_modules
|
/node_modules
|
||||||
/public/build
|
|
||||||
/public/hot
|
/public/hot
|
||||||
/public/storage
|
/public/storage
|
||||||
/storage/*.key
|
/storage/*.key
|
||||||
/storage/pail
|
|
||||||
/vendor
|
/vendor
|
||||||
.env
|
.env
|
||||||
.env.backup
|
.env.backup
|
||||||
.env.production
|
.env.production
|
||||||
.phpactor.json
|
|
||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
Homestead.json
|
Homestead.json
|
||||||
Homestead.yaml
|
Homestead.yaml
|
||||||
@@ -19,4 +16,3 @@ yarn-error.log
|
|||||||
/.fleet
|
/.fleet
|
||||||
/.idea
|
/.idea
|
||||||
/.vscode
|
/.vscode
|
||||||
/.zed
|
|
||||||
|
|||||||
@@ -2,22 +2,19 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Illuminate\Notifications\Notifiable;
|
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
use Laravel\Fortify\TwoFactorAuthenticatable;
|
|
||||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
|
use Illuminate\Notifications\Notifiable;
|
||||||
|
|
||||||
class User extends Authenticatable
|
class User extends Authenticatable
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory, Notifiable;
|
||||||
use Notifiable;
|
|
||||||
use TwoFactorAuthenticatable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array<int, string>
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name',
|
'name',
|
||||||
@@ -26,32 +23,21 @@ class User extends Authenticatable
|
|||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that should be hidden for arrays.
|
* The attributes that should be hidden for serialization.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array<int, string>
|
||||||
*/
|
*/
|
||||||
protected $hidden = [
|
protected $hidden = [
|
||||||
'password',
|
'password',
|
||||||
'remember_token',
|
'remember_token',
|
||||||
'two_factor_recovery_codes',
|
|
||||||
'two_factor_secret',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that should be cast to native types.
|
* The attributes that should be cast.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array<string, string>
|
||||||
*/
|
*/
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'email_verified_at' => 'datetime',
|
'email_verified_at' => 'datetime',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
|
||||||
* The accessors to append to the model's array form.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
// protected $appends = [
|
|
||||||
// 'profile_photo_url',
|
|
||||||
// ];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use Illuminate\Pagination\Paginator;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class AppServiceProvider extends ServiceProvider
|
class AppServiceProvider extends ServiceProvider
|
||||||
@@ -19,6 +20,6 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot(): void
|
public function boot(): void
|
||||||
{
|
{
|
||||||
//
|
Paginator::useBootstrapFive();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use Artesaos\SEOTools\Facades\SEOTools;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
use Laravel\Fortify\Fortify;
|
use Laravel\Fortify\Fortify;
|
||||||
|
|
||||||
@@ -25,18 +26,24 @@ class FortifyBootstrapServiceProvider extends ServiceProvider
|
|||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
Fortify::loginView(function () {
|
Fortify::loginView(function () {
|
||||||
|
SEOTools::setTitle('Connexion');
|
||||||
return view('auth.login');
|
return view('auth.login');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
Fortify::registerView(function () {
|
Fortify::registerView(function () {
|
||||||
|
SEOTools::setTitle('Inscription');
|
||||||
return view('auth.register');
|
return view('auth.register');
|
||||||
});
|
});
|
||||||
|
|
||||||
Fortify::requestPasswordResetLinkView(function () {
|
Fortify::requestPasswordResetLinkView(function () {
|
||||||
|
SEOTools::setTitle('Mot de passe perdu');
|
||||||
return view('auth.forgot-password');
|
return view('auth.forgot-password');
|
||||||
});
|
});
|
||||||
|
|
||||||
Fortify::resetPasswordView(function ($request) {
|
Fortify::resetPasswordView(function ($request) {
|
||||||
|
SEOTools::setTitle('Changer mot de passe');
|
||||||
return view('auth.reset-password', ['request' => $request]);
|
return view('auth.reset-password', ['request' => $request]);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -51,5 +58,7 @@ class FortifyBootstrapServiceProvider extends ServiceProvider
|
|||||||
Fortify::twoFactorChallengeView(function () {
|
Fortify::twoFactorChallengeView(function () {
|
||||||
return view('auth.two-factor-challenge');
|
return view('auth.two-factor-challenge');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class FortifyServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot(): void
|
public function boot(): void
|
||||||
{
|
{
|
||||||
//Fortify::createUsersUsing(CreateNewUser::class);
|
Fortify::createUsersUsing(CreateNewUser::class);
|
||||||
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
|
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
|
||||||
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
|
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
|
||||||
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
|
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
|
||||||
@@ -42,33 +42,5 @@ class FortifyServiceProvider extends ServiceProvider
|
|||||||
RateLimiter::for('two-factor', function (Request $request) {
|
RateLimiter::for('two-factor', function (Request $request) {
|
||||||
return Limit::perMinute(5)->by($request->session()->get('login.id'));
|
return Limit::perMinute(5)->by($request->session()->get('login.id'));
|
||||||
});
|
});
|
||||||
|
|
||||||
Fortify::loginView(function () {
|
|
||||||
return view('auth.login');
|
|
||||||
});
|
|
||||||
|
|
||||||
//Fortify::registerView(function () {
|
|
||||||
// return view('auth.register');
|
|
||||||
//});
|
|
||||||
|
|
||||||
Fortify::requestPasswordResetLinkView(function () {
|
|
||||||
return view('auth.forgot-password');
|
|
||||||
});
|
|
||||||
|
|
||||||
Fortify::resetPasswordView(function ($request) {
|
|
||||||
return view('auth.reset-password', ['request' => $request]);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Fortify::verifyEmailView(function () {
|
|
||||||
// return view('auth.verify-email');
|
|
||||||
// });
|
|
||||||
|
|
||||||
Fortify::confirmPasswordView(function () {
|
|
||||||
return view('auth.confirm-password');
|
|
||||||
});
|
|
||||||
|
|
||||||
Fortify::twoFactorChallengeView(function () {
|
|
||||||
return view('auth.two-factor-challenge');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
App\Providers\AppServiceProvider::class,
|
App\Providers\AppServiceProvider::class,
|
||||||
App\Providers\FortifyServiceProvider::class,
|
|
||||||
App\Providers\FortifyBootstrapServiceProvider::class,
|
App\Providers\FortifyBootstrapServiceProvider::class,
|
||||||
|
App\Providers\FortifyServiceProvider::class,
|
||||||
|
App\Providers\NovaServiceProvider::class,
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -6,18 +6,29 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.2",
|
"php": "^8.2",
|
||||||
|
"artesaos/seotools": "^1.3",
|
||||||
|
"foroco/php-browser-detection": "^2.8",
|
||||||
|
"guzzlehttp/oauth-subscriber": "^0.6.0",
|
||||||
"kamona/fortify-bootstrap": "^1.0",
|
"kamona/fortify-bootstrap": "^1.0",
|
||||||
"laravel/framework": "^11.9",
|
"laravel/framework": "^11.27.2",
|
||||||
"laravel/tinker": "^2.9"
|
"laravel/nova": "*",
|
||||||
|
"laravel/tinker": "^2.10",
|
||||||
|
"lexicon/nova-action-button-selectors": "^1.2",
|
||||||
|
"livewire/livewire": "^3.5",
|
||||||
|
"php-flasher/flasher-laravel": "^2.1",
|
||||||
|
"silviolleite/laravelpwa": "^2.0",
|
||||||
|
"symfony/browser-kit": "^7.1",
|
||||||
|
"symfony/http-client": "^7.1",
|
||||||
|
"webklex/laravel-imap": "^5.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.23",
|
"fakerphp/faker": "^1.23.1",
|
||||||
"laravel/pail": "^1.1",
|
"laravel/pint": "^1.18.1",
|
||||||
"laravel/pint": "^1.13",
|
"laravel/sail": "^1.35",
|
||||||
"laravel/sail": "^1.26",
|
"mockery/mockery": "^1.6.12",
|
||||||
"mockery/mockery": "^1.6",
|
"nunomaduro/collision": "^8.4",
|
||||||
"nunomaduro/collision": "^8.1",
|
"phpunit/phpunit": "^10.5.36",
|
||||||
"phpunit/phpunit": "^11.0.1"
|
"spatie/laravel-ignition": "^2.8"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
@@ -31,6 +42,12 @@
|
|||||||
"Tests\\": "tests/"
|
"Tests\\": "tests/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "path",
|
||||||
|
"url": "./vendor/nova"
|
||||||
|
}
|
||||||
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-autoload-dump": [
|
"post-autoload-dump": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||||
@@ -46,10 +63,6 @@
|
|||||||
"@php artisan key:generate --ansi",
|
"@php artisan key:generate --ansi",
|
||||||
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
||||||
"@php artisan migrate --graceful --ansi"
|
"@php artisan migrate --graceful --ansi"
|
||||||
],
|
|
||||||
"dev": [
|
|
||||||
"Composer\\Config::disableProcessTimeout",
|
|
||||||
"npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
|
|||||||
2925
composer.lock
generated
2925
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ return [
|
|||||||
| well as their drivers. You may even define multiple stores for the
|
| well as their drivers. You may even define multiple stores for the
|
||||||
| same cache driver to group types of items stored in your caches.
|
| same cache driver to group types of items stored in your caches.
|
||||||
|
|
|
|
||||||
| Supported drivers: "array", "database", "file", "memcached",
|
| Supported drivers: "apc", "array", "database", "file", "memcached",
|
||||||
| "redis", "dynamodb", "octane", "null"
|
| "redis", "dynamodb", "octane", "null"
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
@@ -40,10 +40,9 @@ return [
|
|||||||
|
|
||||||
'database' => [
|
'database' => [
|
||||||
'driver' => 'database',
|
'driver' => 'database',
|
||||||
'connection' => env('DB_CACHE_CONNECTION'),
|
|
||||||
'table' => env('DB_CACHE_TABLE', 'cache'),
|
'table' => env('DB_CACHE_TABLE', 'cache'),
|
||||||
'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
|
'connection' => env('DB_CACHE_CONNECTION', null),
|
||||||
'lock_table' => env('DB_CACHE_LOCK_TABLE'),
|
'lock_connection' => env('DB_CACHE_LOCK_CONNECTION', null),
|
||||||
],
|
],
|
||||||
|
|
||||||
'file' => [
|
'file' => [
|
||||||
|
|||||||
@@ -37,9 +37,6 @@ return [
|
|||||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||||||
'busy_timeout' => null,
|
|
||||||
'journal_mode' => null,
|
|
||||||
'synchronous' => null,
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'mysql' => [
|
'mysql' => [
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ return [
|
|||||||
| may even configure multiple disks for the same driver. Examples for
|
| may even configure multiple disks for the same driver. Examples for
|
||||||
| most supported storage drivers are configured here for reference.
|
| most supported storage drivers are configured here for reference.
|
||||||
|
|
|
|
||||||
| Supported drivers: "local", "ftp", "sftp", "s3"
|
| Supported Drivers: "local", "ftp", "sftp", "s3"
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -32,8 +32,7 @@ return [
|
|||||||
|
|
||||||
'local' => [
|
'local' => [
|
||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => storage_path('app/private'),
|
'root' => storage_path('app'),
|
||||||
'serve' => true,
|
|
||||||
'throw' => false,
|
'throw' => false,
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ return [
|
|||||||
| utilizes the Monolog PHP logging library, which includes a variety
|
| utilizes the Monolog PHP logging library, which includes a variety
|
||||||
| of powerful log handlers and formatters that you're free to use.
|
| of powerful log handlers and formatters that you're free to use.
|
||||||
|
|
|
|
||||||
| Available drivers: "single", "daily", "slack", "syslog",
|
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||||
| "errorlog", "monolog", "custom", "stack"
|
| "errorlog", "monolog", "custom", "stack"
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ return [
|
|||||||
| your mailers below. You may also add additional mailers if needed.
|
| your mailers below. You may also add additional mailers if needed.
|
||||||
|
|
|
|
||||||
| Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
|
| Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
|
||||||
| "postmark", "resend", "log", "array",
|
| "postmark", "log", "array", "failover", "roundrobin"
|
||||||
| "failover", "roundrobin"
|
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ return [
|
|||||||
'username' => env('MAIL_USERNAME'),
|
'username' => env('MAIL_USERNAME'),
|
||||||
'password' => env('MAIL_PASSWORD'),
|
'password' => env('MAIL_PASSWORD'),
|
||||||
'timeout' => null,
|
'timeout' => null,
|
||||||
'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
|
'local_domain' => env('MAIL_EHLO_DOMAIN'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'ses' => [
|
'ses' => [
|
||||||
@@ -61,10 +60,6 @@ return [
|
|||||||
// ],
|
// ],
|
||||||
],
|
],
|
||||||
|
|
||||||
'resend' => [
|
|
||||||
'transport' => 'resend',
|
|
||||||
],
|
|
||||||
|
|
||||||
'sendmail' => [
|
'sendmail' => [
|
||||||
'transport' => 'sendmail',
|
'transport' => 'sendmail',
|
||||||
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
|
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
|
||||||
@@ -87,14 +82,6 @@ return [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
'roundrobin' => [
|
|
||||||
'transport' => 'roundrobin',
|
|
||||||
'mailers' => [
|
|
||||||
'ses',
|
|
||||||
'postmark',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ return [
|
|||||||
|
|
||||||
'database' => [
|
'database' => [
|
||||||
'driver' => 'database',
|
'driver' => 'database',
|
||||||
'connection' => env('DB_QUEUE_CONNECTION'),
|
'connection' => env('DB_QUEUE_CONNECTION', null),
|
||||||
'table' => env('DB_QUEUE_TABLE', 'jobs'),
|
'table' => env('DB_QUEUE_TABLE', 'jobs'),
|
||||||
'queue' => env('DB_QUEUE', 'default'),
|
'queue' => env('DB_QUEUE', 'default'),
|
||||||
'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90),
|
'retry_after' => env('DB_QUEUE_RETRY_AFTER', 90),
|
||||||
'after_commit' => false,
|
'after_commit' => false,
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ return [
|
|||||||
'driver' => 'beanstalkd',
|
'driver' => 'beanstalkd',
|
||||||
'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'),
|
'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'),
|
||||||
'queue' => env('BEANSTALKD_QUEUE', 'default'),
|
'queue' => env('BEANSTALKD_QUEUE', 'default'),
|
||||||
'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90),
|
'retry_after' => env('BEANSTALKD_QUEUE_RETRY_AFTER', 90),
|
||||||
'block_for' => 0,
|
'block_for' => 0,
|
||||||
'after_commit' => false,
|
'after_commit' => false,
|
||||||
],
|
],
|
||||||
@@ -67,7 +67,7 @@ return [
|
|||||||
'driver' => 'redis',
|
'driver' => 'redis',
|
||||||
'connection' => env('REDIS_QUEUE_CONNECTION', 'default'),
|
'connection' => env('REDIS_QUEUE_CONNECTION', 'default'),
|
||||||
'queue' => env('REDIS_QUEUE', 'default'),
|
'queue' => env('REDIS_QUEUE', 'default'),
|
||||||
'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90),
|
'retry_after' => env('REDIS_QUEUE_RETRY_AFTER', 90),
|
||||||
'block_for' => null,
|
'block_for' => null,
|
||||||
'after_commit' => false,
|
'after_commit' => false,
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -24,10 +24,6 @@ return [
|
|||||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'resend' => [
|
|
||||||
'key' => env('RESEND_KEY'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'slack' => [
|
'slack' => [
|
||||||
'notifications' => [
|
'notifications' => [
|
||||||
'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
|
'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ return [
|
|||||||
| the framework. Typically, you should not need to change this value
|
| the framework. Typically, you should not need to change this value
|
||||||
| since doing so does not grant a meaningful security improvement.
|
| since doing so does not grant a meaningful security improvement.
|
||||||
|
|
|
|
||||||
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'cookie' => env(
|
'cookie' => env(
|
||||||
|
|||||||
268
config/twitter.php
Normal file
268
config/twitter.php
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'word_nocopy' => [
|
||||||
|
'+ #',
|
||||||
|
'avec #',
|
||||||
|
'le #',
|
||||||
|
],
|
||||||
|
|
||||||
|
'word_special_comment' => [
|
||||||
|
'commenter avec',
|
||||||
|
'commentez avec',
|
||||||
|
'commente avec',
|
||||||
|
'commentez',
|
||||||
|
'commenter',
|
||||||
|
'commente',
|
||||||
|
'écrit',
|
||||||
|
'écrire',
|
||||||
|
'dites',
|
||||||
|
"réponds",
|
||||||
|
'répondez',
|
||||||
|
'réponder',
|
||||||
|
'repondre avec',
|
||||||
|
'précise',
|
||||||
|
'donne',
|
||||||
|
'dit',
|
||||||
|
'dites-nous',
|
||||||
|
'dis nous',
|
||||||
|
'dis-nous',
|
||||||
|
'dites nous',
|
||||||
|
'dites-nous',
|
||||||
|
'tweet #',
|
||||||
|
'quelle',
|
||||||
|
],
|
||||||
|
|
||||||
|
'word_comment' => [
|
||||||
|
'+ #',
|
||||||
|
'avec #',
|
||||||
|
'le #',
|
||||||
|
'mentionnez #',
|
||||||
|
'mentionne',
|
||||||
|
'mentionner',
|
||||||
|
'commente',
|
||||||
|
'comment',
|
||||||
|
'commentaire',
|
||||||
|
'commentant',
|
||||||
|
'écrit',
|
||||||
|
'écrire',
|
||||||
|
'dites',
|
||||||
|
'dis',
|
||||||
|
'cite',
|
||||||
|
'donne',
|
||||||
|
'tweet avec',
|
||||||
|
'tweetent avec',
|
||||||
|
'tweetent : avec',
|
||||||
|
'tweet : avec',
|
||||||
|
'hashtag',
|
||||||
|
'répond',
|
||||||
|
'indique',
|
||||||
|
'tweet avec',
|
||||||
|
],
|
||||||
|
|
||||||
|
'word_tag' => [
|
||||||
|
'invit',
|
||||||
|
'mention',
|
||||||
|
'tag',
|
||||||
|
'#tag',
|
||||||
|
'identif',
|
||||||
|
'désign',
|
||||||
|
'@ un',
|
||||||
|
'@ une',
|
||||||
|
'@ tes',
|
||||||
|
'@ 1',
|
||||||
|
'@ deux',
|
||||||
|
'@ 2',
|
||||||
|
'@ plusieurs',
|
||||||
|
],
|
||||||
|
|
||||||
|
'one_people_list' => [
|
||||||
|
"@ un",
|
||||||
|
"@ 1",
|
||||||
|
"tag un",
|
||||||
|
"tag a",
|
||||||
|
"tag 1",
|
||||||
|
"tag ton",
|
||||||
|
"tag ton",
|
||||||
|
"tag ta",
|
||||||
|
"tag la",
|
||||||
|
"un ami",
|
||||||
|
"un copain",
|
||||||
|
"une personne",
|
||||||
|
"la personne",
|
||||||
|
"un pote",
|
||||||
|
"1 pote",
|
||||||
|
"1 ami",
|
||||||
|
"1 copain",
|
||||||
|
"1 personne",
|
||||||
|
"un(e) ami(e)",
|
||||||
|
"un.e ami.e",
|
||||||
|
"quelqu'un",
|
||||||
|
"un fan",
|
||||||
|
"1 fan",
|
||||||
|
"un(e) pote",
|
||||||
|
"un(e) pote"
|
||||||
|
],
|
||||||
|
|
||||||
|
'two_people_list' => [
|
||||||
|
"tag deux",
|
||||||
|
"tag 2",
|
||||||
|
"@ deux",
|
||||||
|
"@ 2",
|
||||||
|
"2 amis",
|
||||||
|
"2 ami(e)s",
|
||||||
|
"2 ami",
|
||||||
|
"2 personnes",
|
||||||
|
"2 potes",
|
||||||
|
"deux amis",
|
||||||
|
"deux ami(e)s",
|
||||||
|
"deux ami",
|
||||||
|
"deux personnes",
|
||||||
|
"deux potes"
|
||||||
|
],
|
||||||
|
|
||||||
|
'three_or_more_people_list' => [
|
||||||
|
"3 amis",
|
||||||
|
"3 ami(e)s",
|
||||||
|
"3 ami",
|
||||||
|
"3 personnes",
|
||||||
|
"3 potes",
|
||||||
|
"trois amis",
|
||||||
|
"trois ami(e)s",
|
||||||
|
"trois ami",
|
||||||
|
"trois personnes",
|
||||||
|
"trois potes",
|
||||||
|
"tes amis",
|
||||||
|
"des amis",
|
||||||
|
"tes potes",
|
||||||
|
"des potes"
|
||||||
|
],
|
||||||
|
|
||||||
|
'sentence_for_tag' => [
|
||||||
|
"J'invite : ",
|
||||||
|
"Merci ! je tag : ",
|
||||||
|
"Je tag : ",
|
||||||
|
"Hop Hop, j'invite : ",
|
||||||
|
"Avec moi : ",
|
||||||
|
"Help me : ",
|
||||||
|
"Pour vous aussi les gars : ",
|
||||||
|
"tentez votre chance ! ",
|
||||||
|
"Je tente ma chance ! J'espère que je vais gagner ! ",
|
||||||
|
"J'espère que vais gagner ! ",
|
||||||
|
"Merci pour le concours ! Essayez aussi : ",
|
||||||
|
"Que la chance soit avec moi ! et vous ",
|
||||||
|
"Merci d'organiser ce concours ! Ça peut vous intéresser ",
|
||||||
|
"On croise les doigts ! vous aussi ",
|
||||||
|
"C'est pour vous ça ! : ",
|
||||||
|
"Celui là on le gagne ",
|
||||||
|
"J'espère que vais gagner ! On participe ! ",
|
||||||
|
"Merci d'organiser ce concours ! ",
|
||||||
|
"Bonne chance à tous ! ",
|
||||||
|
"J'adore les concours et je sais que vous aussi ",
|
||||||
|
"J'ai tellement envie de gagner, essayez vous aussi ",
|
||||||
|
"Je participe et j'invite ",
|
||||||
|
"Bonjour je participe avec plaisir. Merci pour ce concours et bonne journée ! ",
|
||||||
|
"Merci beaucoup j'adore votre compte. Je vous souhaite une belle continuation. J'invite ",
|
||||||
|
"Bonjour je participe avec plaisir à ce super concours et j'invite ",
|
||||||
|
"Superbe ! Je tente ma chance bien volontiers et j'invite ",
|
||||||
|
"Chouette bonjour je participe avec plaisir avec ",
|
||||||
|
"Bonjour je tente ma chance avec ",
|
||||||
|
"Bonjour, Je tente ma chance bien volontiers et j'invite ",
|
||||||
|
"Merci beaucoup pour ce super concours, je tague ",
|
||||||
|
"Bonjour génial ! Je tente ma chance et j'identifie ",
|
||||||
|
"Merci ! J'invite ",
|
||||||
|
"Hello !!! Merci beaucoup je tente ma chance merci et bonne journée ! Je tague ",
|
||||||
|
"Bonjour je participe avec plaisir pour ce beau cadeau et j'invite ",
|
||||||
|
"Bonjour et merci pour ce super concours :) j'invite ",
|
||||||
|
"Bonjour, trop Sympa ce concours. Essayez-vous aussi ",
|
||||||
|
"Je tag mes amis ",
|
||||||
|
"On tente encore et encore ",
|
||||||
|
"Je tente ma chance aux côtés de ",
|
||||||
|
"Ça vous intéressent ? ",
|
||||||
|
"Qu'est ce que vous en pensez ? Allez participez-vous aussi ",
|
||||||
|
"Let's go, je suis sûr qu'on va gagner cette fois :) "
|
||||||
|
],
|
||||||
|
|
||||||
|
'sentence_for_random_comment' => [
|
||||||
|
"Merci ! ",
|
||||||
|
"Je participe ",
|
||||||
|
"Hop Hop ",
|
||||||
|
"Que la force soit avec moi ",
|
||||||
|
"Je tente ma chance ! J'espère que je vais gagner ! ",
|
||||||
|
"J'espère que vais gagner ! ",
|
||||||
|
"Merci pour le concours ! ",
|
||||||
|
"Que la chance soit avec moi ! ",
|
||||||
|
"Merci d'organiser ce concours ! ",
|
||||||
|
"On croise les doigts ! ",
|
||||||
|
"C'est pour moi ça ! ",
|
||||||
|
"Celui là on le gagne ",
|
||||||
|
"J'espère que vais gagner ! Je participe ! ",
|
||||||
|
"Merci d'organiser ce concours ! ",
|
||||||
|
"Bonne chance à tous ! ",
|
||||||
|
"J'adore les concours et surtout celui-ci ",
|
||||||
|
"J'ai tellement envie de gagner ",
|
||||||
|
"Bonjour je participe avec plaisir. Merci pour ce concours et bonne journée ! ",
|
||||||
|
"Merci beaucoup pour j'adore votre compte. Je vous souhaite une belle continuation ",
|
||||||
|
"Bonjour je participe avec plaisir à ce super concours ",
|
||||||
|
"Superbe ! Je tente ma chance bien volontiers ",
|
||||||
|
"Chouette bonjour je participe avec plaisir ",
|
||||||
|
"Bonjour je tente ma chance ",
|
||||||
|
"Bonjour, Je tente ma chance bien volontiers ",
|
||||||
|
"Merci beaucoup pour ce super concours ",
|
||||||
|
"Bonjour génial ! Je tente ma chance ",
|
||||||
|
"Hello !!! Merci beaucoup je tente ma chance ",
|
||||||
|
"Bonjour je participe avec plaisir pour ce beau cadeau ",
|
||||||
|
"Bonjour et merci pour ce super concours :) ",
|
||||||
|
"Bonjour, trop Sympa ce concours. ",
|
||||||
|
"On tente encore et encore ",
|
||||||
|
"Je tente ma chance même si je risque de ne pas gagner ",
|
||||||
|
"Ça vous intéresse ? ",
|
||||||
|
"Let's go, je suis sûr qu'on va gagner cette fois :) "
|
||||||
|
],
|
||||||
|
|
||||||
|
'hashtag_to_blacklist' => [
|
||||||
|
"#giveaway",
|
||||||
|
"#concours",
|
||||||
|
"#rt",
|
||||||
|
"#follow",
|
||||||
|
"#jeuconcours",
|
||||||
|
"#jeu",
|
||||||
|
"#jeux",
|
||||||
|
"#cadeau",
|
||||||
|
"#cadeaux",
|
||||||
|
"#concour",
|
||||||
|
"#giveway",
|
||||||
|
"#tweet",
|
||||||
|
"#commente",
|
||||||
|
"#followers",
|
||||||
|
"#follower",
|
||||||
|
"#twitter",
|
||||||
|
"#tag",
|
||||||
|
"#jeuxconcours",
|
||||||
|
"#giveawayalert",
|
||||||
|
"#retweet",
|
||||||
|
"#mentionne",
|
||||||
|
"#kdo",
|
||||||
|
"#gratuit",
|
||||||
|
"#cadeaunoel",
|
||||||
|
"#annonce",
|
||||||
|
"#noel",
|
||||||
|
"#joyeuxnoel"
|
||||||
|
],
|
||||||
|
|
||||||
|
'giveaway_to_blacklist' => [
|
||||||
|
"nude",
|
||||||
|
'nft',
|
||||||
|
"anal",
|
||||||
|
"sex",
|
||||||
|
"sorare",
|
||||||
|
"freebet",
|
||||||
|
"mint",
|
||||||
|
"freemint",
|
||||||
|
'paysafecard',
|
||||||
|
'prompt',
|
||||||
|
'freebets',
|
||||||
|
'rtbf'
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Laravel\Fortify\Fortify;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::table('users', function (Blueprint $table) {
|
|
||||||
$table->text('two_factor_secret')
|
|
||||||
->after('password')
|
|
||||||
->nullable();
|
|
||||||
|
|
||||||
$table->text('two_factor_recovery_codes')
|
|
||||||
->after('two_factor_secret')
|
|
||||||
->nullable();
|
|
||||||
|
|
||||||
if (Fortify::confirmsTwoFactorAuthentication()) {
|
|
||||||
$table->timestamp('two_factor_confirmed_at')
|
|
||||||
->after('two_factor_recovery_codes')
|
|
||||||
->nullable();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::table('users', function (Blueprint $table) {
|
|
||||||
$table->dropColumn(array_merge([
|
|
||||||
'two_factor_secret',
|
|
||||||
'two_factor_recovery_codes',
|
|
||||||
], Fortify::confirmsTwoFactorAuthentication() ? [
|
|
||||||
'two_factor_confirmed_at',
|
|
||||||
] : []));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Laravel\Fortify\Fortify;
|
|
||||||
|
|
||||||
return new class extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
|
||||||
{
|
|
||||||
Schema::table('users', function (Blueprint $table) {
|
|
||||||
$table->text('two_factor_secret')
|
|
||||||
->after('password')
|
|
||||||
->nullable();
|
|
||||||
|
|
||||||
$table->text('two_factor_recovery_codes')
|
|
||||||
->after('two_factor_secret')
|
|
||||||
->nullable();
|
|
||||||
|
|
||||||
if (Fortify::confirmsTwoFactorAuthentication()) {
|
|
||||||
$table->timestamp('two_factor_confirmed_at')
|
|
||||||
->after('two_factor_recovery_codes')
|
|
||||||
->nullable();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
|
||||||
{
|
|
||||||
Schema::table('users', function (Blueprint $table) {
|
|
||||||
$table->dropColumn(array_merge([
|
|
||||||
'two_factor_secret',
|
|
||||||
'two_factor_recovery_codes',
|
|
||||||
], Fortify::confirmsTwoFactorAuthentication() ? [
|
|
||||||
'two_factor_confirmed_at',
|
|
||||||
] : []));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
5802
package-lock.json
generated
5802
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
17
package.json
17
package.json
@@ -2,23 +2,24 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vite build",
|
"dev": "vite",
|
||||||
"dev": "vite"
|
"build": "vite build"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@popperjs/core": "^2.11.2",
|
"@popperjs/core": "^2.11.2",
|
||||||
"autoprefixer": "^10.4.20",
|
"axios": "^1.6.4",
|
||||||
"axios": "^1.7.4",
|
|
||||||
"bootstrap": "^5.1.3",
|
"bootstrap": "^5.1.3",
|
||||||
"concurrently": "^9.0.1",
|
|
||||||
"laravel-vite-plugin": "^1.0",
|
"laravel-vite-plugin": "^1.0",
|
||||||
"postcss": "^8.4.47",
|
"resolve-url-loader": "^5.0.0",
|
||||||
"resolve-url-loader": "^2.3.1",
|
|
||||||
"sass": "^1.32.11",
|
"sass": "^1.32.11",
|
||||||
"sass-loader": "^11.0.1",
|
"sass-loader": "^11.0.1",
|
||||||
"tailwindcss": "^3.4.13",
|
|
||||||
"vite": "^5.0",
|
"vite": "^5.0",
|
||||||
"vue": "^3.2.31",
|
"vue": "^3.2.31",
|
||||||
"vue-loader": "^16.2.0"
|
"vue-loader": "^16.2.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@popperjs/core": "^2.11.8",
|
||||||
|
"bootstrap": "5.3.3",
|
||||||
|
"simplebar": "^6.2.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
export default {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
User-agent: *
|
User-agent: *
|
||||||
Disallow:
|
Disallow: /
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="container">
|
|
||||||
<div class="row justify-content-center">
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">Example Component</div>
|
|
||||||
|
|
||||||
<div class="card-body">
|
|
||||||
I'm an example component.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { onMounted } from "vue"
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
console.log('Component mounted.')
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
@@ -1,60 +1,67 @@
|
|||||||
@extends('layouts.auth')
|
@extends('layouts.auth')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="max-w-464-px mx-auto w-100">
|
<!-- Header -->
|
||||||
<div>
|
<div class="mb-3 text-center">
|
||||||
<a href="/" class="mb-40 max-w-290-px">
|
<a class="fw-bold fs-1" href="/">
|
||||||
<img src="{{ asset('assets/images/logo.png') }}" alt="">
|
<img src="{{url('/')}}/media/logo.png" class="img-fluid mx-auto">
|
||||||
</a>
|
</a>
|
||||||
<h4 class="mb-12">Se Connecter</h4>
|
<p class="text-uppercase fw-bold fs-sm text-muted">Se connecter!</p>
|
||||||
<p class="mb-32 text-secondary-light text-lg">Prêt à tout dechirer !</p>
|
</div>
|
||||||
</div>
|
<!-- END Header -->
|
||||||
@if (session('status'))
|
<div class="row g-0 justify-content-center">
|
||||||
<div class="alert alert-success" role="alert">
|
<div class="col-sm-8 col-xl-6">
|
||||||
{{ session('status') }}
|
<form class="js-validation-signin" method="POST" action="{{ route('login') }}" novalidate="novalidate">
|
||||||
</div>
|
@csrf
|
||||||
@endif
|
|
||||||
<form method="POST" action="{{ route('login') }}">
|
<div class="mb-3">
|
||||||
@csrf
|
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror"
|
||||||
<div class="icon-field mb-16">
|
name="email" value="{{ old('email') }}" required autocomplete="email" autofocus placeholder="Email">
|
||||||
<span class="icon top-50 translate-middle-y">
|
|
||||||
<iconify-icon icon="mage:email"></iconify-icon>
|
@error('email')
|
||||||
</span>
|
<span class="invalid-feedback" role="alert">
|
||||||
<input id="email" type="email" class="form-control h-56-px bg-neutral-50 radius-12 @error('email') is-invalid @enderror"
|
<strong>{{ $message }}</strong>
|
||||||
name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="Email" autofocus>
|
</span>
|
||||||
</div>
|
@enderror
|
||||||
@error('email')
|
|
||||||
<span class="alert alert-danger bg-danger-100 text-danger-600 border-danger-100 px-24 py-11 text-lg radius-8 d-flex align-items-center justify-content-between" role="alert">
|
|
||||||
<strong>{{ $message }}</strong>
|
|
||||||
</span>
|
|
||||||
@enderror
|
|
||||||
<div class="position-relative mb-20">
|
|
||||||
<div class="icon-field">
|
|
||||||
<span class="icon top-50 translate-middle-y">
|
|
||||||
<iconify-icon icon="solar:lock-password-outline"></iconify-icon>
|
|
||||||
</span>
|
|
||||||
<input id="password" type="password"
|
|
||||||
class="form-control h-56-px bg-neutral-50 radius-12 @error('password') is-invalid @enderror" name="password "
|
|
||||||
required autocomplete="current-password">
|
|
||||||
</div>
|
</div>
|
||||||
<span class="toggle-password ri-eye-line cursor-pointer position-absolute end-0 top-50 translate-middle-y me-16 text-secondary-light" data-toggle="#your-password"></span>
|
|
||||||
</div>
|
<div class="mb-3">
|
||||||
@error('password')
|
<input id="password" type="password"
|
||||||
<span class="alert alert-danger bg-danger-100 text-danger-600 border-danger-100 px-24 py-11 text-lg radius-8 d-flex align-items-center justify-content-between" role="alert">
|
class="form-control @error('password') is-invalid @enderror" name="password"
|
||||||
<strong>{{ $message }}</strong>
|
required autocomplete="current-password" placeholder="Mot de passe">
|
||||||
</span>
|
|
||||||
@enderror
|
@error('password')
|
||||||
<div class="">
|
<span class="invalid-feedback" role="alert">
|
||||||
<div class="d-flex justify-content-between gap-2">
|
<strong>{{ $message }}</strong>
|
||||||
<div class="form-check style-check d-flex align-items-center">
|
</span>
|
||||||
<input class="form-check-input border border-neutral-300" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
|
@enderror
|
||||||
<label class="form-check-label" for="remember">Se seouvenir de moi </label>
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" name="remember" id="remember"
|
||||||
|
{{ old('remember') ? 'checked' : '' }}>
|
||||||
|
|
||||||
|
<label class="form-check-label" for="remember">
|
||||||
|
Se souvenir de moi
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<button type="submit" class="btn w-100 btn-lg btn-hero btn-primary mb-3">Connexion
|
||||||
|
</button>
|
||||||
<button type="submit" class="btn btn-primary text-sm btn-sm px-12 py-16 w-100 radius-12 mt-32"> Connexion</button>
|
<p class="text-center">
|
||||||
|
<a href="/forgot-password" class="text-black">
|
||||||
</form>
|
<i class="fa fa-key opacity-50 me-1"></i> Mot de passe oublié ?
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<div class="mb-4">
|
||||||
|
<p class="mt-3 mb-0 d-lg-flex justify-content-lg-between text-center">
|
||||||
|
<a class="btn btn-sm btn-alt-secondary d-block d-lg-inline-block m-2" href="/">
|
||||||
|
<i class="fa fa-rotate-back opacity-50 me-1"></i> Revenir à MyX
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.auth')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|||||||
66
resources/views/history.blade.php
Normal file
66
resources/views/history.blade.php
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="bg-body-light">
|
||||||
|
<div class="content content-full">
|
||||||
|
<div class="d-flex flex-column flex-sm-row justify-content-sm-between align-items-sm-center">
|
||||||
|
<h1 class="flex-grow-1 fs-3 fw-semibold my-2 my-sm-3">Historique des participations</h1>
|
||||||
|
<nav class="flex-shrink-0 my-2 my-sm-0 ms-sm-3" aria-label="breadcrumb">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
@foreach($contests as $contest)
|
||||||
|
<div class="col-md-6 my-2">
|
||||||
|
<a class="block block-rounded block-link-pop" href="{{$contest->url}}" target="_blank">
|
||||||
|
@if(isset($contest->picture))
|
||||||
|
<div class="block-content pb-8 bg-image" style="background-image: url('{{$contest->picture}}');">
|
||||||
|
@if($contest->participated)
|
||||||
|
<span class="badge bg-danger fw-bold p-2 text-uppercase">
|
||||||
|
Participé
|
||||||
|
</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
<div class="block-content text-center">
|
||||||
|
<h4 class="mb-1">{{$contest->name}}</h4>
|
||||||
|
<p class="fs-sm">
|
||||||
|
Fin le <span class="text-primary"> {{ \Carbon\Carbon::parse($contest->fin)->format('d/m/y') }}</span>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{!! $contest->description !!}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="block-content block-content-full bg-body-light">
|
||||||
|
<div class="row g-0 fs-sm text-center">
|
||||||
|
<div class="col-4">
|
||||||
|
<span class="text-muted fw-semibold">
|
||||||
|
<i class="fa fa-fw fa-heart opacity-50 me-1"></i> {{$contest->nblike}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-4">
|
||||||
|
<span class="text-muted fw-semibold">
|
||||||
|
<i class="fa fa-retweet fa-heart opacity-50 me-1"></i> {{$contest->nbreply}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-4">
|
||||||
|
<span class="text-muted fw-semibold">
|
||||||
|
<i class="fa fa-reply fa-comments opacity-50 me-1"></i> {{$contest->nbtweet}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
<div class="mb-3">
|
||||||
|
{!! $contests->links() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
26
resources/views/index.blade.php
Normal file
26
resources/views/index.blade.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="bg-body-light">
|
||||||
|
<div class="content content-full">
|
||||||
|
<div class="d-flex flex-column flex-sm-row justify-content-sm-between align-items-sm-center">
|
||||||
|
<h1 class="flex-grow-1 fs-3 fw-semibold my-2 my-sm-3">Liste des concours</h1>
|
||||||
|
<nav class="flex-shrink-0 my-2 my-sm-0 ms-sm-3" aria-label="breadcrumb">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="row">
|
||||||
|
@foreach($contests as $contest)
|
||||||
|
<livewire:contest :contest="$contest">
|
||||||
|
@endforeach
|
||||||
|
<div class="mb-3">
|
||||||
|
{!! $contests->links() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
@@ -1,88 +1,138 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
|
<meta name="robots" content="noindex, nofollow">
|
||||||
|
|
||||||
<!-- CSRF Token -->
|
<!-- CSRF Token -->
|
||||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
|
|
||||||
<title>{{ config('app.name', 'Laravel') }}</title>
|
<link rel="shortcut icon" href="{{url('/')}}/media/favicons/favicon.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="{{url('/')}}/media/favicons/apple-touch-icon-180x180.png">
|
||||||
|
|
||||||
<!-- Scripts -->
|
{!! SEO::generate(true) !!}
|
||||||
<script src="{{ asset('js/app.js') }}" defer></script>
|
|
||||||
|
|
||||||
<!-- Fonts -->
|
<!-- Modules -->
|
||||||
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
@yield('css')
|
||||||
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
|
@vite(['resources/sass/main.scss', 'resources/js/dashmix/app.js'])
|
||||||
|
<script src="{{ asset('js/setTheme.js') }}"></script>
|
||||||
<!-- Styles -->
|
@yield('js')
|
||||||
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
|
@livewireStyles
|
||||||
|
@laravelPWA
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app">
|
<div id="page-container" class="sidebar-o sidebar-dark enable-page-overlay side-scroll page-header-fixed main-content-narrow">
|
||||||
<nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
|
<nav id="sidebar" aria-label="Main Navigation">
|
||||||
<div class="container">
|
<div class="smini-hidden">
|
||||||
<a class="navbar-brand" href="{{ url('/') }}">
|
<div class="content-header justify-content-lg-center bg-white">
|
||||||
{{ config('app.name', 'Laravel') }}
|
<a class="fw-semibold text-white tracking-wide" href="/">
|
||||||
|
<img src="{{url('/')}}/media/logo.png" width="100px" class="img-fluid mx-auto d-none d-md-block" alt="Logo MyX">
|
||||||
</a>
|
</a>
|
||||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
|
<div class="d-lg-none">
|
||||||
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
|
<button type="button" class="btn btn-sm btn-alt-secondary d-lg-none" data-toggle="layout" data-action="sidebar_close">
|
||||||
aria-label="{{ __('Toggle navigation') }}">
|
<i class="fa fa-times-circle"></i>
|
||||||
<span class="navbar-toggler-icon"></span>
|
</button>
|
||||||
</button>
|
|
||||||
|
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
|
||||||
<!-- Left Side Of Navbar -->
|
|
||||||
<ul class="navbar-nav me-auto">
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- Right Side Of Navbar -->
|
|
||||||
<ul class="navbar-nav ms-auto">
|
|
||||||
<!-- Authentication Links -->
|
|
||||||
@guest
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
|
|
||||||
</li>
|
|
||||||
@if (Route::has('register'))
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
@else
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button"
|
|
||||||
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
{{ Auth::user()->name }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
|
|
||||||
<a href="{{ route('profile.edit') }}" class="dropdown-item">
|
|
||||||
{{ __('Profile') }}
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item" href="{{ route('logout') }}" onclick="event.preventDefault();
|
|
||||||
document.getElementById('logout-form').submit();">
|
|
||||||
{{ __('Logout') }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
|
|
||||||
@csrf
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endguest
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</div>
|
||||||
|
<div class="js-sidebar-scroll">
|
||||||
<main class="py-4">
|
<div class="smini-hidden">
|
||||||
@yield('content')
|
<div class="content-side content-side-full bg-black-10 d-flex align-items-center">
|
||||||
</main>
|
<a class="img-link d-inline-block">
|
||||||
</div>
|
<img class="img-avatar img-avatar48 img-avatar-thumb" src="{{url('/')}}/media/avatars/avatar8.jpg" alt="">
|
||||||
|
</a>
|
||||||
|
<div class="ms-3">
|
||||||
|
<a class="fw-semibold text-dual">{{ucfirst(Auth::user()->name)}}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content-side">
|
||||||
|
<ul class="nav-main">
|
||||||
|
<li class="nav-main-item">
|
||||||
|
<a class="nav-main-link" href="/">
|
||||||
|
<i class="nav-main-link-icon fa fa-gauge"></i>
|
||||||
|
<span class="nav-main-link-name">Dashboard</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-main-item">
|
||||||
|
<a class="nav-main-link" href="#">
|
||||||
|
<i class="nav-main-link-icon fa fa-users"></i>
|
||||||
|
<span class="nav-main-link-name">Accounts</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-main-item">
|
||||||
|
<a class="nav-main-link" href="/history">
|
||||||
|
<i class="nav-main-link-icon fa fa-chart-line"></i>
|
||||||
|
<span class="nav-main-link-name">Historique</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-main-item">
|
||||||
|
<a class="nav-main-link" href="/nova" target="_blank">
|
||||||
|
<i class="nav-main-link-icon fa fa-toolbox"></i>
|
||||||
|
<span class="nav-main-link-name">Nova</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<header id="page-header">
|
||||||
|
<div class="content-header">
|
||||||
|
<div class="row g-0 align-items-center w-100">
|
||||||
|
<div class="col-5">
|
||||||
|
<button type="button" class="btn btn-alt-secondary" data-toggle="layout" data-action="sidebar_toggle">
|
||||||
|
<i class="fa fa-fw fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-2 text-center">
|
||||||
|
<a href="/">
|
||||||
|
<img src="{{url('/')}}/media/logo.png" class="img-fluid mx-auto d-md-none d-sm-block" alt="Logo MyX">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-5 text-end">
|
||||||
|
<div class="dropdown d-inline-block">
|
||||||
|
<button type="button" class="btn btn-sm btn-alt-primary ms-1 mx-2" id="page-header-user-dropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<i class="far fa-fw fa-user-circle"></i>
|
||||||
|
<i class="fa fa-fw fa-angle-down ms-1 d-none d-sm-inline-block"></i>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-end p-0" aria-labelledby="page-header-user-dropdown">
|
||||||
|
<div class="p-2">
|
||||||
|
{{ucfirst(Auth::user()->name)}}
|
||||||
|
<div role="separator" class="dropdown-divider"></div>
|
||||||
|
<a class="dropdown-item" href="/profile">
|
||||||
|
<i class="far fa-fw fa-user me-1"></i> Mon compte
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="/history">
|
||||||
|
<i class="fa-solid fa-chart-line me-1"></i> Historique
|
||||||
|
</a>
|
||||||
|
<div role="separator" class="dropdown-divider"></div>
|
||||||
|
<a class="dropdown-item" href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
||||||
|
<i class="far fa-fw fa-arrow-alt-circle-left me-1"></i> Déconnexion
|
||||||
|
</a>
|
||||||
|
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
|
||||||
|
@csrf
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main id="main-container">
|
||||||
|
@yield('content')
|
||||||
|
</main>
|
||||||
|
<footer id="page-footer" class="bg-body-extra-light">
|
||||||
|
<div class="content py-3">
|
||||||
|
<div class="row fs-sm">
|
||||||
|
<div class="col-sm-6 order-sm-1 py-1 text-center text-sm-start">
|
||||||
|
Copyright © <span data-toggle="year-copy"></span> <b>MyX</b>. Tous droits réservés
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
@livewireScripts
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,101 +1,51 @@
|
|||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html lang="fr" data-theme="light">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="icon" type="image/png" href="{{ asset('assets/images/favicon.png') }}" sizes="16x16">
|
<meta name="robots" content="noindex, nofollow">
|
||||||
<!-- remix icon font css -->
|
<!-- CSRF Token -->
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/remixicon.css') }}">
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
<!-- BootStrap css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/bootstrap.min.css') }}">
|
|
||||||
<!-- Apex Chart css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/apexcharts.css') }}">
|
|
||||||
<!-- Data Table css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/dataTables.min.css') }}">
|
|
||||||
<!-- Text Editor css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/editor-katex.min.css') }}">
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/editor.atom-one-dark.min.css') }}">
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/editor.quill.snow.css') }}">
|
|
||||||
<!-- Date picker css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/flatpickr.min.css') }}">
|
|
||||||
<!-- Calendar css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/full-calendar.css') }}">
|
|
||||||
<!-- Vector Map css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/jquery-jvectormap-2.0.5.css') }}">
|
|
||||||
<!-- Popup css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/magnific-popup.css') }}">
|
|
||||||
<!-- Slick Slider css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/slick.css') }}">
|
|
||||||
<!-- prism css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/prism.css') }}">
|
|
||||||
<!-- file upload css -->
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/file-upload.css') }}">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/lib/audioplayer.css') }}">
|
<link rel="shortcut icon" href="{{url('/')}}/media/favicons/favicon.png">
|
||||||
<!-- main css -->
|
<link rel="icon" type="image/png" sizes="192x192" href="{{url('/')}}/media/favicons/favicon-192x192.png">
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
|
<link rel="apple-touch-icon" sizes="180x180" href="{{url('/')}}/media/favicons/apple-touch-icon-180x180.png">
|
||||||
|
|
||||||
|
{!! SEO::generate(true) !!}
|
||||||
|
|
||||||
|
<!-- Modules -->
|
||||||
|
@yield('css')
|
||||||
|
@vite(['resources/sass/main.scss', 'resources/js/dashmix/app.js'])
|
||||||
|
<script src="{{ asset('js/setTheme.js') }}"></script>
|
||||||
|
@yield('js')
|
||||||
|
@laravelPWA
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
<div id="page-container">
|
||||||
|
<!-- Main Container -->
|
||||||
|
<main id="main-container">
|
||||||
|
<!-- Page Content -->
|
||||||
|
<div class="bg-image" style="background-image: url('{{url('/')}}/media/photos/twitter.jpg');">
|
||||||
|
<div class="row g-0 bg-primary-op">
|
||||||
|
<!-- Meta Info Section -->
|
||||||
|
<div class="hero-static col-md-8 d-none d-md-flex align-items-md-center justify-content-md-center text-md-center">
|
||||||
|
<div class="p-5 text-center w-100">
|
||||||
|
|
||||||
<section class="auth bg-base d-flex flex-wrap">
|
</div>
|
||||||
<div class="auth-left d-lg-block d-none">
|
</div>
|
||||||
<div class="d-flex align-items-center flex-column h-100 justify-content-center">
|
<!-- END Meta Info Section -->
|
||||||
<img src="{{ asset('assets/images/auth/auth-img.png') }}" alt="">
|
<!-- Main Section -->
|
||||||
|
<div class="hero-static col-md-4 d-flex align-items-center bg-body-extra-light">
|
||||||
|
<div class="p-3 w-100">
|
||||||
|
@yield('content')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- END Main Section -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!-- END Page Content -->
|
||||||
<div class="auth-right py-32 px-24 d-flex flex-column justify-content-center">
|
</main>
|
||||||
@yield('content')
|
<!-- END Main Container -->
|
||||||
</div>
|
</div>
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- jQuery library js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/jquery-3.7.1.min.js') }}"></script>
|
|
||||||
<!-- Bootstrap js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/bootstrap.bundle.min.js') }}"></script>
|
|
||||||
<!-- Apex Chart js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/apexcharts.min.js') }}"></script>
|
|
||||||
<!-- Data Table js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/dataTables.min.js') }}"></script>
|
|
||||||
<!-- Iconify Font js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/iconify-icon.min.js') }}"></script>
|
|
||||||
<!-- jQuery UI js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/jquery-ui.min.js') }}"></script>
|
|
||||||
<!-- Vector Map js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/jquery-jvectormap-2.0.5.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/js/lib/jquery-jvectormap-world-mill-en.js') }}"></script>
|
|
||||||
<!-- Popup js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/magnifc-popup.min.js') }}"></script>
|
|
||||||
<!-- Slick Slider js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/slick.min.js') }}"></script>
|
|
||||||
<!-- prism js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/prism.js') }}"></script>
|
|
||||||
<!-- file upload js -->
|
|
||||||
<script src="{{ asset('assets/js/lib/file-upload.js') }}"></script>
|
|
||||||
<!-- audioplayer -->
|
|
||||||
<script src="{{ asset('assets/js/lib/audioplayer.js') }}"></script>
|
|
||||||
|
|
||||||
<!-- main js -->
|
|
||||||
<script src="{{ asset('assets/js/app.js') }}"></script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// ================== Password Show Hide Js Start ==========
|
|
||||||
function initializePasswordToggle(toggleSelector) {
|
|
||||||
$(toggleSelector).on('click', function() {
|
|
||||||
$(this).toggleClass("ri-eye-off-line");
|
|
||||||
var input = $($(this).attr("data-toggle"));
|
|
||||||
if (input.attr("type") === "password") {
|
|
||||||
input.attr("type", "text");
|
|
||||||
} else {
|
|
||||||
input.attr("type", "password");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// Call the function
|
|
||||||
initializePasswordToggle('.toggle-password');
|
|
||||||
// ========================= Password Show Hide Js End ===========================
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
|
|
||||||
<title>Laravel</title>
|
|
||||||
|
|
||||||
<!-- Fonts -->
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Styles -->
|
|
||||||
<style>
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
background-color: #fff;
|
|
||||||
color: #636b6f;
|
|
||||||
font-family: 'Nunito', sans-serif;
|
|
||||||
font-weight: 200;
|
|
||||||
height: 100vh;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.full-height {
|
|
||||||
height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-center {
|
|
||||||
align-items: center;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.position-ref {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-right {
|
|
||||||
position: absolute;
|
|
||||||
right: 10px;
|
|
||||||
top: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
font-size: 84px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.links>a {
|
|
||||||
color: #636b6f;
|
|
||||||
padding: 0 25px;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: 600;
|
|
||||||
letter-spacing: .1rem;
|
|
||||||
text-decoration: none;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.m-b-md {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="flex-center position-ref full-height">
|
|
||||||
@if (Route::has('login'))
|
|
||||||
<div class="top-right links">
|
|
||||||
@auth
|
|
||||||
<a href="{{ url('/home') }}">Home</a>
|
|
||||||
@else
|
|
||||||
<a href="{{ route('login') }}">Login</a>
|
|
||||||
|
|
||||||
@if (Route::has('register'))
|
|
||||||
<a href="{{ route('register') }}">Register</a>
|
|
||||||
@endif
|
|
||||||
@endauth
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
<div class="title m-b-md">
|
|
||||||
Laravel
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="links">
|
|
||||||
<a href="https://laravel.com/docs">Docs</a>
|
|
||||||
<a href="https://laracasts.com">Laracasts</a>
|
|
||||||
<a href="https://laravel-news.com">News</a>
|
|
||||||
<a href="https://blog.laravel.com">Blog</a>
|
|
||||||
<a href="https://nova.laravel.com">Nova</a>
|
|
||||||
<a href="https://forge.laravel.com">Forge</a>
|
|
||||||
<a href="https://vapor.laravel.com">Vapor</a>
|
|
||||||
<a href="https://github.com/laravel/laravel">GitHub</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
@@ -1,15 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Http\Controllers\AccountController;
|
||||||
|
use App\Http\Controllers\BotController;
|
||||||
|
use App\Http\Controllers\ContestController;
|
||||||
|
use App\Http\Controllers\HomeController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
Route::get('/', function () {
|
// Example Routes
|
||||||
return view('welcome');
|
Route::get('/', [HomeController::class, 'index'])->middleware(['auth']);
|
||||||
});
|
Route::get('/history', [HomeController::class, 'history'])->middleware(['auth']);
|
||||||
|
|
||||||
Route::view('home', 'home')
|
|
||||||
->name('home')
|
|
||||||
->middleware(['auth']);
|
|
||||||
|
|
||||||
Route::view('profile', 'profile.edit')
|
Route::view('profile', 'profile.edit')
|
||||||
->name('profile.edit')
|
->name('profile.edit')
|
||||||
->middleware(['auth']);
|
->middleware(['auth']);
|
||||||
|
|
||||||
|
Route::get('/aplifier/list', [ContestController::class, 'twitterlist']);
|
||||||
|
Route::get('/aplifier/search', [ContestController::class, 'searchcontest']);
|
||||||
|
|
||||||
|
Route::get('/unread/{user}', [\App\Http\Controllers\APIController::class, 'unread']);
|
||||||
|
|
||||||
|
|||||||
1
storage/app/.gitignore
vendored
1
storage/app/.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
*
|
*
|
||||||
!private/
|
|
||||||
!public/
|
!public/
|
||||||
!.gitignore
|
!.gitignore
|
||||||
|
|||||||
2
storage/app/private/.gitignore
vendored
2
storage/app/private/.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
import defaultTheme from 'tailwindcss/defaultTheme';
|
|
||||||
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
export default {
|
|
||||||
content: [
|
|
||||||
'./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
|
|
||||||
'./storage/framework/views/*.php',
|
|
||||||
'./resources/**/*.blade.php',
|
|
||||||
'./resources/**/*.js',
|
|
||||||
'./resources/**/*.vue',
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
fontFamily: {
|
|
||||||
sans: ['Figtree', ...defaultTheme.fontFamily.sans],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [],
|
|
||||||
};
|
|
||||||
@@ -4,7 +4,20 @@ import laravel from 'laravel-vite-plugin';
|
|||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
laravel({
|
laravel({
|
||||||
input: ['resources/css/app.css', 'resources/js/app.js'],
|
input: [
|
||||||
|
'resources/sass/main.scss',
|
||||||
|
'resources/sass/dashmix/themes/xeco.scss',
|
||||||
|
'resources/sass/dashmix/themes/xinspire.scss',
|
||||||
|
'resources/sass/dashmix/themes/xmodern.scss',
|
||||||
|
'resources/sass/dashmix/themes/xsmooth.scss',
|
||||||
|
'resources/sass/dashmix/themes/xwork.scss',
|
||||||
|
'resources/sass/dashmix/themes/xdream.scss',
|
||||||
|
'resources/sass/dashmix/themes/xpro.scss',
|
||||||
|
'resources/sass/dashmix/themes/xplay.scss',
|
||||||
|
'resources/js/dashmix/app.js',
|
||||||
|
'resources/js/app.js',
|
||||||
|
'resources/js/pages/datatables.js',
|
||||||
|
],
|
||||||
refresh: true,
|
refresh: true,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user