:root { --color-present: #6bdb83; --color-absent: #e62a11; --color-absent-clair: rgb(252, 151, 50); --color-retard: #f0c865; --color-justi: #29b990; --color-justi-clair: #48f6ff; --color-justi-attente: yellow; --color-justi-attente-stripe: #29b990; /* pink #fa25cb; */ /* #789dbb;*/ --color-justi-modifie: rgb(255, 230, 0); --color-justi-invalide: #a84476; --color-nonwork: #badfff; --color-absent-justi: #ff86d7; --color-retard-justi: #e8c6eb; --color-error: #e62a11; --color-warning: #eec660; --color-information: #658ef0; --color-def: #d61616; --color-conflit: #ff00009c; --color-bg-def: #c8c8c8; --color-primary: #7059ff; --color-secondary: #6f9fff; --color-defaut: #fff; --color-defaut-dark: #444; --color-default-text: #1f1f1f; --motif-justi: repeating-linear-gradient(135deg, transparent, transparent 4px, var(--color-justi) 4px, var(--color-justi) 8px); --motif-justi-invalide: repeating-linear-gradient(-135deg, transparent, transparent 4px, var(--color-justi-invalide) 4px, var(--color-justi-invalide) 8px); } * { box-sizing: border-box; } .selectors>* { margin: 10px 0; } .selectors:disabled { opacity: 0.5; } #validate_selectors { margin: 15px 0; } .no-display { display: none !important; } /* === Gestion de la timeline === */ #tl_date { visibility: hidden; width: 0px; height: 0px; position: absolute; left: 15%; } .infos-button { position: relative; display: inline-block; vertical-align: middle; } .infos { position: relative; display: flex; justify-content: start; align-content: center; gap: 10px; } #datestr { cursor: pointer; background-color: white; border: 1px #444 solid; border-radius: 5px; padding: 5px; min-width: 250px; display: inline-block; min-height: 20px; } #tl_slider { width: 90%; cursor: grab; /* visibility: hidden; */ } #datestr, #time { width: fit-content; } .ui-slider-handle.tl_handle { background: none; width: 25px; height: 25px; visibility: visible; background-position: top; background-size: cover; border: none; top: -180%; cursor: grab; } #l_handle { background-image: url(../icons/l_handle.svg); } #r_handle { background-image: url(../icons/r_handle.svg); } .ui-slider-range.ui-widget-header.ui-corner-all { background-color: var(--color-warning); background-image: none; opacity: 0.5; visibility: visible; } /* === Gestion des etuds row === */ .etud_row { display: grid; grid-template-columns: 2% 20% 55% auto; gap: 16px; background-color: white; border-radius: 15px; padding: 4px 16px; margin: 0.5% 0; box-shadow: -1px 12px 5px -8px rgba(68, 68, 68, 0.61); -webkit-box-shadow: -1px 12px 5px -8px rgba(68, 68, 68, 0.61); -moz-box-shadow: -1px 12px 5px -8px rgba(68, 68, 68, 0.61); max-width: 800px; } .etud_row * { display: flex; justify-content: center; align-items: center; height: 50px; } .etud_row.def, .etud_row.dem { background-color: var(--color-bg-def); } /* --- Index --- */ .etud_row .index_field { grid-column: 1; } /* --- Nom étud --- */ .etud_row .name_field { grid-column: 2; height: 100%; justify-content: start; } .etud_row .name_field .name_set { flex-direction: column; align-items: flex-start; margin: 0 5%; cursor: pointer; } .etud_row.def .nom::after, .tr.def .td.sticky span::after { display: block; content: " (Déf.)"; color: var(--color-def); margin-left: 2px; } .etud_row.dem .nom::after, .tr.dem .td.sticky span::after { display: block; content: " (Dém.)"; color: var(--color-def); margin-left: 2px; } .etud_row .name_field .name_set * { padding: 0; margin: 0; } .etud_row .name_field .name_set h4 { font-size: small; font-weight: 600; } .etud_row .name_field .name_set h5 { font-size: x-small; } .etud_row .pdp { border-radius: 15px; } /* --- Barre assiduités --- */ .etud_row .assiduites_bar { display: grid; grid-template-columns: 7px 1fr; gap: 13px; grid-column: 3; position: relative; } .etud_row .assiduites_bar .filler { height: 5px; width: 90%; background-color: white; border: 1px solid #444; } .etud_row .assiduites_bar #prevDateAssi { height: 7px; width: 7px; background-color: white; border: 1px solid #444; margin: 0px 8px; } .etud_row .assiduites_bar #prevDateAssi.single { height: 9px; width: 9px; } .etud_row.conflit { background-color: var(--color-conflit); } .etud_row .assiduites_bar>.absent, .demo.absent { background-color: var(--color-absent) !important; } .etud_row .assiduites_bar>.present, .demo.present { background-color: var(--color-present) !important; } .etud_row .assiduites_bar>.retard, .demo.retard { background-color: var(--color-retard) !important; } .demo.nonwork { background-color: var(--color-nonwork) !important; } .etud_row .assiduites_bar>.justified, .demo.justified { background-image: var(--motif-justi); } .etud_row .assiduites_bar>.invalid_justified, .demo.invalid_justified { background-image: var(--motif-justi-invalide); } /* --- Boutons assiduités --- */ .etud_row .btns_field { grid-column: 4; } .btns_field:disabled { opacity: 0.7; } .etud_row .btns_field * { margin: 0 5%; cursor: pointer; width: 35px; height: 35px; } .rbtn { -webkit-appearance: none; appearance: none; cursor: pointer; } .rbtn::before { content: ""; display: inline-block; width: 35px; height: 35px; background-position: center; background-size: cover; border-radius: 5px; border: 1px solid var(--color-defaut-dark); } .rbtn.present::before { background-image: url(../icons/present.svg); background-color: var(--color-present); } .rbtn.absent::before { background-color: var(--color-absent); background-image: url(../icons/absent.svg); } .rbtn.aucun::before { background-image: url(../icons/aucun.svg); background-color: var(--color-defaut-dark); } .rbtn.retard::before { background-color: var(--color-retard); background-image: url(../icons/retard.svg); } .rbtn.conflit::before { background-color: var(--color-absent); background-image: url(../icons/solveur_conflits.svg); } .rbtn:checked:before { outline: 5px solid var(--color-primary); border-radius: 50%; } .rbtn:focus { outline: none !important; } /*<== Modal conflit ==>*/ .modal { display: block; position: fixed; z-index: 500; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.4); } .modal-content { background-color: #fefefe; margin: 5% auto; padding: 20px; border: 1px solid #888; width: 80%; height: 320px; position: relative; border-radius: 10px; } .close { color: #111; position: absolute; right: 5px; top: 0px; font-size: 28px; font-weight: bold; cursor: pointer; } /* Ajout de styles pour la frise chronologique */ .modal-timeline { display: flex; flex-direction: column; align-items: stretch; margin-bottom: 20px; } .time-labels, .assiduites-container { display: flex; justify-content: space-between; position: relative; } .time-label { font-size: 14px; margin-bottom: 4px; } .assiduite { position: absolute; top: 20px; border-radius: 4px; z-index: 10; height: 100px; padding: 4px; border: 1px solid #444; } .assiduites-container { min-height: 20px; height: calc(50% - 60px); /* Augmentation de la hauteur du conteneur des assiduités */ position: relative; margin-bottom: 10px; } .modal-buttons { position: absolute; text-align: center; display: flex; justify-content: space-evenly; align-items: center; height: 60px; width: 100%; bottom: 5%; } .assiduite-special { height: 120px; position: absolute; z-index: 5; border: 5px solid var(--color-primary); border-radius: 5px; } .assiduite .assiduite-bubble { top: 5px; left: 50%; transform: translateX(-50%); } .assiduite-infos { position: absolute; right: 0; margin: 5px; top: 0; font-size: 16px; cursor: pointer; } .action-buttons { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 2px; height: 100%; } /*<=== Mass Action ==>*/ .mass-selection { display: flex; justify-content: flex-start; align-items: center; width: 100%; gap: 4px; } .mass-selection .rbtn { background-color: transparent; cursor: pointer; } .fieldsplit { display: flex; justify-content: flex-start; align-items: center; flex-direction: column; } .fieldsplit legend { margin: 0; } #page-assiduite-content { display: flex; flex-wrap: wrap; gap: 5%; flex-direction: column; } #page-assiduite-content>* { margin: 1.5% 0; } .rouge { color: var(--color-error); } .legende { border: 1px dashed #333; width: 75%; padding: 20px; } .order { background-image: url(../icons/sort.svg); } .filter { background-image: url(../icons/filter.svg); } .download { background-image: url(../icons/download.svg); } .iconline { display: flex; justify-content: flex-start; gap: min(2%, 15px); align-items: center; } [name="destroyFile"] { -webkit-appearance: none; appearance: none; cursor: pointer; background-image: url(../icons/trash.svg); } [name="destroyFile"]:checked { background-image: url(../icons/remove_circle.svg); } .icon { display: block; width: 24px; height: 24px; outline: none !important; border: none !important; cursor: pointer; margin: 0 2px !important; } .icon:focus { outline: none; border: none; } #forcemodule { border-radius: 8px; background: var(--color-error); max-width: fit-content; padding: 5px; color: white; } .demo { width: 23px; height: 13px; display: inline-block; border: solid 1px #333; } .assi-liste { border: 1px solid gray; border-radius: 12px; margin-right: 24px; padding: 12px; } #options-tableau label { font-weight: normal; margin-right: 12px; } section.assi-form { margin-bottom: 12px; } table.liste_assi td.date { width: 140px; } table.liste_assi.dataTable tbody td.date-debut { padding-left: 12px; } table.liste_assi td.actions { white-space: nowrap; /* boutons horizontalement */ } table.liste_assi td.actions a:last-child { padding-right: 12px; } tr.row-assiduite td { border-bottom: 1px solid grey; } table.liste_assi tbody tr td.assi-type { padding-left: 8px; padding-right: 4px; } tr.row-assiduite.absent td.assi-type { background-color: var(--color-absent-clair); } tr.row-assiduite.absent.justifiee td.assi-type { background-color: var(--color-absent-justi); } tr.row-assiduite.retard td.assi-type { background-color: var(--color-retard); } tr.row-assiduite.present td.assi-type { background-color: var(--color-present); } tr.row-justificatif.valide td.assi-type { background-color: var(--color-justi); } tr.row-justificatif.attente td.assi-type { background-color: var(--color-justi-attente); } tr.row-justificatif.modifie td.assi-type { background-color: var(--color-justi-modifie); } tr.row-justificatif.non_valide td.assi-type { background-color: var(--color-justi-invalide); } /* <== Loader ==> */ /* HTML:
*/ .loader { width: 80px; height: 70px; border: 5px solid #000; padding: 0 8px; box-sizing: border-box; background: linear-gradient(#fff 0 0) 0 0/8px 20px, linear-gradient(#fff 0 0) 100% 0/8px 20px, radial-gradient(farthest-side, #fff 90%, #0000) 0 5px/8px 8px content-box, #000; background-repeat: no-repeat; animation: l3 2s infinite linear; } @keyframes l3 { 25% { background-position: 0 0, 100% 100%, 100% calc(100% - 5px) } 50% { background-position: 0 100%, 100% 100%, 0 calc(100% - 5px) } 75% { background-position: 0 100%, 100% 0, 100% 5px } } #loader { width: 100%; height: 100%; position: fixed; top: 50%; left: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; transform: translate(-50%, -50%); z-index: 1000; background-color: rgba(255, 255, 255, 0.8); } /** * <== Couleurs ==> */ .color.present { background-color: var(--color-present) !important; } .color.absent { background-color: var(--color-absent) !important; } .color.absent.est_just { background-color: var(--color-absent-justi) !important; } .color.retard { background-color: var(--color-retard) !important; } .color.retard.est_just { background-color: var(--color-retard-justi) !important; } .color.nonwork { background-color: var(--color-nonwork) !important; } .color { background-color: var(--color-defaut) !important; } .color.est_just.sans_etat::before { content: ""; position: absolute; width: 25%; height: 100%; background-color: var(--color-justi) !important; right: 0; } .color.invalide::before { content: ""; position: absolute; width: 25%; height: 100%; right: 0; background-color: var(--color-justi-invalide) !important; } .color.attente::before, .color.modifie::before { content: ""; position: absolute; width: 25%; height: 100%; right: 0; background: repeating-linear-gradient(to bottom, var(--color-justi-attente-stripe) 0px, var(--color-justi-attente-stripe) 4px, var(--color-justi-attente) 4px, var(--color-justi-attente) 7px) !important; }