summaryrefslogtreecommitdiffstats
path: root/modules-available/locations
diff options
context:
space:
mode:
authorSimon Rettberg2019-10-31 15:15:03 +0100
committerSimon Rettberg2019-10-31 15:15:03 +0100
commite18b0b0c764652d6f77465082eb474330f43915b (patch)
tree7f3a3e588cc6a5f6a9d4c1c02a615d1ab3cb1c98 /modules-available/locations
parent[statistics] Don't try to show room plan for non-leaf rooms (diff)
downloadslx-admin-e18b0b0c764652d6f77465082eb474330f43915b.tar.gz
slx-admin-e18b0b0c764652d6f77465082eb474330f43915b.tar.xz
slx-admin-e18b0b0c764652d6f77465082eb474330f43915b.zip
[statistics/baseconfig] Allow per-machine configvar overrides
Diffstat (limited to 'modules-available/locations')
-rw-r--r--modules-available/locations/baseconfig/hook.json3
-rw-r--r--modules-available/locations/inc/location.inc.php19
-rw-r--r--modules-available/locations/inc/locationhooks.inc.php31
3 files changed, 33 insertions, 20 deletions
diff --git a/modules-available/locations/baseconfig/hook.json b/modules-available/locations/baseconfig/hook.json
index b7b3581b..1d69647e 100644
--- a/modules-available/locations/baseconfig/hook.json
+++ b/modules-available/locations/baseconfig/hook.json
@@ -1,6 +1,7 @@
{
"table": "setting_location",
"field": "locationid",
+ "locationResolver": "LocationHooks::baseconfigLocationResolver",
"tostring": "Location::getName",
- "getfallback": "Location::getBaseconfigParent"
+ "getfallback": "LocationHooks::getBaseconfigParent"
} \ No newline at end of file
diff --git a/modules-available/locations/inc/location.inc.php b/modules-available/locations/inc/location.inc.php
index ac866cbc..a29be5c3 100644
--- a/modules-available/locations/inc/location.inc.php
+++ b/modules-available/locations/inc/location.inc.php
@@ -375,25 +375,6 @@ class Location
}
/**
- * Used for baseconfig hook
- * @param $locationId
- * @return bool|array ('value' => x, 'display' => y), false if no parent or unknown id
- */
- public static function getBaseconfigParent($locationId)
- {
- $locationId = (int)$locationId;
- if (self::$assocLocationCache === false) {
- self::getLocationsAssoc();
- }
- if (!isset(self::$assocLocationCache[$locationId]))
- return false;
- $locationId = (int)self::$assocLocationCache[$locationId]['parentlocationid'];
- if (!isset(self::$assocLocationCache[$locationId]))
- return false;
- return array('value' => $locationId, 'display' => self::$assocLocationCache[$locationId]['locationname']);
- }
-
- /**
* @return array list of subnets as numeric array
*/
public static function getSubnets()
diff --git a/modules-available/locations/inc/locationhooks.inc.php b/modules-available/locations/inc/locationhooks.inc.php
new file mode 100644
index 00000000..c15c34ab
--- /dev/null
+++ b/modules-available/locations/inc/locationhooks.inc.php
@@ -0,0 +1,31 @@
+<?php
+
+class LocationHooks
+{
+
+ /**
+ * Used for baseconfig hook
+ * @param $locationId
+ * @return bool|array ('value' => x, 'display' => y), false if no parent or unknown id
+ */
+ public static function getBaseconfigParent($locationId)
+ {
+ $locationId = (int)$locationId;
+ $assoc = Location::getLocationsAssoc();
+ if (!isset($assoc[$locationId]))
+ return false;
+ $locationId = (int)$assoc[$locationId]['parentlocationid'];
+ if (!isset($assoc[$locationId]))
+ return false;
+ return array('value' => $locationId, 'display' => $assoc[$locationId]['locationname']);
+ }
+
+ /**
+ * Resolve baseconfig id to locationid -- noop in this case
+ */
+ public static function baseconfigLocationResolver($id)
+ {
+ return $id;
+ }
+
+} \ No newline at end of file