forked from ScoDoc/ScoDoc
Amélioration front éditeur partitions
This commit is contained in:
parent
c8801f6ee0
commit
1f2b108c18
@ -19,20 +19,6 @@ html {
|
||||
}
|
||||
}
|
||||
|
||||
.message_curtom {
|
||||
position: fixed;
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
z-index: 10;
|
||||
padding: 20px;
|
||||
border-radius: 0 0 10px 10px;
|
||||
background: #90c;
|
||||
color: #FFF;
|
||||
font-size: 24px;
|
||||
animation: message 3s;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
|
||||
@keyframes message {
|
||||
|
||||
20%,
|
||||
@ -79,7 +65,7 @@ main {
|
||||
margin-right: 16px;
|
||||
padding: 8px;
|
||||
border-radius: 12px;
|
||||
background: #424242;
|
||||
background: #717171;
|
||||
}
|
||||
|
||||
main h2 {
|
||||
@ -93,7 +79,7 @@ main h3 {
|
||||
}
|
||||
|
||||
section {
|
||||
background: #fff;
|
||||
background: #dbccb8;
|
||||
padding: 8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
@ -275,16 +261,19 @@ body.editionActivated .filtres>div>div>div>div {
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#zonePartitions h3{
|
||||
#zonePartitions h3 {
|
||||
display: flex;
|
||||
}
|
||||
#zonePartitions h3 .onoff{
|
||||
|
||||
#zonePartitions h3 .onoff {
|
||||
margin-left: auto;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-size: 16px;
|
||||
padding-left: 8px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
#zonePartitions .filtres {
|
||||
@ -316,7 +305,7 @@ body.editionActivated .filtres>div>div>div>div {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#zonePartitions .filtres .config label{
|
||||
#zonePartitions .filtres .config label {
|
||||
display: block;
|
||||
background: #ddd;
|
||||
border-radius: 4px;
|
||||
@ -356,34 +345,37 @@ body:not(.editionActivated) .filtres .groupes>div:active {
|
||||
box-shadow: 0 0 0 #000 !important;
|
||||
transform: translateY(2px);
|
||||
}
|
||||
body.editionActivated .filtres [data-idgroupe=aucun]{
|
||||
|
||||
body.editionActivated .filtres [data-idgroupe=aucun] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body.editionActivated .filtres .nonEditable .move{
|
||||
body.editionActivated .filtres .nonEditable .move {
|
||||
display: initial;
|
||||
}
|
||||
|
||||
.filtres .unselect {
|
||||
/* .filtres .unselect {
|
||||
background: rgba(0, 153, 204, 0.5) !important;
|
||||
}
|
||||
} */
|
||||
|
||||
/*****************************/
|
||||
/* Zone Etudiants */
|
||||
/*****************************/
|
||||
#zoneChoix>.autoAffectation{
|
||||
background: #3c3c3c;
|
||||
color: #fff;
|
||||
#zoneChoix>.autoAffectation {
|
||||
background: #c9c9c9;
|
||||
color: #141414;
|
||||
padding: 4px 8px;
|
||||
margin-bottom: 16px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
#zoneChoix>.autoAffectation>select{
|
||||
|
||||
#zoneChoix>.autoAffectation>select {
|
||||
border: none;
|
||||
padding: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
#zoneChoix>.autoAffectation>.affectationGo{
|
||||
|
||||
#zoneChoix>.autoAffectation>.affectationGo {
|
||||
display: inline-block;
|
||||
background: #0c9;
|
||||
padding: 8px 16px;
|
||||
@ -396,6 +388,7 @@ body.editionActivated .filtres .nonEditable .move{
|
||||
margin-bottom: 4px;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#zoneChoix .etudiants>div {
|
||||
background: #FFF;
|
||||
border: 1px solid #aaa;
|
||||
@ -411,14 +404,17 @@ body.editionActivated .filtres .nonEditable .move{
|
||||
#zoneChoix .etudiants .nom {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#zoneChoix a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
#zoneChoix a:hover{
|
||||
|
||||
#zoneChoix a:hover {
|
||||
text-decoration: underline;
|
||||
color: #09c;
|
||||
}
|
||||
|
||||
#zoneChoix .small {
|
||||
color: #444;
|
||||
font-size: 8px;
|
||||
@ -461,8 +457,8 @@ body.editionActivated .filtres .nonEditable .move{
|
||||
}
|
||||
|
||||
#zoneChoix .etudiants .partition input:checked:not([value=aucun])+span {
|
||||
background: #c09;
|
||||
border-color: #c09;
|
||||
background: rgb(165, 6, 59);
|
||||
border-color: rgb(165, 6, 59);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@ -475,7 +471,8 @@ body.editionActivated .filtres .nonEditable .move{
|
||||
section:not(#zonePartitions) .hide {
|
||||
display: none !important;
|
||||
}
|
||||
#zonePartitions .hide{
|
||||
|
||||
#zonePartitions .hide {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
@ -550,6 +547,10 @@ h3 {
|
||||
}
|
||||
|
||||
#zoneGroupes [data-idgroupe=aucun] {
|
||||
background: #3c3c3c !important;
|
||||
background: #453f3b !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#zoneGroupes .groupe[data-idgroupe=aucun]>div:nth-child(1) {
|
||||
color: red;
|
||||
}
|
@ -166,6 +166,20 @@ div.head_message {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.message_curtom {
|
||||
position: fixed;
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
z-index: 10;
|
||||
padding: 20px;
|
||||
border-radius: 0 0 10px 10px;
|
||||
background: rgb(247, 253, 67);
|
||||
color: #2c1b1b;
|
||||
font-size: 24px;
|
||||
animation: message 3s;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
|
||||
|
||||
div.passwd_warn {
|
||||
font-weight: bold;
|
||||
@ -4005,6 +4019,30 @@ table.dataTable td.group {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* ------------- BOUTONS style radio ------------ */
|
||||
#zonePartitions button.dt-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
margin: 0 4px;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
border: 2px solid lightgrey;
|
||||
transition: all 0.3s ease;
|
||||
font-size: 18px;
|
||||
|
||||
color: white;
|
||||
border-color: #0069d9;
|
||||
background: #0069d9;
|
||||
}
|
||||
|
||||
#zonePartitions button.dt-button.unselect {
|
||||
color: #707070;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
/* ------------- Nouveau tableau recap ------------ */
|
||||
div.table_recap {
|
||||
margin-top: 6px;
|
||||
@ -4015,8 +4053,10 @@ div.table_recap {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.table_recap .but_off {
|
||||
.button.but_off,
|
||||
button.unselect {
|
||||
background-color: lightgray;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.table_recap button.but_on:hover:not(.disabled),
|
||||
|
@ -68,28 +68,18 @@ $(function () {
|
||||
});
|
||||
|
||||
// Affiche un message transitoire
|
||||
function sco_message(msg, color) {
|
||||
if (color === undefined) {
|
||||
color = "green";
|
||||
}
|
||||
$('#sco_msg').html(msg).show();
|
||||
if (color) {
|
||||
$('#sco_msg').css('color', color);
|
||||
}
|
||||
setTimeout(
|
||||
function () {
|
||||
$('#sco_msg').fadeOut(
|
||||
'slow',
|
||||
function () {
|
||||
$('#sco_msg').html('');
|
||||
}
|
||||
);
|
||||
},
|
||||
3000 // <-- duree affichage en milliseconds
|
||||
);
|
||||
function sco_message(msg) {
|
||||
var div = document.createElement("div");
|
||||
div.className = "message_curtom";
|
||||
div.innerHTML = msg;
|
||||
document.querySelector("body").appendChild(div);
|
||||
setTimeout(() => {
|
||||
div.remove();
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function get_query_args() {
|
||||
var s = window.location.search; // eg "?x=1&y=2"
|
||||
var vars = {};
|
||||
|
@ -21,7 +21,7 @@
|
||||
</section>
|
||||
|
||||
<section id="zoneChoix">
|
||||
<h2>Etudiants</h2>
|
||||
<h2>Étudiants</h2>
|
||||
<div class="autoAffectation">
|
||||
Affecter automatiquement les étudiants du groupe<br>
|
||||
<select name="affectationFrom" id="affectationFrom"></select>
|
||||
@ -178,9 +178,9 @@
|
||||
|
||||
<!-- Groupes -->
|
||||
<div class=groupes>
|
||||
<div data-idgroupe=aucun>
|
||||
<button class="dt-button" data-idgroupe=aucun>
|
||||
Non affectés
|
||||
</div>
|
||||
</button>
|
||||
<div class="editing ajoutGroupe">+</div>
|
||||
</div>
|
||||
|
||||
@ -210,7 +210,8 @@
|
||||
}
|
||||
|
||||
function templateFiltres_groupe(groupe) {
|
||||
let div = document.createElement("div");
|
||||
let div = document.createElement("button");
|
||||
div.classList.add("dt-button");
|
||||
div.dataset.idgroupe = groupe.id;
|
||||
div.innerHTML = `
|
||||
<span class="editing move">||</span>
|
||||
@ -456,7 +457,7 @@
|
||||
.then(r => { return r.json() })
|
||||
.then(r => {
|
||||
if (r.message == "invalid partition_name" || r.message == "invalid group_name") {
|
||||
message("Le nom " + name + " existe déjà");
|
||||
sco_message("Le nom " + name + " existe déjà");
|
||||
div.remove();
|
||||
return;
|
||||
}
|
||||
@ -537,7 +538,7 @@
|
||||
.then(r => { return r.json() })
|
||||
.then(r => {
|
||||
if (r.message == "invalid partition_name" || r.message == "invalid group_name") {
|
||||
message("Le nom " + name + " existe déjà");
|
||||
sco_message("Le nom " + name + " existe déjà");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -828,23 +829,9 @@
|
||||
return response.text();
|
||||
})
|
||||
.then(function(txt) {
|
||||
message(txt);
|
||||
sco_message(txt);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/* Message */
|
||||
/*************************/
|
||||
|
||||
function message(msg) {
|
||||
var div = document.createElement("div");
|
||||
div.className = "message_curtom";
|
||||
div.innerHTML = msg;
|
||||
document.querySelector("body").appendChild(div);
|
||||
setTimeout(() => {
|
||||
div.remove();
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
</script>
|
@ -910,7 +910,7 @@ def partition_editor(formsemestre_id: int):
|
||||
"js/partition_editor.js",
|
||||
],
|
||||
page_title=f"Partitions de {formsemestre.titre_annee()}",
|
||||
init_datatables=False,
|
||||
init_datatables=True,
|
||||
),
|
||||
f"""<h2>
|
||||
</h2>
|
||||
|
Loading…
Reference in New Issue
Block a user