diff --git a/ajax/settings.php b/ajax/settings.php index f040dba..cdbf2eb 100644 --- a/ajax/settings.php +++ b/ajax/settings.php @@ -232,9 +232,15 @@ if(isset($_POST['appname']) && ($_POST['appname'] === 'user_sql') && isset($_POS 'dbname' => $_POST['sql_database'], 'tablePrefix' => '' ); - + + if ($_POST['groupTable'] === 'true') { + $sql_table = $_POST['sql_group_table']; + } else { + $sql_table = $_POST['sql_table']; + } + if($helper->verifyTable($parameters, $_POST['sql_driver'], $_POST['sql_table'])) - $columns = $helper->getColumns($parameters, $_POST['sql_driver'], $_POST['sql_table']); + $columns = $helper->getColumns($parameters, $_POST['sql_driver'], $sql_table); else $columns = array(); diff --git a/js/settings.js b/js/settings.js index a1f5869..7455299 100644 --- a/js/settings.js +++ b/js/settings.js @@ -17,7 +17,7 @@ user_sql.adminSettingsUI = function() $('#sqlDiv').tabs(); // Attach auto-completion to all column fields - $('#col_username, #col_password, #col_displayname, #col_active, #col_email, #col_gethome, #col_group_name, #col_group_username').autocomplete({ + $('#col_username, #col_password, #col_displayname, #col_active, #col_email, #col_gethome').autocomplete({ source: function(request, response) { var post = $('#sqlForm').serializeArray(); @@ -53,7 +53,51 @@ user_sql.adminSettingsUI = function() { $(this).autocomplete("search"); } - }); + }); + + // Attach auto-completion to all group column fields + $('#col_group_name, #col_group_username').autocomplete({ + source: function(request, response) + { + var post = $('#sqlForm').serializeArray(); + var domain = $('#sql_domain_chooser option:selected').val(); + + post.push({ + name: 'groupTable', + value: 'true' + }); + + post.push({ + name: 'function', + value: 'getColumnAutocomplete' + }); + + post.push({ + name: 'domain', + value: domain + }); + + post.push({ + name: 'request', + value: request.term + }); + + // Ajax foobar + $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, response, 'json'); + }, + minLength: 0, + open: function() { + $(this).attr('state', 'open'); + }, + close: function() { + $(this).attr('state', 'closed'); + } + }).focus(function() { + if($(this).attr('state') != 'open') + { + $(this).autocomplete("search"); + } + }); // Attach auto-completion to all table fields $('#sql_table, #sql_group_table').autocomplete({