update.html 13 KB
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css">
    <link rem="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css">
    <link rel="stylesheet" th:href="@{/css/upload.css}">
    <title>Update</title>
</head>

<body>
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
        <div class="container">
            <a th:href="@{/home}"><span class="navbar-brand"><img style="max-width:32px;" src="/pfelogo.png"></span></a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
                <div class="navbar-nav mr-auto">
                    <a class="nav-item nav-link" th:href="@{/upload}">Uploader un fichier</a>
                    <div th:remove="tag" th:switch="${customerRole}">
                        <div th:remove="tag" th:case="'ADMIN'">
                            <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a>
                            <a class="nav-item nav-link" th:href="@{/all}">Liste des utilisateurs</a>
                            <a class="nav-item nav-link active" th:href="@{/update}">Paramétrer une mise à jour</a>
                        </div>
                        <div th:remove="tag" th:case="'USER'">
                            <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a>
                        </div>
                    </div>
                </div>
            </div>
            <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" >
                <div class="navbar-nav ml-auto">
                    <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a>
                </div>
            </div>
        </div>
    </nav>

    <div class="container" style="padding-bottom: 50px;">

        <!--

        <div th:remove="tag" th:if="${customerRole} == 'ADMIN'">
            <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Changer la configuration réseau</h1>
            <div class="input-team mb-3">
                <div class="input-team-prepend">
                    <button id="config_send" class="btn btn-outline-secondary" type="button">Envoyer</button>
                </div>
                <div class="custom-file">
                    <input type="file" class="custom-file-input" id="configInputFile">
                    <label id="config_name" class="custom-file-label" for="configInputFile">Choisir un fichier</label>
                </div>
            </div>

            <div class="form-team">
                <label for="comment">Exemple :</label>
                 <textarea readonly class="form-control" rows="5" id="comment">
nodes:
    - name: AT-001
      ip: '85.10.201.246'
      arch: ARM
    - name: AT-002
      ip: '85.10.201.247'
      arch: ARM
    - name: AT-003
      ip: '85.10.201.248'
      arch: ARM
                </textarea>
            </div>
        </div>

        -->

        <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Paramétrer le réseau</h1>

        <div class="input-group mb-3">
            <div class="input-group-prepend">
                <span class="input-group-text">Nom</span>
            </div>
            <input id="nodeName" type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
        </div>

        <div class="input-group mb-3">
            <div class="input-group-prepend">
                <span class="input-group-text">IP</span>
            </div>
            <input id="nodeIP" type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
        </div>

        <div class="input-group mb-3">
            <div class="input-group-prepend">
                <span class="input-group-text">Architecture</span>
            </div>
            <input id="nodeArch" type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
        </div>

        <h3>Capteurs</h3><br/>

        <div class="input-group mb-3">
            <div class="input-group-prepend">
                <span class="input-group-text">Nom</span>
            </div>
            <input id="sensorName" type="text" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
        </div>

        <button id="addSensor" type="button" class="btn btn-primary" style="margin-bottom:50px;">Ajouter un capteur</button>

        <table id="sensorsTable" class="table" style="margin-bottom:50px;">
        </table>

        <button id="addNode" type="button" class="btn btn-success" style="margin-bottom:50px;">Ajouter ce noeud</button>
        <button id="editNode" type="button" class="btn btn-warning" style="margin-bottom:50px;">Appliquer les modifications</button>
        <button id="delNode" type="button" class="btn btn-danger" style="margin-bottom:50px;">Supprimer ce noeud</button>
        <button type="button" class="btn btn-info" data-toggle="modal" data-target="#networkDisplay" style="margin-bottom:50px;">
            Afficher le réseau en création
        </button>

        <br/>

        <button id="prevNode" type="button" class="btn btn-secondary"><</button>
        <button id="allDone" type="button" class="btn btn-primary">Terminer</button>
        <button id="nextNode" type="button" class="btn btn-secondary">></button>

        <!-- The Modal -->
        <div class="modal fade" id="networkDisplay">
            <div class="modal-dialog modal-dialog-centered">
                <div class="modal-content">
                    <!-- Modal Header -->
                    <div class="modal-header">
                        <h4 class="modal-title">Apercu de réseau en création</h4>
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                    </div>
                    <!-- Modal body -->
                    <div class="modal-body" id="network">
                    </div>
                    <!-- Modal footer -->
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">fermer</button>
                    </div>

                </div>
            </div>
        </div>

        <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Lancer une mise à jour</h1>
        <div class="form-team">
            <select multiple id="maj_name" class="form-control">
                <option value="--">--</option>
                <option th:each="update : ${customerMaj}" th:value="${update.getUpdate()}" th:utext="${update.getUpdate()}"/>
            </select>
            <button id="start_maj" type="submit" class="btn btn-primary" style="margin-top:20px;">Lancer la mise à jour</button>
        </div>
        <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Créer une mise à jour</h1>

        <table id="nodes-table" class="table table-striped table-bordered dt-responsive nowrap">
            <thead>
            <tr>
                <th>Nom</th>
                <th>IP</th>
                <th>Architecture</th>
                <th>Capteur</th>
            </tr>
            </thead>
            <tbody>
            <div th:each="node : ${nodes}">
                <tr th:each="sensor : ${node.getSensors()}">
                    <td th:text="${node.getName()}">name</td>
                    <td th:text="${node.getIp()}">ip</td>
                    <td th:text="${node.getArch()}">arch</td>
                    <td th:text="${sensor.getName()}">sensor</td>
                </tr>
            </div>
            </tbody>
        </table>

        <div class="form-team">
            <input type="text" class="form-control" id="majName" placeholder="Nom de la mise à jour" name="update" style="margin-top:20px;">
        </div>
        <br/>
        <p>Date de l'expérimentation</p>
        <div class="form-team">
            <input type="datetime-local" class="form-control" id="majDate" placeholder="Date de la mise à jour" name="date">
        </div>
        <br/>
        <p>Durée de l'expérimentation (hh:mm)</p>
        <div class="form-team">
            <input type="time" class="form-control" id="majTime" placeholder="Durée" name="time">
        </div>
        <br/>
        <select multiple class="form-control" style="margin-bottom:20px;" id="file_choice">
            <option value="--">--</option>
            <option th:each="file : ${customerFiles}" th:value="${file}" th:utext="${file}"/>
        </select>
        <button id="save_maj" type="submit" class="btn btn-primary">Sauvegarder la mise à jour</button>
        <!--<button id="run_maj" type="submit" class="btn btn-primary">Lancer la mise à jour</button>-->
    </div>

    <div class="modal fade" id="warningFilesNumber" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="modal-title">Attention</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div id="modal-content" class="modal-body">
                    Veuillez choisir un ou plusieurs noeuds dans le tableau
                </div>
                <div class="modal-footer">
                    <button id="modal-button" type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
                </div>
            </div>
        </div>
    </div>

    <div class="modal fade" id="warningConf" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="modal-title">Attention</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div id="modal-content" class="modal-body">
                    Certains champs sont vides !
                </div>
                <div class="modal-footer">
                    <button id="modal-button" type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
                </div>
            </div>
        </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js" charset="utf-8"></script>
    <script src="https://cdn.datatables.net/select/1.2.7/js/dataTables.select.min.js" charset="utf-8"></script>
    <script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js" charset="utf-8"></script>
    <script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js" charset="utf-8"></script>
    <script th:src="@{/js/update.js}"></script>
    <script th:src="@{/js/nodes.js}"></script>

</body>
</html>