Selaa lähdekoodia

presentation slide categorie home page

Besma 2 vuotta sitten
vanhempi
commit
c5eeb41caa
100 muutettua tiedostoa jossa 688 lisäystä ja 28313 poistoa
  1. 3 0
      .editorconfig
  2. 9 3
      .env.example
  3. 8 3
      .gitattributes
  4. 3 0
      .gitignore
  5. 2 2
      .styleci.yml
  6. 0 2
      .vscode/settings.json
  7. 7 4
      README.md
  8. 0 9
      app/Console/Kernel.php
  9. 7 3
      app/Exceptions/Handler.php
  10. 40 0
      app/Http/Controllers/Auth/ConfirmPasswordController.php
  11. 22 0
      app/Http/Controllers/Auth/ForgotPasswordController.php
  12. 40 0
      app/Http/Controllers/Auth/LoginController.php
  13. 73 0
      app/Http/Controllers/Auth/RegisterController.php
  14. 30 0
      app/Http/Controllers/Auth/ResetPasswordController.php
  15. 42 0
      app/Http/Controllers/Auth/VerificationController.php
  16. 28 0
      app/Http/Controllers/HomeController.php
  17. 88 0
      app/Http/Controllers/backend/CategorieController.php
  18. 61 7
      app/Http/Controllers/backend/PresentationController.php
  19. 116 0
      app/Http/Controllers/backend/ProduitController.php
  20. 7 6
      app/Http/Controllers/backend/SlideController.php
  21. 6 1
      app/Http/Controllers/frontend/HomeController.php
  22. 4 3
      app/Http/Kernel.php
  23. 1 1
      app/Http/Middleware/EncryptCookies.php
  24. 1 1
      app/Http/Middleware/PreventRequestsDuringMaintenance.php
  25. 5 4
      app/Http/Middleware/RedirectIfAuthenticated.php
  26. 2 1
      app/Http/Middleware/TrimStrings.php
  27. 1 1
      app/Http/Middleware/TrustHosts.php
  28. 8 3
      app/Http/Middleware/TrustProxies.php
  29. 1 1
      app/Http/Middleware/VerifyCsrfToken.php
  30. 0 26
      app/Http/Traits/PresentationTrait.php
  31. 13 0
      app/Models/Categorie.php
  32. 5 0
      app/Models/Presentation.php
  33. 19 0
      app/Models/Produit.php
  34. 12 8
      app/Models/User.php
  35. 4 4
      app/Providers/AppServiceProvider.php
  36. 2 2
      app/Providers/AuthServiceProvider.php
  37. 11 1
      app/Providers/EventServiceProvider.php
  38. 6 4
      app/Providers/RouteServiceProvider.php
  39. 1 1
      artisan
  40. 0 597
      assets/css2/nucleo-icons.css
  41. 0 135
      assets/css2/nucleo-svg.css
  42. 0 26680
      assets/css2/soft-ui-dashboard.css
  43. 0 348
      assets/css2/soft-ui-dashboard.css.map
  44. 0 26
      assets/css2/soft-ui-dashboard.min.css
  45. BIN
      assets/fonts2/nucleo-icons.eot
  46. 0 312
      assets/fonts2/nucleo-icons.svg
  47. BIN
      assets/fonts2/nucleo-icons.ttf
  48. BIN
      assets/fonts2/nucleo-icons.woff
  49. BIN
      assets/fonts2/nucleo-icons.woff2
  50. BIN
      assets/fonts2/nucleo.eot
  51. BIN
      assets/fonts2/nucleo.ttf
  52. BIN
      assets/fonts2/nucleo.woff
  53. BIN
      assets/fonts2/nucleo.woff2
  54. BIN
      assets/img2/apple-icon.png
  55. BIN
      assets/img2/bg1.jpg
  56. BIN
      assets/img2/bruce-mars.jpg
  57. BIN
      assets/img2/curved-images/curved-10.jpg
  58. BIN
      assets/img2/curved-images/curved-11.jpg
  59. BIN
      assets/img2/curved-images/curved-6.jpg
  60. BIN
      assets/img2/curved-images/curved-8.jpg
  61. BIN
      assets/img2/curved-images/curved0.jpg
  62. BIN
      assets/img2/curved-images/curved1.jpg
  63. BIN
      assets/img2/curved-images/curved10.jpg
  64. BIN
      assets/img2/curved-images/curved11-small.jpg
  65. BIN
      assets/img2/curved-images/curved11.jpg
  66. BIN
      assets/img2/curved-images/curved12.jpg
  67. BIN
      assets/img2/curved-images/curved13.jpg
  68. BIN
      assets/img2/curved-images/curved14.jpg
  69. BIN
      assets/img2/curved-images/curved19.jpg
  70. BIN
      assets/img2/curved-images/curved2.jpg
  71. BIN
      assets/img2/curved-images/curved21.jpg
  72. BIN
      assets/img2/curved-images/curved3.jpg
  73. BIN
      assets/img2/curved-images/curved4.jpg
  74. BIN
      assets/img2/curved-images/curved5-small.jpg
  75. BIN
      assets/img2/curved-images/curved5.jpg
  76. BIN
      assets/img2/curved-images/curved6-small.jpg
  77. BIN
      assets/img2/curved-images/curved6.jpg
  78. BIN
      assets/img2/curved-images/curved7.jpg
  79. BIN
      assets/img2/curved-images/curved8.jpg
  80. BIN
      assets/img2/curved-images/curved9.jpg
  81. BIN
      assets/img2/curved-images/white-curved.jpg
  82. 0 11
      assets/img2/down-arrow-dark.svg
  83. 0 1
      assets/img2/down-arrow-white.svg
  84. 0 11
      assets/img2/down-arrow.svg
  85. BIN
      assets/img2/favicon.png
  86. BIN
      assets/img2/home-decor-1.jpg
  87. BIN
      assets/img2/home-decor-2.jpg
  88. BIN
      assets/img2/home-decor-3.jpg
  89. BIN
      assets/img2/illustrations/rocket-dark.png
  90. BIN
      assets/img2/illustrations/rocket-white.png
  91. BIN
      assets/img2/ivana-square.jpg
  92. BIN
      assets/img2/ivancik.jpg
  93. BIN
      assets/img2/kal-visuals-square.jpg
  94. BIN
      assets/img2/logo-ct-dark.png
  95. BIN
      assets/img2/logo-ct.png
  96. BIN
      assets/img2/logos/mastercard.png
  97. BIN
      assets/img2/logos/visa.png
  98. BIN
      assets/img2/marie.jpg
  99. 0 91
      assets/img2/shapes/pattern-lines.svg
  100. 0 0
      assets/img2/shapes/shape-1.svg

