From 973d58b8724ea907448f6a2667f1b7a8b9a91c5d Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 15 Feb 2018 13:27:18 +0100 Subject: [locations] Update translations --- modules-available/locations/lang/de/messages.json | 1 + modules-available/locations/lang/de/permissions.json | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'modules-available/locations/lang/de') diff --git a/modules-available/locations/lang/de/messages.json b/modules-available/locations/lang/de/messages.json index 95002ee7..6b682c7e 100644 --- a/modules-available/locations/lang/de/messages.json +++ b/modules-available/locations/lang/de/messages.json @@ -3,6 +3,7 @@ "invalid-location-id": "Ung\u00fcltige Orts-id: {{0}}", "location-deleted": "Location wurde gel\u00f6scht (Locations: {{0}}, Subnets: {{1}})", "location-updated": "Location {{0}} wurde aktualisiert", + "no-permission-location": "Keine Rechte f\u00fcr Ort {{0}}", "parameter-missing": "Fehlender Parameter: {{0}}", "subnets-created": "Subnetze angelegt: {{0}}", "subnets-deleted": "Subnetze gel\u00f6scht: {{0}}", diff --git a/modules-available/locations/lang/de/permissions.json b/modules-available/locations/lang/de/permissions.json index 46dea864..8a9336b3 100644 --- a/modules-available/locations/lang/de/permissions.json +++ b/modules-available/locations/lang/de/permissions.json @@ -1,9 +1,9 @@ { - "location.view": "Räume anschauen.", - "location.edit": "Räume bearbeiten.", - "location.add": "Räume hinzufügen.", - "location.delete": "Räume löschen.", - "subnet.edit": "Subnetze bearbeiten.", - "subnet.add": "Subnetze hinzufügen.", - "subnet.delete": "Subnetze löschen." + "location.add": "R\u00e4ume\/Orte hinzuf\u00fcgen.", + "location.delete": "R\u00e4ume\/Orte l\u00f6schen.", + "location.edit.name": "Orte umbenennen.", + "location.edit.parent": "Den \u00fcbergeordneten Ort eines Ortes \u00e4ndern.", + "location.edit.subnets": "Die IP-Ranges eines Ortes \u00e4ndern.", + "location.view": "R\u00e4ume anschauen.", + "subnets.edit": "Subnetze mittels der Subnetz\u00fcbersicht \u00e4ndern." } \ No newline at end of file -- cgit v1.2.3-55-g7522 From d5166e77fbb1dc034a421da868f9539fc455e490 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 21 Mar 2018 11:30:29 +0100 Subject: Update translations --- modules-available/locations/lang/de/template-tags.json | 4 ++-- modules-available/locations/lang/en/template-tags.json | 4 ++-- modules-available/rebootcontrol/page.inc.php | 2 +- modules-available/runmode/lang/de/messages.json | 1 + modules-available/runmode/lang/de/template-tags.json | 1 + modules-available/runmode/lang/en/messages.json | 1 + modules-available/runmode/lang/en/template-tags.json | 1 + modules-available/statistics/page.inc.php | 2 +- 8 files changed, 10 insertions(+), 6 deletions(-) (limited to 'modules-available/locations/lang/de') diff --git a/modules-available/locations/lang/de/template-tags.json b/modules-available/locations/lang/de/template-tags.json index 04d10d06..43142555 100644 --- a/modules-available/locations/lang/de/template-tags.json +++ b/modules-available/locations/lang/de/template-tags.json @@ -6,7 +6,7 @@ "lang_deleteChildLocations": "Untergeordnete Orte ebenfalls l\u00f6schen", "lang_deleteLocation": "Ort l\u00f6schen", "lang_deleteSubnet": "Bereich l\u00f6schen", - "lang_deleteSubnetWarning": "Alle zum L\u00f6schen markierten Subnetze werden gelöscht. Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden.", + "lang_deleteSubnetWarning": "Alle zum L\u00f6schen markierten Subnetze werden gel\u00f6scht. Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden.", "lang_editConfigVariables": "Konfig.-Variablen", "lang_editRoomplan": "Raumplan bearbeiten", "lang_endAddress": "Endadresse", @@ -22,10 +22,10 @@ "lang_machineLoad": "Besetzt", "lang_matchingMachines": "Enthaltene Rechner", "lang_name": "Name", - "lang_noParent": "Kein \u00fcbergeordneter Ort", "lang_overrideCount": "Angepasst", "lang_parentLocation": "\u00dcbergeordneter Ort", "lang_referencingLectures": "Veranstaltungen", + "lang_showRoomplan": "Raumplan anzeigen", "lang_startAddress": "Startadresse", "lang_subnet": "IP-Bereich", "lang_sysConfig": "Lokalisierung", diff --git a/modules-available/locations/lang/en/template-tags.json b/modules-available/locations/lang/en/template-tags.json index ddb90f83..41261726 100644 --- a/modules-available/locations/lang/en/template-tags.json +++ b/modules-available/locations/lang/en/template-tags.json @@ -22,14 +22,14 @@ "lang_machineLoad": "In use", "lang_matchingMachines": "Matching clients", "lang_name": "Name", - "lang_noParent": "No parent", "lang_overrideCount": "Overridden", "lang_parentLocation": "Parent location", "lang_referencingLectures": "Assigned Lectures", + "lang_showRoomplan": "Show room plan", "lang_startAddress": "Start address", "lang_subnet": "IP range", "lang_sysConfig": "Localization\/Integration", "lang_thisListByLocation": "Locations", "lang_thisListBySubnet": "Subnets", "lang_unassignedMachines": "Machines not matching any location" -} +} \ No newline at end of file diff --git a/modules-available/rebootcontrol/page.inc.php b/modules-available/rebootcontrol/page.inc.php index fa7688d8..abbdb2c3 100644 --- a/modules-available/rebootcontrol/page.inc.php +++ b/modules-available/rebootcontrol/page.inc.php @@ -38,7 +38,7 @@ class Page_RebootControl extends Page // Filter ones with no permission foreach (array_keys($actualClients) as $idx) { if (!User::hasPermission('action.' . $this->action, $actualClients[$idx]['locationid'])) { - Message::addWarning('main.location-no-permission', $actualClients[$idx]['locationid']); + Message::addWarning('locations.no-permission-location', $actualClients[$idx]['locationid']); unset($actualClients[$idx]); } else { $locationId = $actualClients[$idx]['locationid']; diff --git a/modules-available/runmode/lang/de/messages.json b/modules-available/runmode/lang/de/messages.json index 911d48d4..bca70019 100644 --- a/modules-available/runmode/lang/de/messages.json +++ b/modules-available/runmode/lang/de/messages.json @@ -2,6 +2,7 @@ "cannot-edit-module": "Modul {{0}} kann nicht direkt editiert werden", "enabled-removed-save": "{{0}} Rechner gespeichert, {{1}} entfernt", "invalid-modeid": "{{1}} ist kein g\u00fcltiger Betriebsmodus f\u00fcr Modul {{0}}", + "machine-no-permission": "Keine Berechtigung f\u00fcr client {{0}}", "machine-not-found": "Rechner {{0}} nicht gefunden", "machine-not-runmode": "Rechner {{0}} hatte keinen speziellen Betriebsmodus aktiviert", "machine-removed": "Rechner {{0}} entfernt", diff --git a/modules-available/runmode/lang/de/template-tags.json b/modules-available/runmode/lang/de/template-tags.json index 6b45b82c..989e5b1d 100644 --- a/modules-available/runmode/lang/de/template-tags.json +++ b/modules-available/runmode/lang/de/template-tags.json @@ -3,6 +3,7 @@ "lang_assignMachineIntroText": "Definieren Sie hier Clients, die in einem speziellen Betriebsmodus gestartet werden sollen. Sie k\u00f6nnen Rechner anhand der UUID, IP, Hostname oder MAC-Adresse suchen.", "lang_assignRunmodeToMachine": "Betriebsmodus", "lang_confirmDelete": "Wollen Sie den Betriebsmodus f\u00fcr diesen Client entfernen?", + "lang_existingClients": "Vorhandene Clients mit diesem Betriebsmodus", "lang_isclient": "Pool-Client", "lang_machine": "Client", "lang_mode": "Modus", diff --git a/modules-available/runmode/lang/en/messages.json b/modules-available/runmode/lang/en/messages.json index 6d890428..1ca1567a 100644 --- a/modules-available/runmode/lang/en/messages.json +++ b/modules-available/runmode/lang/en/messages.json @@ -2,6 +2,7 @@ "cannot-edit-module": "Module {{0}} cannot be edited directly", "enabled-removed-save": "Saved {{0}} clients, deleted {{1}}", "invalid-modeid": "Module {{0}} doesn't provide mode {{1}}", + "machine-no-permission": "No permission for client {{0}}", "machine-not-found": "Client {{0}} not found", "machine-not-runmode": "No special mode of operation configured for client {{0}}", "machine-removed": "Removed client {{0}}", diff --git a/modules-available/runmode/lang/en/template-tags.json b/modules-available/runmode/lang/en/template-tags.json index 43fd3da5..89cf6b15 100644 --- a/modules-available/runmode/lang/en/template-tags.json +++ b/modules-available/runmode/lang/en/template-tags.json @@ -3,6 +3,7 @@ "lang_assignMachineIntroText": "Define the clients which should start a special runmode configuration. You can search for clients by UUID, IP address, host name or MAC address.", "lang_assignRunmodeToMachine": "Runmode", "lang_confirmDelete": "Do you want to delete the runmode for this client?", + "lang_existingClients": "Existing clients with this run mode", "lang_isclient": "Pool-Client", "lang_machine": "Client", "lang_mode": "Mode", diff --git a/modules-available/statistics/page.inc.php b/modules-available/statistics/page.inc.php index 3baac190..60743fb6 100644 --- a/modules-available/statistics/page.inc.php +++ b/modules-available/statistics/page.inc.php @@ -227,7 +227,7 @@ class Page_Statistics extends Page if (in_array($row['locationid'], $allowedLocations)) { $delete[] = $row['machineuuid']; } else { - Message::addError('no-permission-location', $row['locationid']); + Message::addError('locations.no-permission-location', $row['locationid']); } } if (!empty($delete)) { -- cgit v1.2.3-55-g7522 From 59f6f89a2b7950e7b5fb4bdb0e2cdaf4998f1e9e Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 11 Jan 2019 16:49:58 +0100 Subject: [locations] Show current boot menu per location, add edit button --- .../locations/lang/de/template-tags.json | 1 + .../locations/lang/en/template-tags.json | 1 + modules-available/locations/page.inc.php | 60 ++++++++++++++++------ .../locations/templates/locations.html | 17 +++++- 4 files changed, 61 insertions(+), 18 deletions(-) (limited to 'modules-available/locations/lang/de') diff --git a/modules-available/locations/lang/de/template-tags.json b/modules-available/locations/lang/de/template-tags.json index 43142555..96273ce4 100644 --- a/modules-available/locations/lang/de/template-tags.json +++ b/modules-available/locations/lang/de/template-tags.json @@ -3,6 +3,7 @@ "lang_areYouSureNoUndo": "Sind Sie sicher? Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden.", "lang_assignSubnetExplanation": "Rechner, die in einen der hier aufgef\u00fchrten Adressbereiche fallen, werden diesem Ort zugeschrieben und erhalten damit z.B. f\u00fcr diesen Raum angepasste Veranstaltungslisten.", "lang_assignedSubnets": "Zugeordnete Subnetze bzw. IP-Bereiche", + "lang_bootMenu": "Bootmen\u00fc", "lang_deleteChildLocations": "Untergeordnete Orte ebenfalls l\u00f6schen", "lang_deleteLocation": "Ort l\u00f6schen", "lang_deleteSubnet": "Bereich l\u00f6schen", diff --git a/modules-available/locations/lang/en/template-tags.json b/modules-available/locations/lang/en/template-tags.json index 41261726..64211e27 100644 --- a/modules-available/locations/lang/en/template-tags.json +++ b/modules-available/locations/lang/en/template-tags.json @@ -3,6 +3,7 @@ "lang_areYouSureNoUndo": "Are you sure? This cannot be undone!", "lang_assignSubnetExplanation": "Client machines which fall into an IP range listed below will be assigned to this location and will see an according lecture list (e.g. they will see lectures that are exclusively assigned to this location).", "lang_assignedSubnets": "Assigned subnets \/ IP ranges", + "lang_bootMenu": "Boot menu", "lang_deleteChildLocations": "Delete child locations aswell", "lang_deleteLocation": "Delete location", "lang_deleteSubnet": "Delete range", diff --git a/modules-available/locations/page.inc.php b/modules-available/locations/page.inc.php index 9beae163..2d8f5ff9 100644 --- a/modules-available/locations/page.inc.php +++ b/modules-available/locations/page.inc.php @@ -375,6 +375,11 @@ class Page_Locations extends Page } else { $locationList[$lid]['havestatistics'] = false; } + if (User::hasPermission('.serversetup.ipxe.menu.assign', $lid)) { + $visibleLocationIds[] = $lid; + } else { + $locationList[$lid]['haveipxe'] = false; + } if (!in_array($lid, $visibleLocationIds)) { unset($locationList[$lid]); } elseif (!in_array($lid, $allowedLocationIds)) { @@ -440,22 +445,7 @@ class Page_Locations extends Page $locationList[$locId] += array('configName' => $conf['title'], 'configClass' => 'slx-bold'); } } - $depth = array(); - foreach ($locationList as &$loc) { - $d = $loc['depth']; - if (!isset($loc['configName'])) { - // Has no explicit config assignment - if ($d === 0) { - $loc['configName'] = $defaultConfig; - } else { - $loc['configName'] = $depth[$d - 1]; - } - $loc['configClass'] = 'gray'; - } - $depth[$d] = $loc['configName']; - unset($depth[$d + 1]); - } - unset($loc); + $this->propagateFields($locationList, $defaultConfig, 'configName', 'configClass'); } // Count overridden config vars if (Module::get('baseconfig') !== false) { @@ -467,6 +457,24 @@ class Page_Locations extends Page $locationList[$lid]['overriddenVars'] = $row['cnt']; } } + // Confusing because the count might be inaccurate within a branch + //$this->propagateFields($locationList, '', 'overriddenVars', 'overriddenClass'); + } + // Show ipxe menu + if (Module::get('serversetup') !== false) { + $res = Database::simpleQuery("SELECT ml.locationid, m.title, ml.defaultentryid FROM serversetup_menu m + INNER JOIN serversetup_menu_location ml USING (menuid) + WHERE locationid IN (:allowedLocationIds) GROUP BY locationid", compact('allowedLocationIds')); + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + $lid = (int)$row['locationid']; + if (isset($locationList[$lid])) { + if ($row['defaultentryid'] !== null) { + $row['title'] .= '(*)'; + } + $locationList[$lid]['customMenu'] = $row['title']; + } + } + $this->propagateFields($locationList, '', 'customMenu', 'customMenuClass'); } $addAllowedLocs = User::getAllowedLocations("location.add"); @@ -484,6 +492,7 @@ class Page_Locations extends Page 'havestatistics' => Module::get('statistics') !== false, 'havebaseconfig' => Module::get('baseconfig') !== false, 'havesysconfig' => Module::get('sysconfig') !== false, + 'haveipxe' => Module::get('serversetup') !== false, 'overlapSelf' => $overlapSelf, 'overlapOther' => $overlapOther, 'haveOverlapSelf' => !empty($overlapSelf), @@ -637,4 +646,23 @@ class Page_Locations extends Page return $result; } + private function propagateFields(&$locationList, $defaultValue, $name, $class) + { + $depth = array(); + foreach ($locationList as &$loc) { + $d = $loc['depth']; + if (!isset($loc[$name])) { + // Has no explicit config assignment + if ($d === 0) { + $loc[$name] = $defaultValue; + } else { + $loc[$name] = $depth[$d - 1]; + } + $loc[$class] = 'gray'; + } + $depth[$d] = $loc[$name]; + unset($depth[$d + 1]); + } + } + } diff --git a/modules-available/locations/templates/locations.html b/modules-available/locations/templates/locations.html index 67f22744..06d32020 100644 --- a/modules-available/locations/templates/locations.html +++ b/modules-available/locations/templates/locations.html @@ -37,6 +37,9 @@ {{#havesysconfig}}{{lang_sysConfig}}{{/havesysconfig}} + + {{#haveipxe}}{{lang_bootMenu}}{{/haveipxe}} + {{#list}} @@ -67,7 +70,7 @@ {{clientLoad}} {{/havestatistics}} - + {{#havebaseconfig}}
@@ -87,6 +90,16 @@ {{/havesysconfig}} + + {{#haveipxe}} +
+ +
+ + {{customMenu}}   + + {{/haveipxe}} + {{/list}} {{#unassignedCount}} @@ -170,7 +183,7 @@ function slxOpenLocation(e, lid) { } return; } - var td = $('').attr('colspan', '5').css('padding', '0px 0px 12px'); + var td = $('').attr('colspan', '6').css('padding', '0px 0px 12px'); var tr = $('').attr('id', 'location-details-' + lid); tr.append(td); $(e).closest('tr').addClass('active slx-bold').after(tr); -- cgit v1.2.3-55-g7522