iatoolkit 0.60.1__py3-none-any.whl → 0.61.0__py3-none-any.whl
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.
Potentially problematic release.
This version of iatoolkit might be problematic. Click here for more details.
- iatoolkit/common/routes.py +6 -3
- iatoolkit/iatoolkit.py +11 -13
- iatoolkit/services/auth_service.py +1 -1
- iatoolkit/static/js/chat_main.js +5 -152
- iatoolkit/static/js/chat_prompt_manager.js +94 -0
- iatoolkit/static/styles/chat_iatoolkit.css +103 -16
- iatoolkit/static/styles/chat_modal.css +6 -4
- iatoolkit/static/styles/landing_page.css +120 -172
- iatoolkit/templates/_company_header.html +15 -0
- iatoolkit/templates/base.html +2 -0
- iatoolkit/templates/change_password.html +3 -3
- iatoolkit/templates/chat.html +72 -83
- iatoolkit/templates/error.html +45 -8
- iatoolkit/templates/forgot_password.html +10 -12
- iatoolkit/templates/home.html +80 -0
- iatoolkit/templates/index.html +61 -78
- iatoolkit/templates/signup.html +12 -10
- iatoolkit/views/change_password_view.py +1 -1
- iatoolkit/views/forgot_password_view.py +1 -1
- iatoolkit/views/home_view.py +43 -0
- iatoolkit/views/index_view.py +5 -34
- iatoolkit/views/logout_api_view.py +1 -1
- iatoolkit/views/signup_view.py +1 -1
- iatoolkit/views/verify_user_view.py +8 -2
- {iatoolkit-0.60.1.dist-info → iatoolkit-0.61.0.dist-info}/METADATA +1 -1
- {iatoolkit-0.60.1.dist-info → iatoolkit-0.61.0.dist-info}/RECORD +28 -27
- iatoolkit/templates/_branding_styles.html +0 -53
- iatoolkit/templates/_login_widget.html +0 -42
- iatoolkit/templates/_navbar.html +0 -9
- {iatoolkit-0.60.1.dist-info → iatoolkit-0.61.0.dist-info}/WHEEL +0 -0
- {iatoolkit-0.60.1.dist-info → iatoolkit-0.61.0.dist-info}/top_level.txt +0 -0
|
@@ -1,228 +1,176 @@
|
|
|
1
1
|
/* static/styles/landing_page.css */
|
|
2
2
|
|
|
3
|
-
/* ---
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
/* --- Variables y Estilos Globales --- */
|
|
4
|
+
:root {
|
|
5
|
+
--website-primary-color: #4A55A2;
|
|
6
|
+
--website-primary-color-dark: #3A448A;
|
|
7
|
+
--website-gradient-start: #4A55A2;
|
|
8
|
+
--website-gradient-end: #7895CB;
|
|
9
|
+
--website-dark-text: #212529;
|
|
10
|
+
--website-light-bg: #f8f9fa;
|
|
11
|
+
--website-muted-text: #6c757d;
|
|
6
12
|
}
|
|
7
13
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
body {
|
|
15
|
+
background-color: #fff;
|
|
16
|
+
color: var(--website-dark-text);
|
|
17
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* --- Encabezado Propio (sin usar .navbar) --- */
|
|
21
|
+
.website-header {
|
|
22
|
+
background-color: var(--website-primary-color); /* Color primario del website */
|
|
23
|
+
border-bottom: 1px solid transparent; /* Borde ya no necesario con fondo sólido */
|
|
24
|
+
position: sticky;
|
|
25
|
+
top: 0;
|
|
26
|
+
z-index: 1020;
|
|
27
|
+
padding: 0.75rem 0;
|
|
28
|
+
width: 100%;
|
|
13
29
|
}
|
|
14
30
|
|
|
15
|
-
.
|
|
16
|
-
color: var(--brand-text-on-primary, #FFFFFF);
|
|
31
|
+
.website-brand {
|
|
17
32
|
font-weight: 700;
|
|
18
|
-
font-size: 1.
|
|
33
|
+
font-size: 1.75rem;
|
|
34
|
+
color: #ffffff;
|
|
19
35
|
}
|
|
20
36
|
|
|
21
|
-
|
|
22
|
-
/* Define un gradiente como fondo */
|
|
23
|
-
background: linear-gradient(90deg, #4F46E5, #818CF8);
|
|
24
|
-
|
|
25
|
-
/* Recorta el fondo para que solo sea visible donde hay texto */
|
|
26
|
-
-webkit-background-clip: text;
|
|
27
|
-
background-clip: text;
|
|
28
|
-
|
|
29
|
-
/* Hace que el color del texto sea transparente para que se vea el fondo */
|
|
30
|
-
color: transparent;
|
|
31
|
-
|
|
32
|
-
/* Asegura que el fondo no se repita */
|
|
33
|
-
background-size: 100%;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/* Estilos para el texto de la propuesta de valor */
|
|
37
|
-
.value-proposition {
|
|
38
|
-
display: flex;
|
|
39
|
-
flex-direction: column;
|
|
40
|
-
justify-content: center;
|
|
41
|
-
height: 100%;
|
|
42
|
-
padding-left: 2rem;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/* --- 2. Sección Principal (Hero) --- */
|
|
37
|
+
/* --- Sección Principal (Hero) --- */
|
|
46
38
|
.hero-section {
|
|
47
|
-
padding:
|
|
48
|
-
background-color: #f8f9fa; /* Fondo gris claro para la sección principal */
|
|
39
|
+
padding: 5rem 0;
|
|
49
40
|
}
|
|
50
|
-
|
|
51
41
|
.hero-title {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-webkit-text-fill-color: transparent;
|
|
57
|
-
line-height: 1.1;
|
|
58
|
-
letter-spacing: -0.5px;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.hero-bullets {
|
|
62
|
-
list-style: none;
|
|
63
|
-
padding-left: 2rem;
|
|
64
|
-
margin-top: 1.5rem;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.hero-bullets li {
|
|
68
|
-
font-size: 1.15rem;
|
|
69
|
-
color: #4b5563;
|
|
70
|
-
margin-bottom: 0.8rem;
|
|
71
|
-
display: flex;
|
|
72
|
-
align-items: flex-start;
|
|
73
|
-
gap: 0.6rem;
|
|
74
|
-
line-height: 1.5;
|
|
42
|
+
font-size: 3.5rem;
|
|
43
|
+
font-weight: 800;
|
|
44
|
+
line-height: 1.2;
|
|
45
|
+
margin-bottom: 1.5rem;
|
|
75
46
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
47
|
+
.gradient-text {
|
|
48
|
+
background: linear-gradient(90deg, var(--website-gradient-start), var(--website-gradient-end));
|
|
49
|
+
-webkit-background-clip: text;
|
|
50
|
+
-webkit-text-fill-color: transparent;
|
|
51
|
+
background-clip: text;
|
|
52
|
+
text-fill-color: transparent;
|
|
81
53
|
}
|
|
82
|
-
|
|
83
|
-
|
|
54
|
+
.hero-bullets {
|
|
55
|
+
list-style: none;
|
|
56
|
+
padding-left: 0;
|
|
84
57
|
font-size: 1.1rem;
|
|
85
|
-
color: #6c757d;
|
|
86
|
-
margin-top: 1.5rem;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
.value-proposition .hero-accelerator {
|
|
91
|
-
color: var(--brand-primary-color, #0d6efd);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/* --- Estilo para el título del widget de login --- */
|
|
95
|
-
.hero-section .bg-light h4 {
|
|
96
|
-
color: var(--brand-primary-color, #0d6efd);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.author-section {
|
|
100
|
-
background: #ffffff;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.author-card {
|
|
104
|
-
background: #f8f9fa;
|
|
105
|
-
border: 1px solid #e9ecef;
|
|
106
|
-
border-radius: 10px;
|
|
107
58
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
color: var(--brand-text-on-primary, #fff);
|
|
115
|
-
display: flex; align-items: center; justify-content: center;
|
|
116
|
-
font-size: 2rem;
|
|
59
|
+
.hero-bullets li {
|
|
60
|
+
display: flex;
|
|
61
|
+
align-items: center;
|
|
62
|
+
gap: 0.75rem;
|
|
63
|
+
margin-bottom: 1rem;
|
|
64
|
+
color: var(--website-muted-text);
|
|
117
65
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
line-height: 1.6;
|
|
66
|
+
.hero-bullets .bi {
|
|
67
|
+
color: var(--website-primary-color);
|
|
68
|
+
font-size: 1.5rem;
|
|
122
69
|
}
|
|
123
70
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
.
|
|
129
|
-
text-decoration: underline;
|
|
71
|
+
/* --- Botón de Llamada a la Acción (CTA) --- */
|
|
72
|
+
.hero-section .btn-primary {
|
|
73
|
+
background-color: var(--website-primary-color);
|
|
74
|
+
border-color: var(--website-primary-color);
|
|
75
|
+
transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
|
|
130
76
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
font-style: italic;
|
|
135
|
-
font-size: 0.9rem;
|
|
136
|
-
line-height: 1.4;
|
|
77
|
+
.hero-section .btn-primary:hover {
|
|
78
|
+
background-color: var(--website-primary-color-dark);
|
|
79
|
+
border-color: var(--website-primary-color-dark);
|
|
137
80
|
}
|
|
138
81
|
|
|
139
|
-
/* ---
|
|
82
|
+
/* --- Sección de Características (Features) --- */
|
|
140
83
|
.features-section {
|
|
141
84
|
padding: 5rem 0;
|
|
142
|
-
background-color:
|
|
85
|
+
background-color: var(--website-light-bg);
|
|
143
86
|
}
|
|
144
|
-
|
|
145
|
-
/* (El resto del archivo CSS permanece sin cambios) */
|
|
146
87
|
.feature-item {
|
|
147
|
-
|
|
88
|
+
background-color: #fff;
|
|
148
89
|
padding: 2rem;
|
|
149
|
-
|
|
150
|
-
border: 1px solid #
|
|
151
|
-
|
|
152
|
-
|
|
90
|
+
border-radius: 0.75rem;
|
|
91
|
+
border: 1px solid #e9ecef;
|
|
92
|
+
height: 100%;
|
|
93
|
+
transition: all 0.3s ease;
|
|
94
|
+
}
|
|
95
|
+
.feature-item:hover {
|
|
96
|
+
transform: translateY(-5px);
|
|
97
|
+
box-shadow: 0 8px 25px rgba(0,0,0,0.08);
|
|
153
98
|
}
|
|
154
|
-
|
|
155
99
|
.feature-icon {
|
|
156
|
-
font-size:
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
display: inline-block;
|
|
100
|
+
font-size: 2.5rem;
|
|
101
|
+
margin-bottom: 1rem;
|
|
102
|
+
color: var(--website-primary-color);
|
|
160
103
|
}
|
|
161
|
-
|
|
162
104
|
.feature-item h3 {
|
|
163
|
-
font-size: 1.4rem;
|
|
164
105
|
font-weight: 600;
|
|
165
|
-
margin-bottom:
|
|
106
|
+
margin-bottom: 0.5rem;
|
|
166
107
|
}
|
|
167
|
-
|
|
168
108
|
.feature-item p {
|
|
169
|
-
color:
|
|
109
|
+
color: var(--website-muted-text);
|
|
170
110
|
}
|
|
171
111
|
|
|
112
|
+
/* Estilo especial para la caja de Open Source */
|
|
172
113
|
.opensource-box {
|
|
173
|
-
background
|
|
174
|
-
color: #
|
|
114
|
+
background: var(--website-dark-text);
|
|
115
|
+
color: #fff;
|
|
175
116
|
padding: 2rem;
|
|
176
|
-
border-radius: 0.
|
|
177
|
-
height: 100%;
|
|
117
|
+
border-radius: 0.75rem;
|
|
118
|
+
height: 100%;
|
|
178
119
|
display: flex;
|
|
179
120
|
flex-direction: column;
|
|
180
121
|
justify-content: space-between;
|
|
181
|
-
|
|
122
|
+
border: 1px solid transparent;
|
|
123
|
+
transition: all 0.3s ease;
|
|
182
124
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
color: var(--brand-text-on-primary, #FFFFFF);
|
|
187
|
-
opacity: 0.9;
|
|
188
|
-
margin-bottom: 1.5rem;
|
|
125
|
+
.opensource-box:hover {
|
|
126
|
+
transform: translateY(-5px);
|
|
127
|
+
box-shadow: 0 8px 25px rgba(0,0,0,0.15);
|
|
189
128
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
font-weight: 600;
|
|
193
|
-
font-size: 1.4rem; /* Tamaño consistente */
|
|
129
|
+
.opensource-icon .bi-github {
|
|
130
|
+
font-size: 2.5rem;
|
|
194
131
|
margin-bottom: 1rem;
|
|
195
132
|
}
|
|
196
|
-
|
|
197
|
-
|
|
133
|
+
.opensource-box h3 {
|
|
134
|
+
font-weight: 600;
|
|
135
|
+
}
|
|
136
|
+
.opensource-box p {
|
|
137
|
+
color: #ced4da;
|
|
198
138
|
margin-bottom: 1.5rem;
|
|
199
|
-
color: #adb5bd;
|
|
200
139
|
}
|
|
201
140
|
|
|
202
|
-
|
|
203
|
-
|
|
141
|
+
/* --- Sección del Autor --- */
|
|
142
|
+
.author-section {
|
|
143
|
+
background-color: #fff;
|
|
204
144
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
border-top: 1px solid #495057;
|
|
210
|
-
font-size: 0.9rem;
|
|
211
|
-
color: #ced4da;
|
|
145
|
+
.author-card {
|
|
146
|
+
background-color: var(--website-light-bg);
|
|
147
|
+
border-radius: 0.75rem;
|
|
148
|
+
border: 1px solid #e9ecef;
|
|
212
149
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
color:
|
|
150
|
+
.author-card h5 {
|
|
151
|
+
color: var(--website-primary-color);
|
|
152
|
+
font-weight: 600;
|
|
153
|
+
}
|
|
154
|
+
.author-bio {
|
|
155
|
+
color: var(--website-muted-text);
|
|
156
|
+
line-height: 1.6;
|
|
157
|
+
}
|
|
158
|
+
.author-linkedin {
|
|
159
|
+
text-decoration: none;
|
|
160
|
+
color: #0077b5;
|
|
161
|
+
font-weight: 500;
|
|
162
|
+
transition: opacity 0.2s;
|
|
163
|
+
}
|
|
164
|
+
.author-linkedin:hover {
|
|
165
|
+
opacity: 0.8;
|
|
219
166
|
}
|
|
220
167
|
|
|
221
|
-
/* ---
|
|
168
|
+
/* --- Footer --- */
|
|
222
169
|
.landing-footer {
|
|
223
|
-
background-color:
|
|
224
|
-
color:
|
|
170
|
+
background-color: var(--website-light-bg);
|
|
171
|
+
color: var(--website-muted-text);
|
|
225
172
|
padding: 2rem 0;
|
|
226
173
|
text-align: center;
|
|
227
|
-
|
|
174
|
+
margin-top: 4rem;
|
|
175
|
+
border-top: 1px solid #e9ecef;
|
|
228
176
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<div class="custom-company-header" style="{{ branding.header_style }}">
|
|
2
|
+
|
|
3
|
+
{# Enlace condicional para el nombre de la marca a la izquierda #}
|
|
4
|
+
<a href="{{ url_for('home', company_short_name=company_short_name) }}"
|
|
5
|
+
class="brand-name"
|
|
6
|
+
style="{{ branding.primary_text_style }}">
|
|
7
|
+
{{ branding.name }}
|
|
8
|
+
</a>
|
|
9
|
+
|
|
10
|
+
<span class="powered-by">
|
|
11
|
+
Powered by IAToolkit
|
|
12
|
+
</a>
|
|
13
|
+
</span>
|
|
14
|
+
|
|
15
|
+
</div>
|
iatoolkit/templates/base.html
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
<link rel="stylesheet" href="{{ url_for('static', filename='styles/onboarding.css', _external=True) }}">
|
|
14
14
|
<link rel="stylesheet" href="{{ url_for('static', filename='styles/chat_modal.css', _external=True) }}">
|
|
15
15
|
<link rel="stylesheet" href="{{ url_for('static', filename='styles/llm_output.css', _external=True) }}">
|
|
16
|
+
|
|
17
|
+
{% block styles %}{% endblock %}
|
|
16
18
|
</head>
|
|
17
19
|
<body class="d-flex flex-column p-3" style="min-height: 100vh;">
|
|
18
20
|
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
<div class="container">
|
|
18
18
|
<div class="row justify-content-center">
|
|
19
19
|
<div class="col-lg-6 col-md-8">
|
|
20
|
-
<div class="
|
|
21
|
-
<h4 class="form-title
|
|
20
|
+
<div class="branded-form-container">
|
|
21
|
+
<h4 class="branded-form-title">Crear Nueva Contraseña</h4>
|
|
22
22
|
|
|
23
23
|
<p class="text-muted text-center mb-4">
|
|
24
24
|
Estás cambiando la contraseña para <strong>{{ email }}</strong>.
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
</form>
|
|
53
53
|
|
|
54
54
|
<div class="text-center mt-4 pt-3" style="border-top: 1px solid #e0e0e0;">
|
|
55
|
-
<a href="{{ url_for('
|
|
55
|
+
<a href="{{ url_for('home', company_short_name=company_short_name) }}" class="text-muted text-decoration-none fw-semibold">
|
|
56
56
|
<i class="bi bi-arrow-left me-1"></i>Volver al inicio
|
|
57
57
|
</a>
|
|
58
58
|
</div>
|
iatoolkit/templates/chat.html
CHANGED
|
@@ -12,77 +12,78 @@
|
|
|
12
12
|
<link rel="stylesheet" href="{{ url_for('static', filename='styles/onboarding.css', _external=True) }}">
|
|
13
13
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
|
|
14
14
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
|
15
|
-
|
|
15
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css">
|
|
16
|
+
|
|
17
|
+
{% endblock %}
|
|
16
18
|
|
|
17
19
|
<!-- Sección de encabezado con el usuario conectado -->
|
|
18
|
-
<div id="company-section"
|
|
19
|
-
|
|
20
|
+
<div id="company-section"
|
|
21
|
+
class="company-section d-flex flex-column flex-md-row justify-content-md-between align-items-center px-3 py-2"
|
|
22
|
+
style="{{ branding.header_style }}">
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
<!-- Fila 1 (Móvil) / Columna Izquierda (Desktop): Nombre de la Empresa -->
|
|
25
|
+
<div class="d-flex align-items-center mb-2 mb-md-0">
|
|
26
|
+
<span style="{{ branding.primary_text_style }}">
|
|
27
|
+
{{ branding.name }}
|
|
28
|
+
</span>
|
|
29
|
+
<span class="ms-2" data-bs-toggle="tooltip" data-bs-placement="bottom"
|
|
30
|
+
title="Powered by IAToolkit ({{ iatoolkit_version }})">
|
|
31
|
+
<i class="bi bi-info-circle" style="color: {{ branding.header_text_color }}; opacity: 0.7; font-size: 0.9rem;"></i>
|
|
32
|
+
</span>
|
|
33
|
+
</div>
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
<!-- 1. ID de Usuario -->
|
|
35
|
-
<span style="{{ branding.secondary_text_style }}">
|
|
36
|
-
{{ user_identifier }}
|
|
37
|
-
</span>
|
|
35
|
+
<!-- Contenedor para la derecha que agrupa ID de usuario y botones -->
|
|
36
|
+
<div class="d-flex flex-column flex-md-row align-items-center">
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
<!-- Fila 2 (Móvil) / Parte 1 de la Columna Derecha (Desktop): ID de Usuario -->
|
|
39
|
+
<span style="{{ branding.secondary_text_style }}" class="mb-2 mb-md-0">
|
|
40
|
+
{{ user_identifier }}
|
|
41
|
+
</span>
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
id="history-button"
|
|
45
|
-
class="action-icon-style" title="Historial con mis consultas" style="color: {{ branding.header_text_color }};">
|
|
46
|
-
<i class="bi bi-clock-history"></i>
|
|
47
|
-
</a>
|
|
48
|
-
<a href="javascript:void(0);"
|
|
49
|
-
id="force-reload-button"
|
|
50
|
-
class="ms-3 action-icon-style"
|
|
51
|
-
title="Forzar Recarga de Contexto"
|
|
52
|
-
style="color: {{ branding.header_text_color }};">
|
|
53
|
-
<i class="bi bi-arrow-clockwise"></i>
|
|
54
|
-
</a>
|
|
55
|
-
<a href="javascript:void(0);"
|
|
56
|
-
id="send-feedback-button"
|
|
57
|
-
class="ms-3 action-icon-style" title="Tu feedback es muy importante" style="color: {{ branding.header_text_color }};">
|
|
58
|
-
<i class="bi bi-emoji-smile"></i>
|
|
59
|
-
</a>
|
|
60
|
-
<a href="javascript:void(0);"
|
|
61
|
-
id="onboarding-button"
|
|
62
|
-
class="ms-3 action-icon-style" title="Ver onboarding"
|
|
63
|
-
style="color: {{ branding.header_text_color }};">
|
|
64
|
-
<i class="bi bi-lightbulb"></i>
|
|
65
|
-
</a>
|
|
43
|
+
<!-- Separador Vertical (Solo visible en Desktop) -->
|
|
44
|
+
<div class="vr mx-3 d-none d-md-block"></div>
|
|
66
45
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
46
|
+
<!-- Fila 3 (Móvil) / Parte 2 de la Columna Derecha (Desktop): Iconos de Acción -->
|
|
47
|
+
<div class="d-flex align-items-center">
|
|
48
|
+
<a href="javascript:void(0);"
|
|
49
|
+
id="history-button"
|
|
50
|
+
class="action-icon-style" title="Historial con mis consultas" style="color: {{ branding.header_text_color }};">
|
|
51
|
+
<i class="bi bi-clock-history"></i>
|
|
52
|
+
</a>
|
|
53
|
+
<a href="javascript:void(0);"
|
|
54
|
+
id="force-reload-button"
|
|
55
|
+
class="ms-3 action-icon-style"
|
|
56
|
+
title="Forzar Recarga de Contexto"
|
|
57
|
+
style="color: {{ branding.header_text_color }};">
|
|
58
|
+
<i class="bi bi-arrow-clockwise"></i>
|
|
59
|
+
</a>
|
|
60
|
+
<a href="javascript:void(0);"
|
|
61
|
+
id="send-feedback-button"
|
|
62
|
+
class="ms-3 action-icon-style" title="Tu feedback es muy importante" style="color: {{ branding.header_text_color }};">
|
|
63
|
+
<i class="bi bi-emoji-smile"></i>
|
|
64
|
+
</a>
|
|
65
|
+
<a href="javascript:void(0);"
|
|
66
|
+
id="onboarding-button"
|
|
67
|
+
class="ms-3 action-icon-style" title="Ver onboarding"
|
|
68
|
+
style="color: {{ branding.header_text_color }};">
|
|
69
|
+
<i class="bi bi-lightbulb"></i>
|
|
70
|
+
</a>
|
|
71
|
+
<a href="javascript:void(0);"
|
|
72
|
+
id="logout-button"
|
|
73
|
+
class="ms-3 action-icon-style" title="Cerrar sesión"
|
|
74
|
+
style="color: {{ branding.header_text_color }}; !important;">
|
|
75
|
+
<i class="bi bi-box-arrow-right"></i>
|
|
76
|
+
</a>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
74
79
|
</div>
|
|
75
80
|
|
|
76
|
-
</div>
|
|
77
|
-
|
|
78
81
|
<div id="chat-container"
|
|
79
82
|
class="chat-block mt-2 flex-grow-1"
|
|
80
83
|
style="overflow-y: auto;">
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
¡Hola! en que te puedo ayudar hoy?
|
|
85
|
-
</div>
|
|
84
|
+
<!-- Mensaje de bienvenida estático -->
|
|
85
|
+
<div class="answer-section">
|
|
86
|
+
¡Hola! en que te puedo ayudar hoy?
|
|
86
87
|
</div>
|
|
87
88
|
</div>
|
|
88
89
|
|
|
@@ -197,32 +198,20 @@
|
|
|
197
198
|
</script>
|
|
198
199
|
|
|
199
200
|
<!-- Carga de los scripts JS externos después de definir las variables globales -->
|
|
200
|
-
<script src="{{ url_for('static', filename='js/chat_onboarding_button.js', _external=True) }}"></script>
|
|
201
|
-
<script src="{{ url_for('static', filename='js/chat_filepond.js', _external=True) }}"></script>
|
|
202
|
-
<script src="{{ url_for('static', filename='js/chat_history_button.js', _external=True) }}"></script>
|
|
203
|
-
<script src="{{ url_for('static', filename='js/chat_feedback_button.js', _external=True) }}"></script>
|
|
204
|
-
<script src="{{ url_for('static', filename='js/chat_reload_button.js', _external=True) }}"></script>
|
|
205
|
-
<script src="{{ url_for('static', filename='js/chat_main.js', _external=True) }}"></script>
|
|
206
|
-
<script src="{{ url_for('static', filename='js/chat_logout_button.js', _external=True) }}"></script>
|
|
207
|
-
<script src="{{ url_for('static', filename='js/
|
|
201
|
+
<script src="{{ url_for('static', filename='js/chat_onboarding_button.js', _external=True) }}"></script>
|
|
202
|
+
<script src="{{ url_for('static', filename='js/chat_filepond.js', _external=True) }}"></script>
|
|
203
|
+
<script src="{{ url_for('static', filename='js/chat_history_button.js', _external=True) }}"></script>
|
|
204
|
+
<script src="{{ url_for('static', filename='js/chat_feedback_button.js', _external=True) }}"></script>
|
|
205
|
+
<script src="{{ url_for('static', filename='js/chat_reload_button.js', _external=True) }}"></script>
|
|
206
|
+
<script src="{{ url_for('static', filename='js/chat_main.js', _external=True) }}"></script>
|
|
207
|
+
<script src="{{ url_for('static', filename='js/chat_logout_button.js', _external=True) }}"></script>
|
|
208
|
+
<script src="{{ url_for('static', filename='js/chat_prompt_manager.js', _external=True) }}"></script>
|
|
209
|
+
<script src="{{ url_for('static', filename='js/chat_main.js', _external=True) }}"></script>
|
|
208
210
|
|
|
209
|
-
<
|
|
210
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/
|
|
211
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
|
|
211
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
|
212
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
|
|
212
213
|
|
|
213
|
-
<script>
|
|
214
|
-
document.addEventListener('DOMContentLoaded', function () {
|
|
215
|
-
const promptCollapse = document.getElementById('prompt-assistant-collapse');
|
|
216
|
-
if (promptCollapse) {
|
|
217
|
-
promptCollapse.addEventListener('shown.bs.collapse', function () {
|
|
218
|
-
// Desplazar la ventana al final de la página para mantener visible el área de entrada.
|
|
219
|
-
window.scrollTo({
|
|
220
|
-
top: document.body.scrollHeight,
|
|
221
|
-
behavior: 'smooth'
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
});
|
|
214
|
+
<script>
|
|
226
215
|
|
|
227
216
|
document.addEventListener('DOMContentLoaded', function () {
|
|
228
217
|
// Inicializar todos los tooltips de la página
|
iatoolkit/templates/error.html
CHANGED
|
@@ -1,15 +1,52 @@
|
|
|
1
1
|
{% extends "base.html" %}
|
|
2
2
|
|
|
3
|
-
{% block title %}Error -
|
|
3
|
+
{% block title %}Error - {{ company.name }}{% endblock %}
|
|
4
|
+
|
|
5
|
+
{% block styles %}
|
|
6
|
+
{# Carga las variables de CSS y los estilos principales de la marca #}
|
|
7
|
+
<style>
|
|
8
|
+
{{ branding.css_variables | safe }}
|
|
9
|
+
</style>
|
|
10
|
+
<link rel="stylesheet" href="{{ url_for('static', filename='styles/chat_iatoolkit.css') }}">
|
|
11
|
+
{# Enlace a los iconos de Bootstrap para el icono de error #}
|
|
12
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
|
13
|
+
{% endblock %}
|
|
4
14
|
|
|
5
15
|
{% block content %}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
|
|
17
|
+
{# 1. Incluimos el encabezado reutilizable de la empresa #}
|
|
18
|
+
{% include '_company_header.html' %}
|
|
19
|
+
|
|
20
|
+
{# 2. Contenedor principal para el mensaje de error #}
|
|
21
|
+
<div class="container mt-5">
|
|
22
|
+
<div class="row justify-content-center">
|
|
23
|
+
<div class="col-md-8 col-lg-6">
|
|
24
|
+
|
|
25
|
+
{# Usamos una tarjeta para enmarcar el contenido del error #}
|
|
26
|
+
<div class="card shadow-sm text-center border-danger">
|
|
27
|
+
<div class="card-body p-4 p-md-5">
|
|
28
|
+
|
|
29
|
+
{# Icono de error grande y visible #}
|
|
30
|
+
<i class="bi bi-exclamation-triangle-fill text-danger" style="font-size: 4rem;"></i>
|
|
31
|
+
|
|
32
|
+
<h2 class="card-title mt-4">Ha Ocurrido un Error</h2>
|
|
33
|
+
|
|
34
|
+
{# El mensaje de error dinámico que se pasa desde la vista #}
|
|
35
|
+
<p class="text-muted mt-3 mb-4">
|
|
36
|
+
{{ message | default('Lo sentimos, algo salió mal. Por favor, inténtalo de nuevo más tarde.') }}
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
{# Botón para volver a la página de inicio de la empresa #}
|
|
40
|
+
<a href="{{ url_for('home', company_short_name=company_short_name) }}"
|
|
41
|
+
class="btn btn-branded-primary px-4">
|
|
42
|
+
Volver al Inicio
|
|
43
|
+
</a>
|
|
44
|
+
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
</div>
|
|
13
49
|
</div>
|
|
14
50
|
</div>
|
|
51
|
+
|
|
15
52
|
{% endblock %}
|