├── .editorconfig
├── .env.example
├── .gitattributes
├── .gitignore
├── .styleci.yml
├── README.md
├── app
├── Console
│ └── Kernel.php
├── Exceptions
│ └── Handler.php
├── Http
│ ├── Controllers
│ │ ├── AdminAuthController.php
│ │ ├── BookManageController.php
│ │ ├── Controller.php
│ │ ├── StudentAuthController.php
│ │ └── StudentManageController.php
│ ├── Kernel.php
│ └── Middleware
│ │ ├── Authenticate.php
│ │ ├── CheckForMaintenanceMode.php
│ │ ├── EncryptCookies.php
│ │ ├── RedirectIfAuthenticated.php
│ │ ├── TrimStrings.php
│ │ ├── TrustProxies.php
│ │ └── VerifyCsrfToken.php
├── Mail
│ ├── ApproveMail.php
│ ├── BookOrderMail.php
│ ├── BookReceiveMail.php
│ ├── ForgetPassEmail.php
│ ├── RejectMail.php
│ ├── RemoveStudentMail.php
│ └── VerifyEmail.php
├── Providers
│ ├── AppServiceProvider.php
│ ├── AuthServiceProvider.php
│ ├── BroadcastServiceProvider.php
│ ├── EventServiceProvider.php
│ └── RouteServiceProvider.php
└── User.php
├── artisan
├── bootstrap
├── app.php
└── cache
│ └── .gitignore
├── composer.json
├── composer.lock
├── config
├── app.php
├── auth.php
├── broadcasting.php
├── cache.php
├── cors.php
├── database.php
├── filesystems.php
├── hashing.php
├── logging.php
├── mail.php
├── queue.php
├── services.php
├── session.php
└── view.php
├── database
├── .gitignore
├── factories
│ └── UserFactory.php
├── migrations
│ ├── 2021_01_06_143407_create_students_table.php
│ ├── 2021_01_06_143515_create_admins_table.php
│ ├── 2021_01_06_143606_create_records_table.php
│ ├── 2021_01_06_143700_create_books_table.php
│ └── 2021_01_06_144034_create_shelfs_table.php
└── seeds
│ └── DatabaseSeeder.php
├── package.json
├── phpunit.xml
├── public
├── .htaccess
├── Image
│ ├── Card_graph.png
│ ├── Card_graph2.png
│ ├── Card_graph3.png
│ ├── Card_graph4.png
│ ├── Card_graph5.png
│ ├── Sajeeb_Chakraborty.jpg
│ ├── admin.png
│ ├── bg.jpg
│ ├── books-2596809_1920.jpg
│ └── librarylogo.png
├── css
│ ├── style.css
│ ├── style2.css
│ ├── style3.css
│ ├── style4.css
│ ├── style5.css
│ ├── style6.css
│ └── style7.css
├── favicon.ico
├── images
│ ├── assets_landing page
│ │ └── Bg.html
│ ├── faces
│ │ └── face2.html
│ ├── favicon.html
│ ├── file-icons
│ │ ├── 64
│ │ │ └── 001-interface-1.html
│ │ └── 128
│ │ │ └── 001-interface-1.html
│ ├── lightbox
│ │ └── play-button.html
│ └── salt_logo.svg
├── index.php
├── js
│ ├── ace.js
│ ├── alerts.js
│ ├── avgrund.js
│ ├── bootstrap-table.js
│ ├── bt-maxLength.js
│ ├── bt-multiselect-splitter.js
│ ├── c3.js
│ ├── calendar.js
│ ├── chart.js
│ ├── chartist.js
│ ├── circle-progress.js
│ ├── clipboard.js
│ ├── codemirror.js
│ ├── context-menu.js
│ ├── cropper.js
│ ├── dashboard_1.js
│ ├── data-table.js
│ ├── db.js
│ ├── desktop-notification.js
│ ├── dragula.js
│ ├── dropify.js
│ ├── dropzone.js
│ ├── editorDemo.js
│ ├── float-chart.js
│ ├── form-addons.js
│ ├── form-repeater.js
│ ├── form-validation.js
│ ├── formpickers.js
│ ├── google-charts.js
│ ├── hoverable-collapse.js
│ ├── iCheck.js
│ ├── ion-rangeSlider.js
│ ├── jq.tablesort.js
│ ├── jquery-file-upload.js
│ ├── js-grid.js
│ ├── just-gage.js
│ ├── light-gallery.js
│ ├── listify.js
│ ├── mail.js
│ ├── mapeal.js
│ ├── mapeal_example_2.js
│ ├── mapeal_example_3.js
│ ├── maps.js
│ ├── misc.js
│ ├── modal-demo.js
│ ├── morris.js
│ ├── no-ui-slider.js
│ ├── off-canvas.js
│ ├── owl-carousel.js
│ ├── progress-bar.js
│ ├── rickshaw.js
│ ├── settings.js
│ ├── sparkline.js
│ ├── tablesorter.js
│ ├── tabs.js
│ ├── tight-grid.js
│ ├── toastDemo.js
│ ├── todolist.js
│ ├── tour.js
│ └── typeahead.js
├── robots.txt
└── web.config
├── resources
├── js
│ ├── app.js
│ └── bootstrap.js
├── lang
│ └── en
│ │ ├── auth.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
├── sass
│ └── app.scss
└── views
│ ├── admin
│ ├── add_book.blade.php
│ ├── add_order.blade.php
│ ├── add_shelf.blade.php
│ ├── approve_email.blade.php
│ ├── book_details.blade.php
│ ├── book_order_email.blade.php
│ ├── book_order_show.blade.php
│ ├── book_received.blade.php
│ ├── book_received_Email.blade.php
│ ├── change_auth_password.blade.php
│ ├── change_password.blade.php
│ ├── dashboard.blade.php
│ ├── database_book.blade.php
│ ├── edit_books.blade.php
│ ├── edit_info.blade.php
│ ├── edit_shelf.blade.php
│ ├── electronics_book.blade.php
│ ├── forget_password.blade.php
│ ├── networking_book.blade.php
│ ├── notification.blade.php
│ ├── programming_book.blade.php
│ ├── reject_email.blade.php
│ ├── remove_books.blade.php
│ ├── remove_shelf.blade.php
│ ├── remove_student.blade.php
│ ├── remove_student_email.blade.php
│ ├── shelf_details.blade.php
│ ├── shelf_list.blade.php
│ ├── sign_in.blade.php
│ ├── software_book.blade.php
│ ├── student_details.blade.php
│ ├── student_info.blade.php
│ ├── student_request.blade.php
│ ├── update_books.blade.php
│ └── update_shelf.blade.php
│ ├── layout
│ ├── admin_layout.blade.php
│ └── student_layout.blade.php
│ └── student
│ ├── RecoveryPassword_By_Email.blade.php
│ ├── Verify_Email_By_Mail.blade.php
│ ├── change_password.blade.php
│ ├── change_password_page.blade.php
│ ├── dashboard.blade.php
│ ├── database_book.blade.php
│ ├── edit_info.blade.php
│ ├── electronics_book.blade.php
│ ├── forget_password.blade.php
│ ├── my_collection.blade.php
│ ├── my_submission.blade.php
│ ├── networking_book.blade.php
│ ├── notification.blade.php
│ ├── programming_book.blade.php
│ ├── shelf_details.blade.php
│ ├── shelf_list.blade.php
│ ├── sign_up_page.blade.php
│ ├── software_book.blade.php
│ ├── student_sign_in.blade.php
│ └── verify_email.blade.php
├── routes
├── api.php
├── channels.php
├── console.php
└── web.php
├── server.php
├── storage
├── app
│ ├── .gitignore
│ └── public
│ │ └── .gitignore
├── framework
│ ├── .gitignore
│ ├── cache
│ │ ├── .gitignore
│ │ └── data
│ │ │ └── .gitignore
│ ├── sessions
│ │ └── .gitignore
│ ├── testing
│ │ └── .gitignore
│ └── views
│ │ └── .gitignore
└── logs
│ └── .gitignore
├── tests
├── CreatesApplication.php
├── Feature
│ └── ExampleTest.php
├── TestCase.php
└── Unit
│ └── ExampleTest.php
└── webpack.mix.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | insert_final_newline = true
7 | indent_style = space
8 | indent_size = 4
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
14 | [*.{yml,yaml}]
15 | indent_size = 2
16 |
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | APP_NAME=Laravel
2 | APP_ENV=local
3 | APP_KEY=
4 | APP_DEBUG=true
5 | APP_URL=http://localhost
6 |
7 | LOG_CHANNEL=stack
8 |
9 | DB_CONNECTION=mysql
10 | DB_HOST=127.0.0.1
11 | DB_PORT=3306
12 | DB_DATABASE=laravel
13 | DB_USERNAME=root
14 | DB_PASSWORD=
15 |
16 | BROADCAST_DRIVER=log
17 | CACHE_DRIVER=file
18 | QUEUE_CONNECTION=sync
19 | SESSION_DRIVER=file
20 | SESSION_LIFETIME=120
21 |
22 | REDIS_HOST=127.0.0.1
23 | REDIS_PASSWORD=null
24 | REDIS_PORT=6379
25 |
26 | MAIL_MAILER=smtp
27 | MAIL_HOST=smtp.mailtrap.io
28 | MAIL_PORT=2525
29 | MAIL_USERNAME=null
30 | MAIL_PASSWORD=null
31 | MAIL_ENCRYPTION=null
32 | MAIL_FROM_ADDRESS=null
33 | MAIL_FROM_NAME="${APP_NAME}"
34 |
35 | AWS_ACCESS_KEY_ID=
36 | AWS_SECRET_ACCESS_KEY=
37 | AWS_DEFAULT_REGION=us-east-1
38 | AWS_BUCKET=
39 |
40 | PUSHER_APP_ID=
41 | PUSHER_APP_KEY=
42 | PUSHER_APP_SECRET=
43 | PUSHER_APP_CLUSTER=mt1
44 |
45 | MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
46 | MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
47 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.css linguist-vendored
3 | *.scss linguist-vendored
4 | *.js linguist-vendored
5 | CHANGELOG.md export-ignore
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /public/hot
3 | /public/storage
4 | /storage/*.key
5 | /vendor
6 | .env
7 | .env.backup
8 | .phpunit.result.cache
9 | Homestead.json
10 | Homestead.yaml
11 | npm-debug.log
12 | yarn-error.log
13 |
--------------------------------------------------------------------------------
/.styleci.yml:
--------------------------------------------------------------------------------
1 | php:
2 | preset: laravel
3 | disabled:
4 | - unused_use
5 | finder:
6 | not-name:
7 | - index.php
8 | - server.php
9 | js:
10 | finder:
11 | not-name:
12 | - webpack.mix.js
13 | css: true
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
--------------------------------------------------------------------------------
/app/Console/Kernel.php:
--------------------------------------------------------------------------------
1 | command('inspire')->hourly();
28 | }
29 |
30 | /**
31 | * Register the commands for the application.
32 | *
33 | * @return void
34 | */
35 | protected function commands()
36 | {
37 | $this->load(__DIR__.'/Commands');
38 |
39 | require base_path('routes/console.php');
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/app/Exceptions/Handler.php:
--------------------------------------------------------------------------------
1 | [
32 | \App\Http\Middleware\EncryptCookies::class,
33 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
34 | \Illuminate\Session\Middleware\StartSession::class,
35 | // \Illuminate\Session\Middleware\AuthenticateSession::class,
36 | \Illuminate\View\Middleware\ShareErrorsFromSession::class,
37 | \App\Http\Middleware\VerifyCsrfToken::class,
38 | \Illuminate\Routing\Middleware\SubstituteBindings::class,
39 | ],
40 |
41 | 'api' => [
42 | 'throttle:60,1',
43 | \Illuminate\Routing\Middleware\SubstituteBindings::class,
44 | ],
45 | ];
46 |
47 | /**
48 | * The application's route middleware.
49 | *
50 | * These middleware may be assigned to groups or used individually.
51 | *
52 | * @var array
53 | */
54 | protected $routeMiddleware = [
55 | 'auth' => \App\Http\Middleware\Authenticate::class,
56 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
57 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
58 | 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
59 | 'can' => \Illuminate\Auth\Middleware\Authorize::class,
60 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
61 | 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
62 | 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
63 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
64 | 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
65 | ];
66 | }
67 |
--------------------------------------------------------------------------------
/app/Http/Middleware/Authenticate.php:
--------------------------------------------------------------------------------
1 | expectsJson()) {
18 | return route('login');
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/Http/Middleware/CheckForMaintenanceMode.php:
--------------------------------------------------------------------------------
1 | check()) {
22 | return redirect(RouteServiceProvider::HOME);
23 | }
24 |
25 | return $next($request);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/Http/Middleware/TrimStrings.php:
--------------------------------------------------------------------------------
1 | details_approve=$details_approve;
23 | }
24 |
25 | /**
26 | * Build the message.
27 | *
28 | * @return $this
29 | */
30 | public function build()
31 | {
32 | return $this->subject('Congrats! Your account is approved ')
33 | ->view('admin.approve_Email');
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/Mail/BookOrderMail.php:
--------------------------------------------------------------------------------
1 | details_order=$details_order;
23 | }
24 |
25 | /**
26 | * Build the message.
27 | *
28 | * @return $this
29 | */
30 | public function build()
31 | {
32 | return $this->subject('Book Order')
33 | ->view('admin.book_order_email');
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/Mail/BookReceiveMail.php:
--------------------------------------------------------------------------------
1 | details_received=$details_received;
24 | }
25 |
26 | /**
27 | * Build the message.
28 | *
29 | * @return $this
30 | */
31 | public function build()
32 | {
33 | return $this->subject('Book Received')
34 | ->view('admin.book_received_email');
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/Mail/ForgetPassEmail.php:
--------------------------------------------------------------------------------
1 | details2=$details2;
25 |
26 | }
27 |
28 | /**
29 | * Build the message.
30 | *
31 | * @return $this
32 | */
33 | public function build()
34 | {
35 | return $this->subject('Recovery Password')
36 | ->view('student.RecoveryPassword_By_Email');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Mail/RejectMail.php:
--------------------------------------------------------------------------------
1 | details_reject=$details_reject;
25 | }
26 |
27 | /**
28 | * Build the message.
29 | *
30 | * @return $this
31 | */
32 | public function build()
33 | {
34 | return $this->subject('Rejected your account')
35 | ->view('admin.reject_email');
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/Mail/RemoveStudentMail.php:
--------------------------------------------------------------------------------
1 | details_remove=$details_remove;
25 | }
26 |
27 | /**
28 | * Build the message.
29 | *
30 | * @return $this
31 | */
32 | public function build()
33 | {
34 | return $this->subject('Remove Account')
35 | ->view('admin.remove_student_email');
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/Mail/VerifyEmail.php:
--------------------------------------------------------------------------------
1 | details=$details;
25 |
26 |
27 | }
28 |
29 | /**
30 | * Build the message.
31 | *
32 | * @return $this
33 | */
34 | public function build()
35 | {
36 | return $this->subject('Email Verification Code')
37 | ->view('student.Verify_Email_By_Mail');
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Providers/AppServiceProvider.php:
--------------------------------------------------------------------------------
1 | 'App\Policies\ModelPolicy',
17 | ];
18 |
19 | /**
20 | * Register any authentication / authorization services.
21 | *
22 | * @return void
23 | */
24 | public function boot()
25 | {
26 | $this->registerPolicies();
27 |
28 | //
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/Providers/BroadcastServiceProvider.php:
--------------------------------------------------------------------------------
1 | [
19 | SendEmailVerificationNotification::class,
20 | ],
21 | ];
22 |
23 | /**
24 | * Register any events for your application.
25 | *
26 | * @return void
27 | */
28 | public function boot()
29 | {
30 | parent::boot();
31 |
32 | //
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/Providers/RouteServiceProvider.php:
--------------------------------------------------------------------------------
1 | mapApiRoutes();
46 |
47 | $this->mapWebRoutes();
48 |
49 | //
50 | }
51 |
52 | /**
53 | * Define the "web" routes for the application.
54 | *
55 | * These routes all receive session state, CSRF protection, etc.
56 | *
57 | * @return void
58 | */
59 | protected function mapWebRoutes()
60 | {
61 | Route::middleware('web')
62 | ->namespace($this->namespace)
63 | ->group(base_path('routes/web.php'));
64 | }
65 |
66 | /**
67 | * Define the "api" routes for the application.
68 | *
69 | * These routes are typically stateless.
70 | *
71 | * @return void
72 | */
73 | protected function mapApiRoutes()
74 | {
75 | Route::prefix('api')
76 | ->middleware('api')
77 | ->namespace($this->namespace)
78 | ->group(base_path('routes/api.php'));
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/app/User.php:
--------------------------------------------------------------------------------
1 | 'datetime',
38 | ];
39 | }
40 |
--------------------------------------------------------------------------------
/artisan:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | make(Illuminate\Contracts\Console\Kernel::class);
34 |
35 | $status = $kernel->handle(
36 | $input = new Symfony\Component\Console\Input\ArgvInput,
37 | new Symfony\Component\Console\Output\ConsoleOutput
38 | );
39 |
40 | /*
41 | |--------------------------------------------------------------------------
42 | | Shutdown The Application
43 | |--------------------------------------------------------------------------
44 | |
45 | | Once Artisan has finished running, we will fire off the shutdown events
46 | | so that any final work may be done by the application before we shut
47 | | down the process. This is the last thing to happen to the request.
48 | |
49 | */
50 |
51 | $kernel->terminate($input, $status);
52 |
53 | exit($status);
54 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | singleton(
30 | Illuminate\Contracts\Http\Kernel::class,
31 | App\Http\Kernel::class
32 | );
33 |
34 | $app->singleton(
35 | Illuminate\Contracts\Console\Kernel::class,
36 | App\Console\Kernel::class
37 | );
38 |
39 | $app->singleton(
40 | Illuminate\Contracts\Debug\ExceptionHandler::class,
41 | App\Exceptions\Handler::class
42 | );
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Return The Application
47 | |--------------------------------------------------------------------------
48 | |
49 | | This script returns the application instance. The instance is given to
50 | | the calling script so we can separate the building of the instances
51 | | from the actual running of the application and sending responses.
52 | |
53 | */
54 |
55 | return $app;
56 |
--------------------------------------------------------------------------------
/bootstrap/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "laravel/laravel",
3 | "type": "project",
4 | "description": "The Laravel Framework.",
5 | "keywords": [
6 | "framework",
7 | "laravel"
8 | ],
9 | "license": "MIT",
10 | "require": {
11 | "php": "^7.2.5",
12 | "fideloper/proxy": "^4.2",
13 | "fruitcake/laravel-cors": "^1.0",
14 | "guzzlehttp/guzzle": "^6.3",
15 | "laravel/framework": "^7.0",
16 | "laravel/tinker": "^2.0"
17 | },
18 | "require-dev": {
19 | "facade/ignition": "^2.0",
20 | "fzaninotto/faker": "^1.9.1",
21 | "mockery/mockery": "^1.3.1",
22 | "nunomaduro/collision": "^4.1",
23 | "phpunit/phpunit": "^8.5"
24 | },
25 | "config": {
26 | "optimize-autoloader": true,
27 | "preferred-install": "dist",
28 | "sort-packages": true
29 | },
30 | "extra": {
31 | "laravel": {
32 | "dont-discover": []
33 | }
34 | },
35 | "autoload": {
36 | "psr-4": {
37 | "App\\": "app/"
38 | },
39 | "classmap": [
40 | "database/seeds",
41 | "database/factories"
42 | ]
43 | },
44 | "autoload-dev": {
45 | "psr-4": {
46 | "Tests\\": "tests/"
47 | }
48 | },
49 | "minimum-stability": "dev",
50 | "prefer-stable": true,
51 | "scripts": {
52 | "post-autoload-dump": [
53 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
54 | "@php artisan package:discover --ansi"
55 | ],
56 | "post-root-package-install": [
57 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
58 | ],
59 | "post-create-project-cmd": [
60 | "@php artisan key:generate --ansi"
61 | ]
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/config/auth.php:
--------------------------------------------------------------------------------
1 | [
17 | 'guard' => 'web',
18 | 'passwords' => 'users',
19 | ],
20 |
21 | /*
22 | |--------------------------------------------------------------------------
23 | | Authentication Guards
24 | |--------------------------------------------------------------------------
25 | |
26 | | Next, you may define every authentication guard for your application.
27 | | Of course, a great default configuration has been defined for you
28 | | here which uses session storage and the Eloquent user provider.
29 | |
30 | | All authentication drivers have a user provider. This defines how the
31 | | users are actually retrieved out of your database or other storage
32 | | mechanisms used by this application to persist your user's data.
33 | |
34 | | Supported: "session", "token"
35 | |
36 | */
37 |
38 | 'guards' => [
39 | 'web' => [
40 | 'driver' => 'session',
41 | 'provider' => 'users',
42 | ],
43 |
44 | 'api' => [
45 | 'driver' => 'token',
46 | 'provider' => 'users',
47 | 'hash' => false,
48 | ],
49 | ],
50 |
51 | /*
52 | |--------------------------------------------------------------------------
53 | | User Providers
54 | |--------------------------------------------------------------------------
55 | |
56 | | All authentication drivers have a user provider. This defines how the
57 | | users are actually retrieved out of your database or other storage
58 | | mechanisms used by this application to persist your user's data.
59 | |
60 | | If you have multiple user tables or models you may configure multiple
61 | | sources which represent each model / table. These sources may then
62 | | be assigned to any extra authentication guards you have defined.
63 | |
64 | | Supported: "database", "eloquent"
65 | |
66 | */
67 |
68 | 'providers' => [
69 | 'users' => [
70 | 'driver' => 'eloquent',
71 | 'model' => App\User::class,
72 | ],
73 |
74 | // 'users' => [
75 | // 'driver' => 'database',
76 | // 'table' => 'users',
77 | // ],
78 | ],
79 |
80 | /*
81 | |--------------------------------------------------------------------------
82 | | Resetting Passwords
83 | |--------------------------------------------------------------------------
84 | |
85 | | You may specify multiple password reset configurations if you have more
86 | | than one user table or model in the application and you want to have
87 | | separate password reset settings based on the specific user types.
88 | |
89 | | The expire time is the number of minutes that the reset token should be
90 | | considered valid. This security feature keeps tokens short-lived so
91 | | they have less time to be guessed. You may change this as needed.
92 | |
93 | */
94 |
95 | 'passwords' => [
96 | 'users' => [
97 | 'provider' => 'users',
98 | 'table' => 'password_resets',
99 | 'expire' => 60,
100 | 'throttle' => 60,
101 | ],
102 | ],
103 |
104 | /*
105 | |--------------------------------------------------------------------------
106 | | Password Confirmation Timeout
107 | |--------------------------------------------------------------------------
108 | |
109 | | Here you may define the amount of seconds before a password confirmation
110 | | times out and the user is prompted to re-enter their password via the
111 | | confirmation screen. By default, the timeout lasts for three hours.
112 | |
113 | */
114 |
115 | 'password_timeout' => 10800,
116 |
117 | ];
118 |
--------------------------------------------------------------------------------
/config/broadcasting.php:
--------------------------------------------------------------------------------
1 | env('BROADCAST_DRIVER', 'null'),
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Broadcast Connections
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may define all of the broadcast connections that will be used
26 | | to broadcast events to other systems or over websockets. Samples of
27 | | each available type of connection are provided inside this array.
28 | |
29 | */
30 |
31 | 'connections' => [
32 |
33 | 'pusher' => [
34 | 'driver' => 'pusher',
35 | 'key' => env('PUSHER_APP_KEY'),
36 | 'secret' => env('PUSHER_APP_SECRET'),
37 | 'app_id' => env('PUSHER_APP_ID'),
38 | 'options' => [
39 | 'cluster' => env('PUSHER_APP_CLUSTER'),
40 | 'useTLS' => true,
41 | ],
42 | ],
43 |
44 | 'redis' => [
45 | 'driver' => 'redis',
46 | 'connection' => 'default',
47 | ],
48 |
49 | 'log' => [
50 | 'driver' => 'log',
51 | ],
52 |
53 | 'null' => [
54 | 'driver' => 'null',
55 | ],
56 |
57 | ],
58 |
59 | ];
60 |
--------------------------------------------------------------------------------
/config/cache.php:
--------------------------------------------------------------------------------
1 | env('CACHE_DRIVER', 'file'),
22 |
23 | /*
24 | |--------------------------------------------------------------------------
25 | | Cache Stores
26 | |--------------------------------------------------------------------------
27 | |
28 | | Here you may define all of the cache "stores" for your application as
29 | | well as their drivers. You may even define multiple stores for the
30 | | same cache driver to group types of items stored in your caches.
31 | |
32 | */
33 |
34 | 'stores' => [
35 |
36 | 'apc' => [
37 | 'driver' => 'apc',
38 | ],
39 |
40 | 'array' => [
41 | 'driver' => 'array',
42 | ],
43 |
44 | 'database' => [
45 | 'driver' => 'database',
46 | 'table' => 'cache',
47 | 'connection' => null,
48 | ],
49 |
50 | 'file' => [
51 | 'driver' => 'file',
52 | 'path' => storage_path('framework/cache/data'),
53 | ],
54 |
55 | 'memcached' => [
56 | 'driver' => 'memcached',
57 | 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
58 | 'sasl' => [
59 | env('MEMCACHED_USERNAME'),
60 | env('MEMCACHED_PASSWORD'),
61 | ],
62 | 'options' => [
63 | // Memcached::OPT_CONNECT_TIMEOUT => 2000,
64 | ],
65 | 'servers' => [
66 | [
67 | 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
68 | 'port' => env('MEMCACHED_PORT', 11211),
69 | 'weight' => 100,
70 | ],
71 | ],
72 | ],
73 |
74 | 'redis' => [
75 | 'driver' => 'redis',
76 | 'connection' => 'cache',
77 | ],
78 |
79 | 'dynamodb' => [
80 | 'driver' => 'dynamodb',
81 | 'key' => env('AWS_ACCESS_KEY_ID'),
82 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
83 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
84 | 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
85 | 'endpoint' => env('DYNAMODB_ENDPOINT'),
86 | ],
87 |
88 | ],
89 |
90 | /*
91 | |--------------------------------------------------------------------------
92 | | Cache Key Prefix
93 | |--------------------------------------------------------------------------
94 | |
95 | | When utilizing a RAM based store such as APC or Memcached, there might
96 | | be other applications utilizing the same cache. So, we'll specify a
97 | | value to get prefixed to all our keys so we can avoid collisions.
98 | |
99 | */
100 |
101 | 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
102 |
103 | ];
104 |
--------------------------------------------------------------------------------
/config/cors.php:
--------------------------------------------------------------------------------
1 | ['api/*'],
19 |
20 | 'allowed_methods' => ['*'],
21 |
22 | 'allowed_origins' => ['*'],
23 |
24 | 'allowed_origins_patterns' => [],
25 |
26 | 'allowed_headers' => ['*'],
27 |
28 | 'exposed_headers' => false,
29 |
30 | 'max_age' => false,
31 |
32 | 'supports_credentials' => false,
33 |
34 | ];
35 |
--------------------------------------------------------------------------------
/config/filesystems.php:
--------------------------------------------------------------------------------
1 | env('FILESYSTEM_DRIVER', 'local'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Default Cloud Filesystem Disk
21 | |--------------------------------------------------------------------------
22 | |
23 | | Many applications store files both locally and in the cloud. For this
24 | | reason, you may specify a default "cloud" driver here. This driver
25 | | will be bound as the Cloud disk implementation in the container.
26 | |
27 | */
28 |
29 | 'cloud' => env('FILESYSTEM_CLOUD', 's3'),
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Filesystem Disks
34 | |--------------------------------------------------------------------------
35 | |
36 | | Here you may configure as many filesystem "disks" as you wish, and you
37 | | may even configure multiple disks of the same driver. Defaults have
38 | | been setup for each driver as an example of the required options.
39 | |
40 | | Supported Drivers: "local", "ftp", "sftp", "s3"
41 | |
42 | */
43 |
44 | 'disks' => [
45 |
46 | 'local' => [
47 | 'driver' => 'local',
48 | 'root' => storage_path('app'),
49 | ],
50 |
51 | 'public' => [
52 | 'driver' => 'local',
53 | 'root' => storage_path('app/public'),
54 | 'url' => env('APP_URL').'/storage',
55 | 'visibility' => 'public',
56 | ],
57 |
58 | 's3' => [
59 | 'driver' => 's3',
60 | 'key' => env('AWS_ACCESS_KEY_ID'),
61 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
62 | 'region' => env('AWS_DEFAULT_REGION'),
63 | 'bucket' => env('AWS_BUCKET'),
64 | 'url' => env('AWS_URL'),
65 | ],
66 |
67 | ],
68 |
69 | /*
70 | |--------------------------------------------------------------------------
71 | | Symbolic Links
72 | |--------------------------------------------------------------------------
73 | |
74 | | Here you may configure the symbolic links that will be created when the
75 | | `storage:link` Artisan command is executed. The array keys should be
76 | | the locations of the links and the values should be their targets.
77 | |
78 | */
79 |
80 | 'links' => [
81 | public_path('storage') => storage_path('app/public'),
82 | ],
83 |
84 | ];
85 |
--------------------------------------------------------------------------------
/config/hashing.php:
--------------------------------------------------------------------------------
1 | 'bcrypt',
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Bcrypt Options
23 | |--------------------------------------------------------------------------
24 | |
25 | | Here you may specify the configuration options that should be used when
26 | | passwords are hashed using the Bcrypt algorithm. This will allow you
27 | | to control the amount of time it takes to hash the given password.
28 | |
29 | */
30 |
31 | 'bcrypt' => [
32 | 'rounds' => env('BCRYPT_ROUNDS', 10),
33 | ],
34 |
35 | /*
36 | |--------------------------------------------------------------------------
37 | | Argon Options
38 | |--------------------------------------------------------------------------
39 | |
40 | | Here you may specify the configuration options that should be used when
41 | | passwords are hashed using the Argon algorithm. These will allow you
42 | | to control the amount of time it takes to hash the given password.
43 | |
44 | */
45 |
46 | 'argon' => [
47 | 'memory' => 1024,
48 | 'threads' => 2,
49 | 'time' => 2,
50 | ],
51 |
52 | ];
53 |
--------------------------------------------------------------------------------
/config/logging.php:
--------------------------------------------------------------------------------
1 | env('LOG_CHANNEL', 'stack'),
21 |
22 | /*
23 | |--------------------------------------------------------------------------
24 | | Log Channels
25 | |--------------------------------------------------------------------------
26 | |
27 | | Here you may configure the log channels for your application. Out of
28 | | the box, Laravel uses the Monolog PHP logging library. This gives
29 | | you a variety of powerful log handlers / formatters to utilize.
30 | |
31 | | Available Drivers: "single", "daily", "slack", "syslog",
32 | | "errorlog", "monolog",
33 | | "custom", "stack"
34 | |
35 | */
36 |
37 | 'channels' => [
38 | 'stack' => [
39 | 'driver' => 'stack',
40 | 'channels' => ['single'],
41 | 'ignore_exceptions' => false,
42 | ],
43 |
44 | 'single' => [
45 | 'driver' => 'single',
46 | 'path' => storage_path('logs/laravel.log'),
47 | 'level' => 'debug',
48 | ],
49 |
50 | 'daily' => [
51 | 'driver' => 'daily',
52 | 'path' => storage_path('logs/laravel.log'),
53 | 'level' => 'debug',
54 | 'days' => 14,
55 | ],
56 |
57 | 'slack' => [
58 | 'driver' => 'slack',
59 | 'url' => env('LOG_SLACK_WEBHOOK_URL'),
60 | 'username' => 'Laravel Log',
61 | 'emoji' => ':boom:',
62 | 'level' => 'critical',
63 | ],
64 |
65 | 'papertrail' => [
66 | 'driver' => 'monolog',
67 | 'level' => 'debug',
68 | 'handler' => SyslogUdpHandler::class,
69 | 'handler_with' => [
70 | 'host' => env('PAPERTRAIL_URL'),
71 | 'port' => env('PAPERTRAIL_PORT'),
72 | ],
73 | ],
74 |
75 | 'stderr' => [
76 | 'driver' => 'monolog',
77 | 'handler' => StreamHandler::class,
78 | 'formatter' => env('LOG_STDERR_FORMATTER'),
79 | 'with' => [
80 | 'stream' => 'php://stderr',
81 | ],
82 | ],
83 |
84 | 'syslog' => [
85 | 'driver' => 'syslog',
86 | 'level' => 'debug',
87 | ],
88 |
89 | 'errorlog' => [
90 | 'driver' => 'errorlog',
91 | 'level' => 'debug',
92 | ],
93 |
94 | 'null' => [
95 | 'driver' => 'monolog',
96 | 'handler' => NullHandler::class,
97 | ],
98 |
99 | 'emergency' => [
100 | 'path' => storage_path('logs/laravel.log'),
101 | ],
102 | ],
103 |
104 | ];
105 |
--------------------------------------------------------------------------------
/config/mail.php:
--------------------------------------------------------------------------------
1 | env('MAIL_MAILER', 'smtp'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Mailer Configurations
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may configure all of the mailers used by your application plus
24 | | their respective settings. Several examples have been configured for
25 | | you and you are free to add your own as your application requires.
26 | |
27 | | Laravel supports a variety of mail "transport" drivers to be used while
28 | | sending an e-mail. You will specify which one you are using for your
29 | | mailers below. You are free to add additional mailers as required.
30 | |
31 | | Supported: "smtp", "sendmail", "mailgun", "ses",
32 | | "postmark", "log", "array"
33 | |
34 | */
35 |
36 | 'mailers' => [
37 | 'smtp' => [
38 | 'transport' => 'smtp',
39 | 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
40 | 'port' => env('MAIL_PORT', 587),
41 | 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
42 | 'username' => env('MAIL_USERNAME'),
43 | 'password' => env('MAIL_PASSWORD'),
44 | ],
45 |
46 | 'ses' => [
47 | 'transport' => 'ses',
48 | ],
49 |
50 | 'sendmail' => [
51 | 'transport' => 'sendmail',
52 | 'path' => '/usr/sbin/sendmail -bs',
53 | ],
54 |
55 | 'log' => [
56 | 'transport' => 'log',
57 | 'channel' => env('MAIL_LOG_CHANNEL'),
58 | ],
59 |
60 | 'array' => [
61 | 'transport' => 'array',
62 | ],
63 | ],
64 |
65 | /*
66 | |--------------------------------------------------------------------------
67 | | Global "From" Address
68 | |--------------------------------------------------------------------------
69 | |
70 | | You may wish for all e-mails sent by your application to be sent from
71 | | the same address. Here, you may specify a name and address that is
72 | | used globally for all e-mails that are sent by your application.
73 | |
74 | */
75 |
76 | 'from' => [
77 | 'address' => env('MAIL_FROM_ADDRESS', 'seminarlibrarymanagement@gmail.com'),
78 | 'name' => env('MAIL_FROM_NAME', 'Example'),
79 | ],
80 |
81 | /*
82 | |--------------------------------------------------------------------------
83 | | Markdown Mail Settings
84 | |--------------------------------------------------------------------------
85 | |
86 | | If you are using Markdown based email rendering, you may configure your
87 | | theme and component paths here, allowing you to customize the design
88 | | of the emails. Or, you may simply stick with the Laravel defaults!
89 | |
90 | */
91 |
92 | 'markdown' => [
93 | 'theme' => 'default',
94 |
95 | 'paths' => [
96 | resource_path('views/vendor/mail'),
97 | ],
98 | ],
99 |
100 | ];
101 |
--------------------------------------------------------------------------------
/config/queue.php:
--------------------------------------------------------------------------------
1 | env('QUEUE_CONNECTION', 'sync'),
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Queue Connections
21 | |--------------------------------------------------------------------------
22 | |
23 | | Here you may configure the connection information for each server that
24 | | is used by your application. A default configuration has been added
25 | | for each back-end shipped with Laravel. You are free to add more.
26 | |
27 | | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
28 | |
29 | */
30 |
31 | 'connections' => [
32 |
33 | 'sync' => [
34 | 'driver' => 'sync',
35 | ],
36 |
37 | 'database' => [
38 | 'driver' => 'database',
39 | 'table' => 'jobs',
40 | 'queue' => 'default',
41 | 'retry_after' => 90,
42 | ],
43 |
44 | 'beanstalkd' => [
45 | 'driver' => 'beanstalkd',
46 | 'host' => 'localhost',
47 | 'queue' => 'default',
48 | 'retry_after' => 90,
49 | 'block_for' => 0,
50 | ],
51 |
52 | 'sqs' => [
53 | 'driver' => 'sqs',
54 | 'key' => env('AWS_ACCESS_KEY_ID'),
55 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
56 | 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
57 | 'queue' => env('SQS_QUEUE', 'your-queue-name'),
58 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
59 | ],
60 |
61 | 'redis' => [
62 | 'driver' => 'redis',
63 | 'connection' => 'default',
64 | 'queue' => env('REDIS_QUEUE', 'default'),
65 | 'retry_after' => 90,
66 | 'block_for' => null,
67 | ],
68 |
69 | ],
70 |
71 | /*
72 | |--------------------------------------------------------------------------
73 | | Failed Queue Jobs
74 | |--------------------------------------------------------------------------
75 | |
76 | | These options configure the behavior of failed queue job logging so you
77 | | can control which database and table are used to store the jobs that
78 | | have failed. You may change them to any database / table you wish.
79 | |
80 | */
81 |
82 | 'failed' => [
83 | 'driver' => env('QUEUE_FAILED_DRIVER', 'database'),
84 | 'database' => env('DB_CONNECTION', 'mysql'),
85 | 'table' => 'failed_jobs',
86 | ],
87 |
88 | ];
89 |
--------------------------------------------------------------------------------
/config/services.php:
--------------------------------------------------------------------------------
1 | [
18 | 'domain' => env('MAILGUN_DOMAIN'),
19 | 'secret' => env('MAILGUN_SECRET'),
20 | 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
21 | ],
22 |
23 | 'postmark' => [
24 | 'token' => env('POSTMARK_TOKEN'),
25 | ],
26 |
27 | 'ses' => [
28 | 'key' => env('AWS_ACCESS_KEY_ID'),
29 | 'secret' => env('AWS_SECRET_ACCESS_KEY'),
30 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
31 | ],
32 |
33 | ];
34 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | resource_path('views'),
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled View Path
23 | |--------------------------------------------------------------------------
24 | |
25 | | This option determines where all the compiled Blade templates will be
26 | | stored for your application. Typically, this is within the storage
27 | | directory. However, as usual, you are free to change this value.
28 | |
29 | */
30 |
31 | 'compiled' => env(
32 | 'VIEW_COMPILED_PATH',
33 | realpath(storage_path('framework/views'))
34 | ),
35 |
36 | /*
37 | |--------------------------------------------------------------------------
38 | | Blade View Modification Checking
39 | |--------------------------------------------------------------------------
40 | |
41 | | On every request the framework will check to see if a view has expired
42 | | to determine if it needs to be recompiled. If you are in production
43 | | and precompiling views this feature may be disabled to save time.
44 | |
45 | */
46 |
47 | 'expires' => env('VIEW_CHECK_EXPIRATION', true),
48 |
49 | ];
50 |
--------------------------------------------------------------------------------
/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 | *.sqlite-journal
3 |
--------------------------------------------------------------------------------
/database/factories/UserFactory.php:
--------------------------------------------------------------------------------
1 | define(User::class, function (Faker $faker) {
21 | return [
22 | 'name' => $faker->name,
23 | 'email' => $faker->unique()->safeEmail,
24 | 'email_verified_at' => now(),
25 | 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
26 | 'remember_token' => Str::random(10),
27 | ];
28 | });
29 |
--------------------------------------------------------------------------------
/database/migrations/2021_01_06_143407_create_students_table.php:
--------------------------------------------------------------------------------
1 | id();
18 | $table->string('Student_ID')->unique();
19 | $table->string('Name');
20 | $table->string('Session');
21 | $table->string('Contact_no');
22 | $table->string('Email')->unique();
23 | $table->string('Image');
24 | $table->string('Username')->unique();
25 | $table->string('Password');
26 | $table->string('Verify');
27 | $table->string('Confirmation_Code');
28 | $table->string('Read');
29 |
30 | });
31 | }
32 |
33 | /**
34 | * Reverse the migrations.
35 | *
36 | * @return void
37 | */
38 | public function down()
39 | {
40 | Schema::dropIfExists('students');
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/database/migrations/2021_01_06_143515_create_admins_table.php:
--------------------------------------------------------------------------------
1 | id();
18 | $table->string('Username')->unique();
19 | $table->string('Email')->unique();
20 | $table->string('Password');
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | *
27 | * @return void
28 | */
29 | public function down()
30 | {
31 | Schema::dropIfExists('admins');
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/database/migrations/2021_01_06_143606_create_records_table.php:
--------------------------------------------------------------------------------
1 | id();
18 | $table->string('Book_ID');
19 | $table->string('Student_ID');
20 | $table->string('Collection_Date');
21 | $table->string('Expired_Date');
22 | $table->string('Submission_Status');
23 | $table->string('Submission_Date');
24 | $table->string('Read');
25 | });
26 | }
27 |
28 | /**
29 | * Reverse the migrations.
30 | *
31 | * @return void
32 | */
33 | public function down()
34 | {
35 | Schema::dropIfExists('records');
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/database/migrations/2021_01_06_143700_create_books_table.php:
--------------------------------------------------------------------------------
1 | id();
18 | $table->string('Book_ID')->unique();
19 | $table->string('Book_Name');
20 | $table->string('Writer_Name');
21 | $table->string('Catagory');
22 | $table->string('Amounts');
23 | $table->string('Shelf_ID');
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::dropIfExists('books');
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/database/migrations/2021_01_06_144034_create_shelfs_table.php:
--------------------------------------------------------------------------------
1 | id();
18 | $table->string('Shelf_ID')->unique();
19 | $table->string('Shelf_Location');
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | *
26 | * @return void
27 | */
28 | public function down()
29 | {
30 | Schema::dropIfExists('shelfs');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call(UsersTableSeeder::class);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "dev": "npm run development",
5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
6 | "watch": "npm run development -- --watch",
7 | "watch-poll": "npm run watch -- --watch-poll",
8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
9 | "prod": "npm run production",
10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
11 | },
12 | "devDependencies": {
13 | "axios": "^0.19",
14 | "cross-env": "^7.0",
15 | "laravel-mix": "^5.0.1",
16 | "lodash": "^4.17.13",
17 | "resolve-url-loader": "^3.1.0",
18 | "sass": "^1.15.2",
19 | "sass-loader": "^8.0.0"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
So implement your design and place content here! If you want to close modal, please hit "Esc", click somewhere on the screen or use special button.
' + 11 | '' 16 | }); 17 | }) 18 | })(jQuery); -------------------------------------------------------------------------------- /public/js/bootstrap-table.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | function monthSorter(a, b) { 5 | if (a.month < b.month) return -1; 6 | if (a.month > b.month) return 1; 7 | return 0; 8 | } 9 | 10 | function buildTable($el, cells, rows) { 11 | var i, j, row, 12 | columns = [], 13 | data = []; 14 | 15 | for (i = 0; i < cells; i++) { 16 | columns.push({ 17 | field: 'field' + i, 18 | title: 'Cell' + i 19 | }); 20 | } 21 | for (i = 0; i < rows; i++) { 22 | row = {}; 23 | for (j = 0; j < cells; j++) { 24 | row['field' + j] = 'Row-' + i + '-' + j; 25 | } 26 | data.push(row); 27 | } 28 | $el.bootstrapTable('destroy').bootstrapTable({ 29 | columns: columns, 30 | data: data 31 | }); 32 | } 33 | 34 | $(function() { 35 | buildTable($('#table'), 50, 50); 36 | }); 37 | 38 | function actionFormatter(value, row, index) { 39 | return [ 40 | '', 41 | '', 42 | '', 43 | '', 44 | '', 45 | '', 46 | '', 47 | '', 48 | '' 49 | ].join(''); 50 | } 51 | 52 | window.actionEvents = { 53 | 'click .like': function(e, value, row, index) { 54 | alert('You click like icon, row: ' + JSON.stringify(row)); 55 | console.log(value, row, index); 56 | }, 57 | 'click .edit': function(e, value, row, index) { 58 | alert('You click edit icon, row: ' + JSON.stringify(row)); 59 | console.log(value, row, index); 60 | }, 61 | 'click .remove': function(e, value, row, index) { 62 | alert('You click remove icon, row: ' + JSON.stringify(row)); 63 | console.log(value, row, index); 64 | } 65 | }; 66 | })(jQuery); -------------------------------------------------------------------------------- /public/js/bt-maxLength.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('#defaultconfig').maxlength(); 4 | 5 | $('#defaultconfig-2').maxlength({ 6 | alwaysShow: true, 7 | threshold: 20, 8 | warningClass: "badge mt-1 badge-success", 9 | limitReachedClass: "badge mt-1 badge-danger" 10 | }); 11 | 12 | $('#defaultconfig-3').maxlength({ 13 | alwaysShow: true, 14 | threshold: 10, 15 | warningClass: "badge mt-1 badge-success", 16 | limitReachedClass: "badge mt-1 badge-danger", 17 | separator: ' of ', 18 | preText: 'You have ', 19 | postText: ' chars remaining.', 20 | validate: true 21 | }); 22 | 23 | $('#maxlength-textarea').maxlength({ 24 | alwaysShow: true 25 | }); 26 | })(jQuery); -------------------------------------------------------------------------------- /public/js/bt-multiselect-splitter.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('#example1').multiselectsplitter(); 5 | 6 | $('#example2').multiselectsplitter({ 7 | selectSize: 7, 8 | clearOnFirstChange: true, 9 | groupCounter: true 10 | }); 11 | 12 | $('#example3').multiselectsplitter({ 13 | groupCounter: true, 14 | maximumSelected: 2 15 | }); 16 | 17 | $('#example4').multiselectsplitter({ 18 | groupCounter: true, 19 | maximumSelected: 3, 20 | onlySameGroup: true 21 | }); 22 | 23 | $('#example5').multiselectsplitter({ 24 | size: 6, 25 | groupCounter: true, 26 | maximumSelected: 2, 27 | maximumAlert: function(maximumSelected) { 28 | alert('You choose ' + (maximumSelected + 1) + ' options. Are you crazy ?'); 29 | }, 30 | createFirstSelect: function(label, $originalSelect) { 31 | return ''; 32 | }, 33 | createSecondSelect: function(label, $firstSelect) { 34 | return ''; 35 | } 36 | }); 37 | }); 38 | })(jQuery); -------------------------------------------------------------------------------- /public/js/calendar.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('#calendar').length) { 5 | $('#calendar').fullCalendar({ 6 | header: { 7 | left: 'prev,next today', 8 | center: 'title', 9 | right: 'month,basicWeek,basicDay' 10 | }, 11 | defaultDate: '2017-07-12', 12 | navLinks: true, // can click day/week names to navigate views 13 | editable: true, 14 | eventLimit: true, // allow "more" link when too many events 15 | events: [{ 16 | title: 'All Day Event', 17 | start: '2017-07-01' 18 | }, 19 | { 20 | title: 'Long Event', 21 | start: '2017-07-07', 22 | end: '2017-07-10' 23 | }, 24 | { 25 | id: 999, 26 | title: 'Repeating Event', 27 | start: '2017-07-09T16:00:00' 28 | }, 29 | { 30 | id: 999, 31 | title: 'Repeating Event', 32 | start: '2017-07-16T16:00:00' 33 | }, 34 | { 35 | title: 'Conference', 36 | start: '2017-07-11', 37 | end: '2017-07-13' 38 | }, 39 | { 40 | title: 'Meeting', 41 | start: '2017-07-12T10:30:00', 42 | end: '2017-07-12T12:30:00' 43 | }, 44 | { 45 | title: 'Lunch', 46 | start: '2017-07-12T12:00:00' 47 | }, 48 | { 49 | title: 'Meeting', 50 | start: '2017-07-12T14:30:00' 51 | }, 52 | { 53 | title: 'Happy Hour', 54 | start: '2017-07-12T17:30:00' 55 | }, 56 | { 57 | title: 'Dinner', 58 | start: '2017-07-12T20:00:00' 59 | }, 60 | { 61 | title: 'Birthday Party', 62 | start: '2017-07-13T07:00:00' 63 | }, 64 | { 65 | title: 'Click for Google', 66 | url: 'http://google.com/', 67 | start: '2017-07-28' 68 | } 69 | ] 70 | }) 71 | } 72 | }); 73 | })(jQuery); -------------------------------------------------------------------------------- /public/js/circle-progress.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($(".circle-progress").length) { 4 | $('.circle-progress').circleProgress({ 5 | fill: { 6 | color: "#fff" 7 | } 8 | }); 9 | } 10 | if ($(".yearly-progress").length) { 11 | $('.yearly-progress').circleProgress({ 12 | value: 0.80, 13 | thickness: 13, 14 | startAngle: 45, 15 | fill: { 16 | color: "#03D751" 17 | } 18 | }).on('circle-animation-progress', function(event, progress) { 19 | $(this).find('.value').html(Math.round(80 * progress) + '%'); 20 | }); 21 | } 22 | if ($(".monthly-progress").length) { 23 | $('.monthly-progress').circleProgress({ 24 | value: 0.45, 25 | thickness: 13, 26 | startAngle: 45, 27 | fill: { 28 | color: "#57008E" 29 | } 30 | }).on('circle-animation-progress', function(event, progress) { 31 | $(this).find('.value').html(Math.round(45 * progress) + '%'); 32 | }); 33 | } 34 | })(jQuery); -------------------------------------------------------------------------------- /public/js/clipboard.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var clipboard = new Clipboard('.btn-clipboard'); 4 | clipboard.on('success', function(e) { 5 | console.log(e); 6 | }); 7 | clipboard.on('error', function(e) { 8 | console.log(e); 9 | }); 10 | })(jQuery); -------------------------------------------------------------------------------- /public/js/codemirror.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($('textarea[name=code-editable]').length) { 4 | var editableCodeMirror = CodeMirror.fromTextArea(document.getElementById('code-editable'), { 5 | mode: "javascript", 6 | theme: "ambiance", 7 | lineNumbers: true 8 | }); 9 | } 10 | if ($('#code-readonly').length) { 11 | var readOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('code-readonly'), { 12 | mode: "javascript", 13 | theme: "ambiance", 14 | lineNumbers: true, 15 | readOnly: "nocursor" 16 | }); 17 | } 18 | 19 | //Use this method of there are multiple codes with same properties 20 | if ($('.multiple-codes').length) { 21 | var code_type = ''; 22 | var editorTextarea = $('.multiple-codes'); 23 | for (var i = 0; i < editorTextarea.length; i++) { 24 | $(editorTextarea[i]).attr('id', 'code-' + i); 25 | CodeMirror.fromTextArea(document.getElementById('code-' + i), { 26 | mode: "javascript", 27 | theme: "ambiance", 28 | lineNumbers: true, 29 | readOnly: "nocursor" 30 | }); 31 | } 32 | } 33 | 34 | //Use this method of there are multiple codes with same properties in shell mode 35 | if ($('.shell-mode').length) { 36 | var code_type = ''; 37 | var shellEditor = $('.shell-mode'); 38 | for (var i = 0; i < shellEditor.length; i++) { 39 | $(shellEditor[i]).attr('id', 'code-' + i); 40 | CodeMirror.fromTextArea(document.getElementById('code-' + i), { 41 | mode: "shell", 42 | theme: "ambiance", 43 | readOnly: "nocursor" 44 | }); 45 | } 46 | } 47 | })(jQuery); -------------------------------------------------------------------------------- /public/js/cropper.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('#cropperExample').cropper({ 4 | aspectRatio: 16 / 9 5 | }); 6 | })(jQuery); -------------------------------------------------------------------------------- /public/js/dashboard_1.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | if ($("#dashboard-card-chart-1").length) { 5 | var d1 = []; 6 | var options = {}; 7 | $.plot($("#dashboard-card-chart-1"), [{ 8 | data: d1 = [ 9 | [0, 1], 10 | [1, 14], 11 | [2, 3], 12 | [3, 22], 13 | [4, 10], 14 | [5, 17], 15 | [6, 2], 16 | [7, 34], 17 | [8, 7] 18 | ], 19 | lines: { 20 | show: true, 21 | fill: 0.18 22 | }, 23 | label: 'Product A', 24 | stack: false, 25 | color: '#9B61EE' 26 | }], 27 | options = { 28 | series: { 29 | shadowSize: 0, 30 | lines: { 31 | show: true, 32 | }, 33 | }, 34 | grid: false, 35 | xaxis: false, 36 | yaxis: false, 37 | legend: false 38 | }); 39 | } 40 | 41 | if ($("#dashboard-card-chart-2").length) { 42 | var d1 = []; 43 | var options = {}; 44 | $.plot($("#dashboard-card-chart-2"), [{ 45 | data: d1 = [ 46 | [0, 1], 47 | [1, 5], 48 | [2, 22], 49 | [3, 9], 50 | [4, 14], 51 | [5, 6], 52 | [6, 19], 53 | [7, 17], 54 | [8, 9] 55 | ], 56 | lines: { 57 | show: true, 58 | fill: 0.18 59 | }, 60 | label: 'Product A', 61 | stack: false, 62 | color: '#70E400 ' 63 | }], 64 | options = { 65 | series: { 66 | shadowSize: 0, 67 | lines: { 68 | show: true, 69 | }, 70 | }, 71 | grid: false, 72 | xaxis: false, 73 | yaxis: false, 74 | legend: false 75 | }); 76 | } 77 | 78 | if ($("#dashboard-card-chart-3").length) { 79 | var d1 = []; 80 | var options = {}; 81 | $.plot($("#dashboard-card-chart-3"), [{ 82 | data: d1 = [ 83 | [0, 1], 84 | [1, 20], 85 | [2, 18], 86 | [3, 4], 87 | [4, 8], 88 | [5, 1], 89 | [6, 16], 90 | [7, 18], 91 | [8, 10] 92 | ], 93 | lines: { 94 | show: true, 95 | fill: 0.18 96 | }, 97 | label: 'Product A', 98 | stack: false, 99 | color: '#FFAF00' 100 | }], 101 | options = { 102 | series: { 103 | shadowSize: 0, 104 | lines: { 105 | show: true, 106 | }, 107 | }, 108 | grid: false, 109 | xaxis: false, 110 | yaxis: false, 111 | legend: false 112 | }); 113 | } 114 | 115 | if ($("#dashboard-card-chart-4").length) { 116 | var d1 = []; 117 | var options = {}; 118 | $.plot($("#dashboard-card-chart-4"), [{ 119 | data: d1 = [ 120 | [0, 1], 121 | [1, 17], 122 | [2, 8], 123 | [3, 22], 124 | [4, 19], 125 | [5, 9], 126 | [6, 22], 127 | [7, 16], 128 | [8, 14] 129 | ], 130 | lines: { 131 | show: true, 132 | fill: 0.18 133 | }, 134 | label: 'Product A', 135 | stack: false, 136 | color: '#FF0028' 137 | }], 138 | options = { 139 | series: { 140 | shadowSize: 0, 141 | lines: { 142 | show: true, 143 | }, 144 | }, 145 | grid: false, 146 | xaxis: false, 147 | yaxis: false, 148 | legend: false 149 | }); 150 | } 151 | 152 | if ($('#dashboard-chartist-simple').length) { 153 | var chart = new Chartist.Line('#dashboard-chartist-simple', { 154 | labels: ['1 Jan', '3 Feb', '2 Mar', '2 Apr', '1 May', '2 Jul', '2 Aug'], 155 | series: [{ 156 | "name": "New users", 157 | "data": [1, 5, 2, 5, 4, 3, 6, 1] 158 | }, 159 | { 160 | "name": "Existing Users", 161 | "data": [1, 3, 4, 8, 1, 3, 8, 4] 162 | } 163 | ] 164 | }, { 165 | fullWidth: true, 166 | showPoint: false, 167 | chartPadding: { 168 | right: 0, 169 | left: 0, 170 | top: 0, 171 | bottom: 0 172 | }, 173 | axisX: { 174 | showLabel: false, 175 | showGrid: false 176 | }, 177 | axisX: { 178 | showLabel: true, 179 | showGrid: false 180 | }, 181 | plugins: [ 182 | Chartist.plugins.legend() 183 | ] 184 | }); 185 | 186 | chart.on('draw', function(data) { 187 | if (data.type === 'line' || data.type === 'area') { 188 | data.element.animate({ 189 | d: { 190 | begin: 1000 * data.index, 191 | dur: 2000, 192 | from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(), 193 | to: data.path.clone().stringify(), 194 | easing: Chartist.Svg.Easing.easeOutQuint 195 | } 196 | }); 197 | } 198 | }); 199 | } 200 | 201 | if ($("#sparkline-line-chart").length) { 202 | $("#sparkline-line-chart").sparkline([5, 9, 13, 2, 6, 1, 10, 2, 8, 12, 4], { 203 | type: 'line', 204 | width: '100%', 205 | height: '100%' 206 | }); 207 | } 208 | 209 | })(jQuery); -------------------------------------------------------------------------------- /public/js/data-table.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('#order-listing').DataTable({ 5 | "aLengthMenu": [ 6 | [5, 10, 15, -1], 7 | [5, 10, 15, "All"] 8 | ], 9 | "iDisplayLength": 5 10 | }); 11 | }); 12 | })(jQuery); -------------------------------------------------------------------------------- /public/js/desktop-notification.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $.fn.easyNotify = function(options) { 4 | 5 | var settings = $.extend({ 6 | title: "Notification", 7 | options: { 8 | body: "", 9 | icon: "", 10 | lang: 'pt-BR', 11 | onClose: "", 12 | onClick: "", 13 | onError: "" 14 | } 15 | }, options); 16 | 17 | this.init = function() { 18 | var notify = this; 19 | if (!("Notification" in window)) { 20 | alert("This browser does not support desktop notification"); 21 | } else if (Notification.permission === "granted") { 22 | 23 | var notification = new Notification(settings.title, settings.options); 24 | 25 | notification.onclose = function() { 26 | if (typeof settings.options.onClose === 'function') { 27 | settings.options.onClose(); 28 | } 29 | }; 30 | 31 | notification.onclick = function() { 32 | if (typeof settings.options.onClick === 'function') { 33 | settings.options.onClick(); 34 | } 35 | }; 36 | 37 | notification.onerror = function() { 38 | if (typeof settings.options.onError === 'function') { 39 | settings.options.onError(); 40 | } 41 | }; 42 | 43 | } else if (Notification.permission !== 'denied') { 44 | Notification.requestPermission(function(permission) { 45 | if (permission === "granted") { 46 | notify.init(); 47 | } 48 | 49 | }); 50 | } 51 | 52 | }; 53 | 54 | this.init(); 55 | return this; 56 | }; 57 | 58 | 59 | //Initialise notification 60 | var myFunction = function() { 61 | alert('Click function'); 62 | }; 63 | var myImg = "https://unsplash.it/600/600?image=777"; 64 | 65 | $("form").submit(function(event) { 66 | event.preventDefault(); 67 | 68 | var options = { 69 | title: $("#title").val(), 70 | options: { 71 | body: $("#message").val(), 72 | icon: myImg, 73 | lang: 'en-US', 74 | onClick: myFunction 75 | } 76 | }; 77 | console.log(options); 78 | $("#easyNotify").easyNotify(options); 79 | }); 80 | }(jQuery)); -------------------------------------------------------------------------------- /public/js/dragula.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | dragula([document.getElementById("dragula-left"), document.getElementById("dragula-right")]); 4 | dragula([document.getElementById("profile-list-left"), document.getElementById("profile-list-right")]); 5 | dragula([document.getElementById("dragula-event-left"), document.getElementById("dragula-event-right")]) 6 | .on('drop', function(el) { 7 | el.className += ' bg-danger'; 8 | }) 9 | })(jQuery); -------------------------------------------------------------------------------- /public/js/dropify.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('.dropify').dropify(); 4 | })(jQuery); -------------------------------------------------------------------------------- /public/js/dropzone.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $("my-awesome-dropzone").dropzone({ 4 | url: "bootstrapdash.com/" 5 | }); 6 | })(jQuery); -------------------------------------------------------------------------------- /public/js/form-repeater.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('.repeater').repeater({ 5 | // (Optional) 6 | // "defaultValues" sets the values of added items. The keys of 7 | // defaultValues refer to the value of the input's name attribute. 8 | // If a default value is not specified for an input, then it will 9 | // have its value cleared. 10 | defaultValues: { 11 | 'text-input': 'foo' 12 | }, 13 | // (Optional) 14 | // "show" is called just after an item is added. The item is hidden 15 | // at this point. If a show callback is not given the item will 16 | // have $(this).show() called on it. 17 | show: function() { 18 | $(this).slideDown(); 19 | }, 20 | // (Optional) 21 | // "hide" is called when a user clicks on a data-repeater-delete 22 | // element. The item is still visible. "hide" is passed a function 23 | // as its first argument which will properly remove the item. 24 | // "hide" allows for a confirmation step, to send a delete request 25 | // to the server, etc. If a hide callback is not given the item 26 | // will be deleted. 27 | hide: function(deleteElement) { 28 | if (confirm('Are you sure you want to delete this element?')) { 29 | $(this).slideUp(deleteElement); 30 | } 31 | }, 32 | // (Optional) 33 | // Removes the delete button from the first list item, 34 | // defaults to false. 35 | isFirstItemUndeletable: true 36 | }) 37 | }); 38 | })(jQuery); -------------------------------------------------------------------------------- /public/js/form-validation.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $.validator.setDefaults({ 4 | submitHandler: function() { 5 | alert("submitted!"); 6 | } 7 | }); 8 | $(function() { 9 | // validate the comment form when it is submitted 10 | $("#commentForm").validate({ 11 | errorPlacement: function(label, element) { 12 | label.addClass('text-danger'); 13 | label.insertAfter(element); 14 | }, 15 | highlight: function(element, errorClass) { 16 | $(element).parent().addClass('has-danger') 17 | $(element).addClass('form-control-danger') 18 | } 19 | }); 20 | // validate signup form on keyup and submit 21 | $("#signupForm").validate({ 22 | rules: { 23 | firstname: "required", 24 | lastname: "required", 25 | username: { 26 | required: true, 27 | minlength: 2 28 | }, 29 | password: { 30 | required: true, 31 | minlength: 5 32 | }, 33 | confirm_password: { 34 | required: true, 35 | minlength: 5, 36 | equalTo: "#password" 37 | }, 38 | email: { 39 | required: true, 40 | email: true 41 | }, 42 | topic: { 43 | required: "#newsletter:checked", 44 | minlength: 2 45 | }, 46 | agree: "required" 47 | }, 48 | messages: { 49 | firstname: "Please enter your firstname", 50 | lastname: "Please enter your lastname", 51 | username: { 52 | required: "Please enter a username", 53 | minlength: "Your username must consist of at least 2 characters" 54 | }, 55 | password: { 56 | required: "Please provide a password", 57 | minlength: "Your password must be at least 5 characters long" 58 | }, 59 | confirm_password: { 60 | required: "Please provide a password", 61 | minlength: "Your password must be at least 5 characters long", 62 | equalTo: "Please enter the same password as above" 63 | }, 64 | email: "Please enter a valid email address", 65 | agree: "Please accept our policy", 66 | topic: "Please select at least 2 topics" 67 | }, 68 | errorPlacement: function(label, element) { 69 | label.addClass('text-danger'); 70 | label.insertAfter(element); 71 | }, 72 | highlight: function(element, errorClass) { 73 | $(element).parent().addClass('has-danger') 74 | $(element).addClass('form-control-danger') 75 | } 76 | }); 77 | // propose username by combining first- and lastname 78 | $("#username").focus(function() { 79 | var firstname = $("#firstname").val(); 80 | var lastname = $("#lastname").val(); 81 | if (firstname && lastname && !this.value) { 82 | this.value = firstname + "." + lastname; 83 | } 84 | }); 85 | //code to hide topic selection, disable for demo 86 | var newsletter = $("#newsletter"); 87 | // newsletter topics are optional, hide at first 88 | var inital = newsletter.is(":checked"); 89 | var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray"); 90 | var topicInputs = topics.find("input").attr("disabled", !inital); 91 | // show when newsletter is checked 92 | newsletter.on("click", function() { 93 | topics[this.checked ? "removeClass" : "addClass"]("gray"); 94 | topicInputs.attr("disabled", !this.checked); 95 | }); 96 | }); 97 | })(jQuery); -------------------------------------------------------------------------------- /public/js/formpickers.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($(".clockpicker").length) { 4 | $('.clockpicker').clockpicker(); 5 | } 6 | if ($(".color-picker").length) { 7 | $('.color-picker').asColorPicker(); 8 | } 9 | if ($(".datepicker").length) { 10 | $('.datepicker').datepicker({ 11 | enableOnReadonly: true, 12 | todayHighlight: true, 13 | }); 14 | } 15 | if ($(".datepicker-autoclose").length) { 16 | $('.datepicker-autoclose').datepicker({ 17 | autoclose: true 18 | }); 19 | } 20 | if ($('input[name="date-range"]').length) { 21 | $('input[name="date-range"]').daterangepicker(); 22 | } 23 | if ($('input[name="date-time-range"]').length) { 24 | $('input[name="date-time-range"]').daterangepicker({ 25 | timePicker: true, 26 | timePickerIncrement: 30, 27 | locale: { 28 | format: 'MM/DD/YYYY h:mm A' 29 | } 30 | }); 31 | } 32 | })(jQuery); -------------------------------------------------------------------------------- /public/js/hoverable-collapse.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(document).on('mouseenter mouseleave', '.sidebar .nav-item', function(ev) { 4 | var body = $('body'); 5 | var sidebarIconOnly = body.hasClass("sidebar-icon-only"); 6 | var sidebarFixed = body.hasClass("sidebar-fixed"); 7 | if (!('ontouchstart' in document.documentElement)) { 8 | if (sidebarIconOnly) { 9 | if (sidebarFixed) { 10 | if (ev.type === 'mouseenter') { 11 | body.addClass('sidebar-expanded'); 12 | } else { 13 | body.removeClass('sidebar-expanded'); 14 | } 15 | } else { 16 | var $menuItem = $(this); 17 | if (ev.type === 'mouseenter') { 18 | $menuItem.addClass('hover-open') 19 | } else { 20 | $menuItem.removeClass('hover-open') 21 | } 22 | } 23 | } 24 | } 25 | 26 | }); 27 | 28 | //We are handling submenu in horizontal menu layout in a different way 29 | $('[data-toggle="showMegaMenu"]').on("click", function() { 30 | $(this).toggleClass('expanded'); 31 | }).on("mouseenter", function() { 32 | if (!('ontouchstart' in document.documentElement)) { 33 | $(this).addClass('expanded'); 34 | } 35 | }).on("mouseleave", function() { 36 | if (!('ontouchstart' in document.documentElement)) { 37 | $(this).removeClass('expanded'); 38 | } 39 | }); 40 | })(jQuery); -------------------------------------------------------------------------------- /public/js/iCheck.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('.icheck input').iCheck({ 5 | checkboxClass: 'icheckbox_minimal-blue', 6 | radioClass: 'iradio_minimal', 7 | increaseArea: '20%' 8 | }); 9 | $('.icheck-square input').iCheck({ 10 | checkboxClass: 'icheckbox_square-blue', 11 | radioClass: 'iradio_square', 12 | increaseArea: '20%' 13 | }); 14 | $('.icheck-flat input').iCheck({ 15 | checkboxClass: 'icheckbox_flat-blue', 16 | radioClass: 'iradio_flat', 17 | increaseArea: '20%' 18 | }); 19 | var icheckLineArray = $('.icheck-line input'); 20 | for (var i = 0; i < icheckLineArray.length; i++) { 21 | var self = $(icheckLineArray[i]); 22 | var label = self.next(); 23 | var label_text = label.text(); 24 | 25 | label.remove(); 26 | self.iCheck({ 27 | checkboxClass: 'icheckbox_line-blue', 28 | radioClass: 'iradio_line', 29 | insert: '' + label_text 30 | }); 31 | } 32 | $('.icheck-polaris input').iCheck({ 33 | checkboxClass: 'icheckbox_polaris', 34 | radioClass: 'iradio_polaris', 35 | increaseArea: '20%' 36 | }); 37 | $('.icheck-futurico input').iCheck({ 38 | checkboxClass: 'icheckbox_futurico', 39 | radioClass: 'iradio_futurico', 40 | increaseArea: '20%' 41 | }); 42 | }); 43 | })(jQuery); -------------------------------------------------------------------------------- /public/js/ion-rangeSlider.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | if ($('#range_01').length) { 5 | $("#range_01").ionRangeSlider(); 6 | } 7 | 8 | if ($("#range_02").length) { 9 | $("#range_02").ionRangeSlider({ 10 | min: 100, 11 | max: 1000, 12 | from: 550 13 | }); 14 | } 15 | 16 | if ($("#range_03").length) { 17 | $("#range_03").ionRangeSlider({ 18 | type: "double", 19 | grid: true, 20 | min: 0, 21 | max: 1000, 22 | from: 200, 23 | to: 800, 24 | prefix: "$" 25 | }); 26 | } 27 | 28 | if ($("#range_04").length) { 29 | $("#range_04").ionRangeSlider({ 30 | type: "double", 31 | min: 100, 32 | max: 200, 33 | from: 145, 34 | to: 155, 35 | prefix: "Weight: ", 36 | postfix: " million pounds", 37 | decorate_both: true 38 | }); 39 | } 40 | 41 | if ($("#range_05").length) { 42 | $("#range_05").ionRangeSlider({ 43 | type: "double", 44 | min: 1000, 45 | max: 2000, 46 | from: 1200, 47 | to: 1800, 48 | hide_min_max: true, 49 | hide_from_to: true, 50 | grid: false 51 | }); 52 | } 53 | 54 | if ($("#range_06").length) { 55 | $("#range_06").ionRangeSlider({ 56 | type: "double", 57 | min: 1000, 58 | max: 2000, 59 | from: 1200, 60 | to: 1800, 61 | hide_min_max: true, 62 | hide_from_to: true, 63 | grid: true 64 | }); 65 | } 66 | 67 | if ($("#range_07").length) { 68 | $("#range_07").ionRangeSlider({ 69 | type: "double", 70 | grid: true, 71 | min: 0, 72 | max: 10000, 73 | from: 1000, 74 | prefix: "$" 75 | }); 76 | } 77 | 78 | if ($("#range_08").length) { 79 | $("#range_08").ionRangeSlider({ 80 | type: "single", 81 | grid: true, 82 | min: -90, 83 | max: 90, 84 | from: 0, 85 | postfix: "°" 86 | }); 87 | } 88 | 89 | if ($("#range_09").length) { 90 | $("#range_09").ionRangeSlider({ 91 | type: "double", 92 | min: 0, 93 | max: 10000, 94 | grid: true 95 | }); 96 | } 97 | 98 | if ($("#range_10").length) { 99 | $("#range_10").ionRangeSlider({ 100 | type: "double", 101 | min: 0, 102 | max: 10000, 103 | grid: true, 104 | grid_num: 10 105 | }); 106 | } 107 | 108 | if ($("#range_11").length) { 109 | $("#range_11").ionRangeSlider({ 110 | type: "double", 111 | min: 0, 112 | max: 10000, 113 | step: 500, 114 | grid: true, 115 | grid_snap: true 116 | }); 117 | } 118 | 119 | if ($("#range_12").length) { 120 | $("#range_12").ionRangeSlider({ 121 | type: "single", 122 | min: 0, 123 | max: 10, 124 | step: 2.34, 125 | grid: true, 126 | grid_snap: true 127 | }); 128 | } 129 | 130 | if ($("#range_13").length) { 131 | $("#range_13").ionRangeSlider({ 132 | type: "double", 133 | min: 0, 134 | max: 100, 135 | from: 30, 136 | to: 70, 137 | from_fixed: true 138 | }); 139 | } 140 | 141 | if ($("#range_14").length) { 142 | $("#range_14").ionRangeSlider({ 143 | min: 0, 144 | max: 100, 145 | from: 30, 146 | from_min: 10, 147 | from_max: 50 148 | }); 149 | } 150 | 151 | if ($("#range_15").length) { 152 | $("#range_15").ionRangeSlider({ 153 | min: 0, 154 | max: 100, 155 | from: 30, 156 | from_min: 10, 157 | from_max: 50, 158 | from_shadow: true 159 | }); 160 | } 161 | 162 | if ($("#range_16").length) { 163 | $("#range_16").ionRangeSlider({ 164 | type: "double", 165 | min: 0, 166 | max: 100, 167 | from: 20, 168 | from_min: 10, 169 | from_max: 30, 170 | from_shadow: true, 171 | to: 80, 172 | to_min: 70, 173 | to_max: 90, 174 | to_shadow: true, 175 | grid: true, 176 | grid_num: 10 177 | }); 178 | } 179 | 180 | if ($("#range_17").length) { 181 | $("#range_17").ionRangeSlider({ 182 | min: 0, 183 | max: 100, 184 | from: 30, 185 | disable: true 186 | }); 187 | } 188 | 189 | })(jQuery); -------------------------------------------------------------------------------- /public/js/jq.tablesort.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jq.TableSort -- jQuery Table sorter Plug-in. 3 | * 4 | * Version 1.0.0. 5 | * 6 | * Copyright (c) 2017 Dmitry Zavodnikov. 7 | * 8 | * Licensed under the MIT License. 9 | */ 10 | (function($) { 11 | 'use strict'; 12 | var SORT = 'sort'; 13 | var ASC = 'asc'; 14 | var DESC = 'desc'; 15 | var UNSORT = 'unsort'; 16 | 17 | var config = { 18 | defaultColumn: 0, 19 | defaultOrder: 'asc', 20 | styles: { 21 | 'sort': 'sortStyle', 22 | 'asc': 'ascStyle', 23 | 'desc': 'descStyle', 24 | 'unsort': 'unsortStyle' 25 | }, 26 | selector: function(tableBody, column) { 27 | var groups = []; 28 | 29 | var tableRows = $(tableBody).find('tr'); 30 | for (var i = 0; i < tableRows.length; i++) { 31 | var td = $(tableRows[i]).find('td')[column]; 32 | 33 | groups.push({ 34 | 'values': [tableRows[i]], 35 | 'key': $(td).text() 36 | }); 37 | } 38 | return groups; 39 | }, 40 | comparator: function(group1, group2) { 41 | return group1.key.localeCompare(group2.key); 42 | } 43 | }; 44 | 45 | function getTableHeaders(table) { 46 | return $(table).find('thead > tr > th'); 47 | } 48 | 49 | function getSortableTableHeaders(table) { 50 | return getTableHeaders(table).filter(function(index) { 51 | return $(this).hasClass(config.styles[SORT]); 52 | }); 53 | } 54 | 55 | function changeOrder(table, column) { 56 | var sortedHeader = getTableHeaders(table).filter(function(index) { 57 | return $(this).hasClass(config.styles[ASC]) || $(this).hasClass(config.styles[DESC]); 58 | }); 59 | 60 | var sordOrder = config.defaultOrder; 61 | if (sortedHeader.hasClass(config.styles[ASC])) { 62 | sordOrder = ASC; 63 | } 64 | if (sortedHeader.hasClass(config.styles[DESC])) { 65 | sordOrder = DESC; 66 | } 67 | 68 | var th = getTableHeaders(table)[column]; 69 | 70 | if (th === sortedHeader[0]) { 71 | if (sordOrder === ASC) { 72 | sordOrder = DESC; 73 | } else { 74 | sordOrder = ASC; 75 | } 76 | } 77 | 78 | var headers = getSortableTableHeaders(table); 79 | headers.removeClass(config.styles[ASC]); 80 | headers.removeClass(config.styles[DESC]); 81 | headers.addClass(config.styles[UNSORT]); 82 | 83 | $(th).removeClass(config.styles[UNSORT]); 84 | $(th).addClass(config.styles[sordOrder]); 85 | 86 | var tbody = $(table).find('tbody')[0]; 87 | var groups = config.selector(tbody, column); 88 | 89 | // Sorting. 90 | groups.sort(function(a, b) { 91 | var res = config.comparator(a, b); 92 | return sordOrder === ASC ? res : -1 * res; 93 | }); 94 | 95 | for (var i = 0; i < groups.length; i++) { 96 | var trList = groups[i]; 97 | var trListValues = trList.values; 98 | for (var j = 0; j < trListValues.length; j++) { 99 | tbody.append(trListValues[j]); 100 | } 101 | } 102 | } 103 | 104 | $.fn.tablesort = function(userConfig) { 105 | // Create and save table sort configuration. 106 | $.extend(config, userConfig); 107 | 108 | // Process all selected tables. 109 | var selectedTables = this; 110 | for (var i = 0; i < selectedTables.length; i++) { 111 | var table = selectedTables[i]; 112 | var tableHeader = getSortableTableHeaders(table); 113 | for (var j = 0; j < tableHeader.length; j++) { 114 | var th = tableHeader[j]; 115 | $(th).on("click", function(event) { 116 | var clickColumn = $.inArray(event.currentTarget, getTableHeaders(table)); 117 | changeOrder(table, clickColumn); 118 | }); 119 | } 120 | } 121 | return this; 122 | }; 123 | })(jQuery); -------------------------------------------------------------------------------- /public/js/jquery-file-upload.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($("#fileuploader").length) { 4 | $("#fileuploader").uploadFile({ 5 | url: "YOUR_FILE_UPLOAD_URL", 6 | fileName: "myfile" 7 | }); 8 | } 9 | })(jQuery); -------------------------------------------------------------------------------- /public/js/just-gage.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var g1, g2, gg1, g7, g8, g9, g10; 4 | 5 | window.onload = function() { 6 | var g1 = new JustGage({ 7 | id: "g1", 8 | value: getRandomInt(0, 100), 9 | min: 0, 10 | max: 100, 11 | title: "Big Fella", 12 | label: "pounds" 13 | }); 14 | 15 | 16 | setInterval(function() { 17 | g1.refresh(getRandomInt(50, 100)); 18 | }, 2500); 19 | }; 20 | 21 | 22 | 23 | 24 | document.addEventListener("DOMContentLoaded", function(event) { 25 | g2 = new JustGage({ 26 | id: "g2", 27 | value: 72, 28 | min: 0, 29 | max: 100, 30 | donut: true, 31 | gaugeWidthScale: 0.6, 32 | counter: true, 33 | hideInnerShadow: true 34 | }); 35 | 36 | document.getElementById('g2_refresh').addEventListener('click', function() { 37 | g2.refresh(getRandomInt(0, 100)); 38 | }); 39 | 40 | var g3 = new JustGage({ 41 | id: 'g3', 42 | value: 65, 43 | min: 0, 44 | max: 100, 45 | symbol: '%', 46 | pointer: true, 47 | gaugeWidthScale: 0.6, 48 | customSectors: [{ 49 | color: '#ff0000', 50 | lo: 50, 51 | hi: 100 52 | }, { 53 | color: '#00ff00', 54 | lo: 0, 55 | hi: 50 56 | }], 57 | counter: true 58 | }); 59 | 60 | var g4 = new JustGage({ 61 | id: 'g4', 62 | value: 45, 63 | min: 0, 64 | max: 100, 65 | symbol: '%', 66 | pointer: true, 67 | pointerOptions: { 68 | toplength: -15, 69 | bottomlength: 10, 70 | bottomwidth: 12, 71 | color: '#8e8e93', 72 | stroke: '#ffffff', 73 | stroke_width: 3, 74 | stroke_linecap: 'round' 75 | }, 76 | gaugeWidthScale: 0.6, 77 | counter: true 78 | }); 79 | 80 | var g5 = new JustGage({ 81 | id: 'g5', 82 | value: 40, 83 | min: 0, 84 | max: 100, 85 | symbol: '%', 86 | donut: true, 87 | pointer: true, 88 | gaugeWidthScale: 0.4, 89 | pointerOptions: { 90 | toplength: 10, 91 | bottomlength: 10, 92 | bottomwidth: 8, 93 | color: '#000' 94 | }, 95 | customSectors: [{ 96 | color: "#ff0000", 97 | lo: 50, 98 | hi: 100 99 | }, { 100 | color: "#00ff00", 101 | lo: 0, 102 | hi: 50 103 | }], 104 | counter: true 105 | }); 106 | 107 | var g6 = new JustGage({ 108 | id: 'g6', 109 | value: 70, 110 | min: 0, 111 | max: 100, 112 | symbol: '%', 113 | pointer: true, 114 | pointerOptions: { 115 | toplength: 8, 116 | bottomlength: -20, 117 | bottomwidth: 6, 118 | color: '#8e8e93' 119 | }, 120 | gaugeWidthScale: 0.1, 121 | counter: true 122 | }); 123 | 124 | var g7 = new JustGage({ 125 | id: 'g7', 126 | value: 65, 127 | min: 0, 128 | max: 100, 129 | reverse: true, 130 | gaugeWidthScale: 0.6, 131 | customSectors: [{ 132 | color: '#ff0000', 133 | lo: 50, 134 | hi: 100 135 | }, { 136 | color: '#00ff00', 137 | lo: 0, 138 | hi: 50 139 | }], 140 | counter: true 141 | }); 142 | 143 | var g8 = new JustGage({ 144 | id: 'g8', 145 | value: 45, 146 | min: 0, 147 | max: 500, 148 | reverse: true, 149 | gaugeWidthScale: 0.6, 150 | counter: true 151 | }); 152 | 153 | var g9 = new JustGage({ 154 | id: 'g9', 155 | value: 25000, 156 | min: 0, 157 | max: 100000, 158 | humanFriendly: true, 159 | reverse: true, 160 | gaugeWidthScale: 1.3, 161 | customSectors: [{ 162 | color: "#ff0000", 163 | lo: 50000, 164 | hi: 100000 165 | }, { 166 | color: "#00ff00", 167 | lo: 0, 168 | hi: 50000 169 | }], 170 | counter: true 171 | }); 172 | 173 | var g10 = new JustGage({ 174 | id: 'g10', 175 | value: 90, 176 | min: 0, 177 | max: 100, 178 | symbol: '%', 179 | reverse: true, 180 | gaugeWidthScale: 0.1, 181 | counter: true 182 | }); 183 | 184 | document.getElementById('gauge_refresh').addEventListener('click', function() { 185 | g3.refresh(getRandomInt(0, 100)); 186 | g4.refresh(getRandomInt(0, 100)); 187 | g5.refresh(getRandomInt(0, 100)); 188 | g6.refresh(getRandomInt(0, 100)); 189 | g7.refresh(getRandomInt(0, 100)); 190 | g8.refresh(getRandomInt(0, 100)); 191 | g9.refresh(getRandomInt(0, 100)); 192 | g10.refresh(getRandomInt(0, 100)); 193 | }); 194 | 195 | }); 196 | 197 | })(jQuery); -------------------------------------------------------------------------------- /public/js/light-gallery.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($("#lightgallery").length) { 4 | $("#lightgallery").lightGallery(); 5 | } 6 | 7 | if ($("#lightgallery-without-thumb").length) { 8 | $("#lightgallery-without-thumb").lightGallery({ 9 | thumbnail: true, 10 | animateThumb: false, 11 | showThumbByDefault: false 12 | }); 13 | } 14 | 15 | if ($("#video-gallery").length) { 16 | $("#video-gallery").lightGallery(); 17 | } 18 | })(jQuery); -------------------------------------------------------------------------------- /public/js/listify.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var options = { 4 | valueNames: ['name', 'born'] 5 | }; 6 | 7 | var userList = new List('users', options); 8 | })(jQuery); -------------------------------------------------------------------------------- /public/js/mail.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | var labelClone = $('.label-clone'); 5 | for (var i = 0; i < labelClone.length; i++) { 6 | var id = $(labelClone[i]).find(".checkbox-dib").attr('id'); 7 | $(labelClone[i]).append(''); 8 | $(labelClone[i]).find("label").attr("for", id); 9 | } 10 | }); 11 | })(jQuery); -------------------------------------------------------------------------------- /public/js/mapeal.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 'use strict'; 3 | if ($(".mapeal-container").length) { 4 | $(".mapeal-container").mapael({ 5 | map: { 6 | name: "world_countries" 7 | } 8 | }); 9 | } 10 | }); -------------------------------------------------------------------------------- /public/js/mapeal_example_3.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 'use strict'; 3 | if ($(".mapeal-example-3").length) { 4 | $(".mapeal-example-3").mapael({ 5 | map: { 6 | name: "france_departments", 7 | defaultArea: { 8 | attrs: { 9 | fill: "#f4f4e8", 10 | stroke: "#00a1fe" 11 | }, 12 | attrsHover: { 13 | fill: "#a4e100" 14 | } 15 | } 16 | }, 17 | legend: { 18 | plot: [{ 19 | labelAttrs: { 20 | fill: "#4a4a4a" 21 | }, 22 | titleAttrs: { 23 | fill: "#4a4a4a" 24 | }, 25 | cssClass: 'population', 26 | mode: 'horizontal', 27 | title: "Population", 28 | marginBottomTitle: 5, 29 | slices: [{ 30 | size: 15, 31 | legendSpecificAttrs: { 32 | fill: '#00a1fe', 33 | stroke: '#f4f4e8', 34 | "stroke-width": 2 35 | }, 36 | label: "< 10 000", 37 | max: "10000" 38 | }, { 39 | size: 30, 40 | legendSpecificAttrs: { 41 | fill: '#00a1fe', 42 | stroke: '#f4f4e8', 43 | "stroke-width": 2 44 | }, 45 | label: "> 10 000 and < 100 000", 46 | min: "10000", 47 | max: "100000" 48 | }, { 49 | size: 50, 50 | legendSpecificAttrs: { 51 | fill: '#00a1fe', 52 | stroke: '#f4f4e8', 53 | "stroke-width": 2 54 | }, 55 | label: "> 100 000", 56 | min: "100000" 57 | }] 58 | }, { 59 | labelAttrs: { 60 | fill: "#4a4a4a" 61 | }, 62 | titleAttrs: { 63 | fill: "#f4f4e8" 64 | }, 65 | cssClass: 'density', 66 | mode: 'horizontal', 67 | title: "Density", 68 | marginBottomTitle: 5, 69 | slices: [{ 70 | label: "< 50", 71 | max: "50", 72 | attrs: { 73 | fill: "#fef500" 74 | }, 75 | legendSpecificAttrs: { 76 | r: 25 77 | } 78 | }, { 79 | label: "> 50 and < 500", 80 | min: "50", 81 | max: "500", 82 | attrs: { 83 | fill: "#fe6c00" 84 | }, 85 | legendSpecificAttrs: { 86 | r: 25 87 | } 88 | }, { 89 | label: "> 500", 90 | min: "500", 91 | attrs: { 92 | fill: "#dc0000" 93 | }, 94 | legendSpecificAttrs: { 95 | r: 25 96 | } 97 | }] 98 | }] 99 | }, 100 | plots: { 101 | 'ny': { 102 | latitude: 40.717079, 103 | longitude: -74.00116, 104 | tooltip: { 105 | content: "New York" 106 | }, 107 | value: [5000, 20] 108 | }, 109 | 'an': { 110 | latitude: 61.2108398, 111 | longitude: -149.9019557, 112 | tooltip: { 113 | content: "Anchorage" 114 | }, 115 | value: [50000, 20] 116 | }, 117 | 'sf': { 118 | latitude: 37.792032, 119 | longitude: -122.394613, 120 | tooltip: { 121 | content: "San Francisco" 122 | }, 123 | value: [150000, 20] 124 | }, 125 | 'pa': { 126 | latitude: 19.493204, 127 | longitude: -154.8199569, 128 | tooltip: { 129 | content: "Pahoa" 130 | }, 131 | value: [5000, 200] 132 | }, 133 | 'la': { 134 | latitude: 34.025052, 135 | longitude: -118.192006, 136 | tooltip: { 137 | content: "Los Angeles" 138 | }, 139 | value: [50000, 200] 140 | }, 141 | 'dallas': { 142 | latitude: 32.784881, 143 | longitude: -96.808244, 144 | tooltip: { 145 | content: "Dallas" 146 | }, 147 | value: [150000, 200] 148 | }, 149 | 'miami': { 150 | latitude: 25.789125, 151 | longitude: -80.205674, 152 | tooltip: { 153 | content: "Miami" 154 | }, 155 | value: [5000, 2000] 156 | }, 157 | 'washington': { 158 | latitude: 38.905761, 159 | longitude: -77.020746, 160 | tooltip: { 161 | content: "Washington" 162 | }, 163 | value: [50000, 2000] 164 | }, 165 | 'seattle': { 166 | latitude: 47.599571, 167 | longitude: -122.319426, 168 | tooltip: { 169 | content: "Seattle" 170 | }, 171 | value: [150000, 2000] 172 | }, 173 | 'test1': { 174 | latitude: 44.671504, 175 | longitude: -110.957968, 176 | tooltip: { 177 | content: "Test 1" 178 | }, 179 | value: [5000, 2000] 180 | }, 181 | 'test2': { 182 | latitude: 40.667013, 183 | longitude: -101.465781, 184 | tooltip: { 185 | content: "Test 2" 186 | }, 187 | value: [50000, 200] 188 | }, 189 | 'test3': { 190 | latitude: 38.362031, 191 | longitude: -86.875938, 192 | tooltip: { 193 | content: "Test 3" 194 | }, 195 | value: [150000, 20] 196 | } 197 | } 198 | }); 199 | } 200 | }); -------------------------------------------------------------------------------- /public/js/maps.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($('#vmap').length) { 4 | jQuery('#vmap').vectorMap({ 5 | map: 'world_en' 6 | }); 7 | } 8 | if ($('#vmap-regions').length) { 9 | var activeNations = new Array("us", "de", "au", "gb", "ro", "br"); 10 | 11 | jQuery('#vmap-regions').vectorMap({ 12 | map: 'world_en', 13 | backgroundColor: 'transparent', 14 | borderOpacity: 0.01, 15 | borderWidth: 2, 16 | borderColor: '#000', 17 | color: '#e2e2e2', 18 | enableZoom: false, 19 | hoverColor: '#2796E9', 20 | hoverOpacity: null, 21 | normalizeFunction: 'linear', 22 | selectedColor: '#58D8A3', 23 | selectedRegions: activeNations, 24 | showTooltip: true, 25 | onRegionClick: function(element, code, region) { 26 | if (activeNations.indexOf(code) > -1) { 27 | // dom interaction outside the map 28 | // ... 29 | } else { 30 | element.preventDefault(); 31 | } 32 | } 33 | }); 34 | } 35 | if ($("#WorldMap").length) { 36 | var activeNations = new Array("us", "de", "au", "gb", "ro", "br"); 37 | 38 | jQuery('#WorldMap').vectorMap({ 39 | map: 'world_en', 40 | backgroundColor: 'transparent', 41 | borderOpacity: 0.01, 42 | borderWidth: 2, 43 | borderColor: '#000', 44 | color: '#e2e2e2', 45 | enableZoom: false, 46 | hoverColor: '#2796E9', 47 | hoverOpacity: null, 48 | normalizeFunction: 'linear', 49 | selectedColor: '#58D8A3', 50 | selectedRegions: activeNations, 51 | showTooltip: true, 52 | onRegionClick: function(element, code, region) { 53 | if (activeNations.indexOf(code) > -1) { 54 | // dom interaction outside the map 55 | // ... 56 | } else { 57 | element.preventDefault(); 58 | } 59 | } 60 | }); 61 | } 62 | if ($("#map-with-marker").length) { 63 | jQuery('#map-with-marker').vectorMap({ 64 | map: 'world_en', 65 | backgroundColor: 'transparent', 66 | borderOpacity: 0.01, 67 | borderWidth: 2, 68 | borderColor: '#000', 69 | color: '#2796E9', 70 | enableZoom: true, 71 | hoverColor: '#2796E9', 72 | hoverOpacity: null, 73 | normalizeFunction: 'linear', 74 | selectedColor: '#58D8A3', 75 | showTooltip: true, 76 | }); 77 | } 78 | })(jQuery); 79 | 80 | var map; 81 | if ($('#map').length) { 82 | function initMap() { 83 | map = new google.maps.Map(document.getElementById('map'), { 84 | center: { 85 | lat: -34.397, 86 | lng: 150.644 87 | }, 88 | zoom: 8 89 | }); 90 | }; 91 | } -------------------------------------------------------------------------------- /public/js/misc.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | var body = $('body'); 5 | var contentWrapper = $('.content-wrapper'); 6 | var scroller = $('.container-scroller'); 7 | var footer = $('.footer'); 8 | var sidebar = $('.sidebar'); 9 | 10 | //Add active class to nav-link based on url dynamically 11 | //Active class can be hard coded directly in html file also as required 12 | var current = location.pathname.split("/").slice(-1)[0].replace(/^\/|\/$/g, ''); 13 | $('.nav li a', sidebar).each(function() { 14 | var $this = $(this); 15 | if (current === "") { 16 | //for root url 17 | if ($this.attr('href').indexOf("index.html") !== -1) { 18 | $(this).parents('.nav-item').last().addClass('active'); 19 | if ($(this).parents('.sub-menu').length) { 20 | $(this).closest('.collapse').addClass('show'); 21 | $(this).addClass('active'); 22 | } 23 | } 24 | } else { 25 | //for other url 26 | if ($this.attr('href').indexOf(current) !== -1) { 27 | $(this).parents('.nav-item').last().addClass('active'); 28 | if ($(this).parents('.sub-menu').length) { 29 | $(this).closest('.collapse').addClass('show'); 30 | $(this).addClass('active'); 31 | } 32 | } 33 | } 34 | }) 35 | 36 | //Close other submenu in sidebar on opening any 37 | 38 | sidebar.on('show.bs.collapse', '.collapse', function() { 39 | sidebar.find('.collapse.show').collapse('hide'); 40 | }); 41 | 42 | 43 | //Change sidebar and content-wrapper height 44 | applyStyles(); 45 | 46 | function applyStyles() { 47 | 48 | //setting content wrapper height 49 | if (!(body.hasClass("horizontal-menu") && window.matchMedia('(min-width: 992px)').matches)) { 50 | setTimeout(function() { 51 | if (contentWrapper.outerHeight() < (sidebar.outerHeight() - footer.outerHeight())) { 52 | contentWrapper.css({ 53 | 'min-height': sidebar.outerHeight() - footer.outerHeight() 54 | }); 55 | } 56 | 57 | if (sidebar.outerHeight() < (contentWrapper.outerHeight() + footer.outerHeight())) { 58 | sidebar.css({ 59 | 'min-height': contentWrapper.outerHeight() + footer.outerHeight() 60 | }); 61 | } 62 | 63 | }, 10); 64 | } else { 65 | contentWrapper.css({ 66 | 'min-height': '100vh' 67 | }); 68 | } 69 | 70 | //Applying perfect scrollbar 71 | if (!body.hasClass("rtl")) { 72 | $('.list-wrapper, ul.chats, .product-chart-wrapper, .table-responsive').perfectScrollbar(); 73 | scroller.perfectScrollbar({ 74 | suppressScrollX: true, 75 | wheelSpeed: 2, 76 | swipeEasing: true 77 | }); 78 | if (body.hasClass("sidebar-fixed")) { 79 | $('#sidebar .nav').perfectScrollbar(); 80 | } 81 | } 82 | } 83 | 84 | //Updating contetnt wrapper height to sidebar height on expanding a menu in sidebar 85 | $('.sidebar [data-toggle="collapse"]').on("click", function(event) { 86 | var clickedItem = $(this); 87 | if (clickedItem.attr('aria-expanded') === 'false') { 88 | var scrollTop = scroller.scrollTop() - 20; 89 | } else { 90 | var scrollTop = scroller.scrollTop() - 100; 91 | } 92 | setTimeout(function() { 93 | if (contentWrapper.outerHeight() + footer.outerHeight() !== sidebar.outerHeight()) { 94 | applyStyles(); 95 | scroller.animate({ 96 | scrollTop: scrollTop 97 | }, 350); 98 | scroller.perfectScrollbar('update'); 99 | } 100 | }, 400); 101 | }) 102 | 103 | //Updating content wrapper height to sidebar height in mobile view horizontal menu 104 | $('.sidebar [data-toggle="showMegaMenu"]').on("click", function(event) { 105 | var clickedItem = $(this); 106 | if (clickedItem.hasClass('expanded')) { 107 | var scrollTop = scroller.scrollTop() - 20; 108 | } else { 109 | var scrollTop = scroller.scrollTop() - 100; 110 | } 111 | setTimeout(function() { 112 | if (contentWrapper.outerHeight() + footer.outerHeight() !== sidebar.outerHeight()) { 113 | applyStyles(); 114 | scroller.animate({ 115 | scrollTop: scrollTop 116 | }, 350); 117 | scroller.perfectScrollbar('update'); 118 | } 119 | }, 400); 120 | }) 121 | 122 | $('[data-toggle="minimize"]').on("click", function() { 123 | if ((body.hasClass('sidebar-toggle-display')) || (body.hasClass('sidebar-absolute'))) { 124 | body.toggleClass('sidebar-hidden'); 125 | applyStyles(); 126 | } else { 127 | body.toggleClass('sidebar-icon-only'); 128 | applyStyles(); 129 | } 130 | }); 131 | 132 | //checkbox and radios 133 | $(".form-check label,.form-radio label").append(''); 134 | }); 135 | })(jQuery); -------------------------------------------------------------------------------- /public/js/modal-demo.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $('#exampleModal').on('show.bs.modal', function(event) { 4 | var button = $(event.relatedTarget) // Button that triggered the modal 5 | var recipient = button.data('whatever') // Extract info from data-* attributes 6 | // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). 7 | // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. 8 | var modal = $(this) 9 | modal.find('.modal-title').text('New message to ' + recipient) 10 | modal.find('.modal-body input').val(recipient) 11 | }) 12 | })(jQuery); -------------------------------------------------------------------------------- /public/js/morris.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('#morris-line-example').length) { 5 | Morris.Line({ 6 | element: 'morris-line-example', 7 | lineColors: ['#63CF72', '#F36368', '#76C1FA', '#FABA66'], 8 | data: [{ 9 | y: '2006', 10 | a: 100, 11 | b: 150 12 | }, 13 | { 14 | y: '2007', 15 | a: 75, 16 | b: 65 17 | }, 18 | { 19 | y: '2008', 20 | a: 50, 21 | b: 40 22 | }, 23 | { 24 | y: '2009', 25 | a: 75, 26 | b: 65 27 | }, 28 | { 29 | y: '2010', 30 | a: 50, 31 | b: 40 32 | }, 33 | { 34 | y: '2011', 35 | a: 75, 36 | b: 65 37 | }, 38 | { 39 | y: '2012', 40 | a: 100, 41 | b: 90 42 | } 43 | ], 44 | xkey: 'y', 45 | ykeys: ['a', 'b'], 46 | labels: ['Series A', 'Series B'] 47 | }); 48 | } 49 | if ($('#morris-area-example').length) { 50 | Morris.Area({ 51 | element: 'morris-area-example', 52 | lineColors: ['#76C1FA', '#F36368', '#63CF72', '#FABA66'], 53 | data: [{ 54 | y: '2006', 55 | a: 100, 56 | b: 90 57 | }, 58 | { 59 | y: '2007', 60 | a: 75, 61 | b: 105 62 | }, 63 | { 64 | y: '2008', 65 | a: 50, 66 | b: 40 67 | }, 68 | { 69 | y: '2009', 70 | a: 75, 71 | b: 65 72 | }, 73 | { 74 | y: '2010', 75 | a: 50, 76 | b: 40 77 | }, 78 | { 79 | y: '2011', 80 | a: 75, 81 | b: 65 82 | }, 83 | { 84 | y: '2012', 85 | a: 100, 86 | b: 90 87 | } 88 | ], 89 | xkey: 'y', 90 | ykeys: ['a', 'b'], 91 | labels: ['Series A', 'Series B'] 92 | }); 93 | } 94 | if ($("#morris-bar-example").length) { 95 | Morris.Bar({ 96 | element: 'morris-bar-example', 97 | barColors: ['#63CF72', '#F36368', '#76C1FA', '#FABA66'], 98 | data: [{ 99 | y: '2006', 100 | a: 100, 101 | b: 90 102 | }, 103 | { 104 | y: '2007', 105 | a: 75, 106 | b: 65 107 | }, 108 | { 109 | y: '2008', 110 | a: 50, 111 | b: 40 112 | }, 113 | { 114 | y: '2009', 115 | a: 75, 116 | b: 65 117 | }, 118 | { 119 | y: '2010', 120 | a: 50, 121 | b: 40 122 | }, 123 | { 124 | y: '2011', 125 | a: 75, 126 | b: 65 127 | }, 128 | { 129 | y: '2012', 130 | a: 100, 131 | b: 90 132 | } 133 | ], 134 | xkey: 'y', 135 | ykeys: ['a', 'b'], 136 | labels: ['Series A', 'Series B'] 137 | }); 138 | } 139 | if ($("#morris-donut-example").length) { 140 | Morris.Donut({ 141 | element: 'morris-donut-example', 142 | colors: ['#76C1FA', '#F36368', '#63CF72', '#FABA66'], 143 | data: [{ 144 | label: "Download Sales", 145 | value: 12 146 | }, 147 | { 148 | label: "In-Store Sales", 149 | value: 30 150 | }, 151 | { 152 | label: "Mail-Order Sales", 153 | value: 20 154 | } 155 | ] 156 | }); 157 | } 158 | if ($('#morris-dashboard-taget').length) { 159 | Morris.Area({ 160 | element: 'morris-dashboard-taget', 161 | parseTime: false, 162 | lineColors: ['#76C1FA', '#F36368', '#63CF72', '#FABA66'], 163 | data: [{ 164 | y: 'Jan', 165 | Revenue: 190, 166 | Target: 170 167 | }, 168 | { 169 | y: 'Feb', 170 | Revenue: 60, 171 | Target: 90 172 | }, 173 | { 174 | y: 'March', 175 | Revenue: 100, 176 | Target: 120 177 | }, 178 | { 179 | y: 'Apr', 180 | Revenue: 150, 181 | Target: 140 182 | }, 183 | { 184 | y: 'May', 185 | Revenue: 130, 186 | Target: 170 187 | }, 188 | { 189 | y: 'Jun', 190 | Revenue: 200, 191 | Target: 160 192 | }, 193 | { 194 | y: 'Jul', 195 | Revenue: 150, 196 | Target: 180 197 | }, 198 | { 199 | y: 'Aug', 200 | Revenue: 170, 201 | Target: 180 202 | }, 203 | { 204 | y: 'Sep', 205 | Revenue: 140, 206 | Target: 90 207 | } 208 | ], 209 | xkey: 'y', 210 | ykeys: ['Target', 'Revenue'], 211 | labels: ['Monthly Target', 'Monthly Revenue'], 212 | hideHover: 'auto', 213 | behaveLikeLine: true, 214 | resize: true, 215 | axes: 'x' 216 | }); 217 | } 218 | }); 219 | })(jQuery); -------------------------------------------------------------------------------- /public/js/no-ui-slider.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | var startSlider = document.getElementById('ui-slider'); 4 | noUiSlider.create(startSlider, { 5 | start: [20], 6 | connect: [true, false], 7 | range: { 8 | 'min': [0], 9 | 'max': [100] 10 | } 11 | }); 12 | 13 | var rangeSlider = document.getElementById('ui-range-slider'); 14 | noUiSlider.create(rangeSlider, { 15 | start: [30, 40], 16 | connect: [false, true, false], 17 | range: { 18 | 'min': [0], 19 | 'max': [100] 20 | } 21 | }); 22 | 23 | var connectSlider = document.getElementById('ui-slider-colored-1'); 24 | noUiSlider.create(connectSlider, { 25 | start: 30, 26 | connect: [true, false], 27 | range: { 28 | 'min': 0, 29 | 'max': 100 30 | } 31 | }); 32 | 33 | var connectSlider = document.getElementById('ui-slider-colored-2'); 34 | noUiSlider.create(connectSlider, { 35 | start: 40, 36 | connect: [true, false], 37 | range: { 38 | 'min': 0, 39 | 'max': 100 40 | } 41 | }); 42 | 43 | var connectSlider = document.getElementById('ui-slider-colored-3'); 44 | noUiSlider.create(connectSlider, { 45 | start: 50, 46 | connect: [true, false], 47 | range: { 48 | 'min': 0, 49 | 'max': 100 50 | } 51 | }); 52 | 53 | var connectSlider = document.getElementById('ui-slider-colored-4'); 54 | noUiSlider.create(connectSlider, { 55 | start: 60, 56 | connect: [true, false], 57 | range: { 58 | 'min': 0, 59 | 'max': 100 60 | } 61 | }); 62 | 63 | var slider = document.getElementById('ui-slider-multi-colored'); 64 | noUiSlider.create(slider, { 65 | start: [4000, 8000, 12000, 16000], 66 | connect: [false, true, true, true, true], 67 | range: { 68 | 'min': [2000], 69 | 'max': [20000] 70 | } 71 | }); 72 | var connect = slider.querySelectorAll('.noUi-connect'); 73 | var classes = ['bg-warning', 'bg-success', 'bg-info', 'bg-danger']; 74 | for (var i = 0; i < connect.length; i++) { 75 | connect[i].classList.add(classes[i]); 76 | } 77 | 78 | })(jQuery); -------------------------------------------------------------------------------- /public/js/off-canvas.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $('[data-toggle="offcanvas"]').on("click", function() { 5 | $('.row-offcanvas').toggleClass('active') 6 | }); 7 | }); 8 | })(jQuery); -------------------------------------------------------------------------------- /public/js/owl-carousel.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $.fn.andSelf = function() { 4 | return this.addBack.apply(this, arguments); 5 | } 6 | 7 | if ($('.example-1').length) { 8 | $('.example-1').owlCarousel({ 9 | loop: true, 10 | margin: 10, 11 | nav: true, 12 | responsive: { 13 | 0: { 14 | items: 1 15 | }, 16 | 600: { 17 | items: 3 18 | }, 19 | 1000: { 20 | items: 5 21 | } 22 | } 23 | }); 24 | } 25 | 26 | if ($('.full-width').length) { 27 | $('.full-width').owlCarousel({ 28 | loop: true, 29 | margin: 10, 30 | items: 1, 31 | nav: true 32 | }); 33 | } 34 | 35 | if ($('.loop').length) { 36 | $('.loop').owlCarousel({ 37 | center: true, 38 | items: 2, 39 | loop: true, 40 | margin: 10, 41 | nav: true, 42 | responsive: { 43 | 600: { 44 | items: 4 45 | } 46 | } 47 | }); 48 | } 49 | 50 | if ($('.nonloop').length) { 51 | $('.nonloop').owlCarousel({ 52 | center: true, 53 | items: 2, 54 | loop: false, 55 | margin: 10, 56 | nav: true, 57 | responsive: { 58 | 600: { 59 | items: 4 60 | } 61 | } 62 | }); 63 | } 64 | 65 | })(jQuery); -------------------------------------------------------------------------------- /public/js/progress-bar.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | // ProgressBar JS Starts Here 4 | 5 | if ($('#Progressbar-1').length) { 6 | var bar = new ProgressBar.Line('#Progressbar-1', { 7 | step: function(state, bar, attachment) { 8 | bar.path.setAttribute('stroke', state.color); 9 | } 10 | }); 11 | var opts = { 12 | from: { 13 | width: 0.1, 14 | color: '#f5f5f5 ' 15 | }, 16 | to: { 17 | color: '#36af47' 18 | } 19 | }; 20 | bar.animate(0.7, opts); 21 | } 22 | 23 | if ($('#Progressbar-2').length) { 24 | var bar = new ProgressBar.Line('#Progressbar-2', { 25 | step: function(state, bar, attachment) { 26 | bar.path.setAttribute('stroke', state.color); 27 | } 28 | }); 29 | var opts = { 30 | from: { 31 | color: '#f5f5f5 ' 32 | }, 33 | to: { 34 | color: '#ed1c24' 35 | } 36 | }; 37 | bar.animate(0.8, opts); 38 | } 39 | 40 | if ($('#Progressbar-3').length) { 41 | var bar = new ProgressBar.Line('#Progressbar-3', { 42 | step: function(state, bar, attachment) { 43 | bar.path.setAttribute('stroke', state.color); 44 | } 45 | }); 46 | var opts = { 47 | from: { 48 | color: '#f5f5f5 ' 49 | }, 50 | to: { 51 | color: '#2ca0f7' 52 | } 53 | }; 54 | bar.animate(0.66, opts); 55 | } 56 | 57 | if ($('#Progressbar-4').length) { 58 | var bar = new ProgressBar.Line('#Progressbar-4', { 59 | step: function(state, bar, attachment) { 60 | bar.path.setAttribute('stroke', state.color); 61 | } 62 | }); 63 | var opts = { 64 | from: { 65 | color: '#f5f5f5 ' 66 | }, 67 | to: { 68 | color: '#f7981c' 69 | } 70 | }; 71 | bar.animate(0.99, opts); 72 | } 73 | // ProgressBar JS Ends Here 74 | 75 | })(jQuery); -------------------------------------------------------------------------------- /public/js/settings.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | $(".navbar .navbar-menu-wrapper .navbar-nav .nav-item.nav-settings").on("click", function() { 5 | $(".settings-panel").toggleClass("open"); 6 | }); 7 | $("#close-button").on("click", function() { 8 | $(".settings-panel").toggleClass("open"); 9 | }); 10 | 11 | 12 | //Layout settings. 13 | var layout_classes = 'sidebar-mini sidebar-icon-only rtl boxed-layout sidebar-absolute sidebar-hidden' 14 | $("#boxed-layout-view").on("click", function() { 15 | $("body").removeClass(layout_classes); 16 | $("body").addClass("boxed-layout"); 17 | }); 18 | $("#compact-layout-view").on("click", function() { 19 | $("body").removeClass(layout_classes); 20 | $("body").addClass("sidebar-mini"); 21 | }); 22 | $("#icon-only-layout-view").on("click", function() { 23 | $("body").removeClass(layout_classes); 24 | $("body").addClass("sidebar-icon-only"); 25 | }); 26 | $("#rtl-layout-view").on("click", function() { 27 | $("body").removeClass(layout_classes); 28 | $("body").addClass("rtl"); 29 | }); 30 | $("#hidden-menu-1-layout-view").on("click", function() { 31 | $("body").removeClass(layout_classes); 32 | $("body").addClass("sidebar-absolute"); 33 | }); 34 | $("#hidden-menu-2-layout-view").on("click", function() { 35 | $("body").removeClass(layout_classes); 36 | $("body").addClass("sidebar-toggle-display"); 37 | }); 38 | 39 | 40 | //Navbar settings 41 | var navbar_classes = 'navbar-danger navbar-success navbar-warning navbar-dark navbar-light navbar-primary navbar-info navbar-pink'; 42 | $('#primary-theme').on("click", function() { //Icheck's event for checkbox states 43 | $('.navbar').removeClass(navbar_classes); 44 | $('.navbar').addClass('navbar-primary'); 45 | }); 46 | $('#success-theme').on("click", function() { //Icheck's event for checkbox states 47 | $('.navbar').removeClass(navbar_classes); 48 | $('.navbar').addClass('navbar-success'); 49 | }); 50 | $('#warning-theme').on("click", function() { //Icheck's event for checkbox states 51 | $('.navbar').removeClass(navbar_classes); 52 | $('.navbar').addClass('navbar-warning'); 53 | }); 54 | $('#danger-theme').on("click", function() { //Icheck's event for checkbox states 55 | $('.navbar').removeClass(navbar_classes); 56 | $('.navbar').addClass('navbar-danger'); 57 | }); 58 | $('#pink-theme').on("click", function() { //Icheck's event for checkbox states 59 | $('.navbar').removeClass(navbar_classes); 60 | $('.navbar').addClass('navbar-pink'); 61 | }); 62 | $('#light-theme').on("click", function() { //Icheck's event for checkbox states 63 | $('.navbar').removeClass(navbar_classes); 64 | $('.navbar').addClass('navbar-light'); 65 | }); 66 | $('#info-theme').on("click", function() { //Icheck's event for checkbox states 67 | $('.navbar').removeClass(navbar_classes); 68 | $('.navbar').addClass('navbar-info'); 69 | }); 70 | $('#dark-theme').on("click", function() { //Icheck's event for checkbox states 71 | $('.navbar').removeClass(navbar_classes); 72 | $('.navbar').addClass('navbar-dark'); 73 | }); 74 | 75 | 76 | //Sidebar settings 77 | $('#side-theme-light').on("click", function() { //Icheck's event for checkbox states 78 | $('#sidebar').removeClass('sidebar-dark'); 79 | }); 80 | $('#side-theme-dark').on("click", function() { //Icheck's event for checkbox states 81 | $('#sidebar').addClass('sidebar-dark'); 82 | }); 83 | }); 84 | })(jQuery); -------------------------------------------------------------------------------- /public/js/sparkline.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($("#sparkline-line-chart").length) { 4 | $("#sparkline-line-chart").sparkline([5, 6, 7, 9, 9, 5, 3, 2, 2, 4, 6, 7], { 5 | type: 'line', 6 | width: '100%', 7 | height: '100%' 8 | }); 9 | } 10 | 11 | if ($("#sparkline-bar-chart").length) { 12 | $("#sparkline-bar-chart").sparkline([5, 6, 7, 2, 0, -4, 4], { 13 | type: 'bar', 14 | height: '100%', 15 | barWidth: '58.5%', 16 | barColor: '#58D8A3', 17 | negBarColor: '#e56e72', 18 | zeroColor: 'green' 19 | }); 20 | } 21 | 22 | if ($("#sparkline-pie-chart").length) { 23 | $("#sparkline-pie-chart").sparkline([1, 1, 2, 4], { 24 | type: 'pie', 25 | sliceColors: ['#0CB5F9', '#58d8a3', '#F4767B', '#F9B65F'], 26 | borderColor: '#', 27 | width: '100%', 28 | height: '100%' 29 | }); 30 | } 31 | 32 | if ($("#sparkline-bullet-chart").length) { 33 | $("#sparkline-bullet-chart").sparkline([10, 12, 12, 9, 7], { 34 | type: 'bullet', 35 | height: '238', 36 | width: '100%', 37 | }); 38 | } 39 | 40 | if ($("#sparkline-composite-chart").length) { 41 | $("#sparkline-composite-chart").sparkline([5, 6, 7, 2, 0, 3, 6, 8, 1, 2, 2, 0, 3, 6], { 42 | type: 'line', 43 | width: '100%', 44 | height: '100%' 45 | }); 46 | } 47 | 48 | if ($("#sparkline-composite-chart").length) { 49 | $("#sparkline-composite-chart").sparkline([5, 6, 7, 2, 0, 3, 6, 8, 1, 2, 2, 0, 3, 6], { 50 | type: 'bar', 51 | height: '150px', 52 | width: '100%', 53 | barWidth: 10, 54 | barSpacing: 5, 55 | barColor: '#60a76d', 56 | negBarColor: '#60a76d', 57 | composite: true 58 | }); 59 | } 60 | 61 | if ($(".demo-sparkline").length) { 62 | $(".demo-sparkline").sparkline('html', { 63 | enableTagOptions: true, 64 | width: '100%', 65 | height: '30px', 66 | fillColor: false 67 | }); 68 | } 69 | 70 | if ($(".top-seelling-dashboard-chart").length) { 71 | $(".top-seelling-dashboard-chart").sparkline('html', { 72 | enableTagOptions: true, 73 | width: '100%', 74 | barWidth: 30, 75 | fillColor: false 76 | }); 77 | } 78 | 79 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tablesorter.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('#myTable').length) { 5 | $('#myTable').tablesort(); 6 | } 7 | }); 8 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tabs.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | if ($('.demo-tabs').length) { 5 | $('.demo-tabs').pwstabs({ 6 | effect: 'none' 7 | }); 8 | } 9 | 10 | if ($('.hello_world').length) { 11 | $('.hello_world').pwstabs(); 12 | } 13 | 14 | if ($('#rtl-tabs-1').length) { 15 | $('#rtl-tabs-1').pwstabs({ 16 | effect: 'slidedown', 17 | defaultTab: 2, 18 | rtl: true 19 | }); 20 | } 21 | 22 | if ($('#vertical-left').length) { 23 | $('#vertical-left').pwstabs({ 24 | effect: 'slideleft', 25 | defaultTab: 1, 26 | containerWidth: '600px', 27 | tabsPosition: 'vertical', 28 | verticalPosition: 'left' 29 | }); 30 | } 31 | 32 | if ($('#horizontal-left').length) { 33 | $('#horizontal-left').pwstabs({ 34 | effect: 'slidedown', 35 | defaultTab: 2, 36 | containerWidth: '600px', 37 | horizontalPosition: 'bottom' 38 | }); 39 | } 40 | 41 | if ($('.tickets-tab').length) { 42 | $('.tickets-tab').pwstabs({ 43 | effect: 'none' 44 | }); 45 | } 46 | 47 | }); 48 | })(jQuery); -------------------------------------------------------------------------------- /public/js/tight-grid.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | if ($('.grid').length) { 4 | var colcade = new Colcade('.grid', { 5 | columns: '.grid-col', 6 | items: '.grid-item' 7 | }); 8 | } 9 | })(jQuery); -------------------------------------------------------------------------------- /public/js/toastDemo.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | showSuccessToast = function() { 3 | 'use strict'; 4 | $.toast({ 5 | heading: 'Success', 6 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 7 | showHideTransition: 'slide', 8 | icon: 'success', 9 | loaderBg: '#d9534f' 10 | }) 11 | }; 12 | showInfoToast = function() { 13 | 'use strict'; 14 | $.toast({ 15 | heading: 'Info', 16 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 17 | showHideTransition: 'slide', 18 | icon: 'info', 19 | loaderBg: '#5cb85c' 20 | }) 21 | }; 22 | showWarningToast = function() { 23 | 'use strict'; 24 | $.toast({ 25 | heading: 'Warning', 26 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 27 | showHideTransition: 'slide', 28 | icon: 'warning', 29 | loaderBg: '#f0ad4e' 30 | }) 31 | }; 32 | showDangerToast = function() { 33 | 'use strict'; 34 | $.toast({ 35 | heading: 'Danger', 36 | text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', 37 | showHideTransition: 'slide', 38 | icon: 'error', 39 | loaderBg: '#5bc0de' 40 | }) 41 | }; 42 | showToastPosition = function(position) { 43 | 'use strict'; 44 | $('.jq-toast-wrap').removeClass('bottom-left bottom-right top-left top-right mid-center'); // to remove previous position class 45 | $(".jq-toast-wrap").css({ 46 | "top": "", 47 | "left": "", 48 | "bottom": "", 49 | "right": "" 50 | }); //to remove previous position style 51 | $.toast({ 52 | heading: 'Positioning', 53 | text: 'Specify the custom position object or use one of the predefined ones', 54 | position: String(position), 55 | icon: 'info', 56 | stack: false 57 | }) 58 | } 59 | showToastInCustomPosition = function() { 60 | 'use strict'; 61 | $.toast({ 62 | heading: 'Custom positioning', 63 | text: 'Specify the custom position object or use one of the predefined ones', 64 | icon: 'info', 65 | position: { 66 | left: 120, 67 | top: 120 68 | }, 69 | stack: false 70 | }) 71 | } 72 | })(jQuery); -------------------------------------------------------------------------------- /public/js/todolist.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | $(function() { 4 | var todoListItem = $('#list-items'); 5 | var todoListInput = $('#todo-list-input'); 6 | $('#add-task').on("click", function(event) { 7 | event.preventDefault(); 8 | 9 | var item = todoListInput.val(); 10 | 11 | if (item) { 12 | todoListItem.append("{{ $details_approve['body'] }}
9 | 10 |Thank you
11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/book_order_email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |{{ $details_order['body'] }}
9 | 10 |Thank you
11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/book_received_Email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |{{ $details_received['body'] }}
9 | 10 |Thank you
11 | 12 | -------------------------------------------------------------------------------- /resources/views/admin/change_password.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |