summaryrefslogtreecommitdiffstats
path: root/modules-available/locationinfo/page.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/locationinfo/page.inc.php')
-rw-r--r--modules-available/locationinfo/page.inc.php94
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));
}
/**