+ 3 - 0
.editorconfig

@@ -13,3 +13,6 @@ trim_trailing_whitespace = false
 
 [*.{yml,yaml}]
 indent_size = 2
+
+[docker-compose.yml]
+indent_size = 4

+ 9 - 3
.env.example

@@ -5,6 +5,8 @@ APP_DEBUG=true
 APP_URL=http://localhost
 
 LOG_CHANNEL=stack
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
 
 DB_CONNECTION=mysql
 DB_HOST=127.0.0.1
@@ -15,27 +17,31 @@ DB_PASSWORD=
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=file
+FILESYSTEM_DISK=local
 QUEUE_CONNECTION=sync
 SESSION_DRIVER=file
 SESSION_LIFETIME=120
 
+MEMCACHED_HOST=127.0.0.1
+
 REDIS_HOST=127.0.0.1
 REDIS_PASSWORD=null
 REDIS_PORT=6379
 
 MAIL_MAILER=smtp
-MAIL_HOST=smtp.mailtrap.io
-MAIL_PORT=2525
+MAIL_HOST=mailhog
+MAIL_PORT=1025
 MAIL_USERNAME=null
 MAIL_PASSWORD=null
 MAIL_ENCRYPTION=null
-MAIL_FROM_ADDRESS=null
+MAIL_FROM_ADDRESS="hello@example.com"
 MAIL_FROM_NAME="${APP_NAME}"
 
 AWS_ACCESS_KEY_ID=
 AWS_SECRET_ACCESS_KEY=
 AWS_DEFAULT_REGION=us-east-1
 AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
 
 PUSHER_APP_ID=
 PUSHER_APP_KEY=

+ 8 - 3
.gitattributes

@@ -1,5 +1,10 @@
 * text=auto
-*.css linguist-vendored
-*.scss linguist-vendored
-*.js linguist-vendored
+
+*.blade.php diff=html
+*.css diff=css
+*.html diff=html
+*.md diff=markdown
+*.php diff=php
+
+/.github export-ignore
 CHANGELOG.md export-ignore

+ 3 - 0
.gitignore

@@ -6,7 +6,10 @@
 .env
 .env.backup
 .phpunit.result.cache
+docker-compose.override.yml
 Homestead.json
 Homestead.yaml
 npm-debug.log
 yarn-error.log
+/.idea
+/.vscode

+ 2 - 2
.styleci.yml

@@ -1,11 +1,11 @@
 php:
   preset: laravel
+  version: 8
   disabled:
-    - unused_use
+    - no_unused_imports
   finder:
     not-name:
       - index.php
-      - server.php
 js:
   finder:
     not-name:

+ 0 - 2
.vscode/settings.json

@@ -1,2 +0,0 @@
-{
-}

+ 7 - 4
README.md

@@ -2,9 +2,9 @@
 
 <p align="center">
 <a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
-<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/d/total.svg" alt="Total Downloads"></a>
-<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/v/stable.svg" alt="Latest Stable Version"></a>
-<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/license.svg" alt="License"></a>
+<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
+<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
+<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
 </p>
 
 ## About Laravel
@@ -25,7 +25,7 @@ Laravel is accessible, powerful, and provides tools required for large, robust a
 
 Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
 
-If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
+If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 2000 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
 
 ## Laravel Sponsors
 
@@ -42,7 +42,10 @@ We would like to extend our thanks to the following sponsors for funding Laravel
 - **[Many](https://www.many.co.uk)**
 - **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
 - **[DevSquad](https://devsquad.com)**
+- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
 - **[OP.GG](https://op.gg)**
+- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)**
+- **[Lendio](https://lendio.com)**
 
 ## Contributing
 

+ 0 - 9
app/Console/Kernel.php

@@ -7,15 +7,6 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
 
 class Kernel extends ConsoleKernel
 {
-    /**
-     * The Artisan commands provided by your application.
-     *
-     * @var array
-     */
-    protected $commands = [
-        //
-    ];
-
     /**
      * Define the application's command schedule.
      *

+ 7 - 3
app/Exceptions/Handler.php

@@ -3,13 +3,14 @@
 namespace App\Exceptions;
 
 use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
+use Throwable;
 
 class Handler extends ExceptionHandler
 {
     /**
      * A list of the exception types that are not reported.
      *
-     * @var array
+     * @var array<int, class-string<Throwable>>
      */
     protected $dontReport = [
         //
@@ -18,9 +19,10 @@ class Handler extends ExceptionHandler
     /**
      * A list of the inputs that are never flashed for validation exceptions.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $dontFlash = [
+        'current_password',
         'password',
         'password_confirmation',
     ];
@@ -32,6 +34,8 @@ class Handler extends ExceptionHandler
      */
     public function register()
     {
-        //
+        $this->reportable(function (Throwable $e) {
+            //
+        });
     }
 }

+ 40 - 0
app/Http/Controllers/Auth/ConfirmPasswordController.php

@@ -0,0 +1,40 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use App\Providers\RouteServiceProvider;
+use Illuminate\Foundation\Auth\ConfirmsPasswords;
+
+class ConfirmPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Confirm Password Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password confirmations and
+    | uses a simple trait to include the behavior. You're free to explore
+    | this trait and override any functions that require customization.
+    |
+    */
+
+    use ConfirmsPasswords;
+
+    /**
+     * Where to redirect users when the intended url fails.
+     *
+     * @var string
+     */
+    protected $redirectTo = RouteServiceProvider::HOME;
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('auth');
+    }
+}

+ 22 - 0
app/Http/Controllers/Auth/ForgotPasswordController.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
+
+class ForgotPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset emails and
+    | includes a trait which assists in sending these notifications from
+    | your application to your users. Feel free to explore this trait.
+    |
+    */
+
+    use SendsPasswordResetEmails;
+}

+ 40 - 0
app/Http/Controllers/Auth/LoginController.php

@@ -0,0 +1,40 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use App\Providers\RouteServiceProvider;
+use Illuminate\Foundation\Auth\AuthenticatesUsers;
+
+class LoginController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Login Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller handles authenticating users for the application and
+    | redirecting them to your home screen. The controller uses a trait
+    | to conveniently provide its functionality to your applications.
+    |
+    */
+
+    use AuthenticatesUsers;
+
+    /**
+     * Where to redirect users after login.
+     *
+     * @var string
+     */
+    protected $redirectTo = RouteServiceProvider::HOME;
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest')->except('logout');
+    }
+}

+ 73 - 0
app/Http/Controllers/Auth/RegisterController.php

