Materialized

This commit is contained in:
Adrien MALINGREY 2021-09-26 01:43:44 +02:00
parent 3383d1b614
commit f82aa4c734
13 changed files with 21611 additions and 133 deletions

23
css/icons.css Normal file
View File

@ -0,0 +1,23 @@
/* fallback */
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(../fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-moz-font-feature-settings: 'liga';
-moz-osx-font-smoothing: grayscale;
}

9085
css/materialize.css vendored Normal file

File diff suppressed because it is too large Load Diff

10
css/style.css Normal file
View File

@ -0,0 +1,10 @@
.td-input {
padding: 0;
}
.td-input input[type="text"]:not(.browser-default) {
margin: 0;
background-repeat: no-repeat;
background-position: right center;
}

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -1,7 +1,21 @@
<?php include "connect.php"; ?>
<html>
<head>
<title>TablIP</title>
<link rel="stylesheet" href="css/style.css"/>
<link rel="stylesheet" href="css/icons.css"/>
<link rel="stylesheet" href="css/materialize.css"/>
<script type="text/javascript" src="js/script.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>
<script type="text/javascript" src="js/materialize.js"></script>
<?php <?php
if (isset($_GET["site"])) { if (isset($_GET["site"])) {
include "siteNetworks.php"; include "siteNetworks.php";
} else { } else {
include "sitesList.php"; include "sitesList.php";
} }
?> ?>
</body>
</html>

