Index: admin_users.php =================================================================== --- admin_users.php (revision 15349) +++ admin_users.php (working copy) @@ -245,10 +245,10 @@ //Pedigree root person '', // TODO: autocomplete/find/etc. for this field - edit_field_inline('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-rootid', $tree->userPreference($user_id, 'rootid')), + edit_field_inline_autocomplete('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-rootid', $tree->userPreference($user_id, 'rootid'), array('field' => 'INDI', 'ged' => $tree->tree_name)), '', // TODO: autocomplete/find/etc. for this field - edit_field_inline('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-gedcomid', $tree->userPreference($user_id, 'gedcomid')), + edit_field_inline_autocomplete('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-gedcomid', $tree->userPreference($user_id, 'gedcomid'), array('field' => 'INDI', 'ged' => $tree->tree_name)), '', select_edit_control_inline('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-canedit', $ALL_EDIT_OPTIONS, null, $tree->userPreference($user_id, 'canedit')), '', @@ -595,7 +595,18 @@ $controller ->addExternalJavascript(WT_JQUERY_DATATABLES_URL) ->addExternalJavascript(WT_JQUERY_JEDITABLE_URL) + ->addExternalJavascript(WT_SCRIPT_PATH.'js/autocomplete.js') ->addInlineJavascript(' + $.editable.addInputType("autocomplete", { + element : $.editable.types.text.element, + plugin : function(settings, original) { + $("input", this).autocomplete({ + source: settings.autocomplete.url, + html: true + }); + } + });') + ->addInlineJavascript(' var oTable = jQuery("#list").dataTable({ "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', '.WT_I18N::datatablesI18N().', Index: includes/functions/functions_edit.php =================================================================== --- includes/functions/functions_edit.php (revision 15349) +++ includes/functions/functions_edit.php (working copy) @@ -44,6 +44,34 @@ } } +function edit_field_inline_autocomplete($name, $value, $parameters = null, $controller=null) { + $html='' . htmlspecialchars($value) . ''; + $url = 'autocomplete.php?'; + foreach($parameters as $key => $value){ + $url .= $key.'='.$value.'&'; + } + $js='jQuery("#' . $name . '") + .editable( + "' . WT_SERVER_NAME . WT_SCRIPT_PATH . 'save.php", + { + submit: "  ' . /* I18N: button label */ WT_I18N::translate('save') . '  ", + style:"inherit", + placeholder: "'.WT_I18N::translate('click to edit').'", + type: "autocomplete", + autocomplete : { + url : "'.$url.'" + } + } + );'; + if ($controller) { + $controller->addInlineJavascript($js); + return $html; + } else { + // For AJAX callbacks + return $html . ''; + } +} + // Create a text area for inline editing using jeditable function edit_text_inline($name, $value, $controller=null) { $html='' . htmlspecialchars($value) . '';