@@ -0,0 +1,73 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use App\Providers\RouteServiceProvider;
+use App\Models\User;
+use Illuminate\Foundation\Auth\RegistersUsers;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Validator;
+
+class RegisterController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Register Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller handles the registration of new users as well as their
+    | validation and creation. By default this controller uses a trait to
+    | provide this functionality without requiring any additional code.
+    |
+    */
+
+    use RegistersUsers;
+
+    /**
+     * Where to redirect users after registration.
+     *
+     * @var string
+     */
+    protected $redirectTo = RouteServiceProvider::HOME;
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('guest');
+    }
+
+    /**
+     * Get a validator for an incoming registration request.
+     *
+     * @param  array  $data
+     * @return \Illuminate\Contracts\Validation\Validator
+     */
+    protected function validator(array $data)
+    {
+        return Validator::make($data, [
+            'name' => ['required', 'string', 'max:255'],
+            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
+            'password' => ['required', 'string', 'min:8', 'confirmed'],
+        ]);
+    }
+
+    /**
+     * Create a new user instance after a valid registration.
+     *
+     * @param  array  $data
+     * @return \App\Models\User
+     */
+    protected function create(array $data)
+    {
+        return User::create([
+            'name' => $data['name'],
+            'email' => $data['email'],
+            'password' => Hash::make($data['password']),
+        ]);
+    }
+}

+ 30 - 0
app/Http/Controllers/Auth/ResetPasswordController.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use App\Providers\RouteServiceProvider;
+use Illuminate\Foundation\Auth\ResetsPasswords;
+
+class ResetPasswordController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset requests
+    | and uses a simple trait to include this behavior. You're free to
+    | explore this trait and override any methods you wish to tweak.
+    |
+    */
+
+    use ResetsPasswords;
+
+    /**
+     * Where to redirect users after resetting their password.
+     *
+     * @var string
+     */
+    protected $redirectTo = RouteServiceProvider::HOME;
+}

+ 42 - 0
app/Http/Controllers/Auth/VerificationController.php

@@ -0,0 +1,42 @@
+<?php
+
+namespace App\Http\Controllers\Auth;
+
+use App\Http\Controllers\Controller;
+use App\Providers\RouteServiceProvider;
+use Illuminate\Foundation\Auth\VerifiesEmails;
+
+class VerificationController extends Controller
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Email Verification Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling email verification for any
+    | user that recently registered with the application. Emails may also
+    | be re-sent if the user didn't receive the original email message.
+    |
+    */
+
+    use VerifiesEmails;
+
+    /**
+     * Where to redirect users after verification.
+     *
+     * @var string
+     */
+    protected $redirectTo = RouteServiceProvider::HOME;
+
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('auth');
+        $this->middleware('signed')->only('verify');
+        $this->middleware('throttle:6,1')->only('verify', 'resend');
+    }
+}

+ 28 - 0
app/Http/Controllers/HomeController.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+
+class HomeController extends Controller
+{
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('auth');
+    }
+
+    /**
+     * Show the application dashboard.
+     *
+     * @return \Illuminate\Contracts\Support\Renderable
+     */
+    public function index()
+    {
+        return view('home');
+    }
+}

+ 88 - 0
app/Http/Controllers/backend/CategorieController.php

@@ -0,0 +1,88 @@
+<?php
+
+namespace App\Http\Controllers\backend;
+use App\Http\Controllers\Controller;
+use Illuminate\Http\Request;
+use App\Models\Categorie;
+use Illuminate\Support\Facades\Storage;
+
+
+
+class CategorieController extends Controller
+{
+    public function Index(){
+        $articles = Categorie::get();
+
+        return view("backend.category.index",compact('articles'));
+     }
+
+
+     public function create(){
+        return view('backend.category.add');
+       } 
+     public function store( Request $request){
+   
+        $article= new Categorie();
+        $article->nom = $request->input('nom');
+        
+        if($request->hasFile('image')){
+            $article->image = $request->image->store('image');
+           }
+           
+           $article->save();
+           return redirect('categories');
+   
+    }
+    
+    public function show($id){
+        $article=Categorie::find($id);
+
+        return view('backend.category.show',['article'=>$article]);
+    }
+
+    
+    
+    public function edit($id) {
+        $article = Categorie::find($id);
+        return view('backend.category.edit',['article'=>$article]);
+
+    }
+    public function update(Request $request, $id) {
+       
+        $article = Categorie::find($id);
+        $article->nom = $request->input('nom');
+
+        if($request->hasFile('image')){
+            $article->image = $request->image->store('image');
+              if ($request->image) {
+           Storage::delete('public/' . $request->image);
+                }
+                  else {
+           $article->image = $request->image->store('image');
+           }
+          } 
+          
+
+          $article->created_at = \Carbon\Carbon::now();
+        $article->save();
+        return redirect ('categories');
+    }
+
+    public function destroy(Request $request, $id){
+
+        $article = Categorie::find($id);
+        $article->delete();
+
+        return back();
+    }
+    public function changeStatus(Request $request)
+    {
+        $article = Categorie::find($request->Id);
+        $article->etat = $request->etat;
+        $article->save();
+  
+        return response()->json(['success'=>'Status change successfully.']);
+    }
+
+
+}

+ 61 - 7
app/Http/Controllers/backend/PresentationController.php

@@ -73,6 +73,8 @@ class PresentationController extends Controller
         $article->titre = $request->input('titre');
 
         $article->texte = $request->input('texte');
+        $article->details = $request->input('details');
+
           $article->created_at = \Carbon\Carbon::now();
         $article->save();
         return redirect ('presentations');
@@ -88,13 +90,15 @@ class PresentationController extends Controller
         request()->validate([
             'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
        ]);
-        $article = Presentation::find($id);
-        
-        if($request->hasFile('image')){
-         $article->image = $request->image->store('image');
-        }
-        
-        $article->save();
+
+       $article = Presentation::find($id);
+
+       if($request->hasFile('image')){
+        $article->image = $request->image->store('image');
+       }
+       
+       $article->save();
+      
         return back()->with('success', 'Image Upload successfully');
 
     }
@@ -111,6 +115,7 @@ class PresentationController extends Controller
             return back()->with("success", "Image deleted successfully.");
     
         }
+
         public function destroyP(Request $request, $id){
 
             $article = Presentation::find($id);
@@ -119,8 +124,57 @@ class PresentationController extends Controller
             return back();
         }
         
+        public function editDetails($id) {
+            $article = Presentation::find($id);
+            return view('backend.presentation.extensions.details',['article'=>$article]);
+        } 
+
         
