summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2020-06-29 10:51:46 +0200
committerSimon Rettberg2020-07-30 13:26:52 +0200
commit086d666e191264688c0c5a9e34fe1e2228b29820 (patch)
tree258e269a2772edb0d31a141651a08d722ef84ec3
parent[inc/Request] Don't treat 0 as empty (diff)
downloadslx-admin-086d666e191264688c0c5a9e34fe1e2228b29820.tar.gz
slx-admin-086d666e191264688c0c5a9e34fe1e2228b29820.tar.xz
slx-admin-086d666e191264688c0c5a9e34fe1e2228b29820.zip
[locationinfo] Add option to show hostnames
-rw-r--r--modules-available/locationinfo/inc/infopanel.inc.php26
-rw-r--r--modules-available/locationinfo/inc/locationinfo.inc.php1
-rw-r--r--modules-available/locationinfo/lang/de/template-tags.json23
-rw-r--r--modules-available/locationinfo/lang/en/template-tags.json6
-rw-r--r--modules-available/locationinfo/page.inc.php4
-rwxr-xr-xmodules-available/locationinfo/templates/frontend-default.html12
-rw-r--r--modules-available/locationinfo/templates/page-config-panel-default.html16
7 files changed, 69 insertions, 19 deletions
diff --git a/modules-available/locationinfo/inc/infopanel.inc.php b/modules-available/locationinfo/inc/infopanel.inc.php
index 1e2e7313..b0ee0d56 100644
--- a/modules-available/locationinfo/inc/infopanel.inc.php
+++ b/modules-available/locationinfo/inc/infopanel.inc.php
@@ -65,7 +65,7 @@ class InfoPanel
$config['locations'][$lid]['config'] = $overrides[$lid];
}
}
- self::appendMachineData($config['locations'], $lids, true);
+ self::appendMachineData($config['locations'], $lids, true, $config['hostname']);
}
self::appendOpeningTimes($config['locations'], $lids);
@@ -87,7 +87,7 @@ class InfoPanel
* @param array $array location list to populate with machine data
* @param bool $withPosition Defines if coords should be included or not.
*/
- public static function appendMachineData(&$array, $idList = false, $withPosition = false)
+ public static function appendMachineData(&$array, $idList = false, $withPosition = false, $withHostname = false)
{
if (empty($array) && $idList === false)
return;
@@ -101,8 +101,14 @@ class InfoPanel
$ignoreList = RunMode::getAllClients(false, false);
}
- $positionCol = $withPosition ? 'm.position,' : '';
- $query = "SELECT m.locationid, m.machineuuid, $positionCol m.logintime, m.lastseen, m.lastboot, m.state FROM machine m
+ $extraCols = '';
+ if ($withPosition) {
+ $extraCols .= 'm.position,';
+ }
+ if ($withHostname) {
+ $extraCols .= 'm.hostname,';
+ }
+ $query = "SELECT m.locationid, m.machineuuid, m.hostname, $extraCols m.logintime, m.lastseen, m.lastboot, m.state FROM machine m
WHERE m.locationid IN (:idlist)";
$dbquery = Database::simpleQuery($query, array('idlist' => $idList));
@@ -129,6 +135,18 @@ class InfoPanel
}
}
}
+ if ($withHostname) {
+ if (ip2long($row['hostname']) !== false) {
+ $pc['host'] = $row['hostname'];
+ } else {
+ $i = strpos($row['hostname'], '.');
+ if ($i === false) {
+ $pc['host'] = $row['hostname'];
+ } else {
+ $pc['host'] = substr($row['hostname'], 0, $i);
+ }
+ }
+ }
$pc['pcState'] = LocationInfo::getPcState($row);
//$pc['pcState'] = ['BROKEN', 'OFFLINE', 'IDLE', 'OCCUPIED', 'STANDBY'][mt_rand(0,4)]; // XXX
diff --git a/modules-available/locationinfo/inc/locationinfo.inc.php b/modules-available/locationinfo/inc/locationinfo.inc.php
index 0a391a83..5a66f15a 100644
--- a/modules-available/locationinfo/inc/locationinfo.inc.php
+++ b/modules-available/locationinfo/inc/locationinfo.inc.php
@@ -105,6 +105,7 @@ class LocationInfo
'roomupdate' => 15,
'configupdate' => 180,
'overrides' => [],
+ 'hostname' => false,
);
}
if ($type === 'SUMMARY') {
diff --git a/modules-available/locationinfo/lang/de/template-tags.json b/modules-available/locationinfo/lang/de/template-tags.json
index c7875cc5..14bda6b4 100644
--- a/modules-available/locationinfo/lang/de/template-tags.json
+++ b/modules-available/locationinfo/lang/de/template-tags.json
@@ -5,19 +5,18 @@
"lang_backend": "Backend",
"lang_backends": "Backends",
"lang_bookmarks": "Lesezeichen",
- "lang_bookmarksTooltip": "Füge Lesezeichen hinzu, die der Browser erhalten soll",
+ "lang_bookmarksTooltip": "F\u00fcge Lesezeichen hinzu, die der Browser erhalten soll",
"lang_browser": "Browser",
"lang_browserTooltip": "Welcher Browser soll genutzt werden",
- "lang_calendar": "Kalender",
"lang_calendarUpdate": "Kalender Update",
"lang_calupdateTooltip": "Zeit nachdem der Kalender aktualisiert wird (in Minuten)",
"lang_checkConnection": "Verbindung pr\u00fcfen",
"lang_chromium": "Chromium",
"lang_closed": "Geschlossen",
"lang_closingTime": "Schlie\u00dfungszeit",
- "lang_configOverride": "Konfiguration überschreiben",
- "lang_countIp": "über IP-Adressbereich",
- "lang_countRoomplan": "über Raumplaner",
+ "lang_configOverride": "Konfiguration \u00fcberschreiben",
+ "lang_countIp": "\u00fcber IP-Adressbereich",
+ "lang_countRoomplan": "\u00fcber Raumplaner",
"lang_createPanel": "Panel anlegen",
"lang_credentials": "Anmeldung",
"lang_currentDay": "Aktueller Tag",
@@ -44,10 +43,11 @@
"lang_friday": "Freitag",
"lang_general": "Allgemein",
"lang_generalSettings": "Allgemeine Einstellungen",
+ "lang_hostnameTooltip": "Zeige kurzen Hostnamen in Rechner-Piktogramm",
"lang_ignoreSslTooltip": "Akzeptiere ung\u00fcltige, abgelaufene oder selbstsignierte SSL-Zertifikate",
"lang_insecureSsl": "Unsicheres SSL",
"lang_interactive": "Interaktiver Browser",
- "lang_interactiveTooltip": "Aktivieren, um reguläres Surfen zuzulassen",
+ "lang_interactiveTooltip": "Aktivieren, um regul\u00e4res Surfen zuzulassen",
"lang_language": "Sprache",
"lang_languageTooltip": "Legt die Sprache der angezeigten Oberfl\u00e4che fest",
"lang_lastCalendarUpdate": "Kalender Update",
@@ -71,8 +71,8 @@
"lang_mode3": "Raum",
"lang_mode4": "Wechselnd",
"lang_modeTooltip": "Die Anzeigemodi, welche das Frontend unterst\u00fctzt",
- "lang_monday": "Montag",
"lang_monTilFr": "Montag - Freitag",
+ "lang_monday": "Montag",
"lang_nameTooltip": "Legt den Namen des Servers fest",
"lang_noLocationsWarning": "Bitte w\u00e4hlen Sie mindestens einen Ort aus, der vom Panel angezeigt werden soll.",
"lang_noServer": "<Kein Server>",
@@ -94,9 +94,9 @@
"lang_room": "Raum",
"lang_roomId": "Raum ID",
"lang_roomIdTooltip": "Die Raum ID, die der Server ben\u00f6tigt, um Kalenderdaten abzurufen (bei Exchange die Postfachadresse)",
- "lang_roomplannerTooltip": "Legt fest, ob Rechner anhand der Zuordnung über IP oder über den Raumplan gezählt werden",
- "lang_roomupdateTooltip": "Zeit nach der die PCs aktualisiert werden (in Sekunden)",
"lang_roomUpdate": "Raum Update",
+ "lang_roomplannerTooltip": "Legt fest, ob Rechner anhand der Zuordnung \u00fcber IP oder \u00fcber den Raumplan gez\u00e4hlt werden",
+ "lang_roomupdateTooltip": "Zeit nach der die PCs aktualisiert werden (in Sekunden)",
"lang_rotation": "Rotation",
"lang_rotation0": "0\u00b0",
"lang_rotation1": "90\u00b0 \u27f2",
@@ -127,12 +127,13 @@
"lang_shortTuesday": "Di",
"lang_shortWed": "Mi",
"lang_shortWednesday": "Mi",
+ "lang_showHostname": "Hostname anzeigen",
"lang_showLog": "Log",
"lang_slxbrowser": "SLX Browser",
"lang_splitlogin": "Geteiltes Login",
"lang_splitloginTooltip": "Erlaube nur Gast-Login oder Gast+Nutzer-Login wenn aktiviert",
"lang_startDay": "Start Tag",
- "lang_startDayTooltip": "Der Wochentag an dem der Kalender anfängt",
+ "lang_startDayTooltip": "Der Wochentag an dem der Kalender anf\u00e4ngt",
"lang_summaryPanel": "\u00dcbersichts-Panel",
"lang_summaryUpdateIntervalTooltip": "Aktualisierungsintervall (Sekunden)",
"lang_sunday": "Sonntag",
@@ -149,7 +150,7 @@
"lang_urlPanel": "URL-Panel",
"lang_urlTooltip": "URL die aufgerufen wird",
"lang_urlWhitelist": "Whitelist",
- "lang_useRoomplanner": "Rechner zählen",
+ "lang_useRoomplanner": "Rechner z\u00e4hlen",
"lang_vertical": "Vertikaler Modus",
"lang_verticalTooltip": "Legt fest, ob Kalender und Raum \u00fcbereinander angezeigt werden sollen",
"lang_wednesday": "Mittwoch",
diff --git a/modules-available/locationinfo/lang/en/template-tags.json b/modules-available/locationinfo/lang/en/template-tags.json
index 6411efc0..505930b8 100644
--- a/modules-available/locationinfo/lang/en/template-tags.json
+++ b/modules-available/locationinfo/lang/en/template-tags.json
@@ -44,6 +44,7 @@
"lang_friday": "Friday",
"lang_general": "General",
"lang_generalSettings": "General Settings",
+ "lang_hostnameTooltip": "Show simple hostname inside computer icon",
"lang_ignoreSslTooltip": "Accept invalid, expired or self-signed ssl certificates",
"lang_insecureSsl": "Insecure SSL",
"lang_interactive": "Interactive Browser",
@@ -71,8 +72,8 @@
"lang_mode3": "Room",
"lang_mode4": "Switching",
"lang_modeTooltip": "The display modes the frontend supports",
- "lang_monday": "Monday",
"lang_monTilFr": "Monday - Friday",
+ "lang_monday": "Monday",
"lang_nameTooltip": "Defines the name of the server",
"lang_noLocationsWarning": "Please select at least one location this panel should display.",
"lang_noServer": "<no server>",
@@ -94,9 +95,9 @@
"lang_room": "Room",
"lang_roomId": "Room ID",
"lang_roomIdTooltip": "The ID of the room the server needs, for querying the calendar data (when using exchange the room mailbox)",
+ "lang_roomUpdate": "Room Update",
"lang_roomplannerTooltip": "Determine if PCs are counted on the basis of IP-range or by roomplanner",
"lang_roomupdateTooltip": "Time the PCs in the room gets updated (in seconds)",
- "lang_roomUpdate": "Room Update",
"lang_rotation": "Rotation",
"lang_rotation0": "0\u00b0",
"lang_rotation1": "90\u00b0 \u27f2",
@@ -127,6 +128,7 @@
"lang_shortTuesday": "Tue",
"lang_shortWed": "Wed",
"lang_shortWednesday": "Wed",
+ "lang_showHostname": "Show hostname",
"lang_showLog": "Log",
"lang_slxbrowser": "SLX Browser",
"lang_splitlogin": "Split Login",
diff --git a/modules-available/locationinfo/page.inc.php b/modules-available/locationinfo/page.inc.php
index 13d7d459..0885f446 100644
--- a/modules-available/locationinfo/page.inc.php
+++ b/modules-available/locationinfo/page.inc.php
@@ -364,7 +364,7 @@ class Page_LocationInfo extends Page
if (count($locationids) > 4) {
$locationids = array_slice($locationids, 0, 4);
}
- // Build json struct
+ // Build struct from POST
$conf = array(
'language' => Request::post('language', 'en', 'string'),
'mode' => Request::post('mode', 1, 'int'),
@@ -380,6 +380,7 @@ class Page_LocationInfo extends Page
'switchtime' => Request::post('switchtime', 20, 'int'),
'calupdate' => Request::post('calupdate', 120, 'int'),
'roomupdate' => Request::post('roomupdate', 30, 'int'),
+ 'hostname' => Request::post('hostname', false, 'bool'),
);
if ($conf['roomupdate'] < 15) {
$conf['roomupdate'] = 15;
@@ -1025,6 +1026,7 @@ class Page_LocationInfo extends Page
'locations' => Location::getLocations(),
'locationids' => $panel['locationids'],
'overrides' => json_encode($config['overrides']),
+ 'hostname_checked' => $config['hostname'] ? 'checked' : '',
));
} elseif ($panel['paneltype'] === 'URL') {
diff --git a/modules-available/locationinfo/templates/frontend-default.html b/modules-available/locationinfo/templates/frontend-default.html
index 70f71bbc..2868c034 100755
--- a/modules-available/locationinfo/templates/frontend-default.html
+++ b/modules-available/locationinfo/templates/frontend-default.html
@@ -233,6 +233,16 @@ optional:
color: #fff;
}
+ .pcname {
+ display: block;
+ text-wrap: avoid;
+ white-space: nowrap;
+ position: relative;
+ overflow: visible;
+ height: 0;
+ font-size: 10pt;
+ }
+
.BROKEN .screen-inner {
background: #000;
}
@@ -1427,7 +1437,7 @@ optional:
//var $img = $('<img>').prop('id', "pc-img_" + room.id + "_" + layout[i].id).addClass('pc-img');
var $overlays = $('<div>').addClass('pc-overlay-container');
layout[i].$div = $('<div>').prop('id', "pc_" + room.id + "_" + layout[i].id).addClass('pc-container');
- layout[i].$div.append($('<div>').addClass('screen-frame').append($('<div>').addClass('screen-inner')));
+ layout[i].$div.append($('<div>').addClass('screen-frame').append($('<div>').addClass('screen-inner').append($('<div>').addClass('pcname').text(layout[i].host))));
layout[i].$div.append($('<div>').addClass('screen-foot1'));
layout[i].$div.append($('<div>').addClass('screen-foot2'));
//layout[i].$div.append($overlays).append($img);
diff --git a/modules-available/locationinfo/templates/page-config-panel-default.html b/modules-available/locationinfo/templates/page-config-panel-default.html
index 9a68eee8..86e2a520 100644
--- a/modules-available/locationinfo/templates/page-config-panel-default.html
+++ b/modules-available/locationinfo/templates/page-config-panel-default.html
@@ -276,6 +276,22 @@
</div>
</div>
+ <div class="list-group-item m1-s m2-h m3-s m4-s">
+ <div class="row">
+ <div class="col-sm-3">
+ <label for="show-hostname">{{lang_showHostname}}</label>
+ </div>
+ <div class="col-sm-7">
+ <input id="show-hostname" class="btstrpCheckbox" type="checkbox" name="hostname" {{hostname_checked}}>
+ </div>
+ <div class="col-sm-2">
+ <p class="btn btn-static helptext" title="{{lang_hostnameTooltip}}">
+ <span class="glyphicon glyphicon-question-sign"></span>
+ </p>
+ </div>
+ </div>
+ </div>
+
<div class="list-group-item m1-s m2-h m3-h m4-h">
<div class="row">
<div class="col-sm-3">