From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/static/js/, gpackages/templates/
Date: Sun, 8 Jul 2012 19:54:45 +0000 (UTC) [thread overview]
Message-ID: <1341687163.18697040d5bb1876c3c21abcea696c6c3ff302f1.bacher09@gentoo> (raw)
commit: 18697040d5bb1876c3c21abcea696c6c3ff302f1
Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Sat Jul 7 18:52:43 2012 +0000
Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Sat Jul 7 18:52:43 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=18697040
Extend select arches view with javascript
---
gpackages/apps/packages/views.py | 4 ++-
gpackages/apps/packages/widgets.py | 6 ++++
gpackages/static/js/arches_select.js | 47 ++++++++++++++++++++++++++++++++++
gpackages/templates/arch_choice.html | 11 +++++++-
gpackages/templates/base.html | 12 +++++---
5 files changed, 73 insertions(+), 7 deletions(-)
diff --git a/gpackages/apps/packages/views.py b/gpackages/apps/packages/views.py
index 1123d5a..13266c4 100644
--- a/gpackages/apps/packages/views.py
+++ b/gpackages/apps/packages/views.py
@@ -187,10 +187,12 @@ class LicenseDetailView(ContextView, DetailView):
slug_field = 'name'
queryset = LicenseModel.objects.all()
-class ArchChoiceView(ArchesViewMixin, FormView):
+class ArchChoiceView(ContextView, ArchesViewMixin, FormView):
form_class = ArchChoiceForm
template_name = 'arch_choice.html'
success_url = '/'
+ extra_context = {'page_name': 'Select arches',
+ 'default_arches': arches}
def get_initial(self):
arches = self.get_arches()
diff --git a/gpackages/apps/packages/widgets.py b/gpackages/apps/packages/widgets.py
index 047d0e2..5059601 100644
--- a/gpackages/apps/packages/widgets.py
+++ b/gpackages/apps/packages/widgets.py
@@ -39,4 +39,10 @@ class DivCheckboxSelectMultiple(forms.CheckboxSelectMultiple):
row2.append('</div>')
output.extend(row1 + row2)
output.append('</div>')
+ output.append('<input type="button" id="reset" value="Reset" />')
+ output.append('<input type="button" id="set" value="Set" />')
+ output.append('<input type="button" id="default" value="Default" />')
return mark_safe('\n'.join(output))
+
+ class Media:
+ js = ('js/arches_select.js',)
diff --git a/gpackages/static/js/arches_select.js b/gpackages/static/js/arches_select.js
new file mode 100644
index 0000000..cf9c281
--- /dev/null
+++ b/gpackages/static/js/arches_select.js
@@ -0,0 +1,47 @@
+var ArchesMenu = function (){
+ var self = function(){};
+ var cache, default_arch_obj;
+ var gen_func = function(func){
+ return function() { cache.each(func); }
+ }
+ function create_dict(arr){
+ o = {};
+ for(i=0;i<arr.length;i++){
+ o[arr[i]] = true;
+ }
+ return o;
+ }
+ $.extend(self, {
+ init: function () {
+ $('#reset').live('click', ArchesMenu.reset);
+ $('#set').live('click', ArchesMenu.set);
+ $('#default').live('click', ArchesMenu.set_default);
+ cache = $(':checkbox');
+ default_arch_obj = create_dict(default_arches);
+ },
+ reset: gen_func(function(num, obj){
+ obj.checked = false;
+ }
+ ),
+ set: gen_func(function(num, obj){
+ obj.checked = true;
+ }
+ ),
+ set_default: gen_func(function(num, obj){
+ if(obj.value in default_arch_obj){
+ obj.checked = true;
+ } else {
+ obj.checked = false;
+ }
+ }
+ )
+ });
+ return self;
+}();
+
+!function ($){
+ $(function () {
+ ArchesMenu.init();
+ });
+}(window.jQuery);
+
diff --git a/gpackages/templates/arch_choice.html b/gpackages/templates/arch_choice.html
index 0b03c61..7af213f 100644
--- a/gpackages/templates/arch_choice.html
+++ b/gpackages/templates/arch_choice.html
@@ -1,10 +1,19 @@
{% extends 'base.html' %}
{% block content %}
+<script>
+ // set default arches
+ var default_arches = {{ default_arches|safe }};
+</script>
<div class="arches">
<form action="./" method="post" enctype="multipart/form-data">{% csrf_token %}
- {{ form.as_ul }}
+ {{ form.as_ul }} <br />
<input type="submit" value="Submit" />
</form>
</div>
{% endblock content %}
+
+{% block scripts %}
+ {{ block.super }}
+ {{ form.media }}
+{% endblock scripts %}
diff --git a/gpackages/templates/base.html b/gpackages/templates/base.html
index 6abe005..850c644 100644
--- a/gpackages/templates/base.html
+++ b/gpackages/templates/base.html
@@ -133,11 +133,13 @@
<!-- Le javascript
================================================== -->
- <script src="{{ STATIC_URL }}js/jquery.js"></script>
- <script src="{{ STATIC_URL }}js/bootstrap.js"></script>
- <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>
+ {% block scripts %}
+ <script src="{{ STATIC_URL }}js/jquery.js"></script>
+ <script src="{{ STATIC_URL }}js/bootstrap.js"></script>
+ <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>
+ {% endblock scripts %}
{% endblock body %}
</body>
</html>
next reply other threads:[~2012-07-08 19:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-08 19:54 Slava Bacherikov [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-07-14 20:15 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/static/js/, gpackages/templates/ Slava Bacherikov
2012-06-30 0:22 Slava Bacherikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1341687163.18697040d5bb1876c3c21abcea696c6c3ff302f1.bacher09@gentoo \
--to=slava@bacherikov.org.ua \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox