Training Part 1;

This commit is contained in:
2024-01-27 19:09:56 +01:00
parent 6627021355
commit 5d05167492
40 changed files with 26497 additions and 105 deletions

View File

@@ -11,6 +11,8 @@ use Illuminate\View\View;
class ProfileController extends Controller
{
/**
* Display the user's profile form.
*/

View File

@@ -0,0 +1,15 @@
<?php
namespace App\Http\Controllers;
use App\Models\Word;
class WordsController extends Controller
{
public function index()
{
return view('words.index', [
'words' => Word::all(),
]);
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class WordRequest extends FormRequest
{
public function rules(): array
{
return [
'name' => ['required'],
'translation' => ['required'],
];
}
public function authorize(): bool
{
return true;
}
}

11
app/Models/Word.php Normal file
View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Word extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Policies;
use App\Models\User;
use App\Models\Word;
use Illuminate\Auth\Access\HandlesAuthorization;
class WordPolicy
{
use HandlesAuthorization;
public function viewAny(User $user): bool
{
}
public function view(User $user, Word $word): bool
{
}
public function create(User $user): bool
{
}
public function update(User $user, Word $word): bool
{
}
public function delete(User $user, Word $word): bool
{
}
public function restore(User $user, Word $word): bool
{
}
public function forceDelete(User $user, Word $word): bool
{
}
}

102
composer.lock generated
View File

@@ -1047,16 +1047,16 @@
},
{
"name": "laravel/framework",
"version": "v10.41.0",
"version": "v10.42.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "da31969bd35e6ee0bbcd9e876f88952dc754b012"
"reference": "fef1aff874a6749c44f8e142e5764eab8cb96890"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/da31969bd35e6ee0bbcd9e876f88952dc754b012",
"reference": "da31969bd35e6ee0bbcd9e876f88952dc754b012",
"url": "https://api.github.com/repos/laravel/framework/zipball/fef1aff874a6749c44f8e142e5764eab8cb96890",
"reference": "fef1aff874a6749c44f8e142e5764eab8cb96890",
"shasum": ""
},
"require": {
@@ -1248,7 +1248,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2024-01-16T15:23:58+00:00"
"time": "2024-01-23T15:07:56+00:00"
},
{
"name": "laravel/prompts",
@@ -1689,16 +1689,16 @@
},
{
"name": "league/flysystem",
"version": "3.23.0",
"version": "3.23.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc"
"reference": "199e1aebbe3e62bd39f4d4fc8c61ce0b3786197e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc",
"reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/199e1aebbe3e62bd39f4d4fc8c61ce0b3786197e",
"reference": "199e1aebbe3e62bd39f4d4fc8c61ce0b3786197e",
"shasum": ""
},
"require": {
@@ -1763,7 +1763,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.23.0"
"source": "https://github.com/thephpleague/flysystem/tree/3.23.1"
},
"funding": [
{
@@ -1775,20 +1775,20 @@
"type": "github"
}
],
"time": "2023-12-04T10:16:17+00:00"
"time": "2024-01-26T18:42:03+00:00"
},
{
"name": "league/flysystem-local",
"version": "3.23.0",
"version": "3.23.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
"reference": "5cf046ba5f059460e86a997c504dd781a39a109b"
"reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b",
"reference": "5cf046ba5f059460e86a997c504dd781a39a109b",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00",
"reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00",
"shasum": ""
},
"require": {
@@ -1823,7 +1823,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem-local/issues",
"source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0"
"source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1"
},
"funding": [
{
@@ -1835,7 +1835,7 @@
"type": "github"
}
],
"time": "2023-12-04T10:14:46+00:00"
"time": "2024-01-26T18:25:23+00:00"
},
{
"name": "league/mime-type-detection",
@@ -1996,16 +1996,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.72.1",
"version": "2.72.2",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78"
"reference": "3e7edc41b58d65509baeb0d4a14c8fa41d627130"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78",
"reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/3e7edc41b58d65509baeb0d4a14c8fa41d627130",
"reference": "3e7edc41b58d65509baeb0d4a14c8fa41d627130",
"shasum": ""
},
"require": {
@@ -2099,35 +2099,35 @@
"type": "tidelift"
}
],
"time": "2023-12-08T23:47:49+00:00"
"time": "2024-01-19T00:21:53+00:00"
},
{
"name": "nette/schema",
"version": "v1.2.5",
"version": "v1.3.0",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
"reference": "0462f0166e823aad657c9224d0f849ecac1ba10a"
"reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a",
"reference": "0462f0166e823aad657c9224d0f849ecac1ba10a",
"url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
"reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
"shasum": ""
},
"require": {
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
"php": "7.1 - 8.3"
"nette/utils": "^4.0",
"php": "8.1 - 8.3"
},
"require-dev": {
"nette/tester": "^2.3 || ^2.4",
"nette/tester": "^2.4",
"phpstan/phpstan-nette": "^1.0",
"tracy/tracy": "^2.7"
"tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2-dev"
"dev-master": "1.3-dev"
}
},
"autoload": {
@@ -2159,9 +2159,9 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
"source": "https://github.com/nette/schema/tree/v1.2.5"
"source": "https://github.com/nette/schema/tree/v1.3.0"
},
"time": "2023-10-05T20:37:59+00:00"
"time": "2023-12-11T11:54:22+00:00"
},
{
"name": "nette/utils",
@@ -5961,16 +5961,16 @@
},
{
"name": "laravel/pint",
"version": "v1.13.9",
"version": "v1.13.10",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "e3e269cc5d874c8efd2dc7962b1c7ff2585fe525"
"reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/e3e269cc5d874c8efd2dc7962b1c7ff2585fe525",
"reference": "e3e269cc5d874c8efd2dc7962b1c7ff2585fe525",
"url": "https://api.github.com/repos/laravel/pint/zipball/e2b5060885694ca30ac008c05dc9d47f10ed1abf",
"reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf",
"shasum": ""
},
"require": {
@@ -5981,8 +5981,8 @@
"php": "^8.1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.47.0",
"illuminate/view": "^10.40.0",
"friendsofphp/php-cs-fixer": "^3.47.1",
"illuminate/view": "^10.41.0",
"larastan/larastan": "^2.8.1",
"laravel-zero/framework": "^10.3.0",
"mockery/mockery": "^1.6.7",
@@ -6023,20 +6023,20 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2024-01-16T17:39:29+00:00"
"time": "2024-01-22T09:04:15+00:00"
},
{
"name": "laravel/sail",
"version": "v1.27.1",
"version": "v1.27.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
"reference": "9dc648978e4276f2bfd37a076a52e3bd9394777f"
"reference": "2276a8d9d6cfdcaad98bf67a34331d100149d5b6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/sail/zipball/9dc648978e4276f2bfd37a076a52e3bd9394777f",
"reference": "9dc648978e4276f2bfd37a076a52e3bd9394777f",
"url": "https://api.github.com/repos/laravel/sail/zipball/2276a8d9d6cfdcaad98bf67a34331d100149d5b6",
"reference": "2276a8d9d6cfdcaad98bf67a34331d100149d5b6",
"shasum": ""
},
"require": {
@@ -6088,7 +6088,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
"time": "2024-01-13T18:46:48+00:00"
"time": "2024-01-21T17:13:42+00:00"
},
{
"name": "mockery/mockery",
@@ -6762,16 +6762,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.5.8",
"version": "10.5.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "08f4fa74d5fbfff1ef22abffee47aaedcaea227e"
"reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/08f4fa74d5fbfff1ef22abffee47aaedcaea227e",
"reference": "08f4fa74d5fbfff1ef22abffee47aaedcaea227e",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
"reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
"shasum": ""
},
"require": {
@@ -6843,7 +6843,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.8"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9"
},
"funding": [
{
@@ -6859,7 +6859,7 @@
"type": "tidelift"
}
],
"time": "2024-01-19T07:07:27+00:00"
"time": "2024-01-22T14:35:40+00:00"
},
{
"name": "sebastian/cli-parser",

View File

@@ -0,0 +1,22 @@
<?php
namespace Database\Factories;
use App\Models\Word;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
class WordFactory extends Factory
{
protected $model = Word::class;
public function definition(): array
{
return [
'name' => $this->faker->name(),
'translation' => $this->faker->word(),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
public function up(): void
{
Schema::create('words', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('translation');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('words');
}
};

View File

@@ -21692,8 +21692,8 @@ div.apexcharts-canvas .apexcharts-yaxistooltip-right:after {
}
div.apexcharts-canvas .apexcharts-tooltip-marker {
/*rtl:raw:
margin-right: 0;
margin-left: 10px;
margin-right: 0;
margin-left: 10px;
*/
}
@@ -22413,7 +22413,7 @@ div.tox .tox-dialog__body {
.wizard > .actions {
/*rtl:raw:
text-align: left;
text-align: left;
*/
}
@@ -22472,4 +22472,4 @@ div.tox .tox-dialog__body {
.wizard.vertical > .actions > ul > li {
margin: 0 0 0 0.7em;
}
/*# sourceMappingURL=../maps/demo1/style.css.map */
/*# sourceMappingURL=../maps/demo1/noble.css.map */

View File

@@ -21686,8 +21686,8 @@ div.apexcharts-canvas .apexcharts-yaxistooltip-left:after {
}
div.apexcharts-canvas .apexcharts-tooltip-marker {
/*rtl:raw:
margin-right: 0;
margin-left: 10px;
margin-right: 0;
margin-left: 10px;
*/
}
@@ -22546,7 +22546,7 @@ div.tox .tox-dialog__body {
.wizard > .actions {
/*rtl:raw:
text-align: left;
text-align: left;
*/
}
@@ -22595,4 +22595,4 @@ div.tox .tox-dialog__body {
margin: 0;
width: 100%;
}
/*# sourceMappingURL=../maps/demo2/style.css.map */
/*# sourceMappingURL=../maps/demo2/noble.css.map */

View File

@@ -21496,8 +21496,8 @@ div.apexcharts-canvas .apexcharts-yaxistooltip-right:after {
}
div.apexcharts-canvas .apexcharts-tooltip-marker {
/*rtl:raw:
margin-right: 0;
margin-left: 10px;
margin-right: 0;
margin-left: 10px;
*/
}
@@ -22217,7 +22217,7 @@ div.tox .tox-dialog__body {
.wizard > .actions {
/*rtl:raw:
text-align: left;
text-align: left;
*/
}
@@ -22276,4 +22276,4 @@ div.tox .tox-dialog__body {
.wizard.vertical > .actions > ul > li {
margin: 0 0 0 0.7em;
}
/*# sourceMappingURL=../maps/demo3/style.css.map */
/*# sourceMappingURL=../maps/demo3/noble.css.map */

View File

@@ -21466,8 +21466,8 @@ div.apexcharts-canvas .apexcharts-yaxistooltip-left:after {
}
div.apexcharts-canvas .apexcharts-tooltip-marker {
/*rtl:raw:
margin-right: 0;
margin-left: 10px;
margin-right: 0;
margin-left: 10px;
*/
}
@@ -22326,7 +22326,7 @@ div.tox .tox-dialog__body {
.wizard > .actions {
/*rtl:raw:
text-align: left;
text-align: left;
*/
}
@@ -22375,4 +22375,4 @@ div.tox .tox-dialog__body {
margin: 0;
width: 100%;
}
/*# sourceMappingURL=../maps/demo4/style.css.map */
/*# sourceMappingURL=../maps/demo4/noble.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

22475
resources/css/app_style.css Normal file

File diff suppressed because it is too large Load Diff

1
resources/css/core.css Normal file
View File

@@ -0,0 +1 @@
.ps{overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.ps__rail-x{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;height:15px;bottom:0;position:absolute}.ps__rail-y{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;width:15px;right:0;position:absolute}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px;position:absolute}.ps__thumb-y{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px;position:absolute}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ps{overflow:auto!important}}

37
resources/js/core.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,747 @@
$(function() {
'use strict'
var colors = {
primary : "#6571ff",
secondary : "#7987a1",
success : "#05a34a",
info : "#66d1d1",
warning : "#fbbc06",
danger : "#ff3366",
light : "#e9ecef",
dark : "#060c17",
muted : "#7987a1",
gridBorder : "rgba(77, 138, 240, .15)",
bodyColor : "#b8c3d9",
cardBg : "#0c1427"
}
var fontFamily = "'Roboto', Helvetica, sans-serif"
var revenueChartData = [
49.33,
48.79,
50.61,
53.31,
54.78,
53.84,
54.68,
56.74,
56.99,
56.14,
56.56,
60.35,
58.74,
61.44,
61.11,
58.57,
54.72,
52.07,
51.09,
47.48,
48.57,
48.99,
53.58,
50.28,
46.24,
48.61,
51.75,
51.34,
50.21,
54.65,
52.44,
53.06,
57.07,
52.97,
48.72,
52.69,
53.59,
58.52,
55.10,
58.05,
61.35,
57.74,
60.27,
61.00,
57.78,
56.80,
58.90,
62.45,
58.75,
58.40,
56.74,
52.76,
52.30,
50.56,
55.40,
50.49,
52.49,
48.79,
47.46,
43.31,
38.96,
34.73,
31.03,
32.63,
36.89,
35.89,
32.74,
33.20,
30.82,
28.64,
28.44,
27.73,
27.75,
25.96,
24.38,
21.95,
22.08,
23.54,
27.30,
30.27,
27.25,
29.92,
25.14,
23.09,
23.79,
23.46,
27.99,
23.21,
23.91,
19.21,
15.13,
15.08,
11.00,
9.20,
7.47,
11.64,
15.76,
13.99,
12.59,
13.53,
15.01,
13.95,
13.23,
18.10,
20.63,
21.06,
25.37,
25.32,
20.94,
18.75,
15.38,
14.56,
17.94,
15.96,
16.35,
14.16,
12.10,
14.84,
17.24,
17.79,
14.03,
18.65,
18.46,
22.68,
25.08,
28.18,
28.03,
24.11,
24.28,
28.23,
26.24,
29.33,
26.07,
23.92,
28.82,
25.14,
21.79,
23.05,
20.71,
29.72,
30.21,
32.56,
31.46,
33.69,
30.05,
34.20,
36.93,
35.50,
34.78,
36.97
];
var revenueChartCategories = [
"Jan 01 2022", "Jan 02 2022", "jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022", "Jan 12 2022", "Jan 13 2022", "Jan 14 2022", "Jan 15 2022", "Jan 16 2022", "Jan 17 2022", "Jan 18 2022", "Jan 19 2022", "Jan 20 2022","Jan 21 2022", "Jan 22 2022", "Jan 23 2022", "Jan 24 2022", "Jan 25 2022", "Jan 26 2022", "Jan 27 2022", "Jan 28 2022", "Jan 29 2022", "Jan 30 2022", "Jan 31 2022",
"Feb 01 2022", "Feb 02 2022", "Feb 03 2022", "Feb 04 2022", "Feb 05 2022", "Feb 06 2022", "Feb 07 2022", "Feb 08 2022", "Feb 09 2022", "Feb 10 2022", "Feb 11 2022", "Feb 12 2022", "Feb 13 2022", "Feb 14 2022", "Feb 15 2022", "Feb 16 2022", "Feb 17 2022", "Feb 18 2022", "Feb 19 2022", "Feb 20 2022","Feb 21 2022", "Feb 22 2022", "Feb 23 2022", "Feb 24 2022", "Feb 25 2022", "Feb 26 2022", "Feb 27 2022", "Feb 28 2022",
"Mar 01 2022", "Mar 02 2022", "Mar 03 2022", "Mar 04 2022", "Mar 05 2022", "Mar 06 2022", "Mar 07 2022", "Mar 08 2022", "Mar 09 2022", "Mar 10 2022", "Mar 11 2022", "Mar 12 2022", "Mar 13 2022", "Mar 14 2022", "Mar 15 2022", "Mar 16 2022", "Mar 17 2022", "Mar 18 2022", "Mar 19 2022", "Mar 20 2022","Mar 21 2022", "Mar 22 2022", "Mar 23 2022", "Mar 24 2022", "Mar 25 2022", "Mar 26 2022", "Mar 27 2022", "Mar 28 2022", "Mar 29 2022", "Mar 30 2022", "Mar 31 2022",
"Apr 01 2022", "Apr 02 2022", "Apr 03 2022", "Apr 04 2022", "Apr 05 2022", "Apr 06 2022", "Apr 07 2022", "Apr 08 2022", "Apr 09 2022", "Apr 10 2022", "Apr 11 2022", "Apr 12 2022", "Apr 13 2022", "Apr 14 2022", "Apr 15 2022", "Apr 16 2022", "Apr 17 2022", "Apr 18 2022", "Apr 19 2022", "Apr 20 2022","Apr 21 2022", "Apr 22 2022", "Apr 23 2022", "Apr 24 2022", "Apr 25 2022", "Apr 26 2022", "Apr 27 2022", "Apr 28 2022", "Apr 29 2022", "Apr 30 2022",
"May 01 2022", "May 02 2022", "May 03 2022", "May 04 2022", "May 05 2022", "May 06 2022", "May 07 2022", "May 08 2022", "May 09 2022", "May 10 2022", "May 11 2022", "May 12 2022", "May 13 2022", "May 14 2022", "May 15 2022", "May 16 2022", "May 17 2022", "May 18 2022", "May 19 2022", "May 20 2022","May 21 2022", "May 22 2022", "May 23 2022", "May 24 2022", "May 25 2022", "May 26 2022", "May 27 2022", "May 28 2022", "May 29 2022", "May 30 2022",
]
// Date Picker
if($('#dashboardDate').length) {
flatpickr("#dashboardDate", {
wrap: true,
dateFormat: "d-M-Y",
defaultDate: "today",
});
}
// Date Picker - END
// New Customers Chart
if($('#customersChart').length) {
var options1 = {
chart: {
type: "line",
height: 60,
sparkline: {
enabled: !0
}
},
series: [{
name: '',
data: [3844, 3855, 3841, 3867, 3822, 3843, 3821, 3841, 3856, 3827, 3843]
}],
xaxis: {
type: 'datetime',
categories: ["Jan 01 2022", "Jan 02 2022", "Jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022",],
},
stroke: {
width: 2,
curve: "smooth"
},
markers: {
size: 0
},
colors: [colors.primary],
};
new ApexCharts(document.querySelector("#customersChart"),options1).render();
}
// New Customers Chart - END
// Orders Chart
if($('#ordersChart').length) {
var options2 = {
chart: {
type: "bar",
height: 60,
sparkline: {
enabled: !0
}
},
plotOptions: {
bar: {
borderRadius: 2,
columnWidth: "60%"
}
},
colors: [colors.primary],
series: [{
name: '',
data: [36, 77, 52, 90, 74, 35, 55, 23, 47, 10, 63]
}],
xaxis: {
type: 'datetime',
categories: ["Jan 01 2022", "Jan 02 2022", "Jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022",],
},
};
new ApexCharts(document.querySelector("#ordersChart"),options2).render();
}
// Orders Chart - END
// Growth Chart
if($('#growthChart').length) {
var options3 = {
chart: {
type: "line",
height: 60,
sparkline: {
enabled: !0
}
},
series: [{
name: '',
data: [41, 45, 44, 46, 52, 54, 43, 74, 82, 82, 89]
}],
xaxis: {
type: 'datetime',
categories: ["Jan 01 2022", "Jan 02 2022", "Jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022",],
},
stroke: {
width: 2,
curve: "smooth"
},
markers: {
size: 0
},
colors: [colors.primary],
};
new ApexCharts(document.querySelector("#growthChart"),options3).render();
}
// Growth Chart - END
// Revenue Chart
if ($('#revenueChart').length) {
var lineChartOptions = {
chart: {
type: "line",
height: '400',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary, colors.danger, colors.warning],
grid: {
padding: {
bottom: -4,
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [
{
name: "Revenue",
data: revenueChartData
},
],
xaxis: {
type: "datetime",
categories: revenueChartCategories,
lines: {
show: true
},
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
yaxis: {
title: {
text: 'Revenue ( $1000 x )',
style:{
size: 9,
color: colors.muted
}
},
tickAmount: 4,
tooltip: {
enabled: true
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
markers: {
size: 0,
},
stroke: {
width: 2,
curve: "straight",
},
};
var apexLineChart = new ApexCharts(document.querySelector("#revenueChart"), lineChartOptions);
apexLineChart.render();
}
// Revenue Chart - END
// Revenue Chart - RTL
if ($('#revenueChartRTL').length) {
var lineChartOptions = {
chart: {
type: "line",
height: '400',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary, colors.danger, colors.warning],
grid: {
padding: {
bottom: -4,
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [
{
name: "Revenue",
data: revenueChartData
},
],
xaxis: {
type: "datetime",
categories: revenueChartCategories,
lines: {
show: true
},
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
yaxis: {
opposite: true,
title: {
text: 'Revenue ( $1000 x )',
offsetX: -135,
style:{
size: 9,
color: colors.muted
}
},
labels: {
align: 'left',
offsetX: -20,
},
tickAmount: 4,
tooltip: {
enabled: true
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
markers: {
size: 0,
},
stroke: {
width: 2,
curve: "straight",
},
};
var apexLineChart = new ApexCharts(document.querySelector("#revenueChartRTL"), lineChartOptions);
apexLineChart.render();
}
// Revenue Chart - RTL - END
// Monthly Sales Chart
if($('#monthlySalesChart').length) {
var options = {
chart: {
type: 'bar',
height: '318',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary],
fill: {
opacity: .9
} ,
grid: {
padding: {
bottom: -4
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [{
name: 'Sales',
data: [152,109,93,113,126,161,188,143,102,113,116,124]
}],
xaxis: {
type: 'datetime',
categories: ['01/01/2022','02/01/2022','03/01/2022','04/01/2022','05/01/2022','06/01/2022','07/01/2022', '08/01/2022','09/01/2022','10/01/2022', '11/01/2022', '12/01/2022'],
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
},
yaxis: {
title: {
text: 'Number of Sales',
style:{
size: 9,
color: colors.muted
}
},
},
legend: {
show: true,
position: "top",
horizontalAlign: 'center',
fontFamily: fontFamily,
itemMargin: {
horizontal: 8,
vertical: 0
},
},
stroke: {
width: 0
},
dataLabels: {
enabled: true,
style: {
fontSize: '10px',
fontFamily: fontFamily,
},
offsetY: -27
},
plotOptions: {
bar: {
columnWidth: "50%",
borderRadius: 4,
dataLabels: {
position: 'top',
orientation: 'vertical',
}
},
},
}
var apexBarChart = new ApexCharts(document.querySelector("#monthlySalesChart"), options);
apexBarChart.render();
}
// Monthly Sales Chart - END
// Monthly Sales Chart - RTL
if($('#monthlySalesChartRTL').length) {
var options = {
chart: {
type: 'bar',
height: '318',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary],
fill: {
opacity: .9
} ,
grid: {
padding: {
bottom: -4
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [{
name: 'Sales',
data: [152,109,93,113,126,161,188,143,102,113,116,124]
}],
xaxis: {
type: 'datetime',
categories: ['01/01/2022','02/01/2022','03/01/2022','04/01/2022','05/01/2022','06/01/2022','07/01/2022', '08/01/2022','09/01/2022','10/01/2022', '11/01/2022', '12/01/2022'],
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
},
yaxis: {
opposite: true,
title: {
text: 'Number of Sales',
offsetX: -108,
style:{
size: 9,
color: colors.muted
}
},
labels: {
align: 'left',
offsetX: -20,
}
},
legend: {
show: true,
position: "top",
horizontalAlign: 'center',
fontFamily: fontFamily,
itemMargin: {
horizontal: 8,
vertical: 0
},
},
stroke: {
width: 0
},
dataLabels: {
enabled: true,
style: {
fontSize: '10px',
fontFamily: fontFamily,
},
offsetY: -27
},
plotOptions: {
bar: {
columnWidth: "50%",
borderRadius: 4,
dataLabels: {
position: 'top',
orientation: 'vertical',
}
},
},
}
var apexBarChart = new ApexCharts(document.querySelector("#monthlySalesChartRTL"), options);
apexBarChart.render();
}
// Monthly Sales Chart - RTL - END
// Cloud Storage Chart
if ($('#storageChart').length) {
var options = {
chart: {
height: 260,
type: "radialBar"
},
series: [67],
colors: [colors.primary],
plotOptions: {
radialBar: {
hollow: {
margin: 15,
size: "70%"
},
track: {
show: true,
background: colors.dark,
strokeWidth: '100%',
opacity: 1,
margin: 5,
},
dataLabels: {
showOn: "always",
name: {
offsetY: -11,
show: true,
color: colors.muted,
fontSize: "13px"
},
value: {
color: colors.bodyColor,
fontSize: "30px",
show: true
}
}
}
},
fill: {
opacity: 1
},
stroke: {
lineCap: "round",
},
labels: ["Storage Used"]
};
var chart = new ApexCharts(document.querySelector("#storageChart"), options);
chart.render();
}
// Cloud Storage Chart - END
});

View File

@@ -0,0 +1,746 @@
$(function() {
'use strict'
var colors = {
primary : "#6571ff",
secondary : "#7987a1",
success : "#05a34a",
info : "#66d1d1",
warning : "#fbbc06",
danger : "#ff3366",
light : "#e9ecef",
dark : "#060c17",
muted : "#7987a1",
gridBorder : "rgba(77, 138, 240, .15)",
bodyColor : "#000",
cardBg : "#fff"
}
var fontFamily = "'Roboto', Helvetica, sans-serif"
var revenueChartData = [
49.33,
48.79,
50.61,
53.31,
54.78,
53.84,
54.68,
56.74,
56.99,
56.14,
56.56,
60.35,
58.74,
61.44,
61.11,
58.57,
54.72,
52.07,
51.09,
47.48,
48.57,
48.99,
53.58,
50.28,
46.24,
48.61,
51.75,
51.34,
50.21,
54.65,
52.44,
53.06,
57.07,
52.97,
48.72,
52.69,
53.59,
58.52,
55.10,
58.05,
61.35,
57.74,
60.27,
61.00,
57.78,
56.80,
58.90,
62.45,
58.75,
58.40,
56.74,
52.76,
52.30,
50.56,
55.40,
50.49,
52.49,
48.79,
47.46,
43.31,
38.96,
34.73,
31.03,
32.63,
36.89,
35.89,
32.74,
33.20,
30.82,
28.64,
28.44,
27.73,
27.75,
25.96,
24.38,
21.95,
22.08,
23.54,
27.30,
30.27,
27.25,
29.92,
25.14,
23.09,
23.79,
23.46,
27.99,
23.21,
23.91,
19.21,
15.13,
15.08,
11.00,
9.20,
7.47,
11.64,
15.76,
13.99,
12.59,
13.53,
15.01,
13.95,
13.23,
18.10,
20.63,
21.06,
25.37,
25.32,
20.94,
18.75,
15.38,
14.56,
17.94,
15.96,
16.35,
14.16,
12.10,
14.84,
17.24,
17.79,
14.03,
18.65,
18.46,
22.68,
25.08,
28.18,
28.03,
24.11,
24.28,
28.23,
26.24,
29.33,
26.07,
23.92,
28.82,
25.14,
21.79,
23.05,
20.71,
29.72,
30.21,
32.56,
31.46,
33.69,
30.05,
34.20,
36.93,
35.50,
34.78,
36.97
];
var revenueChartCategories = [
"Jan 01 2022", "Jan 02 2022", "jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022", "Jan 12 2022", "Jan 13 2022", "Jan 14 2022", "Jan 15 2022", "Jan 16 2022", "Jan 17 2022", "Jan 18 2022", "Jan 19 2022", "Jan 20 2022","Jan 21 2022", "Jan 22 2022", "Jan 23 2022", "Jan 24 2022", "Jan 25 2022", "Jan 26 2022", "Jan 27 2022", "Jan 28 2022", "Jan 29 2022", "Jan 30 2022", "Jan 31 2022",
"Feb 01 2022", "Feb 02 2022", "Feb 03 2022", "Feb 04 2022", "Feb 05 2022", "Feb 06 2022", "Feb 07 2022", "Feb 08 2022", "Feb 09 2022", "Feb 10 2022", "Feb 11 2022", "Feb 12 2022", "Feb 13 2022", "Feb 14 2022", "Feb 15 2022", "Feb 16 2022", "Feb 17 2022", "Feb 18 2022", "Feb 19 2022", "Feb 20 2022","Feb 21 2022", "Feb 22 2022", "Feb 23 2022", "Feb 24 2022", "Feb 25 2022", "Feb 26 2022", "Feb 27 2022", "Feb 28 2022",
"Mar 01 2022", "Mar 02 2022", "Mar 03 2022", "Mar 04 2022", "Mar 05 2022", "Mar 06 2022", "Mar 07 2022", "Mar 08 2022", "Mar 09 2022", "Mar 10 2022", "Mar 11 2022", "Mar 12 2022", "Mar 13 2022", "Mar 14 2022", "Mar 15 2022", "Mar 16 2022", "Mar 17 2022", "Mar 18 2022", "Mar 19 2022", "Mar 20 2022","Mar 21 2022", "Mar 22 2022", "Mar 23 2022", "Mar 24 2022", "Mar 25 2022", "Mar 26 2022", "Mar 27 2022", "Mar 28 2022", "Mar 29 2022", "Mar 30 2022", "Mar 31 2022",
"Apr 01 2022", "Apr 02 2022", "Apr 03 2022", "Apr 04 2022", "Apr 05 2022", "Apr 06 2022", "Apr 07 2022", "Apr 08 2022", "Apr 09 2022", "Apr 10 2022", "Apr 11 2022", "Apr 12 2022", "Apr 13 2022", "Apr 14 2022", "Apr 15 2022", "Apr 16 2022", "Apr 17 2022", "Apr 18 2022", "Apr 19 2022", "Apr 20 2022","Apr 21 2022", "Apr 22 2022", "Apr 23 2022", "Apr 24 2022", "Apr 25 2022", "Apr 26 2022", "Apr 27 2022", "Apr 28 2022", "Apr 29 2022", "Apr 30 2022",
"May 01 2022", "May 02 2022", "May 03 2022", "May 04 2022", "May 05 2022", "May 06 2022", "May 07 2022", "May 08 2022", "May 09 2022", "May 10 2022", "May 11 2022", "May 12 2022", "May 13 2022", "May 14 2022", "May 15 2022", "May 16 2022", "May 17 2022", "May 18 2022", "May 19 2022", "May 20 2022","May 21 2022", "May 22 2022", "May 23 2022", "May 24 2022", "May 25 2022", "May 26 2022", "May 27 2022", "May 28 2022", "May 29 2022", "May 30 2022",
]
// Date Picker
if($('#dashboardDate').length) {
flatpickr("#dashboardDate", {
wrap: true,
dateFormat: "d-M-Y",
defaultDate: "today",
});
}
// Date Picker - END
// New Customers Chart
if($('#customersChart').length) {
var options1 = {
chart: {
type: "line",
height: 60,
sparkline: {
enabled: !0
}
},
series: [{
name: '',
data: [3844, 3855, 3841, 3867, 3822, 3843, 3821, 3841, 3856, 3827, 3843]
}],
xaxis: {
type: 'datetime',
categories: ["Jan 01 2022", "Jan 02 2022", "Jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022",],
},
stroke: {
width: 2,
curve: "smooth"
},
markers: {
size: 0
},
colors: [colors.primary],
};
new ApexCharts(document.querySelector("#customersChart"),options1).render();
}
// New Customers Chart - END
// Orders Chart
if($('#ordersChart').length) {
var options2 = {
chart: {
type: "bar",
height: 60,
sparkline: {
enabled: !0
}
},
plotOptions: {
bar: {
borderRadius: 2,
columnWidth: "60%"
}
},
colors: [colors.primary],
series: [{
name: '',
data: [36, 77, 52, 90, 74, 35, 55, 23, 47, 10, 63]
}],
xaxis: {
type: 'datetime',
categories: ["Jan 01 2022", "Jan 02 2022", "Jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022",],
},
};
new ApexCharts(document.querySelector("#ordersChart"),options2).render();
}
// Orders Chart - END
// Growth Chart
if($('#growthChart').length) {
var options3 = {
chart: {
type: "line",
height: 60,
sparkline: {
enabled: !0
}
},
series: [{
name: '',
data: [41, 45, 44, 46, 52, 54, 43, 74, 82, 82, 89]
}],
xaxis: {
type: 'datetime',
categories: ["Jan 01 2022", "Jan 02 2022", "Jan 03 2022", "Jan 04 2022", "Jan 05 2022", "Jan 06 2022", "Jan 07 2022", "Jan 08 2022", "Jan 09 2022", "Jan 10 2022", "Jan 11 2022",],
},
stroke: {
width: 2,
curve: "smooth"
},
markers: {
size: 0
},
colors: [colors.primary],
};
new ApexCharts(document.querySelector("#growthChart"),options3).render();
}
// Growth Chart - END
// Revenue Chart
if ($('#revenueChart').length) {
var lineChartOptions = {
chart: {
type: "line",
height: '400',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary, colors.danger, colors.warning],
grid: {
padding: {
bottom: -4,
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [
{
name: "Revenue",
data: revenueChartData
},
],
xaxis: {
type: "datetime",
categories: revenueChartCategories,
lines: {
show: true
},
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
yaxis: {
title: {
text: 'Revenue ( $1000 x )',
style:{
size: 9,
color: colors.muted
}
},
tickAmount: 4,
tooltip: {
enabled: true
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
markers: {
size: 0,
},
stroke: {
width: 2,
curve: "straight",
},
};
var apexLineChart = new ApexCharts(document.querySelector("#revenueChart"), lineChartOptions);
apexLineChart.render();
}
// Revenue Chart - END
// Revenue Chart - RTL
if ($('#revenueChartRTL').length) {
var lineChartOptions = {
chart: {
type: "line",
height: '400',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary, colors.danger, colors.warning],
grid: {
padding: {
bottom: -4,
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [
{
name: "Revenue",
data: revenueChartData
},
],
xaxis: {
type: "datetime",
categories: revenueChartCategories,
lines: {
show: true
},
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
yaxis: {
opposite: true,
title: {
text: 'Revenue ( $1000 x )',
offsetX: -130,
style:{
size: 9,
color: colors.muted
}
},
labels: {
align: 'left',
offsetX: -20,
},
tickAmount: 4,
tooltip: {
enabled: true
},
crosshairs: {
stroke: {
color: colors.secondary,
},
},
},
markers: {
size: 0,
},
stroke: {
width: 2,
curve: "straight",
},
};
var apexLineChart = new ApexCharts(document.querySelector("#revenueChartRTL"), lineChartOptions);
apexLineChart.render();
}
// Revenue Chart - RTL - END
// Monthly Sales Chart
if($('#monthlySalesChart').length) {
var options = {
chart: {
type: 'bar',
height: '318',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary],
fill: {
opacity: .9
} ,
grid: {
padding: {
bottom: -4
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [{
name: 'Sales',
data: [152,109,93,113,126,161,188,143,102,113,116,124]
}],
xaxis: {
type: 'datetime',
categories: ['01/01/2022','02/01/2022','03/01/2022','04/01/2022','05/01/2022','06/01/2022','07/01/2022', '08/01/2022','09/01/2022','10/01/2022', '11/01/2022', '12/01/2022'],
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
},
yaxis: {
title: {
text: 'Number of Sales',
style:{
size: 9,
color: colors.muted
}
},
},
legend: {
show: true,
position: "top",
horizontalAlign: 'center',
fontFamily: fontFamily,
itemMargin: {
horizontal: 8,
vertical: 0
},
},
stroke: {
width: 0
},
dataLabels: {
enabled: true,
style: {
fontSize: '10px',
fontFamily: fontFamily,
},
offsetY: -27
},
plotOptions: {
bar: {
columnWidth: "50%",
borderRadius: 4,
dataLabels: {
position: 'top',
orientation: 'vertical',
}
},
},
}
var apexBarChart = new ApexCharts(document.querySelector("#monthlySalesChart"), options);
apexBarChart.render();
}
// Monthly Sales Chart - END
// Monthly Sales Chart - RTL
if($('#monthlySalesChartRTL').length) {
var options = {
chart: {
type: 'bar',
height: '318',
parentHeightOffset: 0,
foreColor: colors.bodyColor,
background: colors.cardBg,
toolbar: {
show: false
},
},
theme: {
mode: 'light'
},
tooltip: {
theme: 'light'
},
colors: [colors.primary],
fill: {
opacity: .9
} ,
grid: {
padding: {
bottom: -4
},
borderColor: colors.gridBorder,
xaxis: {
lines: {
show: true
}
}
},
series: [{
name: 'Sales',
data: [152,109,93,113,126,161,188,143,102,113,116,124]
}],
xaxis: {
type: 'datetime',
categories: ['01/01/2022','02/01/2022','03/01/2022','04/01/2022','05/01/2022','06/01/2022','07/01/2022', '08/01/2022','09/01/2022','10/01/2022', '11/01/2022', '12/01/2022'],
axisBorder: {
color: colors.gridBorder,
},
axisTicks: {
color: colors.gridBorder,
},
},
yaxis: {
opposite: true,
title: {
text: 'Number of Sales',
offsetX: -100,
style:{
size: 9,
color: colors.muted
}
},
labels: {
align: 'left',
offsetX: -20,
},
},
legend: {
show: true,
position: "top",
horizontalAlign: 'center',
fontFamily: fontFamily,
itemMargin: {
horizontal: 8,
vertical: 0
},
},
stroke: {
width: 0
},
dataLabels: {
enabled: true,
style: {
fontSize: '10px',
fontFamily: fontFamily,
},
offsetY: -27
},
plotOptions: {
bar: {
columnWidth: "50%",
borderRadius: 4,
dataLabels: {
position: 'top',
orientation: 'vertical',
}
},
},
}
var apexBarChart = new ApexCharts(document.querySelector("#monthlySalesChartRTL"), options);
apexBarChart.render();
}
// Monthly Sales Chart - RTL - END
// Cloud Storage Chart
if ($('#storageChart').length) {
var options = {
chart: {
height: 260,
type: "radialBar"
},
series: [67],
colors: [colors.primary],
plotOptions: {
radialBar: {
hollow: {
margin: 15,
size: "70%"
},
track: {
show: true,
background: colors.light,
strokeWidth: '100%',
opacity: 1,
margin: 5,
},
dataLabels: {
showOn: "always",
name: {
offsetY: -11,
show: true,
color: colors.muted,
fontSize: "13px"
},
value: {
color: colors.bodyColor,
fontSize: "30px",
show: true
}
}
}
},
fill: {
opacity: 1
},
stroke: {
lineCap: "round",
},
labels: ["Storage Used"]
};
var chart = new ApexCharts(document.querySelector("#storageChart"), options);
chart.render();
}
// Cloud Storage Chart - END
});

26
resources/js/flatpickr.js Normal file
View File

@@ -0,0 +1,26 @@
// npm package: flatpickr
// github link: https://github.com/flatpickr/flatpickr
$(function() {
'use strict';
// date picker
if($('#flatpickr-date').length) {
flatpickr("#flatpickr-date", {
wrap: true,
dateFormat: "Y-m-d",
});
}
// time picker
if($('#flatpickr-time').length) {
flatpickr("#flatpickr-time", {
wrap: true,
enableTime: true,
noCalendar: true,
dateFormat: "H:i",
});
}
});

211
resources/js/template.js Normal file
View File

@@ -0,0 +1,211 @@
(function($) {
'use strict';
$(function() {
var body = $('body');
var mainWrapper = $('.main-wrapper');
var footer = $('footer');
var sidebar = $('.sidebar');
var navbar = $('.navbar').not('.top-navbar');
// Enable feather-icons with SVG markup
feather.replace();
// initialize clipboard plugin
if ($('.btn-clipboard').length) {
// Enabling tooltip to all clipboard buttons
$('.btn-clipboard').attr('data-bs-toggle', 'tooltip').attr('title', 'Copy to clipboard');
var clipboard = new ClipboardJS('.btn-clipboard');
clipboard.on('success', function(e) {
console.log(e);
e.trigger.innerHTML = 'copied';
setTimeout(function() {
e.trigger.innerHTML = 'copy';
e.clearSelection();
},700)
});
}
// initializing bootstrap tooltip
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
// initializing bootstrap popover
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})
// Applying perfect-scrollbar
if ($('.sidebar .sidebar-body').length) {
const sidebarBodyScroll = new PerfectScrollbar('.sidebar-body');
}
// commented beacuse of hang (scroll from dropdown.html with small height)
// if ($('.content-nav-wrapper').length) {
// const contentNavWrapper = new PerfectScrollbar('.content-nav-wrapper');
// }
// Close other submenu in sidebar on opening any
sidebar.on('show.bs.collapse', '.collapse', function() {
sidebar.find('.collapse.show').collapse('hide');
});
// Sidebar toggle to sidebar-folded
$('.sidebar-toggler').on('click', function(e) {
e.preventDefault();
$('.sidebar-header .sidebar-toggler').toggleClass('active not-active');
if (window.matchMedia('(min-width: 992px)').matches) {
e.preventDefault();
body.toggleClass('sidebar-folded');
} else if (window.matchMedia('(max-width: 991px)').matches) {
e.preventDefault();
body.toggleClass('sidebar-open');
}
});
// commmented because of apex chart width issue in desktop (in lg not in xl)
// // sidebar-folded on large devices
// function iconSidebar(e) {
// if (e.matches) {
// body.addClass('sidebar-folded');
// } else {
// body.removeClass('sidebar-folded');
// }
// }
// var desktopMedium = window.matchMedia('(min-width:992px) and (max-width: 1199px)');
// desktopMedium.addListener(iconSidebar);
// iconSidebar(desktopMedium);
// Settings sidebar toggle
$('.settings-sidebar-toggler').on('click', function(e) {
$('body').toggleClass('settings-open');
});
// Sidebar theme settings
$("input:radio[name=sidebarThemeSettings]").click(function() {
$('body').removeClass('sidebar-light sidebar-dark');
$('body').addClass($(this).val());
})
//Add active class to nav-link based on url dynamically
function addActiveClass(element) {
if (current === "") {
//for root url
if (element.attr('href').indexOf("index.html") !== -1) {
element.parents('.nav-item').last().addClass('active');
if (element.parents('.sub-menu').length) {
element.closest('.collapse').addClass('show');
element.addClass('active');
}
}
} else {
//for other url
if (element.attr('href').indexOf(current) !== -1) {
element.parents('.nav-item').last().addClass('active');
if (element.parents('.sub-menu').length) {
element.closest('.collapse').addClass('show');
element.addClass('active');
}
if (element.parents('.submenu-item').length) {
element.addClass('active');
}
}
}
}
var current = location.pathname.split("/").slice(-1)[0].replace(/^\/|\/$/g, '');
$('.nav li a', sidebar).each(function() {
var $this = $(this);
addActiveClass($this);
});
$('.horizontal-menu .nav li a').each(function() {
var $this = $(this);
addActiveClass($this);
})
// open sidebar-folded when hover
$(".sidebar .sidebar-body").hover(
function () {
if (body.hasClass('sidebar-folded')){
body.addClass("open-sidebar-folded");
}
},
function () {
if (body.hasClass('sidebar-folded')){
body.removeClass("open-sidebar-folded");
}
});
// close sidebar when click outside on mobile/table
$(document).on('click touchstart', function(e){
e.stopPropagation();
// closing of sidebar menu when clicking outside of it
if (!$(e.target).closest('.sidebar-toggler').length) {
var sidebar = $(e.target).closest('.sidebar').length;
var sidebarBody = $(e.target).closest('.sidebar-body').length;
if (!sidebar && !sidebarBody) {
if ($('body').hasClass('sidebar-open')) {
$('body').removeClass('sidebar-open');
}
}
}
});
//Horizontal menu in mobile
$('[data-toggle="horizontal-menu-toggle"]').on("click", function() {
$(".horizontal-menu .bottom-navbar").toggleClass("header-toggled");
});
// Horizontal menu navigation in mobile menu on click
var navItemClicked = $('.horizontal-menu .page-navigation >.nav-item');
navItemClicked.on("click", function(event) {
if(window.matchMedia('(max-width: 991px)').matches) {
if(!($(this).hasClass('show-submenu'))) {
navItemClicked.removeClass('show-submenu');
}
$(this).toggleClass('show-submenu');
}
})
$(window).scroll(function() {
if(window.matchMedia('(min-width: 992px)').matches) {
var header = $('.horizontal-menu');
if ($(window).scrollTop() >= 60) {
$(header).addClass('fixed-on-scroll');
} else {
$(header).removeClass('fixed-on-scroll');
}
}
});
// Prevent body scrolling while sidebar scroll
$('.sidebar .sidebar-body').hover(function () {
$('body').addClass('overflow-hidden');
}, function () {
$('body').removeClass('overflow-hidden');
});
});
})(jQuery);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
@props(['messages'])
@if ($messages)
<ul {{ $attributes->merge(['class' => 'text-sm text-red-600 dark:text-red-400 space-y-1']) }}>
<ul {{ $attributes->merge(['class' => 'text-danger text-sm text-red-600 dark:text-red-400 space-y-1']) }}>
@foreach ((array) $messages as $message)
<li>{{ $message }}</li>
@endforeach

View File

@@ -1,3 +1,8 @@
@props(['disabled' => false])
@props(['notvalid' =>false])
<input {{ $disabled ? 'disabled' : '' }} {!! $attributes->merge(['class' => 'border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-sm']) !!}>
@php
$class = sprintf('form-control%s',($notvalid ? ' is-invalid' : ''));
@endphp
<input {{ $disabled ? 'disabled' : '' }} {!! $attributes->merge(['class' =>$class ])!!}>

View File

@@ -1,36 +1,40 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap" rel="stylesheet">
<!-- End fonts -->
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body class="font-sans antialiased">
<div class="min-h-screen bg-gray-100 dark:bg-gray-900">
@include('layouts.navigation')
<!-- Styles -->
@vite([
'resources/css/core.css',
'resources/css/app_style.css',
'resources/vendors/flatpickr/flatpickr.min.css',
])
</head>
<body class="font-sans antialiased sidebar-dark">
<div class="main-wrapper">
@include('layouts.partials.sidebar')
<!-- Page Heading -->
@if (isset($header))
<header class="bg-white dark:bg-gray-800 shadow">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $header }}
</div>
</header>
@endif
<!-- Page Content -->
<main>
{{ $slot }}
</main>
<div class="page-wrapper">
@include('layouts.partials.navbar')
<div class="page-content">
{{ $slot }}
</div>
</body>
@include('layouts.partials.footer')
</div>
</div>
@include('layouts.partials.scripts')
</body>
</html>

View File

@@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body class="font-sans antialiased">
<div class="min-h-screen bg-gray-100 dark:bg-gray-900">
@include('layouts.navigation')
<!-- Page Heading -->
@if (isset($header))
<header class="bg-white dark:bg-gray-800 shadow">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $header }}
</div>
</header>
@endif
@if (isset($pippo))
<header class="bg-white dark:bg-gray-800 shadow">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $pippo }}
</div>
</header>
@endif
<!-- Page Content -->
<main>
{{ $slot }}
</main>
</div>
</body>
</html>

View File

@@ -21,7 +21,6 @@
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
</a>
</div>
<div class="w-full sm:max-w-md mt-6 px-6 py-4 bg-white dark:bg-gray-800 shadow-md overflow-hidden sm:rounded-lg">
{{ $slot }}
</div>

View File

@@ -0,0 +1,7 @@
<footer
class="footer d-flex flex-column flex-md-row align-items-center justify-content-between px-4 py-3 border-top small">
<p class="text-muted mb-1 mb-md-0">Copyright © 2022 <a href="https://www.nobleui.com" target="_blank">NobleUI</a>.
</p>
<p class="text-muted">Handcrafted With <i class="mb-1 text-primary ms-1 icon-sm" data-feather="heart"></i>
</p>
</footer>

View File

@@ -0,0 +1,280 @@
<nav class="navbar">
<a href="#" class="sidebar-toggler">
<i data-feather="menu"></i>
</a>
<div class="navbar-content">
<form class="search-form">
<div class="input-group">
<div class="input-group-text">
<i data-feather="search"></i>
</div>
<input type="text" class="form-control" id="navbarForm" placeholder="Search here...">
</div>
</form>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="languageDropdown" role="button"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="flag-icon flag-icon-us mt-1" title="us"></i> <span
class="ms-1 me-1 d-none d-md-inline-block">English</span>
</a>
<div class="dropdown-menu" aria-labelledby="languageDropdown">
<a href="javascript:;" class="dropdown-item py-2"><i class="flag-icon flag-icon-us"
title="us" id="us"></i> <span
class="ms-1"> English </span></a>
<a href="javascript:;" class="dropdown-item py-2"><i class="flag-icon flag-icon-fr"
title="fr" id="fr"></i> <span
class="ms-1"> French </span></a>
<a href="javascript:;" class="dropdown-item py-2"><i class="flag-icon flag-icon-de"
title="de" id="de"></i> <span
class="ms-1"> German </span></a>
<a href="javascript:;" class="dropdown-item py-2"><i class="flag-icon flag-icon-pt"
title="pt" id="pt"></i> <span
class="ms-1"> Portuguese </span></a>
<a href="javascript:;" class="dropdown-item py-2"><i class="flag-icon flag-icon-es"
title="es" id="es"></i> <span
class="ms-1"> Spanish </span></a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="appsDropdown" role="button"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i data-feather="grid"></i>
</a>
<div class="dropdown-menu p-0" aria-labelledby="appsDropdown">
<div class="px-3 py-2 d-flex align-items-center justify-content-between border-bottom">
<p class="mb-0 fw-bold">Web Apps</p>
<a href="javascript:;" class="text-muted">Edit</a>
</div>
<div class="row g-0 p-1">
<div class="col-3 text-center">
<a href="pages/apps/chat.html"
class="dropdown-item d-flex flex-column align-items-center justify-content-center wd-70 ht-70"><i
data-feather="message-square" class="icon-lg mb-1"></i>
<p class="tx-12">Chat</p></a>
</div>
<div class="col-3 text-center">
<a href="pages/apps/calendar.html"
class="dropdown-item d-flex flex-column align-items-center justify-content-center wd-70 ht-70"><i
data-feather="calendar" class="icon-lg mb-1"></i>
<p class="tx-12">Calendar</p></a>
</div>
<div class="col-3 text-center">
<a href="pages/email/inbox.html"
class="dropdown-item d-flex flex-column align-items-center justify-content-center wd-70 ht-70"><i
data-feather="mail" class="icon-lg mb-1"></i>
<p class="tx-12">Email</p></a>
</div>
<div class="col-3 text-center">
<a href="pages/general/profile.html"
class="dropdown-item d-flex flex-column align-items-center justify-content-center wd-70 ht-70"><i
data-feather="instagram" class="icon-lg mb-1"></i>
<p class="tx-12">Profile</p></a>
</div>
</div>
<div class="px-3 py-2 d-flex align-items-center justify-content-center border-top">
<a href="javascript:;">View all</a>
</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="messageDropdown" role="button"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i data-feather="mail"></i>
</a>
<div class="dropdown-menu p-0" aria-labelledby="messageDropdown">
<div class="px-3 py-2 d-flex align-items-center justify-content-between border-bottom">
<p>9 New Messages</p>
<a href="javascript:;" class="text-muted">Clear all</a>
</div>
<div class="p-1">
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div class="me-3">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="userr">
</div>
<div class="d-flex justify-content-between flex-grow-1">
<div class="me-4">
<p>Leonardo Payne</p>
<p class="tx-12 text-muted">Project status</p>
</div>
<p class="tx-12 text-muted">2 min ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div class="me-3">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="userr">
</div>
<div class="d-flex justify-content-between flex-grow-1">
<div class="me-4">
<p>Carl Henson</p>
<p class="tx-12 text-muted">Client meeting</p>
</div>
<p class="tx-12 text-muted">30 min ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div class="me-3">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="userr">
</div>
<div class="d-flex justify-content-between flex-grow-1">
<div class="me-4">
<p>Jensen Combs</p>
<p class="tx-12 text-muted">Project updates</p>
</div>
<p class="tx-12 text-muted">1 hrs ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div class="me-3">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="userr">
</div>
<div class="d-flex justify-content-between flex-grow-1">
<div class="me-4">
<p>Amiah Burton</p>
<p class="tx-12 text-muted">Project deatline</p>
</div>
<p class="tx-12 text-muted">2 hrs ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div class="me-3">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="userr">
</div>
<div class="d-flex justify-content-between flex-grow-1">
<div class="me-4">
<p>Yaretzi Mayo</p>
<p class="tx-12 text-muted">New record</p>
</div>
<p class="tx-12 text-muted">5 hrs ago</p>
</div>
</a>
</div>
<div class="px-3 py-2 d-flex align-items-center justify-content-center border-top">
<a href="javascript:;">View all</a>
</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="notificationDropdown" role="button"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i data-feather="bell"></i>
<div class="indicator">
<div class="circle"></div>
</div>
</a>
<div class="dropdown-menu p-0" aria-labelledby="notificationDropdown">
<div class="px-3 py-2 d-flex align-items-center justify-content-between border-bottom">
<p>6 New Notifications</p>
<a href="javascript:;" class="text-muted">Clear all</a>
</div>
<div class="p-1">
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div
class="wd-30 ht-30 d-flex align-items-center justify-content-center bg-primary rounded-circle me-3">
<i class="icon-sm text-white" data-feather="gift"></i>
</div>
<div class="flex-grow-1 me-2">
<p>New Order Recieved</p>
<p class="tx-12 text-muted">30 min ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div
class="wd-30 ht-30 d-flex align-items-center justify-content-center bg-primary rounded-circle me-3">
<i class="icon-sm text-white" data-feather="alert-circle"></i>
</div>
<div class="flex-grow-1 me-2">
<p>Server Limit Reached!</p>
<p class="tx-12 text-muted">1 hrs ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div
class="wd-30 ht-30 d-flex align-items-center justify-content-center bg-primary rounded-circle me-3">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="userr">
</div>
<div class="flex-grow-1 me-2">
<p>New customer registered</p>
<p class="tx-12 text-muted">2 sec ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div
class="wd-30 ht-30 d-flex align-items-center justify-content-center bg-primary rounded-circle me-3">
<i class="icon-sm text-white" data-feather="layers"></i>
</div>
<div class="flex-grow-1 me-2">
<p>Apps are ready for update</p>
<p class="tx-12 text-muted">5 hrs ago</p>
</div>
</a>
<a href="javascript:;" class="dropdown-item d-flex align-items-center py-2">
<div
class="wd-30 ht-30 d-flex align-items-center justify-content-center bg-primary rounded-circle me-3">
<i class="icon-sm text-white" data-feather="download"></i>
</div>
<div class="flex-grow-1 me-2">
<p>Download completed</p>
<p class="tx-12 text-muted">6 hrs ago</p>
</div>
</a>
</div>
<div class="px-3 py-2 d-flex align-items-center justify-content-center border-top">
<a href="javascript:;">View all</a>
</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="profileDropdown" role="button"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img class="wd-30 ht-30 rounded-circle" src="https://via.placeholder.com/30x30"
alt="profile">
</a>
<div class="dropdown-menu p-0" aria-labelledby="profileDropdown">
<div class="d-flex flex-column align-items-center border-bottom px-5 py-3">
<div class="mb-3">
<img class="wd-80 ht-80 rounded-circle" src="https://via.placeholder.com/80x80"
alt="">
</div>
<div class="text-center">
<p class="tx-16 fw-bolder">Amiah Burton</p>
<p class="tx-12 text-muted">amiahburton@gmail.com</p>
</div>
</div>
<ul class="list-unstyled p-1">
<li class="dropdown-item py-2">
<a href="{{route('profile.edit')}}" class="text-body ms-0">
<i class="me-2 icon-md" data-feather="user"></i>
<span>Profile</span>
</a>
</li>
<li class="dropdown-item py-2">
<a href="javascript:;" class="text-body ms-0">
<i class="me-2 icon-md" data-feather="edit"></i>
<span>Edit Profile</span>
</a>
</li>
<li class="dropdown-item py-2">
<a href="javascript:;" class="text-body ms-0">
<i class="me-2 icon-md" data-feather="repeat"></i>
<span>Switch User</span>
</a>
</li>
<li class="dropdown-item py-2">
<a href="javascript:;" class="text-body ms-0">
<i class="me-2 icon-md" data-feather="log-out"></i>
<span>Log Out</span>
</a>
</li>
</ul>
</div>
</li>
</ul>
</div>
</nav>

View File

@@ -0,0 +1,16 @@
<!-- core:js -->
<script src="assets/vendors/core/core.js"></script>
<!-- endinject -->
<!-- Plugin js for this page -->
<script src="assets/vendors/flatpickr/flatpickr.min.js"></script>
<!-- End plugin js for this page -->
<!-- inject:js -->
<script src="assets/vendors/feather-icons/feather.min.js"></script>
<script src="assets/js/template.js"></script>
<!-- endinject -->
<!-- Custom js for this page -->
<script src="assets/js/dashboard-dark.js"></script>
<!-- End custom js for this page -->

View File

@@ -0,0 +1,330 @@
<nav class="sidebar">
<div class="sidebar-header">
<a href="#" class="sidebar-brand">
Noble<span>UI</span>
</a>
<div class="sidebar-toggler not-active">
<span></span>
<span></span>
<span></span>
</div>
</div>
<div class="sidebar-body">
<ul class="nav">
<li class="nav-item nav-category">Main</li>
<li class="nav-item">
<a href="dashboard.html" class="nav-link">
<i class="link-icon" data-feather="box"></i>
<span class="link-title">Dashboard</span>
</a>
</li>
<li class="nav-item nav-category">web apps</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#emails" role="button" aria-expanded="false"
aria-controls="emails">
<i class="link-icon" data-feather="mail"></i>
<span class="link-title">Email</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="emails">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/email/inbox.html" class="nav-link">Inbox</a>
</li>
<li class="nav-item">
<a href="pages/email/read.html" class="nav-link">Read</a>
</li>
<li class="nav-item">
<a href="pages/email/compose.html" class="nav-link">Compose</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a href="pages/apps/chat.html" class="nav-link">
<i class="link-icon" data-feather="message-square"></i>
<span class="link-title">Chat</span>
</a>
</li>
<li class="nav-item">
<a href="pages/apps/calendar.html" class="nav-link">
<i class="link-icon" data-feather="calendar"></i>
<span class="link-title">Calendar</span>
</a>
</li>
<li class="nav-item nav-category">Components</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#uiComponents" role="button"
aria-expanded="false" aria-controls="uiComponents">
<i class="link-icon" data-feather="feather"></i>
<span class="link-title">UI Kit</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="uiComponents">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/ui-components/accordion.html" class="nav-link">Accordion</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/alerts.html" class="nav-link">Alerts</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/badges.html" class="nav-link">Badges</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/breadcrumbs.html" class="nav-link">Breadcrumbs</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/buttons.html" class="nav-link">Buttons</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/button-group.html" class="nav-link">Button group</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/cards.html" class="nav-link">Cards</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/carousel.html" class="nav-link">Carousel</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/collapse.html" class="nav-link">Collapse</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/dropdowns.html" class="nav-link">Dropdowns</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/list-group.html" class="nav-link">List group</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/media-object.html" class="nav-link">Media object</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/modal.html" class="nav-link">Modal</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/navs.html" class="nav-link">Navs</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/navbar.html" class="nav-link">Navbar</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/pagination.html" class="nav-link">Pagination</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/popover.html" class="nav-link">Popovers</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/progress.html" class="nav-link">Progress</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/scrollbar.html" class="nav-link">Scrollbar</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/scrollspy.html" class="nav-link">Scrollspy</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/spinners.html" class="nav-link">Spinners</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/tabs.html" class="nav-link">Tabs</a>
</li>
<li class="nav-item">
<a href="pages/ui-components/tooltips.html" class="nav-link">Tooltips</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#advancedUI" role="button" aria-expanded="false"
aria-controls="advancedUI">
<i class="link-icon" data-feather="anchor"></i>
<span class="link-title">Advanced UI</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="advancedUI">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/advanced-ui/cropper.html" class="nav-link">Cropper</a>
</li>
<li class="nav-item">
<a href="pages/advanced-ui/owl-carousel.html" class="nav-link">Owl carousel</a>
</li>
<li class="nav-item">
<a href="pages/advanced-ui/sortablejs.html" class="nav-link">SortableJs</a>
</li>
<li class="nav-item">
<a href="pages/advanced-ui/sweet-alert.html" class="nav-link">Sweet Alert</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#forms" role="button" aria-expanded="false"
aria-controls="forms">
<i class="link-icon" data-feather="inbox"></i>
<span class="link-title">Forms</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="forms">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/forms/basic-elements.html" class="nav-link">Basic Elements</a>
</li>
<li class="nav-item">
<a href="pages/forms/advanced-elements.html" class="nav-link">Advanced Elements</a>
</li>
<li class="nav-item">
<a href="pages/forms/editors.html" class="nav-link">Editors</a>
</li>
<li class="nav-item">
<a href="pages/forms/wizard.html" class="nav-link">Wizard</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#charts" role="button" aria-expanded="false"
aria-controls="charts">
<i class="link-icon" data-feather="pie-chart"></i>
<span class="link-title">Charts</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="charts">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/charts/apex.html" class="nav-link">Apex</a>
</li>
<li class="nav-item">
<a href="pages/charts/chartjs.html" class="nav-link">ChartJs</a>
</li>
<li class="nav-item">
<a href="pages/charts/flot.html" class="nav-link">Flot</a>
</li>
<li class="nav-item">
<a href="pages/charts/morrisjs.html" class="nav-link">Morris</a>
</li>
<li class="nav-item">
<a href="pages/charts/peity.html" class="nav-link">Peity</a>
</li>
<li class="nav-item">
<a href="pages/charts/sparkline.html" class="nav-link">Sparkline</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#tables" role="button" aria-expanded="false"
aria-controls="tables">
<i class="link-icon" data-feather="layout"></i>
<span class="link-title">Table</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="tables">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/tables/basic-table.html" class="nav-link">Basic Tables</a>
</li>
<li class="nav-item">
<a href="pages/tables/data-table.html" class="nav-link">Data Table</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#icons" role="button" aria-expanded="false"
aria-controls="icons">
<i class="link-icon" data-feather="smile"></i>
<span class="link-title">Icons</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="icons">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/icons/feather-icons.html" class="nav-link">Feather Icons</a>
</li>
<li class="nav-item">
<a href="pages/icons/flag-icons.html" class="nav-link">Flag Icons</a>
</li>
<li class="nav-item">
<a href="pages/icons/mdi-icons.html" class="nav-link">Mdi Icons</a>
</li>
</ul>
</div>
</li>
<li class="nav-item nav-category">Pages</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#general-pages" role="button"
aria-expanded="false" aria-controls="general-pages">
<i class="link-icon" data-feather="book"></i>
<span class="link-title">Special pages</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="general-pages">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/general/blank-page.html" class="nav-link">Blank page</a>
</li>
<li class="nav-item">
<a href="pages/general/faq.html" class="nav-link">Faq</a>
</li>
<li class="nav-item">
<a href="pages/general/invoice.html" class="nav-link">Invoice</a>
</li>
<li class="nav-item">
<a href="pages/general/profile.html" class="nav-link">Profile</a>
</li>
<li class="nav-item">
<a href="pages/general/pricing.html" class="nav-link">Pricing</a>
</li>
<li class="nav-item">
<a href="pages/general/timeline.html" class="nav-link">Timeline</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#authPages" role="button" aria-expanded="false"
aria-controls="authPages">
<i class="link-icon" data-feather="unlock"></i>
<span class="link-title">Authentication</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="authPages">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/auth/login.html" class="nav-link">Login</a>
</li>
<li class="nav-item">
<a href="pages/auth/register.html" class="nav-link">Register</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="collapse" href="#errorPages" role="button" aria-expanded="false"
aria-controls="errorPages">
<i class="link-icon" data-feather="cloud-off"></i>
<span class="link-title">Error</span>
<i class="link-arrow" data-feather="chevron-down"></i>
</a>
<div class="collapse" id="errorPages">
<ul class="nav sub-menu">
<li class="nav-item">
<a href="pages/error/404.html" class="nav-link">404</a>
</li>
<li class="nav-item">
<a href="pages/error/500.html" class="nav-link">500</a>
</li>
</ul>
</div>
</li>
<li class="nav-item nav-category">Docs</li>
<li class="nav-item">
<a href="https://www.nobleui.com/html/documentation/docs.html" target="_blank" class="nav-link">
<i class="link-icon" data-feather="hash"></i>
<span class="link-title">Documentation</span>
</a>
</li>
</ul>
</div>
</nav>

View File

@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body class="font-sans antialiased">
<div class="min-h-screen bg-gray-100 dark:bg-gray-900">
@include('layouts.navigation')
<!-- Page Heading -->
@if (isset($header))
<header class="bg-white dark:bg-gray-800 shadow">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $header }}
</div>
</header>
@endif
@if (isset($pippo))
<header class="bg-white dark:bg-gray-800 shadow">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $pippo }}
</div>
</header>
@endif
<!-- Page Content -->
<main>
{{ $slot }}
</main>
<div style="background-color: red">asdjdaklhd</div>
</div>
</body>
</html>

View File

@@ -27,3 +27,4 @@
</div>
</div>
</x-app-layout>

View File

@@ -13,21 +13,22 @@
@csrf
@method('put')
<div>
<x-input-label for="update_password_current_password" :value="__('Current Password')" />
<x-text-input id="update_password_current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
<x-text-input :notvalid="$errors->updatePassword->has('current_password')" id="update_password_current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
<x-input-error :messages="$errors->updatePassword->get('current_password')" class="mt-2" />
</div>
<div>
<x-input-label for="update_password_password" :value="__('New Password')" />
<x-text-input id="update_password_password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-text-input :notvalid="$errors->updatePassword->has('password')" id="update_password_password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-input-error :messages="$errors->updatePassword->get('password')" class="mt-2" />
</div>
<div>
<x-input-label for="update_password_password_confirmation" :value="__('Confirm Password')" />
<x-text-input id="update_password_password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-text-input :notvalid="$errors->updatePassword->has('password_confirmation')" id="update_password_password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-input-error :messages="$errors->updatePassword->get('password_confirmation')" class="mt-2" />
</div>

View File

@@ -0,0 +1,23 @@
<x-app-layout>
<table class="table table-striped">
<thead>
<tr>
<th>Word</th>
<th>Translation</th>
</tr>
</thead>
<tbody>
@forelse ($words as $word)
<tr>
<td>{{$word->name}}</td>
<td>{{$word->translation}}</td>
</tr>
@empty
<tr>
<td class="text-center" colspan="2">No words</td>
</tr>
@endforelse
</tbody>
</table>
</x-app-layout>

View File

@@ -1,6 +1,7 @@
<?php
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\WordsController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
@@ -50,6 +51,12 @@ Route::middleware('auth')->group(function () {
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});
Route::prefix('words')->group(function () {
Route::get('/', [WordsController::class, 'index'])->name('words.index');
});
require __DIR__ . '/auth.php';

View File

@@ -7,6 +7,15 @@ export default defineConfig({
input: [
'resources/css/app.css',
'resources/js/app.js',
// THEME STYLES
'resources/css/core.css',
'resources/css/app_style.css',
'resources/vendors/flatpickr/flatpickr.min.css',
// THEME SCRIPTS
'resources/js/core.js',
'resources/vendors/flatpickr/flatpickr.min.js',
'resources/js/template.js',
'resources/js/dashboard-dark.js'
],
refresh: true,
}),