* Anzeige des Backupstatus (OK,älter als 48 Stunden, kein Backup vorhanden)
DeviceApicontroller:
* Update Devices hinzugefügt (nur last_config_backup update erlaubt)
Funktionsweise:
Sobald eine Config am API Server registriert wird, wird per API Richtung Tool der Timestamp der Config in der Tool-DB geupdated
Somit ist für die Übersicht keine direkte API Schnittstelle notwendig.
SmsNotification Klasse hinzugefügt.
Habs gleich wie die Emailnotification gehalten.
Ist zum puschen von SMSen an ein Absenderarray oder Einzelabsender.
Erfüllt in dem Commit noch keine Funktion.
Config Erweiterungen:
define("TT_OUTGOING_SMS_API_KEY", "key");
define("TT_OUTGOING_SMS_API_URL", "api.websms.com/rest");
160 lines
6.4 KiB
PHP
160 lines
6.4 KiB
PHP
<?php
|
|
$pagination_baseurl = $this->getUrl($Mod, "Index");
|
|
$pagination_baseurl_params = ["filter" => $filter];
|
|
$pagination_entity_name = "Device";
|
|
?>
|
|
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php"); ?>
|
|
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= date('U') ?>" rel="stylesheet"
|
|
type="text/css"/>
|
|
<!-- start page title -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="page-title-box">
|
|
<div class="page-title-right">
|
|
<ol class="breadcrumb m-0">
|
|
<li class="breadcrumb-item"><a href="<?= self::getUrl("Dashboard") ?>"><?= MFAPPNAME_SLUG ?></a>
|
|
</li>
|
|
<li class="breadcrumb-item active">Devices</li>
|
|
</ol>
|
|
</div>
|
|
<h4 class="page-title">Devices</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- end page title -->
|
|
|
|
|
|
<div class="card">
|
|
<div class="card-body mb-3">
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="float-left">
|
|
<h4 class="header-title">Liste aller Devices</h4>
|
|
</div>
|
|
<div class="float-right">
|
|
<a class="btn btn-primary mb-2" href="<?= self::getUrl("Device", "add") ?>"><i
|
|
class="fas fa-plus"></i> Neues Device anlegen</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --><?php //include(realpath(dirname(__FILE__) . "/../") . "/tpl/pagination.php"); ?>
|
|
<!-- --><?php //include(realpath(dirname(__FILE__) . "/../") . "/tpl/pagination-summary.php"); ?>
|
|
|
|
<table id="datatable" class="table table-striped table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Device Name</th>
|
|
<th class="text-center">Geräte Typ</th>
|
|
<th class="text-center">Hersteller</th>
|
|
<th class="text-center">Pop</th>
|
|
<th class="text-center">IP-Adresse</th>
|
|
<th class="text-center">Mac-Adresse</th>
|
|
<th class="text-center">Seriennummer</th>
|
|
<th class="text-center">Preis</th>
|
|
<th class="text-center">max. Leistung</th>
|
|
<th class="text-center">Backup</th>
|
|
<th class="edit-width"></th>
|
|
</tr>
|
|
<tr id="filterrow">
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
|
|
foreach ($devices as $device):
|
|
if ($device->price != "0.00") {
|
|
$price = $device->price;
|
|
} else {
|
|
$price = $device->devicetype->price;
|
|
}
|
|
if ($device->power != "0.0") {
|
|
$power = $device->power;
|
|
} else {
|
|
$power = $device->devicetype->power;
|
|
}
|
|
|
|
if ($device->last_config_backup) {
|
|
if (time() - $device->last_config_backup <= 172800) {
|
|
$backup = '<i class="fa-regular fa-circle-check"><span style="display: none">OK</span></i>';
|
|
} else {
|
|
$backup = '<i class="fa-regular fa-circle-xmark"><span style="display: none">AGED</span></i>';
|
|
}
|
|
|
|
|
|
} else {
|
|
$backup = '<i class="fa-regular fa-ban"><span style="display: none">N/A</span></i>';
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
<tr>
|
|
<td>
|
|
<a href="<?= self::getUrl("Device", "Detail", ["id" => $device->id]) ?>"><?= $device->name ?></a>
|
|
</td>
|
|
<td class="text-center"><?= $device->devicetype->name ?></td>
|
|
<td class="text-center"><?= $device->devicetype->devicemanufactor->name ?></td>
|
|
<td class="text-center"><?= $device->pop->name ?></td>
|
|
|
|
|
|
<td class="text-center"><?= $device->ip ?></td>
|
|
<td class="text-center"><?= $device->mac ?></td>
|
|
<td class="text-center"><?= $device->serial ?></td>
|
|
<td class="text-right"><?= $price ?> €</td>
|
|
<td class="text-right"><?= $power ?> Watt</td>
|
|
<td class="text-center"><?= $backup ?></td>
|
|
|
|
|
|
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em; width: 80px">
|
|
<a href="<?= self::getUrl("Device", "edit", ["id" => $device->id]) ?>"><i
|
|
class="far fa-edit" title="Bearbeiten"></i></a>
|
|
<a href="<?= self::getUrl("Device", "delete", ["id" => $device->id]) ?>"
|
|
onclick="if(!confirm('Device wirklich löschen?')) return false;" class="text-danger"
|
|
title="Löschen"><i class="fas fa-trash "></i></a>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- --><?php //include(realpath(dirname(__FILE__) . "/../") . "/tpl/pagination-summary.php"); ?>
|
|
<!-- --><?php //include(realpath(dirname(__FILE__) . "/../") . "/tpl/pagination.php"); ?>
|
|
<!---->
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript">
|
|
var hidesearch = [10];
|
|
var columndefs = {type: 'ip-address', targets: 4};
|
|
|
|
var columnfilter = [9];
|
|
|
|
$(document).ready(function () {
|
|
|
|
});
|
|
</script>
|
|
<script type="text/javascript"
|
|
src="<?= self::getResourcePath() ?>assets/js/datatables-std.js?<?= date('U') ?>"></script>
|
|
|
|
|
|
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>
|