Browse Source

done booking page

staging
AzriIchik 1 month ago
parent
commit
10d6bbd526

+ 1
- 1
content/collections/pages/booking.md View File

@@ -5,5 +5,5 @@ title: Booking
5 5
 author: ab0729b7-bf3b-4b76-930d-938ff5d0a937
6 6
 template: booking
7 7
 updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
8
-updated_at: 1710224101
8
+updated_at: 1710468054
9 9
 ---

+ 1
- 1
content/collections/pages/home.md View File

@@ -5,5 +5,5 @@ 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: 1710227330
8
+updated_at: 1710468048
9 9
 ---

+ 1
- 1
content/collections/pages/news.md View File

@@ -5,5 +5,5 @@ title: News
5 5
 author: ab0729b7-bf3b-4b76-930d-938ff5d0a937
6 6
 template: news
7 7
 updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
8
-updated_at: 1710225993
8
+updated_at: 1710468060
9 9
 ---

+ 8
- 0
content/collections/pages/policy-deletion.md View File

@@ -0,0 +1,8 @@
1
+---
2
+id: fc003a20-6539-4f7d-840f-c48a3b616e48
3
+blueprint: page
4
+title: 'Policy Deletion'
5
+updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
6
+updated_at: 1710469671
7
+template: policy_deletion
8
+---

+ 36
- 0
content/collections/pages/privacy-and-terms.md View File

@@ -0,0 +1,36 @@
1
+---
2
+id: 8d906fcf-8653-4839-bd17-ea8921ffe01b
3
+blueprint: page
4
+title: 'Privacy and Terms'
5
+updated_by: ab0729b7-bf3b-4b76-930d-938ff5d0a937
6
+updated_at: 1710469339
7
+template: privacy
8
+---
9
+# *Privacy and Terms*
10
+<br />
11
+<br />
12
+In the dynamic world of online services, TheBola.club which crafted by Haro Sport Entertainment, stands committed to safeguarding the privacy of its diverse user base. Recognizing the distinct needs and legal requirements applicable to users aged 13 and below, users aged 14 until 17, and adult users aged 18 and above. TheBola.club has implemented tailored privacy measures to ensure a secure and age- appropriate online environment. For questions about our privacy and terms, please contact us by email at
13
+
14
+Collection and Use of Information
15
+
16
+Users Aged 13 and Below:
17
+
18
+For the youngest members of TheBola.club for users aged 13 and below, the most concern is the protection of their sensitive information. Parental consent is the basis of our approach, ensuring that before any personal information is collected, parents or guardians must provide explicit and verifiable approval. The information gathered is intentionally limited, focusing only on what is essential for account creation and service provision. Moreover, the activities of these young users are closely monitored to uphold not only their safety but also compliance with pertinent laws.
19
+
20
+Users Aged 14 until 17:
21
+
22
+For users aged 14 until 1 7 , TheBola.club continues to uphold a commitment to privacy while stimulate more independent online experience. Informed consent becomes essential with users in this age range being informed that their activities are subject to monitoring to ensure adherence to applicable laws. The sharing of personally identifiable information is restricted and privacy
23
+
24
+education becomes a complementary feature. TheBola.club may offer resources or information aimed at promoting responsible internet use and online privacy awareness among users aged 14 until 17.
25
+
26
+Users Aged 18 and Above:
27
+
28
+Upon reaching adulthood, users aged 18 and above enjoy a more independent experience on TheBola.club. The constraints of parental consent no longer apply and these users have unrestricted access to the full range of features and services provided by the platform. Importantly, they retain comprehensive privacy rights, including the ability to access, review, and correct their personal information. Secure transaction processes are implemented, ensuring that personal and financial information is handled with the most confidentially and compliance with relevant laws.
29
+
30
+General Protections for All Age Groups:
31
+
32
+Irrespective of age, all users on TheBola.club benefit from complete privacy protections. Strict data security measures, industry-standard encryption, and access controls are in place to secure the protection of personal information. Users are promptly notified of any changes to the privacy policy, ensuring transparency and empowering them to make informed decisions about their online engagement.
33
+
34
+In conclusion, TheBola.club under the banner of Haro Sport Entertainment, stands as a example of responsible and age- appropriate online service provision. By customize privacy protections to the unique needs of users aged 13 and below, users aged 14 until 17, and users aged 18 and above, the platform not only complies with legal requirements but goes above and beyond to create a safe, secure, and enjoyable online space for all. As the
35
+
36
+digital landscape evolves, TheBola.club remains committed in its commitment to privacy, demonstrating that responsible business practices can harmonize with diverse needs of its users across age groups.

