public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/templatetags/, gpackages/static/js/, ...
@ 2012-07-14 20:15 Slava Bacherikov
  0 siblings, 0 replies; 2+ messages in thread
From: Slava Bacherikov @ 2012-07-14 20:15 UTC (permalink / raw
  To: gentoo-commits

commit:     eab9d6c4b724f199e4de394f738df61eb444ab2d
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Sat Jul 14 16:29:31 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Sat Jul 14 16:29:31 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=eab9d6c4

Show arches choice in modal window

---
 gpackages/apps/generic/templatetags/active_link.py |    9 +++--
 gpackages/apps/packages/templatetags/packages.py   |   10 +++++
 gpackages/static/js/modals.js                      |   36 ++++++++++++++++++++
 gpackages/templates/arch_choice_modal.html         |   32 +++++++++++++++++
 gpackages/templates/base.html                      |    4 ++-
 5 files changed, 87 insertions(+), 4 deletions(-)

diff --git a/gpackages/apps/generic/templatetags/active_link.py b/gpackages/apps/generic/templatetags/active_link.py
index bb2724a..d735477 100644
--- a/gpackages/apps/generic/templatetags/active_link.py
+++ b/gpackages/apps/generic/templatetags/active_link.py
@@ -12,7 +12,7 @@ def active_str(context, url):
 
 # Waring this work only in django>=1.4
 @register.simple_tag(takes_context = True)
-def active_link(context, url_name, text, *args, **kwargs):
+def active_link(context, url_name, text, id = None, *args, **kwargs):
     request = context['request']
     try:
         url = reverse(url_name, *args, **kwargs)
@@ -22,6 +22,9 @@ def active_link(context, url_name, text, *args, **kwargs):
     class_str = ''
     if request.path == url:
         class_str = ' class="active"'
+    id_text = ''
+    if id is not None:
+        id_text = ' id="%s"' % id
     # This would be faster that render in template :)
-    format_str = '<li{2}><a href="{0}">{1}</a><li>'
-    return format_str.format(url, text, class_str)
+    format_str = '<li{2}><a href="{0}"{3}>{1}</a><li>'
+    return format_str.format(url, text, class_str, id_text)

diff --git a/gpackages/apps/packages/templatetags/packages.py b/gpackages/apps/packages/templatetags/packages.py
index bd2e6d1..ed70efe 100644
--- a/gpackages/apps/packages/templatetags/packages.py
+++ b/gpackages/apps/packages/templatetags/packages.py
@@ -4,6 +4,8 @@ from django import template
 register = template.Library()
 
 from ..models import RepositoryModel, EbuildModel
+from ..views import arches
+from ..forms import ArchChoiceForm
 
 @register.inclusion_tag('last_updated.html')
 def last_updated():
@@ -36,3 +38,11 @@ def recent_ebuilds(num = 10):
                        'package__virtual_package__category'). \
                        prefetch_related('package__repository')[:num]
     return {'ebuilds': query}
+
+@register.inclusion_tag('arch_choice_modal.html', takes_context = True)
+def arch_choice_modal(context):
+    request = context['request']
+    arches_s = request.session.get('arches')
+    arches_s = arches_s or arches
+    return {'form': ArchChoiceForm(initial = {'arches': arches_s}),
+            'arches': arches_s}

diff --git a/gpackages/static/js/modals.js b/gpackages/static/js/modals.js
new file mode 100644
index 0000000..93847ac
--- /dev/null
+++ b/gpackages/static/js/modals.js
@@ -0,0 +1,36 @@
+
+    var old_link = window.location.pathname;
+    function show_modal(modal){
+
+        modal.modal("show");
+        modal.on('hide', function(){
+            modal.off("hide");
+            history.pushState({modal: false}, null, old_link);
+        });
+
+    }
+
+    function hide_modal(modal){
+        modal.off('hide');
+        modal.modal('hide');
+    }
+
+    $('#archchoice').click(function(e){
+        e.preventDefault();
+        var modal = $('#ArchModal');
+        show_modal(modal);
+        var obj = $(this).first()[0];
+        var link = obj.href;
+        history.pushState({modal: 'arch'}, null, link);
+        return false;
+    });
+
+    $(window).on('popstate', function(){
+        var current = history.state;
+        var modal = $('#ArchModal');
+        if(current && 'modal' in current && current.modal == 'arch'){
+            show_modal(modal);
+        } else {
+            hide_modal(modal);
+        }
+    });

diff --git a/gpackages/templates/arch_choice_modal.html b/gpackages/templates/arch_choice_modal.html
new file mode 100644
index 0000000..0f236ee
--- /dev/null
+++ b/gpackages/templates/arch_choice_modal.html
@@ -0,0 +1,32 @@
+{% load url from future %}
+<div class="modal hide fade" id="ArchModal">
+    <script>
+        // set default arches
+        var default_arches = ['alpha', 'amd64', 'arm', 'hppa', 'ia64', 'ppc', 'ppc64', 'sparc', 'x86'];
+        var exotic_arches = ['mk68k', 'mips', 's390', 'sh'];
+        var fbsd_arches = ['amd64-fbsd', 'sparc-fbsd', 'x86-fbsd'];
+        var linux_arches = ['alpha', 'amd64', 'arm', 'hppa', 'ia64', 'm68k', 'mips', 'ppc', 'ppc64', 's390', 'sh', 'sparc', 'x86'];
+        var solaris_arches = ['sparc64-solaris', 'sparc-solaris', 'x64-solaris', 'x86-solaris'];
+        var prefix_arches = ['amd64-linux', 'arm-linux', 'hppa-hpux', 'ia64-hpux', 'ia64-linux', 'm68k-mint',
+                             'mips-irix', 'ppc-aix', 'ppc-macos', 'ppc-openbsd', 'sparc-solaris', 'sparc64-solaris',
+                             'x64-freebsd', 'x64-macos', 'x64-openbsd', 'x64-solaris', 'x86-cygwin', 'x86-freebsd', 'x86-interix',
+                             'x86-linux', 'x86-macos', 'x86-netbsd', 'x86-openbsd', 'x86-solaris', 'x86-winnt'];
+    </script>
+    <div class="modal-header">
+        <button type="button" class="close" data-dismiss="modal">×</button>
+        <h3>Arches choice</h3>
+    </div>
+    <form action="{% url 'archchoice' %}" method="post" enctype="multipart/form-data">
+    {% csrf_token %}
+    <div class="arches modal-body">
+        <fieldset>
+            {{ form.arches }}
+        </fieldset>
+    </div>
+    <div class="modal-footer">
+    <a href="#" class="btn" data-dismiss="modal">Close</a>
+    <input type="submit" class="btn btn-primary" value="Submit" />
+  </div>
+  </form>
+</div>
+{{ form.media }}

diff --git a/gpackages/templates/base.html b/gpackages/templates/base.html
index cd90352..748055f 100644
--- a/gpackages/templates/base.html
+++ b/gpackages/templates/base.html
@@ -114,7 +114,7 @@
                             {% active_link 'license_groups' 'License Groups' %}
                             {% active_link 'global_uses' 'Global Use Flags' %}
                             {% active_link 'local_uses' 'Local Use Flags' %}
-                            {% active_link 'archchoice' 'Select Arches' %}
+                            {% active_link 'archchoice' 'Select Arches' id='archchoice' %}
                             {% active_link 'licenses' 'Licenses' %}
                             {% active_link 'filter' 'Filter' %}
                         </ul>
@@ -142,7 +142,9 @@
         <script src="{{ STATIC_URL }}js/csrf.js"></script>
         <script src="{{ STATIC_URL }}js/language.js"></script>
         <script src="{{ STATIC_URL }}js/packages_details.js"></script>
+        <script src="{{ STATIC_URL }}js/modals.js"></script>
     {% endblock scripts %}
+{% arch_choice_modal %}
 {% endblock body %}
   </body>
 </html>



^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/templatetags/, gpackages/static/js/, ...
@ 2012-07-14 20:15 Slava Bacherikov
  0 siblings, 0 replies; 2+ messages in thread
