Amirul Anwar преди 2 седмици
родител
ревизия
b504bd7f74
променени са 52 файла, в които са добавени 1285 реда и са изтрити 1158 реда
  1. 11
    13
      content/collections/article/2024-03-14.the-bola-1.md
  2. 11
    6
      content/collections/article/2024-03-14.the-bola-2.md
  3. 68
    1
      content/collections/pages/home.md
  4. 0
    5
      content/collections/test.yaml
  5. 1
    1
      content/globals/company_profile.yaml
  6. 0
    4
      content/trees/navigation/main_menu.yaml
  7. 7
    0
      public/assets/.meta/1663760968882.jpg.yaml
  8. 7
    0
      public/assets/.meta/4-1710741803.jpg.yaml
  9. 7
    0
      public/assets/.meta/4.jpg.yaml
  10. 7
    0
      public/assets/.meta/bg2-1710742546.jpg.yaml
  11. 7
    0
      public/assets/.meta/bg2.jpg.yaml
  12. 7
    0
      public/assets/.meta/group-6741.jpg.yaml
  13. 7
    0
      public/assets/.meta/group-6742.jpg.yaml
  14. 7
    0
      public/assets/.meta/group-6743.jpg.yaml
  15. 7
    0
      public/assets/.meta/group-6773-1710740276.jpg.yaml
  16. 7
    0
      public/assets/.meta/infopack_liga-nfdp-rri-2024.jpg.yaml
  17. 7
    0
      public/assets/.meta/whatsapp-image-2024-04-23-at-11.00.27.jpeg.yaml
  18. Двоични данни
      public/assets/1663760968882.jpg
  19. Двоични данни
      public/assets/4-1710741803.jpg
  20. Двоични данни
      public/assets/4.jpg
  21. Двоични данни
      public/assets/bg2-1710742546.jpg
  22. Двоични данни
      public/assets/bg2.jpg
  23. Двоични данни
      public/assets/group-6741.jpg
  24. Двоични данни
      public/assets/group-6742.jpg
  25. Двоични данни
      public/assets/group-6743.jpg
  26. Двоични данни
      public/assets/group-6773-1710740276.jpg
  27. 7
    0
      public/assets/image/.meta/dbparticle2.png.yaml
  28. Двоични данни
      public/assets/infopack_liga-nfdp-rri-2024.jpg
  29. Двоични данни
      public/assets/whatsapp-image-2024-04-23-at-11.00.27.jpeg
  30. 49
    7
      public/css/main.css
  31. Двоични данни
      public/favicon.ico
  32. Двоични данни
      public/images/mail/OTP_TheBola.webp
  33. 142
    0
      public/js/api/API.js
  34. 279
    889
      public/js/main.js
  35. 1
    0
      public/mix-manifest.json
  36. 65
    6
      resources/blueprints/collections/pages/page.yaml
  37. 49
    7
      resources/css/main.css
  38. 33
    0
      resources/fieldsets/home_section_2.yaml
  39. 29
    0
      resources/fieldsets/home_section_3.yaml
  40. 106
    0
      resources/fieldsets/home_section_4.yaml
  41. 33
    0
      resources/fieldsets/homepage_section_1.yaml
  42. 51
    6
      resources/js/api/API.js
  43. 157
    94
      resources/js/main.js
  44. 28
    29
      resources/views/booking.antlers.html
  45. 39
    67
      resources/views/home.antlers.html
  46. 3
    1
      resources/views/layout.antlers.html
  47. 8
    0
      resources/views/partials/_appsdownload.antlers.html
  48. 18
    0
      resources/views/partials/_feature.antlers.html
  49. 14
    17
      resources/views/partials/_navbar.antlers.html
  50. 0
    4
      users/azriperisiben@gmail.com.yaml
  51. 5
    0
      users/dev@mirfalah.com.yaml
  52. 1
    1
      webpack.mix.js

+ 11
- 13
content/collections/article/2024-03-14.the-bola-1.md Целия файл

@@ -1,20 +1,18 @@
1 1
 ---
2 2
 id: f1c71af9-e3fc-459e-8cda-e4a4be1b10f3
3 3
 blueprint: article
4
-title: 'The Bola 1'
4
+title: 'Golden Goal FC Triumphs in Liga Puasa OPI 2024'
5 5
 author: ab0729b7-bf3b-4b76-930d-938ff5d0a937
6
-updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
7
-updated_at: 1710565321
6
+updated_by: 0fe06f55-99d6-459d-8bfe-0ba1055ae246
7
+updated_at: 1713842030
8 8
 date_field: '2024-03-13 08:50'
9
-image: group-6775.jpg
10
-article_date: '2024-03-13'
9
+image: whatsapp-image-2024-04-23-at-11.00.27.jpeg
10
+article_date: '2024-04-23'
11 11
 article_featured: true
12 12
 ---
13
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae dicta commodi ad
14
-
15
-nobisillum accusamus molestias aliquid nostrum adipisci totam labore nihil facilis delectus soluta ratione, exercitationem perferendis architecto sequi consectetur optio? Molestiae 
16
-repudiandae quae vitae vero cupiditate 
17
-
18
-deleniti corporis culpa quos repellat. Praesentium iste consequuntur maxime qui sequi totam, ipsam, labore quo nisi at aspernatur saepe harum perspiciatis 
19
-
20
-ullam aliquam, molestias quisquam corrupti expedita nostrum numquam nobis alias vel?
13
+From March 14th to April 4th, 2024, the RRI Football Park witnessed the exhilarating matches of the Liga Puasa OPI 2024, organized by Haro Sports & Entertainment.
14
+Seven teams, fueled by the sponsorship of Opstar Protein Industries (OPI), took to the field, determined to excel despite the challenges of fasting during the holy month of Ramadhan.
15
+In a nail-biting final showdown, Golden Goal FC emerged victorious, claiming both the prestigious trophy and a cash prize of RM1,500.
16
+BDK FC secured the first runner-up position, earning RM1,000 in cash, while SKTT FC clinched the second runner-up spot, taking home RM500.
17
+Throughout the tournament, OPI played a crucial role by sponsoring protein drinks for the players, ensuring they had the energy to perform at their best during and after each match.
18
+The event's objective was not only to promote fitness and community engagement but also to showcase the spirit of perseverance and teamwork among players, even during the fasting period.

+ 11
- 6
content/collections/article/2024-03-14.the-bola-2.md Целия файл

@@ -1,14 +1,19 @@
1 1
 ---
2 2
 id: 5adec921-111f-41b1-ab60-f29e0ffd2f58
3 3
 blueprint: article
4
-title: 'The Bola 2'
4
+title: 'RRI Football Park Makes History as Host Venue for First-Ever NFDP League, Klang Valley Edition'
5 5
 author: ab0729b7-bf3b-4b76-930d-938ff5d0a937
6
-updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
7
-updated_at: 1710565327
6
+updated_by: 0fe06f55-99d6-459d-8bfe-0ba1055ae246
7
+updated_at: 1713842042
8 8
 duplicated_from: f1c71af9-e3fc-459e-8cda-e4a4be1b10f3
9 9
 date_field: '2024-03-13 08:50'
10
-image: group-6774.jpg
11
-article_date: '2024-03-14'
10
+image: infopack_liga-nfdp-rri-2024.jpg
11
+article_date: '2024-04-23'
12 12
 article_featured: true
13 13
 ---
14
-Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae dicta commodi ad nobis illum accusamus molestias aliquid nostrum adipisci totam labore nihil facilis delectus soluta ratione, exercitationem perferendis architecto sequi consectetur optio? Molestiae repudiandae quae vitae vero cupiditate deleniti corporis culpa quos repellat. Praesentium iste consequuntur maxime qui sequi totam, ipsam, labore quo nisi at aspernatur saepe harum perspiciatis ullam aliquam, molestias quisquam corrupti expedita nostrum numquam nobis alias vel?
14
+Starting from May 11th and continuing until November 2024, Saturdays at RRI Football Park will witness an unprecedented sporting spectacle—the first-ever NFDP League, Klang Valley edition.
15
+Spread across Field A and Field B of the official venue, this historic league will feature three categories: under-13, under-15, and under-17, comprising a total of 14 teams.
16
+The participating teams represent a diverse range, including NFDP Selangor with 5 teams, NFDP Kuala Lumpur with 5 teams, as well as invitation teams from NFDP Negeri Sembilan and NFDP Melaka, along with 2 teams from the Zone Training Centre (PLZ).
17
+The league is meticulously organized by Haro Sports & Entertainment, with support from the National Football Development Programme (NFDP) and the National Sports Council (MSN).
18
+Designed to enhance the caliber of national football, the NFDP League brings together top-tier players from District Training Centers (PLD) in the Klang Valley to compete for supremacy in this prestigious tournament.
19
+This initiative aims to foster the development of world-class talent capable of competing on the international stage, showcasing the potential of Malaysian football on a global scale.

+ 68
- 1
content/collections/pages/home.md Целия файл

@@ -5,5 +5,72 @@ title: Home
5 5
 template: home
6 6
 author: ab0729b7-bf3b-4b76-930d-938ff5d0a937
