update.js 8.53 KB
$(document).ready(function() {

    /********** Start saved maj ************/

    var startMaj = document.getElementById("start_maj");

    startMaj.addEventListener('click', function() {
        var modalContent = document.getElementById("modal-content");
        var modalTitle = document.getElementById("modal-title");
        var majNameSelect = document.getElementById("maj_name").value;
        if(majNameSelect !== "" && majNameSelect !== "--") {
            var request = new XMLHttpRequest();
            request.open("POST", "/startsavedmaj");
            var formData = new FormData();
            formData.append("majname", majNameSelect);

            request.onreadystatechange = function() {
                if(this.readyState === XMLHttpRequest.DONE && this.status === 200) {
                    var modalButton = document.getElementById("modal-button");
                    modalButton.addEventListener('click', function() {
                        location.reload();
                    })
                    modalTitle.innerHTML = "Félicitations";
                    modalContent.innerHTML = "La mise à jour a bien été paramétrée";
                    $("#warningFilesNumber").modal();
                }
            }
            request.send(formData);
        }
        else {
            modalTitle.innerHTML = "Attention !";
            modalContent.innerHTML = "Veuillez choisir le nom d'une mise à jour";
            $("#warningFilesNumber").modal();
        }
    })

    var delMaj = document.getElementById("del_maj");

    delMaj.addEventListener('click', function() {
        var modalContent = document.getElementById("modal-content");
        var modalTitle = document.getElementById("modal-title");
        var majNameSelect = document.getElementById("maj_name").value;
        if(majNameSelect !== "" && majNameSelect !== "--") {
            var request = new XMLHttpRequest();
            request.open("POST", "/deleteupdate");
            var formData = new FormData();
            formData.append("majname", majNameSelect);

            request.onreadystatechange = function() {
                if(this.readyState === XMLHttpRequest.DONE && this.status === 200) {
                    var modalButton = document.getElementById("modal-button");
                    modalButton.addEventListener('click', function() {
                        location.reload();
                    })
                    modalTitle.innerHTML = "Félicitations";
                    modalContent.innerHTML = "La mise à jour a bien été supprimée";
                    $("#warningFilesNumber").modal();
                }
            }
            request.send(formData);
        }
        else {
            modalTitle.innerHTML = "Attention !";
            modalContent.innerHTML = "Veuillez choisir le nom d'une mise à jour";
            $("#warningFilesNumber").modal();
        }
    })

    /********** Tableau **********/

      var tableNodes = $('#nodes-table').DataTable( {
        "language":{
            "sProcessing":     "Traitement en cours...",
            "sSearch":         "Rechercher :",
            "sLengthMenu":     "Afficher _MENU_ éléments",
            "sInfo":           "Affichage de l'élément _START_ à _END_ sur _TOTAL_ éléments",
            "sInfoEmpty":      "Affichage de l'élément 0 à 0 sur 0 élément",
            "sInfoFiltered":   "(filtré de _MAX_ éléments au total)",
            "sInfoPostFix":    "",
            "sLoadingRecords": "Chargement en cours...",
            "sZeroRecords":    "Aucun élément à afficher",
            "sEmptyTable":     "Aucune donnée disponible dans le tableau",
            "oPaginate": {
                "sFirst":      "Premier",
                "sPrevious":   "Précédent",
                "sNext":       "Suivant",
                "sLast":       "Dernier"
            },
            "oAria": {
                "sSortAscending":  ": activer pour trier la colonne par ordre croissant",
                "sSortDescending": ": activer pour trier la colonne par ordre décroissant"
            },
            "select": {
                "rows": {
                    _: "%d lignes séléctionnées",
                    0: "Aucune ligne séléctionnée",
                    1: "1 ligne séléctionnée"
                }
            }
        },
        responsive: true,
        select: {
            style: 'multi'
        }
      });

      var nodeSet = new Set();
      var arch = "";
      var first = true;

      tableNodes.on('select', function (e, dt, type, indexes) {
        var rowData = tableNodes.rows(indexes).data().toArray()[0];
        nodeSet.add(rowData[3] + "@" + rowData[1]);
        var lastArch = arch;
        arch = rowData[2];
        if(first != true && lastArch != arch)
        {
            alert("Veuillez choisir la même architecture");
            tableNodes.rows().deselect();
            nodeSet.clear();
            first = true;
            arch = "";
            return;
        }
        first = false;
      } );

      tableNodes.on('deselect', function (e, dt, type, indexes) {
        var rowData = tableNodes.rows(indexes).data().toArray()[0];
        nodeSet.delete(rowData[3] + "@" + rowData[1]);
      } );

      var sendInfoMaj = function(action) {
          var form = document.createElement('form');
          form.setAttribute('action', action);
          form.setAttribute('method', 'post');

          var modalContent = document.getElementById("modal-content");
          var majName = document.getElementById("majName").value;
          var majDate = document.getElementById("majDate").value;
          var majTime = document.getElementById("majTime").value;
          var majFile = document.getElementById("file_choice").value;

          if(nodeSet.size == 0) {
              $("#warningFilesNumber").modal();
          }

          else if(majName === "") {
              modalContent.innerHTML = "Veuillez choisir un nom pour la mise à jour";
              $("#warningFilesNumber").modal();
          }

          else if(majDate === "") {
              modalContent.innerHTML = "Veuillez choisir une date pour la mise à jour"
              $("#warningFilesNumber").modal();
          }

          else if(majTime === "") {
              modalContent.innerHTML = "Veuillez choisir une durée pour la mise à jour"
              $("#warningFilesNumber").modal();
          }

          else if(majFile === "" || majFile === "--") {
              modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour"
              $("#warningFilesNumber").modal();
          }

          else {
              var nodes = Array.from(nodeSet);

              var inputvar1 = document.createElement('input');
              inputvar1.setAttribute('type', 'hidden');
              inputvar1.setAttribute('name', 'name');
              inputvar1.setAttribute('value', majName);
              form.appendChild(inputvar1);

              var inputvar2 = document.createElement('input');
              inputvar2.setAttribute('type', 'hidden');
              inputvar2.setAttribute('name', 'date');
              inputvar2.setAttribute('value', majDate);
              form.appendChild(inputvar2);

              var inputvar3 = document.createElement('input');
              inputvar3.setAttribute('type', 'hidden');
              inputvar3.setAttribute('name', 'nodes');
              inputvar3.setAttribute('value', nodes.join(";"));
              form.appendChild(inputvar3);

              var inputvar4 = document.createElement('input');
              inputvar4.setAttribute('type', 'hidden');
              inputvar4.setAttribute('name', 'file');
              inputvar4.setAttribute('value', majFile);
              form.appendChild(inputvar4);

              var inputvar5 = document.createElement('input');
              inputvar5.setAttribute('type', 'hidden');
              inputvar5.setAttribute('name', 'time');
              inputvar5.setAttribute('value', majTime);
              form.appendChild(inputvar5);

              var inputvar6 = document.createElement('input');
              inputvar6.setAttribute('type', 'hidden');
              inputvar6.setAttribute('name', 'arch');
              inputvar6.setAttribute('value', arch);
              form.appendChild(inputvar6);

              document.body.appendChild(form);
              form.submit();
          }
      }

      document.getElementById("save_maj").addEventListener('click', function() {
          sendInfoMaj('savemaj');
      });

} );