From 52406c0dd2017baed38df39a0574f1e8bbd549b8 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Mon, 27 Feb 2017 07:53:38 +0100 Subject: Admin panel: New server GUI now using the backend types. --- modules-available/locationinfo/page.inc.php | 81 +++++++++++++++++++++++------ 1 file changed, 64 insertions(+), 17 deletions(-) (limited to 'modules-available/locationinfo/page.inc.php') 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)); -- cgit v1.2.3-55-g7522