7 7
 updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
8
-updated_at: 1710468048
8
+updated_at: 1710742549
9
+grid_field:
10
+  - null
11
+home_section_1:
12
+  -
13
+    id: ltw8galv
14
+    highlight_text: '<p class="text-highlight hero-text-highlight">WHERE <span class="text-db">PASSION</span>  <br> MEETS THE <span class="text-db">PITCH</span></p>'
15
+    description_text: 'Unleash Your Inner Champion'
16
+    type: homepage_section_1
17
+    enabled: true
18
+    button_link: /booking
19
+home_section_2:
20
+  -
21
+    id: wGgYHLHc
22
+    highlight_text: 'Your Football Haven Awaits: Embrace the  <br> Game at Our State-of-the-Art Field!'
23
+    description_text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse labore ullam error praesentium culpa quae similique, inventore laborum vel a excepturi odit voluptates illum quibusdam, commodi nostrum, tenetur perspiciatis est. Labore adipisci itaque inventore voluptatem pariatur? Quos perferendis sit quo autem praesentium nobis pariatur in! Atque, explicabo magnam! Repellat aliquam dolorem suscipit nam facere'
24
+    button_link: /booking
25
+home_section_4:
26
+  -
27
+    id: s9npkOiq
28
+    highlight_text: Features
29
+    description_text: 'Stay tuned for more latest news and articles brought exclusively by our team'
30
+    features:
31
+      -
32
+        id: ltwhom3l
33
+        highlight: 'Fields Booking and Fixtures 1'
34
+        description_text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse labore ullam error praesentium culpa quae similique, inventore laborum vel a excepturi odit voluptates illum quibusdam, commodi nostrum, tenetur perspiciatis est. Labore adipisci itaque inventore voluptatem pariatur? Quos perferendis sit quo autem praesentium nobis pariatur in! Atque, explicabo magnam! Repellat aliquam dolorem suscipit nam facere'
35
+        icon: '<i class="fa-solid fa-book-bookmark fa-2x text-db d-none d-lg-inline"></i>'
36
+        link_text: 'Download Now'
37
+        link: /booking
38
+        background_image: group-6742.jpg
39
+        type: feature
40
+        enabled: true
41
+      -
42
+        id: ltwiiwib
43
+        highlight: 'Fields Booking and Fixtures 2'
44
+        description_text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse labore ullam error praesentium culpa quae similique, inventore laborum vel a excepturi odit voluptates illum quibusdam, commodi nostrum, tenetur perspiciatis est.'
45
+        icon: '<i class="fa-solid fa-book-bookmark fa-2x text-db d-none d-lg-inline"></i>'
46
+        link_text: 'Download Now'
47
+        link: /download
48
+        background_image: group-6741.jpg
49
+        type: feature
50
+        enabled: true
51
+      -
52
+        id: ltwijpnf
53
+        highlight: 'Fields Booking and Fixtures 3'
54
+        description_text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse labore ullam error praesentium culpa quae similique, inventore laborum vel a excepturi odit voluptates illum quibusdam, commodi nostrum, tenetur perspiciatis est.'
55
+        icon: '<i class="fa-solid fa-book-bookmark fa-2x text-db d-none d-lg-inline"></i>'
56
+        link_text: 'Download Now'
57
+        link: /contact
58
+        background_image: group-6743.jpg
59
+        type: feature
60
+        enabled: true
61
+      -
62
+        id: ltwikvv9
63
+        highlight: 'Fields Booking and Fixtures 4'
64
+        description_text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse labore ullam error praesentium culpa quae similique, inventore laborum vel a excepturi odit voluptates illum quibusdam, commodi nostrum, tenetur perspiciatis est.'
65
+        icon: '<i class="fa-solid fa-book-bookmark fa-2x text-db d-none d-lg-inline"></i>'
66
+        link_text: 'Download Now'
67
+        link: /news
68
+        background_image: group-6773-1710740276.jpg
69
+        type: feature
70
+        enabled: true
71
+home_section_3:
72
+  -
73
+    id: 24e4lguZ
74
+    test_link: TestLink
75
+    background_image: bg2-1710742546.jpg
9 76
 ---

+ 0
- 5
content/collections/test.yaml Целия файл

@@ -1,5 +0,0 @@
1
-title: test
2
-revisions: false
3
-date_behavior:
4
-  past: public
5
-  future: private

+ 1
- 1
content/globals/company_profile.yaml Целия файл

@@ -3,7 +3,7 @@ data:
3 3
   address: '<p>RRI Football Park LGM Sungai Buloh, <br>Jalan Sungai Buloh, PJU4 47000 <br>Petaling Jaya, Selangor, Malaysia</p>'
4 4
   phone_no: '+60122274616'
5 5
   email_office: help@thebola.club
6
-  site_url: 'https://thebola.club/'
6
+  site_url: 'https://api.thebola.club/'
7 7
   facebook_link: 'https://www.facebook.com/'
8 8
   twitter_link: 'https://twitter.com/home?lang=en'
9 9
   youtube_link: 'https://www.youtube.com/'

+ 0
- 4
content/trees/navigation/main_menu.yaml Целия файл

@@ -19,7 +19,3 @@ tree:
19 19
     id: c23fcb6b-2e4e-4626-a525-447d3e1cfb7f
20 20
     title: Contact
21 21
     url: /contact
22
-  -
23
-    id: e913b861-ce87-448d-8243-7fbd48b53cb5
24
-    title: Register
25
-    url: 'https://thebola.club/register'

+ 7
- 0
public/assets/.meta/1663760968882.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 140858
3
+last_modified: 1710751567
4
+width: 800
5
+height: 1000
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/4-1710741803.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 1068215
3
+last_modified: 1710741803
4
+width: 1920
5
+height: 674
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/4.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 1068215
3
+last_modified: 1710740737
4
+width: 1920
5
+height: 674
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/bg2-1710742546.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 1068215
3
+last_modified: 1710742546
4
+width: 1920
5
+height: 674
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/bg2.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 1068215
3
+last_modified: 1710742188
4
+width: 1920
5
+height: 674
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/group-6741.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 59155
3
+last_modified: 1710740196
4
+width: 518
5
+height: 246
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/group-6742.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 103645
3
+last_modified: 1710738966
4
+width: 518
5
+height: 246
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/group-6743.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 39910
3
+last_modified: 1710740227
4
+width: 518
5
+height: 246
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/group-6773-1710740276.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 59909
3
+last_modified: 1710740276
4
+width: 526
5
+height: 436
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/infopack_liga-nfdp-rri-2024.jpg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 5984982
3
+last_modified: 1713841611
4
+width: 4560
5
+height: 2565
6
+mime_type: image/jpeg
7
+duration: null

+ 7
- 0
public/assets/.meta/whatsapp-image-2024-04-23-at-11.00.27.jpeg.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 1352586
3
+last_modified: 1713841327
4
+width: 3696
5
+height: 2456
6
+mime_type: image/jpeg
7
+duration: null

Двоични данни
public/assets/1663760968882.jpg Целия файл


Двоични данни
public/assets/4-1710741803.jpg Целия файл


Двоични данни
public/assets/4.jpg Целия файл


Двоични данни
public/assets/bg2-1710742546.jpg Целия файл


Двоични данни
public/assets/bg2.jpg Целия файл


Двоични данни
public/assets/group-6741.jpg Целия файл


Двоични данни
public/assets/group-6742.jpg Целия файл


Двоични данни
public/assets/group-6743.jpg Целия файл


Двоични данни
public/assets/group-6773-1710740276.jpg Целия файл


+ 7
- 0
public/assets/image/.meta/dbparticle2.png.yaml Целия файл

@@ -0,0 +1,7 @@
1
+data: {  }
2
+size: 73064
3
+last_modified: 1710679801
4
+width: 1920
5
+height: 209
6
+mime_type: image/png
7
+duration: null

Двоични данни
public/assets/infopack_liga-nfdp-rri-2024.jpg Целия файл


Двоични данни
public/assets/whatsapp-image-2024-04-23-at-11.00.27.jpeg Целия файл


+ 49
- 7
public/css/main.css Целия файл

@@ -150,8 +150,7 @@ p {
150 150
 }
151 151
 
152 152
 .nav-logo-desktop {
153
-    width: 3.75rem;
154
-    height: 3.75rem;
153
+    width: 70%
155 154
 }
156 155
 