+ 2
- 1
content/globals/company_profile.yaml View File

@@ -10,4 +10,5 @@ data:
10 10
   instagram_link: 'https://www.instagram.com/'
11 11
   term_of_use: '#'
12 12
   legal_disclaimer: '#'
13
-  privacy_policy: '#'
13
+  privacy_policy: /privacy-and-terms
14
+  policy_deletion: /policy-deletion

+ 4
- 0
content/trees/collections/pages.yaml View File

@@ -5,3 +5,7 @@ tree:
5 5
     entry: 74666b69-45fd-44d0-a7c5-ae56983b63a0
6 6
   -
7 7
     entry: 80e50847-bb80-4980-a9df-5ffbc9b8dc86
8
+  -
9
+    entry: 8d906fcf-8653-4839-bd17-ea8921ffe01b
10
+  -
11
+    entry: fc003a20-6539-4f7d-840f-c48a3b616e48

+ 53
- 0
package-lock.json View File

@@ -8,7 +8,9 @@
8 8
                 "aos": "^3.0.0-beta.6",
9 9
                 "bootstrap-icons": "^1.11.3",
10 10
                 "build": "^0.1.4",
11
+                "jquery": "^3.7.1",
11 12
                 "npm": "^10.5.0",
13
+                "query-string": "^9.0.0",
12 14
                 "run": "^1.5.0"
13 15
             },
14 16
             "devDependencies": {
@@ -4240,6 +4242,14 @@
4240 4242
                 }
4241 4243
             }
4242 4244
         },
4245
+        "node_modules/decode-uri-component": {
4246
+            "version": "0.4.1",
4247
+            "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz",
4248
+            "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==",
4249
+            "engines": {
4250
+                "node": ">=14.16"
4251
+            }
4252
+        },
4243 4253
         "node_modules/default-gateway": {
4244 4254
             "version": "6.0.3",
4245 4255
             "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
@@ -4950,6 +4960,17 @@
4950 4960
                 "node": ">=8"
4951 4961
             }
4952 4962
         },
4963
+        "node_modules/filter-obj": {
4964
+            "version": "5.1.0",
4965
+            "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz",
4966
+            "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==",
4967
+            "engines": {
4968
+                "node": ">=14.16"
4969
+            },
4970
+            "funding": {
4971
+                "url": "https://github.com/sponsors/sindresorhus"
4972
+            }
4973
+        },
4953 4974
         "node_modules/finalhandler": {
4954 4975
             "version": "1.2.0",
4955 4976
             "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
@@ -6014,6 +6035,11 @@
6014 6035
                 "jiti": "bin/jiti.js"
6015 6036
             }
6016 6037
         },
6038
+        "node_modules/jquery": {
6039
+            "version": "3.7.1",
6040
+            "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
6041
+            "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
6042
+        },
6017 6043
         "node_modules/js-tokens": {
6018 6044
             "version": "4.0.0",
6019 6045
             "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -10493,6 +10519,22 @@
10493 10519
                 "url": "https://github.com/sponsors/ljharb"
10494 10520
             }
10495 10521
         },
