From a6b9380ed6b162894bb76cadf5ea2aadcda5c4a9 Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Sun, 29 Nov 2020 17:28:54 +0100
Subject: [PATCH] Write JS code for beautiful multiple select

---
 .../apps/alsijil/static/js/alsijil/person.js  | 36 +++++++++++++++++++
 .../alsijil/class_register/person.html        |  1 +
 2 files changed, 37 insertions(+)
 create mode 100644 aleksis/apps/alsijil/static/js/alsijil/person.js

diff --git a/aleksis/apps/alsijil/static/js/alsijil/person.js b/aleksis/apps/alsijil/static/js/alsijil/person.js
new file mode 100644
index 000000000..579b046cc
--- /dev/null
+++ b/aleksis/apps/alsijil/static/js/alsijil/person.js
@@ -0,0 +1,36 @@
+$(document).ready(function () {
+    $("#select_all_container").show();
+    $("#select_all_box").change(function (event) {
+        if ($(this).is(":checked")) {
+            $(document).find('input[name="selected_notes"]').prop({
+                indeterminate: false,
+                checked: true,
+            });
+        } else {
+            $(document).find('input[name="selected_notes"]').prop({
+                indeterminate: false,
+                checked: false,
+            });
+        }
+    });
+
+    $('input[name="selected_notes"]').change(function () {
+        var checked = $(this).is(":checked");
+        var indeterminate = false;
+        $(document).find('input[name="selected_notes"]').each(function () {
+            if ($(this).is(":checked") !== checked){
+                $("#select_all_box").prop({
+                    indeterminate: true,
+                })
+                indeterminate = true;
+                return false;
+            }
+        });
+        if (!(indeterminate)) {
+            $("#select_all_box").prop({
+                indeterminate: false,
+                checked: checked,
+            });
+        }
+    });
+});
\ No newline at end of file
diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html
index b51e911e3..928087adf 100644
--- a/aleksis/apps/alsijil/templates/alsijil/class_register/person.html
+++ b/aleksis/apps/alsijil/templates/alsijil/class_register/person.html
@@ -8,6 +8,7 @@
 
 {% block extra_head %}
     <link rel="stylesheet" href="{% static "css/alsijil/person.css" %}">
+    <script src="{% static "js/alsijil/person.js" %}" type="text/javascript"></script>
 {% endblock %}
 
 {% block browser_title %}{% blocktrans %}Class register: person{% endblocktrans %}{% endblock %}
-- 
GitLab