changeset 1138:0e93eaa323e7

Fix user autocomplete for private messages the right V3 way.
author Brian Neal <bgneal@gmail.com>
date Sun, 23 Oct 2016 12:17:03 -0500
parents 6abcecd3d277
children bb82177cc236
files messages/forms.py sg101/static/js/v3/user_autocomplete.js sg101/templates/messages/compose.html
diffstat 3 files changed, 4 insertions(+), 38 deletions(-) [+]
line wrap: on
line diff
--- a/messages/forms.py	Sun Oct 23 12:00:04 2016 -0500
+++ b/messages/forms.py	Sun Oct 23 12:17:03 2016 -0500
@@ -27,7 +27,7 @@
     """
     receiver = forms.CharField(label='To',
             max_length=30,
-            widget=forms.TextInput(attrs={'class': 'sg101-user-autocomplete'}))
+            widget=forms.TextInput(attrs={'class': 'sg101-autocomplete'}))
     subject = forms.CharField(max_length=120)
     message = forms.CharField(widget=forms.Textarea)
     attach_signature = forms.BooleanField(label='Attach Signature?', required=False)
@@ -38,6 +38,8 @@
         self.user = user
         options = Options.objects.for_user(user)
         self.fields['attach_signature'].initial = options.attach_signature
+        url = reverse('core-ajax_users')
+        self.fields['receiver'].widget.attrs['data-autocomplete-url'] = url
 
     def clean_receiver(self):
         receiver = self.cleaned_data['receiver']
--- a/sg101/static/js/v3/user_autocomplete.js	Sun Oct 23 12:00:04 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-$(function() {
-    var cache = {};
-    var cacheSize = 0;
-    $(".sg101-user-autocomplete").autocomplete({
-        delay: 400,
-        minLength: 1,
-        source: function(request, response) {
-            if (cache[request.term]) {
-               response(cache[request.term]);
-               return;
-            }
-            $.ajax({
-                url: "/core/ajax/users/",
-                type: "GET",
-                data: {
-                    q: request.term,
-                    limit: 15
-                },
-                dataType: "json",
-                success: function(data, textStatus) {
-                    if (cacheSize >= 32) {
-                       cache = {};
-                       cacheSize = 0;
-                    }
-                    cache[request.term] = data;
-                    ++cacheSize;
-                    response(data);
-                },
-                error: function(xhr, textStatus, ex) {
-                    alert('Oops, an error occurred. ' + xhr.statusText + ' - ' +
-                      xhr.responseText);
-                }
-            });
-        }
-    });
-});
--- a/sg101/templates/messages/compose.html	Sun Oct 23 12:00:04 2016 -0500
+++ b/sg101/templates/messages/compose.html	Sun Oct 23 12:17:03 2016 -0500
@@ -46,6 +46,6 @@
 {% endblock %}
 {% block custom_js %}
 {% js_tags 'jquery-ui' %}
-<script src="{% static "js/v3/user_autocomplete.js" %}"></script>
+<script src="{% static "js/v3/autocomplete.js" %}"></script>
 <script src="{% static "js/v3/post_box.js" %}"></script>
 {% endblock %}