Skip to content
Snippets Groups Projects
index.html 20.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    <!DOCTYPE html>
    <html lang="it">
    
    <head>
        <meta charset="utf-8">
        <title id="title">SmartHome</title>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <link rel="icon" href="res/favicon.png">
    
        <!-- link all other useful scripts -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- link crypto.js -->
        <script defer src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- <script defer src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript"></script> -->
        <script defer src="js/mqtt/paho.javascript-1.0.3/paho-mqtt.js" type="text/javascript"></script>
        <script defer src="js/mqtt/mqtthat.js" type="module"></script>
        <!-- <script defer src="js/multithread.js-master/multithread.js"></script> -->
        <!-- qui sopra viene usato per quando la beagle bone invia un messaggio che dev'essere mostrato all'utente dall'intefaccia -->
    
        <!-- link bootstrap -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
            integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
        <script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
    
            crossorigin="anonymous"></script>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- link fontawesome (for icons)-->
        <!-- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
                integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> -->
        <script defer src="https://kit.fontawesome.com/a1635545b7.js" crossorigin="anonymous"></script>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- link my scripts and styles -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <link rel="stylesheet" href="css/style.css" type="text/css">
        <link rel="stylesheet" href="css/buttons.css" type="text/css">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- link ts/stript.ts which calls other scripts -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <script defer src="js/scriptIndex.js" type="module"></script>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    </head>
    
    
    Elisa Giglio's avatar
    Elisa Giglio committed
    <body id="body-id">
    
        <h1>Pissir SmartHome ${nomeCasa o nomeProprio}</h1>
    
        <div id="alert-message" role="alert" class="alert invisible">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            <!-- <div class="d-flex justify-content-around container-fluid">
                <i class="fa-solid fa-exclamation-circle fa-4x" aria-hidden="true"></i>
                <div>
                    <h4 class="alert-heading">Attenzione</h4>
                    <p>Stai registrando uno scenario, termina la registrazione per attivare l'antifurto.</p>
                </div>
            </div> -->
    
            <!-- any error or confirmation goes here (updated by JS) -->
    
            <!-- alert-danger -->
            <!-- alert-success -->
    
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    
        <!-- container of the top buttons to change what is seen -->
        <div id="mainButtonContainer" class="d-flex flex-row justify-content-around">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            <button class="btn-12 btn btn-dark">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                <span>Luci</span>
            </button>
            <button class="btn-12 btn btn-dark">
                <span>Scenari</span>
            </button>
            <button class="btn-12 btn btn-dark">
                <span>Antifurto</span>
            </button>
        </div>
        <!-- actual containers -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <div id="luciContainer" class="invisible container-fluid">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            <!-- luci -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            <table class="table table-striped">
                <thead>
    
                    <tr class="more-margin-top">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <th scope="col">Luogo</th>
                        <th scope="col">Stato</th>
                    </tr>
                </thead>
    
                <tbody id="table-row-luci">
                    <!-- template for each row; here will be filled by JS -->
                    <!-- <tr>
    
                        <th scope="row" id="${luce.id}>Cucina</th>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <td>
                            <div class="switch-container no-box-sizing">
                                <div class="toggle-button no-box-sizing">
                                    <div class="inner-circle no-box-sizing" />
                                </div>
                            </div>
                        </td>
    
                    </tr> -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    <!-- row to add a new element -->
                    <tr>
                        <th scope="row">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                            <!-- FIXME show fa-bounce if there's at no light [it moves the button :/] -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                            <i class="fa-solid fa-circle-plus fa-2x" data-bs-toggle="modal"
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                                data-bs-target="#luci-modal"></i>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        </th>
                        <td>
                            <span>Aggiungi una luce</span>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    
        <!-- scenari -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <div id="scenariContainer" class="invisible container-fluid">
    
            <table class="table table-striped">
                <thead>
                    <tr class="more-margin-top">
                        <th scope="col">Nome</th>
                        <th scope="col">Data</th>
    
                        <!-- <th scope="col">Prova</th> -->
    
                        <th scope="col">Attiva</th>
                    </tr>
                </thead>
                <tbody id="table-row-scenari">
                    <!-- template for each row; here will be filled by JS -->
                    <!-- <tr id="scenario-0">
                        <th scope="row">Festivit&agrave;</th>
                        <td>
                            <span>25 Dic.</span>
                        </td>
                        <td>
                            <div class="switch-container no-box-sizing">
                                <div class="toggle-button no-box-sizing" data-bs-toggle="modal" data-bs-target="#attiva-scenari-modal">
                                    <div class="inner-circle no-box-sizing"></div>
                                </div>
                            </div>
                        </td>
                    </tr> -->
                </tbody>
            </table>
    
            <div class="position-relative">
                <button id="scenari-registra" type="button"
                    class="btn btn-info position-absolute top-0 start-50 translate-middle-x">
                    Registra
    
                </button>
    
                <div class="position-absolute top-0 end-10px">
                    <span>
                        Antifurto:
                    </span>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    <button type="button" class="btn btn-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" id="scenari-stato-antifurto">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            </div>
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- antifurto -->
        <div id="antifurtoContainer" class="invisible container-fluid">
            <div class="progress">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 0%"
                    aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" id="antifurto-progress">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                </div>
            </div>
            <div class="position-relative">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                <button type="button" class="btn btn-info position-absolute top-0 start-50 translate-middle-x"
                    id="setup-button-antifurto" data-bs-toggle="modal" data-bs-target="#setup-antifurto-modal">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    Setup
                </button>
                <div class="position-absolute top-0 end-10px">
                    <span>
                        Antifurto:
                    </span>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    <button type="button" class="btn btn-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" id="antifurto-stato-antifurto">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        OFF
                    </button>
                </div>
            </div>
    
            <i class="fa-solid fa-bell fa-3x" id="antifurto-bell" data-bs-toggle="tooltip" data-bs-placement="bottom"></i>
            <!-- <i class="fa-brands fa-github fa-3x" id="boost-progressbar">
            </i> -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            <div id="sensoriContainer" class="container-fluid">
                <ul class="d-flex flex-row justify-content-center more-margin-top no-padding-left">
                    <!-- <li class="d-flex flex-column">
                        <span class="d-flex justify-content-center">
                            <img id="sensore-in1" src="res/led-red.png" alt="sensore in0" class="" height="70" width="70"
                                data-bs-toggle="tooltip" data-bs-placement="bottom" title="I believe I could even add a very long text and still be able to make it pretty!">
                        </span>
                        <p class="d-flex justify-content-center">in1</p>
                    </li> -->
                </ul>
            </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- modals for new stuff -->
    
        <!-- luci modal -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <div class="modal fade" id="luci-modal" tabindex="-1" aria-hidden="true">
    
            <div class="modal-dialog modal-dialog-centered">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Nuova luce</h5>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <!-- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
    
                    <form method="POST" id="search-form">
                        <div class="modal-body">
                            <div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                                <label for="#luogoLuce" class="form-label">Luogo</label>
    
                                <!-- <input type="text" class="form-control" id="luogoLuce" aria-describedby="luogoLuceHelp" required> -->
                                <select class="form-select" id="luogoLuce" name="luogo">
                                    <option value="unselected" selected>Scegli un luogo</option>
                                    <option value="cucina">Cucina</option>
                                    <option value="camera1">Camera 1</option>
                                    <option value="camera2">Camera 2</option>
                                    <option value="bagno">Bagno</option>
                                    <option value="ingresso">Ingresso</option>
                                    <option value="soggiorno">Soggiorno</option>
                                    <option value="giardino">Giardino</option>
                                    <option value="garage">Garage</option>
                                    <option value="altro">Altro</option>
                                </select>
                                <div id="luogoLuceHelp" class="form-text">Scegli la stanza in cui si trova la tua
                                    luce.</div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                                <label for="#scelta-porta-in" class="more-margin-top form-label">Porta di
    
                                <select class="form-select scelta-porta-in" id="scelta-porta-in" name="porta-in">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                                    <option value="unselected">Scegli una porta di attivazione</option>
                                    <!-- <option value="in0">in0</option> -->
                                    <!-- TODO js populate the options with the available sensors -->
                                </select>
                                <div class="form-text">Scegli una porta di attivazione della luce.</div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                                <label for="#scelta-porta-out" class="more-margin-top form-label">Porta della luce</label>
    
                                <select class="form-select scelta-porta-out" id="scelta-porta-out" name="porta-out">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                                    <option value="unselected">Scegli la porta della luce</option>
                                    <!-- <option value="in0">in0</option> -->
                                    <!-- TODO js populate the options with the available sensors -->
                                </select>
                                <div class="form-text">Scegli la porta in cui si trova la luce.</div>
    
                            </div>
                            <div class="invisible" id="nuovaStanzaDIV">
                                <label for="nuovaStanza" class="form-label">Nuova stanza</label>
    
                                <input type="text" class="form-control" id="nuovaStanza" aria-describedby="nuovaStanzaHelp">
    
                                <div id="nuovaStanzaHelp" class="form-text">Inserisci il nome della nuova stanza.</div>
                            </div>
                        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <div class="modal-footer justify-content-around">
                            <button type="button" class="btn btn-secondary w-25" data-bs-dismiss="modal">Cancel</button>
                            <button type="submit" class="btn btn-primary w-25">Add</button>
    
                        </div>
                    </form>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                </div>
            </div>
        </div>
    
        <!-- scenari modal -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <span id="registra-modal-launcer" data-bs-toggle="modal" data-bs-target="#scenari-modal" class="invisible"></span>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <div class="modal fade" id="scenari-modal" tabindex="-1" aria-hidden="true">
    
            <div class="modal-dialog modal-dialog-centered">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                <div class="modal-content">
                    <div class="modal-header">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <h3 class="modal-title">Avviso:</h3>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>
                    <div class="modal-body">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <p>Stai per attivare la registrazione dei comandi.</p>
                        <p>Dal momento in cui premerai sul bottone azzurro, inizierai a registrare tutte le interazioni con
                            le tue luci.</p>
                        <p>Inoltre disabiliterai eventuali scenari attivi.</p>
                        <p>Una volta che sarai soddisfatto del risultato, torna su questa pagina per terminare la
                            registrazione.</p>
                        <p>Iniziare la registrazione?</p>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    <div class="modal-footer justify-content-around">
                        <button type="button" class="btn btn-danger w-25" data-bs-dismiss="modal">Annulla</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <button type="button" class="btn btn-info w-25" id="scenari-modal-recordbtn" data-bs-toggle="tooltip" data-bs-placement="bottom">Registra</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
                </div>
            </div>
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <span id="termina-registrazione-launcher" data-bs-toggle="modal" data-bs-target="#termina-registrazione-modal"
            class="invisible"></span>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <div class="modal fade" id="termina-registrazione-modal" tabindex="-1" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Registrazione dello scenario</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>
                    <form method="POST" id="termina-registrazione-form">
                        <div class="modal-body">
                            <label for="nome-nuovo-scenario" class="form-label">Nome</label>
                            <input type="text" class="form-control" id="nome-nuovo-scenario"
                                placeholder="Nome della registrazione" required>
                        </div>
                        <div class="modal-footer justify-content-around">
                            <button type="button" class="btn btn-danger w-25" data-bs-dismiss="modal">Annulla</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                            <button type="submit" class="btn btn-success w-25" data-bs-toggle="tooltip" data-bs-placement="bottom">Conferma</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        </div>
                    </form>
                </div>
            </div>
        </div>
    
        <div class="modal fade" id="attiva-scenari-modal" tabindex="-1" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                <div class="modal-content">
                    <div class="modal-header">
    
                        <h5 class="modal-title">Attenzione!</h5>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
                    <div class="modal-body">
    
                        <p>Attivando questo scenario, abiliterai l'antifurto.</p>
                        <fieldset disabled>
                            <select id="p" class="form-select">
                                <!-- <option value="0">${scenario.nome}</option> -->
                            </select>
                        </fieldset>
                        <p class="more-margin-top">Inoltre disabiliterai gli altri scenari attivi.</p>
                        <p>Continuare l'attivazione?</p>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    <div class="modal-footer justify-content-around">
                        <button type="button" class="btn btn-danger w-25" data-bs-dismiss="modal">Cancella</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <button type="button" class="btn btn-success w-25" id="attiva-scenari-btn" data-bs-toggle="tooltip" data-bs-placement="bottom">Attiva</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
                </div>
            </div>
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- scenari-antifurto modal -->
        <span id="lancia-antifurto-modal" class="invisible" data-bs-toggle="modal" data-bs-target="#antifurto-modal"></span>
    
        <div class="modal fade" id="antifurto-modal" tabindex="-1" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Attenzione!</h5>
                        <!-- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> -->
                    </div>
                    <div class="modal-body">
                        <p>Stai per abilitare l'antifurto.</p>
                        <p>Vuoi continuare?</p>
                    </div>
                    <div class="modal-footer justify-content-around">
                        <button type="button" class="btn btn-danger w-25" data-bs-dismiss="modal">Cancella</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <button type="button" class="btn btn-success w-25" data-bs-toggle="tooltip" data-bs-placement="bottom" id="attiva-antifurto-btn">Attiva</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
                </div>
            </div>
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <!-- set up antifurto modal -->
        <!-- <span id="setup-modal-launcher-antifurto" class="invisible" data-bs-toggle="modal"
            data-bs-target="#setup-antifurto-modal"></span> -->
        <div class="modal fade" id="setup-antifurto-modal" tabindex="-1" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Personalizzazione:</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>
                    <form method="post" id="setup-antifurto-form">
                        <div class="modal-body">
                            <label for="sogliaAntifurto" class="form-label">Soglia</label>
                            <input type="text" class="form-control" id="sogliaAntifurto" aria-describedby="nuovaStanzaHelp">
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                            <div id="sogliaAntifurtoHelp" class="form-text">Inserisci il valore oltre il quale attivare
                                l'antifurto.</div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        </div>
                        <div class="modal-footer justify-content-around">
                            <button type="button" class="btn btn-danger w-25" data-bs-dismiss="modal">Cancella</button>
                            <button type="submit" class="btn btn-success w-25">Perfetto</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
        <!-- antifurto modal -->
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <span id="antifurto-modal-launcher" class="invisible" data-bs-toggle="modal"
            data-bs-target="#toggle-antifurto-modal"></span>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        <div class="modal fade" id="toggle-antifurto-modal" tabindex="-1" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title">Attenzione!</h5>
                        <!-- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> -->
                    </div>
                    <div class="modal-body">
                        <p>Stai per abilitare l'antifurto.</p>
                        <p>Vuoi continuare?</p>
                    </div>
                    <div class="modal-footer justify-content-around">
                        <button type="button" class="btn btn-danger w-25" data-bs-dismiss="modal">Cancella</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                        <button type="button" class="btn btn-success w-25" data-bs-toggle="tooltip" data-bs-placement="bottom" id="toggle-antifurto-btn">Attiva</button>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                    </div>
                </div>
            </div>
        </div>
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    </body>