12374
js/materialize.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
function updateHost(input) { function updateHost(input) {
input.style.backgroundImage = 'url(wait.gif)' input.style.backgroundImage = 'url(img/wait.gif)'
input.style.fontStyle = "italic" input.style.fontStyle = "italic"
fetch(new Request("updateHost.php", { fetch(new Request("updateHost.php", {
method:"POST", method:"POST",
@ -10,7 +10,7 @@ function updateHost(input) {
input.style.backgroundImage = '' input.style.backgroundImage = ''
input.style.fontStyle = "" input.style.fontStyle = ""
} else { } else {
input.style.backgroundImage = 'url(nok.png)' input.style.backgroundImage = 'url(img/nok.png)'
} }
}) })
} }

View File

@ -1,7 +1,6 @@
<?php <?php
$MAX_LINES = 2500; $MAX_LINES = 2500;
include "connect.php";
$siteName = $_GET["site"]; $siteName = $_GET["site"];
// Check if site is known // Check if site is known
$site = $db->prepare('SELECT id from Sites WHERE Name=:siteName'); $site = $db->prepare('SELECT id from Sites WHERE Name=:siteName');
@ -13,17 +12,19 @@ if (!$siteId) {
} }
?> ?>
<html>
<head>
<title>TablIP - <?=$siteName?></title>
<link rel="stylesheet" href="style.css"/>
<script src="script.js"></script>
</head>
<body>
<header> <header>
<h1>TablIP</h1> <nav>
<h2><?=$siteName?></h2> <div class="nav-wrapper navbar-fixed cyan lighten-2">
<a href="." class="brand-logo center">TablIP</a>
<div>
<a href="." class="breadcrumb">Sites</a>
<a href=".?Site=<?=$siteName?>" class="breadcrumb"><?=$siteName?></a>
</div>
</div>
</nav>
</header> </header>
<div class="container">
<h1><?=$siteName?></h1>
<?php <?php
$networks = $db->query("SELECT * FROM `Networks` WHERE `SiteId` = $siteId"); $networks = $db->query("SELECT * FROM `Networks` WHERE `SiteId` = $siteId");
@ -33,71 +34,81 @@ while ($network = $networks->fetch())
$networkAddress = (int) $network["Address"]; $networkAddress = (int) $network["Address"];
$networkMask = (int) $network["Mask"]; $networkMask = (int) $network["Mask"];
?> ?>
<table style="width:100%"> <div class="card">
<caption><?=$network['Name']." : ".long2ip($networkAddress)." / ".long2ip($networkMask)?><caption> <div class="card-content">
<thead> <span class="card-title"><?=$network['Name']." @ ".long2ip($networkAddress)." / ".long2ip($networkMask)?></span>
<tr> <table class="striped responsive-table">
<th>Adresse IP</th> <thead>
<th>Nom d'hôte</th> <tr>
<th>FQDN</th> <th>Adresse IP</th>
<th>Adresse MAC</th> <th>Nom d'hôte</th>
<th>Commentaires</th> <th>FQDN</th>
<tr> <th>Adresse MAC</th>
<td><em><?= long2ip($networkAddress)?></em></td> <th>Commentaires</th>
<td colspan="4"><em>Adresse réseau</em></td> <tr>
</tr> <td><em><?= long2ip($networkAddress)?></em></td>
</tr> <td colspan="4"><em>Adresse réseau</em></td>
</thead> </tr>
<tbody> </tr>
</thead>
<tbody>
<?php <?php
for ($ip = $networkAddress + 1; ($ip+1 & $networkMask) == $networkAddress && $ip < $networkAddress + $MAX_LINES; $ip++ ) { for ($ip = $networkAddress + 1; ($ip+1 & $networkMask) == $networkAddress && $ip < $networkAddress + $MAX_LINES; $ip++ ) {
$hosts = $db->query("SELECT * from `Hosts` WHERE IPAddress=$ip AND NetworkId=$networkId"); $hosts = $db->query("SELECT * from `Hosts` WHERE IPAddress=$ip AND NetworkId=$networkId");
$host = $hosts->fetch(); $host = $hosts->fetch();
?> ?>
<tr> <tr>
<form> <form>
<input type="hidden" name="Ip" value=<?=$ip?>/> <input type="hidden" name="Ip" value=<?=$ip?>/>
<input type="hidden" name="NetworkId" value=<?=$networkId?>/> <input type="hidden" name="NetworkId" value=<?=$networkId?>/>
<td><?=long2ip($ip)?></td> <td><?=long2ip($ip)?></td>
<td><input type="text" onchange="updateHost(this)" name='Hostname' value="<?=$host["Hostname"]?>"/></td> <td class="td-input"><input type="text" onchange="updateHost(this)" name='Hostname' value="<?=$host["Hostname"]?>"/></td>
<td><input type="text" onchange="updateHost(this)" name='FQDN' value="<?=$host["FQDN"]?>"/></td> <td class="td-input"><input type="text" onchange="updateHost(this)" name='FQDN' value="<?=$host["FQDN"]?>"/></td>
<td><input type="text" onchange="updateHost(this)" name='MacAddress' value="<?=$host["MacAddress"]?>"/></td> <td class="td-input"><input type="text" onchange="updateHost(this)" name='MacAddress' value="<?=$host["MacAddress"]?>"/></td>
<td><input type="text" onchange="updateHost(this)" name='Comments' value="<?=$host["Comments"]?>"/></td> <td class="td-input"><input type="text" onchange="updateHost(this)" name='Comments' value="<?=$host["Comments"]?>"/></td>
</form> </form>
</tr> </tr>
<?php <?php
} }
?> ?>
</tbody> </tbody>
<tfoot> <tfoot>
<tr> <tr>
<td><em><?= long2ip($ip)?></em></td> <td><em><?= long2ip($ip)?></em></td>
<td colspan="4"><em>Adresse de diffusion</em></td> <td colspan="4"><em>Adresse de diffusion</em></td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>
</div>
</div>
<?php <?php
} }
$networks->closeCursor(); $networks->closeCursor();
?> ?>
<form name="addNetwork" id="addNetwork" action="addNetwork.php" method="post"> <div class="card teal lighten-5">
<fieldset class="add"> <div class="card-content">
<legend>Ajouter un réseau</legend> <span class="card-title">Nouveau réseau</span>
<label for="nameInput">Nom</label> <form name="addNetwork" id="addNetwork" action="addNetwork.php" method="post">
<input type="text" id="nameInput" name="name" required/> <input type="hidden" name="siteId" value="<?=$siteId?>"/>
<label for="gatewayInput">Passerelle</label> <input type="hidden" name="siteName" value="<?=$siteName?>"/>
<input type="text" id="gatewayInput" name="gateway" pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"/> <div class="input-field">
<label for="maskInput">Masque</label> <label for="nameInput">Nom</label>
<input type="text" id="maskInput" name="mask" pattern="^((0|128|192|224|240|248|252|255)\.0\.0.0|255\.(0|128|192|224|240|248|252|255)\.0\.0|255\.255\.(0|128|192|224|240|248|252|255)\.0|255\.255\.255\.(0|128|192|224|240|248|252|255))$"'/> <input type="text" class="validate" id="nameInput" name="name" placeholder="LAN" required/>
<input type="hidden" name="siteId" value="<?=$siteId?>"/> </div>
<input type="hidden" name="siteName" value="<?=$siteName?>"/> <div class="input-field">
<button id="addButton" type="submit">Ajouter</button> <label for="gatewayInput">Passerelle</label>
</fieldset> <input type="text" class="validate" id="gatewayInput" name="gateway" placeholder="192.168.0.1" pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"/>
</form> </div>
<div class="input-field">
<label for="maskInput">Masque</label>
<input type="text" class="validate" id="maskInput" name="mask" placeholder="255.255.255.0" pattern="^((0|128|192|224|240|248|252|255)\.0\.0.0|255\.(0|128|192|224|240|248|252|255)\.0\.0|255\.255\.(0|128|192|224|240|248|252|255)\.0|255\.255\.255\.(0|128|192|224|240|248|252|255))$"'/>
</div>
<button type="submit" class="btn-floating halfway-fab waves-effect waves-light teal"><i class="material-icons">add</i></button>
</form>
</div>
</div>
</div>
<footer>
<a href=".">Accueil</a>
</footer>
</body>
</html>

