Changeset 9774813 in osmose-frontend


Ignore:
Timestamp:
Jan 22, 2013 10:27:27 PM (7 years ago)
Author:
Jocelyn Jaubert <jocelyn.jaubert@…>
Branches:
master
Children:
82914f1
Parents:
4799a3e (diff), a32913b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'dev'

Files:
14 edited

Legend:

Unmodified
Added
Removed
  • bottle.py

    r95a622e r51fc529  
    1717 
    1818__author__ = 'Marcel Hellkamp' 
    19 __version__ = '0.11.2' 
     19__version__ = '0.11.5' 
    2020__license__ = 'MIT' 
    2121 
     
    408408        if 'GET' in allowed and 'HEAD' not in allowed: 
    409409            allowed.append('HEAD') 
    410         raise HTTPError(405, "Method not allowed.", 
    411                         header=[('Allow',",".join(allowed))]) 
     410        raise HTTPError(405, "Method not allowed.", Allow=",".join(allowed)) 
    412411 
    413412 
     
    563562            try: 
    564563                request.path_shift(path_depth) 
    565                 rs = BaseResponse([], 200) 
    566                 def start_response(status, header): 
     564                rs = HTTPResponse([]) 
     565                def start_response(status, headerlist): 
    567566                    rs.status = status 
    568                     for name, value in header: rs.add_header(name, value) 
     567                    for name, value in headerlist: rs.add_header(name, value) 
    569568                    return rs.body.append 
    570569                body = app(request.environ, start_response) 
    571                 body = itertools.chain(rs.body, body) 
    572                 return HTTPResponse(body, rs.status_code, rs.headers) 
     570                if body: rs.body = itertools.chain(rs.body, body) 
     571                return rs 
    573572            finally: 
    574573                request.path_shift(-path_depth) 
     
    20462045        code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302 
    20472046    location = urljoin(request.url, url) 
    2048     raise HTTPResponse("", status=code, header=dict(Location=location)) 
     2047    res = HTTPResponse("", status=code, Location=location) 
     2048    if response._cookies: 
     2049        res._cookies = response._cookies 
     2050    raise res 
    20492051 
    20502052 
     
    28002802        """ Search name in all directories specified in lookup. 
    28012803        First without, then with common extensions. Return first hit. """ 
    2802         if os.path.isfile(name): return name 
     2804        if not lookup: 
     2805            depr('The template lookup path list should not be empty.') 
     2806            lookup = ['.'] 
     2807 
     2808        if os.path.isabs(name) and os.path.isfile(name): 
     2809            depr('Absolute template path names are deprecated.') 
     2810            return os.path.abspath(name) 
     2811 
    28032812        for spath in lookup: 
    2804             fname = os.path.join(spath, name) 
    2805             if os.path.isfile(fname): 
    2806                 return fname 
     2813            spath = os.path.abspath(spath) + os.sep 
     2814            fname = os.path.abspath(os.path.join(spath, name)) 
     2815            if not fname.startswith(spath): continue 
     2816            if os.path.isfile(fname): return fname 
    28072817            for ext in cls.extensions: 
    28082818                if os.path.isfile('%s.%s' % (fname, ext)): 
     
    30903100    lookup = kwargs.pop('template_lookup', TEMPLATE_PATH) 
    30913101    tplid = (id(lookup), tpl) 
    3092     if tpl not in TEMPLATES or DEBUG: 
     3102    if tplid not in TEMPLATES or DEBUG: 
    30933103        settings = kwargs.pop('template_settings', {}) 
    30943104        if isinstance(tpl, adapter): 
  • bottle_gettext.py

    re918b52 r7bac0a2  
    2727 
    2828    def get_language(self): 
    29         lang = [request.get_cookie('lang')] 
    30         if lang[0] and lang[0] not in self.allowed_languages: 
    31             lang = [None] 
     29        lang = [None] 
     30 
     31        if len(request.script_name) > 3: 
     32            lang = [request.script_name[-3:-1], self.allowed_languages[0]] 
     33            if lang[0] not in self.allowed_languages: 
     34                lang = [None] 
     35            else: 
     36                return (lang, False) 
     37 
     38        if not lang[0]: 
     39            lang = [request.get_cookie('lang')] 
     40            if lang[0] not in self.allowed_languages: 
     41                lang = [None] 
    3242 
    3343        if not lang[0] and request.get_header('Accept-Language'): 
     
    4454                if not l in res: 
    4555                    res.append(l) 
    46             return res 
     56            return (res, True) 
    4757        else: 
    48             return self.allowed_languages 
     58            return (self.allowed_languages, True) 
    4959 
    5060    def apply(self, callback, route): 
     
    5363 
    5464        def wrapper(*args, **kwargs): 
    55             language = self.get_language() 
     65            (language, redirect) = self.get_language() 
     66 
     67            if redirect: 
     68                from tools import utils 
     69                from bottle import redirect 
     70                url = request.urlparts 
     71                new_url = [] 
     72                new_url.append(url[0]) 
     73                new_url.append("://") 
     74                new_url.append(utils.website) 
     75                new_url.append("/" + language[0]) 
     76                new_url.append(request.fullpath) 
     77                if url[3]: 
     78                    new_url.append("?") 
     79                    new_url.append(url[3]) 
     80                redirect("".join(new_url)) 
     81                return 
    5682 
    5783            # Setup Gettext 
  • map.py

    r28a008c r05a2348  
    140140        source=params["source"], user=params["user"], classs=params["class"], 
    141141        levels=levels, level_selected=level_selected, active_items=active_items, urls=urls, delay=delay, 
    142         allowed_languages=allowed_languages, translate=utils.translator(lang)) 
     142        allowed_languages=allowed_languages, translate=utils.translator(lang), 
     143        website=utils.website, request=request) 
    143144 
    144145 
  • osmose.py

    r383bee9 rabd0c90  
    1313 
    1414app = bottle.default_app() 
     15 
     16for l in utils.allowed_languages: 
     17    app.mount('/' + l, app) 
    1518 
    1619from bottle import SimpleTemplate 
  • po/de.po

    r383bee9 ra32913b  
    88"Project-Id-Version: PACKAGE VERSION\n" 
    99"Report-Msgid-Bugs-To: \n" 
    10 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     10"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1111"PO-Revision-Date: 2012-08-02 14:19+0100\n" 
    1212"Last-Translator: operon <operon@sfr.fr>\n" 
     
    102102 
    103103#. TRANSLATORS: link to tooltip help 
    104 #: ../map.py:377 
     104#: ../map.py:378 
    105105msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    106106msgstr "http://wiki.openstreetmap.org/wiki/DE:Osmose/erreurs" 
  • po/en.po

    r383bee9 ra32913b  
    88"Project-Id-Version: PACKAGE VERSION\n" 
    99"Report-Msgid-Bugs-To: \n" 
    10 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     10"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1111"PO-Revision-Date: 2012-06-05 21:26+0100\n" 
    1212"Last-Translator: operon <operon@sfr.fr>\n" 
     
    101101 
    102102#. TRANSLATORS: link to tooltip help 
    103 #: ../map.py:377 
     103#: ../map.py:378 
    104104msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    105105msgstr "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
  • po/fr.po

    r383bee9 ra32913b  
    1010"Project-Id-Version: PACKAGE VERSION\n" 
    1111"Report-Msgid-Bugs-To: \n" 
    12 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     12"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1313"PO-Revision-Date: 2012-10-11 22:17+0100\n" 
    1414"Last-Translator: frodrigo <frodrigo@openstreetmap.fr>\n" 
     
    103103 
    104104#. TRANSLATORS: link to tooltip help 
    105 #: ../map.py:377 
     105#: ../map.py:378 
    106106msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    107107msgstr "http://wiki.openstreetmap.org/wiki/FR:Osmose/erreurs" 
  • po/it.po

    r383bee9 ra32913b  
    88"Project-Id-Version: PACKAGE VERSION\n" 
    99"Report-Msgid-Bugs-To: \n" 
    10 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     10"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1111"PO-Revision-Date: 2012-08-02 14:22+0100\n" 
    1212"Last-Translator: operon <operon@sfr.fr>\n" 
     
    106106 
    107107#. TRANSLATORS: link to tooltip help 
    108 #: ../map.py:377 
     108#: ../map.py:378 
    109109msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    110110msgstr "http://wiki.openstreetmap.org/wiki/IT:Osmose/erreurs" 
  • po/nl.po

    r383bee9 ra32913b  
    88"Project-Id-Version: PACKAGE VERSION\n" 
    99"Report-Msgid-Bugs-To: \n" 
    10 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     10"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1111"PO-Revision-Date: 2012-08-02 14:24+0100\n" 
    1212"Last-Translator: operon <operon@sfr.fr>\n" 
     
    107107 
    108108#. TRANSLATORS: link to tooltip help 
    109 #: ../map.py:377 
     109#: ../map.py:378 
    110110msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    111111msgstr "http://wiki.openstreetmap.org/wiki/NL:Osmose/erreurs" 
  • po/osmose-frontend.pot

    r383bee9 ra32913b  
    99"Project-Id-Version: PACKAGE VERSION\n" 
    1010"Report-Msgid-Bugs-To: \n" 
    11 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     11"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    101101 
    102102#. TRANSLATORS: link to tooltip help 
    103 #: ../map.py:377 
     103#: ../map.py:378 
    104104msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    105105msgstr "" 
  • po/sw.po

    r383bee9 ra32913b  
    1010"Project-Id-Version: PACKAGE VERSION\n" 
    1111"Report-Msgid-Bugs-To: \n" 
    12 "POT-Creation-Date: 2013-01-20 15:57+0100\n" 
     12"POT-Creation-Date: 2013-01-21 20:16+0100\n" 
    1313"PO-Revision-Date: 2012-10-11 22:17+0100\n" 
    1414"Last-Translator: operon\n" 
     
    103103 
    104104#. TRANSLATORS: link to tooltip help 
    105 #: ../map.py:377 
     105#: ../map.py:378 
    106106msgid "http://wiki.openstreetmap.org/wiki/Osmose/errors" 
    107107msgstr "http://wiki.openstreetmap.org/wiki/SW:Osmose/erreurs" 
  • static/map/map.js

    rb87090a rabd0c90  
    407407function set_lang(select) { 
    408408    var lang = $(select).val(); 
    409     setCookie("lang", lang, 30); 
    410     window.location.reload(); 
     409    window.location.href = "../" + lang + "/map/" + window.location.search; 
    411410} 
    412411 
  • static/map/style.css

    r6ae4edc r8e3a344d  
    1212a:hover { 
    1313  color: #000000; 
     14} 
     15 
     16.bold { 
     17  font-weight: bold; 
    1418} 
    1519 
     
    2731  padding-top: 8px; 
    2832  padding-right: 0px; 
    29   opacity: 0.9; 
     33  opacity: 0.95; 
    3034} 
    3135a#togglemenu { 
     
    122126} 
    123127 
    124 /* Bottom links */ 
    125 div#bottom_links { 
     128/* Top menu */ 
     129div#top_links { 
    126130  background-color: #DDDDDD; 
    127131  position: absolute; 
     
    130134  left: 0px; 
    131135  top: 0px; 
    132   opacity: 0.8; 
     136  opacity: 0.9; 
    133137  font-size: 13px; 
    134138 
     
    137141  z-index: 1000; 
    138142} 
     143 
     144#topmenu { 
     145  list-style-type: none; 
     146  margin: 0; 
     147  padding: 0; 
     148  border: 0; 
     149  position: absolute; 
     150  top: 0; 
     151  left: 0; 
     152} 
     153#topmenu li { 
     154  float: left; 
     155  margin: 0; 
     156  padding: 0; 
     157  border: 0; 
     158} 
     159#topmenu li a:link, 
     160#topmenu li a:visited { 
     161  display: block; 
     162  margin: 0; 
     163  padding: 4px 8px; 
     164  border-right: 1px solid #fff; 
     165  text-decoration: none; 
     166} 
     167#topmenu li a:hover { background-color: #B0B0B0; } 
     168#topmenu li a:active { background-color: #B0B0B0; } 
     169  
     170#topmenu .submenu { 
     171  display: none; 
     172  list-style-type: none; 
     173  margin: 0; 
     174  padding: 0; 
     175  border: 0; 
     176} 
     177#topmenu .submenu li { 
     178  float: none; 
     179  margin: 0; 
     180  padding: 0; 
     181  border: 0; 
     182  border-top: 1px solid #003453; 
     183  border-right: 1px solid #003453; 
     184} 
     185#topmenu .submenu li a:link, 
     186#topmenu .submenu li a:visited { 
     187  display: block; 
     188  margin: 0; 
     189  border: 0; 
     190  text-decoration: none; 
     191  background: #DDDDDD; 
     192} 
     193#topmenu .submenu li a:hover { 
     194  background-image: none; 
     195  background-color: #B0B0B0; 
     196} 
     197  
     198#topmenu li:hover > .submenu { display: block; } 
    139199 
    140200/* popups */ 
     
    362422 
    363423.delay-normal { 
    364     background: green; 
     424    background: green !important; 
    365425} 
    366426.delay-warning { 
    367     background: orange; 
     427    background: orange !important; 
    368428} 
    369429.delay-error { 
    370     background: red; 
    371 } 
     430    background: red !important; 
     431} 
  • views/map/index.tpl

    r6ae4edc r05a2348  
    9696<div id="map"></div> 
    9797 
    98 <div id='bottom_links'> 
    99 <form method='get' style='display:inline; margin-right: 30px;' action=''> 
    100 {{_("Change language:")}} 
    101 <select onchange="set_lang(this)" name='language'> 
    102     <option value=''></option> 
     98<div id='top_links'> 
     99<ul id="topmenu"> 
     100<li><a href='#'>{{_("Change language:")}}</a> 
     101<ul class="submenu"> 
    103102%for l in allowed_languages: 
    104103%    if translate.languages[0] == l: 
    105 %        s = " selected='selected'" 
     104%        s = " class='bold'" 
    106105%    else: 
    107106%        s = "" 
    108107%    end 
    109     <option{{!s}} value='{{l}}'>{{l}}</option> 
     108  <li{{!s}}><a href="{{"http://" + website + "/" + l + request.path + "?" + request.query_string}}">{{l}}</a></li> 
    110109%end 
    111 </select> 
    112 </form> 
     110</ul> 
     111</li> 
    113112 
    114113%for u in urls: 
    115  &mdash; <a href='{{u[1]}}'>{{u[0]}}</a> 
     114 <li><a href="{{u[1]}}">{{u[0]}}</a></li> 
    116115%end 
    117116 
    118117%delay_status = "normal" if delay < 1.1 else "warning" if delay < 1.6 else "error" 
    119118%delay = "%0.2f" % delay 
    120 <span class="delay-{{delay_status}}">{{_("Delay: %sd") % delay}}</span> 
     119<li><a href="../control/update" class="delay-{{delay_status}}">{{_("Delay: %sd") % delay}}</a></li> 
     120</ul> 
    121121</div> 
    122122 
Note: See TracChangeset for help on using the changeset viewer.