Skip to content

Commit

Permalink
[defect-1401-mount-non-root][#1401][templates,lib]: Fix links to take…
Browse files Browse the repository at this point in the history
… note of mount point. js and css not fixed yet.
  • Loading branch information
David Read committed Jan 16, 2012
1 parent 7eb7ddd commit 37e711c
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 47 deletions.
5 changes: 2 additions & 3 deletions ckan/lib/helpers.py
Expand Up @@ -198,8 +198,7 @@ def linked_user(user, maxlength=0):
_name = user.name if model.User.VALID_NAME.match(user.name) else user.id
# Absolute URL of default user icon
from pylons import config
_site_url = config.get('ckan.site_url', '')
_icon_url_default = _site_url + icon_url("user")
_icon_url_default = icon_url("user")
_icon = gravatar(user.email_hash, 16, _icon_url_default)+" "
displayname = user.display_name
if maxlength and len(user.display_name) > maxlength:
Expand All @@ -222,7 +221,7 @@ def markdown_extract(text, extract_length=190):
return unicode(truncate(plain, length=extract_length, indicator='...', whole_word=True))

def icon_url(name):
return '/images/icons/%s.png' % name
return url_for('/images/icons/%s.png' % name)

def icon_html(url, alt=None):
return literal('<img src="%s" height="16px" width="16px" alt="%s" /> ' % (url, alt))
Expand Down
4 changes: 2 additions & 2 deletions ckan/public/css/style.css
@@ -1,5 +1,5 @@
@import url('/css/forms.css');
@import url('/css/pretty_buttons.css');
@import url('forms.css');
@import url('pretty_buttons.css');

body.no-sidebar #sidebar { display: none; }
body.no-sidebar #content {
Expand Down
2 changes: 1 addition & 1 deletion ckan/templates/_util.html
Expand Up @@ -183,7 +183,7 @@

<!--! Dataset openness icons -->
<img py:def="package_license_icon(package)"
src="${g.site_url}/images/icons/door_${'open' if package.isopen() else 'grey'}.png"
src="${h.url_for('/images/icons/door_%s.png' % 'open' if package.isopen() else 'grey')}"
title="License: ${package.license.title if hasattr(package.license, 'title') else '?'}"
alt="${'OPEN' if package.isopen() else 'CLOSED'}" />

Expand Down
2 changes: 1 addition & 1 deletion ckan/templates/group/new_group_form.html
Expand Up @@ -19,7 +19,7 @@ <h2>Errors in form</h2>

<dt><label class="field_opt" for="title">Url</label></dt>
<dd class="name-field">
<span class="js-url-text url-text">${g.site_url+h.url_for(controller='group', action='index')+'/'}<span class="js-url-viewmode js-url-suffix">&nbsp;</span><a style="display: none;" href="#" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span>
<span class="js-url-text url-text">${url(controller='group', action='index')+'/'}<span class="js-url-viewmode js-url-suffix">&nbsp;</span><a style="display: none;" href="#" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span>
<input style="display: none;" id="name" maxlength="100" name="name" type="text" class="url-input js-url-editmode js-url-input" value="${data.get('name', '')}" />
<p class="js-url-is-valid">&nbsp;</p>
</dd>
Expand Down
44 changes: 22 additions & 22 deletions ckan/templates/layout_base.html
Expand Up @@ -17,7 +17,7 @@
<meta name="author" content="" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="${g.site_url}/favicon.ico" />
<link rel="shortcut icon" href="${h.url_for('favicon.ico')}" />

<py:choose>
<py:when test="defined('optional_feed')">
Expand All @@ -29,14 +29,14 @@
</py:choose>
<link href='http://fonts.googleapis.com/css?family=Ubuntu' rel='stylesheet' type='text/css' />

<link rel="stylesheet" href="${g.site_url}/scripts/vendor/jqueryui/1.8.14/css/jquery-ui.custom.css" type="text/css" media="screen, print" />
<link rel="stylesheet" href="${g.site_url}/css/boilerplate.css?v=2" />
<link rel="stylesheet" href="${g.site_url}/css/blueprint/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="${g.site_url}/css/blueprint/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="${h.url_for('/scripts/vendor/jqueryui/1.8.14/css/jquery-ui.custom.css')}" type="text/css" media="screen, print" />
<link rel="stylesheet" href="${h.url_for('/css/boilerplate.css?v=2')}" />
<link rel="stylesheet" href="${h.url_for('/css/blueprint/screen.css')}" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="${h.url_for('/css/blueprint/print.css')}" type="text/css" media="print" />
<!--[if lt IE 8]>
<link rel="stylesheet" href="${g.site_url}/css/blueprint/ie.css" type="text/css" media="screen, projection">
<link rel="stylesheet" href="${h.url_for('/css/blueprint/ie.css')}" type="text/css" media="screen, projection">
<![endif]-->
<link rel="stylesheet" href="${g.site_url}/css/style.css?v=2" />
<link rel="stylesheet" href="${h.url_for('/css/style.css?v=2')}" />

<py:if test="defined('optional_head')">
${optional_head()}
Expand Down Expand Up @@ -134,7 +134,7 @@ <h3 class="widget-title">About ${g.site_title}</h3>
<li>${h.link_to(_('API'), h.url_for(controller='api', action='get_api'))}</li>
<li>${h.link_to(_('API Docs'), 'http://wiki.ckan.net/API')}</li>
<li>
<a href="http://okfn.org/contact/">Contact Us</a>
<a href="http://ckan.org/contact/">Contact Us</a>
</li>
<li>
<a href="http://okfn.org/privacy-policy/">Privacy Policy</a>
Expand Down Expand Up @@ -218,25 +218,25 @@ <h3 class="widget-title">Meta</h3>

<!--script
src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script-->
<script src="${g.site_url}/scripts/vendor/jquery/1.6.2/jquery.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/json2.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jquery.tmpl/beta1/jquery.tmpl.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jquery.cookie/jquery.cookie.min.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jquery.placeholder/jquery.placeholder.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jqueryui/1.8.14/jquery-ui.min.js"></script>
<script src="${h.url_for('/scripts/vendor/jquery/1.6.2/jquery.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/json2.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jquery.tmpl/beta1/jquery.tmpl.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jquery.cookie/jquery.cookie.min.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jquery.placeholder/jquery.placeholder.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jqueryui/1.8.14/jquery-ui.min.js')}"></script>
<!-- for ckanjs etc -->
<script type="text/javascript" src="${g.site_url}/scripts/vendor/underscore/1.1.6/underscore.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/backbone/0.5.1/backbone.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jquery.fileupload/20110801/jquery.iframe-transport.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jquery.fileupload/20110801/jquery.fileupload.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/ckanjs/1.0.0/ckanjs.js"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/underscore/1.1.6/underscore.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/backbone/0.5.1/backbone.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jquery.fileupload/20110801/jquery.iframe-transport.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jquery.fileupload/20110801/jquery.fileupload.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/ckanjs/1.0.0/ckanjs.js')}"></script>
<!-- Translated js strings live inside an html template. -->
<xi:include href="js_strings.html" />
<!-- finally our application js that sets everything up-->
<script type="text/javascript" src="${g.site_url}/scripts/application.js?lang=${c.locale}"></script>
<script type="text/javascript" src="${g.site_url}/scripts/templates.js"></script>
<script type="text/javascript" src="${h.url_for('/scripts/application.js?lang=${c.locale}')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/templates.js')}"></script>

<script src="${g.site_url}/scripts/vendor/modernizr/1.7/modernizr.min.js"></script>
<script src="${h.url_for('/scripts/vendor/modernizr/1.7/modernizr.min.js')}"></script>

<script type="text/javascript">
CKAN.plugins = [
Expand Down
4 changes: 2 additions & 2 deletions ckan/templates/package/layout.html
Expand Up @@ -12,7 +12,7 @@
<py:choose>
<py:when test="len(c.pkg_dict.get('resources', []))==0">
<li class="disabled">
${h.icon('package-disabled') + _('Resources')} &nbsp;&nbsp;<img class="dropdown-arrow" src="/images/icons/arrow-open.gif"/>
${h.icon('package-disabled') + _('Resources')} &nbsp;&nbsp;<img class="dropdown-arrow" src="${h.url_for('/images/icons/arrow-open.gif')}"/>
</li>
</py:when>
<py:otherwise>
Expand All @@ -27,7 +27,7 @@
<div class="dropdown-appears"><div class="white-box"></div></div>
<a href="${h.url_for(controller='package', action='resource_read', id=c.pkg_dict['name'], resource_id=c.pkg_dict.get('resources', [])[0]['id'])}">
${h.icon('package') + _('Resources')}</a>
&nbsp;&nbsp;<img class="dropdown-arrow" src="/images/icons/arrow-open.gif"/>
&nbsp;&nbsp;<img class="dropdown-arrow" src="${h.url_for('/images/icons/arrow-open.gif')}"/>

</li>
</py:otherwise>
Expand Down
2 changes: 1 addition & 1 deletion ckan/templates/package/new_package_form.html
Expand Up @@ -41,7 +41,7 @@ <h2>Errors in form</h2>

<dt class="name-label"><label class="field_req" for="name">Url</label></dt>
<dd class="name-field">
<span class="js-url-text url-text">${g.site_url+url(controller='package', action='index')+'/'}<span class="js-url-viewmode js-url-suffix">&nbsp;</span><a href="#" style="display: none;" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span>
<span class="js-url-text url-text">${url(controller='package', action='index')+'/'}<span class="js-url-viewmode js-url-suffix">&nbsp;</span><a href="#" style="display: none;" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span>
<input style="display: none;" id="name" maxlength="100" name="name" type="text" class="url-input js-url-editmode js-url-input" value="${data.get('name', '')}" />
<p class="js-url-is-valid">&nbsp;</p>
</dd>
Expand Down
20 changes: 10 additions & 10 deletions ckan/templates/package/resource_read.html
Expand Up @@ -13,9 +13,9 @@

<py:def function="optional_head">
<!-- data preview -->
<link rel="stylesheet" href="${g.site_url}/scripts/vendor/slickgrid/slick.grid.css" />
<link rel="stylesheet" href="${g.site_url}/scripts/vendor/slickgrid/slick.columnpicker.css" />
<link rel="stylesheet" href="${g.site_url}/scripts/dataexplorer/table-view.css" />
<link rel="stylesheet" href="${h.url_for('/scripts/vendor/slickgrid/slick.grid.css')}" />
<link rel="stylesheet" href="${h.url_for('/scripts/vendor/slickgrid/slick.columnpicker.css')}" />
<link rel="stylesheet" href="${h.url_for('/scripts/dataexplorer/table-view.css')}" />
<!-- /data preview -->
<script type="text/javascript">
var preload_resource = ${c.resource_json};
Expand Down Expand Up @@ -118,13 +118,13 @@ <h3>Additional Information</h3>

<py:def function="optional_footer">
<!-- data preview -->
<script type="text/javascript" src="${g.site_url}/scripts/vendor/jquery.event.drag/2.0/jquery.event.drag.min.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/slickgrid/slick.grid.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/slickgrid/slick.columnpicker.js"></script>
<script type="text/javascript" src="${g.site_url}/scripts/vendor/flot/0.7/jquery.flot.js"></script>
<script src="${g.site_url}/scripts/dataexplorer/table-view.js"></script>
<script src="${g.site_url}/scripts/dataexplorer/table-view.ui.js"></script>
<script src="${g.site_url}/scripts/dataexplorer/table-view-template.js"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/jquery.event.drag/2.0/jquery.event.drag.min.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/slickgrid/slick.grid.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/slickgrid/slick.columnpicker.js')}"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/flot/0.7/jquery.flot.js')}"></script>
<script src="${h.url_for('/scripts/dataexplorer/table-view.js')}"></script>
<script src="${h.url_for('/scripts/dataexplorer/table-view.ui.js')}"></script>
<script src="${h.url_for('/scripts/dataexplorer/table-view-template.js')}"></script>
</py:def>

