Skip to content

Commit

Permalink
Added pdfjs preview (not working yet)
Browse files Browse the repository at this point in the history
  • Loading branch information
domoritz committed Sep 20, 2012
1 parent c92f22b commit 20212ea
Show file tree
Hide file tree
Showing 34 changed files with 40,003 additions and 0 deletions.
2 changes: 2 additions & 0 deletions ckan/config/routing.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,8 @@ def make_map():
action='resource_embedded_dataviewer', width="960", height="800")
m.connect('/dataset/{id}/resource/{resource_id}/preview',
action='resource_preview')
m.connect('/dataset/{id}/resource/{resource_id}/pdfpreview',
action='resource_pdfpreview')

# group
map.redirect('/groups', '/group')
Expand Down
18 changes: 18 additions & 0 deletions ckan/controllers/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -1296,3 +1296,21 @@ def resource_preview(self, id, resource_id):
except NotAuthorized:
abort(401, _('Unauthorized to read resource %s') % id)
return render('package/resource_preview.html')

def resource_pdfpreview(self, id, resource_id):
'''
Embeded page for a resource data-preview.
'''
context = {'model': model, 'session': model.Session,
'user': c.user or c.author}

try:
c.resource = get_action('resource_show')(context,
{'id': resource_id})
c.package = get_action('package_show')(context, {'id': id})
c.resource_json = json.dumps(c.resource)
except NotFound:
abort(404, _('Resource not found'))
except NotAuthorized:
abort(401, _('Unauthorized to read resource %s') % id)
return render('package/resource_pdfpreview.html')
7 changes: 7 additions & 0 deletions ckan/lib/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1306,6 +1306,10 @@ def format_resource_items(items):
def resource_preview(resource, pkg_id):
'''
Returns a rendered snippet for a embeded resource preview.
Depending on the type, different previews are loaded.
This could be an img tag where the image is loaded directly or an iframe that
embeds a webpage, recline or a pdf preview.
'''

DIRECT_EMBEDS = ['png', 'jpg', 'gif']
Expand All @@ -1322,6 +1326,9 @@ def resource_preview(resource, pkg_id):
if resource.get('datastore_active') or format_lower in ['csv', 'xls', 'tsv']:
#default
pass
elif format_lower == 'pdf':
url = url_for(controller='package', action='resource_pdfpreview',
resource_id=resource['id'], id=pkg_id, qualified=True)
elif format_lower in LOADABLE:
url = resource['url']
elif format_lower in DIRECT_EMBEDS:
Expand Down
3 changes: 3 additions & 0 deletions ckan/public/base/datapreview/css/pdfpreview.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
body {
backgroud-color: white;
}
13 changes: 13 additions & 0 deletions ckan/public/base/datapreview/resource.config
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ lte IE 8 = vendor/flotr2/excanvas.js

datapreview = vendor/jquery.js
datapreview-frame = vendor/jquery.js
pdfpreview = vendor/jquery.js

[groups]

Expand Down Expand Up @@ -34,3 +35,15 @@ datapreview =

vendor/recline/css/recline.css
css/datapreview.css

pdfpreview =
vendor/webL10n/l10n.js
vendor/pdfjs/pdf.js
vendor/pdfviewer/compatibility.js
vendor/pdfviewer/viewer.js

pdfpreview.js

vendor/pdfviewer/viewer.css

css/pdfpreview.css

0 comments on commit 20212ea

Please sign in to comment.