From 3ffb6715e542c8467eaa04aed7c18f7f46a73676 Mon Sep 17 00:00:00 2001 From: Giulio Gratta Date: Wed, 12 Feb 2014 11:05:14 -0800 Subject: [PATCH] Internal/External Studio file URLs - Changed link URL of file name to use public/LMS url - Added toggle link to display all public URLs for instructor convenience --- cms/djangoapps/contentstore/views/assets.py | 3 +++ cms/djangoapps/contentstore/views/tests/test_assets.py | 10 ++++++++-- cms/static/js/models/asset.js | 1 + cms/static/js/views/asset.js | 1 + cms/static/sass/views/_assets.scss | 2 +- cms/templates/js/asset-library.underscore | 3 ++- cms/templates/js/asset.underscore | 5 ++++- 7 files changed, 20 insertions(+), 5 deletions(-) diff --git a/cms/djangoapps/contentstore/views/assets.py b/cms/djangoapps/contentstore/views/assets.py index dd96cd213a..a1a8d93468 100644 --- a/cms/djangoapps/contentstore/views/assets.py +++ b/cms/djangoapps/contentstore/views/assets.py @@ -8,6 +8,7 @@ from django.contrib.auth.decorators import login_required from django.views.decorators.http import require_http_methods from django_future.csrf import ensure_csrf_cookie from django.views.decorators.http import require_POST +from django.conf import settings from edxmako.shortcuts import render_to_response from cache_toolbox.core import del_cached_content @@ -290,10 +291,12 @@ def _get_asset_json(display_name, date, location, thumbnail_location, locked): Helper method for formatting the asset information to send to client. """ asset_url = StaticContent.get_url_path_from_location(location) + external_url = settings.LMS_BASE + asset_url return { 'display_name': display_name, 'date_added': get_default_time_display(date), 'url': asset_url, + 'external_url': external_url, 'portable_url': StaticContent.get_static_path_from_location(location), 'thumbnail': StaticContent.get_url_path_from_location(thumbnail_location) if thumbnail_location is not None else None, 'locked': locked, diff --git a/cms/djangoapps/contentstore/views/tests/test_assets.py b/cms/djangoapps/contentstore/views/tests/test_assets.py index b4af6f9fb4..6384269715 100644 --- a/cms/djangoapps/contentstore/views/tests/test_assets.py +++ b/cms/djangoapps/contentstore/views/tests/test_assets.py @@ -36,15 +36,21 @@ class AssetsTestCase(CourseTestCase): class BasicAssetsTestCase(AssetsTestCase): + location = Location(['i4x', 'foo', 'bar', 'asset', 'my_file_name.jpg']) + TEST_LMS_BASE = 'localhost:8000' + def test_basic(self): resp = self.client.get(self.url, HTTP_ACCEPT='text/html') self.assertEquals(resp.status_code, 200) def test_static_url_generation(self): - location = Location(['i4x', 'foo', 'bar', 'asset', 'my_file_name.jpg']) - path = StaticContent.get_static_path_from_location(location) + path = StaticContent.get_static_path_from_location(self.location) self.assertEquals(path, '/static/my_file_name.jpg') + def test_lms_url_generation(self): + url = self.TEST_LMS_BASE + StaticContent.get_url_path_from_location(self.location) + self.assertEquals(url, 'localhost:8000/i4x/foo/bar/asset/my_file_name.jpg') + def test_pdf_asset(self): module_store = modulestore('direct') _, course_items = import_from_xml( diff --git a/cms/static/js/models/asset.js b/cms/static/js/models/asset.js index 91055fb09b..bcf2589a4d 100644 --- a/cms/static/js/models/asset.js +++ b/cms/static/js/models/asset.js @@ -8,6 +8,7 @@ define(["backbone"], function(Backbone) { thumbnail: "", date_added: "", url: "", + external_url: "", portable_url: "", locked: false } diff --git a/cms/static/js/views/asset.js b/cms/static/js/views/asset.js index b6fd8fc8a6..df577816d7 100644 --- a/cms/static/js/views/asset.js +++ b/cms/static/js/views/asset.js @@ -18,6 +18,7 @@ var AssetView = BaseView.extend({ thumbnail: this.model.get('thumbnail'), date_added: this.model.get('date_added'), url: this.model.get('url'), + external_url: this.model.get('external_url'), portable_url: this.model.get('portable_url'), uniqueId: uniqueId })); diff --git a/cms/static/sass/views/_assets.scss b/cms/static/sass/views/_assets.scss index 830254d02c..8b59634a33 100644 --- a/cms/static/sass/views/_assets.scss +++ b/cms/static/sass/views/_assets.scss @@ -304,7 +304,7 @@ @include transition(all $tmg-f2 ease-in-out 0s); @extend %t-copy-sub2; box-shadow: none; - border: none; + border: 1px solid transparent; background: none; width: 100%; color: $gray-l2; diff --git a/cms/templates/js/asset-library.underscore b/cms/templates/js/asset-library.underscore index ad0a9f2f8e..9867f34cd4 100644 --- a/cms/templates/js/asset-library.underscore +++ b/cms/templates/js/asset-library.underscore @@ -16,7 +16,8 @@ <%= gettext("Preview") %> <%= gettext("Name") %> <%= gettext("Date Added") %> - <%= gettext("URL") %> + <%= gettext("Embed URL") %> + <%= gettext("External URL") %> <%= gettext("Actions") %> diff --git a/cms/templates/js/asset.underscore b/cms/templates/js/asset.underscore index 938ec10471..e38794af77 100644 --- a/cms/templates/js/asset.underscore +++ b/cms/templates/js/asset.underscore @@ -16,6 +16,9 @@ + + + - + \ No newline at end of file