public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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>



             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