From: Slava Bacherikov @ 2012-07-14 20:15 UTC (permalink / raw
  To: gentoo-commits

commit:     223727ad8d3d091bfc580750b3abf00727bf901e
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Sat Jul 14 20:08:25 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Sat Jul 14 20:08:25 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=223727ad

Add filtering modal

---
 gpackages/apps/packages/templatetags/packages.py |    7 +++-
 gpackages/static/js/modals.js                    |   53 ++++++++++++++++------
 gpackages/templates/base.html                    |    8 +++-
 gpackages/templates/filtering_modal.html         |   24 ++++++++++
 4 files changed, 75 insertions(+), 17 deletions(-)

diff --git a/gpackages/apps/packages/templatetags/packages.py b/gpackages/apps/packages/templatetags/packages.py
index ed70efe..62e067a 100644
--- a/gpackages/apps/packages/templatetags/packages.py
+++ b/gpackages/apps/packages/templatetags/packages.py
@@ -5,7 +5,7 @@ register = template.Library()
 
 from ..models import RepositoryModel, EbuildModel
 from ..views import arches
-from ..forms import ArchChoiceForm
+from ..forms import ArchChoiceForm, FilteringForm
 
 @register.inclusion_tag('last_updated.html')
 def last_updated():
@@ -46,3 +46,8 @@ def arch_choice_modal(context):
     arches_s = arches_s or arches
     return {'form': ArchChoiceForm(initial = {'arches': arches_s}),
             'arches': arches_s}
+
+@register.inclusion_tag('filtering_modal.html')
+def filtering_modal():
+    form = FilteringForm()
+    return {'form': form }

diff --git a/gpackages/static/js/modals.js b/gpackages/static/js/modals.js
index 93847ac..77c4813 100644
--- a/gpackages/static/js/modals.js
+++ b/gpackages/static/js/modals.js
@@ -1,7 +1,7 @@
-
+var ModalsShow  = function(link_id_l, modal_id_l){
     var old_link = window.location.pathname;
-    function show_modal(modal){
 
+    function show_modal(modal){
         modal.modal("show");
         modal.on('hide', function(){
             modal.off("hide");
@@ -14,23 +14,48 @@
         modal.off('hide');
         modal.modal('hide');
     }
+    function obj_cache(){
+        var list = []
+        for(var i=0; i<modal_id_l.length; i++){
+            list[i] = $('#' + modal_id_l[i]);
+        }
+        return list;
+    }
 
-    $('#archchoice').click(function(e){
-        e.preventDefault();
-        var modal = $('#ArchModal');
-        show_modal(modal);
-        var obj = $(this).first()[0];
-        var link = obj.href;
-        history.pushState({modal: 'arch'}, null, link);
-        return false;
-    });
+    var list_m = obj_cache();
+
+    function set_event(modal, link_selector, modal_id){
+        $(link_selector).click(function(e){
+            e.preventDefault();
+            show_modal(modal);
+            var obj = $(this)[0];
+            var link = obj.href;
+            history.pushState({modal: modal_id}, null, link);
+            return false;
+        });
+    }
+
+    function set_events(){
+       for(var i=0; i<link_id_l.length; i++){  
+            set_event(list_m[i], '#' + link_id_l[i], modal_id_l[i]);
+        }
+    }
+
+    set_events();
 
     $(window).on('popstate', function(){
         var current = history.state;
-        var modal = $('#ArchModal');
-        if(current && 'modal' in current && current.modal == 'arch'){
+        if(current && 'modal' in current && current.modal){
+            var modal = list_m[modal_id_l.indexOf(current.modal)];
             show_modal(modal);
         } else {
-            hide_modal(modal);
+            for(var i=0;i<list_m.length;i++){
+                hide_modal(list_m[i]);
+            }
         }
     });
+}
+
+$(function() {
+    ModalsShow(['archchoice', 'filterchoice'], ['ArchModal', 'FilterModal']);
+});

diff --git a/gpackages/templates/base.html b/gpackages/templates/base.html
index 748055f..3fb010f 100644
--- a/gpackages/templates/base.html
+++ b/gpackages/templates/base.html
@@ -116,7 +116,7 @@
                             {% active_link 'local_uses' 'Local Use Flags' %}
                             {% active_link 'archchoice' 'Select Arches' id='archchoice' %}
                             {% active_link 'licenses' 'Licenses' %}
-                            {% active_link 'filter' 'Filter' %}
+                            {% active_link 'filter' 'Filter' id='filterchoice' %}
                         </ul>
                        </div>
                        {% recent_ebuilds %}
@@ -144,7 +144,11 @@
         <script src="{{ STATIC_URL }}js/packages_details.js"></script>
         <script src="{{ STATIC_URL }}js/modals.js"></script>
     {% endblock scripts %}
-{% arch_choice_modal %}
+
+    {% block modals %}
+        {% arch_choice_modal %}
+        {% filtering_modal %}
+    {% endblock modals %}
 {% endblock body %}
   </body>
 </html>

diff --git a/gpackages/templates/filtering_modal.html b/gpackages/templates/filtering_modal.html
new file mode 100644
index 0000000..66719e7
--- /dev/null
+++ b/gpackages/templates/filtering_modal.html
@@ -0,0 +1,24 @@
+{% load url from future %}
+{% load static %}
+{% get_static_prefix as STATIC_URL %}
+<div class="modal hide fade" id="FilterModal">
+    <div class="modal-header">
+        <button type="button" class="close" data-dismiss="modal">×</button>
+        <h3>Filter</h3>
+    </div>
+    <form action="{% url 'filter' %}" method="post" enctype="multipart/form-data">
+        {% csrf_token %}
+        <div class="modal-body filter">
+            {{ form.as_ul }} 
+        </div>
+        <div class="modal-footer">
+            <a href="#" class="btn" data-dismiss="modal">Close</a>
+            <input type="submit" class="btn btn-primary" value="Submit" />
+        </div>
+    </form>
+</div>
+<link href="{{ STATIC_URL }}css/chosen.css" rel="stylesheet">
+<script src="{{ STATIC_URL }}js/chosen.jquery.js"></script>
+<script type="text/javascript" charset="utf-8">
+    $('select').chosen(); // :)
+</script>



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-07-14 20:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-14 20:15 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/templatetags/, gpackages/static/js/, Slava Bacherikov
  -- strict thread matches above, loose matches on Subject: below --
2012-07-14 20:15 Slava Bacherikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox