* [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