]> git.parisson.com Git - telemeta.git/commitdiff
add page change to advance search
authorafilsaime <shadow_kungfu@hotmail.fr>
Wed, 10 Jun 2015 13:46:03 +0000 (15:46 +0200)
committerafilsaime <shadow_kungfu@hotmail.fr>
Wed, 10 Jun 2015 13:46:03 +0000 (15:46 +0200)
telemeta/templates/search/advanceSearch.html
telemeta/views/haystack_search.py

index 973ca0318f02d6553a8d8168db7ef8fb6cdfb2b8..99c28b50760fbf8d674b12f64275b1a5611f9369 100644 (file)
                 </div>
                 <div class="col-md-0">&nbsp;</div>
             </div>
-
-            {% ifequal type 'item' %}
-                 <p><b>Items ({{item_count}}) | <a href="{% url "haystack_advance_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a></b></p>
-             {% else %}
-                {% ifequal type 'collection'%}
-                    <p><b><a href="{% url "haystack_advance_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}})</b></p>
-                {% endifequal %}
-             {% endifequal %}
+            <div class="row" style="margin-left:-15px">
+                <div class="col-md-4">
+                    {% ifequal type 'item' %}
+                         <p><b>Items ({{item_count}}) | <a href="{% url "haystack_advance_search_type" "collection" %}?{{request.GET.urlencode}}">Collections ({{collection_count}})</a></b></p>
+                     {% else %}
+                        {% ifequal type 'collection'%}
+                            <p><b><a href="{% url "haystack_advance_search_type" "item" %}?{{request.GET.urlencode}}">Items ({{item_count}}) </a>| Collections ({{collection_count}})</b></p>
+                        {% endifequal %}
+                     {% endifequal %}
+                 </div>
+                 <div class="col-md-4 col-md-offset-4" >
+                    <div class="pull-right"">
+                        <label style="display:inline-block;vertical-align:middle">results per page:</label>
+                        <div style="display:inline-block;vertical-align:middle">
+                            <select id="results-per-page" name="results_page">
+                                <option {% ifequal results_page 20 %}selected{% endifequal %} value="20">20</option>
+                                <option {% ifequal results_page 1 %}selected{% endifequal %} value="1">1</option>
+                                <option {% ifequal results_page 50 %}selected{% endifequal %} value="50">50</option>
+                                <option {% ifequal results_page 100 %}selected{% endifequal %} value="100">100</option>
+                                <option {% ifequal results_page 250 %}selected{% endifequal %} value="250">250</option>
+                                <option {% ifequal results_page 500 %}selected{% endifequal %} value="500">500</option>
+                                <option {% ifequal results_page 1000 %}selected{% endifequal %} value="1000">1000</option>
+                                <option {% ifequal results_page 10000 %}selected{% endifequal %} value="10000">10000</option>
+                            </select>
+                        </div>
+                    </div>
+                 </div>
+            </div>
              <form method="POST" action="{% url "haystack_playlist" type%} ">{% csrf_token %}
              {% with object_list as items %}
-                <div class="fullpage">
+                <div class="fullpage" id="results" style="display:none">
                     {% ifequal type 'item' %}
                         {% include "search/mediaitem_listhaystack.html" %}
                     {% else %}
                         {%endifequal%}
                     {%endifequal%}
                 </div>
+                <noscript>
+                    <div class="fullpage">
+                        {% ifequal type 'item' %}
+                            {% include "search/mediaitem_listhaystack.html" %}
+                        {% else %}
+                            {% ifequal type 'collection' %}
+                                {% include "search/mediacollection_listhaystack.html" %}
+                            {%endifequal%}
+                        {%endifequal%}
+                    </div>
+                </noscript>
+
 
             {% endwith %}
             {% if user.is_authenticated %}
     <script src="{{ STATIC_URL }}telemeta/js/jquery.js" type="text/javascript"></script>
     <script src="{{ STATIC_URL }}telemeta/js/jquery-ui.min.js" type="text/javascript"></script>
     <script>
+
         $(document).ready(function() {
             var nouvellesIcones = {
                 header : 'ui-icon-carat-1-e',
 
             };
 
-            $("#accordeon").accordion({
-                collapsible : true,
-                icons : nouvellesIcones,
-            });
-            $( "#datepicker").datepicker();
+            function getPrevUrlParameter(sParam){
+                var sPageURL = document.referrer.substring(1);
+                var sURLVariables = sPageURL.split('&');
+                for (var i = 0; i < sURLVariables.length; i++)
+                {
+                    var sParameterName = sURLVariables[i].split('=');
+                    if (sParameterName[0] == sParam)
+                    {
+                        return sParameterName[1];
+                    }
+                }
+            };
+
+            function getCurrUrlParameter(sParam){
+                var sPageURL = window.location.search.substring(1);
+                var sURLVariables = sPageURL.split('&');
+                for (var i = 0; i < sURLVariables.length; i++)
+                {
+                    var sParameterName = sURLVariables[i].split('=');
+                    if (sParameterName[0] == sParam)
+                    {
+                        return sParameterName[1];
+                    }
+                }
+            };
+
+
+
+            var prev = getPrevUrlParameter("page");
+            var curr = getCurrUrlParameter("page");
+            if(prev<curr){
+                $(".fullpage").show( "slide", {direction:"right"} );
+            }
+            else if(!curr){
+                $(".fullpage").fadeIn(500);
+            }
+            else if(!prev){
+                $(".fullpage").show( "slide", {direction:"right"} );
+            }
+            else{
+                $(".fullpage").show( "slide", {direction:"left"} );
+            };
+
             $("#id_media_type").buttonset();
             $("#id_viewable").buttonset();
             $("#id_item_status").buttonset();
                     });
                 }
             });
+            $("#results-per-page").selectmenu({
+                icons : {button: "ui-icon-carat-2-n-s"},
+                change : function(){
+                    window.location = '?q={{request.GET.q}}&location={{request.GET.location}}&ethnic_group={{request.GET.ethnic_group}}&instruments={{request.GET.instruments}}&year_published_from={{request.GET.year_published_from}}&year_published_to={{request.GET.year_published_to}}&media_type={{request.GET.media_type}}&viewable={{request.GET.viewable}}&collectors={{request.GET.collectors}}&recorded_from_date={{request.GET.recorded_from_date}}&recorded_to_date={{request.GET.recorded_to_date}}&item_status={{request.GET.item_status}}&recording_context={{request.GET.recording_context}}&physical_format={{request.GET.physical_format}}&code={{ request.GET.code }}&page=1&results_page='+$(this).val();
+                }
+            }).selectmenu("menuWidget").addClass("overflow");
 
         });
     </script>
index e43d303b995843e7ebff88595ff9d0dddba93956..38ebd5f3547ced065f5607dc9505c5c608daf704 100644 (file)
@@ -83,6 +83,10 @@ class HaystackAdvanceSearch(SearchView):
 
     def __call__(self, request, type=None):
         self.type = type
+        if request.GET.get('results_page'):
+            self.results_per_page=int(request.GET.get('results_page'))
+        else:
+            self.results_per_page = 20
         return super(HaystackAdvanceSearch, self).__call__(request)
 
     def get_query(self):
@@ -106,4 +110,5 @@ class HaystackAdvanceSearch(SearchView):
             extra['type'] = 'collection'
         else:
             extra['type'] = 'item'
+        extra['results_page']=self.results_per_page
         return extra