10522
+        "node_modules/query-string": {
10523
+            "version": "9.0.0",
10524
+            "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.0.0.tgz",
10525
+            "integrity": "sha512-4EWwcRGsO2H+yzq6ddHcVqkCQ2EFUSfDMEjF8ryp8ReymyZhIuaFRGLomeOQLkrzacMHoyky2HW0Qe30UbzkKw==",
10526
+            "dependencies": {
10527
+                "decode-uri-component": "^0.4.1",
10528
+                "filter-obj": "^5.1.0",
10529
+                "split-on-first": "^3.0.0"
10530
+            },
10531
+            "engines": {
10532
+                "node": ">=18"
10533
+            },
10534
+            "funding": {
10535
+                "url": "https://github.com/sponsors/sindresorhus"
10536
+            }
10537
+        },
10496 10538
         "node_modules/querystring-es3": {
10497 10539
             "version": "0.2.1",
10498 10540
             "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
@@ -11370,6 +11412,17 @@
11370 11412
                 "node": ">= 6"
11371 11413
             }
11372 11414
         },
11415
+        "node_modules/split-on-first": {
11416
+            "version": "3.0.0",
11417
+            "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz",
11418
+            "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==",
11419
+            "engines": {
11420
+                "node": ">=12"
11421
+            },
11422
+            "funding": {
11423
+                "url": "https://github.com/sponsors/sindresorhus"
11424
+            }
11425
+        },
11373 11426
         "node_modules/stable": {
11374 11427
             "version": "0.1.8",
11375 11428
             "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",

+ 2
- 0
package.json View File

@@ -27,7 +27,9 @@
27 27
         "aos": "^3.0.0-beta.6",
28 28
         "bootstrap-icons": "^1.11.3",
29 29
         "build": "^0.1.4",
30
+        "jquery": "^3.7.1",
30 31
         "npm": "^10.5.0",
32
+        "query-string": "^9.0.0",
31 33
         "run": "^1.5.0"
32 34
     }
33 35
 }

+ 4
- 0
public/css/main.css View File

@@ -6,6 +6,10 @@
6 6
     --light-clr: #fff;
7 7
 }
8 8
 
9
+::-webkit-calendar-picker-indicator {
10
+    filter: invert(1);
11
+}
12
+
9 13
 /* DEFAULT */