+       public function updateDetails(Request $request, $id) {
 
+        
+        $article = Presentation::find($id);
+        $article->details = $request->input('details');
+        
+        
+        $article->save();
+        return redirect ('presentations');
+
+
+    }
+    public function editVideo($id) {
+        $article = Presentation::find($id);
+        return view('backend.presentation.extensions.videos',['article'=>$article]);
+    } 
+      public function uploadVideo(Request $request, $id)
+            {
+            $this->validate($request, [
+               
+                'videos' => 'required|file|mimetypes:video/mp4',
+            ]);
+                     $article = Presentation::find($id);
+
+            if ($request->hasFile('videos'))
+             {
+                $path = $request->file('videos')->store('videos');
+                $article->videos = $path;
+            }
+            $article->save();
+            
+        }
+
+        public function deleteVideo(Request $request) {
+
+            $article = Presentation::find($request->id);
+            Storage::disk('public')->delete($article->videos);
+            Presentation::where('videos', $article->videos)->update(['videos' => (new \App\Models\Presentation)->defaultVideo()]);
+            // unlink("storage/".$presentation->image);
+    
+            // Presentation::select("image", $presentation->image)->delete();
+    
+            return back()->with("success", "Video deleted successfully.");
+    
+        }
         public function test(Request $request, $id){
 
             $presentation = Presentation::find($request->presentationId);

+ 116 - 0
app/Http/Controllers/backend/ProduitController.php

@@ -0,0 +1,116 @@
+<?php
+
+namespace App\Http\Controllers\backend;
+use App\Http\Controllers\Controller;
+use Illuminate\Http\Request;
+use App\Models\Produit;
+use App\Models\Categorie;
+
+use Illuminate\Support\Facades\Storage;
+
+class ProduitController extends Controller
+{
+    public function Index(){
+        $articles = Produit::with('categorie')->get();
+
+
+        return view("backend.produit.index",compact('articles'));
+     }
+
+     public function create(){
+        
+        $categories = Categorie::select('nom', 'id')->oldest('nom')->get();
+        
+
+        return view('backend.produit.add',compact('categories'));
+       } 
+     public function store( Request $request){
+   
+        $article= new Produit();
+        $article->nom = $request->input('nom');
+        $article->category_id = $request->input('categorie');
+
+        $article->description = $request->input('description');
+
+        
+        if($request->hasFile('image')){
+            $article->image = $request->image->store('image');
+           }
+           
+           $article->save();
+           return redirect('produits');
+   
+    }
+
+    
+    public function show($id){
+        $article=Produit::find($id);
+
+        return view('backend.produit.show',['article'=>$article]);
+    }
+
+
+    
+    public function edit($id) {
+        $article = Produit::find($id);
+        $categories = Categorie::select('nom', 'id')->oldest('nom')->get();
+
+        return view('backend.produit.edit',['article'=>$article],compact('categories'));
+
+    }
+    public function update(Request $request, $id) {
+       
+        $article = Produit::find($id);
+        $article->nom = $request->input('nom');
+        $article->category_id = $request->input('categorie');
+
+        $article->description = $request->input('description');
+
+        if($request->hasFile('image')){
+            $article->image = $request->image->store('image');
+              if ($request->image) {
+           Storage::delete('public/' . $request->image);
+                }
+                  else {
+           $article->image = $request->image->store('image');
+           }
+          } 
+          $article->created_at = \Carbon\Carbon::now();
+        $article->save();
+        return redirect ('produits');
+    }
+
+    
+    public function diapo($id) {
+        $article = Produit::find($id);
+        return view('backend.produit.extension.diapo',['article'=>$article]);
+    } 
+
+    public function updateDiapo(Request $request, $id) {
+
+    //     request()->validate([
+    //         'diapo' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
+    //    ]);
+        
+       
+    
+        $article = [];
+        if($request->hasfile('diapo'))
+         {
+            foreach($request->file('diapo') as $article)
+            {
+                $name=$article->getClientOriginalName();
+                $article->move(public_path().'storage/files/', $name);  
+                $data[] = $name;    
+            }
+         }
+  
+         $article= Produit::find($id);
+         $article->diapo=json_encode($data);
+         $article->diapo = $article;
+         $article->save();
+        return back()->with('success', 'Image Upload successfully');
+
+    }
+    
+}

+ 7 - 6
app/Http/Controllers/backend/SlideController.php

@@ -21,9 +21,9 @@ class SlideController extends Controller
     } 
 
     public function store( Request $request){
-        request()->validate([
-            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
-       ]);
+    //     request()->validate([
+    //         'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
+    //    ]);
         $article= new Slide();
         $article->titre = $request->input('titre');
         if($request->hasFile('image')){
@@ -31,7 +31,7 @@ class SlideController extends Controller
            }
            
            $article->save();
-           return back()->with('success', 'Image Upload successfully');
+           return redirect('slides');
    
     }
     public function show($id){
@@ -56,10 +56,11 @@ class SlideController extends Controller
               if ($request->image) {
            Storage::delete('public/' . $request->image);
                 }
-          } 
-          else {
+                  else {
            $article->image = $request->image->store('image');
            }
+          } 
+          
 
           $article->created_at = \Carbon\Carbon::now();
         $article->save();

+ 6 - 1
app/Http/Controllers/frontend/HomeController.php

@@ -6,6 +6,9 @@ use App\Http\Controllers\Controller;
 use Illuminate\Http\Request;
 use App\Models\Presentation;
 use App\Models\Slide;
+use App\Models\Categorie;
+use App\Models\Produit;
+
 
 class HomeController extends Controller
 {
@@ -14,10 +17,12 @@ class HomeController extends Controller
         
         $slides = slide::where('etat','1')->get();
        
+        $categories = Categorie::where('etat','1')->get();
         
+        $produits = Produit::where('etat','0')->get();
        
 
         
-        return view('frontend.home',compact('presentations','slides'));
+        return view('frontend.home',compact('presentations','slides','categories','produits'));
     } 
 }

+ 4 - 3
app/Http/Kernel.php

@@ -11,7 +11,7 @@ class Kernel extends HttpKernel
      *
      * These middleware are run during every request to your application.
      *
-     * @var array
+     * @var array<int, class-string|string>
      */
     protected $middleware = [
         // \App\Http\Middleware\TrustHosts::class,
@@ -26,7 +26,7 @@ class Kernel extends HttpKernel
     /**
      * The application's route middleware groups.
      *
-     * @var array
+     * @var array<string, array<int, class-string|string>>
      */
     protected $middlewareGroups = [
         'web' => [
@@ -40,6 +40,7 @@ class Kernel extends HttpKernel
         ],
 
         'api' => [
+            // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
             'throttle:api',
             \Illuminate\Routing\Middleware\SubstituteBindings::class,
         ],
@@ -50,7 +51,7 @@ class Kernel extends HttpKernel
      *
      * These middleware may be assigned to groups or used individually.
      *
-     * @var array
+     * @var array<string, class-string|string>
      */
     protected $routeMiddleware = [
         'auth' => \App\Http\Middleware\Authenticate::class,

+ 1 - 1
app/Http/Middleware/EncryptCookies.php

@@ -9,7 +9,7 @@ class EncryptCookies extends Middleware
     /**
      * The names of the cookies that should not be encrypted.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $except = [
         //

+ 1 - 1
app/Http/Middleware/PreventRequestsDuringMaintenance.php

@@ -9,7 +9,7 @@ class PreventRequestsDuringMaintenance extends Middleware
     /**
      * The URIs that should be reachable while maintenance mode is enabled.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $except = [
         //

+ 5 - 4
app/Http/Middleware/RedirectIfAuthenticated.php

@@ -4,6 +4,7 @@ namespace App\Http\Middleware;
 
 use App\Providers\RouteServiceProvider;
 use Closure;
+use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
 
 class RedirectIfAuthenticated
@@ -12,11 +13,11 @@ class RedirectIfAuthenticated
      * Handle an incoming request.
      *
      * @param  \Illuminate\Http\Request  $request
-     * @param  \Closure  $next
-     * @param  string[]|null  ...$guards
-     * @return mixed
+     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
+     * @param  string|null  ...$guards
+     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
      */
-    public function handle($request, Closure $next, ...$guards)
+    public function handle(Request $request, Closure $next, ...$guards)
     {
         $guards = empty($guards) ? [null] : $guards;
 

+ 2 - 1
app/Http/Middleware/TrimStrings.php

@@ -9,9 +9,10 @@ class TrimStrings extends Middleware
     /**
      * The names of the attributes that should not be trimmed.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $except = [
+        'current_password',
         'password',
         'password_confirmation',
     ];

+ 1 - 1
app/Http/Middleware/TrustHosts.php

@@ -9,7 +9,7 @@ class TrustHosts extends Middleware
     /**
      * Get the host patterns that should be trusted.
      *
-     * @return array
+     * @return array<int, string|null>
      */
     public function hosts()
     {

+ 8 - 3
app/Http/Middleware/TrustProxies.php

@@ -2,7 +2,7 @@
 
 namespace App\Http\Middleware;
 
-use Fideloper\Proxy\TrustProxies as Middleware;
+use Illuminate\Http\Middleware\TrustProxies as Middleware;
 use Illuminate\Http\Request;
 
 class TrustProxies extends Middleware
@@ -10,7 +10,7 @@ class TrustProxies extends Middleware
     /**
      * The trusted proxies for this application.
      *
-     * @var array|string|null
+     * @var array<int, string>|string|null
      */
     protected $proxies;
 
@@ -19,5 +19,10 @@ class TrustProxies extends Middleware
      *
      * @var int
      */
-    protected $headers = Request::HEADER_X_FORWARDED_ALL;
+    protected $headers =
+        Request::HEADER_X_FORWARDED_FOR |
+        Request::HEADER_X_FORWARDED_HOST |
+        Request::HEADER_X_FORWARDED_PORT |
+        Request::HEADER_X_FORWARDED_PROTO |
+        Request::HEADER_X_FORWARDED_AWS_ELB;
 }

+ 1 - 1
app/Http/Middleware/VerifyCsrfToken.php

@@ -9,7 +9,7 @@ class VerifyCsrfToken extends Middleware
     /**
      * The URIs that should be excluded from CSRF verification.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $except = [
         //

+ 0 - 26
app/Http/Traits/PresentationTrait.php

@@ -1,26 +0,0 @@
-<?php
-                
- namespace App\Http\Traits;
- use App\Models\Presentation;
- trait PresentationTrait {
-                
-
-                
-  public function index() {
-                
-      $presentations = Presentation::all();
-      return view('backend.presentation.index')->with(compact('presentations'));
-    
-     }
-
-      public function Create(){
-
-       $presentation = Presentation::all();
-        if($presentation->isEmpty()){
-            return view('backend.presentation.add');
-        }else{
-            abort(404);
-        }
-     }
-                
-  }

+ 13 - 0
app/Models/Categorie.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\SoftDeletes;
+
+class Categorie extends Model
+{
+    use HasFactory, SoftDeletes;
+    protected $dates = ['deleted_at'];
+}

+ 5 - 0
app/Models/Presentation.php

@@ -14,4 +14,9 @@ class Presentation extends Model
     {
         return null;
     }
+
+    public function defaultVideo()
+    {
+        return null;
+    }
 }

+ 19 - 0
app/Models/Produit.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class Produit extends Model
+{
+    use HasFactory;
+
+    public function categorie()
+    {
+        return $this->belongsTo(Categorie::class,'category_id','id');
+    }
+
+   
+    
+}

+ 12 - 8
app/Models/User.php

@@ -6,33 +6,37 @@ use Illuminate\Contracts\Auth\MustVerifyEmail;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use Illuminate\Notifications\Notifiable;
+use Laravel\Sanctum\HasApiTokens;
 
 class User extends Authenticatable
 {
-    use HasFactory, Notifiable;
+    use HasApiTokens, HasFactory, Notifiable;
 
     /**
      * The attributes that are mass assignable.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $fillable = [
-        'name', 'email', 'password',
+        'name',
+        'email',
+        'password',
     ];
 
     /**
-     * The attributes that should be hidden for arrays.
+     * The attributes that should be hidden for serialization.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $hidden = [
-        'password', 'remember_token',
+        'password',
+        'remember_token',
     ];
 
     /**
-     * The attributes that should be cast to native types.
+     * The attributes that should be cast.
      *
-     * @var array
+     * @var array<string, string>
      */
     protected $casts = [
         'email_verified_at' => 'datetime',

+ 4 - 4
app/Providers/AppServiceProvider.php

@@ -1,9 +1,9 @@
 <?php
 
 namespace App\Providers;
+use Illuminate\Support\Facades\Schema;	
 
 use Illuminate\Support\ServiceProvider;
-use Illuminate\Support\Facades\Schema;	
 
 class AppServiceProvider extends ServiceProvider
 {
@@ -24,7 +24,7 @@ class AppServiceProvider extends ServiceProvider
      */
     public function boot()
     {
-      Schema::defaultStringLength(191); 
-
+        Schema::defaultStringLength(191); 
+        
     }
-}
+}

+ 2 - 2
app/Providers/AuthServiceProvider.php

@@ -10,10 +10,10 @@ class AuthServiceProvider extends ServiceProvider
     /**
      * The policy mappings for the application.
      *
-     * @var array
+     * @var array<class-string, class-string>
      */
     protected $policies = [
-        // 'App\Model' => 'App\Policies\ModelPolicy',
+        // 'App\Models\Model' => 'App\Policies\ModelPolicy',
     ];
 
     /**

+ 11 - 1
app/Providers/EventServiceProvider.php

@@ -12,7 +12,7 @@ class EventServiceProvider extends ServiceProvider
     /**
      * The event listener mappings for the application.
      *
-     * @var array
+     * @var array<class-string, array<int, class-string>>
      */
     protected $listen = [
         Registered::class => [
@@ -29,4 +29,14 @@ class EventServiceProvider extends ServiceProvider
     {
         //
     }
+
+    /**
+     * Determine if events and listeners should be automatically discovered.
+     *
+     * @return bool
+     */
+    public function shouldDiscoverEvents()
+    {
+        return false;
+    }
 }

+ 6 - 4
app/Providers/RouteServiceProvider.php

@@ -29,12 +29,14 @@ class RouteServiceProvider extends ServiceProvider
         $this->configureRateLimiting();
 
         $this->routes(function () {
-            Route::middleware('web')
-                ->group(base_path('routes/web.php'));
-
             Route::prefix('api')
                 ->middleware('api')
+                ->namespace($this->namespace)
                 ->group(base_path('routes/api.php'));
+
+            Route::middleware('web')
+                ->namespace($this->namespace)
+                ->group(base_path('routes/web.php'));
         });
     }
 
@@ -46,7 +48,7 @@ class RouteServiceProvider extends ServiceProvider
     protected function configureRateLimiting()
     {
         RateLimiter::for('api', function (Request $request) {
-            return Limit::perMinute(60);
+            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
         });
     }
 }

+ 1 - 1
artisan

@@ -11,7 +11,7 @@ define('LARAVEL_START', microtime(true));
 | Composer provides a convenient, automatically generated class loader
 | for our application. We just need to utilize it! We'll require it
 | into the script here so that we do not have to worry about the
-| loading of any our classes "manually". Feels great to relax.
+| loading of any of our classes manually. It's great to relax.
 |
 */
 

+ 0 - 597
assets/css2/nucleo-icons.css

@@ -1,597 +0,0 @@
-/*--------------------------------
-
-hermes-dashboard-icons Web Font - built using nucleoapp.com
-License - nucleoapp.com/license/
-
--------------------------------- */
-@font-face {
-  font-family: 'NucleoIcons';
-  src: url('../fonts/nucleo-icons.eot');
-  src: url('../fonts/nucleo-icons.eot') format('embedded-opentype'), url('../fonts/nucleo-icons.woff2') format('woff2'), url('../fonts/nucleo-icons.woff') format('woff'), url('../fonts/nucleo-icons.ttf') format('truetype'), url('../fonts/nucleo-icons.svg') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-/*------------------------
-    base class definition
--------------------------*/
-.ni {
-  display: inline-block;
-  font: normal normal normal 14px/1 NucleoIcons;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-/*------------------------
-  change icon size
--------------------------*/
-.ni-lg {
-  font-size: 1.33333333em;
-  line-height: 0.75em;
-  vertical-align: -15%;
-}
-
-.ni-2x {
-  font-size: 2em;
-}
-
-.ni-3x {
-  font-size: 3em;
-}
-
-.ni-4x {
-  font-size: 4em;
-}
-
-.ni-5x {
-  font-size: 5em;
-}
-
-/*----------------------------------
-  add a square/circle background
------------------------------------*/
-.ni.square,
-.ni.circle {
-  padding: 0.33333333em;
-  vertical-align: -16%;
-  background-color: #eee;
-}
-
-.ni.circle {
-  border-radius: 50%;
-}
-
-/*------------------------
-  list icons
--------------------------*/
-.ni-ul {
-  padding-left: 0;
-  margin-left: 2.14285714em;
-  list-style-type: none;
-}
-
-.ni-ul>li {
-  position: relative;
-}
-
-.ni-ul>li>.ni {
-  position: absolute;
-  left: -1.57142857em;
-  top: 0.14285714em;
-  text-align: center;
-}
-
-.ni-ul>li>.ni.lg {
-  top: 0;
-  left: -1.35714286em;
-}
-
-.ni-ul>li>.ni.circle,
-.ni-ul>li>.ni.square {
-  top: -0.19047619em;
-  left: -1.9047619em;
-}
-
-/*------------------------
-  spinning icons
--------------------------*/
-.ni.spin {
-  -webkit-animation: nc-spin 2s infinite linear;
-  -moz-animation: nc-spin 2s infinite linear;
-  animation: nc-spin 2s infinite linear;
-}
-
-@-webkit-keyframes nc-spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-  }
-
-  100% {
-    -webkit-transform: rotate(360deg);
-  }
-}
-
-@-moz-keyframes nc-spin {
-  0% {
-    -moz-transform: rotate(0deg);
-  }
-
-  100% {
-    -moz-transform: rotate(360deg);
-  }
-}
-
-@keyframes nc-spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    -moz-transform: rotate(0deg);
-    -ms-transform: rotate(0deg);
-    -o-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-
-  100% {
-    -webkit-transform: rotate(360deg);
-    -moz-transform: rotate(360deg);
-    -ms-transform: rotate(360deg);
-    -o-transform: rotate(360deg);
-    transform: rotate(360deg);
-  }
-}
-
-/*------------------------
-  rotated/flipped icons
--------------------------*/
-.ni.rotate-90 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  -webkit-transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  -o-transform: rotate(90deg);
-  transform: rotate(90deg);
-}
-
-.ni.rotate-180 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: rotate(180deg);
-  -moz-transform: rotate(180deg);
-  -ms-transform: rotate(180deg);
-  -o-transform: rotate(180deg);
-  transform: rotate(180deg);
-}
-
-.ni.rotate-270 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-  -webkit-transform: rotate(270deg);
-  -moz-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  -o-transform: rotate(270deg);
-  transform: rotate(270deg);
-}
-
-.ni.flip-y {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);
-  -webkit-transform: scale(-1, 1);
-  -moz-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  -o-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-
-.ni.flip-x {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: scale(1, -1);
-  -moz-transform: scale(1, -1);
-  -ms-transform: scale(1, -1);
-  -o-transform: scale(1, -1);
-  transform: scale(1, -1);
-}
-
-/*------------------------
-    font icons
--------------------------*/
-
-.ni-active-40::before {
-  content: "\ea02";
-}
-
-.ni-air-baloon::before {
-  content: "\ea03";
-}
-
-.ni-album-2::before {
-  content: "\ea04";
-}
-
-.ni-align-center::before {
-  content: "\ea05";
-}
-
-.ni-align-left-2::before {
-  content: "\ea06";
-}
-
-.ni-ambulance::before {
-  content: "\ea07";
-}
-
-.ni-app::before {
-  content: "\ea08";
-}
-
-.ni-archive-2::before {
-  content: "\ea09";
-}
-
-.ni-atom::before {
-  content: "\ea0a";
-}
-
-.ni-badge::before {
-  content: "\ea0b";
-}
-
-.ni-bag-17::before {
-  content: "\ea0c";
-}
-
-.ni-basket::before {
-  content: "\ea0d";
-}
-
-.ni-bell-55::before {
-  content: "\ea0e";
-}
-
-.ni-bold-down::before {
-  content: "\ea0f";
-}
-
-.ni-bold-left::before {
-  content: "\ea10";
-}
-
-.ni-bold-right::before {
-  content: "\ea11";
-}
-
-.ni-bold-up::before {
-  content: "\ea12";
-}
-
-.ni-bold::before {
-  content: "\ea13";
-}
-
-.ni-book-bookmark::before {
-  content: "\ea14";
-}
-
-.ni-books::before {
-  content: "\ea15";
-}
-
-.ni-box-2::before {
-  content: "\ea16";
-}
-
-.ni-briefcase-24::before {
-  content: "\ea17";
-}
-
-.ni-building::before {
-  content: "\ea18";
-}
-
-.ni-bulb-61::before {
-  content: "\ea19";
-}
-
-.ni-bullet-list-67::before {
-  content: "\ea1a";
-}
-
-.ni-bus-front-12::before {
-  content: "\ea1b";
-}
-
-.ni-button-pause::before {
-  content: "\ea1c";
-}
-
-.ni-button-play::before {
-  content: "\ea1d";
-}
-
-.ni-button-power::before {
-  content: "\ea1e";
-}
-
-.ni-calendar-grid-58::before {
-  content: "\ea1f";
-}
-
-.ni-camera-compact::before {
-  content: "\ea20";
-}
-
-.ni-caps-small::before {
-  content: "\ea21";
-}
-
-.ni-cart::before {
-  content: "\ea22";
-}
-
-.ni-chart-bar-32::before {
-  content: "\ea23";
-}
-
-.ni-chart-pie-35::before {
-  content: "\ea24";
-}
-
-.ni-chat-round::before {
-  content: "\ea25";
-}
-
-.ni-check-bold::before {
-  content: "\ea26";
-}
-
-.ni-circle-08::before {
-  content: "\ea27";
-}
-
-.ni-cloud-download-95::before {
-  content: "\ea28";
-}
-
-.ni-cloud-upload-96::before {
-  content: "\ea29";
-}
-
-.ni-compass-04::before {
-  content: "\ea2a";
-}
-
-.ni-controller::before {
-  content: "\ea2b";
-}
-
-.ni-credit-card::before {
-  content: "\ea2c";
-}
-
-.ni-curved-next::before {
-  content: "\ea2d";
-}
-
-.ni-delivery-fast::before {
-  content: "\ea2e";
-}
-
-.ni-diamond::before {
-  content: "\ea2f";
-}
-
-.ni-email-83::before {
-  content: "\ea30";
-}
-
-.ni-fat-add::before {
-  content: "\ea31";
-}
-
-.ni-fat-delete::before {
-  content: "\ea32";
-}
-
-.ni-fat-remove::before {
-  content: "\ea33";
-}
-
-.ni-favourite-28::before {
-  content: "\ea34";
-}
-
-.ni-folder-17::before {
-  content: "\ea35";
-}
-
-.ni-glasses-2::before {
-  content: "\ea36";
-}
-
-.ni-hat-3::before {
-  content: "\ea37";
-}
-
-.ni-headphones::before {
-  content: "\ea38";
-}
-
-.ni-html5::before {
-  content: "\ea39";
-}
-
-.ni-istanbul::before {
-  content: "\ea3a";
-}
-
-.ni-key-25::before {
-  content: "\ea3b";
-}
-
-.ni-laptop::before {
-  content: "\ea3c";
-}
-
-.ni-like-2::before {
-  content: "\ea3d";
-}
-
-.ni-lock-circle-open::before {
-  content: "\ea3e";
-}
-
-.ni-map-big::before {
-  content: "\ea3f";
-}
-
-.ni-mobile-button::before {
-  content: "\ea40";
-}
-
-.ni-money-coins::before {
-  content: "\ea41";
-}
-
-.ni-note-03::before {
-  content: "\ea42";
-}
-
-.ni-notification-70::before {
-  content: "\ea43";
-}
-
-.ni-palette::before {
-  content: "\ea44";
-}
-
-.ni-paper-diploma::before {
-  content: "\ea45";
-}
-
-.ni-pin-3::before {
-  content: "\ea46";
-}
-
-.ni-planet::before {
-  content: "\ea47";
-}
-
-.ni-ruler-pencil::before {
-  content: "\ea48";
-}
-
-.ni-satisfied::before {
-  content: "\ea49";
-}
-
-.ni-scissors::before {
-  content: "\ea4a";
-}
-
-.ni-send::before {
-  content: "\ea4b";
-}
-
-.ni-settings-gear-65::before {
-  content: "\ea4c";
-}
-
-.ni-settings::before {
-  content: "\ea4d";
-}
-
-.ni-single-02::before {
-  content: "\ea4e";
-}
-
-.ni-single-copy-04::before {
-  content: "\ea4f";
-}
-
-.ni-sound-wave::before {
-  content: "\ea50";
-}
-
-.ni-spaceship::before {
-  content: "\ea51";
-}
-
-.ni-square-pin::before {
-  content: "\ea52";
-}
-
-.ni-support-16::before {
-  content: "\ea53";
-}
-
-.ni-tablet-button::before {
-  content: "\ea54";
-}
-
-.ni-tag::before {
-  content: "\ea55";
-}
-
-.ni-tie-bow::before {
-  content: "\ea56";
-}
-
-.ni-time-alarm::before {
-  content: "\ea57";
-}
-
-.ni-trophy::before {
-  content: "\ea58";
-}
-
-.ni-tv-2::before {
-  content: "\ea59";
-}
-
-.ni-umbrella-13::before {
-  content: "\ea5a";
-}
-
-.ni-user-run::before {
-  content: "\ea5b";
-}
-
-.ni-vector::before {
-  content: "\ea5c";
-}
-
-.ni-watch-time::before {
-  content: "\ea5d";
-}
-
-.ni-world::before {
-  content: "\ea5e";
-}
-
-.ni-zoom-split-in::before {
-  content: "\ea5f";
-}
-
-.ni-collection::before {
-  content: "\ea60";
-}
-
-.ni-image::before {
-  content: "\ea61";
-}
-
-.ni-shop::before {
-  content: "\ea62";
-}
-
-.ni-ungroup::before {
-  content: "\ea63";
-}
-
-.ni-world-2::before {
-  content: "\ea64";
-}
-
-.ni-ui-04::before {
-  content: "\ea65";
-}
-
-
-/* all icon font classes list here */

