refactor: Fusion du header et des onglets pour optimiser l'espace vertical (v1.2.1)
- Header et barre d'onglets combinés sur une seule ligne - Gain de 10px en hauteur (60px au lieu de 70px) - Logo et agent à gauche, onglets au centre, actions à droite - Interface plus compacte avec éléments redimensionnés - Plus d'espace vertical disponible pour les webviews
This commit is contained in:
@@ -1,5 +1,28 @@
|
|||||||
# Changelog - SimpleConnect Electron
|
# Changelog - SimpleConnect Electron
|
||||||
|
|
||||||
|
## [1.2.1] - 2025-09-04
|
||||||
|
|
||||||
|
### Modifié
|
||||||
|
- **Header et onglets fusionnés** : Optimisation de l'espace vertical
|
||||||
|
- Fusion du header et de la barre d'onglets sur une seule ligne
|
||||||
|
- Logo SimpleConnect et nom de l'agent à gauche
|
||||||
|
- Onglets des centres au milieu (espace flexible)
|
||||||
|
- Statut de connexion et boutons d'action à droite
|
||||||
|
- Gain de 10px en hauteur (60px au lieu de 70px)
|
||||||
|
|
||||||
|
### Amélioré
|
||||||
|
- **Interface plus compacte** : Meilleure utilisation de l'espace écran
|
||||||
|
- Plus d'espace vertical pour l'affichage des webviews
|
||||||
|
- Tous les contrôles accessibles sur une seule ligne
|
||||||
|
- Tailles des éléments légèrement réduites (boutons 36x36px, textes 13-14px)
|
||||||
|
- Padding optimisé sur tous les éléments
|
||||||
|
|
||||||
|
### Technique
|
||||||
|
- Nouvelle classe CSS `.header-with-tabs` remplaçant l'ancien header séparé
|
||||||
|
- Onglets avec `flex: 1` pour occuper l'espace disponible
|
||||||
|
- Hauteur du conteneur principal ajustée à `calc(100vh - 60px)`
|
||||||
|
- Webview container à 100% de hauteur (plus de déduction pour les onglets)
|
||||||
|
|
||||||
## [1.2.0] - 2025-09-04
|
## [1.2.0] - 2025-09-04
|
||||||
|
|
||||||
### Supprimé
|
### Supprimé
|
||||||
|
|||||||
43
index.html
43
index.html
@@ -56,25 +56,6 @@
|
|||||||
|
|
||||||
<!-- Page principale -->
|
<!-- Page principale -->
|
||||||
<div id="mainPage" class="page">
|
<div id="mainPage" class="page">
|
||||||
<!-- Header -->
|
|
||||||
<header>
|
|
||||||
<div class="header-left">
|
|
||||||
<h1>SimpleConnect</h1>
|
|
||||||
<span id="agentName" class="agent-name"></span>
|
|
||||||
</div>
|
|
||||||
<div class="header-center">
|
|
||||||
<div id="callStatus" class="call-status">
|
|
||||||
<span class="status-indicator" id="statusIndicator"></span>
|
|
||||||
<span id="statusText">En attente</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="header-right">
|
|
||||||
<button id="toggleNotesBtn" class="btn-icon" title="Afficher/Masquer les notes">
|
|
||||||
<span class="icon-notes">📝</span>
|
|
||||||
</button>
|
|
||||||
<button id="logoutBtn" class="btn-secondary">Déconnexion</button>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Zone d'alerte appel entrant -->
|
<!-- Zone d'alerte appel entrant -->
|
||||||
<div id="incomingCallAlert" class="incoming-call-alert">
|
<div id="incomingCallAlert" class="incoming-call-alert">
|
||||||
@@ -87,12 +68,32 @@
|
|||||||
<button id="acceptCallBtn" class="btn-accept">Prendre l'appel</button>
|
<button id="acceptCallBtn" class="btn-accept">Prendre l'appel</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Header et onglets combinés -->
|
||||||
|
<header class="header-with-tabs">
|
||||||
|
<div class="header-left">
|
||||||
|
<h1>SimpleConnect</h1>
|
||||||
|
<span id="agentName" class="agent-name"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Onglets des centres -->
|
||||||
|
<div class="tabs" id="centerTabs"></div>
|
||||||
|
|
||||||
|
<div class="header-right">
|
||||||
|
<div id="callStatus" class="call-status">
|
||||||
|
<span class="status-indicator" id="statusIndicator"></span>
|
||||||
|
<span id="statusText">Disponible</span>
|
||||||
|
</div>
|
||||||
|
<button id="toggleNotesBtn" class="btn-icon" title="Afficher/Masquer les notes">
|
||||||
|
<span class="icon-notes">📝</span>
|
||||||
|
</button>
|
||||||
|
<button id="logoutBtn" class="btn-secondary">Déconnexion</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
<!-- Conteneur principal -->
|
<!-- Conteneur principal -->
|
||||||
<div class="main-container">
|
<div class="main-container">
|
||||||
<!-- Zone principale avec les webviews -->
|
<!-- Zone principale avec les webviews -->
|
||||||
<main class="content">
|
<main class="content">
|
||||||
<!-- Onglets des centres -->
|
|
||||||
<div class="tabs" id="centerTabs"></div>
|
|
||||||
|
|
||||||
<!-- Container des webviews -->
|
<!-- Container des webviews -->
|
||||||
<div id="webviewContainer" class="webview-container">
|
<div id="webviewContainer" class="webview-container">
|
||||||
|
|||||||
@@ -286,56 +286,54 @@ body {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* === HEADER === */
|
/* === HEADER AVEC ONGLETS === */
|
||||||
header {
|
.header-with-tabs {
|
||||||
background: white;
|
background: white;
|
||||||
padding: 15px 30px;
|
padding: 0;
|
||||||
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
|
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
align-items: flex-end;
|
||||||
align-items: center;
|
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
min-height: 70px;
|
min-height: 60px;
|
||||||
|
border-bottom: 2px solid #e9ecef;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-left {
|
.header-left {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 20px;
|
gap: 15px;
|
||||||
|
padding: 15px 20px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-left h1 {
|
.header-left h1 {
|
||||||
font-size: 24px;
|
font-size: 20px;
|
||||||
color: #667eea;
|
color: #667eea;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agent-name {
|
.agent-name {
|
||||||
font-size: 16px;
|
font-size: 14px;
|
||||||
color: #666;
|
color: #666;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-center {
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.call-status {
|
.call-status {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px;
|
gap: 8px;
|
||||||
padding: 10px 20px;
|
padding: 8px 15px;
|
||||||
background: #f8f9fa;
|
background: #f8f9fa;
|
||||||
border-radius: 25px;
|
border-radius: 20px;
|
||||||
border: 1px solid #e9ecef;
|
border: 1px solid #e9ecef;
|
||||||
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-indicator {
|
.status-indicator {
|
||||||
width: 12px;
|
width: 10px;
|
||||||
height: 12px;
|
height: 10px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +353,7 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#statusText {
|
#statusText {
|
||||||
font-size: 14px;
|
font-size: 13px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #495057;
|
color: #495057;
|
||||||
}
|
}
|
||||||
@@ -364,18 +362,21 @@ header {
|
|||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
padding: 15px 20px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-icon {
|
.btn-icon {
|
||||||
width: 40px;
|
width: 36px;
|
||||||
height: 40px;
|
height: 36px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background: white;
|
background: white;
|
||||||
border: 1px solid #dee2e6;
|
border: 1px solid #dee2e6;
|
||||||
border-radius: 8px;
|
border-radius: 6px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
font-size: 18px;
|
font-size: 16px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -395,13 +396,13 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn-secondary {
|
.btn-secondary {
|
||||||
padding: 10px 20px;
|
padding: 8px 16px;
|
||||||
background: white;
|
background: white;
|
||||||
border: 1px solid #dee2e6;
|
border: 1px solid #dee2e6;
|
||||||
border-radius: 8px;
|
border-radius: 6px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
font-size: 14px;
|
font-size: 13px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #495057;
|
color: #495057;
|
||||||
}
|
}
|
||||||
@@ -494,7 +495,7 @@ header {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
height: calc(100vh - 70px); /* Hauteur totale moins le header */
|
height: calc(100vh - 60px); /* Hauteur totale moins le header combiné */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* === ZONE PRINCIPALE === */
|
/* === ZONE PRINCIPALE === */
|
||||||
@@ -512,15 +513,12 @@ header {
|
|||||||
/* === ONGLETS === */
|
/* === ONGLETS === */
|
||||||
.tabs {
|
.tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
background: white;
|
flex: 1;
|
||||||
border-bottom: 2px solid #e9ecef;
|
gap: 3px;
|
||||||
padding: 0 20px;
|
|
||||||
gap: 5px;
|
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
min-height: 50px;
|
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
flex-shrink: 0;
|
padding: 0 10px;
|
||||||
scrollbar-width: none; /* Firefox */
|
scrollbar-width: none; /* Firefox */
|
||||||
-ms-overflow-style: none; /* IE/Edge */
|
-ms-overflow-style: none; /* IE/Edge */
|
||||||
}
|
}
|
||||||
@@ -532,18 +530,19 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tab {
|
.tab {
|
||||||
padding: 12px 24px;
|
padding: 10px 20px;
|
||||||
background: #f8f9fa;
|
background: #f8f9fa;
|
||||||
border: 1px solid #e9ecef;
|
border: 1px solid #e9ecef;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
border-radius: 8px 8px 0 0;
|
border-radius: 6px 6px 0 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
font-size: 14px;
|
font-size: 13px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #666;
|
color: #666;
|
||||||
margin-bottom: -2px;
|
margin-bottom: -2px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab:hover {
|
.tab:hover {
|
||||||
@@ -555,7 +554,7 @@ header {
|
|||||||
background: white;
|
background: white;
|
||||||
color: #667eea;
|
color: #667eea;
|
||||||
border-color: #e9ecef;
|
border-color: #e9ecef;
|
||||||
padding-bottom: 14px;
|
padding-bottom: 12px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -575,7 +574,7 @@ header {
|
|||||||
position: relative;
|
position: relative;
|
||||||
background: white;
|
background: white;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
height: calc(100% - 50px); /* Hauteur moins les onglets */
|
height: 100%; /* Pleine hauteur car les onglets sont dans le header */
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-center-selected {
|
.no-center-selected {
|
||||||
|
|||||||
Reference in New Issue
Block a user