From 14f5a51dafaf637e0a6e9c844ef4a56ffadcb214 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Tue, 11 Jul 2017 08:56:44 +0200
Subject: [PATCH] Use modulekit-ajax

---
 .gitmodules        |  3 +++
 ajax.php           | 26 ++++++++++++++++++++++++++
 lib/modulekit/ajax |  1 +
 modulekit.php      |  1 +
 4 files changed, 31 insertions(+)
 create mode 100644 ajax.php
 create mode 160000 lib/modulekit/ajax

diff --git a/.gitmodules b/.gitmodules
index 19ffc2d7..ce88cb16 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,3 +10,6 @@
 [submodule "lib/modulekit/form"]
 	path = lib/modulekit/form
 	url = https://github.com/plepe/modulekit-form.git
+[submodule "lib/modulekit/ajax"]
+	path = lib/modulekit/ajax
+	url = https://github.com/plepe/modulekit-ajax.git
diff --git a/ajax.php b/ajax.php
new file mode 100644
index 00000000..61a76a6f
--- /dev/null
+++ b/ajax.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * @file ajax.php
+ * @brief Most ajax-requests call this file, it calls the specified function.
+ */
+?>
+<?php include "conf.php"; /* load a local configuration */ ?>
+<?php include "modulekit/loader.php"; /* loads all php-includes */ ?>
+<?php
+call_hooks("ajax_start");
+
+function error($msg) {
+  /// Do something with this error
+}
+
+Header("Content-Type: application/json; charset=UTF-8");
+
+$postdata = file_get_contents("php://input");
+if ($postdata) {
+  $postdata = json_decode($postdata, true);
+}
+
+$fun = "ajax_{$_REQUEST['__func']}";
+$return = $fun($_REQUEST["param"], $postdata);
+
+print json_encode($return);
diff --git a/lib/modulekit/ajax b/lib/modulekit/ajax
new file mode 160000
index 00000000..4dec2cc1
--- /dev/null
+++ b/lib/modulekit/ajax
@@ -0,0 +1 @@
+Subproject commit 4dec2cc1d705f45132e2e7322aec657ddb9069af
diff --git a/modulekit.php b/modulekit.php
index 52e5a970..404aeac7 100644
--- a/modulekit.php
+++ b/modulekit.php
@@ -5,6 +5,7 @@ $depend = array(
   'html',
   'modulekit-lang',
   'modulekit-form',
+  'modulekit-ajax',
   'openstreetbrowser-categories-main',
   'openstreetmap-tag-translations',
 );