diff --git a/lms/static/js/commerce/views/receipt_view.js b/lms/static/js/commerce/views/receipt_view.js
index 8608de3b23..0b8adbcce9 100644
--- a/lms/static/js/commerce/views/receipt_view.js
+++ b/lms/static/js/commerce/views/receipt_view.js
@@ -3,7 +3,7 @@
*/
var edx = edx || {};
-(function ($, _, Backbone) {
+(function ($, _, _s, Backbone) {
'use strict';
edx.commerce = edx.commerce || {};
@@ -19,6 +19,11 @@ var edx = edx || {};
this.useEcommerceApi = this.ecommerceBasketId || this.ecommerceOrderNumber;
_.bindAll(this, 'renderReceipt', 'renderError', 'getProviderData', 'renderProvider', 'getCourseData');
+ /* Mix non-conflicting functions from underscore.string (all but include, contains, and reverse) into
+ * the Underscore namespace.
+ */
+ _.mixin(_s.exports());
+
this.render();
},
@@ -119,16 +124,17 @@ var edx = edx || {};
* @return {object} JQuery Promise.
*/
getReceiptData: function (orderId) {
- var urlFormat = '/shoppingcart/receipt/{orderId}/';
+ var urlFormat = '/shoppingcart/receipt/%s/';
if (this.ecommerceOrderNumber) {
- urlFormat = '/api/commerce/v1/orders/{orderId}/';
+ urlFormat = '/api/commerce/v1/orders/%s/';
} else if (this.ecommerceBasketId){
- urlFormat = '/api/commerce/v0/baskets/{orderId}/order/';
+ urlFormat = '/api/commerce/v0/baskets/%s/order/';
}
+
return $.ajax({
- url: edx.StringUtils.interpolate(urlFormat, {orderId: orderId}),
+ url: _.sprintf(urlFormat, orderId),
type: 'GET',
dataType: 'json'
}).retry({times: 5, timeout: 2000, statusCodes: [404]});
@@ -139,10 +145,10 @@ var edx = edx || {};
* @return {object} JQuery Promise.
*/
getProviderData: function (providerId) {
- var providerUrl = '/api/credit/v1/providers/{providerId}/';
+ var providerUrl = '/api/credit/v1/providers/%s/';
return $.ajax({
- url: edx.StringUtils.interpolate(providerUrl, {providerId: providerId}),
+ url: _.sprintf(providerUrl, providerId),
type: 'GET',
dataType: 'json',
contentType: 'application/json',
@@ -157,9 +163,9 @@ var edx = edx || {};
* @return {object} JQuery Promise.
*/
getCourseData: function (courseId) {
- var courseDetailUrl = '/api/course_structure/v0/courses/{courseId}/';
+ var courseDetailUrl = '/api/course_structure/v0/courses/%s/';
return $.ajax({
- url: edx.StringUtils.interpolate(courseDetailUrl, {courseId: courseId}),
+ url: _.sprintf(courseDetailUrl, courseId),
type: 'GET',
dataType: 'json'
});
@@ -299,7 +305,7 @@ var edx = edx || {};
el: $('#receipt-container')
});
-})(jQuery, _, Backbone); // jshint ignore:line
+})(jQuery, _, _.str, Backbone); // jshint ignore:line
function completeOrder(event) { // jshint ignore:line
var courseKey = $(event).data("course-key"),
diff --git a/lms/static/js/fixtures/commerce/checkout_receipt.html b/lms/static/js/fixtures/commerce/checkout_receipt.html
deleted file mode 100644
index 3ac46d62b9..0000000000
--- a/lms/static/js/fixtures/commerce/checkout_receipt.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
${_("Loading Order Data...")}
- ${ _("Please wait while we retrieve your order details.") }
-
-
-
diff --git a/lms/static/js/spec/commerce/receipt_spec.js b/lms/static/js/spec/commerce/receipt_spec.js
deleted file mode 100644
index 79e5b92771..0000000000
--- a/lms/static/js/spec/commerce/receipt_spec.js
+++ /dev/null
@@ -1,90 +0,0 @@
-define([
- 'js/commerce/views/receipt_view'
- ],
- function (){
- 'use strict';
- describe("edx.commerce.ReceiptView", function(ReceiptView) {
- var view, data = null;
-
- beforeEach(function(){
- loadFixtures("js/fixtures/commerce/checkout_receipt.html");
-
- var receiptFixture = readFixtures("templates/commerce/receipt.underscore");
- appendSetFixtures(
- ""
- );
- data = {
- "status": "Open",
- "billed_to": {
- "city": "dummy city",
- "first_name": "john",
- "last_name": "doe",
- "country": "AL",
- "line2": "line2",
- "line1": "line1",
- "state": "",
- "postcode": "12345"
- },
- "lines": [
- {
- "status": "Open",
- "unit_price_excl_tax": "10.00",
- "product": {
- "attribute_values": [
- {
- "name": "certificate_type",
- "value": "verified"
- },
- {
- "name": "course_key",
- "value": "course-v1:edx+dummy+2015_T3"
- }
- ],
- "stockrecords": [
- {
- "price_currency": "USD",
- "product": 123,
- "partner_sku": "1234ABC",
- "partner": 1,
- "price_excl_tax": "10.00",
- "id": 123
- }
- ],
- "product_class": "Seat",
- "title": "Dummy title",
- "url": "https://ecom.edx.org/api/v2/products/123/",
- "price": "10.00",
- "expires": null,
- "is_available_to_buy": true,
- "id": 123,
- "structure": "child"
- },
- "line_price_excl_tax": "10.00",
- "description": "dummy description",
- "title": "dummy title",
- "quantity": 1
- }
- ],
- "number": "EDX-123456",
- "date_placed": "2016-01-01T01:01:01Z",
- "currency": "USD",
- "total_excl_tax": "10.00"
- };
- view = new ReceiptView({el: $('#receipt-container')});
- view.renderReceipt(data);
- });
- it("sends analytic event when receipt is rendered", function() {
- expect(window.analytics.track).toHaveBeenCalledWith(
- "Completed Order",
- {
- orderId: "EDX-123456",
- total: "10.00",
- currency: "USD"
- }
- );
-
- });
-
- });
- }
-);
diff --git a/lms/static/js/spec/main.js b/lms/static/js/spec/main.js
index ccbedb09b6..34781f79a0 100644
--- a/lms/static/js/spec/main.js
+++ b/lms/static/js/spec/main.js
@@ -95,7 +95,6 @@
'js/bookmarks/views/bookmarks_list': 'js/bookmarks/views/bookmarks_list',
'js/bookmarks/views/bookmark_button': 'js/bookmarks/views/bookmark_button',
'js/views/message_banner': 'js/views/message_banner',
- 'js/commerce/views/receipt_view': 'js/commerce/views/receipt_view',
// edxnotes
'annotator_1.2.9': 'xmodule_js/common_static/js/vendor/edxnotes/annotator-full.min',
@@ -315,10 +314,6 @@
exports: 'js/ccx/schedule',
deps: ['jquery', 'underscore', 'backbone', 'gettext', 'moment']
},
- 'js/commerce/views/receipt_view': {
- exports: 'edx.commerce.ReceiptView',
- deps: ['jquery', 'backbone', 'underscore', 'string_utils']
- },
// Backbone classes loaded explicitly until they are converted to use RequireJS
'js/instructor_dashboard/ecommerce': {
@@ -766,7 +761,6 @@
'js/spec/learner_dashboard/sidebar_view_spec.js',
'js/spec/learner_dashboard/program_card_view_spec.js',
'js/spec/learner_dashboard/certificate_view_spec.js',
- 'js/spec/commerce/receipt_spec.js',
'js/spec/api_admin/catalog_preview_spec.js',
];