Changeset 3aad5cc in osmose-frontend


Ignore:
Timestamp:
Oct 26, 2012 8:54:00 PM (6 years ago)
Author:
Jocelyn Jaubert <jocelyn.jaubert@…>
Branches:
master
Children:
a21d87d
Parents:
7239819
git-author:
Jocelyn Jaubert <jocelyn.jaubert@…> (26/10/2012 19:34:53)
git-committer:
Jocelyn Jaubert <jocelyn.jaubert@…> (26/10/2012 20:54:00)
Message:

Generate popups through a mustache template

Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • map.py

    r7239819 r3aad5cc  
    285285    item      = res["item"] or 0 
    286286 
     287    def expand_tags(tags, short = False): 
     288      t = [] 
     289      if short: 
     290        for k in tags: 
     291          t.append({"k": k}) 
     292      else: 
     293        for (k, v) in tags.items(): 
     294          t.append({"k": k, "v": v}) 
     295      return t 
     296 
    287297    elems = [] 
    288     if res["elem0_data_type"]: 
    289         elems.append([data_type[res["elem0_data_type"]], res["elem0_id"], res["elem0_tags"]]) 
    290     if res["elem1_data_type"]: 
    291         elems.append([data_type[res["elem1_data_type"]], res["elem1_id"], res["elem1_tags"]]) 
    292     if res["elem2_data_type"]: 
    293         elems.append([data_type[res["elem2_data_type"]], res["elem2_id"], res["elem2_tags"]]) 
     298    for e in xrange(3): 
     299      elem = "elem%d_" % e 
     300      if res[elem + "data_type"]: 
     301        tmp_elem = {data_type[res[elem + "data_type"]]: True, 
     302                    "type": data_type[res[elem + "data_type"]], 
     303                    "id": res[elem + "id"], 
     304                    "tags": expand_tags(res[elem + "tags"]), 
     305                    "fixes": [], 
     306                   } 
     307        for f in xrange(5): 
     308          fix = "fix%d_" % f 
     309          if (res[fix + "elem_data_type"] and 
     310              res[fix + "elem_data_type"] == res[elem + "data_type"] and 
     311              res[fix + "elem_id"] == res[elem + "id"]): 
     312            tmp_elem["fixes"].append({"add": expand_tags(res[fix + "tags_create"]), 
     313                                      "mod": expand_tags(res[fix + "tags_modify"]), 
     314                                      "del": expand_tags(res[fix + "tags_delete"], True), 
     315                                     }) 
     316        elems.append(tmp_elem) 
     317 
    294318 
    295319    new_elems = [] 
    296320    for f in xrange(5): 
    297         if res["fix%d_elem_data_type" % f]: 
     321        fix = "fix%d_" % f 
     322        if res[fix + "elem_data_type"]: 
    298323            found = False 
    299324            for e in elems: 
    300                 if e[0] == data_type[res["fix%d_elem_data_type" % f]] and e[1] == res["fix%d_elem_id" % f]: 
    301                     e.append([res["fix%d_tags_create" % f], 
    302                               res["fix%d_tags_modify" % f], 
    303                               res["fix%d_tags_delete" % f], 
    304                               f]) 
     325                if (e["type"] == data_type[res[fix + "elem_data_type"]] and 
     326                    e["id"] == res[fix + "elem_id"]): 
     327 
    305328                    found = True 
    306329                    break 
    307330            if not found: 
    308                 new_elems.append([res["fix%d_tags_create" % f], 
    309                                   res["fix%d_tags_modify" % f], 
    310                                   res["fix%d_tags_delete" % f], 
    311                                   f]) 
     331                new_elems.append({"add": expand_tags(res[fix + "tags_create"]), 
     332                                  "mod": expand_tags(res[fix + "tags_modify"]), 
     333                                  "del": expand_tags(res[fix + "tags_delete"], True), 
     334                                 }) 
     335 
    312336 
    313337    response.content_type = "application/json" 
    314338    return json.dumps({ 
     339        "website": utils.website, 
    315340        "lat":lat, "lon":lon, 
    316341        "error_id":error_id, 
  • static/map/DynPoi.js

    r437f131 r3aad5cc  
    350350                url: 'marker/' + this.popup.feature.data.marker_id, 
    351351                success: function (ajaxRequest) { 
    352                     this.popup.setContentHTML(ajaxRequest.responseText); 
     352                    var template = $('#popupTpl').html(); 
     353                    var resp = JSON.parse(ajaxRequest.responseText); 
     354                    var content = Mustache.render(template, resp); 
     355                    this.popup.setContentHTML(content); 
    353356                    this.downloaded = true; 
    354357                }, 
  • static/map/map.js

    r437f131 r3aad5cc  
    153153    handleResize(); 
    154154    change_level_display(); 
     155 
     156     $.ajax({ 
     157         url: $("#popupTpl").attr("src") 
     158     }).done(function( html ) { 
     159         $("#popupTpl").html(html); 
     160     }); 
    155161} 
    156162 
  • views/map/index.tpl

    r73e2c35 r3aad5cc  
    88  <link rel="stylesheet" type="text/css" href="{{get_url('static', filename='/map/style-ol.css')}}"> 
    99  <link rel="stylesheet" type="text/css" href="{{get_url('static', filename='/OpenLayers/theme/default/style.css')}}"> 
     10  <script id="popupTpl" type="text/template" src="{{get_url('static', filename='/tpl/popup.tpl')}}"></script> 
     11 
    1012  <script type="text/javascript" src="{{get_url('static', filename='/OpenLayers/OpenLayers.js')}}"></script> 
    1113  <script type="text/javascript" src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script> 
     
    1315  <script type="text/javascript" src="{{get_url('static', filename='/map/BetaStyles.js')}}"></script> 
    1416  <script type="text/javascript" src="{{get_url('static', filename='/map/map.js')}}"></script> 
     17  <script type="text/javascript" src="{{get_url('static', filename='/js/mustache.js')}}"></script> 
    1518  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    1619  <script type="text/javascript"> 
Note: See TracChangeset for help on using the changeset viewer.