10 14
 * {
11 15
     padding: 0;

+ 9062
- 0
public/js/jquery.js
File diff suppressed because it is too large
View File


+ 11632
- 1
public/js/main.js
File diff suppressed because it is too large
View File


+ 1
- 0
public/mix-manifest.json View File

@@ -1,5 +1,6 @@
1 1
 {
2 2
     "/js/bootstrap.bundle.js": "/js/bootstrap.bundle.js",
3
+    "/js/jquery.js": "/js/jquery.js",
3 4
     "/js/main.js": "/js/main.js",
4 5
     "/js/aos.js": "/js/aos.js",
5 6
     "/css/main.css": "/css/main.css",

+ 45
- 0
resources/blueprints/collections/pages/page.yaml View File

@@ -0,0 +1,45 @@
1
+sections:
2
+  main:
3
+    display: Main
4
+    fields:
5
+      -
6
+        handle: title
7
+        field:
8
+          type: text
9
+          required: true
10
+          validate:
11
+            - required
12
+      -
13
+        handle: content
14
+        field:
15
+          type: markdown
16
+          localizable: true
17
+      -
18
+        handle: template
19
+        field:
20
+          hide_partials: true
21
+          blueprint: false
22
+          display: Template
23
+          type: template
24
+          icon: template
25
+          listable: hidden
26
+          instructions_position: above
27
+          visibility: visible
28
+  sidebar:
29
+    display: Sidebar
30
+    fields:
31
+      -
32
+        handle: slug
33
+        field:
34
+          type: slug
35
+          localizable: true
36
+      -
37
+        handle: parent
38
+        field:
39
+          type: entries
40
+          collections:
41
+            - pages
42
+          max_items: 1
43
+          listable: false
44
+          localizable: true
45
+title: Page

+ 12
- 0
resources/blueprints/globals/company_profile.yaml View File

@@ -164,3 +164,15 @@ sections:
164 164
           listable: hidden
165 165
           instructions_position: above
166 166
           visibility: visible
167
+      -
168
+        handle: policy_deletion
169
+        field:
170
+          input_type: text
171
+          antlers: false
172
+          display: 'Policy Deletion'
173
+          type: text
174
+          icon: text
175
+          instructions: 'Policy Deletion page link'
176
+          listable: hidden
177
+          instructions_position: above
178
+          visibility: visible

+ 4
- 0
resources/css/main.css View File

@@ -7,6 +7,10 @@
7 7
     --light-clr: #fff;
8 8
 }
9 9
 
10
+::-webkit-calendar-picker-indicator {
11
+    filter: invert(1);
12
+}
13
+
10 14
 /* DEFAULT */
11 15
 * {
12 16
     padding: 0;

+ 8
- 4
resources/js/api/API.js View File

@@ -1,15 +1,19 @@
1 1
 //import some server backend
2 2
 //set app url from env file
3
-const server_url = "https://thebola.club"
3
+const server_url = "https://thebola.club";
4 4
 
5 5
 export default class API {
6 6
     constructor() {
7 7
         this.prefix = server_url;
8 8
         this.url = "/api";
9
+        this.test = 200;
9 10
     }
10 11
 
11
-    listLocation({ _search, _page = 1, _pagesize = 20,  }){
12
-        return GET(`${this.url}/public/event/location`, { _search, _page, _pagesize })
13
-    }
12
+    listLocation(_page, _pagesize, _callback) {
13
+
14
+        let url =  `${this.prefix}${this.url}/public/event/location?`
14 15
 
16
+        console.log(url)
17
+
18
+    }
15 19
 }

+ 10716
- 0
resources/js/jquery.js
File diff suppressed because it is too large
View File


+ 147
- 3
resources/js/main.js View File

@@ -1,8 +1,152 @@
1
-import AOS from 'aos';
1
+import AOS from "aos";
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
+}
33
+
34
+const $ = jQuery;
35
+const api = new API();
36
+
37
+var bookingList = [];
38
+var bookingRules = [];
2 39
 
3 40
 setTimeout(() => {
4
-    console.log('AOS init');
41
+    console.log("AOS init");
5 42
     AOS.init();
6
-
7 43
 }, 500);
8 44
 
45
+$(document).ready(function () {
46
+
47
+
48
+    // this section is for booking page
49
+    //check if booking section exist in any page
50
+    let bookingContainer = $('#booking-section');
51
+    if(bookingContainer.length > 0){
52
+        api.listLocation({
53
+            _search: "",
54
+            _page: 1,
55
+            _pagesize: 20,
56
+            _callback: (data) => {
57
+                console.log("fetch")
58
+                localStorage.setItem('thebola-booking', JSON.stringify(data))
59
+                bookingList = data;
60
+
61
+                // set date max and min
62
+                let { maxDate, minDate } = createDateInputWithRange(14)
63
+                $('#input-booking-date').attr("min", minDate)
64
+                $('#input-booking-date').attr("max", maxDate)
65
+
66
+            },
67
+        });
68
+    }
69
+
70
+
71
+    $(".booking-item").on("click", function () {
72
+
73
+        // remove all child active class, then add active on clicked
74
+        let bookingContainer = $('.booking-container');
75
+        $(bookingContainer).find(".booking-item").removeClass("active")
76
+        $(this).addClass("active");
77
+
78
+        let fieldID = $(this).data('fieldid');
79
+
80
+        //ensure everything exist
81
+        if(bookingList === undefined || bookingList.length == 0){
82
+            bookingList = localStorage.getItem('thebola-booking')
83
+        }
84
+
85
+        if(fieldID && bookingList){
86
+
87
+            let { results } = bookingList;
88
+            let slots = results.filter( data => data.id == fieldID )
89
+            let { rules } = slots[0].slot_rules
90
+            bookingRules = rules
91
+
92
+        }else{
93
+            console.log("no booking data")
94
+        }
95
+
96
+
97
+    });
98
+
99
+    $('#input-booking-date').change(function() {
100
+
101
+        if(bookingRules){
102
+
103
+            // render rule of slot base on current input value date
104
+            var dayName = getDayNameFromInput(document.getElementById("input-booking-date"));
105
+            $("#input-booking-slot").children(".select-value").remove();
106
+
107
+            setTimeout(() => {
108
+
109
+                // append slot list
110
+                bookingRules[dayName].forEach(({end_time, start_time, price, id}) => {
111
+                    let newOption = document.createElement('option');
112
+                    $(newOption).attr("id", id)
113
+                    $(newOption).addClass("select-value")
114
+                    newOption.text = `${start_time} - ${end_time} (RM ${price})`
115
+                    $("#input-booking-slot").append(newOption)
116
+                });
117
+
118
+            }, 1000);
119
+
120
+        }
121
+    });
122
+
123
+    function createDateInputWithRange(days) {
124
+
125
+        var today = new Date();
126
+
127
+        var futureDate = new Date(today.getTime() + days * 24 * 60 * 60 * 1000);
128
+        var maxDate = futureDate.toISOString().split('T')[0];
129
+        let minDate = today.toISOString().split('T')[0];
130
+
131
+        return { maxDate, minDate };
132
+    }
133
+
134
+    function getDayNameFromInput(inputElement) {
135
+        // Get the value of the input element
136
+        var selectedDate = inputElement.value;
137
+
138
+        // Create a new Date object from the input date string
139
+        var date = new Date(selectedDate);
140
+
141
+        // Array of day names
142
+        var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
143
+
144
+        // Get the day of the week (0 for Sunday, 1 for Monday, ..., 6 for Saturday)
145
+        var dayIndex = date.getDay();
146
+
147
+        // Return the name of the day corresponding to the day index
148
+        return dayNames[dayIndex];
149
+    }
150
+
151
+
152
+});

+ 18
- 21
resources/views/booking.antlers.html View File

@@ -6,12 +6,12 @@
6 6
         </div>
7 7
     </div>
8 8
 </section>
9
-<section>
9
+<section id="booking-section">
10 10
     <div class="text-light section-5">
11
-        <div class="row g-0 article-container">
11
+        <div class="row g-0 booking-container">
12 12
 
13 13
             <div data-aos="fade-up" class="col-xl-4 position-relative p-0 p-lg-3">
14
-                <div class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
14
+                <div data-fieldid="1" class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
15 15
                     <div class="position-absolute d-flex flex-wrap booking-details">
16 16
                         <div class="mt-auto booking-overlay">
17 17
                             <p class="text-highlight db-h5 fw-bold p-0"> FIELD A </p>
@@ -22,7 +22,7 @@
22 22
             </div>
23 23
 
24 24
             <div data-aos="fade-up" class="col-xl-4 position-relative p-0 p-lg-3">
25
-                <div class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
25
+                <div data-fieldid="2" class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
26 26
                     <div class="position-absolute d-flex flex-wrap booking-details">
27 27
                         <div class="mt-auto booking-overlay">
28 28
                             <p class="text-highlight db-h5 fw-bold p-0"> FIELD B </p>
@@ -33,7 +33,7 @@
33 33
             </div>
34 34
 
35 35
             <div data-aos="fade-up" class="col-xl-4 position-relative p-0 p-lg-3">
36
-                <div class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
36
+                <div data-fieldid="3" class="position-relative booking-item" style="background-image: url(./assets/image/Group_6775.jpg);">
37 37
                     <div class="position-absolute d-flex flex-wrap booking-details">
38 38
                         <div class="mt-auto booking-overlay">
39 39
                             <p class="text-highlight db-h5 fw-bold p-0"> FIELD C </p>
@@ -43,23 +43,20 @@
43 43
                 </div>
44 44
             </div>
45 45
 
46
-        </div>
47
-    </div>
48
-</section>
49
-<section>
50
-    <div class="article-container">
51
-        <div class="row g-0">
52
-            <div class="col-lg-5 my-4 my-lg-5 px-5 my-lg-0 position-relative">
53
-                <input class="db-input" type="text" placeholder="Date" />
54
-                <i class="fa-regular fa-calendar fa-xl text-light pe-4 position-absolute" style="top:50%;right:2rem"></i>
55
-            </div>
56
-            <div class="col-lg-5 my-4 my-lg-5 px-5 my-lg-0 position-relative">
57
-                <input class="db-input" type="text" placeholder="Time" />
58
-                <i class="fa-solid fa-chevron-down fa-xl text-light pe-4 position-absolute" style="top:50%;right:2rem"></i>
59
-            </div>
60
-            <div class="col-lg-2 my-5 my-lg-0 d-flex">
61
-                <button 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</button>
46
+            <div class="row g-0">
47
+                <div class="col-lg-5 my-4 my-lg-5 px-5 my-lg-0 position-relative">
48
+                    <input id="input-booking-date" class="db-input" type="date" id="start" name="trip-start" value="2018-07-22" min="2018-01-01" max="2018-12-31" />
49
+                </div>
50
+                <div class="col-lg-5 my-4 my-lg-5 px-5 my-lg-0 position-relative">
51
+                    <select id="input-booking-slot" class="db-input" id="cars" name="cars">
52
+                        <option selected>Select Available slot</option>
53
+                      </select>
54
+                </div>
55
+                <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>
57
+                </div>
62 58
             </div>
59
+
63 60
         </div>
64 61
     </div>
65 62
 </section>

+ 1
- 0
resources/views/layout.antlers.html View File

@@ -10,6 +10,7 @@
10 10
         <link rel="stylesheet" href="{{ mix src='css/aos.css' }}">
11 11
         <script src="https://kit.fontawesome.com/bacccc1477.js" crossorigin="anonymous"></script>
12 12
         <script src="{{ mix src='js/bootstrap.bundle.js' }}"></script>
13
+        <script src="{{ mix src='js/jquery.js' }}"></script>
13 14
         <script src="{{ mix src='js/aos.js' }}" defer></script>
14 15
         <script src="{{ mix src='js/main.js' }}"></script>
15 16
     </head>

+ 2
- 1
resources/views/partials/_footer.antlers.html View File

@@ -41,7 +41,8 @@
41 41
             <p>
42 42
                 <a class="db-link"  href="{{ company_profile:term_of_use }}"> Terms of Use </a> |
43 43
                 <a class="db-link"  href="{{ company_profile:legal_disclaimer }}"> Legal Disclaimer </a> |
44
-                <a class="db-link"  href="{{ company_profile:privacy_policy }}"> Privacy Policy </a>
44
+                <a class="db-link"  href="{{ company_profile:privacy_policy }}"> Privacy Policy </a> |
45
+                <a class="db-link"  href="{{ company_profile:policy_deletion }}"> Policy Deletion </a>
45 46
             </p>
46 47
         </div>
47 48
         <div class="col-lg-2 px-5 px-lg-0 text-lg-center my-5 my-lg-0">

+ 1
- 1
resources/views/partials/_navbar.antlers.html View File

@@ -1,5 +1,5 @@
1 1
 <header>
2
-    <nav id="main-nav" class="navbar navbar-expand-lg fixed-top" style="background-color: black;">
2
+    <nav id="main-nav" class="navbar navbar-expand-lg sticky-top" style="background-color: black;">
3 3
         <div class="container-fluid d-flex flex-wrap justify-between p-0">
4 4
 
5 5
             <div class="d-none d-lg-block mx-auto mx-xxl-0">

+ 53
- 0
resources/views/policy_deletion.antlers.html View File

@@ -0,0 +1,53 @@
1
+<section>
2
+    <div class="text-light px-7" style="min-height: 100vh;">
3
+       <p><strong>Account Deletion Instructions and Policy</strong></p>
4
+            <p><strong>Effective Date: 1st January 2024</strong></p>
5
+            <p>We understand that there may come a time when you wish to delete your account with THE BOLA ("App," "We," "Us," or "Our"). We are committed to providing you with a straightforward and transparent process for account deletion. Please read this policy carefully to understand the steps involved.</p>
6
+            <p><strong>1. Accessing the Account Deletion Feature</strong></p>
7
+            <p>You can initiate the account deletion process through one of the following methods:</p>
8
+            <ul>
9
+            <li>
10
+            <p><strong>Via the App</strong>:</p>
11
+            <ol>
12
+            <li>Open the App on your device.</li>
13
+            <li>Navigate to your account settings or profile page.</li>
14
+            <li>Find and select the "Delete My Account" option.</li>
15
+            </ol>
16
+            </li>
17
+            <li>
18
+            <p><strong>Via Web Link</strong>:</p>
19
+            <ol>
20
+            <li>Login to account at <a class="db-link-icon" href="/login">/login</a>.</li>
21
+            <li>Go to your account settings or profile page.</li>
22
+            <li>Look for and click on the "Delete My Account" link.</li>
23
+            </ol>
24
+            </li>
25
+            </ul>
26
+            <p><strong>2. Account Deletion Process</strong></p>
27
+            <p>To proceed with the account deletion, you will be required to:</p>
28
+            <ul>
29
+            <li>
30
+            <p><strong>Enter Your Password</strong>: For security reasons, you will need to confirm your identity by entering your account password.</p>
31
+            </li>
32
+            <li>
33
+            <p><strong>Provide a Reason for Deletion</strong>: We value your feedback and would appreciate knowing the reason for your account deletion. This information will help us improve our services in the future. Providing a reason is optional but encouraged.</p>
34
+            </li>
35
+            </ul>
36
+            <p><strong>3. Soft Deletion Period</strong></p>
37
+            <p>Once you initiate the account deletion process, your account will be placed in a "soft deletion" state for a period of 30 days. During this time:</p>
38
+            <ul>
39
+            <li>You will immediately lose access to your account and all associated data.</li>
40
+            <li>Your account will not be visible to other users.</li>
41
+            <li>No actions can be performed using your account.</li>
42
+            </ul>
43
+            <p>This 30-day period is designed to provide you with the opportunity to reconsider your decision and revert the account deletion if you change your mind.</p>
44
+            <p><strong>4. Request to Revert Account Deletion</strong></p>
45
+            <p>If you decide to revert the account deletion within the 30-day grace period, <a class="db-link-icon" href="/#contact">Contact Us</a>. We will guide you through the process to regain access to your account and all associated data.</p>
46
+            <p><strong>5. Permanent Deletion</strong></p>
47
+            <p>After the 30-day soft deletion period has elapsed, your account and all associated data will be permanently and irreversibly deleted from our system. This action is final, and there will be no way to recover your account or its contents.</p>
48
+            <p><strong>Contact Us</strong></p>
49
+            <p>If you encounter any issues with the account deletion process or have questions about this policy, please contact our support team from <a class="db-link-icon" href="/#contact">Contact Us</a>.</p>
50
+            <p>By proceeding with the account deletion, you acknowledge that you have read, understood, and agreed to the terms of this Account Deletion Policy.</p>
51
+            <p>[End of Account Deletion Instructions and Policy]</p>
52
+    </div>
53
+</section>

+ 5
- 0
resources/views/privacy.antlers.html View File

@@ -0,0 +1,5 @@
1
+<section>
2
+    <div class="text-light px-7" style="min-height: 100vh;">
3
+        <p class="text-light my-auto">{{ content }}</p>
4
+    </div>
5
+</section>

+ 2
- 0
webpack.mix.js View File

@@ -17,9 +17,11 @@ mix.postCss('resources/css/main.css', 'public/css')
17 17
 mix.postCss('resources/css/aos.css', 'public/css')
18 18
 
19 19
 mix.js('resources/js/bootstrap.bundle.js', 'public/js')
20
+mix.js('resources/js/jquery.js', 'public/js')
20 21
 mix.js('resources/js/main.js', 'public/js')
21 22
 mix.js('resources/js/aos.js', 'public/js')
22 23
 
24
+
23 25
 if (mix.inProduction()) {
24 26
    mix.version();
25 27
 }

Loading…
Cancel
Save