+ 0 - 135
assets/css2/nucleo-svg.css

@@ -1,135 +0,0 @@
-/* Generated using nucleoapp.com */
-/* --------------------------------
-
-Icon colors
-
--------------------------------- */
-
-.icon {
-  display: inline-block;
-  /* icon primary color */
-  color: #111111;
-  height: 1em;
-  width: 1em;
-}
-
-.icon use {
-  /* icon secondary color - fill */
-  fill: #7ea6f6;
-}
-
-.icon.icon-outline use {
-  /* icon secondary color - stroke */
-  stroke: #7ea6f6;
-}
-
-/* --------------------------------
-
-Change icon size
-
--------------------------------- */
-
-.icon-xs {
-  height: 0.5em;
-  width: 0.5em;
-}
-
-.icon-sm {
-  height: 0.8em;
-  width: 0.8em;
-}
-
-.icon-lg {
-  height: 1.6em;
-  width: 1.6em;
-}
-
-.icon-xl {
-  height: 2em;
-  width: 2em;
-}
-
-/* -------------------------------- 
-
-Align icon and text 
-
--------------------------------- */
-
-.icon-text-aligner {
-  /* add this class to parent element that contains icon + text */
-  display: flex;
-  align-items: center;
-}
-
-.icon-text-aligner .icon {
-  color: inherit;
-  margin-right: 0.4em;
-}
-
-.icon-text-aligner .icon use {
-  color: inherit;
-  fill: currentColor;
-}
-
-.icon-text-aligner .icon.icon-outline use {
-  stroke: currentColor;
-}
-
-/* -------------------------------- 
-
-Icon reset values - used to enable color customizations
-
--------------------------------- */
-
-.icon {
-  fill: currentColor;
-  stroke: none;
-}
-
-.icon.icon-outline {
-  fill: none;
-  stroke: currentColor;
-}
-
-.icon use {
-  stroke: none;
-}
-
-.icon.icon-outline use {
-  fill: none;
-}
-
-/* -------------------------------- 
-
-Stroke effects - Nucleo outline icons
-
-- 16px icons -> up to 1px stroke (16px outline icons do not support stroke changes)
-- 24px, 32px icons -> up to 2px stroke
-- 48px, 64px icons -> up to 4px stroke
-
--------------------------------- */
-
-.icon-outline.icon-stroke-1 {
-  stroke-width: 1px;
-}
-
-.icon-outline.icon-stroke-2 {
-  stroke-width: 2px;
-}
-
-.icon-outline.icon-stroke-3 {
-  stroke-width: 3px;
-}
-
-.icon-outline.icon-stroke-4 {
-  stroke-width: 4px;
-}
-
-.icon-outline.icon-stroke-1 use,
-.icon-outline.icon-stroke-3 use {
-  -webkit-transform: translateX(0.5px) translateY(0.5px);
-  -moz-transform: translateX(0.5px) translateY(0.5px);
-  -ms-transform: translateX(0.5px) translateY(0.5px);
-  -o-transform: translateX(0.5px) translateY(0.5px);
-  transform: translateX(0.5px) translateY(0.5px);
-}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 26680
assets/css2/soft-ui-dashboard.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 348
assets/css2/soft-ui-dashboard.css.map


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 26
assets/css2/soft-ui-dashboard.min.css


