diff options
-rw-r--r-- | chimere/main/views.py | 20 | ||||
-rw-r--r-- | chimere/settings.py.example | 8 | ||||
-rw-r--r-- | chimere/static/main_map.js | 29 | ||||
-rw-r--r-- | chimere/templates/detail.html | 4 | ||||
-rw-r--r-- | chimere/urls.py | 1 |
5 files changed, 20 insertions, 42 deletions
diff --git a/chimere/main/views.py b/chimere/main/views.py index 0707caa..593331a 100644 --- a/chimere/main/views.py +++ b/chimere/main/views.py @@ -240,10 +240,16 @@ def getDetail(request, area_name, marker_id): return HttpResponse('no results') response_dct = get_base_response() response_dct['marker'] = marker - response_dct['share_networks'] = settings.SHARE_NETWORKS if request.method == 'GET': if 'simple' in request.GET and request.GET['simple']: response_dct['simple'] = True + parameters = u'current_feature=' + marker_id + net_dct = getTinyfiedUrl(parameters, area_name) + share_networks = [] + for network in settings.SHARE_NETWORKS: + share_networks.append((network[0], network[1] % net_dct, network[2])) + response_dct['share_networks'] = share_networks + print response_dct return render_to_response('detail.html', response_dct) def getDescriptionDetail(request, area_name, category_id): @@ -328,14 +334,15 @@ def getAvailableCategories(request, area_name=None, area=None, status='A', force response_dct['sub_categories'] = subcategories return render_to_response('categories.html', response_dct) -def getTinyfiedUrl(request, area_name='', parameters=''): +def getTinyfiedUrl(parameters, area_name=''): ''' Get the tinyfied version of parameters ''' + data = {"urn": "", "url":"", "text":""} try: urn = TinyUrl.getUrnByParameters(parameters) except: - return HttpResponse('no results') + return {} response_dct = get_base_response(area_name) url = settings.SERVER_URL if url[-1] == '/': @@ -349,9 +356,10 @@ def getTinyfiedUrl(request, area_name='', parameters=''): text = unicode(Marker.objects.get(id=item.split('=')[1])) except (IndexError, Marker.DoesNotExist): pass - data = '{"urn": "%s", "url":"%s", "text":"%s"}' % (urlquote(urn), - urlquote(url), urlquote(text)) - return HttpResponse(data) + data["urn"] = urlquote(urn) + data["url"] = urlquote(url) + data["text"] = urlquote(text) + return data def redirectFromTinyURN(request, area_name='', tiny_urn=''): """ diff --git a/chimere/settings.py.example b/chimere/settings.py.example index 58d12f3..c0f6cb6 100644 --- a/chimere/settings.py.example +++ b/chimere/settings.py.example @@ -84,13 +84,13 @@ MEDIA_URL = '/' + EXTRA_URL + 'static/' # share with SHARE_NETWORKS = ( -("Email", 'mailto:?subject=TEXT&body=URL', +("Email", 'mailto:?subject=%(text)s&body=%(url)s', MEDIA_URL + 'icons/email.png'), -("Facebook", 'http://www.facebook.com/sharer.php?t=TEXT&u=URL', +("Facebook", 'http://www.facebook.com/sharer.php?t=%(text)s&u=%(url)s', MEDIA_URL + 'icons/facebook.png'), -("Twitter", 'http://twitter.com/home?status=TEXT URL', +("Twitter", 'http://twitter.com/home?status=%(text)s %(url)s', MEDIA_URL + 'icons/twitter.png'), -("Identi.ca", 'http://identi.ca/index.php?action=newnotice&status_textarea=TEXT URL', +("Identi.ca", 'http://identi.ca/index.php?action=newnotice&status_textarea=%(text)s %(url)s', MEDIA_URL + 'icons/identica.png'), ) diff --git a/chimere/static/main_map.js b/chimere/static/main_map.js index 9b8b4c6..cd770ae 100644 --- a/chimere/static/main_map.js +++ b/chimere/static/main_map.js @@ -462,35 +462,6 @@ function createParams(center, zoom, layers) { return params; } -var tiny_url = ''; -var redirect_url = ''; - -function processTinyUrl(url, current_feature_id){ - redirect_url = url; - var uri = extra_url + "getTinyUrl/"; - var params = OpenLayers.Util.getParameterString(this.createParams()); - if (current_feature_id && params.indexOf('current_feature') < 0){ - uri += 'current_feature=' + current_feature_id + '&'; - } - uri += params; - OpenLayers.loadURL(uri, '', this, getTinyfiedUrl); -} - -/* get a tiny url */ -function getTinyfiedUrl(response){ - tiny_url = ''; - if (response.responseText.indexOf('no results') == -1) { - var json = new OpenLayers.Format.JSON(); - var result = json.read(response.responseText); - tiny_url = result.url; - if (!redirect_url || !tiny_url) return; - redirect_url = redirect_url.replace('URL', tiny_url); - redirect_url = redirect_url.replace('TEXT', result.text); - window.open(redirect_url); - } -} - - /* main initialisation function */ function init(){ /* set the main map */ diff --git a/chimere/templates/detail.html b/chimere/templates/detail.html index fd8712d..94f8eae 100644 --- a/chimere/templates/detail.html +++ b/chimere/templates/detail.html @@ -6,10 +6,10 @@ <p id='{{property.propertymodel.getNamedId}}'>{{ property.value|safe }}</p> {% endfor %}</div>{% if share_networks %} {% if simple %}{% trans "Share on"%}{% for share_network in share_networks %} -<a href='{{share_network.1}}' onclick='processTinyUrl("{{share_network.1}}", {{marker.id}}); return false;'>{{share_network.0}}</a> +<a href='{{share_network.1}}'>{{share_network.0}}</a> {% endfor %}{%else%} <ul id='share'><li>{% trans "Share"%}</li>{% for share_network in share_networks %} -<li><a href='{{share_network.1}}' onclick='processTinyUrl("{{share_network.1}}", {{marker.id}}); return false;'><img src="{{share_network.2}}" alt="{{share_network.0}}"/></a></li> +<li><a href='{{share_network.1}}'><img src="{{share_network.2}}" alt="{{share_network.0}}"/></a></li> {% endfor %}</ul>{% endif %} {% endif %} </div> diff --git a/chimere/urls.py b/chimere/urls.py index b94cd6f..5ba0630 100644 --- a/chimere/urls.py +++ b/chimere/urls.py @@ -73,6 +73,5 @@ urlpatterns += patterns('chimere.main.views', 'getGeoObjects', default_dct), (base + extra + r'getAvailableCategories/((?P<area>\w+))?(/(?P<status>\w+))?(/(?P<force>\w+))?$', 'getAvailableCategories', default_dct), -(base + extra + r'getTinyUrl/(?P<parameters>.*)$', 'getTinyfiedUrl', default_dct), (base + extra + r'ty/(?P<tiny_urn>\w+)$', 'redirectFromTinyURN', default_dct), ) |