View File

@ -1,32 +1,38 @@
<html>
<head>
<title>TablIP</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<header> <header>
<h1>TablIP</h1> <nav>
<div class="nav-wrapper navbar-fixed teal lighten-2">
<a href="." class="brand-logo center">TablIP</a>
<div>
<a href="." class="breadcrumb">Sites</a>
</div>
</div>
</nav>
</header> </header>
<ul> <div class="container">
<h1>Sites</h1>
<div class="collection">
<?php <?php
include "connect.php"; include "connect.php";
$sites = $db->query('SELECT Name FROM Site ORDER BY Name'); $sites = $db->query('SELECT Name FROM Sites ORDER BY Name');
while ($site = $sites->fetch()) while ($site = $sites->fetch())
{ {
echo " <li><a href='.?site=${site['Name']}'>${site['Name']}</a></li>\n"; echo " <a href='.?site=${site['Name']}' class='collection-item'>${site['Name']}</a>\n";
} }
$sites->closeCursor(); $sites->closeCursor();
?> ?>
</ul> </div>
<form name="addSite" id="addSite" action="addSite.php" method="post"> <div class="card teal lighten-5">
<fieldset class="add"> <div class="card-content">
<legend>Ajouter un site</legend> <span class="card-title">Nouveau site</span>
<label for="siteName">Nom</label> <form name="addSite" id="addSite" action="addSite.php" method="post">
<input type="text" id="siteName" name="siteName" required/> <div class="input-field">
<button type="submit">Ajouter</button> <label for="siteName">Nom</label>
</fieldset> <input type="text" class="validate" id="siteName" name="siteName" placeholder="Site" required/>
</form> </div>
</body> <button type="submit" class="btn-floating halfway-fab waves-effect waves-light teal"><i class="material-icons">add</i></button>
</html> </form>
</div>
</div>
</div>

View File

@ -1,45 +0,0 @@
body {
margin: auto 1em;
}
header {
text-align: center;
}
li {
list-style: none;
}
table {
border-collapse: collapse;
}
th, td {
border: solid 1px;
}
td {
padding: 0;
}
td input {
border: 0;
background-repeat: no-repeat;
background-position: right center;
width: 100%;
}
.add {
display: grid;
grid-template-columns: 1fr 2fr;
grid-gap: 1em;
}
.add button {
width: 100%;
margin: auto;
grid-column: 1/3;
}
footer {
text-align: center;
}