BIN
assets/fonts2/nucleo-icons.eot


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 312
assets/fonts2/nucleo-icons.svg


BIN
assets/fonts2/nucleo-icons.ttf


BIN
assets/fonts2/nucleo-icons.woff


BIN
assets/fonts2/nucleo-icons.woff2


BIN
assets/fonts2/nucleo.eot


BIN
assets/fonts2/nucleo.ttf


BIN
assets/fonts2/nucleo.woff


BIN
assets/fonts2/nucleo.woff2


BIN
assets/img2/apple-icon.png


BIN
assets/img2/bg1.jpg


BIN
assets/img2/bruce-mars.jpg


BIN
assets/img2/curved-images/curved-10.jpg


BIN
assets/img2/curved-images/curved-11.jpg


BIN
assets/img2/curved-images/curved-6.jpg


BIN
assets/img2/curved-images/curved-8.jpg


BIN
assets/img2/curved-images/curved0.jpg


BIN
assets/img2/curved-images/curved1.jpg


BIN
assets/img2/curved-images/curved10.jpg


BIN
assets/img2/curved-images/curved11-small.jpg


BIN
assets/img2/curved-images/curved11.jpg


BIN
assets/img2/curved-images/curved12.jpg


BIN
assets/img2/curved-images/curved13.jpg


