summaryrefslogtreecommitdiffstats
path: root/modules-available/locationinfo/page.inc.php
diff options
context:
space:
mode:
authorJannik Schönartz2017-02-27 07:53:38 +0100
committerJannik Schönartz2017-02-27 07:53:38 +0100
commit52406c0dd2017baed38df39a0574f1e8bbd549b8 (patch)
tree2335acef3bfb593d43e8eac28c5700b8c02646ed /modules-available/locationinfo/page.inc.php
parentBugfixes (diff)
downloadslx-admin-52406c0dd2017baed38df39a0574f1e8bbd549b8.tar.gz
slx-admin-52406c0dd2017baed38df39a0574f1e8bbd549b8.tar.xz
slx-admin-52406c0dd2017baed38df39a0574f1e8bbd549b8.zip
Admin panel: New server GUI now using the backend types.
Diffstat (limited to 'modules-available/locationinfo/page.inc.php')
-rw-r--r--modules-available/locationinfo/page.inc.php81
1 files changed, 64 insertions, 17 deletions
diff --git a/modules-available/locationinfo/page.inc.php b/modules-available/locationinfo/page.inc.php
index 7dae0762..6a9fae42 100644
--- a/modules-available/locationinfo/page.inc.php
+++ b/modules-available/locationinfo/page.inc.php
@@ -27,6 +27,8 @@ class Page_LocationInfo extends Page
$this->updateServer();
} elseif ($this->action === 'deleteServer') {
$this->deleteServer();
+ } elseif ($this->action === 'updateCredentials') {
+ $this->updateCredentials();
}
}
@@ -105,6 +107,19 @@ class Page_LocationInfo extends Page
Util::redirect('?do=locationinfo');
}
+ private function updateCredentials() {
+ $serverid = Request::post('id', 0, 'int');
+ $dbresult = Database::queryFirst('SELECT servertype FROM `setting_location_info` WHERE serverid = :id', array('id' => $serverid));
+ $backend = CourseBackend::getInstance($dbresult['servertype']);
+ $tmptypeArray = $backend->getCredentials();
+
+ $credentialsJson = array();
+ foreach ($tmptypeArray as $key => $value) {
+ $credentialsJson[$key] = Request::post($key);
+ }
+ Database::exec('UPDATE `setting_location_info` SET credentials = :credentials WHERE serverid = :id', array('id' => $serverid, 'credentials' => json_encode($credentialsJson, true)));
+ }
+
private function updateOpeningTimeExpert()
{
$days = Request::post('days');
@@ -311,12 +326,13 @@ class Page_LocationInfo extends Page
}
$servertypes = array();
- $type['type'] = "HISinOne";
- $servertypes[] = $type;
- $type['type'] = "DAVINCI";
- $servertypes[] = $type;
- $type['type'] = "Frontend";
- $servertypes[] = $type;
+ $s_list = CourseBackend::getList();
+ foreach ($s_list as $s) {
+ $type['type'] = $s;
+ $typeInstance = CourseBackend::getInstance($s);
+ $type['display'] = $typeInstance->getDisplayName();
+ $servertypes[] = $type;
+ }
$serverlist = array();
$dbquery2 = Database::simpleQuery("SELECT * FROM `setting_location_info`");
@@ -329,6 +345,7 @@ class Page_LocationInfo extends Page
$st = array();
if ($type['type'] == $db['servertype']) {
$st['type'] = $type['type'];
+ $st['display'] = $type['display'];
$st['active'] = true;
} else {
$st['type'] = $type['type'];
@@ -337,18 +354,8 @@ class Page_LocationInfo extends Page
$serverty[] = $st;
}
$server['types'] = $serverty;
-/*
- if ($db['servertype'] == 'HISinOne') {
- $server['HISinOne'] = true;
- $server['DAVINCI'] = false;
- } elseif ($db['servertype'] == 'DAVINCI') {
- $server['HISinOne'] = false;
- $server['DAVINCI'] = true;
- }
-*/
+
$server['url'] = $db['serverurl'];
- $server['user'] = "TODO: Auth";
- $server['password'] = "Needs a change to Auth";
$serverlist[] = $server;
}
@@ -376,6 +383,9 @@ class Page_LocationInfo extends Page
} elseif ($action === 'config') {
$id = Request::any('id', 0, 'int');
$this->ajaxConfig($id);
+ } elseif ($action === 'credentials') {
+ $id = Request::any('id', 0, 'int');
+ $this->ajaxCredentials($id);
}
}
@@ -404,6 +414,43 @@ class Page_LocationInfo extends Page
));
}
+ private function ajaxCredentials($id) {
+ $dbresult = Database::queryFirst('SELECT servertype, credentials FROM `setting_location_info` WHERE serverid = :id', array('id' => $id));
+ $tmpcredentialArray = json_decode($dbresult['credentials'], true);
+ $backend = CourseBackend::getInstance($dbresult['servertype']);
+ $tmptypeArray = $backend->getCredentials();
+ $credentialsArray = array();
+ foreach ($tmptypeArray as $key => $value) {
+ $x['name'] = $key;
+
+ foreach ($tmpcredentialArray as $ke => $val) {
+ if($ke == $key) {
+ $x['value'] = $val;
+ break;
+ }
+ }
+ $x['type'] = $value;
+
+ if (is_array($value)) {
+ $selection = array();
+ foreach ($value as $opt) {
+ $option['option'] = $opt;
+ if ($opt == $x['value']) {
+ $option['active'] = true;
+ } else {
+ $option['active'] = false;
+ }
+ $selection[] = $option;
+ }
+ $x['type'] = "array";
+ $x['array'] = $selection;
+ }
+ $credentialsArray[] = $x;
+ }
+
+ echo Render::parse('credentials', array('id' => $id, 'credentials' => array_values($credentialsArray)));
+ }
+
private function ajaxTimeTable($id) {
$array = array();
$dbquery = Database::simpleQuery("SELECT openingtime FROM `location_info` WHERE locationid = :id", array('id' => $id));