diff options
author | Simon Rettberg | 2017-04-21 12:31:25 +0200 |
---|---|---|
committer | Simon Rettberg | 2017-04-21 12:31:25 +0200 |
commit | b7ad64152d434c6a6188c7c75a2d538432c44371 (patch) | |
tree | 6407f1a3e803c4c204518593f5f3d7375256c930 /modules-available/locationinfo/page.inc.php | |
parent | [locationinfo] Properly support certificate and hostname verification (diff) | |
download | slx-admin-b7ad64152d434c6a6188c7c75a2d538432c44371.tar.gz slx-admin-b7ad64152d434c6a6188c7c75a2d538432c44371.tar.xz slx-admin-b7ad64152d434c6a6188c7c75a2d538432c44371.zip |
[locationinfo] Generate credentials in server-settings server side
There's no need to generate parameters server side that get passed to
the template engine which generates javascript code that generates
html snippets in the browser.
We now generate everything server side right away.
Diffstat (limited to 'modules-available/locationinfo/page.inc.php')
-rw-r--r-- | modules-available/locationinfo/page.inc.php | 94 |
1 files changed, 23 insertions, 71 deletions
diff --git a/modules-available/locationinfo/page.inc.php b/modules-available/locationinfo/page.inc.php index 209de473..eb50193e 100644 --- a/modules-available/locationinfo/page.inc.php +++ b/modules-available/locationinfo/page.inc.php @@ -123,10 +123,8 @@ class Page_LocationInfo extends Page $tmptypeArray = $backend->getCredentialDefinitions(); $credentialsJson = array(); - $counter = 0; foreach ($tmptypeArray as $cred) { - $credentialsJson[$cred->property] = Request::post($counter); - $counter++; + $credentialsJson[$cred->property] = Request::post('prop-' . $cred->property); } $params = array( 'name' => $servername, @@ -443,89 +441,43 @@ class Page_LocationInfo extends Page */ private function ajaxServerSettings($id) { - $dbresult = Database::queryFirst('SELECT servername, servertype, credentials + $oldConfig = Database::queryFirst('SELECT servername, servertype, credentials FROM `locationinfo_coursebackend` WHERE serverid = :id', array('id' => $id)); // Credentials stuff. - $dbcredentials = json_decode($dbresult['credentials'], true); + if ($oldConfig !== false) { + $oldCredentials = json_decode($oldConfig['credentials'], true); + } else { + $oldCredentials = array(); + } // Get a list of all the backend types. $serverBackends = array(); $s_list = CourseBackend::getList(); foreach ($s_list as $s) { - $backend['typ'] = $s; $backendInstance = CourseBackend::getInstance($s); - $backend['display'] = $backendInstance->getDisplayName(); - - if ($backend['typ'] == $dbresult['servertype']) { - $backend['active'] = true; - } else { - $backend['active'] = false; - } - - $credentials = $backendInstance->getCredentialDefinitions(); - $backend['credentials'] = array(); - - $counter = 0; - foreach ($credentials as $cred) { - $credential['uid'] = $counter; - $credential['name'] = Dictionary::translateFile($s, $cred->property, true); - $credential['type'] = $cred->type; - $credential['title'] = Dictionary::translateFile($s, $cred->property . "_title"); - - if (Property::getPasswordFieldType() === 'text') { - $credential['mask'] = false; - } else { - if ($cred->type === "password") { - $credential['mask'] = true; - } - } - - if ($backend['typ'] == $dbresult['servertype'] && isset($dbcredentials[$cred->property])) { - $credential['value'] = $dbcredentials[$cred->property]; + $backend = array( + 'backendtype' => $s, + 'display' => $backendInstance->getDisplayName(), + 'active' => ($oldConfig !== false && $s === $oldConfig['servertype']), + ); + $backend['credentials'] = $backendInstance->getCredentialDefinitions(); + foreach ($backend['credentials'] as $cred) { + if ($backend['active'] && isset($oldCredentials[$cred->property])) { + $cred->initForRender($oldCredentials[$cred->property]); } else { - $credential['value'] = $cred->default; + $cred->initForRender(); } - - $selection = array(); - - if (is_array($cred->type)) { - - $selfirst = true; - foreach ($cred->type as $opt) { - $option['option'] = $opt; - if (isset($credential['value'])) { - if ($opt == $credential['value']) { - $option['active'] = true; - } else { - $option['active'] = false; - } - } else { - if ($selfirst) { - $option['active'] = true; - $selfirst = false; - } else { - $option['active'] = false; - } - } - - $selection[] = $option; - } - $credential['type'] = "array"; - $credential['array'] = $selection; - } - - $backend['credentials'][] = $credential; - - $counter++; + $cred->title = Dictionary::translateFile('backend-' . $s, $cred->property, true); + $cred->helptext = Dictionary::translateFile('backend-' . $s, $cred->property . "_helptext"); + $cred->credentialsHtml = Render::parse('server-prop-' . $cred->template, (array)$cred); } $serverBackends[] = $backend; } - echo Render::parse('server-settings', array('id' => $id, - 'name' => $dbresult['servername'], - 'servertype' => $dbresult['servertype'], - 'backendList' => array_values($serverBackends))); + 'name' => $oldConfig['servername'], + 'currentbackend' => $oldConfig['servertype'], + 'backendList' => $serverBackends)); } /** |