BIN
assets/img2/curved-images/curved14.jpg


BIN
assets/img2/curved-images/curved19.jpg


BIN
assets/img2/curved-images/curved2.jpg


BIN
assets/img2/curved-images/curved21.jpg


BIN
assets/img2/curved-images/curved3.jpg


BIN
assets/img2/curved-images/curved4.jpg


BIN
assets/img2/curved-images/curved5-small.jpg


BIN
assets/img2/curved-images/curved5.jpg


BIN
assets/img2/curved-images/curved6-small.jpg


BIN
assets/img2/curved-images/curved6.jpg


BIN
assets/img2/curved-images/curved7.jpg


BIN
assets/img2/curved-images/curved8.jpg


BIN
assets/img2/curved-images/curved9.jpg


BIN
assets/img2/curved-images/white-curved.jpg


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 11
assets/img2/down-arrow-dark.svg


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
assets/img2/down-arrow-white.svg


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 11
assets/img2/down-arrow.svg


BIN
assets/img2/favicon.png


BIN
assets/img2/home-decor-1.jpg


BIN
assets/img2/home-decor-2.jpg


BIN
assets/img2/home-decor-3.jpg


BIN
assets/img2/illustrations/rocket-dark.png


BIN
assets/img2/illustrations/rocket-white.png


BIN
assets/img2/ivana-square.jpg


BIN
assets/img2/ivancik.jpg


BIN
assets/img2/kal-visuals-square.jpg


BIN
assets/img2/logo-ct-dark.png


BIN
assets/img2/logo-ct.png


BIN
assets/img2/logos/mastercard.png


BIN
assets/img2/logos/visa.png


BIN
assets/img2/marie.jpg


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 91
assets/img2/shapes/pattern-lines.svg


+ 0 - 0
assets/img2/shapes/shape-1.svg


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä