diff options
-rw-r--r-- | main/views.py | 8 | ||||
-rw-r--r-- | settings.py | 3 | ||||
-rw-r--r-- | static/main_map.js | 11 | ||||
-rw-r--r-- | templates/main_map.html | 4 |
4 files changed, 23 insertions, 3 deletions
diff --git a/main/views.py b/main/views.py index a7a4da7..42c9229 100644 --- a/main/views.py +++ b/main/views.py @@ -42,8 +42,14 @@ def index(request): subcategories = SubCategory.getAvailable() # by default all subcategories are checked for cat, sub_cats in subcategories: + all_checked = True for sub_category in sub_cats: - sub_category.selected = True + if sub_category.id in settings.DEFAULT_CATEGORIES: + sub_category.selected = True + elif all_checked: + all_checked = False + if all_checked: + cat.selected = True extra_js = "" for url in URL_OSM_JS + ["%smain_map.js" % settings.MEDIA_URL]: extra_js += '<script src="%s"></script>\n' % url diff --git a/settings.py b/settings.py index 9fd47ba..347ffbf 100644 --- a/settings.py +++ b/settings.py @@ -8,6 +8,9 @@ DEFAULT_CENTER = (-1.679444, 48.114722) EPSG_PROJECTION = 900913 EPSG_DISPLAY_PROJECTION = 4326 +# default id category to check on the map +DEFAULT_CATEGORIES = [1] + DEBUG = True TEMPLATE_DEBUG = DEBUG diff --git a/static/main_map.js b/static/main_map.js index 3ccf2b0..0ba7ebb 100644 --- a/static/main_map.js +++ b/static/main_map.js @@ -19,6 +19,17 @@ See the file COPYING for details. /* main map */ +/* check all the categories if clicked, unckeck if unclick */ +function checkAll(item, ids){ + check = false; + if(item.checked == true){ + check = true; + } + for (i in ids){ + document.getElementById('category_'+ids[i]).checked = check; + } +} + /* show a block panel */ function show(id){ document.getElementById(id).style.display = 'block'; diff --git a/templates/main_map.html b/templates/main_map.html index 6b2d9d5..b5aca16 100644 --- a/templates/main_map.html +++ b/templates/main_map.html @@ -4,9 +4,9 @@ <div id='panel'> <form method='post' name='frm_categories' id='frm_categories'> <ul id='categories'>{% for category, lst_sub_categories in sub_categories %} - <li>{% trans category.name %} + <li><input type='checkbox' id='maincat_{{category.id}}' onclick='var lst=new Array();{% for sub_category in lst_sub_categories %}lst.push("{{sub_category.id}}");{% endfor %}checkAll(this, lst);loadGeoObjects();' {% if category.selected %} checked='checked'{%endif%}/>{% trans category.name %} <ul class='subcategories'>{% for sub_category in lst_sub_categories %} - <li><input type='checkbox' onclick='loadGeoObjects()' name='category_{{sub_category.id}}' id='{{sub_category.id}}'{% if sub_category.selected %} checked='checked'{% endif %}/> <label for='{{sub_category.id}}'><img alt='{{sub_category.name}}' src='{{media_path}}{{sub_category.icon.image}}'/> {% trans sub_category.name %}</label></li>{% endfor %} + <li><input type='checkbox' onclick='loadGeoObjects()' name='category_{{sub_category.id}}' id='category_{{sub_category.id}}'{% if sub_category.selected %} checked='checked'{% endif %}/> <label for='{{sub_category.id}}'><img alt='{{sub_category.name}}' src='{{media_path}}{{sub_category.icon.image}}'/> {% trans sub_category.name %}</label></li>{% endfor %} </ul> </li>{% endfor %} </ul> |