my-cloud-devops-consulting 5.6.9__tar.gz → 5.8.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {my_cloud_devops_consulting-5.6.9/my_cloud_devops_consulting.egg-info → my_cloud_devops_consulting-5.8.9}/PKG-INFO +5 -1
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/README.md +5 -1
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/app.py +4 -4
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9/my_cloud_devops_consulting.egg-info}/PKG-INFO +5 -1
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/setup.py +1 -1
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/contact-form.css +84 -52
- my_cloud_devops_consulting-5.8.9/static/js/main.js +74 -0
- my_cloud_devops_consulting-5.6.9/static/js/main.js +0 -74
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/MANIFEST.in +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/my_cloud_devops_consulting.egg-info/SOURCES.txt +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/my_cloud_devops_consulting.egg-info/dependency_links.txt +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/my_cloud_devops_consulting.egg-info/requires.txt +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/my_cloud_devops_consulting.egg-info/top_level.txt +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/setup.cfg +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/index.css +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/login.css +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/main.css +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/register.css +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/services.css +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/images/image.jpg +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/js/index.js +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/js/login.js +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/js/register.js +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/js/services.js +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/base.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/contact-form.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/index.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/login.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/private-videos.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/register.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/services.html +0 -0
- {my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/tests/test_unit_test.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: my-cloud-devops-consulting
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.8.9
|
4
4
|
Summary: This is my consulting website for Cloud & DevOps services.
|
5
5
|
Home-page: https://github.com/Betrand1999/project-root
|
6
6
|
Author: Betrand Mutagha
|
@@ -40,3 +40,7 @@ sudo docker run --privileged -d \
|
|
40
40
|
sudo systemctl restart apache2
|
41
41
|
update docker file for container port
|
42
42
|
update your python app port
|
43
|
+
|
44
|
+
|
45
|
+
#
|
46
|
+
docker rmi -f $(docker images betrand1997/my-static-websites -q)
|
@@ -12,4 +12,8 @@ sudo docker run --privileged -d \
|
|
12
12
|
/etc/apache2/sites-available/000-default.conf
|
13
13
|
sudo systemctl restart apache2
|
14
14
|
update docker file for container port
|
15
|
-
update your python app port
|
15
|
+
update your python app port
|
16
|
+
|
17
|
+
|
18
|
+
#
|
19
|
+
docker rmi -f $(docker images betrand1997/my-static-websites -q)
|
@@ -6,7 +6,7 @@ from bson.objectid import ObjectId
|
|
6
6
|
|
7
7
|
import os
|
8
8
|
from flask_login import LoginManager,login_user,UserMixin,login_required,logout_user,current_user
|
9
|
-
from settings import SECRET_KEY,MONGO_URI, EMAIL_USER
|
9
|
+
from settings import SECRET_KEY,MONGO_URI, EMAIL_USER, MONGO_PASSWORD, MONGO_USERNAME
|
10
10
|
from utils import send_email, get_videos
|
11
11
|
app = Flask(__name__)
|
12
12
|
app.secret_key = SECRET_KEY # Secure your secret key with an environment variable
|
@@ -14,8 +14,8 @@ login_manager = LoginManager()
|
|
14
14
|
|
15
15
|
login_manager.init_app(app)
|
16
16
|
|
17
|
-
|
18
|
-
client = MongoClient(
|
17
|
+
decoded_mongo_url = f"mongodb+srv://{quote_plus(MONGO_USERNAME)}:{quote_plus(MONGO_PASSWORD)}@cluster.7plpy.mongodb.net/my-database?retryWrites=true&w=majority"
|
18
|
+
client = MongoClient(decoded_mongo_url)
|
19
19
|
db = client['my-database'] # Specify your database as shown in the MongoDB Atlas interface
|
20
20
|
users_collection = db['inventory_collection'] # Collection for storing user data
|
21
21
|
|
@@ -138,7 +138,7 @@ def logout():
|
|
138
138
|
flash("Logged out successfully!", "info")
|
139
139
|
return redirect(url_for("login"))
|
140
140
|
if __name__ == '__main__':
|
141
|
-
app.run(debug=True, host='0.0.0.0', port=
|
141
|
+
app.run(debug=True, host='0.0.0.0', port=50)
|
142
142
|
|
143
143
|
|
144
144
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: my-cloud-devops-consulting
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.8.9
|
4
4
|
Summary: This is my consulting website for Cloud & DevOps services.
|
5
5
|
Home-page: https://github.com/Betrand1999/project-root
|
6
6
|
Author: Betrand Mutagha
|
@@ -40,3 +40,7 @@ sudo docker run --privileged -d \
|
|
40
40
|
sudo systemctl restart apache2
|
41
41
|
update docker file for container port
|
42
42
|
update your python app port
|
43
|
+
|
44
|
+
|
45
|
+
#
|
46
|
+
docker rmi -f $(docker images betrand1997/my-static-websites -q)
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name='my-cloud-devops-consulting',
|
5
|
-
version='5.
|
5
|
+
version='5.8.9',
|
6
6
|
author='Betrand Mutagha',
|
7
7
|
author_email='mmutagha@gmail.com',
|
8
8
|
description='This is my consulting website for Cloud & DevOps services.',
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/contact-form.css
RENAMED
@@ -1,15 +1,12 @@
|
|
1
|
-
/* General Styling
|
1
|
+
/* General Styling */
|
2
2
|
body {
|
3
|
-
background: linear-gradient(
|
4
|
-
|
5
|
-
#e3f2fd,
|
6
|
-
#bbdefb
|
7
|
-
); /* Subtle gradient background for a modern touch */
|
8
|
-
font-family: "Roboto", Arial, sans-serif; /* Updated font for a cleaner look */
|
3
|
+
background: linear-gradient(to right, #e3f2fd, #bbdefb);
|
4
|
+
font-family: "Roboto", Arial, sans-serif;
|
9
5
|
color: #333;
|
10
6
|
margin: 0;
|
11
7
|
padding: 0;
|
12
8
|
animation: backgroundMove 10s infinite alternate;
|
9
|
+
background-size: 200% 100%;
|
13
10
|
}
|
14
11
|
|
15
12
|
@keyframes backgroundMove {
|
@@ -23,75 +20,81 @@ body {
|
|
23
20
|
|
24
21
|
/* Header Styling */
|
25
22
|
header {
|
26
|
-
background: #13ca4d;
|
23
|
+
background: #13ca4d;
|
27
24
|
color: #fff;
|
28
|
-
padding: 60px;
|
25
|
+
padding: 60px 20px;
|
29
26
|
text-align: center;
|
30
|
-
box-shadow: 0 2px
|
27
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
31
28
|
animation: fadeInDown 1.5s ease-in-out;
|
32
29
|
}
|
33
30
|
|
34
31
|
header h1 {
|
35
32
|
margin: 0;
|
36
|
-
font-size:
|
33
|
+
font-size: 2.5em;
|
34
|
+
letter-spacing: 1px;
|
37
35
|
}
|
38
36
|
|
39
37
|
nav ul {
|
40
38
|
list-style: none;
|
41
39
|
padding: 0;
|
42
|
-
margin:
|
43
|
-
text-align: center;
|
40
|
+
margin-top: 15px;
|
44
41
|
}
|
45
42
|
|
46
43
|
nav ul li {
|
47
44
|
display: inline-block;
|
48
|
-
margin: 0
|
45
|
+
margin: 0 12px;
|
49
46
|
}
|
50
47
|
|
51
48
|
nav ul li a {
|
52
49
|
color: #fff;
|
53
50
|
text-decoration: none;
|
54
|
-
padding:
|
55
|
-
border-radius:
|
56
|
-
transition:
|
51
|
+
padding: 10px 18px;
|
52
|
+
border-radius: 25px;
|
53
|
+
transition: all 0.3s ease;
|
54
|
+
background: rgba(255, 255, 255, 0.15);
|
57
55
|
}
|
58
56
|
|
59
57
|
nav ul li a:hover {
|
60
|
-
background:
|
58
|
+
background: #fff;
|
59
|
+
color: #13ca4d;
|
61
60
|
transform: scale(1.05);
|
62
61
|
}
|
63
62
|
|
64
|
-
/* Form
|
63
|
+
/* Main Form Area */
|
65
64
|
main {
|
66
|
-
padding: 40px;
|
65
|
+
padding: 40px 20px;
|
67
66
|
animation: fadeInUp 1.5s ease-in-out;
|
68
67
|
}
|
69
68
|
|
70
69
|
h2 {
|
71
70
|
text-align: center;
|
72
71
|
color: #1976d2;
|
73
|
-
margin-bottom:
|
72
|
+
margin-bottom: 30px;
|
73
|
+
font-size: 2rem;
|
74
74
|
}
|
75
75
|
|
76
76
|
form {
|
77
|
-
max-width:
|
77
|
+
max-width: 700px;
|
78
78
|
margin: 0 auto;
|
79
|
-
padding:
|
80
|
-
background: #
|
81
|
-
border: 1px solid #
|
82
|
-
border-radius:
|
83
|
-
box-shadow: 0
|
79
|
+
padding: 35px;
|
80
|
+
background: #ffffffda;
|
81
|
+
border: 1px solid #e0e0e0;
|
82
|
+
border-radius: 10px;
|
83
|
+
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
|
84
84
|
animation: slideIn 1.5s ease-in-out;
|
85
85
|
}
|
86
86
|
|
87
|
+
/* Form Fields */
|
87
88
|
.form-group {
|
88
|
-
|
89
|
+
position: relative;
|
90
|
+
margin-bottom: 25px;
|
89
91
|
}
|
90
92
|
|
91
93
|
label {
|
92
94
|
display: block;
|
93
|
-
margin-bottom:
|
94
|
-
font-weight:
|
95
|
+
margin-bottom: 10px;
|
96
|
+
font-weight: 600;
|
97
|
+
font-size: 0.95rem;
|
95
98
|
}
|
96
99
|
|
97
100
|
input[type="text"],
|
@@ -102,38 +105,46 @@ input[type="file"],
|
|
102
105
|
textarea,
|
103
106
|
select {
|
104
107
|
width: 100%;
|
105
|
-
padding:
|
108
|
+
padding: 14px 16px;
|
106
109
|
border: 1px solid #ccc;
|
107
|
-
border-radius:
|
108
|
-
margin-top: 5px;
|
109
|
-
transition: border-color 0.3s ease;
|
110
|
+
border-radius: 6px;
|
110
111
|
font-size: 16px;
|
112
|
+
background-color: #fafafa;
|
113
|
+
transition: all 0.3s ease;
|
114
|
+
outline: none;
|
115
|
+
}
|
116
|
+
|
117
|
+
textarea {
|
118
|
+
resize: vertical;
|
119
|
+
min-height: 100px;
|
111
120
|
}
|
112
121
|
|
113
|
-
input
|
114
|
-
input[type="email"]:focus,
|
115
|
-
input[type="tel"]:focus,
|
116
|
-
input[type="datetime-local"]:focus,
|
122
|
+
input:focus,
|
117
123
|
textarea:focus,
|
118
124
|
select:focus {
|
119
125
|
border-color: hsl(151, 79%, 46%);
|
120
|
-
box-shadow: 0 0
|
126
|
+
box-shadow: 0 0 6px rgba(25, 118, 210, 0.3);
|
127
|
+
background-color: #fff;
|
121
128
|
}
|
122
129
|
|
130
|
+
/* Submit Button */
|
123
131
|
input[type="submit"] {
|
124
132
|
background: hsl(117, 79%, 46%);
|
125
133
|
color: white;
|
126
|
-
padding:
|
134
|
+
padding: 14px 24px;
|
127
135
|
border: none;
|
128
|
-
border-radius:
|
136
|
+
border-radius: 50px;
|
137
|
+
font-size: 17px;
|
138
|
+
font-weight: 500;
|
129
139
|
cursor: pointer;
|
130
|
-
transition:
|
131
|
-
|
140
|
+
transition: all 0.3s ease;
|
141
|
+
display: block;
|
142
|
+
margin: 0 auto;
|
132
143
|
}
|
133
144
|
|
134
145
|
input[type="submit"]:hover {
|
135
|
-
background: hsl(118, 79%,
|
136
|
-
transform: translateY(-2px);
|
146
|
+
background: hsl(118, 79%, 36%);
|
147
|
+
transform: translateY(-2px) scale(1.02);
|
137
148
|
}
|
138
149
|
|
139
150
|
input[type="submit"]:active {
|
@@ -144,10 +155,10 @@ input[type="submit"]:active {
|
|
144
155
|
/* Footer Styling */
|
145
156
|
footer {
|
146
157
|
text-align: center;
|
147
|
-
padding:
|
158
|
+
padding: 18px;
|
148
159
|
background: #18b74d;
|
149
160
|
color: #fff;
|
150
|
-
margin-top:
|
161
|
+
margin-top: 50px;
|
151
162
|
animation: fadeIn 2.5s ease-in-out;
|
152
163
|
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
|
153
164
|
}
|
@@ -155,14 +166,15 @@ footer {
|
|
155
166
|
footer a {
|
156
167
|
color: #ffe082;
|
157
168
|
text-decoration: none;
|
158
|
-
|
169
|
+
font-weight: 500;
|
159
170
|
}
|
160
171
|
|
161
172
|
footer a:hover {
|
162
|
-
color: #
|
173
|
+
color: #ffffff;
|
174
|
+
text-decoration: underline;
|
163
175
|
}
|
164
176
|
|
165
|
-
/*
|
177
|
+
/* Animations */
|
166
178
|
@keyframes fadeIn {
|
167
179
|
from {
|
168
180
|
opacity: 0;
|
@@ -175,7 +187,7 @@ footer a:hover {
|
|
175
187
|
@keyframes fadeInDown {
|
176
188
|
from {
|
177
189
|
opacity: 0;
|
178
|
-
transform: translateY(-
|
190
|
+
transform: translateY(-30px);
|
179
191
|
}
|
180
192
|
to {
|
181
193
|
opacity: 1;
|
@@ -186,7 +198,7 @@ footer a:hover {
|
|
186
198
|
@keyframes fadeInUp {
|
187
199
|
from {
|
188
200
|
opacity: 0;
|
189
|
-
transform: translateY(
|
201
|
+
transform: translateY(30px);
|
190
202
|
}
|
191
203
|
to {
|
192
204
|
opacity: 1;
|
@@ -204,3 +216,23 @@ footer a:hover {
|
|
204
216
|
transform: translateX(0);
|
205
217
|
}
|
206
218
|
}
|
219
|
+
|
220
|
+
/* Responsive Design */
|
221
|
+
@media (max-width: 768px) {
|
222
|
+
header h1 {
|
223
|
+
font-size: 1.8em;
|
224
|
+
}
|
225
|
+
|
226
|
+
nav ul li {
|
227
|
+
display: block;
|
228
|
+
margin: 8px 0;
|
229
|
+
}
|
230
|
+
|
231
|
+
form {
|
232
|
+
padding: 20px;
|
233
|
+
}
|
234
|
+
|
235
|
+
input[type="submit"] {
|
236
|
+
width: 100%;
|
237
|
+
}
|
238
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
document.addEventListener("DOMContentLoaded", () => {
|
2
|
+
// Smooth scrolling for all internal links
|
3
|
+
const smoothScrollLinks = document.querySelectorAll("a[href^='#']");
|
4
|
+
smoothScrollLinks.forEach(link => {
|
5
|
+
link.addEventListener("click", (event) => {
|
6
|
+
event.preventDefault();
|
7
|
+
const targetId = link.getAttribute("href").substring(1);
|
8
|
+
const targetElement = document.getElementById(targetId);
|
9
|
+
if (targetElement) {
|
10
|
+
targetElement.scrollIntoView({ behavior: "smooth" });
|
11
|
+
}
|
12
|
+
});
|
13
|
+
});
|
14
|
+
|
15
|
+
// Back to top button functionality
|
16
|
+
const backToTopButton = document.createElement("button");
|
17
|
+
backToTopButton.innerText = "↑ Top";
|
18
|
+
backToTopButton.className = "scroll-to-top";
|
19
|
+
document.body.appendChild(backToTopButton);
|
20
|
+
|
21
|
+
backToTopButton.style.display = "none";
|
22
|
+
backToTopButton.addEventListener("click", () => {
|
23
|
+
window.scrollTo({ top: 0, behavior: "smooth" });
|
24
|
+
});
|
25
|
+
|
26
|
+
window.addEventListener("scroll", () => {
|
27
|
+
backToTopButton.style.display = window.pageYOffset > 300 ? "block" : "none";
|
28
|
+
});
|
29
|
+
|
30
|
+
// Modular function to reveal elements on scroll
|
31
|
+
const revealOnScroll = () => {
|
32
|
+
const sections = document.querySelectorAll("section");
|
33
|
+
const viewportHeight = window.innerHeight;
|
34
|
+
sections.forEach(section => {
|
35
|
+
const sectionTop = section.getBoundingClientRect().top;
|
36
|
+
if (sectionTop < viewportHeight - 100) {
|
37
|
+
section.classList.add("visible");
|
38
|
+
}
|
39
|
+
});
|
40
|
+
};
|
41
|
+
window.addEventListener("scroll", revealOnScroll);
|
42
|
+
|
43
|
+
// Inject dynamic styles for section reveal effect
|
44
|
+
const styleSheet = document.createElement("style");
|
45
|
+
// styleSheet.type = "text/css"; // Deprecated, no longer needed
|
46
|
+
styleSheet.innerText = `
|
47
|
+
section {
|
48
|
+
opacity: 0;
|
49
|
+
transform: translateY(20px);
|
50
|
+
transition: opacity 0.5s ease, transform 0.5s ease;
|
51
|
+
}
|
52
|
+
section.visible {
|
53
|
+
opacity: 1;
|
54
|
+
transform: translateY(0);
|
55
|
+
}
|
56
|
+
.scroll-to-top {
|
57
|
+
position: fixed;
|
58
|
+
bottom: 20px;
|
59
|
+
right: 20px;
|
60
|
+
padding: 10px 15px;
|
61
|
+
background: #007bff;
|
62
|
+
color: white;
|
63
|
+
border: none;
|
64
|
+
border-radius: 5px;
|
65
|
+
display: none;
|
66
|
+
cursor: pointer;
|
67
|
+
}
|
68
|
+
.scroll-to-top:hover {
|
69
|
+
background: #0056b3;
|
70
|
+
}
|
71
|
+
`;
|
72
|
+
document.head.appendChild(styleSheet);
|
73
|
+
});
|
74
|
+
|
@@ -1,74 +0,0 @@
|
|
1
|
-
// document.addEventListener("DOMContentLoaded", () => {
|
2
|
-
// // Smooth scrolling for all internal links
|
3
|
-
// const smoothScrollLinks = document.querySelectorAll("a[href^='#']");
|
4
|
-
// smoothScrollLinks.forEach(link => {
|
5
|
-
// link.addEventListener("click", (event) => {
|
6
|
-
// event.preventDefault();
|
7
|
-
// const targetId = link.getAttribute("href").substring(1);
|
8
|
-
// const targetElement = document.getElementById(targetId);
|
9
|
-
// if (targetElement) {
|
10
|
-
// targetElement.scrollIntoView({ behavior: "smooth" });
|
11
|
-
// }
|
12
|
-
// });
|
13
|
-
// });
|
14
|
-
|
15
|
-
// // Back to top button functionality
|
16
|
-
// const backToTopButton = document.createElement("button");
|
17
|
-
// backToTopButton.innerText = "↑ Top";
|
18
|
-
// backToTopButton.className = "scroll-to-top";
|
19
|
-
// document.body.appendChild(backToTopButton);
|
20
|
-
|
21
|
-
// backToTopButton.style.display = "none";
|
22
|
-
// backToTopButton.addEventListener("click", () => {
|
23
|
-
// window.scrollTo({ top: 0, behavior: "smooth" });
|
24
|
-
// });
|
25
|
-
|
26
|
-
// window.addEventListener("scroll", () => {
|
27
|
-
// backToTopButton.style.display = window.pageYOffset > 300 ? "block" : "none";
|
28
|
-
// });
|
29
|
-
|
30
|
-
// // Modular function to reveal elements on scroll
|
31
|
-
// const revealOnScroll = () => {
|
32
|
-
// const sections = document.querySelectorAll("section");
|
33
|
-
// const viewportHeight = window.innerHeight;
|
34
|
-
// sections.forEach(section => {
|
35
|
-
// const sectionTop = section.getBoundingClientRect().top;
|
36
|
-
// if (sectionTop < viewportHeight - 100) {
|
37
|
-
// section.classList.add("visible");
|
38
|
-
// }
|
39
|
-
// });
|
40
|
-
// };
|
41
|
-
// window.addEventListener("scroll", revealOnScroll);
|
42
|
-
|
43
|
-
// // Inject dynamic styles for section reveal effect
|
44
|
-
// const styleSheet = document.createElement("style");
|
45
|
-
// // styleSheet.type = "text/css"; // Deprecated, no longer needed
|
46
|
-
// styleSheet.innerText = `
|
47
|
-
// section {
|
48
|
-
// opacity: 0;
|
49
|
-
// transform: translateY(20px);
|
50
|
-
// transition: opacity 0.5s ease, transform 0.5s ease;
|
51
|
-
// }
|
52
|
-
// section.visible {
|
53
|
-
// opacity: 1;
|
54
|
-
// transform: translateY(0);
|
55
|
-
// }
|
56
|
-
// .scroll-to-top {
|
57
|
-
// position: fixed;
|
58
|
-
// bottom: 20px;
|
59
|
-
// right: 20px;
|
60
|
-
// padding: 10px 15px;
|
61
|
-
// background: #007bff;
|
62
|
-
// color: white;
|
63
|
-
// border: none;
|
64
|
-
// border-radius: 5px;
|
65
|
-
// display: none;
|
66
|
-
// cursor: pointer;
|
67
|
-
// }
|
68
|
-
// .scroll-to-top:hover {
|
69
|
-
// background: #0056b3;
|
70
|
-
// }
|
71
|
-
// `;
|
72
|
-
// document.head.appendChild(styleSheet);
|
73
|
-
// });
|
74
|
-
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/register.css
RENAMED
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/css/services.css
RENAMED
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/static/images/image.jpg
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/contact-form.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/private-videos.html
RENAMED
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/register.html
RENAMED
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/templates/services.html
RENAMED
File without changes
|
{my_cloud_devops_consulting-5.6.9 → my_cloud_devops_consulting-5.8.9}/tests/test_unit_test.py
RENAMED
File without changes
|