diff --git a/Bootstrap_new/css/style_office.css b/Bootstrap_new/css/style_office.css index b08c692..f756c7c 100644 --- a/Bootstrap_new/css/style_office.css +++ b/Bootstrap_new/css/style_office.css @@ -1,1576 +1 @@ -/* ============================================ - STYLE OFFICE POUR LE PORTAIL RH - VERSION CORRIGÉE - Encodage: UTF-8 sans BOM - ============================================ */ - -:root { - /* PowerPoint/Office 2019 Color Palette */ - --office-primary: #b7472a; /* Sidebar color - PowerPoint accent */ - --office-secondary: #2b579a; /* Header/buttons - Office blue */ - --office-accent: #107c10; /* Success/active states - Excel green */ - --office-light: #f3f2f1; /* Background - Office gray */ - --office-common: #e6e6e6; /* Background - Office gray */ - --office-dark: #323130; /* Text color */ - --office-border: #d0d0d0; /* Borders */ - --office-hover: #f0f0f0; /* Hover states */ - --office-card: #ffffff; /* Card backgrounds */ - - /* Dimensions */ - --sidebar-width: 260px; - --sidebar-collapsed: 85px; - --header-height: 64px; - --transition-speed: 0.3s; - - /* Responsive breakpoints */ - --breakpoint-tablet: 1200px; - --breakpoint-mobile: 768px; - - --office-primary-light: rgba(183, 71, 42, 0.08); - --office-primary-lighter: rgba(183, 71, 42, 0.04); - --office-primary-border: rgba(183, 71, 42, 0.15); - --office-warm-bg: #fefcfb; - --office-card-highlight: #fff9f8; - --content-margin-left: calc(var(--sidebar-width) + 24px); - --content-margin-right: 24px; - - --container-max: 1400px; - --container-pad: 24px; - -} - -/* ============================================ - BASE STYLES & RESET - ============================================ */ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif; - background-color: var(--office-common); - color: var(--office-dark); - line-height: 1.5; - overflow-x: hidden; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* ============================================ - HEADER STYLES - ============================================ */ -.app-header { - background-color: var(--office-light) !important; - height: var(--header-height); - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1030; -} - -/* Nettoyage du bouton dropdown */ -.user-menu.dropdown-toggle { - display: flex; - align-items: center; - outline: none; - box-shadow: none !important; -} - -/* Supprimer la petite flèche par défaut de Bootstrap si elle vous gêne */ -.user-menu.dropdown-toggle::after { - display: none; -} - -/* Style de base de la flèche */ -.user-arrow { - font-size: 0.8rem; - transition: transform 0.3s ease; - color: #6c757d; /* Couleur grise discrète */ -} - -/* Rotation automatique quand le menu est ouvert */ -#userDropdownBtn[aria-expanded="true"] .user-arrow { - transform: rotate(180deg); - color: var(--bs-primary); /* Change la couleur en bleu au clic (optionnel) */ -} - -/* On s'assure que le bouton reste bien aligné horizontalement */ -.user-menu { - display: flex; - align-items: center; -} - -/* S'assurer que le menu dropdown passe devant tout */ -.dropdown-menu { - z-index: 2000 !important; - min-width: 220px; - border: 1px solid rgba(0,0,0,0.1); -} - -/* Positionnement quand le header est fixed */ -.dropdown-menu[data-bs-popper] { - margin-top: 15px !important; -} - -.header-content { - display: flex; - align-items: center; - justify-content: space-between; - height: 100%; - padding: 0 24px; -} - -/* 1. Réduction de l'espace global du bouton */ -#userDropdownBtn { - gap: 8px; /* Contrôle l'espace entre avatar, texte et flèche */ -} - -/* 2. Réduction des textes */ -.user-name { - font-size: 0.85rem !important; /* Un peu plus petit */ - margin-bottom: -2px; /* Rapproche le nom du rôle */ -} - -.user-role { - font-size: 1.15rem !important; - opacity: 0.8; -} - -/* 3. Réduction de l'avatar */ -.user-avatar { - width: 32px !important; /* Au lieu de 36 ou 40 */ - height: 32px !important; - font-size: 0.8rem; /* Initiales plus petites */ - display: flex; - align-items: center; - justify-content: center; -} - -/* 4. Rapprochement de la flèche */ -.user-arrow { - font-size: 0.7rem; - margin-left: 4px !important; /* Espace réduit avec le texte */ -} - -/* 5. Densité du menu déroulant (Dropdown) */ -.dropdown-menu { - padding: 0.25rem 0; /* Moins d'espace en haut et en bas du menu */ -} - -.dropdown-item { - padding: 0.4rem 1rem; /* Items plus serrés */ - font-size: 0.85rem; -} - -.dropdown-header { - padding: 0.5rem 1rem; -} - -.logo-container { - display: flex; - align-items: center; - gap: 16px; -} - -.app-logo { - display: flex; - align-items: center; - color: #313c4c; - text-decoration: none; - font-weight: 600; - font-size: 20px; -} - -.app-logo img { height: 36px; } - -.notification-btn i{ font-size : 15pt !important; } - -#lienlogo img{ width:50px; max-height: 50px; } - -/* ============================================ - SIDEBAR STYLES - ============================================ */ -.app-sidebar { - width: var(--sidebar-width) !important; /* 70px */ - background: linear-gradient(180deg, var(--office-primary) 0%, #a53e24 100%); - position: fixed; - top: var(--header-height); - left: 0; - bottom: 0; - z-index: 1020; - box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1); - transition: width var(--transition-speed) ease; - overflow-y: auto; - overflow-x: hidden; -} - -/* Pattern overlay */ -.app-sidebar::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-image: - radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.03) 0%, transparent 20%), - radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.03) 0%, transparent 20%); - pointer-events: none; -} - -/* Texte normal */ -.app-sidebar .nav-link .nav-text { - display: inline; - opacity: 1; - transition: opacity var(--transition-speed) ease; -} - -/* En mode réduit : cacher le texte inline */ -body.sidebar-collapsed .app-sidebar .nav-link .nav-text { - display: none; -} - -/* Overlay flottant au survol */ -body.sidebar-collapsed .app-sidebar .nav-link { - position: relative; -} - -body.sidebar-collapsed .app-sidebar .nav-link:hover::after { - content: attr(data-label); - position: absolute; - top: 50%; - left: 100%; - transform: translateY(-50%); - background: rgba(0,0,0,0.85); - color: #fff; - padding: 6px 12px; - border-radius: 4px; - white-space: nowrap; - font-size: 14px; - margin-left: 8px; - box-shadow: 0 2px 6px rgba(0,0,0,0.2); - opacity: 0; - transition: opacity var(--transition-speed) ease, transform var(--transition-speed) ease; - z-index: 2000; -} - -body.sidebar-collapsed .app-sidebar .nav-link:hover::after { - opacity: 1; - transform: translateY(-50%) translateX(5px); -} - -/* Cache les flèches de sous-menu quand c'est réduit */ -body.sidebar-collapsed .nav-arrow { - display: none !important; -} - -/* Empêche les sous-menus de s'ouvrir verticalement en mode réduit */ -/* (Ils resteraient visibles mais écrasés sinon) */ -body.sidebar-collapsed .nav-submenu { - display: none !important; -} - -/* Centrage des icônes pour un aspect "Barre d'outils" propre */ -body.sidebar-collapsed .nav-item .nav-link { - display: flex; - justify-content: center; - padding-left: 0; - padding-right: 0; -} - -.sidebar-nav { - padding: 24px 0; -} - -.nav-section { - margin-bottom: 32px; - padding: 0 20px; -} - -.nav-title { - color: rgba(255, 255, 255, 0.7); - font-size: 12px; - font-weight: 600; - text-transform: uppercase; - letter-spacing: 0.5px; - margin-bottom: 12px; - padding: 0 16px; -} - -.nav-item { - margin-bottom: 4px; -} - -.nav-link { - display: flex; - align-items: center; - color: rgba(255, 255, 255, 0.85); - padding: 12px 16px; - text-decoration: none; - border-radius: 6px; - transition: all 0.2s ease; - position: relative; - overflow: hidden; -} - -.nav-link:hover { - background-color: rgba(255, 255, 255, 0.1); - color: white; -} - -.nav-link.active { - background-color: rgba(255, 255, 255, 0.15); - color: white; - font-weight: 500; -} - -.nav-link i { - width: 24px; - font-size: 18px; - margin-right: 12px; - text-align: center; -} - -.nav-text { - flex: 1; - font-size: 14px; -} - -.nav-badge { - background-color: var(--office-accent); - color: white; - font-size: 11px; - padding: 2px 6px; - border-radius: 10px; - margin-left: 8px; -} - -.nav-arrow { - font-size: 12px; - opacity: 0.7; - transition: transform 0.2s ease; -} - -.nav-link[aria-expanded="true"] .nav-arrow { - transform: rotate(90deg); - transition: transform 0.3s; -} - -.nav-submenu { - background-color: rgba(0, 0, 0, 0.1); - border-radius: 6px; - margin-top: 4px; - padding: 8px 0; -} - -.nav-submenu .nav-link { - padding: 8px 16px 8px 52px; - font-size: 13px; -} - -.nav-submenu .nav-link::before { - content: '•'; - position: absolute; - left: 36px; - opacity: 0.6; -} - -/* ============================================ - MAIN CONTENT AREA - ============================================ */ -.app-main { - margin-left: var(--sidebar-width); - padding-top: var(--header-height); - min-height: 100vh; - transition: margin-left var(--transition-speed) ease, width var(--transition-speed) ease; - background-color: var(--office-light); - width: calc(100% - var(--sidebar-width)); -} - -/* Quand le sidebar est réduit */ -body.sidebar-collapsed .app-main { - margin-left: var(--sidebar-collapsed) !important; - width: calc(100% - var(--sidebar-collapsed)) !important; -} - - -.toggle-sidebar-btn { - font-size: 20px; - padding-left: 10px; - cursor: pointer; -} - -.nav-bar.collapsed { - left: var(--sidebar-collapsed) !important; -} - - -/* ============================================ - NAVIGATION TABS - ============================================ */ -.nav-bar { - background-color: white; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); - border: 1px solid var(--office-border); - position: fixed; - top: var(--header-height); /* Directement sous le header */ - left: var(--sidebar-width); /* Commence après la sidebar */ - right: 0; - z-index: 1000; - height: 56px; - display: flex; - align-items: center; - padding: 0; - margin: 0; - transition: left var(--transition-speed) ease; -} - -/* Conteneur pour centrer le contenu */ -.nav-bar > .nav-tabs { - width: 100%; - max-width: var(--container-max); - margin: 0 auto; - padding: 0 var(--container-pad); - height: 100%; - display: flex; - align-items: center; - gap: 4px; - overflow-x: auto; -} - -.nav-tab { - display: inline-flex; - align-items: center; - padding: 10px 18px; - background-color: transparent; - color: var(--office-dark); - text-decoration: none; - border-radius: 6px; - font-size: 14px; - font-weight: 500; - white-space: nowrap; - transition: all 0.2s ease; - border: 1px solid transparent; - height: 40px; -} - -.nav-tab:hover { - background-color: var(--office-hover); - color: var(--office-secondary); -} - -.nav-tab.active { - background-color: var(--office-secondary); - color: white; - border-color: var(--office-secondary); -} - -.nav-tab i { - margin-right: 8px; - font-size: 16px; -} - -/* Style général de la scrollbar */ -.nav-bar > .nav-tabs::-webkit-scrollbar { - height: 10px; /* épaisseur de la barre horizontale */ -} - -/* Couleur de la piste (fond de la scrollbar) */ -.nav-bar > .nav-tabs::-webkit-scrollbar-track { - background: #f1f1f1; - border-radius: 8px; -} - -/* Couleur et style du curseur (thumb) */ -.nav-bar > .nav-tabs::-webkit-scrollbar-thumb { - background: var(--office-common); - border-radius: 8px; -} - -/* Effet au survol */ -.nav-bar > .nav-tabs::-webkit-scrollbar-thumb:hover { - background: #97999B; -} - -/* Quand le body a la classe sidebar-collapsed */ -body.sidebar-collapsed .app-sidebar { - width: var(--sidebar-collapsed) !important; -} - - -body.sidebar-collapsed .nav-bar { - left: var(--sidebar-collapsed) !important; -} - -/* Accessibilité et clickabilité du bouton */ -.toggle-sidebar-btn { - cursor: pointer; -} -.toggle-sidebar-btn[role="button"] { - outline: none; -} - -/* Content card */ -.content-card { - background: var(--office-card); - border-radius: 8px; - box-shadow: 0 2px 6px rgba(0,0,0,.05); - margin-top: 8px; /* Ajout pour rapprocher visuellement la carte de la nav-bar */ -} - -.content-area { - padding: calc(var(--header-height) + 56px) 24px 24px 24px; /* supprime le +8px */ - max-width: 1400px; - margin: 24px auto !important; -} - - -/* Sidebar collapsée (tablette) */ -@media (max-width: 1200px) { - .nav-bar { left: var(--sidebar-collapsed); } - .content-area { padding-left: 24px; padding-right: 24px; } -} - - -.card-header { - background-color: #fafafa; - border-bottom: 1px solid var(--office-border); - padding: 20px 24px; - font-weight: 600; - color: var(--office-dark); - font-size: 18px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.card-body { - padding: 24px; - background-color: var(--office-card); -} - - -/* ============================================ - HEADER CONTROLS - ============================================ */ -.header-controls { - display: flex; - align-items: center; - gap: 16px; -} - -.header-btn { - background: transparent; - border: none; - color: #313c4c; - padding: 8px; - border-radius: 4px; - cursor: pointer; - position: relative; - transition: background-color 0.2s ease; -} - -.header-btn:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.notification-badge { - position: absolute; - top: 2px; - right: 2px; - background-color: var(--office-accent); - color: white; - font-size: 10px; - font-weight: 600; - width: 15px; - height: 15px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; -} - -.user-menu { - display: flex; - align-items: center; - gap: 12px; - cursor: pointer; - padding: 4px 12px; - border-radius: 6px; - transition: background-color 0.2s ease; -} - -.user-menu:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.user-avatar { - width: 36px; - height: 36px; - border-radius: 50%; - background: linear-gradient(135deg, var(--office-primary), #ff6b35); - color: white; - display: flex; - align-items: center; - justify-content: center; - font-weight: 600; - font-size: 14px; -} - -.user-info { - display: flex; - flex-direction: column; -} - -.user-name { - color: #313c4c; - font-weight: 500; - font-size: 14px; -} - -.user-role { - color: #313c4c; - font-size: 12px; -} - -/* ============================================ - CONTEXT PANEL - ============================================ */ -.context-panel { - position: fixed; - right: -380px; - top: var(--header-height); - bottom: 0; - width: 380px; - background-color: white; - box-shadow: -2px 0 12px rgba(0, 0, 0, 0.1); - z-index: 1015; - transition: right 0.3s ease; - display: flex; - flex-direction: column; - border-left: 1px solid var(--office-border); -} - -.context-panel.open { - right: 0; -} - -.context-header { - background: linear-gradient(135deg, var(--office-primary), #ee6a49); - color: white; - padding: 20px 24px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.context-title { - font-size: 18px; - font-weight: 600; - display: flex; - align-items: center; - gap: 10px; -} - -.context-close { - background: transparent; - border: none; - color: white; - font-size: 20px; - cursor: pointer; - padding: 4px; - border-radius: 4px; - transition: background-color 0.2s ease; -} - -.context-close:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.context-body { - flex: 1; - padding: 24px; - overflow-y: auto; - background-color: #d0d0d0 !important; -} - -.context-section { - margin-bottom: 28px; -} - -.section-title { - font-size: 14px; - font-weight: 600; - color: var(--office-secondary); - margin-bottom: 12px; - text-transform: uppercase; - letter-spacing: 0.5px; - display: flex; - align-items: center; - gap: 8px; -} - -.section-title i { - font-size: 16px; -} - -.info-box { - background-color: #fafafa; - border: 1px solid var(--office-border); - border-radius: 6px; - padding: 16px; - margin-bottom: 12px; -} - -.info-label { - font-size: 12px; - color: #666; - margin-bottom: 4px; -} - -.info-value { - font-size: 15px; - font-weight: 500; - color: var(--office-dark); - line-height: 1.4; -} - -.action-btn { - width: 100%; - padding: 12px; - background-color: white; - border: 1px solid var(--office-border); - border-radius: 6px; - color: var(--office-dark); - font-weight: 500; - text-align: left; - display: flex; - align-items: center; - gap: 10px; - cursor: pointer; - transition: all 0.2s ease; - margin-bottom: 8px; -} - -.action-btn:hover { - background-color: var(--office-hover); - border-color: var(--office-secondary); - color: var(--office-secondary); -} - -.action-btn i { - width: 20px; - text-align: center; - font-size: 18px; -} - -.photo-container { - text-align: center; - padding: 16px; - background-color: #fafafa; - border-radius: 8px; - border: 1px solid var(--office-border); -} - -.patient-photo { - width: 150px; - height: 150px; - border-radius: 8px; - object-fit: cover; - border: 3px solid white; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - cursor: pointer; - transition: transform 0.3s ease; -} - -.patient-photo:hover { - transform: scale(1.05); -} - -/* ============================================ - CONTEXT TOGGLE BUTTON - ============================================ */ -.context-toggle { - position: fixed; - right: 24px; - bottom: 24px; - width: 56px; - height: 56px; - border-radius: 50%; - background: linear-gradient(135deg, var(--office-primary), #ff6b35); - color: white; - border: none; - box-shadow: 0 4px 12px rgba(183, 71, 42, 0.3); - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - z-index: 1010; - transition: all 0.3s ease; -} - -.context-toggle:hover { - transform: translateY(-2px); - box-shadow: 0 6px 16px rgba(183, 71, 42, 0.4); -} - -/* ============================================ - TEST MODE INDICATOR - ============================================ */ -.test-indicator { - background: linear-gradient(45deg, #ffd700, #ffed4e); - color: #8a6d3b; - padding: 4px 12px; - border-radius: 4px; - font-size: 12px; - font-weight: 600; - display: inline-flex; - align-items: center; - gap: 6px; - margin-left: 12px; - animation: pulse 2s infinite; -} - -@keyframes pulse { - 0% { opacity: 1; } - 50% { opacity: 0.7; } - 100% { opacity: 1; } -} - -/* ============================================ - LANGUAGE SELECTOR - ============================================ */ -.language-selector { - display: flex; - align-items: center; - gap: 8px; - padding: 6px 12px; - background-color: rgba(255, 255, 255, 0.1); - border-radius: 4px; - cursor: pointer; - transition: background-color 0.2s ease; - color: #313c4c; -} - -.language-selector:hover { - background-color: rgba(255, 255, 255, 0.2); -} - -.language-flag { - width: 24px; - height: 16px; - object-fit: cover; - border-radius: 2px; -} - -/* ============================================ - MODAL CUSTOMIZATION - ============================================ */ -.modal-office .modal-header { - background: linear-gradient(135deg, var(--office-secondary), #1e4a8b); - color: white; - border-bottom: none; -} - -.modal-office .modal-title { - font-weight: 600; -} - -/* Force le modal et son voile noir au-dessus de tout */ -.modal-office { - z-index: 1060 !important; -} - -/* Le backdrop (le fond noir) doit aussi être remonté */ -.modal-backdrop { - z-index: 1055 !important; -} - -.modal.show { z-index: 2000; } -.modal-backdrop.show { z-index: 1999; } - -/* ============================================ - RESPONSIVE DESIGN - ============================================ */ -@media (max-width: 1200px) { - .app-sidebar { - width: var(--sidebar-collapsed); - } - .app-main { - margin-left: var(--sidebar-collapsed); - } - - .nav-text, - .nav-title, - .nav-badge, - .nav-arrow { - display: none; - } - - .nav-link { - justify-content: center; - padding: 16px; - } - - .nav-link i { - margin-right: 0; - font-size: 20px; - } - - .nav-submenu .nav-link { - padding: 12px; - justify-content: center; - } - - .nav-submenu .nav-link::before { - display: none; - } - - .context-panel { - width: 100%; - right: -100%; - } -} -/**/ -/* Mobile — UNE SEULE définition */ -@media (max-width: 768px) { - .app-sidebar { transform: translateX(-100%); width: var(--sidebar-width); } - .app-sidebar.show { transform: translateX(0); } - .app-main { margin-left: 0; } - - .nav-bar { left: 0; border-radius: 0; top: var(--header-height); } - .nav-bar > .nav-tabs { padding: 0 16px; } - - /* Garder +8px ici pour fermer l’écart (rouge) */ - .content-area { padding: calc(var(--header-height) + 56px + 8px) 16px 16px 16px; max-width: 100%; } - .content-card { border-radius: 8px; margin: 8px 0 16px 0; /* 8px en haut, 16px en bas */ } - .header-content { padding: 0 16px; } - .user-info { display: none; } - - .accordion-header, .accordion-header i, .accordion-header span { - font-size: 1.8rem !important; - font-weight: bold !important; - } - - .accordion-title { - font-size: 0.9rem !important; - } - - .financial-item { - border-right: none !important; - border-bottom: 1px solid var(--office-border); - } - - .editor-paper { - padding: 1rem !important; - font-size: 9pt; - } - - .chart-container { - height: 60vh; - } - - .card-header { - flex-direction: column; - align-items: flex-start !important; - } - - .btn-export { - margin-top: 0.5rem; - align-self: flex-end; - } -} - -/* Écrans larges : mêmes insets pour nav-tabs et content-area */ -@media (min-width: 1400px) { - .content-area { - padding-left: calc((100vw - 1400px) / 2); - padding-right: calc((100vw - 1400px) / 2); - } -} - -/* ============================================ - SCROLLBAR STYLING - ============================================ */ -.app-sidebar::-webkit-scrollbar, -.context-body::-webkit-scrollbar { - width: 6px; -} - -.app-sidebar::-webkit-scrollbar-track, -.context-body::-webkit-scrollbar-track { - background: rgba(255, 255, 255, 0.1); - border-radius: 3px; -} - -.app-sidebar::-webkit-scrollbar-thumb, -.context-body::-webkit-scrollbar-thumb { - background: rgba(255, 255, 255, 0.3); - border-radius: 3px; -} - -.app-sidebar::-webkit-scrollbar-thumb:hover, -.context-body::-webkit-scrollbar-thumb:hover { - background: rgba(255, 255, 255, 0.4); -} - -/* ============================================ - STYLE DE SCROLLBAR POUR NAV-TABS - ============================================ */ -.nav-tabs::-webkit-scrollbar { - height: 4px; -} - -.nav-tabs::-webkit-scrollbar-track { - background: rgba(0, 0, 0, 0.05); - border-radius: 2px; -} - -.nav-tabs::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.2); - border-radius: 2px; -} - -.nav-tabs::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, 0.3); -} - -/*Accueil*/ -.container { padding: 0 25px 25px 25px 25px; } -h1 { margin-bottom: 20px; } -.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; } -.card { - background: #fff; - padding: 20px; - border-radius: 8px; - box-shadow: 0 2px 6px rgba(0,0,0,.05); -} -.card h3 { margin: 0 0 10px; font-size: 14px; color: #666; } -.card .value { font-size: 1.0rem; font-weight: bold; } - -.grid-1{display:grid; grid-template-rows:auto; margin-top:25px;} -.grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap:20px; margin-top:25px; } - - -ul { list-style:none; padding:0; margin:0; } -li { padding:10px 0; border-bottom:1px solid #eee; } -li i { margin-right:10px; color:#007bff; } - -.alert i { color:#ff9800; } - -.chart { - height: 190px; - background:#eef2f7; - border-radius:6px; - display:flex; - align-items:center; - justify-content:center; - color:#888; - font-style:italic; - min-height: 315px; -} - -/* Style pour les sous-détails dans les KPIs */ -.sub-values { - margin-top: 10px; - padding-top: 10px; - border-top: 1px solid #eee; /* Fine séparation pour l'harmonie */ -} - -.sub-item { - display: flex; - justify-content: space-between; - font-size: 12px; /* Plus petit pour ne pas voler la vedette au KPI principal */ - color: #666; - line-height: 1.6; -} - -.sub-item strong { - color: #333; -} - -.accordion-section { - margin-bottom: 2px; - border: 1px solid #ddd; - border-radius: 5px; - overflow: hidden; -} - -.accordion-header { - display: flex; - align-items: center; - padding: 12px 15px; - background-color: #f1f5fc; - cursor: pointer; - font-weight: bold; - font-size: 1.1rem; - transition: background-color 0.3s; - margin: 0; -} - -.accordion-header:hover { - background-color: #e9ecef; -} - -.accordion-header.active { - background-color: #e2e6ea; -} - -.accordion-header i:first-child { - margin-right: 10px; - font-size: 1.2rem; -} - -.accordion-title { - flex-grow: 1; -} - -.accordion-icon { - margin-left: auto; - transition: transform 0.3s ease; -} - -.accordion-header.active .accordion-icon { - transform: rotate(180deg); -} - -.accordion-content { - display: none; - padding: 2px; - background-color: #fff; - border-top: 1px solid #ddd; -} - -.tab-container { - width: 100%; - overflow: auto; -} - -.table td.text-end, .table th.text-end { - white-space: nowrap !important; - min-width: 110px; /* Légèrement augmenté pour les gros montants */ - padding-left: 15px !important; - padding-right: 15px !important; /* Ajout crucial pour l'équilibre visuel */ - font-family: 'Courier New', Courier, monospace; /* Optionnel: police mono pour aligner les décimales */ -} - -/* Global Container */ -#div_accueil, -#div_police, -#div_texte_cp, -#div_emission, -#div_colleges_police, -#div_ajout_adherent, -#div_avenant, -#div_liste_adherent, -#div_adherent, -#div_liste { - background-color: var(--office-light); - color: var(--office-dark); - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; -} - -/* Card Styling */ -#div_accueil .card, -#div_police .card, -#div_texte_cp .card, -#div_emission .card, -#div_colleges_police .card, -#div_ajout_adherent .card, -#div_avenant .card, -#div_liste_adherent .card, -#div_adherent .card, -#div_liste .card{ - border: 1px solid var(--office-border); - border-radius: 2px; /* Office style is more rectangular */ -} - -#div_police .card-header, -#div_texte_cp .card-header, -#div_emission .card-header, -#div_colleges_police .card-header, -#div_ajout_adherent .card-header, -#div_avenant .card-header, -#div_liste_adherent .card-header -#div_adherent .card-header, -#div_adherent .card-header{ - border-bottom: 1px solid var(--office-border) !important; - background-color: white; - color: var(--office-dark); - border-bottom: none; -} - -/* Form Controls */ -.form-label { - color: var(--office-primary); - margin-bottom: 2px; - font-size: 0.75rem; -} - -.form-control { - border-radius: 2px; - border: 1px solid var(--office-border); - font-size: 0.9rem; - padding: 0.5rem 0.75rem; -} - -.form-control[readonly] { - background-color: var(--office-warm-bg); - border-color: var(--office-common); - box-shadow: inset 0 1px 2px rgba(0,0,0,0.02); - color: #555; - font-weight: 500; -} - -/* Status Boxes (Custom) */ -.status-box { - border: 1px solid var(--office-border); - padding: 8px; - text-align: center; - background: white; - display: flex; - flex-direction: column; - border-radius: 2px; -} - -.status-box.active { - background-color: var(--office-secondary); - color: white; - border-color: var(--office-secondary); -} - -.status-box small { - font-size: 0.65rem; - text-transform: uppercase; - display: block; -} - -.status-box span { - font-weight: bold; - font-size: 1rem; -} - -/* Financial Footer */ -.financial-item { - transition: background 0.3s; -} - -.financial-item:hover { - background-color: var(--office-hover); -} - -/* Buttons */ -.btn-primary { - background-color: var(--office-primary); - border-color: var(--office-primary); -} - -.btn-secondary { - background-color: var(--office-secondary); - border-color: var(--office-secondary); -} - -.btn-outline-office { - color: var(--office-secondary); - border-color: var(--office-secondary); -} - -.btn-outline-office:hover { - background-color: var(--office-secondary); - color: white; -} - -/* Tables */ -.custom-table thead th { - background-color: var(--office-common); - border-bottom: 2px solid var(--office-primary); - color: var(--office-dark); - font-weight: 600; - font-size: 0.8rem; - padding: 12px; -} - -.custom-table tbody td { - padding: 10px 12px; - border-bottom: 1px solid var(--office-border); -} - -/* Datepicker Specific */ -.datepicker { - border-left: 3px solid var(--office-primary) !important; - font-weight: bold; -} - -/* Styles spécifiques à l'éditeur de texte CP */ - -/* Effet "Feuille de papier" pour le textarea */ -.editor-paper { - background-color: #ffffff !important; - background-image: - linear-gradient(#f1f1f1 1px, transparent 1px); - background-size: 100% 2.5rem; /* Simule des lignes d'écriture si besoin */ - line-height: 2.5rem; - padding: 2rem !important; - border: 1px solid var(--office-border) !important; - border-radius: 0; - font-family: 'Consolas', 'Monaco', 'Courier New', monospace; /* Police technique et lisible */ - color: var(--office-dark); - resize: vertical; - transition: all 0.3s ease; -} - -.editor-paper:focus { - outline: none; - box-shadow: 0 0 15px rgba(0,0,0,0.1) !important; - border-color: var(--office-secondary) !important; /* Focus bleu Office */ -} - -/* Bouton Enregistrer - Style Bleu Office */ -#div_texte_cp .btn-secondary { - background-color: var(--office-secondary) !important; - border-color: var(--office-secondary) !important; - border-radius: 2px; - transition: transform 0.2s; -} - -#div_texte_cp .btn-secondary:hover { - background-color: #1e4275 !important; - transform: translateY(-1px); -} - -/* Conteneur de l'éditeur */ -.editor-container { - background: white; - border-radius: 2px; - position: relative; -} - -/* Style Table Quittance - Thème Office */ - -.custom-quittance-table thead th { - background-color: var(--office-primary) !important; /* Orange PowerPoint */ - color: white; - font-size: 0.75rem; - text-transform: uppercase; - letter-spacing: 0.5px; - border: none; - padding: 12px 8px; -} - -.custom-quittance-table tbody td { - font-size: 0.85rem; - border-bottom: 1px solid var(--office-border); - padding: 10px 8px; -} - -/* Alternance de couleurs subtile */ -.custom-quittance-table tbody tr:nth-child(even) { - background-color: var(--office-primary-lighter); -} - -/* Alignements spécifiques */ -.text-end { text-align: right !important; } -.text-center { text-align: center !important; } - -/* Modal Styles */ -.bg-office-blue { - background-color: var(--office-secondary) !important; -} - -.btn-office-gray { - background-color: var(--office-common); - color: var(--office-dark); - border: 1px solid var(--office-border); -} - -/* Animation au chargement (nécessite Animate.css ou transition simple) */ -.animate__fadeIn { - animation: fadeIn 0.5s ease-in; -} - -@keyframes fadeIn { - from { opacity: 0; transform: translateY(10px); } - to { opacity: 1; transform: translateY(0); } -} - -/* Boutons d'action dans le tableau */ -.custom-quittance-table .btn-group .btn { - padding: 0.25rem 0.5rem; - border-color: var(--office-border); -} - -.custom-quittance-table .btn-group .btn:hover { - background-color: var(--office-hover); -} - -.custom-quittance-table .btn-link { - color: var(--office-secondary); -} - -/* Footer de table plus marqué */ -.custom-quittance-table tfoot { - background-color: var(--office-light) !important; - border-top: 2px solid var(--office-secondary); -} - -/* Background spécifique pour la carte récapitulative TTC */ -.bg-office-primary-lighter { - background-color: var(--office-primary-lighter); -} - -/* Header bleu type Office */ -.bg-office-blue { - background-color: var(--office-secondary) !important; -} - -/* Style spécifique pour le footer de la table émission */ -.custom-quittance-table tfoot.table-dark { - background-color: var(--office-dark) !important; - border-top: 3px solid var(--office-primary); -} - -@media print { - .btn, .modal, .sr-only { display: none !important; } - .card { border: 1px solid #ddd !important; box-shadow: none !important; } -} - -/* Style Table Collèges - Vision Office 365 */ - -.custom-college-table thead th { - background-color: var(--office-common) !important; - color: var(--office-dark) !important; - font-size: 0.65rem; - font-weight: 800; - text-transform: uppercase; - border-bottom: 2px solid var(--office-primary); - vertical-align: middle; - padding: 10px 5px; -} - -.custom-college-table tbody td { - font-size: 0.75rem; /* Compact pour tenir toutes les colonnes */ - white-space: nowrap; - padding: 8px 5px; -} - -/* Séparateurs verticaux pour groupes de données (Nb, HT, TTC) */ -.border-start { - border-left: 1px solid var(--office-border) !important; -} - -/* Style des boutons de montant (Action principale) */ -.custom-college-table .btn-primary { - background-color: var(--office-secondary); - border: none; - font-size: 0.75rem; -} - -.custom-college-table .btn-primary:hover { - background-color: var(--office-primary); - transform: scale(1.05); -} - -/* Footer de table sombre type Excel Premium */ -.custom-college-table tfoot { - border-top: 3px solid var(--office-primary); - background-color: var(--office-dark) !important; -} - -.custom-college-table tfoot td { - padding: 12px 5px; -} - -/* Badge de catégorie épuré */ -.badge.rounded-pill { - font-weight: 600; - padding: 5px 10px; -} - -/* Style Recherche Individuelle */ - -#div_familiale .form-select, -#div_familiale .form-control { - border: 1px solid var(--office-border); - transition: all 0.2s ease; - border-radius: 4px; -} - -#div_familiale .form-select:focus, -#div_familiale .form-control:focus { - border-color: var(--office-secondary); - box-shadow: 0 0 0 0.25rem rgba(43, 87, 154, 0.1); -} - -/* Groupement d'input avec icônes */ -.input-group-text { - border: 1px solid var(--office-border); - color: #adb5bd; -} - -/* Boutons personnalisés */ -#div_familiale .btn-primary { - background-color: var(--office-secondary) !important; - border: none; - border-radius: 4px; -} - -#div_familiale .btn-primary:hover { - background-color: #1a3a6b !important; - transform: translateY(-1px); -} - -#div_familiale .btn-outline-secondary { - color: var(--office-secondary); - border-color: var(--office-secondary); - border-radius: 4px; -} - -#div_familiale .btn-outline-secondary:hover { - background-color: var(--office-secondary); - color: white; -} - -/* Badge spécifique Primes non facturées */ -.badge.bg-warning { - background-color: #fff3cd !important; - color: #856404 !important; - border: 1px solid #ffeeba !important; - font-size: 0.9rem; - padding: 8px 12px; -} - -/* Style pour le sélecteur de date focus */ -.datepicker:focus { - border-color: var(--office-secondary); - background-color: #f8faff; -} - -/* Animation de l'affichage de la prime */ -#div_prime:not(:empty) { - border: 2px dashed var(--office-primary-lighter); - padding: 15px; - border-radius: 8px; - background-color: white; -} - -/* Styles communs pour tous les graphiques */ -.chart-container { - position: relative; - width: 100%; - min-height: 300px; -} - -.legend-text { - vertical-align: middle; -} - -.btn-export { - padding: 0.25rem 0.5rem; - font-size: 0.75rem; -} +.app-sidebar,body{overflow-x:hidden}.app-logo,.nav-link,.nav-tab{text-decoration:none}.custom-table thead th,body{background-color:var(--office-common)}.custom-quittance-table thead th,.nav-title,.section-title{letter-spacing:.5px;text-transform:uppercase}.app-header,.custom-quittance-table tfoot{background-color:var(--office-light)!important}.custom-college-table thead th,.nav-title,.section-title,.status-box small{text-transform:uppercase}:root{--office-primary:#b7472a;--office-secondary:#2b579a;--office-accent:#107c10;--office-light:#f3f2f1;--office-common:#e6e6e6;--office-dark:#323130;--office-border:#d0d0d0;--office-hover:#f0f0f0;--office-card:#ffffff;--sidebar-width:260px;--sidebar-collapsed:85px;--header-height:64px;--transition-speed:0.3s;--breakpoint-tablet:1200px;--breakpoint-mobile:768px;--office-primary-light:rgba(183, 71, 42, 0.08);--office-primary-lighter:rgba(183, 71, 42, 0.04);--office-primary-border:rgba(183, 71, 42, 0.15);--office-warm-bg:#fefcfb;--office-card-highlight:#fff9f8;--content-margin-left:calc(var(--sidebar-width) + 24px);--content-margin-right:24px;--container-max:1400px;--container-pad:24px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Segoe UI','Segoe UI Web (West European)',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif;color:var(--office-dark);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-header{height:var(--header-height);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 2px 10px rgba(0,0,0,.1);position:fixed;top:0;left:0;right:0;z-index:1030}.app-sidebar,.nav-bar{top:var(--header-height)}.user-menu.dropdown-toggle{display:flex;align-items:center;outline:0;box-shadow:none!important}.header-content,.user-menu{align-items:center;display:flex}.user-menu.dropdown-toggle::after,body.sidebar-collapsed .app-sidebar .nav-link .nav-text{display:none}#userDropdownBtn[aria-expanded=true] .user-arrow{transform:rotate(180deg);color:var(--bs-primary)}.dropdown-menu[data-bs-popper]{margin-top:15px!important}.header-content{justify-content:space-between;height:100%;padding:0 24px}#userDropdownBtn{gap:8px}.user-name{font-size:.85rem!important;margin-bottom:-2px}.user-role{font-size:1.15rem!important;opacity:.8}.user-avatar{width:32px!important;height:32px!important;display:flex;align-items:center;justify-content:center}.user-arrow{transition:transform .3s;color:#6c757d;font-size:.7rem;margin-left:4px!important}.dropdown-menu{z-index:2000!important;min-width:220px;border:1px solid rgba(0,0,0,.1);padding:.25rem 0}.dropdown-item{padding:.4rem 1rem;font-size:.85rem}.dropdown-header{padding:.5rem 1rem}.header-controls,.logo-container{display:flex;align-items:center;gap:16px}.app-logo{display:flex;align-items:center;color:#313c4c;font-weight:600;font-size:20px}.app-logo img{height:36px}.notification-btn i{font-size:15pt!important}#lienlogo img{width:50px;max-height:50px}.app-sidebar{width:var(--sidebar-width)!important;background:linear-gradient(180deg,var(--office-primary) 0,#a53e24 100%);position:fixed;left:0;bottom:0;z-index:1020;box-shadow:2px 0 8px rgba(0,0,0,.1);transition:width var(--transition-speed) ease;overflow-y:auto}.nav-link,body.sidebar-collapsed .app-sidebar .nav-link{position:relative}.app-sidebar::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 10% 20%,rgba(255,255,255,.03) 0,transparent 20%),radial-gradient(circle at 90% 80%,rgba(255,255,255,.03) 0,transparent 20%);pointer-events:none}.app-sidebar .nav-link .nav-text{display:inline;opacity:1;transition:opacity var(--transition-speed) ease}body.sidebar-collapsed .app-sidebar .nav-link:hover::after{content:attr(data-label);position:absolute;top:50%;left:100%;transform:translateY(-50%);background:rgba(0,0,0,.85);color:#fff;padding:6px 12px;border-radius:4px;white-space:nowrap;font-size:14px;margin-left:8px;box-shadow:0 2px 6px rgba(0,0,0,.2);opacity:0;transition:opacity var(--transition-speed) ease,transform var(--transition-speed) ease;z-index:2000;opacity:1;transform:translateY(-50%) translateX(5px)}body.sidebar-collapsed .nav-arrow,body.sidebar-collapsed .nav-submenu{display:none!important}body.sidebar-collapsed .nav-item .nav-link{display:flex;justify-content:center;padding-left:0;padding-right:0}.sidebar-nav{padding:24px 0}.nav-section{margin-bottom:32px;padding:0 20px}.nav-title{color:rgba(255,255,255,.7);font-size:12px;font-weight:600;margin-bottom:12px;padding:0 16px}.nav-item{margin-bottom:4px}.nav-link{display:flex;align-items:center;color:rgba(255,255,255,.85);padding:12px 16px;border-radius:6px;transition:.2s;overflow:hidden}.nav-link:hover{background-color:rgba(255,255,255,.1);color:#fff}.nav-link.active{background-color:rgba(255,255,255,.15);color:#fff;font-weight:500}.nav-link i{width:24px;font-size:18px;margin-right:12px;text-align:center}.nav-tab i,.section-title i{font-size:16px}.nav-text{flex:1;font-size:14px}.nav-bar,.nav-bar>.nav-tabs{align-items:center;display:flex}.nav-badge{background-color:var(--office-accent);color:#fff;font-size:11px;padding:2px 6px;border-radius:10px;margin-left:8px}.nav-arrow{font-size:12px;opacity:.7;transition:transform .2s}.nav-link[aria-expanded=true] .nav-arrow{transform:rotate(90deg);transition:transform .3s}.nav-submenu{background-color:rgba(0,0,0,.1);border-radius:6px;margin-top:4px;padding:8px 0}.nav-submenu .nav-link{padding:8px 16px 8px 52px;font-size:13px}.nav-submenu .nav-link::before{content:'•';position:absolute;left:36px;opacity:.6}.app-main{margin-left:var(--sidebar-width);padding-top:var(--header-height);min-height:100vh;transition:margin-left var(--transition-speed) ease,width var(--transition-speed) ease;background-color:var(--office-light);width:calc(100% - var(--sidebar-width))}body.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)!important;width:calc(100% - var(--sidebar-collapsed))!important}.toggle-sidebar-btn{font-size:20px;padding-left:10px;cursor:pointer}.nav-bar,ul{padding:0;margin:0}.nav-bar.collapsed,body.sidebar-collapsed .nav-bar{left:var(--sidebar-collapsed)!important}.nav-bar{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05);border:1px solid var(--office-border);position:fixed;left:var(--sidebar-width);right:0;z-index:1000;height:56px;transition:left var(--transition-speed) ease}.nav-bar>.nav-tabs{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad);height:100%;gap:4px;overflow-x:auto}.card-header,.nav-tab{color:var(--office-dark);align-items:center}.nav-tab{display:inline-flex;padding:10px 18px;background-color:transparent;border-radius:6px;font-size:14px;font-weight:500;white-space:nowrap;transition:.2s;border:1px solid transparent;height:40px}.header-btn,.user-menu{transition:background-color .2s;cursor:pointer}.nav-tab:hover{background-color:var(--office-hover);color:var(--office-secondary)}.nav-tab.active,.status-box.active{background-color:var(--office-secondary);color:#fff;border-color:var(--office-secondary)}.nav-tab i{margin-right:8px}.nav-bar>.nav-tabs::-webkit-scrollbar{height:10px}.nav-bar>.nav-tabs::-webkit-scrollbar-track{background:#f1f1f1;border-radius:8px}.nav-bar>.nav-tabs::-webkit-scrollbar-thumb{background:var(--office-common);border-radius:8px}.nav-bar>.nav-tabs::-webkit-scrollbar-thumb:hover{background:#97999b}body.sidebar-collapsed .app-sidebar{width:var(--sidebar-collapsed)!important}.toggle-sidebar-btn[role=button]{outline:0}.content-card{background:var(--office-card);border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.05);margin-top:8px}.content-area{padding:calc(var(--header-height) + 56px) 24px 24px 24px;max-width:1400px;margin:24px auto!important}.card-header{background-color:#fafafa;border-bottom:1px solid var(--office-border);padding:20px 24px;font-weight:600;font-size:18px;display:flex;justify-content:space-between}.notification-badge,.user-menu{display:flex;align-items:center}.card-body{padding:24px;background-color:var(--office-card)}.header-btn{background:0 0;border:none;color:#313c4c;padding:8px;border-radius:4px;position:relative}.context-close:hover,.header-btn:hover,.user-menu:hover{background-color:rgba(255,255,255,.1)}.notification-badge{position:absolute;top:2px;right:2px;background-color:var(--office-accent);color:#fff;font-size:10px;font-weight:600;width:15px;height:15px;border-radius:50%;justify-content:center}.user-menu{gap:12px;padding:4px 12px;border-radius:6px}.context-header,.user-avatar{align-items:center;display:flex}.user-avatar{border-radius:50%;background:linear-gradient(135deg,var(--office-primary),#ff6b35);color:#fff;justify-content:center;font-weight:600;font-size:14px}.user-name,.user-role{color:#313c4c}.user-info{display:flex;flex-direction:column}.user-name{font-weight:500}.context-panel{position:fixed;right:-380px;top:var(--header-height);bottom:0;width:380px;background-color:#fff;box-shadow:-2px 0 12px rgba(0,0,0,.1);z-index:1015;transition:right .3s;display:flex;flex-direction:column;border-left:1px solid var(--office-border)}.context-panel.open{right:0}.context-header{background:linear-gradient(135deg,var(--office-primary),#ee6a49);color:#fff;padding:20px 24px;justify-content:space-between}.context-title{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.context-close{background:0 0;border:none;color:#fff;font-size:20px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.context-body{flex:1;padding:24px;overflow-y:auto;background-color:#d0d0d0!important}.action-btn,.section-title{align-items:center;display:flex}.context-section{margin-bottom:28px}.section-title{font-size:14px;font-weight:600;color:var(--office-secondary);margin-bottom:12px;gap:8px}.info-box{background-color:#fafafa;border:1px solid var(--office-border);border-radius:6px;padding:16px;margin-bottom:12px}.info-label{font-size:12px;color:#666;margin-bottom:4px}.info-value{font-size:15px;font-weight:500;color:var(--office-dark);line-height:1.4}.action-btn{width:100%;padding:12px;background-color:#fff;border:1px solid var(--office-border);border-radius:6px;color:var(--office-dark);font-weight:500;text-align:left;gap:10px;cursor:pointer;transition:.2s;margin-bottom:8px}.modal-office .modal-title,.test-indicator{font-weight:600}.action-btn:hover{background-color:var(--office-hover);border-color:var(--office-secondary);color:var(--office-secondary)}.action-btn i{width:20px;text-align:center;font-size:18px}.photo-container{text-align:center;padding:16px;background-color:#fafafa;border-radius:8px;border:1px solid var(--office-border)}.patient-photo{width:150px;height:150px;border-radius:8px;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 8px rgba(0,0,0,.1);cursor:pointer;transition:transform .3s}.patient-photo:hover{transform:scale(1.05)}.context-toggle{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--office-primary),#ff6b35);color:#fff;border:none;box-shadow:0 4px 12px rgba(183,71,42,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;z-index:1010;transition:.3s}.context-toggle:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(183,71,42,.4)}.test-indicator{background:linear-gradient(45deg,gold,#ffed4e);color:#8a6d3b;padding:4px 12px;border-radius:4px;font-size:12px;display:inline-flex;align-items:center;gap:6px;margin-left:12px;animation:2s infinite pulse}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}.language-selector{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:rgba(255,255,255,.1);border-radius:4px;cursor:pointer;transition:background-color .2s;color:#313c4c}.language-selector:hover{background-color:rgba(255,255,255,.2)}.language-flag{width:24px;height:16px;object-fit:cover;border-radius:2px}.modal-office .modal-header{background:linear-gradient(135deg,var(--office-secondary),#1e4a8b);color:#fff;border-bottom:none}.modal-office{z-index:1060!important}.modal-backdrop{z-index:1055!important}.modal.show{z-index:2000}.modal-backdrop.show{z-index:1999}@media (max-width:1200px){.nav-bar{left:var(--sidebar-collapsed)}.content-area{padding-left:24px;padding-right:24px}.app-sidebar{width:var(--sidebar-collapsed)}.app-main{margin-left:var(--sidebar-collapsed)}.nav-arrow,.nav-badge,.nav-submenu .nav-link::before,.nav-text,.nav-title{display:none}.nav-link{justify-content:center;padding:16px}.nav-link i{margin-right:0;font-size:20px}.nav-submenu .nav-link{padding:12px;justify-content:center}.context-panel{width:100%;right:-100%}}@media (max-width:768px){.app-sidebar{transform:translateX(-100%);width:var(--sidebar-width)}.app-sidebar.show{transform:translateX(0)}.app-main{margin-left:0}.nav-bar{left:0;border-radius:0;top:var(--header-height)}.header-content,.nav-bar>.nav-tabs{padding:0 16px}.content-area{padding:calc(var(--header-height) + 56px + 8px) 16px 16px 16px;max-width:100%}.content-card{border-radius:8px;margin:8px 0 16px}.user-info{display:none}.accordion-header,.accordion-header i,.accordion-header span{font-size:1.8rem!important;font-weight:700!important}.accordion-title{font-size:.9rem!important}.financial-item{border-right:none!important;border-bottom:1px solid var(--office-border)}.editor-paper{padding:1rem!important;font-size:9pt}.chart-container{height:60vh}.card-header{flex-direction:column;align-items:flex-start!important}.btn-export{margin-top:.5rem;align-self:flex-end}}.grid-1,.grid-2{display:grid;margin-top:25px}@media (min-width:1400px){.content-area{padding-left:calc((100vw - 1400px)/ 2);padding-right:calc((100vw - 1400px)/ 2)}}.app-sidebar::-webkit-scrollbar,.context-body::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-track,.context-body::-webkit-scrollbar-track{background:rgba(255,255,255,.1);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb,.context-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb:hover,.context-body::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.4)}.nav-tabs::-webkit-scrollbar{height:4px}.nav-tabs::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:2px}.nav-tabs::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:2px}.nav-tabs::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.container{padding:0 25px 25px}h1{margin-bottom:20px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.05)}.card h3{margin:0 0 10px;font-size:14px;color:#666}.card .value{font-size:1rem;font-weight:700}.grid-1{grid-template-rows:auto}.grid-2{grid-template-columns:1fr 1fr;gap:20px}ul{list-style:none}li{padding:10px 0;border-bottom:1px solid #eee}li i{margin-right:10px;color:#007bff}.alert i{color:#ff9800}.chart{height:190px;background:#eef2f7;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#888;font-style:italic;min-height:315px}.sub-values{margin-top:10px;padding-top:10px;border-top:1px solid #eee}.sub-item{display:flex;justify-content:space-between;font-size:12px;color:#666;line-height:1.6}.sub-item strong{color:#333}.accordion-section{margin-bottom:2px;border:1px solid #ddd;border-radius:5px;overflow:hidden}.accordion-header{display:flex;align-items:center;padding:12px 15px;background-color:#f1f5fc;cursor:pointer;font-weight:700;font-size:1.1rem;transition:background-color .3s;margin:0}.accordion-header:hover{background-color:#e9ecef}.accordion-header.active{background-color:#e2e6ea}.accordion-header i:first-child{margin-right:10px;font-size:1.2rem}.accordion-title{flex-grow:1}.accordion-icon{margin-left:auto;transition:transform .3s}.accordion-header.active .accordion-icon{transform:rotate(180deg)}.accordion-content{display:none;padding:2px;background-color:#fff;border-top:1px solid #ddd}.tab-container{width:100%;overflow:auto}.table td.text-end,.table th.text-end{white-space:nowrap!important;min-width:110px;padding-left:15px!important;padding-right:15px!important;font-family:'Courier New',Courier,monospace}#div_accueil,#div_adherent,#div_ajout_adherent,#div_avenant,#div_colleges_police,#div_emission,#div_liste,#div_liste_adherent,#div_police,#div_texte_cp{background-color:var(--office-light);color:var(--office-dark);font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif}#div_accueil .card,#div_adherent .card,#div_ajout_adherent .card,#div_avenant .card,#div_colleges_police .card,#div_emission .card,#div_liste .card,#div_liste_adherent .card,#div_police .card,#div_texte_cp .card{border:1px solid var(--office-border);border-radius:2px}#div_adherent .card-header,#div_ajout_adherent .card-header,#div_avenant .card-header,#div_colleges_police .card-header,#div_emission .card-header,#div_liste_adherent .card-header #div_adherent .card-header,#div_police .card-header,#div_texte_cp .card-header{border-bottom:1px solid var(--office-border)!important;background-color:#fff;color:var(--office-dark);border-bottom:none}.form-label{color:var(--office-primary);margin-bottom:2px;font-size:.75rem}.form-control{border-radius:2px;border:1px solid var(--office-border);font-size:.9rem;padding:.5rem .75rem}.form-control[readonly]{background-color:var(--office-warm-bg);border-color:var(--office-common);box-shadow:inset 0 1px 2px rgba(0,0,0,.02);color:#555;font-weight:500}.status-box{border:1px solid var(--office-border);padding:8px;text-align:center;background:#fff;display:flex;flex-direction:column;border-radius:2px}.status-box small{font-size:.65rem;display:block}.status-box span{font-weight:700;font-size:1rem}.financial-item{transition:background .3s}.custom-quittance-table .btn-group .btn:hover,.financial-item:hover{background-color:var(--office-hover)}.btn-primary{background-color:var(--office-primary);border-color:var(--office-primary)}.btn-secondary,.custom-college-table .btn-primary{background-color:var(--office-secondary)}.btn-outline-office,.btn-secondary{border-color:var(--office-secondary)}.btn-outline-office{color:var(--office-secondary)}#div_familiale .btn-outline-secondary:hover,.btn-outline-office:hover{background-color:var(--office-secondary);color:#fff}.custom-table thead th{border-bottom:2px solid var(--office-primary);color:var(--office-dark);font-weight:600;font-size:.8rem;padding:12px}.custom-table tbody td{padding:10px 12px;border-bottom:1px solid var(--office-border)}.datepicker{border-left:3px solid var(--office-primary)!important;font-weight:700}.editor-paper{background-color:#fff!important;background-image:linear-gradient(#f1f1f1 1px,transparent 1px);background-size:100% 2.5rem;line-height:2.5rem;padding:2rem!important;border:1px solid var(--office-border)!important;border-radius:0;font-family:Consolas,Monaco,'Courier New',monospace;color:var(--office-dark);resize:vertical;transition:.3s}.editor-paper:focus{outline:0;box-shadow:0 0 15px rgba(0,0,0,.1)!important;border-color:var(--office-secondary)!important}#div_texte_cp .btn-secondary{background-color:var(--office-secondary)!important;border-color:var(--office-secondary)!important;border-radius:2px;transition:transform .2s}#div_texte_cp .btn-secondary:hover{background-color:#1e4275!important;transform:translateY(-1px)}.editor-container{background:#fff;border-radius:2px;position:relative}.custom-quittance-table thead th{background-color:var(--office-primary)!important;color:#fff;font-size:.75rem;border:none;padding:12px 8px}.custom-quittance-table tbody td{font-size:.85rem;border-bottom:1px solid var(--office-border);padding:10px 8px}.bg-office-primary-lighter,.custom-quittance-table tbody tr:nth-child(2n){background-color:var(--office-primary-lighter)}.text-end{text-align:right!important}.text-center{text-align:center!important}.btn-office-gray{background-color:var(--office-common);color:var(--office-dark);border:1px solid var(--office-border)}#div_familiale .btn-primary,.bg-office-blue{background-color:var(--office-secondary)!important}.animate__fadeIn{animation:.5s ease-in fadeIn}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.custom-quittance-table .btn-group .btn{padding:.25rem .5rem;border-color:var(--office-border)}.custom-quittance-table .btn-link{color:var(--office-secondary)}.custom-quittance-table tfoot{border-top:2px solid var(--office-secondary)}.custom-college-table tfoot,.custom-quittance-table tfoot.table-dark{border-top:3px solid var(--office-primary);background-color:var(--office-dark)!important}@media print{.btn,.modal,.sr-only{display:none!important}.card{border:1px solid #ddd!important;box-shadow:none!important}}.custom-college-table thead th{background-color:var(--office-common)!important;color:var(--office-dark)!important;font-size:.65rem;font-weight:800;border-bottom:2px solid var(--office-primary);vertical-align:middle;padding:10px 5px}.custom-college-table tbody td{font-size:.75rem;white-space:nowrap;padding:8px 5px}.border-start{border-left:1px solid var(--office-border)!important}.custom-college-table .btn-primary{border:none;font-size:.75rem}.custom-college-table .btn-primary:hover{background-color:var(--office-primary);transform:scale(1.05)}.custom-college-table tfoot td{padding:12px 5px}.badge.rounded-pill{font-weight:600;padding:5px 10px}#div_familiale .form-control,#div_familiale .form-select{border:1px solid var(--office-border);transition:.2s;border-radius:4px}#div_familiale .form-control:focus,#div_familiale .form-select:focus{border-color:var(--office-secondary);box-shadow:0 0 0 .25rem rgba(43,87,154,.1)}.input-group-text{border:1px solid var(--office-border);color:#adb5bd}#div_familiale .btn-primary{border:none;border-radius:4px}#div_familiale .btn-primary:hover{background-color:#1a3a6b!important;transform:translateY(-1px)}#div_familiale .btn-outline-secondary{color:var(--office-secondary);border-color:var(--office-secondary);border-radius:4px}.badge.bg-warning{background-color:#fff3cd!important;color:#856404!important;border:1px solid #ffeeba!important;font-size:.9rem;padding:8px 12px}.datepicker:focus{border-color:var(--office-secondary);background-color:#f8faff}#div_prime:not(:empty){border:2px dashed var(--office-primary-lighter);padding:15px;border-radius:8px;background-color:#fff}.chart-container{position:relative;width:100%;min-height:300px}.legend-text{vertical-align:middle}.btn-export{padding:.25rem .5rem;font-size:.75rem} \ No newline at end of file diff --git a/Controleur/ControleurConnexion.php b/Controleur/ControleurConnexion.php index 40bb52b..f86e15a 100644 --- a/Controleur/ControleurConnexion.php +++ b/Controleur/ControleurConnexion.php @@ -324,6 +324,7 @@ require_once 'Framework/Localisation.php'; $this->requete->getSession()->setAttribut("numeroClient_C", $utilisateur['numeroClient']); $this->requete->getSession()->setAttribut("nomClient_C", $utilisateur['nomClient']); $this->requete->getSession()->setAttribut("prenomClient_C", $utilisateur['prenomClient']); + $this->requete->getSession()->setAttribut("indicatifTelephone", $utilisateur['indicatifTelephone']); $this->requete->getSession()->setAttribut("idPolice_C", ""); $this->requete->getSession()->setAttribut("numeroPolice_C", ""); @@ -348,7 +349,6 @@ require_once 'Framework/Localisation.php'; $this->requete->getSession()->setAttribut("lienPhoto_C", ""); $this->requete->getSession()->setAttribut("dateEffetBeneficiaire_C", ""); - $_SESSION['photoAssureCrypte'] = ""; $this->requete->getSession()->setAttribut("decede_C", ""); @@ -436,6 +436,7 @@ require_once 'Framework/Localisation.php'; { mkdir($filename, 0700); } + $this->requete->getSession()->setAttribut("dossierSociete", $filename); $this->requete->getSession()->setAttribut("dossierGed", $_SESSION['lienRh_C'].$_SESSION['dossierSociete'].'/Ged/'); @@ -445,6 +446,7 @@ require_once 'Framework/Localisation.php'; $this->requete->getSession()->setAttribut("devise_C", $utilisateur['devise']); $this->requete->getSession()->setAttribut("langSociete", $utilisateur['codeLangueSociete']); + $codeLangue = $_SESSION['lang']; if ($_SESSION['lang']=="en_US") diff --git a/Js/fonctions.js b/Js/fonctions.js index 1dab1d3..2603703 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -64,6 +64,8 @@ $(function() { function raffraichier_gabarit() { + //controleSession(); + $.ajax({ url: $("#racineWeb").val()+"Ajaxgabarit/", success: function(data) @@ -75,12 +77,7 @@ function raffraichier_gabarit() if((codeSociete == undefined || codeSociete <= " ") && vue !="Connexion"){ - const msg = "Votre session a expiré. Vous serez déconnecté."; - const msgEng = "Your session has expired. You will be disconnected."; - - alert_ebene(msg, msgEng); - - window.location.assign($("#racineWeb" ).val()+"Connexion/deconnecter/"); + showMessageDeconnexion(); } }, error: function(errorData) @@ -96,6 +93,37 @@ function raffraichier_gabarit() }); } +function controleSession() { + // Récupérer la durée de session depuis le DOM + const dureeSession = parseInt(document.getElementById('dureeSession')?.value) || 30; + const dureeMinutes = dureeSession * 60 * 1000; // Conversion en millisecondes + + // Vérifier régulièrement l'activité de l'utilisateur + //setInterval(() => { + const derniereAction = sessionStorage.getItem('derniere_action'); + const maintenant = Date.now(); + + // Si inactivité dépassant la durée autorisée + if (derniereAction && (maintenant - derniereAction > dureeMinutes)) { + showMessageDeconnexion(); + } + + //}, 60000); // Vérification toutes les minutes +} + +async function showMessageDeconnexion() +{ + const msg = "Votre session a expiré. Vous serez déconnecté."; + const msgEng = "Your session has expired. You will be disconnected."; + + await alert_ebene(msg, msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + setInterval(() => { + window.location.assign($("#racineWeb" ).val()+"Connexion/deconnecter/"); + }, 20000); + }); +} + /** * GESTION DU MENU BURGER * Gère l'affichage mobile et la fermeture lors d'un clic extérieur. @@ -222,12 +250,12 @@ function closeSwal() { * Affiche une information bilingue. */ -function alert_ebene(msgFr, msgEn) { +async function alert_ebene(msgFr, msgEn) { const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR"; const message = (codeLangue === "en_US") ? msgEn : msgFr; - // Appel via baseSwal - return baseSwal({ + // On attend que l'utilisateur clique sur OK avant de sortir + await baseSwal({ text: message, icon: 'info', confirmButtonText: (codeLangue === "en_US") ? "OK" : "D'accord", @@ -237,6 +265,7 @@ function alert_ebene(msgFr, msgEn) { } + /* function alert_ebene(msgFr, msgEn) { const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR"; @@ -577,7 +606,11 @@ function ajax_context_police_afficher(idPolice) { const msg = "Erreur lors de la préparation du dossier police."; const msgEng = "Error while preparing the policy file."; - alert_ebene(msg, msgEng); + alert_ebene(msg, msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + }, complete: function() { @@ -666,9 +699,12 @@ function imprimer_quittance_client(idQuittance) { const v_msg = "Rien à imprimer !"; const v_msgEng = "Nothing to print!"; - alert_ebene(v_msg, v_msgEng); - - return; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + + return; } /* =================================================== @@ -749,7 +785,11 @@ function assurance_familiale() { v_msg="Ce n\'est pas une police FAMILIALE!"; v_msgEng="This is not a FAMILIY policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -781,7 +821,11 @@ function creer_adherents() { v_msg="Ce n\'est pas une police GROUPE!"; v_msgEng="This is not a GROUP policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -792,8 +836,12 @@ function creer_adherents() { v_msg="Attention! Police résiliée!"; v_msgEng="Warning! Terminated policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -801,8 +849,12 @@ function creer_adherents() { v_msg="Attention! Police suspendue!"; v_msgEng="Warning! Suspended policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -810,7 +862,11 @@ function creer_adherents() { v_msg="Attention! Police annulée!"; v_msgEng="Warning! Canceled policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -828,8 +884,12 @@ function prorater_prime_adherent() { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -1226,8 +1286,12 @@ function prorater_prime_adherent() { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -1257,10 +1321,15 @@ function changer_avenant_incorporation() { v_msg="Veuillez sélectionner un avenant!"; v_msgEng="Please select an Amendment!"; - alert_ebene(v_msg, v_msgEng); - $("#idAvenant").focus(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $("#idAvenant").focus(); + return; + }); + return; + } donnees = 'idAvenant='+idAvenant; @@ -1310,27 +1379,35 @@ function controle_age(dater, codeLienParente) { v_msg="Âge "+age+" supérieur à 65 ans!"; v_msgEng="Age "+age+" over 65!"; - alert_ebene(v_msg, v_msgEng); - return false; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return false; + }); } if ( (codeLienParente=="E")&& (age>21) ) { v_msg="Âge "+age+" => Enfant âgé de plus de 21 ans!"; v_msgEng="Âge "+age+" => Child over 21 years old!"; - alert_ebene(v_msg, v_msgEng); - return false; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return false; + }); } if ( (codeLienParente=="O")&& (age>21) ) { v_msg="Âge "+age+" => Enfant âgé de plus de 21 ans!"; v_msgEng="Âge "+age+" => Child over 21 years old!"; - alert_ebene(v_msg, v_msgEng); - return false; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return false; + }); } return true; @@ -1344,9 +1421,13 @@ function controler_piece_beneficiaire() { v_msg="Veuillez sélection la nature de la pièce!"; v_msgEng="Please select the type of document!"; - alert_ebene(v_msg, v_msgEng); - $("#codeNaturePiece").focus(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $("#codeNaturePiece").focus(); + return; + }); + return; } @@ -1463,8 +1544,12 @@ function creer_avenant() { v_msg="Attention! Police résiliée!"; v_msgEng="Warning! Terminated policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -1472,7 +1557,11 @@ function creer_avenant() { v_msg="Attention! Police annulée!"; v_msgEng="Warning! Canceled policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1489,7 +1578,11 @@ function enregistrer_avenant() { v_msg="Veuillez sélectionner le type d\'avenant!"; v_msgEng="Please select the type of amendment!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1513,9 +1606,13 @@ function enregistrer_avenant() { v_msg="Veuillez revoir la date!"; v_msgEng="Please review the date!"; - alert_ebene(v_msg, v_msgEng); - return; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + + return; } motifavenant=$("#motifavenant").val(); @@ -1524,9 +1621,12 @@ function enregistrer_avenant() { v_msg="Veuillez fournir le motif!"; v_msgEng="Please provide the reason"; - alert_ebene(v_msg, v_msgEng); - return; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } v_msg="Confirmez-vous cet avenant?"; @@ -1675,8 +1775,11 @@ function enregistrer_retrait() { v_msg="Veuillez sélectionner les personnes à retirer!"; v_msgEng="Please select the people to remove!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1719,7 +1822,11 @@ function init_import_assures() { v_msg="Aucun collège!"; v_msgEng="No college!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1730,7 +1837,11 @@ function init_import_assures() { v_msg="Ce n\'est pas une police GROUPE!"; v_msgEng="This is not a GROUP policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1827,8 +1938,11 @@ function creer_beneficiaires() { v_msg="Attention! Police résiliée!"; v_msgEng="Warning! Terminated policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1836,8 +1950,11 @@ function creer_beneficiaires() { v_msg="Attention! Police suspendue!"; v_msgEng="Warning! Suspended policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1845,8 +1962,11 @@ function creer_beneficiaires() { v_msg="Attention! Police annulée!"; v_msgEng="Warning! Canceled policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1856,8 +1976,11 @@ function creer_beneficiaires() { v_msg="Attention! cette famille n\'est pas en vigueur!"; v_msgEng="Warning! this family is not in force!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1890,8 +2013,13 @@ function ebene_init_photo_face() // OK { v_msg="Cettte personne a déjà une face dans le système!"; v_msgEng="This person already has a face in the system!"; - alert_ebene(v_msg, v_msgEng); - $('#message_face').html(""); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $('#message_face').html(""); + return; + }); + return; } re_init_photo_face(); @@ -1922,7 +2050,11 @@ function ebene_enregistrer_photo_face() // OK { v_msg="Veuillez prendre une photo!"; v_msgEng="Please take a photo!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -1948,7 +2080,7 @@ function ebene_enregistrer_photo_face() // OK v_msg="Enrôlement effectué avec succès!"; v_msgEng="Enrollment completed successfully!!"; - //alert_ebene(v_msg, v_msgEng); + setTimeout(() => { window.location.assign($("#racineWeb" ).val()+"Fichebeneficiaire/"+v_idBeneficiaire); }, 1000) @@ -1986,8 +2118,12 @@ function ebene_init_confirm_photo_face() // OK { v_msg="Cettte personne n'a pas encore de face dans le système!"; v_msgEng="This person doesn't have a face in the system yet!"; - alert_ebene(v_msg, v_msgEng); - $('#message_face').html(""); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $('#message_face').html(""); + return; + }); return; } @@ -2017,8 +2153,13 @@ function ebene_confirmer_photo_face() // OK { v_msg="Cette personne n'a pas encore de photo dans le système!"; v_msgEng="This person does not have a photo in the system yet!"; - alert_ebene(v_msg, v_msgEng); - $('#message_face').html(""); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $('#message_face').html(""); + return; + }); + return; } @@ -2027,8 +2168,12 @@ function ebene_confirmer_photo_face() // OK { v_msg="Veuillez prendre une photo!"; v_msgEng="Please take a photo!"; - alert_ebene(v_msg, v_msgEng); - $('#message_face').html(""); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $('#message_face').html(""); + return; + }); return; } @@ -2061,7 +2206,7 @@ function ebene_confirmer_photo_face() // OK $("#okId_face").val("1"); v_msg="Face confirmée!"; v_msgEng="Face confirmed!"; - //alert_ebene(v_msg, v_msgEng); + setTimeout(() => { prestations(); }, 2000) @@ -2093,8 +2238,12 @@ function ebene_supprimer_photo_face() // OK { v_msg="Veuillez saisir un motif!"; v_msgEng="Please enter a reaon!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#motif").focus(); return; } @@ -2106,8 +2255,11 @@ function ebene_supprimer_photo_face() // OK { v_msg="Cette personne n'a pas encore de photo dans le système!"; v_msgEng="This person does not have a photo in the system yet!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -2116,7 +2268,11 @@ function ebene_supprimer_photo_face() // OK { v_msg="Veuillez prendre une photo!"; v_msgEng="Please take a photo!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -2178,7 +2334,7 @@ function ebene_supprimer_photo_face() // OK v_msg="Face supprimée avec succès!"; v_msgEng="Face removed successfully!"; - //alert_ebene(v_msg, v_msgEng); + setTimeout(() => { prestations(); }, 2000) @@ -2616,8 +2772,13 @@ function trouve_coordonnees_geo_ip(ip) { v_msg="Impossible de trouver les coordonnées géographiques de l'adresse IP: "+ip; v_msgEng="Unable to find the geographic coordinates of the IP address: "+ip; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + + return; } }, complete: function() { @@ -2634,7 +2795,12 @@ function changer_avenant_incorporation_beneficiaire() { v_msg="Veuillez sélectionner un avenant!"; v_msgEng="Please select an Amendment!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#idAvenant").focus(); return; @@ -2688,7 +2854,11 @@ function prorater_prime_beneficiaire() { v_msg="Veuillez sélectionner un avenant!"; v_msgEng="Please select an Amendment!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); $("#idAvenant").focus(); return; @@ -2700,7 +2870,13 @@ function prorater_prime_beneficiaire() { v_msg="Veuillez revoir le lien de parenté!"; v_msgEng="Please review the relationship"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#codeLienParente").focus(); return; } @@ -2822,8 +2998,12 @@ function init_importer_modele_assure() { if (statusEtape2 !== "1") { // Message d'alerte stylisé - alert_ebene("L'étape 2 (Chargement du fichier) n'est pas finalisée.", "Step 2 is not completed!"); - return; + alert_ebene("L'étape 2 (Chargement du fichier) n'est pas finalisée.", "Step 2 is not completed!").then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + + return; } // Si OK, on continue le workflow @@ -2852,8 +3032,12 @@ function importer_modele_assure(idAvenant) { // On re-vérifie la présence du fichier par sécurité var cheminFichier = $("#cheminFichier").val(); if (!cheminFichier || cheminFichier === "") { - alert_ebene("Erreur: Aucun fichier trouvé.", "Error: No file found."); - return; + + alert_ebene("Erreur: Aucun fichier trouvé.", "Error: No file found.").then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } var div_export = $('#div_exporter_liste_assures'); @@ -2883,18 +3067,20 @@ function importer_modele_assure(idAvenant) { console.log("Valeur détectée :", isSuccess); // Pour votre débogage if (isSuccess === "1") { - alert_ebene("Opération terminée avec succès!", "Operation completed successfully!"); - // On attend un tout petit peu que le DOM soit stable avant de passer à la suite - setTimeout(function(){ + alert_ebene("Opération terminée avec succès!", "Operation completed successfully!").then(() => { + // Ce code ne s’exécute qu’après clic sur OK maj_etape_3_import_assures(); - }, 1000); + }); } else { div_export.html(''); // On cache le spinner // Le message d'erreur est déjà affiché par $("#div_erreur_excel").html(data) } }, error: function() { - alert_ebene("Erreur technique lors de l'importation.", "Technical error during import."); + alert_ebene("Erreur technique lors de l'importation.", "Technical error during import.").then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); } }); } @@ -2930,8 +3116,11 @@ function calculer_prime_inmportation() { v_msg="Veuillez lier toutes les famille à leur collège!"; v_msgEng="Please link all the family to their college!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -2956,15 +3145,18 @@ function calculer_prime_inmportation() v_msg="Calcul de primes terminée avec succès!"; v_msgEng="Premium calculation completed successfully!"; - alert_ebene(v_msg, v_msgEng); - //alert("Calcul de primes terminée avec succès!"); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + afficher_liste_assures_a_importer(); + }); }, error: function(data) { }, complete: function() { - afficher_liste_assures_a_importer(); + //afficher_liste_assures_a_importer(); } }); } @@ -2976,9 +3168,12 @@ function incorporer_assures_inmportes() if (nb_adh>"0") { v_msg="Veuillez revoir les collèges et relancer le calcul des primes!"; - v_msgEng="Please review the colleges and restart the premium calculation!!"; - alert_ebene(v_msg, v_msgEng); + v_msgEng="Please review the colleges and restart the premium calculation!"; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -2988,8 +3183,11 @@ function incorporer_assures_inmportes() { v_msg="Rien à importer!"; v_msgEng="Nothing to import!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3015,7 +3213,12 @@ function incorporer_assures_inmportes() v_msg="Notez que vous avez accepté l\'incorporation sans primes!"; v_msgEng="Note that you accepted the incorporation without premium!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + }); + + return; } v_msg="Confirmez-vous l\'incorporation de cette liste?"; @@ -3043,12 +3246,17 @@ function incorporer_assures_inmportes() success: function(data) { v_msg="Incorporation terminée avec succès!"; v_msgEng="Incorporation completed successfully!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + //return; + afficher_police_id(); + }); }, error: function(data) { }, complete: function() { - afficher_police_id(); + } }); } @@ -3062,8 +3270,11 @@ function traiter_lignes_importees() { v_msg="Etape 2 incomplète!"; v_msgEng="Incomplete step 2!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3073,8 +3284,11 @@ function traiter_lignes_importees() { v_msg="Etape 3 incomplète!"; v_msgEng="Incomplete step 3!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3089,8 +3303,11 @@ function afficher_adherent_importee() { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3149,8 +3366,11 @@ function ajouter_un_adherent_importe_college(idBeneficiairemodel) { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3179,8 +3399,11 @@ function ajouter_tous_adherent_importe_college() { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3215,8 +3438,11 @@ function ajouter_sans_college_adherent_importe_college() { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3253,8 +3479,11 @@ function retirer_tous_adherent_importe_college() { v_msg="Veuillez sélectionner un collège!"; v_msgEng="Please select a college!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3288,9 +3517,12 @@ function incorporer_assures_inmportes() if (nb_adh>"0") { v_msg="Veuillez revoir les collèges et relancer le calcul des primes!"; - v_msgEng="Please review the colleges and restart the premium calculation!!"; - alert_ebene(v_msg, v_msgEng); + v_msgEng="Please review the colleges and restart the premium calculation!"; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3300,8 +3532,11 @@ function incorporer_assures_inmportes() { v_msg="Rien à importer!"; v_msgEng="Nothing to import!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3335,7 +3570,12 @@ function incorporer_assures_inmportes() v_msg="Notez que vous avez accepté l\'incorporation sans primes!"; v_msgEng="Note that you accepted the incorporation without premium!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + //return; + }); + return; } v_msg="Confirmez-vous l\'incorporation de cette liste?"; @@ -3364,12 +3604,17 @@ function incorporer_assures_inmportes() success: function(data) { v_msg="Incorporation terminée avec succès!"; v_msgEng="Incorporation completed successfully!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + //return; + afficher_police_id(); + }); }, error: function(data) { }, complete: function() { - afficher_police_id(); + } }); } @@ -3420,12 +3665,15 @@ function afficher_garantieadherent_entete_contrat() { v_msg="Veuillez sélectionner une période!"; v_msgEng="Please select a period!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + div_attente.html(''); + return; + }); $("#idEntetecontrat").focus(); - - div_attente.html(''); - return; } @@ -3465,8 +3713,11 @@ function changer_etat_adherent() { v_msg="Attention! Police résiliée!"; v_msgEng="Warning! Terminated policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3474,8 +3725,11 @@ function changer_etat_adherent() { v_msg="Attention! Police suspendue!"; v_msgEng="Warning! Suspended policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3483,8 +3737,11 @@ function changer_etat_adherent() { v_msg="Attention! Police annulée!"; v_msgEng="Warning! Canceled policy!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3764,7 +4021,12 @@ function imprimer_liste_assures_date() { v_msg="Veuillez indiquer une date!"; v_msgEng="Please enter a date!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#dateAnalyse").focus(); return; @@ -3817,7 +4079,12 @@ function exporter_liste_assures_date() { v_msg="Veuillez indiquer une date!"; v_msgEng="Please enter a date!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#dateAnalyse").focus(); return; @@ -3933,8 +4200,11 @@ function liste_mouvemements_assures_client() { v_msg="Veuillez sélectionner une police!"; v_msgEng="Please select a policy!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -3998,8 +4268,13 @@ function consulter_facture_pop(idFacture) { v_msg="Valeur numérique exigée!"; v_msgEng="Numeric value required!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#idFacture").val("0"); $("#idFacture").focus(); return; @@ -4041,8 +4316,13 @@ function consulterfacturefeuillemaladie_pop() { v_msg="Valeur numérique exigée!"; v_msgEng="Numeric value required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#idFacture").val("0"); $("#idFacture").focus(); return; @@ -4082,8 +4362,13 @@ function consulterfactureprestationactes_pop() { v_msg="Valeur numérique exigée!"; v_msgEng="Numeric value required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#idFacture").val("0"); $("#idFacture").focus(); return; @@ -4124,8 +4409,13 @@ function consulterfacturemedicaments_pop() { v_msg="Valeur numérique exigée!"; v_msgEng="Numeric value required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#idFacture").val("0"); $("#idFacture").focus(); return; @@ -4166,8 +4456,13 @@ function consulterfactureverres_pop() { v_msg="Valeur numérique exigée!"; v_msgEng="Numeric value required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#idFacture").val("0"); $("#idFacture").focus(); return; @@ -4208,8 +4503,13 @@ function consulterfactureged_pop() { v_msg="Valeur numérique exigée!"; v_msgEng="Numeric value required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#idFacture").val("0"); $("#idFacture").focus(); return; @@ -4364,8 +4664,14 @@ function enregistrer_modif_user_rh() { v_msg="Veuillez saisir le nom!"; v_msgEng="Please enter the name!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#nom").focus(); return; } @@ -4374,7 +4680,12 @@ function enregistrer_modif_user_rh() { v_msg="Utilisateur actif oui ou non?"; v_msgEng="Is the user active yes or no?"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#actif").focus(); return; @@ -4384,7 +4695,12 @@ function enregistrer_modif_user_rh() { v_msg="Veuillez indiquer la langue!"; v_msgEng="Please select the language"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeLangueUser").focus(); return; @@ -4396,7 +4712,11 @@ function enregistrer_modif_user_rh() v_msg="Le profil utilisateur est obligatoire!"; v_msgEng="The user profile is required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -4407,7 +4727,12 @@ function enregistrer_modif_user_rh() { v_msg="Veuillez revoir l'adresse mail!"; v_msgEng="Please review the email address!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#email").focus(); return; @@ -4478,7 +4803,12 @@ function creer_user_rh_client() { v_msg="Veuillez indiquer le nom!"; v_msgEng="Please enter the name!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#nom").focus(); return; @@ -4489,7 +4819,12 @@ function creer_user_rh_client() { v_msg="Veuillez indiquer le login!"; v_msgEng="Please enter the login!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeUtilisateur").focus(); return; @@ -4500,7 +4835,12 @@ function creer_user_rh_client() { v_msg="Veuillez indiquer la langue!"; v_msgEng="Please select the language"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeLangueUser").focus(); return; @@ -4511,7 +4851,11 @@ function creer_user_rh_client() v_msg="Le profil utilisateur est obligatoire!"; v_msgEng="The user profile is required!"; - alert_ebene(v_msg, v_msgEng); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -4522,7 +4866,12 @@ function creer_user_rh_client() { v_msg="Veuillez revoir le téléphone!"; v_msgEng="Please review the phone!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#telephone").focus(); return; @@ -4532,7 +4881,12 @@ function creer_user_rh_client() { v_msg="Veuillez revoir l'adresse mail!"; v_msgEng="Please review the email address!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#email").focus(); return; @@ -4544,7 +4898,12 @@ function creer_user_rh_client() { v_msg="Veuillez indiquer le mot de passe!"; v_msgEng="Please enter the password!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#nvmdp").focus(); return; @@ -4554,7 +4913,12 @@ function creer_user_rh_client() { v_msg="Veuillez confirmer votre mot de passe!"; v_msgEng="Please confirm your password!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#cfnvmdp").focus(); return; @@ -4565,7 +4929,12 @@ function creer_user_rh_client() { v_msg="Veuillez revoir l'adresse mail!"; v_msgEng="Please review the email address!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#email").focus(); return; @@ -4603,17 +4972,25 @@ function creer_user_rh_client() { v_msg="Utilisateur ( "+codeUtilisateur+" ) créé avec succès!"; v_msgEng="User ( "+codeUtilisateur+" ) created succssfully!"; - alert_ebene(v_msg, v_msgEng); - retour_a_users_rh_client(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + retour_a_users_rh_client(); + }); } else { v_msg="Login " + codeUtilisateur +" déjà utilisé!"; v_msgEng="Login " + codeUtilisateur +" already in use!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeUtilisateur").focus(); + return; } } }); @@ -4645,9 +5022,11 @@ function reinitpaswd_user_rh(codeUtilisateur) complete: function() { v_msg="Opération effectuée avec succès!"; v_msgEng="Operation successfully completed"; - alert_ebene(v_msg, v_msgEng); - users_gc(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + users_gc(); + }); } }); return; @@ -4655,9 +5034,11 @@ function reinitpaswd_user_rh(codeUtilisateur) // L'utilisateur a annulé v_msg="Opération annulée!"; v_msgEng="Operation canceled!"; - alert_ebene(v_msg, v_msgEng); - return; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); } }); } @@ -4690,9 +5071,11 @@ function desactiver_user_rh_client(codeUtilisateur) complete: function() { v_msg="Opération effectuée avec succès!"; v_msgEng="Operation successfully completed"; - alert_ebene(v_msg, v_msgEng); - users_rh_client(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + users_rh_client(); + }); } }); return; @@ -4700,9 +5083,11 @@ function desactiver_user_rh_client(codeUtilisateur) // L'utilisateur a annulé v_msg="Opération annulée!"; v_msgEng="Operation canceled!"; - alert_ebene(v_msg, v_msgEng); - return; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); } }); @@ -4730,9 +5115,11 @@ function activer_user_rh_client(codeUtilisateur) complete: function() { v_msg="Opération effectuée avec succès!"; v_msgEng="Operation successfully completed"; - alert_ebene(v_msg, v_msgEng); - users_rh_client(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + users_rh_client(); + }); } }); return; @@ -4740,9 +5127,11 @@ function activer_user_rh_client(codeUtilisateur) // L'utilisateur a annulé v_msg="Opération annulée!"; v_msgEng="Operation canceled!"; - alert_ebene(v_msg, v_msgEng); - return; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); } }); @@ -4801,11 +5190,13 @@ function controle_longeur_passe(controle) { v_msg="8 caractères minimum exigé!"; v_msgEng="8 characters minmum required!"; - alert_ebene(v_msg, v_msgEng); - - controle.value=""; - controle.focus(); - return false; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + controle.value=""; + controle.focus(); + return false; + }); } } @@ -4815,10 +5206,15 @@ function controle_new_pass() { v_msg="Veuillez saisir un mot de passe!"; v_msgEng="Please enter a password!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return false; + }); $("#nvmdp").focus(); - return false; + return; } longueur = $("#nvmdp").val().length; @@ -4827,20 +5223,27 @@ function controle_new_pass() { v_msg="8 caractères minimum exigé!"; v_msgEng="8 characters minmum required!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return false; + }); + $("#nvmdp").focus(); - return false; + return; } if ($("#cfnvmdp" ).val()!=$("#nvmdp" ).val()) { v_msg="Veuillez confirmer votre mot de passe!"; v_msgEng="Please confirm your password!"; - alert_ebene(v_msg, v_msgEng); - $("#nvmdp").focus(); - return false; + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $("#nvmdp").focus(); + return false; + }); } } @@ -4860,7 +5263,12 @@ function afficher_menu_principal_profil_rh() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -4903,7 +5311,12 @@ function ajouter_tous_menus_principal_profil_rh() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -4933,7 +5346,12 @@ function ajouter_un_menu_principal_profil_rh(codeMenu) { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -4963,7 +5381,12 @@ function retirer_tous_menus_principal_profil_rh() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -4993,7 +5416,12 @@ function retirer_un_menu_principal_profil_rh(codeMenu) { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -5059,7 +5487,12 @@ function ajax_menus_profil() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -5090,10 +5523,14 @@ function afficher_menu_vue_profil() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); - return; } @@ -5103,10 +5540,15 @@ function afficher_menu_vue_profil() { v_msg="Veuillez sélectionner une vue!"; v_msgEng="Please select a view!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + $('#div_menu_profil').html(data); + return; + }); $("#codeVue").focus(); - $('#div_menu_profil').html(data); return; } @@ -5149,7 +5591,12 @@ function ajouter_tous_menu_vue_profil() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -5161,7 +5608,12 @@ function ajouter_tous_menu_vue_profil() { v_msg="Veuillez sélectionner une vue!"; v_msgEng="Please select a view!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeVue").focus(); return; @@ -5192,7 +5644,12 @@ function ajouter_un_menu_vue_profil(codeMenu) { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -5204,7 +5661,12 @@ function ajouter_un_menu_vue_profil(codeMenu) { v_msg="Veuillez sélectionner une vue!"; v_msgEng="Please select a view!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeVue").focus(); return; @@ -5236,7 +5698,12 @@ function retirer_tous_menu_vue_profil() { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -5248,7 +5715,12 @@ function retirer_tous_menu_vue_profil() { v_msg="Veuillez sélectionner une vue!"; v_msgEng="Please select a view!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeVue").focus(); return; @@ -5281,7 +5753,12 @@ function retirer_un_menu_vue_profil(codeMenu) { v_msg="Veuillez sélectionner un profil!"; v_msgEng="Please select a user profile!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeProfil").focus(); return; @@ -5293,7 +5770,12 @@ function retirer_un_menu_vue_profil(codeMenu) { v_msg="Veuillez sélectionner une vue!"; v_msgEng="Please select a view!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); $("#codeVue").focus(); return; @@ -5409,7 +5891,11 @@ function ControlerEcheanceRen() if (ech>eff.addMonths(12)) { v_msg="Période supérieur à un an!"; v_msgEng="Period greater than one year!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); } } } @@ -5549,8 +6035,11 @@ function lister_dossiers_classiques_export() v_msg="Aucune données à exporter!"; v_msgEng="No data to export!"; - alert_ebene(v_msg, v_msgEng); - + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -5733,16 +6222,27 @@ function enregistrer_validation_rd(idDemande){ const msg = "Une décision de validation est obligatoire."; const msgEng = "A validation approval is required."; - alert_ebene(msg, msgEng); + alert_ebene(msg, msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#codeStatutPaiementAjax").focus(); return; + } if(codeStatutPaiement=="9" && motifRejetRh <=" "){ const msg = "Un motif est obligatoire en cas de refus."; const msgEng = "A reason is required in case of refusal."; - alert_ebene(msg, msgEng); + alert_ebene(msg, msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + $("#motifRejetRh").focus(); return; } @@ -5773,12 +6273,17 @@ function remplacer_adherent() { nbAdh = $("#nbAdh_C").val(); codeTypeContrat = $("#codeTypeContrat_C").val(); + adherentRetire = $("#adherentRetire").val(); if ( (codeTypeContrat!="G") && (nbAdh>0) ) { v_msg="Ce n\'est pas une police GROUPE!"; v_msgEng="This is not a GROUP policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -5787,17 +6292,39 @@ function remplacer_adherent() { v_msg="Veuillez sélectionner une famille!"; v_msgEng="Please select a family!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } + if (adherentRetire == "1") + { + v_msg="Famille déjà retirée."; + v_msgEng="Family already removed."; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + + return; + } + + remplacementAdherent=$("#remplacementAdherent").val(); if (remplacementAdherent!="1") { v_msg="Remplacement de famille non actif pour cette police!"; v_msgEng="Family replacement inactive for this policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -5811,23 +6338,27 @@ function remplacer_adherent() { v_msg="Famille déjà remplacée!"; v_msgEng="Family already replaced!"; - alert_ebene(v_msg, v_msgEng); - consulter_remplacement_adherent(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + consulter_remplacement_adherent(); + }); } else { v_msg="Cette famille en a déjà remplacé une autre, confirmez-vous son remplacement à son tour?"; v_msgEng="This family has already replaced another, do you confirm its replacement in turn?"; - - if(confirm_ebene(v_msg, v_msgEng)) - { - fiche_remplacer_adherent(); - } - else - { - consulter_remplacant_adherent(); - } + + confirm_ebene(v_msg, v_msgEng) + .then((isConfirmed) => { + if (isConfirmed) { + // L'utilisateur a confirmé + fiche_remplacer_adherent(); + } else { + // L'utilisateur a annulé + consulter_remplacant_adherent(); + } + }); } } else @@ -5835,9 +6366,11 @@ function remplacer_adherent() { v_msg="Famille déjà remplacée!"; v_msgEng="Family already replaced!"; - alert_ebene(v_msg, v_msgEng); - consulter_remplacement_adherent(); + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + consulter_remplacement_adherent(); + }); } else { @@ -5864,8 +6397,12 @@ function fiche_remplacer_adherent() { v_msg="Attention! Police résiliée!"; v_msgEng="Warning! Terminated policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -5873,8 +6410,12 @@ function fiche_remplacer_adherent() { v_msg="Attention! Police suspendue!"; v_msgEng="Warning! Suspended policy!"; - alert_ebene(v_msg, v_msgEng); - + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); + return; } @@ -5882,7 +6423,11 @@ function fiche_remplacer_adherent() { v_msg="Attention! Police annulée!"; v_msgEng="Warning! Canceled policy!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -5916,15 +6461,26 @@ function init_remplacement_adherent() { v_msg="Attention! Veuillez revoir vos dates!"; v_msgEng="Warning! Please review your dates!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return false; + }); + return false; + } if (dt1>dt2 || dt1 { + // Ce code ne s’exécute qu’après clic sur OK + return false; + }); + return false; } @@ -5937,7 +6493,12 @@ function init_remplacement_adherent() { v_msg="Attention! cette personne a été retirée avec une ristourne!"; v_msgEng=" Warning! this person was withdrawn with premium!"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return false; + }); + return false; } @@ -5947,7 +6508,11 @@ function init_remplacement_adherent() { v_msg="Veuillez fournir le motif!"; v_msgEng="Please provide the reason"; - alert_ebene(v_msg, v_msgEng); + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + return; + }); return; } @@ -5975,4 +6540,204 @@ function init_remplacement_adherent() $(".datepicker" ).datepicker(); } }); +} + +function enregistrer_remplacement_adherent() +{ + nom = $("#nom").val(); + if ($("#nom").val()<" ") + { + v_msg="Veuillez saisir le nom de famille!"; + v_msgEng="Please enter the last name!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + $("#nom").focus(); + return; + }); + + return; + } + + prenoms = $("#prenoms").val(); + if ($("#prenoms").val()<" ") + { + v_msg="Veuillez saisir le prénom!"; + v_msgEng="Please enter the first name!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#prenoms").focus(); + return; + } + + codeNaturePiece = $("#codeNaturePiece").val(); + if ($("#codeNaturePiece").val()<" ") + { + v_msg="Veuillez saisir la nature de pièce d\'identité!"; + v_msgEng="Please enter the nature of ID!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#codeNaturePiece").focus(); + return; + } + + numeroPiece = $("#numeroPiece").val(); + if ($("#numeroPiece").val()<" ") + { + v_msg="Veuillez saisir le No de la pièce d\'identité!"; + v_msgEng="Please enter the ID number!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#numeroPiece").focus(); + return; + } + + sexe = $("#sexe").val(); + if ($("#sexe").val()<" ") + { + v_msg="Veuillez saisir le sexe!"; + v_msgEng="Please enter the sex!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#sexe").focus(); + return; + } + + dateNaissance = $("#dateNaissance").val(); + if ($("#dateNaissance").val()<" ") + { + v_msg="Veuillez saisir la date de naissance!"; + v_msgEng="Please enter the date of birth!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#dateNaissance").focus(); + return; + } + + codeGroupeSanguin = $("#codeGroupeSanguin").val(); + if ($("#codeGroupeSanguin").val()<" ") + { + v_msg="Veuillez saisir le groupe sanguin!"; + v_msgEng="Please enter the blood type!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#codeGroupeSanguin").focus(); + return; + } + + codeSituationFamille = $("#codeSituationFamille").val(); + if ($("#codeSituationFamille").val()<" ") + { + v_msg="Veuillez saisir la situation familiale!"; + v_msgEng="Please enter the family situation!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#codeSituationFamille").focus(); + return; + } + + nombreEnfants = $("#nombreEnfants").val(); + adresseGeo = $("#adresseGeo").val(); + adressePostale = $("#adressePostale").val(); + + codePays = $("#codePays").val(); + if ($("#codePays").val()<" ") + { + v_msg="Veuillez indiquer le pays!"; + v_msgEng="Please indicate the country!"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + + return; + }); + + $("#codePays").focus(); + return; + } + + telephonFixe = $("#telephonFixe").val(); + telephonePortable = $("#telephonePortable").val(); + email = $("#email").val(); + + fraisCarte = $("#fraisCarte").val(); + + donnees = 'nom='+nom+'&prenoms='+prenoms+'&codeNaturePiece='+codeNaturePiece; + + donnees += '&numeroPiece='+numeroPiece+'&sexe='+sexe+'&dateNaissance='+dateNaissance; + + donnees += '&codeGroupeSanguin='+codeGroupeSanguin+'&codeSituationFamille='+codeSituationFamille+'&nombreEnfants='+nombreEnfants; + + donnees += '&adresseGeo='+adresseGeo+'&adressePostale='+adressePostale+'&codePays='+codePays; + + donnees += '&telephonFixe='+telephonFixe+'&telephonePortable='+telephonePortable+'&email='+email+'&fraisCarte='+fraisCarte; + + v_msg="Confirmez-vous le remplacement de famille?"; + v_msgEng="Do you confirm family replacement?"; + + confirm_ebene(v_msg, v_msgEng) + .then((isConfirmed) => { + if (isConfirmed) { + // L'utilisateur a confirmé + $("#div_remplacement_adherent").html('
  ' + 'Veuillez patienter... / Please wait...' + '
'); + + $.ajax({ + url: $("#racineWeb").val()+"Ajaxremplaceradherent/enregistrerremplacementadherent/", + type : 'post', + data: donnees, + error: function(errorData) { + }, + success: function(data) + { + }, + complete: function() + { + v_msg="Opération effectuée avec succès!"; + v_msgEng="Operation successfully completed"; + + alert_ebene(v_msg, v_msgEng).then(() => { + // Ce code ne s’exécute qu’après clic sur OK + consulter_remplacement_adherent(); + }); + } + }); + } + }); + + } \ No newline at end of file diff --git a/Modele/Menuvueutilisateur.php b/Modele/Menuvueutilisateur.php index 84f171b..ba65353 100755 --- a/Modele/Menuvueutilisateur.php +++ b/Modele/Menuvueutilisateur.php @@ -25,4 +25,5 @@ class Menuvueutilisateur extends Modele { // ajouté le 30/07/2019 $_SESSION['vue'] = $vue; } + } \ No newline at end of file diff --git a/Vue/Ajaxdemanderemboursement/index.php b/Vue/Ajaxdemanderemboursement/index.php index 092faf4..70adb48 100755 --- a/Vue/Ajaxdemanderemboursement/index.php +++ b/Vue/Ajaxdemanderemboursement/index.php @@ -23,6 +23,7 @@ + @@ -30,6 +31,8 @@ nettoyer($v['id']); $statusPaiement = $v['codeStatutPaiement']; + $statut = est_anglophone() ? $v['statutEng'] : $v['statut']; + $nbDemandeRemb = (int)$v['nbDemandeRemb']; ?> @@ -51,27 +54,32 @@ - + - + - + + + +
- + 0): ?> + + + + +
\ No newline at end of file diff --git a/Vue/Creeradherent/index.php b/Vue/Creeradherent/index.php index c57e1e3..579b9d4 100644 --- a/Vue/Creeradherent/index.php +++ b/Vue/Creeradherent/index.php @@ -76,7 +76,7 @@
- +
diff --git a/Vue/Ficheadherent/index.php b/Vue/Ficheadherent/index.php index dce4108..6c85a0a 100644 --- a/Vue/Ficheadherent/index.php +++ b/Vue/Ficheadherent/index.php @@ -47,6 +47,7 @@ +
diff --git a/Vue/Remplaceradherentcons/index.php b/Vue/Remplaceradherentcons/index.php index b9b105c..10d49a1 100644 --- a/Vue/Remplaceradherentcons/index.php +++ b/Vue/Remplaceradherentcons/index.php @@ -1,93 +1,136 @@ -titre = "INTER-SANTE - Consultation remplacement famille "; -?> +titre = "INTER-SANTE - Consultation remplacement famille"; ?> - SORTANT") ?> +
+

+ +
+
+
+
+ +
+
+
+
+
nettoyer($adherent_sortant['nom']) ?> nettoyer($adherent_sortant['prenoms']) ?>
+ +
+
+
+
+
+
nettoyer($adherent_sortant['dateEffetPolice'])) ?>
+
+
+
+
nettoyer($adherent_sortant['dateEffetAdherent'])) ?>
+
+
+
+
nettoyer($adherent_sortant['dateFinPolice'])) ?>
+
+
+
+
+
+
+
- - - - - - - - - - - - -
- -
+
+
+
+
+
+ + nettoyer($remplacementadherent['dateSortie'])) ?> +
+
+ + nettoyer($remplacementadherent['dateRemplacement'])) ?> +
+
+ + nettoyer($remplacementadherent['motif']) ?> +
+
+ + nettoyer($remplacementadherent['codeUtilisateur']) ?> +
+
+
+
+
- - +
+
+
+ +
+
+
+
+
nettoyer($adherent_entrant['nom']) ?> nettoyer($adherent_entrant['prenoms']) ?>
+ +
+
+
+
+
+
nettoyer($adherent_entrant['dateEffetPolice'])) ?>
+
+
+
+
nettoyer($adherent_entrant['dateEffetAdherent'])) ?>
+
+
+
+
nettoyer($adherent_entrant['dateFinPolice'])) ?>
+
+
+
+
+
+
+
- - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - nettoyer($garantieadherent['champApplication']); - ?> - - - - - - - - - - - - - - - - -
nettoyer($garantieadherent['garantie'])?> nettoyer($garantieadherent['plafond'])) ?> nettoyer($garantieadherent['consommation'])) ?>nettoyer($garantieadherent['solde'])) ?>
+
+
+
+
+
+
+ + + + + + + + + + + + nettoyer($garantieadherent['champApplication']); + ?> + + + + + + + + + + + + + + + +
nettoyer($garantieadherent['garantie']) ?>nettoyer($garantieadherent['plafond'])) ?>nettoyer($garantieadherent['consommation'])) ?>nettoyer($garantieadherent['solde'])) ?>
+
+
+
+
+
\ No newline at end of file diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 743be90..08961dc 100755 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -23,30 +23,30 @@ $imgData = $_SESSION['photoAssureCrypte'] ?? ''; */ if (!function_exists('detectActiveMenu')) { -function detectActiveMenu($activeLink, $menus, $gabary) { - // LOG SIMPLIFIÉE ET FIABLE : - - // 1. ACCUEIL = TOUJOURS menu 0 (priorité absolue) - if ($activeLink == 'Accueil') { - return ['parent' => '0', 'child' => null]; - } - - // 2. Recherche dans les autres menus - foreach ($menus as $key0 => $menuParent) { - $menuChildren = $gabary->get_menus_by_parent_code($menuParent['vue']); + function detectActiveMenu($activeLink, $menus, $gabary) { + // LOG SIMPLIFIÉE ET FIABLE : - // Vérifier chaque enfant - foreach ($menuChildren as $key1 => $menuChild) { - $childLink = explode('/', $menuChild['lienMenu'])[0] ?? ''; - if ($childLink == $activeLink) { - return ['parent' => (string)$key0, 'child' => (string)$key1]; + // 1. ACCUEIL = TOUJOURS menu 0 (priorité absolue) + if ($activeLink == 'Accueil') { + return ['parent' => '0', 'child' => null]; + } + + // 2. Recherche dans les autres menus + foreach ($menus as $key0 => $menuParent) { + $menuChildren = $gabary->get_menus_by_parent_code($menuParent['vue']); + + // Vérifier chaque enfant + foreach ($menuChildren as $key1 => $menuChild) { + $childLink = explode('/', $menuChild['lienMenu'])[0] ?? ''; + if ($childLink == $activeLink) { + return ['parent' => (string)$key0, 'child' => (string)$key1]; + } } } + + // 3. Fallback : premier menu + return ['parent' => '0', 'child' => null]; } - - // 3. Fallback : premier menu - return ['parent' => '0', 'child' => null]; -} } // ============================================ @@ -71,7 +71,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte']; - <?= htmlspecialchars($_SESSION['vue'] ?? 'INTER-SANTE') ?> | Portail Santé + <?= htmlspecialchars($_SESSION['vue'] ?? 'INTER-SANTE') ?> | <?= est_anglophone() ? 'HR Portal' : 'Portail RH';?> @@ -126,7 +126,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte']; - + @@ -140,7 +140,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte']; + ============================================ --> @@ -663,7 +677,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte']; - +