157 156
 .nav-logo-text {
@@ -283,21 +282,22 @@ p {
283 282
     overflow: hidden;
284 283
 }
285 284
 
286
-.booking-item{
285
+.field-item{
287 286
     padding-top: 80%;
288 287
     background-size: cover;
289 288
     background-repeat: no-repeat;
290 289
     background-position: center center;
290
+    cursor: pointer;
291 291
 }
292 292
 
293
-.booking-details{
293
+.field-details{
294 294
     height: 100%;
295 295
     width: 100%;
296 296
     top:0;
297 297
     left:0
298 298
 }
299 299
 
300
-.booking-overlay{
300
+.field-overlay{
301 301
     background-color: rgba(0, 0, 0, 0.5);
302 302
     width: 100%;
303 303
     padding: 1.688rem 3.625rem;
@@ -306,15 +306,57 @@ p {
306 306
     height: fit-content;
307 307
 }
308 308
 
309
-.booking-item.active .booking-overlay{
309
+.field-c.active .field-overlay{
310 310
     background-color: rgba(103, 235, 71, 0.5);
311 311
 }
312 312
 
313 313
 
314
-.booking-item:hover .booking-overlay{
314
+.field-item:hover .field-overlay{
315 315
     background-color: rgba(103, 235, 71, 0.5);
316 316
 }
317 317
 
318
+.location-item{
319
+    padding-top: 80%;
320
+    background-size: cover;
321
+    background-repeat: no-repeat;
322
+    background-position: center center;
323
+}
324
+
325
+.location-overlay{
326
+    background-color: rgba(0, 0, 0, 0.5);
327
+    width: 100%;
328
+    padding: 1.688rem 3.625rem;
329
+    transition: all 300ms ease-in-out;
330
+    height: 100%;
331
+}
332
+
333
+
334
+#field-location-container:has(> :last-child:nth-child(2)){
335
+   display: none !important;
336
+}
337
+
338
+#field-container:has(> :last-child:nth-child(2)){
339
+    display: none !important;
340
+ }
341
+
342
+
343
+.location-item{
344
+    padding-top: 80%;
345
+    background-size: cover;
346
+    background-repeat: no-repeat;
347
+    background-position: center center;
348
+}
349
+
350
+.select-field.active .location-overlay{
351
+    background-color: rgba(103, 235, 71, 0.5);
352
+}
353
+
354
+
355
+.location-item:hover .location-overlay{
356
+    background-color: rgba(103, 235, 71, 0.5);
357
+}
358
+
359
+
318 360
 .container-contactus{
319 361
     padding-left: 6.5rem;
320 362
     padding-right: 6.5rem;

Двоични данни
public/favicon.ico Целия файл


Двоични данни
public/images/mail/OTP_TheBola.webp Целия файл


+ 142
- 0
public/js/api/API.js Целия файл

@@ -0,0 +1,142 @@
1
+/******/ (() => { // webpackBootstrap
2
+/******/ 	"use strict";
3
+/******/ 	// The require scope
4
+/******/ 	var __webpack_require__ = {};
5
+/******/ 	
6
+/************************************************************************/
7
+/******/ 	/* webpack/runtime/define property getters */
8
+/******/ 	(() => {
9
+/******/ 		// define getter functions for harmony exports
10
+/******/ 		__webpack_require__.d = (exports, definition) => {
11
+/******/ 			for(var key in definition) {
12
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14
+/******/ 				}
15
+/******/ 			}
16
+/******/ 		};
17
+/******/ 	})();
18
+/******/ 	
19
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
20
+/******/ 	(() => {
21
+/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
22
+/******/ 	})();
23
+/******/ 	
24
+/******/ 	/* webpack/runtime/make namespace object */
25
+/******/ 	(() => {
26
+/******/ 		// define __esModule on exports
27
+/******/ 		__webpack_require__.r = (exports) => {
28
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
29
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
30
+/******/ 			}
31
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
32
+/******/ 		};
33
+/******/ 	})();
34
+/******/ 	
35
+/************************************************************************/
36
+var __webpack_exports__ = {};
37
+/*!*********************************!*\
38
+  !*** ./resources/js/api/API.js ***!
39
+  \*********************************/
40
+__webpack_require__.r(__webpack_exports__);
41
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
42
+/* harmony export */   "default": () => (/* binding */ API)
43
+/* harmony export */ });
44
+function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
45
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
46
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
47
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
48
+function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
49
+function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
50
+var server_url = "https://api.thebola.club";
51
+var API = /*#__PURE__*/function () {
52
+  function API() {
53
+    _classCallCheck(this, API);
54
+    this.prefix = server_url;
55
+    this.url = "/api";
56
+    this.test = 200;
57
+  }
58
+  _createClass(API, [{
59
+    key: "listState",
60
+    value: function listState(_ref) {
61
+      var _ref$_callback = _ref._callback,
62
+        _callback = _ref$_callback === void 0 ? function () {} : _ref$_callback;
63
+      var url = "".concat(this.prefix).concat(this.url, "/public/event/location/state");
64
+      fetch(url).then(function (response) {
65
+        return response.json();
66
+      }).then(function (data) {
67
+        return _callback(data);
68
+      })["catch"](function (err) {
69
+        return console.log(err);
70
+      });
71
+    }
72
+  }, {
73
+    key: "listLocation",
74
+    value: function listLocation(_ref2) {
75
+      var state = _ref2.state,
76
+        city = _ref2.city,
77
+        _ref2$_callback = _ref2._callback,
78
+        _callback = _ref2$_callback === void 0 ? function () {} : _ref2$_callback;
79
+      var url = "".concat(this.prefix).concat(this.url, "/public/event/location/field?") + new URLSearchParams({
80
+        state: state,
81
+        city: city
82
+      });
83
+      fetch(url).then(function (response) {
84
+        return response.json();
85
+      }).then(function (data) {
86
+        return _callback(data);
87
+      })["catch"](function (err) {
88
+        return console.log(err);
89
+      });
90
+    }
91
+  }, {
92
+    key: "listField",
93
+    value: function listField(_ref3) {
94
+      var state = _ref3.state,
95
+        city = _ref3.city,
96
+        field_name = _ref3.field_name,
97
+        _ref3$_callback = _ref3._callback,
98
+        _callback = _ref3$_callback === void 0 ? function () {} : _ref3$_callback;
99
+      var url = "".concat(this.prefix).concat(this.url, "/public/event/location?") + new URLSearchParams({
100
+        state: state,
101
+        city: city,
102
+        field_name: field_name
103
+      });
104
+      fetch(url).then(function (response) {
105
+        return response.json();
106
+      }).then(function (data) {
107
+        return _callback(data);
108
+      })["catch"](function (err) {
109
+        return console.log(err);
110
+      });
111
+    }
112
+  }, {
113
+    key: "enquiry",
114
+    value: function enquiry(_ref4, _callback) {
115
+      var email = _ref4.email,
116
+        name = _ref4.name,
117
+        message = _ref4.message;
118
+      var url = "".concat(this.prefix).concat(this.url, "/public/enquiry");
119
+      fetch(url, {
120
+        method: "POST",
121
+        headers: {
122
+          'Content-Type': 'application/json;charset=utf-8'
123
+        },
124
+        body: JSON.stringify({
125
+          contact_email: email,
126
+          contact_name: name,
127
+          message: message
128
+        })
129
+      }).then(function (response) {
130
+        return response.json();
131
+      }).then(function (data) {
132
+        return _callback(data);
133
+      })["catch"](function (err) {
134
+        return console.log(err);
135
+      });
136
+    }
137
+  }]);
138
+  return API;
139
+}();
140
+
141
+/******/ })()
142
+;

+ 279
- 889
public/js/main.js
Файловите разлики са ограничени, защото са твърде много
Целия файл


+ 1
- 0
public/mix-manifest.json Целия файл

@@ -3,6 +3,7 @@
3 3
     "/js/jquery.js": "/js/jquery.js",
4 4
     "/js/main.js": "/js/main.js",
5 5
     "/js/aos.js": "/js/aos.js",
6
+    "/js/api/API.js": "/js/api/API.js",
6 7
     "/css/main.css": "/css/main.css",
7 8
     "/css/aos.css": "/css/aos.css",
8 9
     "/css/normalize.css": "/css/normalize.css",

+ 65
- 6
resources/blueprints/collections/pages/page.yaml Целия файл

@@ -15,13 +15,72 @@ sections:
15 15
           type: markdown
16 16
           localizable: true
17 17
       -
18
-        handle: template
18
+        handle: home_section_1
19 19
         field:
20
-          hide_partials: true
21
-          blueprint: false
22
-          display: Template
23
-          type: template
24
-          icon: template
20
+          fields:
21
+            -
22
+              import: homepage_section_1
23
+          mode: stacked
24
+          max_rows: 1
25
+          min_rows: 1
26
+          reorderable: true
27
+          display: 'Home Section 1'
28
+          type: grid
29
+          icon: grid
30
+          listable: hidden
31
+          instructions_position: above
32
+          visibility: visible
33
+      -
34
+        handle: home_section_2
35
+        field:
36
+          fields:
37
+            -
38
+              import: home_section_2
39
+          mode: stacked
40
+          max_rows: 1
41
+          min_rows: 1
42
+          reorderable: true
43
+          display: 'Home Section 2'
44
+          type: grid
45
+          icon: grid
46
+          listable: hidden
47
+          instructions_position: above
48
+          visibility: visible
49
+          if:
50
+            title: 'equals Home'
51
+          validate:
52
+            - required
53
+      -
54
+        handle: home_section_3
55
+        field:
56
+          fields:
57
+            -
58
+              import: home_section_3
59
+          mode: stacked
60
+          reorderable: true
61
+          display: 'Home Section 3'
62
+          type: grid
63
+          icon: grid
64
+          listable: hidden
65
+          instructions_position: above
66
+          visibility: visible
67
+          if:
68
+            title: 'equals Home'
69
+          max_rows: 1
70
+          min_rows: 1
71
+      -
72
+        handle: home_section_4
73
+        field:
74
+          fields:
75
+            -
76
+              import: home_section_4
77
+          mode: stacked
78
+          max_rows: 1
79
+          min_rows: 1
80
+          reorderable: true
81
+          display: 'Home Section 4'
82
+          type: grid
83
+          icon: grid
25 84
           listable: hidden
26 85
           instructions_position: above
27 86
           visibility: visible

+ 49
- 7
resources/css/main.css Целия файл

@@ -145,8 +145,7 @@ p {
145 145
 }
146 146
 
147 147
 .nav-logo-desktop {
148
-    width: 3.75rem;
149
-    height: 3.75rem;
148
+    width: 70%
150 149
 }
151 150
 
152 151
 .nav-logo-text {
@@ -276,21 +275,22 @@ p {
276 275
     overflow: hidden;
277 276
 }
278 277
 
279
-.booking-item{
278
+.field-item{
280 279
     padding-top: 80%;
281 280
     background-size: cover;
282 281
     background-repeat: no-repeat;
283 282
     background-position: center center;
283
+    cursor: pointer;
284 284
 }
285 285
 
286
-.booking-details{
286
+.field-details{
287 287
     height: 100%;
288 288
     width: 100%;
289 289
     top:0;
290 290
     left:0
291 291
 }
292 292
 
293
-.booking-overlay{
293
+.field-overlay{
294 294
     background-color: rgba(0, 0, 0, 0.5);
295 295
     width: 100%;
296 296
     padding: 1.688rem 3.625rem;
@@ -298,15 +298,57 @@ p {
298 298
     height: fit-content;
299 299
 }
300 300
 
301
-.booking-item.active .booking-overlay{
301
+.field-c.active .field-overlay{
302 302
     background-color: rgba(103, 235, 71, 0.5);
303 303
 }
304 304
 
305 305
 
306
-.booking-item:hover .booking-overlay{
306
+.field-item:hover .field-overlay{
307 307
     background-color: rgba(103, 235, 71, 0.5);
308 308
 }
309 309
 
310
+.location-item{
311
+    padding-top: 80%;
312
+    background-size: cover;
313
+    background-repeat: no-repeat;
314
+    background-position: center center;
315
+}
316
+
317
+.location-overlay{
318
+    background-color: rgba(0, 0, 0, 0.5);
319
+    width: 100%;
320
+    padding: 1.688rem 3.625rem;
321
+    transition: all 300ms ease-in-out;
322
+    height: 100%;
323
+}
324
+
325
+
326
+#field-location-container:has(> :last-child:nth-child(2)){
327
+   display: none !important;
328
+}
329
+
330
+#field-container:has(> :last-child:nth-child(2)){
331
+    display: none !important;
332
+ }
333
+
334
+
335
+.location-item{
336
+    padding-top: 80%;
337
+    background-size: cover;
338
+    background-repeat: no-repeat;
339
+    background-position: center center;
340
+}
341
+
342
+.select-field.active .location-overlay{
343
+    background-color: rgba(103, 235, 71, 0.5);
344
+}
345
+
346
+
347
+.location-item:hover .location-overlay{
348
+    background-color: rgba(103, 235, 71, 0.5);
349
+}
350
+
351
+
310 352
 .container-contactus{
311 353
     padding-left: 6.5rem;
312 354
     padding-right: 6.5rem;

+ 33
- 0
resources/fieldsets/home_section_2.yaml Целия файл

@@ -0,0 +1,33 @@
1
+title: 'Home Section 2'
2
+fields:
3
+  -
4
+    handle: highlight_text
5
+    field:
6
+      input_type: text
7
+      antlers: false
8
+      display: 'Highlight Text'
9
+      type: text
10
+      icon: text
11
+      listable: hidden
12
+      instructions_position: above
13
+      visibility: visible
14
+  -
15
+    handle: description_text
16
+    field:
17
+      input_type: text
18
+      antlers: false
19
+      display: description_text
20
+      type: text
21
+      icon: text
22
+      listable: hidden
23
+      instructions_position: above
24
+      visibility: visible
25
+  -
26
+    handle: button_link
27
+    field:
28
+      display: 'Button Link'
29
+      type: link
30
+      icon: link
31
+      listable: hidden
32
+      instructions_position: above
33
+      visibility: visible

+ 29
- 0
resources/fieldsets/home_section_3.yaml Целия файл

@@ -0,0 +1,29 @@
1
+title: 'Home Section 3'
2
+fields:
3
+  -
4
+    handle: test_link
5
+    field:
6
+      input_type: text
7
+      antlers: false
8
+      display: 'Test Link'
9
+      type: text
10
+      icon: text
11
+      listable: hidden
12
+      instructions_position: above
13
+      visibility: visible
14
+  -
15
+    handle: background_image
16
+    field:
17
+      mode: list
18
+      container: assets
19
+      restrict: false
20
+      allow_uploads: true
21
+      show_filename: true
22
+      max_files: 1
23
+      min_files: 1
24
+      display: 'Background Image'
25
+      type: assets
26
+      icon: assets
27
+      listable: hidden
28
+      instructions_position: above
29
+      visibility: visible

+ 106
- 0
resources/fieldsets/home_section_4.yaml Целия файл

@@ -0,0 +1,106 @@
1
+title: 'Home Section 4'
2
+fields:
3
+  -
4
+    handle: highlight_text
5
+    field:
6
+      input_type: text
7
+      antlers: false
8
+      display: 'Highlight Text'
9
+      type: text
10
+      icon: text
11
+      listable: hidden
12
+      instructions_position: above
13
+      visibility: visible
14
+  -
15
+    handle: description_text
16
+    field:
17
+      antlers: false
18
+      display: 'Description Text'
19
+      type: textarea
20
+      icon: textarea
21
+      listable: hidden
22
+      instructions_position: above
23
+      visibility: visible
24
+  -
25
+    handle: features
26
+    field:
27
+      collapse: false
28
+      previews: true
29
+      sets:
30
+        feature:
31
+          display: feature
32
+          fields:
33
+            -
34
+              handle: highlight
35
+              field:
36
+                input_type: text
37
+                antlers: false
38
+                display: Highlight
39
+                type: text
40
+                icon: text
41
+                listable: hidden
42
+                instructions_position: above
43
+                visibility: visible
44
+            -
45
+              handle: description_text
46
+              field:
47
+                antlers: false
48
+                display: 'Description Text'
49
+                type: textarea
50
+                icon: textarea
51
+                listable: hidden
52
+                instructions_position: above
53
+                visibility: visible
54
+            -
55
+              handle: icon
56
+              field:
57
+                input_type: text
58
+                antlers: false
59
+                display: Icon
60
+                type: text
61
+                icon: text
62
+                listable: hidden
63
+                instructions_position: above
64
+                visibility: visible
65
+            -
66
+              handle: link_text
67
+              field:
68
+                input_type: text
69
+                antlers: false
70
+                display: 'Link Text'
71
+                type: text
72
+                icon: text
73
+                listable: hidden
74
+                instructions_position: above
75
+                visibility: visible
76
+            -
77
+              handle: link
78
+              field:
79
+                display: Link
80
+                type: link
81
+                icon: link
82
+                listable: hidden
83
+                instructions_position: above
84
+                visibility: visible
85
+            -
86
+              handle: background_image
87
+              field:
88
+                mode: list
89
+                container: assets
90
+                restrict: false
91
+                allow_uploads: true
92
+                show_filename: true
93
+                max_files: 1
94
+                min_files: 1
95
+                display: 'Background Image'
96
+                type: assets
97
+                icon: assets
98
+                listable: hidden
99
+                instructions_position: above
100
+                visibility: visible
101
+      display: features
102
+      type: replicator
103
+      icon: replicator
104
+      listable: hidden
105
+      instructions_position: above
106
+      visibility: visible

+ 33
- 0
resources/fieldsets/homepage_section_1.yaml Целия файл

@@ -0,0 +1,33 @@
1
+title: 'Home Section 1'
2
+fields:
3
+  -
4
+    handle: highlight_text
5
+    field:
6
+      input_type: text
7
+      antlers: false
8
+      display: 'Highlight Text'
9
+      type: text
10
+      icon: text
11
+      listable: hidden
12
+      instructions_position: above
13
+      visibility: visible
14
+  -
15
+    handle: description_text
16
+    field:
17
+      input_type: text
18
+      antlers: false
19
+      display: 'Description Text'
20
+      type: text
21
+      icon: text
22
+      listable: hidden
23
+      instructions_position: above
24
+      visibility: visible
25
+  -
26
+    handle: button_link
27
+    field:
28
+      display: 'button link'
29
+      type: link
30
+      icon: link
31
+      listable: hidden
32
+      instructions_position: above
33
+      visibility: visible

+ 51
- 6
resources/js/api/API.js Целия файл

@@ -1,6 +1,4 @@
1
-//import some server backend
2
-//set app url from env file
3
-const server_url = "https://thebola.club";
1
+const server_url = "https://api.thebola.club";
4 2
 
5 3
 export default class API {
6 4
     constructor() {
@@ -9,11 +7,58 @@ export default class API {
9 7
         this.test = 200;
10 8
     }
11 9
 
12
-    listLocation(_page, _pagesize, _callback) {
10
+    listState({_callback = () => {}}){
11
+        const url = `${this.prefix}${this.url}/public/event/location/state`
13 12
 
14
-        let url =  `${this.prefix}${this.url}/public/event/location?`
13
+        fetch(url)
14
+            .then(response => response.json())
15
+            .then(data => _callback(data))
16
+            .catch(err => console.log(err))
15 17
 
16
-        console.log(url)
18
+    }
19
+
20
+    listLocation({ state, city, _callback = () => {}}) {
21
+
22
+        const url = `${this.prefix}${this.url}/public/event/location/field?` + new URLSearchParams({
23
+            state, city
24
+        })
25
+
26
+        fetch(url)
27
+            .then(response => response.json())
28
+            .then(data => _callback(data) )
29
+            .catch(err => console.log(err))
30
+    }
31
+
32
+    listField({state, city, field_name, _callback = () => {}}){
33
+
34
+        const url = `${this.prefix}${this.url}/public/event/location?` + new URLSearchParams({
35
+            state, city, field_name
36
+        })
37
+
38
+        fetch(url)
39
+            .then(response => response.json())
40
+            .then(data => _callback(data) )
41
+            .catch(err => console.log(err))
42
+
43
+    }
44
+
45
+    enquiry({ email, name, message }, _callback){
46
+
47
+        let url = `${this.prefix}${this.url}/public/enquiry`;
17 48
 
49
+        fetch(url,{
50
+            method: "POST",
51
+            headers: {
52
+                'Content-Type': 'application/json;charset=utf-8',
53
+            },
54
+            body: JSON.stringify({
55
+                contact_email: email,
56
+                contact_name: name,
57
+                message
58
+            })
59
+        } )
60
+            .then(response => response.json())
61
+            .then(data => _callback(data) )
62
+            .catch(err => console.log(err))
18 63
     }
19 64
 }

+ 157
- 94
resources/js/main.js Целия файл

@@ -1,59 +1,10 @@
1 1
 import AOS from "aos";
2 2
 import jQuery from "jquery";
3
-import queryString from "query-string";
4
-//import API from './api/api';
5
-
6
-const server_url = "https://thebola.club";
7
-
8
-export default class API {
9
-    constructor() {
10
-        this.prefix = server_url;
11
-        this.url = "/api";
12
-        this.test = 200;
13
-    }
14
-
15
-    listLocation({ _search, _page = 1, _pagesize = 20, _callback = () => {} }) {
16
-
17
-        let url = `${this.prefix}${
18
-            this.url
19
-        }/public/event/location?${queryString.stringify({
20
-            _search,
21
-            _page,
22
-            _pagesize,
23
-        })}`;
24
-
25
-
26
-        fetch(url)
27
-            .then(response => response.json())
28
-            .then(data => _callback(data) )
29
-            .catch(err => console.log(err))
30
-    }
31
-
32
-    enquiry({ email, name, message }, _callback){
33
-
34
-        let url = `${this.prefix}${this.url}/public/enquiry`;
35
-
36
-        fetch(url,{
37
-            method: "POST",
38
-            headers: {
39
-                'Content-Type': 'application/json;charset=utf-8',
40
-            },
41
-            body: JSON.stringify({
42
-                contact_email: email,
43
-                contact_name: name,
44
-                message
45
-            })
46
-        } )
47
-            .then(response => response.json())
48
-            .then(data => _callback(data) )
49
-            .catch(err => console.log(err))
50
-    }
51
-}
3
+import API from './api/api';
52 4
 
53 5
 const $ = jQuery;
54 6
 const api = new API();
55 7
 
56
-var bookingList = [];
57 8
 var bookingRules = [];
58 9
 
59 10
 setTimeout(() => {
@@ -111,60 +62,164 @@ $(document).ready(function () {
111 62
     //check if booking section exist in any page
112 63
     let bookingContainer = $('#booking-section');
113 64
     if(bookingContainer.length > 0){
114
-        api.listLocation({
115
-            _search: "",
116
-            _page: 1,
117
-            _pagesize: 20,
118
-            _callback: (data) => {
119
-                console.log("fetch")
120
-                localStorage.setItem('thebola-booking', JSON.stringify(data))
121
-                bookingList = data;
122
-
123
-                // set date max and min
124
-                let { maxDate, minDate } = createDateInputWithRange(14)
125
-                $('#input-booking-date').attr("min", minDate)
126
-                $('#input-booking-date').attr("max", maxDate)
127
-
128
-            },
129
-        });
65
+
66
+        api.listState({
67
+            _callback: ({state_city}) => {
68
+
69
+                const selectLocationInput = $("#select-location");
70
+                if(Array.isArray(state_city)){
71
+                    state_city.forEach(({state, city}, i) => {
72
+                        let newOption = document.createElement('option');
73
+                        $(newOption).attr("id", `location_${i}`)
74
+                        $(newOption).attr("value",JSON.stringify({state,city}))
75
+                        $(newOption).addClass("select-value")
76
+                        newOption.text = `${city}, ${state}`
77
+                        $(selectLocationInput).append(newOption)
78
+                    });
79
+                }
80
+
81
+                $(selectLocationInput).on('change', ()=>{
82
+                    resetField()
83
+                })
84
+
85
+            }
86
+        })
87
+
88
+        // set date max and min
89
+        let { maxDate, minDate } = createDateInputWithRange(14)
90
+        let inputDate = $('#input-booking-date')
91
+        $(inputDate).attr("min", minDate)
92
+        $(inputDate).attr("max", maxDate)
93
+        resetDate()
94
+
130 95
     }
131 96
 
97
+    $("#register-btn").on('click', function(e){
98
+        e.preventDefault();
99
+        document.getElementById("download-container").scrollIntoView();
100
+    })
101
+
102
+    $("#signin-btn").on('click', function(e){
103
+        e.preventDefault();
104
+        document.getElementById("download-container").scrollIntoView();
105
+    })
132 106
 
133
-    $(".booking-item").on("click", function () {
107
+    $("#booknow-btn").on('click', function(e){
108
+        e.preventDefault();
109
+        document.getElementById("download-container").scrollIntoView();
110
+    })
134 111
 
135
-        // remove all child active class, then add active on clicked
136
-        let bookingContainer = $('.booking-container');
137
-        $(bookingContainer).find(".booking-item").removeClass("active")
138
-        $(this).addClass("active");
139 112
 
140
-        let fieldID = $(this).data('fieldid');
113
+    $("#select-location").on('change', function(){
114
+
115
+        resetDate()
116
+        resetRules()
117
+        resetField()
118
+        $("#select-location").children("#default-input-select-location").remove()
119
+
120
+        setTimeout(() => {
121
+            document.getElementById("field-location-container").scrollIntoView({ behavior: "smooth", block: "end", inline: "end" });
122
+        }, 300);
141 123
 
142
-        //ensure everything exist
143
-        if(bookingList === undefined || bookingList.length == 0){
144
-            bookingList = localStorage.getItem('thebola-booking')
145
-        }
146 124
 
147
-        if(fieldID && bookingList){
125
+        if(this.value !== "default" ){
126
+            let {state, city} = JSON.parse(this.value);
148 127
 
149
-            let { results } = bookingList;
150
-            let slots = results.filter( data => data.id == fieldID )
151
-            let { rules } = slots[0].slot_rules
152
-            bookingRules = rules
128
+            api.listLocation({
129
+                state,
130
+                city,
131
+                _callback: ({field_location}) => {
153 132
 
154
-        }else{
155
-            console.log("no booking data")
133
+                    let template = $('#field-location-template')
134
+                    let container = $(template).parent()
135
+
136
+                    //reset eveything
137
+                    $(container).children(".select-field").remove()
138
+
139
+                    try{
140
+
141
+                        field_location.forEach(({field_name, city, state, photo_path}) => {
142
+                            let newField = $(template).clone()
143
+                            $(newField).css('display','block')
144
+                            $(newField).removeAttr("id")
145
+                            $(newField).addClass("select-field")
146
+                            $(newField).find('.field-location-text').text("")
147
+                            $(newField).on('click', ()=>{ handleClickFieldLocation(city, state, field_name, newField) })
148
+                            $(newField).find('.field-location-img').attr("style", `background-image:url(https://thebola.club/files/${photo_path})`)
149
+                            $(container).append(newField)
150
+
151
+                        });
152
+
153
+                    }catch(err){
154
+                        console.log(err)
155
+                    }
156
+                },
157
+            });
156 158
         }
157 159
 
160
+    })
161
+
158 162
 
159
-    });
163
+    const handleClickFieldLocation = function (city, state, field_name, refElem) {
164
+
165
+        $("#field-location-container").find(".select-field").removeClass("active")
166
+        $(refElem).addClass("active")
167
+        resetDate()
168
+        resetRules()
169
+        resetField()
170
+
171
+        setTimeout(() => {
172
+            document.getElementById("field-container").scrollIntoView();
173
+        }, 300);
174
+
175
+        api.listField({state, city, field_name, _callback:({results})=>{
176
+
177
+            let container = $('#field-container')
178
+            let template = $('#field-template')
179
+            try{
180
+
181
+                results.forEach(({location_name, photo_path, slot_rules}) => {
182
+
183
+                    let newField = $(template).clone()
184
+                    $(newField).css('display','block')
185
+                    $(newField).removeAttr("id")
186
+                    $(newField).addClass("select-field")
187
+                    $(newField).find('.field-text').text(location_name)
188
+                    $(newField).on('click', ()=>{ handleClickField(slot_rules, newField)})
189
+                    $(newField).find('.field-img').attr("style", `background-image:url(https://thebola.club/files/${photo_path})`)
190
+                    $(container).append(newField)
191
+
192
+                });
193
+
194
+            }catch(err){
195
+                console.log(err)
196
+            }
197
+
198
+        }})
199
+
200
+    }
201
+
202
+    const handleClickField = function (slot_rules,refElem){
203
+
204
+        // remove all child active class, then add active on clicked
205
+        let fieldContainer = $('#field-container');
206
+        $(fieldContainer).find(".select-field").removeClass("active")
207
+        $(refElem).addClass("active");
208
+        resetRules()
209
+        resetDate()
210
+        bookingRules = slot_rules.rules
211
+
212
+
213
+    }
160 214
 
161 215
     $('#input-booking-date').change(function() {
162 216
 
217
+
163 218
         if(bookingRules){
164 219
 
165 220
             // render rule of slot base on current input value date
166 221
             var dayName = getDayNameFromInput(document.getElementById("input-booking-date"));
167
-            $("#input-booking-slot").children(".select-value").remove();
222
+            resetRules()
168 223
 
169 224
             setTimeout(() => {
170 225
 
@@ -194,21 +249,29 @@ $(document).ready(function () {
194 249
     }
195 250
 
196 251
     function getDayNameFromInput(inputElement) {
197
-        // Get the value of the input element
198
-        var selectedDate = inputElement.value;
199 252
 
200
-        // Create a new Date object from the input date string
253
+        var selectedDate = inputElement.value;
201 254
         var date = new Date(selectedDate);
202
-
203
-        // Array of day names
204 255
         var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
205
-
206
-        // Get the day of the week (0 for Sunday, 1 for Monday, ..., 6 for Saturday)
207 256
         var dayIndex = date.getDay();
208
-
209
-        // Return the name of the day corresponding to the day index
210 257
         return dayNames[dayIndex];
258
+
211 259
     }
212 260
 
261
+    function resetField(){
262
+        $('#field-container').children(".select-field").remove()
263
+    }
264
+
265
+    function resetDate(){
266
+        let { maxDate, minDate } = createDateInputWithRange(14)
267
+        $('#input-booking-date').val(minDate)
268
+    }
269
+
270
+    function resetRules(){
271
+        $("#input-booking-slot").children(".select-value").remove();
272
+    }
273
+
274
+
275
+
213 276
 
214 277
 });

+ 28
- 29
resources/views/booking.antlers.html Целия файл

@@ -8,36 +8,34 @@
8 8
 </section>
9 9
 <section id="booking-section">
10 10
     <div class="text-light section-5">
11
-        <div class="row g-0 booking-container">
11
+        <div class="row g-0 booking-container text-center">
12 12
 
13
-            <div data-aos="fade-up" class="col-xl-4 position-relative p-0 p-lg-3">
14
-                <div data-fieldid="1" class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
15
-                    <div class="position-absolute d-flex flex-wrap booking-details">
16
-                        <div class="mt-auto booking-overlay">
17
-                            <p class="text-highlight db-h5 fw-bold p-0"> FIELD A </p>
18
-                            <p class="p-0 m-0"><a class="text-light d-block article-details-href"> Book Now <span><i class="fa-solid fa-angle-right ps-3 text-db"></i></span></a></p>
19
-                        </div>
20
-                    </div>
21
-                </div>
13
+            <div class="col-12 position-relative px-3 mb-5">
14
+                <select id="select-location" class="db-input" id="cars" name="cars">
15
+                    <option id="default-input-select-location" value="default">Select City and State</option>
16
+                  </select>
22 17
             </div>
23 18
 
24
-            <div data-aos="fade-up" class="col-xl-4 position-relative p-0 p-lg-3">
25
-                <div data-fieldid="2" class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
26
-                    <div class="position-absolute d-flex flex-wrap booking-details">
27
-                        <div class="mt-auto booking-overlay">
28
-                            <p class="text-highlight db-h5 fw-bold p-0"> FIELD B </p>
29
-                            <p class="p-0 m-0"><a class="text-light d-block article-details-href"> Book Now <span><i class="fa-solid fa-angle-right ps-3 text-db"></i></span></a></p>
19
+            <div id="field-location-container" class="container-fluid p-0 col-12 row text-center my-5">
20
+                <p class="db-h5 text-highlight title">SELECT LOCATION</p>
21
+                <div id="field-location-template" class="col-xl-4 position-relative p-0 p-lg-3 animate__animated animate__fadeIn" style="display: none;">
22
+                    <div class="position-relative location-item field-location-img">
23
+                        <div class="position-absolute d-flex flex-wrap field-details">
24
+                            <div class="mt-auto d-flex location-overlay"></div>
30 25
                         </div>
31 26
                     </div>
32 27
                 </div>
33 28
             </div>
34 29
 
35
-            <div data-aos="fade-up" class="col-xl-4 position-relative p-0 p-lg-3">
36
-                <div data-fieldid="3" class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
37
-                    <div class="position-absolute d-flex flex-wrap booking-details">
38
-                        <div class="mt-auto booking-overlay">
39
-                            <p class="text-highlight db-h5 fw-bold p-0"> FIELD C </p>
40
-                            <p class="p-0 m-0"><a class="text-light d-block article-details-href"> Book Now <span><i class="fa-solid fa-angle-right ps-3 text-db"></i></span></a></p>
30
+            <div id="field-container" class="container-fluid p-0 col-12 row my-5">
31
+                <p class="db-h5 text-highlight">SELECT FIELD</p>
32
+                <div id="field-template" class="col-xl-4 position-relative p-0 p-lg-3 animate__animated animate__fadeIn field-c" style="display: none;">
33
+                    <div class="position-relative field-item field-img">
34
+                        <div class="position-absolute d-flex flex-wrap field-details">
35
+                            <div class="mt-auto field-overlay text-start">
36
+                                <p class="text-highlight db-h5 fw-bold m-0 field-text"></p>
37
+                                <p class="p-0 m-0"><a class="text-light d-block article-details-href"> Book Now <span><i class="fa-solid fa-angle-right ps-3 text-db"></i></span></a></p>
38
+                            </div>
41 39
                         </div>
42 40
                     </div>
43 41
                 </div>
@@ -53,7 +51,9 @@
53 51
                       </select>
54 52
                 </div>
55 53
                 <div class="col-lg-2 my-5 my-lg-0 d-flex">
56
-                    <a href="https://play.google.com/store/apps/details?id=club.thebola.app" target="_blank" class="nav-link db-btn mx-auto mt-auto" style="font-size: clamp(18px,1vw,23px);font-weight: 500;padding: 0.5rem 3rem;">Book Now</a>
54
+                    <button id="booknow-btn" class="nav-link db-btn mx-auto mt-auto">
55
+                        Book Now
56
+                    </button>
57 57
                 </div>
58 58
             </div>
59 59
 
@@ -63,12 +63,11 @@
63 63
 <section>
64 64
     <div class="text-light section-8" style="background-image: url(./assets/image/dbparticle3.png);">
65 65
         <div data-aos="zoom-in" class="text-center ">
66
-            <p class="db-h3 text-highlight" style="line-height: clamp(3rem,2.5vw,4rem);">Our Mobile Apps Is Coming Soon!</p>
67
-            <p class="mx-auto p-0 db-h5 mb-5" style="line-height: clamp(1.7rem,2.5vw,3rem);">Soon all of the amazing features that we provide here will be available in<br/> an exclusive app for both android and iOS.</p>
68
-        </div>
69
-        <div class="container-fluid d-flex flex-wrap justify-content-center">
70
-            <img data-aos="fade-up" data-aos-delay="100" class="mx-2" src="./assets/image/gplay.png" alt="google-play-img" style="width: 200px;">
71
-            <img data-aos="fade-up" data-aos-delay="100" class="mx-2" src="./assets/image/appstore.png" alt="google-play-img" style="width: 200px;">
66
+            <p class="db-h3 text-highlight" style="line-height: clamp(3rem,2.5vw,4rem);">Our Mobile Apps Is Now Available!</p>
67
+            <p class="mx-auto p-0 db-h5 mb-5" style="line-height: clamp(1.7rem,2.5vw,3rem);">Download the app for bookings and other important notifications in<br/> an exclusive app for both android and iOS.</p>
72 68
         </div>
69
+
70
+        {{ partial:partials/appsdownload }}
71
+
73 72
     </div>
74 73
 </section>

+ 39
- 67
resources/views/home.antlers.html Целия файл

@@ -1,23 +1,39 @@
1 1
 <section>
2 2
     <div class="d-flex px-5" style="min-height: 90vh;background-image: url(./assets/image/2.jpg);background-size: cover;">
3 3
         <div data-aos="zoom-in" class="text-light text-lg-center m-auto">
4
-            <p class="text-highlight hero-text-highlight" >WHERE <span class="text-db">PASSION</span>  <br/> MEETS THE <span class="text-db">PITCH</span></p>
5
-            <p class="hero-text-description pb-5 pt-3 py-lg-5">Unleash Your Inner Champion</p>
6
-            <button class="nav-link db-btn mx-0 mx-lg-auto" style="font-size: clamp(18px,1vw,23px);font-weight: 500;padding: 0.5rem 3rem">Explore</button>
4
+            {{ grid_field }}
5
+                {{ home_section_1 }}
6
+                    {{ highlight_text }}
7
+                    <p class="hero-text-description pb-5 pt-3 py-lg-5">{{ description_text }} </p>
8
+                    <a href="{{ button_link }}" class="nav-link db-btn mx-0 mx-lg-auto">Explore</a>
9
+                {{ /home_section_1 }}
10
+            {{ /grid_field }}
7 11
         </div>
8 12
     </div>
9 13
 </section>
10 14
 <section>
11 15
     <div class="text-md-center text-light section2" style="background-image: url(./assets/image/3.png);background-size: cover;padding-top: 10rem;padding-bottom: 5rem; background-position: top center;">
12 16
         <div class="container-fluid p-0 m-0" data-aos="zoom-in" >
13
-            <p class="db-h3 text-highlight">Your Football Haven Awaits: Embrace the <br/> Game at Our State-of-the-Art Field!</p>
14
-            <p class="mx-auto my-5 p-0 about-paragraph db-h5">Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse labore ullam error praesentium culpa quae similique, inventore laborum vel a excepturi odit voluptates illum quibusdam, commodi nostrum, tenetur perspiciatis est. Labore adipisci itaque inventore voluptatem pariatur? Quos perferendis sit quo autem praesentium nobis pariatur in! Atque, explicabo magnam! Repellat aliquam dolorem suscipit nam facere assumenda perferendis, provident, ex sapiente ea dolorum! Ipsum voluptate autem dignissimos quo sapiente sequi eius quae! autem dignissimos quo sapiente sequi eius quae autem dignissimos quo sapiente sequi eius quae autem dignissimos</p>
15
-            <button class="nav-link db-btn mx-auto" style="font-size: clamp(18px,1vw,23px);font-weight: 500;padding: 0.5rem 3rem">Read More</button>
17
+
18
+            {{ grid_field }}
19
+                {{ home_section_2 }}
20
+
21
+                    <p class="db-h3 text-highlight">{{ highlight_text }}</p>
22
+                    <p class="mx-auto my-5 p-0 about-paragraph db-h5">{{ description_text }}</p>
23
+
24
+                {{ /home_section_2 }}
25
+            {{ /grid_field }}
26
+
16 27
         </div>
17 28
     </div>
18 29
 </section>
19 30
 <section>
20
-    <div style="background-image: url('./assets/image/4.jpg');" class="section3-img"></div>
31
+
32
+    {{ grid_field }}
33
+        {{ home_section_3 }}
34
+            <div class="section3-img" style="background-image: url('.{{ background_image }}');"></div>
35
+        {{ /home_section_3 }}
36
+    {{ /grid_field }}
21 37
 </section>
22 38
 <section>
23 39
     <div class="text-center text-light p-7">
@@ -25,61 +41,20 @@
25 41
         <p class="mx-auto p-0 db-h5">Stay tuned for more latest news and articles brought exclusively by our team</p>
26 42
     </div>
27 43
     <div class="container-fluid p-0">
44
+
28 45
         <div class="row text g-0">
29
-            <div data-aos="fade-up" class="col-12 p-7 text-light row g-0" style="background-image: url('./assets/image/Group_6781.jpg');background-size: cover; background-repeat: no-repeat;">
30
-                <div class="col-2 d-none d-lg-block text-end">
31
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db pe-4"></i>
32
-                </div>
33
-                <div class="col">
34
-                    <p class="fw-bold">Field Booking and Fixtures</p>
35
-                    <p style="margin-bottom: 3rem;">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iusto molestiae adipisci distinctio impedit quasi quibusdam accusamus, atque dolorem eum consequuntur assumenda voluptates vitae repellat tempora iste quam, repellendus deserunt quo culpa. Voluptate provident excepturi perferendis omnis maxime, earum eos tempora, a corrupti aspernatur est architecto. Deleniti iste quia voluptatem. Eum culpa mollitia saepe nesciunt laborum id neque nulla adipisci ab.</p>
36
-                    <p><a href="#" class="fw-bold text-light" style="text-decoration: none;">Book Now <span><i class="fa-solid fa-arrow-right ps-3 text-db fw-bold"></i></span></a></p>
37
-                </div>
38
-                <div class="col-2">
39
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db d-inline d-lg-none"></i>
40
-                </div>
41
-            </div>
42
-        </div>
43
-        <div class="row text g-0">
44
-            <div data-aos="fade-up" data-aos-delay="100" class="col-md-4 p-5 text-light row g-0" style="background-image: url('./assets/image/Group_6742.jpg');background-size: cover; background-repeat: no-repeat;">
45
-                <div class="col-2 d-none d-lg-block text-end">
46
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db pe-4"></i>
47
-                </div>
48
-                <div class="col">
49
-                    <p class="fw-bold db-h6">Field Booking and Fixtures</p>
50
-                    <p style="margin-bottom: 3rem;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, minus. Dicta nemo magnam architecto minus facere itaque natus</p>
51
-                    <p><a href="#" class="fw-bold text-light db-h6" style="text-decoration: none;">Download Now <span><i class="fa-solid fa-arrow-right ps-3 text-db fw-bold"></i></span></a></p>
52
-                </div>
53
-                <div class="col-2">
54
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db d-inline d-lg-none"></i>
55
-                </div>
56
-            </div>
57
-            <div data-aos="fade-up" data-aos-delay="300" class="col-md-4 p-5 text-light row g-0" style="background-image: url('./assets/image/Group_6741.jpg');background-size: cover; background-repeat: no-repeat;">
58
-                <div class="col-2 d-none d-lg-block text-end">
59
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db pe-4"></i>
60
-                </div>
61
-                <div class="col">
62
-                    <p class="fw-bold db-h6">Field Booking and Fixtures</p>
63
-                    <p style="margin-bottom: 3rem;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, minus. Dicta nemo magnam architecto minus facere itaque natus</p>
64
-                    <p><a href="#" class="fw-bold text-light db-h6" style="text-decoration: none;">Download Now <span><i class="fa-solid fa-arrow-right ps-3 text-db fw-bold"></i></span></a></p>
65
-                </div>
66
-                <div class="col-2">
67
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db d-inline d-lg-none"></i>
68
-                </div>
69
-            </div>
70
-            <div data-aos="fade-up" data-aos-delay="500" class="col-md-4 p-5 text-light row g-0" style="background-image: url('./assets/image/Group_6780.jpg');background-size: cover; background-repeat: no-repeat;">
71
-                <div class="col-2 d-none d-lg-block text-end">
72
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db pe-4"></i>
73
-                </div>
74
-                <div class="col">
75
-                    <p class="fw-bold db-h6">Field Booking and Fixtures</p>
76
-                    <p style="margin-bottom: 3rem;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, minus. Dicta nemo magnam architecto minus facere itaque natus</p>
77
-                    <p><a href="#" class="fw-bold text-light db-h6" style="text-decoration: none;">Download Now <span><i class="fa-solid fa-arrow-right ps-3 text-db fw-bold"></i></span></a></p>
78
-                </div>
79
-                <div class="col-2">
80
-                    <i class="fa-solid fa-book-bookmark fa-2x text-db d-inline d-lg-none"></i>
81
-                </div>
82
-            </div>
46
+
47
+            {{ grid_field }}
48
+                {{ firstEntry = 1 }}
49
+                {{ home_section_4 }}
50
+                    {{ features }}
51
+                        {{ partial:partials/feature }}
52
+                        {{ firstEntry = 0 }}
53
+                    {{ /features }}
54
+                {{ /home_section_4 }}
55
+            {{ /grid_field }}
56
+
57
+
83 58
         </div>
84 59
     </div>
85 60
 </section>
@@ -124,12 +99,9 @@
124 99
 <section>
125 100
     <div class="text-light section-8" style="background-image: url(./assets/image/dbparticle3.png);">
126 101
         <div data-aos="zoom-in" class="text-center ">
127
-            <p class="db-h3 text-highlight" style="line-height: clamp(3rem,2.5vw,4rem);">Our Mobile Apps Is Coming Soon!</p>
128
-            <p class="mx-auto p-0 db-h5 mb-5" style="line-height: clamp(1.7rem,2.5vw,3rem);">Soon all of the amazing features that we provide here will be available in<br/> an exclusive app for both android and iOS.</p>
129
-        </div>
130
-        <div class="container-fluid d-flex flex-wrap justify-content-center">
131
-            <img data-aos="fade-up" data-aos-delay="100" class="mx-2" src="./assets/image/gplay.png" alt="google-play-img" style="width: 200px;">
132
-            <img data-aos="fade-up" data-aos-delay="100" class="mx-2" src="./assets/image/appstore.png" alt="google-play-img" style="width: 200px;">
102
+            <p class="db-h3 text-highlight" style="line-height: clamp(3rem,2.5vw,4rem);">Our Mobile Apps Is Now Available!</p>
103
+            <p class="mx-auto p-0 db-h5 mb-5" style="line-height: clamp(1.7rem,2.5vw,3rem);">Download the app for bookings and other important notifications in<br/> an exclusive app for both android and iOS.</p>
133 104
         </div>
105
+        {{ partial:partials/appsdownload }}
134 106
     </div>
135 107
 </section>

+ 3
- 1
resources/views/layout.antlers.html Целия файл

@@ -5,6 +5,7 @@
5 5
         <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 6
         <meta name="viewport" content="width=device-width, initial-scale=1">
7 7
         <title>{{ title ?? site:name }}</title>
8
+        <link rel="icon" type="image/x-icon" href="/favicon.ico">
8 9
         <link rel="stylesheet" href="{{ mix src='css/bootstrap.css' }}">
9 10
         <link rel="stylesheet" href="{{ mix src='css/main.css' }}">
10 11
         <link rel="stylesheet" href="{{ mix src='css/aos.css' }}">
@@ -13,12 +14,13 @@
13 14
         <script src="{{ mix src='js/jquery.js' }}"></script>
14 15
         <script src="{{ mix src='js/aos.js' }}" defer></script>
15 16
         <script src="{{ mix src='js/main.js' }}"></script>
17
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"/>
16 18
     </head>
17 19
     <body style="background-color: black;">
18 20
 
19 21
         {{ partial:partials/navbar }}
20 22
 
21
-        <div class="mx-auto lg:min-h-screen flex flex-col items-center justify-center">
23
+        <div class="mx-auto justify-center" style="margin-top: 5rem;">
22 24
             {{ template_content }}
23 25
         </div>
24 26
 

+ 8
- 0
resources/views/partials/_appsdownload.antlers.html Целия файл

@@ -0,0 +1,8 @@
1
+<div id="download-container" class="container-fluid d-flex flex-wrap justify-content-center">
2
+    <a href="https://play.google.com/store/apps/details?id=club.thebola.app">
3
+        <img data-aos="fade-up" data-aos-delay="100" class="mx-2" src="./assets/image/gplay.png" alt="google-play-img" style="width: 200px;">
4
+    </a>
5
+    <a href="https://apps.apple.com/my/app/the-bola/id6478902627">
6
+        <img data-aos="fade-up" data-aos-delay="100" class="mx-2" src="./assets/image/appstore.png" alt="google-play-img" style="width: 220px;">
7
+    </a>
8
+</div>

+ 18
- 0
resources/views/partials/_feature.antlers.html Целия файл

@@ -0,0 +1,18 @@
1
+{{ if firstEntry == 1 }}
2
+<div data-aos="fade-up" data-aos-delay="100" class="col-md-12 p-5 text-light row g-0" style="background-image: url('.{{ background_image }}');background-size: cover; background-repeat: no-repeat;">
3
+{{ else }}
4
+<div data-aos="fade-up" data-aos-delay="100" class="col-md-4 p-5 text-light row g-0" style="background-image: url('.{{ background_image }}');background-size: cover; background-repeat: no-repeat;">
5
+{{ /if }}
6
+    <div class="col-2 text-end">
7
+        <i class="fa-solid fa-book-bookmark fa-2x text-db pe-4 d-none d-lg-inline"></i>
8
+    </div>
9
+    <div class="col">
10
+        <p class="fw-bold db-h6">{{ highlight }}</p>
11
+        <p style="margin-bottom: 3rem;"> {{ description_text }} </p>
12
+        <p><a href="{{ link }}" class="fw-bold text-light db-h6" style="text-decoration: none;"> {{ link_text }} <span><i class="fa-solid fa-arrow-right ps-3 text-db fw-bold"></i></span></a></p>
13
+    </div>
14
+    <div class="col-2">
15
+        <i class="fa-solid fa-book-bookmark fa-2x text-db d-inline d-lg-none"></i>
16
+    </div>
17
+</div>
18
+

+ 14
- 17
resources/views/partials/_navbar.antlers.html Целия файл

@@ -1,36 +1,33 @@
1 1
 <header>
2
-    <nav id="main-nav" class="navbar navbar-expand-lg sticky-top" style="background-color: black;">
2
+    <nav id="main-nav" class="navbar navbar-expand-lg justify-content-end fixed-top" style="background-color: black;">
3 3
         <div class="container-fluid d-flex flex-wrap justify-between p-0">
4
-
5 4
             <div class="d-none d-lg-block mx-auto mx-xxl-0">
6
-                <a style="text-decoration: none;" href="/"><img src="/assets/logo_1.png" class="nav-logo-desktop">
7
-                    <span class="text-light text-highlight my-auto nav-logo-text">THEBOLA</span>
8
-                </img></a>
9
-
5
+                <a style="text-decoration: none;" href="/"><img src="/assets/image/dblogo.png" class="nav-logo-desktop"/></a>
10 6
             </div>
11
-            <div class="mx-0 mx-lg-auto mx-xxl-0">
7
+            <div class="d-inline d-lg-none position-absolute d-flex" style="left:0;top:20px;width:100%;">
8
+                <a class="me-auto ps-3" style="text-decoration: none;" href="/"><img src="/assets/image/dblogo.png" class="nav-logo-desktop" style="width:150px"/></a>
9
+            </div>
10
+            <div class="ms-auto" style="z-index: 399;">
12 11
                 <div class="d-flex">
13
-                    <button class="navbar-toggler p-0" type="button" data-bs-toggle="collapse"
12
+                    <button class="ms-auto navbar-toggler p-0" type="button" data-bs-toggle="collapse"
14 13
                         data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false"
15 14
                         aria-label="Toggle navigation">
16 15
                         <i class="text-light fa-solid fa-bars fa-xl"></i>
17 16
                     </button>
18
-                    <div class="d-inline d-lg-none mx-auto">
19
-                        <img src="/assets/logo_1.png" class="img-fluid" style="width:60px;">
20
-                            <span class="text-light text-highlight my-auto" style="font-size:20px;padding-left: 1rem;vertical-align:middle">THEBOLA</span>
21
-                        </img>
22
-                    </div>
23 17
                 </div>
24 18
 
25 19
                 <div class="collapse navbar-collapse my-auto" id="navbarNavDropdown">
26
-                    <ul class="navbar-nav">
20
+                    <ul class="navbar-nav text-end">
27 21
                         {{ nav:main_menu }}
28
-                            <li class="nav-item">
22
+                            <li class="nav-item my-1">
29 23
                                 <a href="{{ url }}" class="nav-link" aria-current="page"> {{ title }} </a>
30 24
                             </li>
31 25
                         {{ /nav:main_menu }}
32
-                        <li class="nav-item">
33
-                            <a href="https://thebola.club/login" class="nav-link db-btn" style="padding: 0.5rem 2rem" href="#">Sign in</a>
26
+                        <li class="nav-item my-1">
27
+                            <a id="register-btn" href="{{ url }}" class="nav-link" aria-current="page"> Register </a>
28
+                        </li>
29
+                        <li class="nav-item my-1">
30
+                            <a id="signin-btn" href="https://api.thebola.club/login" class="nav-link db-btn" style="padding: 0.5rem 2rem" href="#">Sign in</a>
34 31
                         </li>
35 32
                     </ul>
36 33
                 </div>

+ 0
- 4
users/azriperisiben@gmail.com.yaml Целия файл

@@ -1,4 +0,0 @@
1
-name: azri
2
-super: true
3
-id: ab0729b7-bf3b-4b76-930d-938ff5d0a937
4
-password_hash: $2y$10$apoOxmvCg64f5dcR0DK4bOQwXvpFB02uGCMGb7iXuog.98WR4vUTy

+ 5
- 0
users/dev@mirfalah.com.yaml Целия файл

@@ -0,0 +1,5 @@
1
+name: mirfalah
2
+super: true
3
+email: dev@mirfalah.com
4
+id: 0fe06f55-99d6-459d-8bfe-0ba1055ae246
5
+password_hash: $2y$10$0rntgPgUqEATzto5vio74eh/vy/EZtn2zGroTkykNJe7OS/T/.vGa

+ 1
- 1
webpack.mix.js Целия файл

@@ -20,7 +20,7 @@ mix.js('resources/js/bootstrap.bundle.js', 'public/js')
20 20
 mix.js('resources/js/jquery.js', 'public/js')
21 21
 mix.js('resources/js/main.js', 'public/js')
22 22
 mix.js('resources/js/aos.js', 'public/js')
23
-
23
+mix.js('resources/js/api/API.js', 'public/js/api')
24 24
 
25 25
 if (mix.inProduction()) {
26 26
    mix.version();

Loading…
Отказ
Запис