Changeset c537e71 in osmose-frontend


Ignore:
Timestamp:
Oct 31, 2012 4:35:28 PM (5 years ago)
Author:
Frédéric Rodrigo <frodrigo@…>
Branches:
master
Children:
80fc4e5
Parents:
1054d21
Message:

Support small link for item param

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • map.py

    rca358f2 rc537e71  
    2525import datetime 
    2626import json 
     27 
     28 
     29def check_items(items, all_items): 
     30    if not items or items == 'xxxx': 
     31        return all_items 
     32    else: 
     33        items = items.split(',') 
     34        return filter(lambda i: str(i) in items or str(i)[0]+'xxx' in items, all_items) 
    2735 
    2836 
     
    4048    source = request.params.get('source', default='') 
    4149    user   = request.params.get('user', default='') 
    42     active_items = request.params.get('item', default=(request.get_cookie("lastItem") or None)) 
    43  
    44     if active_items: 
    45         try: 
    46             active_items = [int(x) for x in active_items if x] 
    47         except: 
    48             active_items = None 
    49  
    50     if not active_items: 
    51         active_items = [] 
    52         db.execute("SELECT item FROM dynpoi_item GROUP BY item;") 
    53         for res in db.fetchall(): 
    54             active_items.append(int(res[0])) 
     50 
     51    active_items = request.params.get('item', default=request.get_cookie("lastItem")) 
     52    all_items = [] 
     53    db.execute("SELECT item FROM dynpoi_item GROUP BY item;") 
     54    for res in db.fetchall(): 
     55        all_items.append(int(res[0])) 
     56    active_items = check_items(active_items, all_items) 
    5557 
    5658    level_selected = {} 
     
    100102    lat    = int(request.params.get('lat', type=float, default=0)*1000000) 
    101103    lon    = int(request.params.get('lon', type=float, default=0)*1000000) 
    102     err_id = request.params.get('item', default='').split(',') 
    103     err_id = ','.join([str(int(x)) for x in err_id if x]) 
     104    item   = request.params.get('item') 
    104105    source = request.params.get('source', default='') 
    105106    user   = utils.pg_escape(unicode(request.params.get('user', default=''))) 
     
    171172        sources2 = " OR ".join(source2) 
    172173        where = "(%s)" % sources2 
    173     elif err_id: 
    174         where = "(marker.item IN (%s))" % err_id 
     174    elif item: 
     175        if item == 'xxxx': 
     176            where = "1=1" 
     177        else: 
     178            where = [] 
     179            l = [] 
     180            for i in item.split(','): 
     181                try: 
     182                    if 'xxx' in i: 
     183                        where.append("marker.item/1000 = %s" % int(i[0])) 
     184                    else: 
     185                        l.append(str(int(i))) 
     186                except: 
     187                    pass 
     188            if l != []: 
     189                where.append("marker.item IN (%s)" % ','.join(l)) 
     190            if where != []: 
     191                where = "(%s)" % ' OR '.join(where) 
     192            else: 
     193                where = "1=1" 
    175194    else: 
    176195        where = "1=1" 
  • static/map/DynPoi.js

    ra21d87d rc537e71  
    136136            // items list 
    137137            var ch = ""; 
    138             for (var i = 0; i < document.myform.elements.length; ++i) { 
    139                 var el = document.myform.elements[i]; 
    140                 if (el.type == "checkbox" && el.name.match(/item[-0-9]+/) != null) { 
    141                     if (el.checked) ch += el.name.substr(4) + ','; 
    142                 } 
     138            if ($(".test_group :checkbox:not(:checked)").length == 0) { 
     139                ch = "xxxx"; 
     140            } else { 
     141                $(".test_group").each(function() { 
     142                    var id = this.id; 
     143                    v = $("h1 span", this).text().split("/"); 
     144                    if (v[0] == v[1]) { 
     145                        ch += id.substring(5,6) + "xxx,"; 
     146                    } else { 
     147                        $(":checked", this).each(function() { 
     148                            ch += this.name.substr(4) + ","; 
     149                        }) 
     150                    } 
     151                }) 
    143152            } 
    144153            ch = ch.replace(/,$/, ''); 
     
    160169            var permalink = plk.element; 
    161170            // var permalink = document.getElementsByClassName('olControlPermalink')[0].firstChild; 
    162             permalink.href = permalink.href.replace(/&item=[-0-9,]*/, '').replace(/\?item=[-0-9,]*&?/, '?') + "&item=" + ch; 
    163             permalink.href = permalink.href.replace(/&level=[-0-9,]*/, '').replace(/\?level=[-0-9,]*&?/, '?') + "&level=" + document.myform.level.value; 
     171            permalink.href = permalink.href.replace(/&item=[-0-9x,]*/, '').replace(/\?item=[-0-9x,]*&?/, '?') + "&item=" + ch; 
     172            permalink.href = permalink.href.replace(/&level=[-0-9x,]*/, '').replace(/\?level=[-0-9x,]*&?/, '?') + "&level=" + document.myform.level.value; 
    164173 
    165174            var onFail = function (e) { 
Note: See TracChangeset for help on using the changeset viewer.