diff --git a/categories.js b/categories.js
index 06e876f..3501b71 100644
--- a/categories.js
+++ b/categories.js
@@ -4,9 +4,23 @@ var form = document.getElementById("form-categories");
for(var i = 0; i < categories.length; ++i)
{
- categories[i].addEventListener('change', function() {
+ categories[i].addEventListener('change', function(event) {
'use strict';
- form.submit();
+ var cat_id = event.target.id.replace('cat_','');
+
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", "updateCategories.php?id="+cat_id+"&val="+event.target.checked);
+ xhr.send(null);
+
+ var events = document.getElementsByClassName('event_in_cat_'+cat_id);
+
+ for(var i = 0; i < events.length; ++i)
+ {
+ var evt = events[i];
+ evt.className = evt.className.replace(' bad_cat','');
+ if(event.target.checked == false)
+ evt.className += ' bad_cat';
+ }
}, false);
}
diff --git a/databaseOperations.php b/databaseOperations.php
index 788c514..e9e4ee0 100755
--- a/databaseOperations.php
+++ b/databaseOperations.php
@@ -191,6 +191,7 @@ function getCategoriesForOneEvent($db, $eventId)
$request->execute(array($eventId));
$result = $request->fetchAll();
$request->closeCursor();
+ $categories = array();
foreach($result as $oneResult)
$categories[] = $oneResult["cat_id"];
return $categories;
diff --git a/index.css b/index.css
index c675900..afb2182 100755
--- a/index.css
+++ b/index.css
@@ -80,6 +80,7 @@ form
input[type="checkbox"] {
display:none;
}
+
input[type="checkbox"] + label span {
display:inline-block;
width:19px;
@@ -252,6 +253,10 @@ input[type="checkbox"]:checked + label span {
text-decoration: none;
}
+#calendar .week .day .bad_cat {
+ display: none;
+}
+
@media only screen and (max-width: 1000px) and (max-height: 500px){
#exMois
diff --git a/index.php b/index.php
index 8a48faf..b4003ca 100644
--- a/index.php
+++ b/index.php
@@ -12,6 +12,16 @@ $weekOffset = $_GET['w'];
else
$weekOffset = 0;
+function categoriesOK($session, $categories)
+{
+ foreach($session as $cat=>$cat_status)
+ {
+ if($cat_status && in_array($cat, $categories))
+ return true;
+ }
+ return false;
+}
+
?>
@@ -78,7 +88,7 @@ $weekOffset = 0;