<xi:include href="layout.html" />
Expand Down
8 changes: 4 additions & 4 deletions ckan/templates/user/login.html
Expand Up @@ -5,10 +5,10 @@

<py:def function="optional_head">
<!-- Simple OpenID Selector -->
<link rel="stylesheet" href="${g.site_url}/scripts/vendor/openid-selector/css/openid.css" />
<link rel="stylesheet" href="${h.url_for('/scripts/vendor/openid-selector/css/openid.css')}" />
</py:def>
<py:def function="optional_footer">
<script type="text/javascript" src="${g.site_url}/scripts/vendor/openid-selector/js/openid-jquery.js"></script>
<script type="text/javascript" src="${h.url_for('/scripts/vendor/openid-selector/js/openid-jquery.js')}"></script>
<script type="text/javascript">
$(document).ready(function() {
openid.init('openid_identifier');
Expand All @@ -21,7 +21,7 @@

<div py:match="content">

<form action="/login_generic" method="post" class="simple-form" id="login">
<form action="${h.url_for('/login_generic')}" method="post" class="simple-form" id="login">
<fieldset>
<!--legend i18n:msg="site_title">Login</legend-->

Expand All @@ -40,7 +40,7 @@
</form>
<br/>
<!-- Simple OpenID Selector -->
<form py:if="g.openid_enabled" action="/login_openid" method="post"
<form py:if="g.openid_enabled" action="${h.url_for('/login_openid')}" method="post"
class="simple-form" id="openid_form">
<input type="hidden" name="action" value="verify" />
<fieldset>
Expand Down
2 changes: 1 addition & 1 deletion doc/theming.rst
Expand Up @@ -116,7 +116,7 @@ Next, copy the ``layout.html`` template and add a reference to the new CSS file.
py:strip="">
<head py:match="head">
${select('*')}
<link rel="stylesheet" href="${g.site_url}/css/mycss.css" />
<link rel="stylesheet" href="${h.url_for('/css/mycss.css')}" />
</head>
<xi:include href="layout_base.html" />
</html>
Expand Down

2 comments on commit 37e711c

@rufuspollock
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really clear about this change. Why have we switched from g.site_url to h.url_for. What was wrong with g.site_url? Also why do we use url(...) in some case but h.url_for in other cases?

@davidread
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using g.site_url here was a quick fix until we knew how routes achieved (automatically) it for the vast majority of our links. g.site_url was introduced as a convenience to get the host name for the site when providing the package property: dict['ckan_url'] = '%s/dataset/%s' % (site_url, self.name). Therefore if you forget to set g.site_url then it is not important. If you start using it for occasional links then it is asking for support requests.

Please sign in to comment.