<?php include_once "config.php"; ?>
<!DOCTYPE html>
<html lang="fr">

<head>
  <meta charset="utf-8" />
  <title>lanScan</title>
  <link rel="icon" href="favicon.ico" />
  <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.9.3/dist/semantic.min.css" />
  <link rel="stylesheet" type="text/css" href="style.css" />
  <style>
    body > .grid {
      height: 100%;
    }

    .logo {
      margin-right: 0 !important;
    }
  </style>
</head>

<body>

  <div class="ui middle aligned center aligned grid inverted">
    <div class="column" style="max-width: 450px;">
      <h2 class="ui inverted teal fluid image header logo">
        lan<?php include 'logo.svg'; ?>can
      </h2>
      <form id="scanForm" class="ui large form initial inverted" action="." method="get">
        <div class="ui left aligned stacked segment inverted">
          <h4 class=""ui header">Découvrir ou superviser un réseau</h4>
          <div class="inverted field">
            <select id="lanSelect" name="lan" class="search clearable selection dropdown">
              <option value=""><?= $_SERVER['REMOTE_ADDR']; ?>/24</option>
<?php
if (file_exists($SCANDIR)) {
  foreach (scandir($SCANDIR) as $filename) {
    if (substr($filename, -4) === '.xml') {
      $name = substr($filename, 0, -4);
      $name = str_replace("!", "/", $name);
      echo "              <option value='$name'>$name</option>\n";
    }
  }
}
?>
            </select>
          </div>
          <div class="ui error message"></div>
          <button type="submit" class="ui fluid large teal labeled icon submit button">
            <i class="satellite dish icon"></i>Scanner
          </button>
        </div>
      </form>

      <div class="ui inverted segment">
        <a href="options.php">Options avancées</a>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/semantic-ui/dist/semantic.min.js"></script>
  <script>
    $('#lanSelect').dropdown({allowAdditions: true, clearable: true})

    $('#scanForm').form({
      fields: {
        lan: {
          identifier: 'lanSelect',
          rules: [{
            type: 'regExp',
            value: /[a-zA-Z0-9._\/ \-]+/,
            prompt: "Les cibles peuvent être spécifiées par des noms d'hôtes, des adresses IP, des adresses de réseaux, etc.<br/>Exemples : <?= $_SERVER['REMOTE_ADDR']; ?>/24 <?= $_SERVER['SERVER_NAME']; ?> 10.0-255.0-255.1-254"
          }]
        }
      }
    });

    scanForm.onsubmit = function(event) {
      if (this.checkValidity()) {
        scanForm.classList.add("loading")
        $.toast({
            title      : 'Scan en cours...',
            message    : 'Merci de patienter',
            class      : 'info',
            showIcon   : 'satellite dish',
            displayTime: 0,
            closeIcon  : true,
            position   : 'bottom right',
        })
        return true
      } else {
        event.preventDefault()
        this.reportValidity()
      }
    }
    
  </script>

</body>

</html