aboutsummaryrefslogtreecommitdiff
path: root/views/default/input/autocomplete.php
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/input/autocomplete.php')
-rw-r--r--views/default/input/autocomplete.php113
1 files changed, 30 insertions, 83 deletions
diff --git a/views/default/input/autocomplete.php b/views/default/input/autocomplete.php
index 7dc088d0e..e58eb1ae8 100644
--- a/views/default/input/autocomplete.php
+++ b/views/default/input/autocomplete.php
@@ -4,99 +4,46 @@
*
* @package Elgg
* @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
*
- * @TODO: This currently only works for ONE AUTOCOMPLETE TEXT FIELD on a page.
+ * @todo This currently only works for ONE AUTOCOMPLETE TEXT FIELD on a page.
*
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['match_on'] Array | str What to match on. all|array(group|user|friend|subtype)
+ * @uses $vars['value'] Current value for the text input
+ * @uses $vars['match_on'] Array | str What to match on. all|array(groups|users|friends)
* @uses $vars['match_owner'] Bool. Match only entities that are owned by logged in user.
- *
+ * @uses $vars['class'] Additional CSS class
*/
-global $autocomplete_js_loaded;
-
-$internalname = $vars['internalname'];
-$value = $vars['value'];
-
-if(!$value) {
- $value= '';
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-autocomplete {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-autocomplete";
}
-if($vars['internal_id']) {
- $id_autocomplete = $vars['internal_id'];
-}
+$defaults = array(
+ 'value' => '',
+ 'disabled' => false,
+);
-$ac_url_params = http_build_query(array(
- 'match_on' => $vars['match_on'],
- 'match_owner' => $vars['match_owner'],
-));
-$ac_url = $vars['url'] . 'pg/autocomplete?' . $ac_url_params;
+$vars = array_merge($defaults, $vars);
-if (!isset($autocomplete_js_loaded)) {
- $autocomplete_js_loaded = false;
+$params = array();
+if (isset($vars['match_on'])) {
+ $params['match_on'] = $vars['match_on'];
+ unset($vars['match_on']);
}
+if (isset($vars['match_owner'])) {
+ $params['match_owner'] = $vars['match_owner'];
+ unset($vars['match_owner']);
+}
+$ac_url_params = http_build_query($params);
-?>
-
-<!-- show the input -->
-<input type="text" class='autocomplete' name ='<?php echo $internalname; ?>_autocomplete' value='<?php echo $value?>' />
-<input type="hidden" name="<?php echo $internalname; ?>" value='<?php echo $value; ?>' />
-
-<?php
-if (!$autocomplete_js_loaded) {
- ?>
-
- <!-- include autocomplete -->
- <script language="javascript" type="text/javascript" src="<?php echo $vars['url']; ?>vendors/jquery/jquery.autocomplete.min.js"></script>
- <script type="text/javascript">
- function bindAutocomplete() {
- $('input[type=text].autocomplete').autocomplete("<?php echo $ac_url; ?>", {
- minChars: 1,
- matchContains: true,
- autoFill: false,
- formatItem: function(row, i, max, term) {
- eval("var info = " + row + ";");
- var r = '';
-
- switch (info.type) {
- case 'user':
- case 'group':
- r = info.icon + info.name + ' - ' + info.desc;
- break;
-
- default:
- r = info.name + ' - ' + info.desc;
- break;
- }
- return r.replace(new RegExp("(" + term + ")", "gi"), "<b>$1</b>");
- }
- });
-
- $('input[type=text].autocomplete').result(function(event, data, formatted) {
- eval("var info = " + data + ";");
- $(this).val(info.name);
-
- var hidden = $(this).next();
- hidden.val(info.guid);
- });
- }
-
- $(document).ready(function() {
- bindAutocomplete();
- });
-
- </script>
+elgg_load_js('elgg.autocomplete');
+elgg_load_js('jquery.ui.autocomplete.html');
- <?php
+?>
- $autocomplete_js_loaded = true;
-} else {
- ?>
- <!-- rebind autocomplete -->
- <script type="text/javascript">bindAutocomplete();</script>
- <?php
-} \ No newline at end of file
+<script type="text/javascript">
+elgg.provide('elgg.autocomplete');
+elgg.autocomplete.url = "<?php echo elgg_get_site_url() . 'livesearch?' . $ac_url_params; ?>";
+</script>
+<input type="text" <?php echo elgg_format_attributes($vars); ?> />