Merge pull request #23894 from edx/astankiewicz/revert-learner-portal-links

revert learner portal links blocking juniper release
This commit is contained in:
Adam Stankiewicz
2020-05-05 09:35:46 -04:00
committed by GitHub
19 changed files with 10 additions and 414 deletions

View File

@@ -1,11 +0,0 @@
module.exports = {
extends: 'eslint-config-edx',
root: true,
settings: {
'import/resolver': {
webpack: {
config: 'webpack.dev.config.js',
},
},
},
};

View File

@@ -1,16 +0,0 @@
import { getAuthenticatedApiClient } from '@edx/frontend-auth';
import { NewRelicLoggingService } from '@edx/frontend-logging';
const apiClient = getAuthenticatedApiClient({
appBaseUrl: process.env.LMS_ROOT_URL,
authBaseUrl: process.env.LMS_ROOT_URL,
loginUrl: `${process.env.LMS_ROOT_URL}/login`,
logoutUrl: `${process.env.LMS_ROOT_URL}/logout`,
csrfTokenApiPath: '/csrf/api/v1/token',
refreshAccessTokenEndpoint: `${process.env.LMS_ROOT_URL}/login_refresh`,
accessTokenCookieName: process.env.JWT_AUTH_COOKIE_HEADER_PAYLOAD,
userInfoCookieName: process.env.EDXMKTG_USER_INFO_COOKIE_NAME,
loggingService: NewRelicLoggingService,
});
export default apiClient;

View File

@@ -1,11 +0,0 @@
module.exports = {
extends: 'eslint-config-edx',
root: true,
settings: {
'import/resolver': {
webpack: {
config: 'webpack.dev.config.js',
},
},
},
};

View File

@@ -1,22 +0,0 @@
import { getAuthenticatedUser } from '@edx/frontend-auth';
import { getLearnerPortalLinks } from '@edx/frontend-enterprise';
import apiClient from '../apiClient';
function CustomUserMenuLinks() {
const authenticatedUser = getAuthenticatedUser();
// Inject enterprise learner portal links
getLearnerPortalLinks(apiClient, authenticatedUser).then((learnerPortalLinks) => {
const $dashboardLink = $('#user-menu .dashboard');
const classNames = 'mobile-nav-item dropdown-item dropdown-nav-item';
for (let i = 0; i < learnerPortalLinks.length; i += 1) {
const link = learnerPortalLinks[i];
$dashboardLink.after( // xss-lint: disable=javascript-jquery-insertion
`<div class="${classNames}"><a href="${link.url}" role="menuitem">${link.title} Dashboard</a></div>`,
);
}
});
}
export { CustomUserMenuLinks }; // eslint-disable-line import/prefer-default-export

View File

@@ -1,80 +0,0 @@
import React, { Component } from 'react';
import { getAuthenticatedUser } from '@edx/frontend-auth';
import { getLearnerPortalLinks } from '@edx/frontend-enterprise';
import { StatusAlert } from '@edx/paragon';
import apiClient from '../apiClient';
const LOCAL_STORAGE_KEY = 'has-viewed-enterprise-learner-portal-banner';
function getAlertHtml(learnerPortalLinks) {
let html = '';
for (let i = 0; i < learnerPortalLinks.length; i += 1) {
const link = learnerPortalLinks[i];
html += `<div class="copy-content">
${link.title} has a dedicated page where you can see all of your sponsored courses.
Go to <a href="${link.url}">your learner portal</a>.
</div>`;
}
return html;
}
function setViewedBanner() {
window.localStorage.setItem(LOCAL_STORAGE_KEY, true);
}
function hasViewedBanner() {
return window.localStorage.getItem(LOCAL_STORAGE_KEY) != null;
}
class EnterpriseLearnerPortalBanner extends Component {
constructor(props) {
super(props);
this.onClose = this.onClose.bind(this);
this.state = {
open: false,
alertHtml: '',
};
}
componentDidMount() {
if (!hasViewedBanner()) {
const authenticatedUser = getAuthenticatedUser();
getLearnerPortalLinks(apiClient, authenticatedUser).then((learnerPortalLinks) => {
this.setState({
open: true,
alertHtml: getAlertHtml(learnerPortalLinks),
});
});
}
}
onClose() {
this.setState({ open: false });
setViewedBanner();
}
render() {
const { alertHtml, open } = this.state;
if (open && alertHtml) {
return (
<div className="edx-enterprise-learner-portal-banner-wrapper">
<StatusAlert
className={['edx-enterprise-learner-portal-banner']}
open={open}
// eslint-disable-next-line react/no-danger
dialog={(<span dangerouslySetInnerHTML={{ __html: alertHtml }} />)}
onClose={this.onClose}
/>
</div>
);
}
return null;
}
}
export { EnterpriseLearnerPortalBanner }; // eslint-disable-line import/prefer-default-export

View File

@@ -73,7 +73,6 @@
@import 'features/_unsupported-browser-alert';
@import 'features/content-type-gating';
@import 'features/course-duration-limits';
@import 'features/enterprise-learner-portal-banner';
@import 'features/first-purchase-banner';
@import 'features/next-up-banner';

View File

@@ -33,7 +33,6 @@
@import 'features/course-sock';
@import 'features/course-upgrade-message';
@import 'features/content-type-gating';
@import 'features/enterprise-learner-portal-banner';
// Responsive Design

View File

@@ -28,7 +28,6 @@ $static-path: '../..';
@import 'features/course-sock';
@import 'features/course-upgrade-message';
@import 'features/course-duration-limits';
@import 'features/enterprise-learner-portal-banner';
@import 'features/first-purchase-banner';
@import 'features/next-up-banner';

View File

@@ -1,102 +0,0 @@
$enterprise-learner-portal-banner-background-color: #d9edf7 !default;
$enterprise-learner-portal-banner-text-color: #000000 !default;
$enterprise-learner-portal-banner-cta-base: #0075b4 !default;
$enterprise-learner-portal-banner-cta-hover: #075683 !default;
$enterprise-learner-portal-banner-btn-color: #000000 !default;
.edx-enterprise-learner-portal-banner-wrapper {
background: $enterprise-learner-portal-banner-background-color;
box-sizing: border-box;
/** Base Styles - start **/
text-align: left;
line-height: 1.5;
margin-bottom: 5px;
font: {
family: 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif;
size: 1rem;
weight: 400;
}
.alert {
position: relative;
padding: 0.75rem 1.25rem;
}
.alert-dismissible {
.close {
position: absolute;
top: 0;
right: 0;
padding: 0.75rem 1.25rem;
background: transparent;
border: 0;
text-shadow: 0 1px 0 #fff;
opacity: 1;
float: right;
line-height: 1;
font: {
size: 1.5rem;
weight: 700;
}
}
.btn {
display: inline-block;
text-align: center;
white-space: nowrap;
vertical-align: middle;
box-shadow: none;
}
}
/** Base Styles - end **/
.edx-enterprise-learner-portal-banner {
box-sizing: border-box;
display: flex;
justify-content: space-between;
max-width: none !important;
min-width: 0;
margin: 0 auto;
background: inherit;
border: none;
padding: 20px 20px 20px 40px;
.policy-link {
color: $enterprise-learner-portal-banner-cta-base;
text-decoration: underline;
&:focus,
&:hover {
color: $enterprise-learner-portal-banner-cta-hover;
border: none;
}
}
.copy-content {
font-size: 0.875rem;
line-height: 1.4;
color: $enterprise-learner-portal-banner-text-color;
}
.alert-dialog {
margin-right: 30px;
color: $enterprise-learner-portal-banner-text-color;
max-width: 1180px;
margin: 0 auto;
width: 100%;
}
.btn.close {
color: $enterprise-learner-portal-banner-btn-color;
text-shadow: 0 0 1px $enterprise-learner-portal-banner-btn-color;
bottom: 0;
&:focus,
&:hover {
cursor: pointer;
}
}
}
}

View File

@@ -1,6 +1,6 @@
## mako
<%page expression_filter="h"/>
<%namespace name='static' file='../static_content.html'/>
<%namespace name='static' file='static_content.html'/>
<%!
from django.conf import settings
@@ -22,12 +22,6 @@ resume_block = retrieve_last_sitewide_block_completed(self.real_user)
displayname = get_enterprise_learner_generic_name(request) or username
%>
<%static:webpack entry="CustomUserMenuLinks">
$(document).ready(function() {
CustomUserMenuLinks();
});
</%static:webpack>
<div class="nav-item hidden-mobile">
<a href="${reverse('dashboard')}" class="menu-title">
<img class="user-image-frame" src="${profile_image_url}" alt="">
@@ -43,7 +37,7 @@ displayname = get_enterprise_learner_generic_name(request) or username
% if resume_block:
<div class="mobile-nav-item dropdown-item dropdown-nav-item"><a href="${resume_block}" role="menuitem">${_("Resume your last course")}</a></div>
% endif
<div class="mobile-nav-item dropdown-item dropdown-nav-item dashboard"><a href="${reverse('dashboard')}" role="menuitem">${_("Dashboard")}</a></div>
<div class="mobile-nav-item dropdown-item dropdown-nav-item"><a href="${reverse('dashboard')}" role="menuitem">${_("Dashboard")}</a></div>
<div class="mobile-nav-item dropdown-item dropdown-nav-item"><a href="${reverse('learner_profile', kwargs={'username': username})}" role="menuitem">${_("Profile")}</a></div>
<div class="mobile-nav-item dropdown-item dropdown-nav-item"><a href="${reverse('account_settings')}" role="menuitem">${_("Account")}</a></div>
% if should_redirect_to_order_history_microfrontend():

89
package-lock.json generated
View File

@@ -66,31 +66,6 @@
"resolved": "https://registry.npmjs.org/@edx/edx-proctoring/-/edx-proctoring-1.5.0.tgz",
"integrity": "sha512-RiNjAgh8ZMX0D5gfN2R09a0RBs/R/Blfs/DiqhLmvCSvyCoeMDGANrDDQXv1w5blxxSJbz8a2awSZkwpv6gWNQ=="
},
"@edx/frontend-auth": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/@edx/frontend-auth/-/frontend-auth-9.0.2.tgz",
"integrity": "sha512-b4rK4PBqODR9TCL9+/0W4xRI7NM4we71Yw7LAcF52ZA4QdKfnCQWNSrciFQuY17h2yQNc+5eXHHXCa9lfg/41g==",
"requires": {
"axios": "0.18.1",
"jwt-decode": "2.2.0",
"lodash.camelcase": "4.3.0",
"lodash.snakecase": "4.1.1",
"universal-cookie": "3.0.4"
},
"dependencies": {
"universal-cookie": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-3.0.4.tgz",
"integrity": "sha512-3rhx6RAIuRmCWJttnbgzMrp2TbHhUmgQ2GrpY/US03Siv5T28iXr2qYw1m3YqmluBxEyrvZaloVemkLSId+Oyg==",
"requires": {
"@types/cookie": "^0.3.1",
"@types/object-assign": "^4.0.30",
"cookie": "^0.3.1",
"object-assign": "^4.1.0"
}
}
}
},
"@edx/frontend-component-cookie-policy-banner": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-cookie-policy-banner/-/frontend-component-cookie-policy-banner-1.0.0.tgz",
@@ -162,16 +137,6 @@
}
}
},
"@edx/frontend-enterprise": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-enterprise/-/frontend-enterprise-4.0.0.tgz",
"integrity": "sha512-2FxQsnWf4Aw3As0Xh4ARXcDBPvAfppmMI8KnDHywLgQLZ6at1ceHE4rkOrHOT9QXsMoTvmY+uItAwpPnyXcSOw=="
},
"@edx/frontend-logging": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@edx/frontend-logging/-/frontend-logging-3.0.1.tgz",
"integrity": "sha512-kRDsPbTUxNfZdnC4KN5HratS/7bkCYv/gyvUnBcuPbiONXwSuriNIVAKCepldvhg1DTwLqQMXh+Qw6vo2r048A=="
},
"@edx/mockprock": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@edx/mockprock/-/mockprock-1.0.2.tgz",
@@ -306,22 +271,12 @@
"resolved": "https://registry.npmjs.org/@sambego/storybook-styles/-/storybook-styles-1.0.0.tgz",
"integrity": "sha512-n0SqZwDewUDRaStEcoNMiYy9qovaLVStsh4Gb2dc2LLiG3IIK0UXdeR1N7puVuRihJq/192uOyGPCjZ/NAteuA=="
},
"@types/cookie": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
"integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow=="
},
"@types/node": {
"version": "10.5.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz",
"integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==",
"dev": true
},
"@types/object-assign": {
"version": "4.0.30",
"resolved": "https://registry.npmjs.org/@types/object-assign/-/object-assign-4.0.30.tgz",
"integrity": "sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI="
},
"abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
@@ -950,22 +905,6 @@
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
"dev": true
},
"axios": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
"integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
"requires": {
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
},
"dependencies": {
"is-buffer": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
}
}
},
"axobject-query": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
@@ -5253,24 +5192,6 @@
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
"integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
},
"follow-redirects": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"font-awesome": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
@@ -8398,11 +8319,6 @@
"integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
"dev": true
},
"jwt-decode": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz",
"integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk="
},
"karma": {
"version": "0.13.22",
"resolved": "https://registry.npmjs.org/karma/-/karma-0.13.22.tgz",
@@ -8903,11 +8819,6 @@
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
},
"lodash.snakecase": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
"integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40="
},
"lodash.some": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",

View File

@@ -4,10 +4,7 @@
"dependencies": {
"@edx/edx-bootstrap": "1.0.4",
"@edx/edx-proctoring": "^1.5.0",
"@edx/frontend-auth": "^9.0.2",
"@edx/frontend-component-cookie-policy-banner": "1.0.0",
"@edx/frontend-enterprise": "^4.0.0",
"@edx/frontend-logging": "^3.0.1",
"@edx/paragon": "2.6.4",
"@edx/studio-frontend": "^1.16.19",
"babel-core": "6.26.0",

View File

@@ -766,28 +766,12 @@ def webpack(options):
settings = getattr(options, 'settings', Env.DEVSTACK_SETTINGS)
static_root_lms = Env.get_django_setting("STATIC_ROOT", "lms", settings=settings)
static_root_cms = Env.get_django_setting("STATIC_ROOT", "cms", settings=settings)
lms_root_url = Env.get_django_setting("LMS_ROOT_URL", "lms", settings=settings)
jwt_auth_cookie_header_payload_name = Env.get_nested_django_setting(
"JWT_AUTH",
"JWT_AUTH_COOKIE_HEADER_PAYLOAD",
"lms",
settings=settings,
)
user_info_cookie_name = Env.get_django_setting("EDXMKTG_USER_INFO_COOKIE_NAME", "lms", settings=settings)
config_path = Env.get_django_setting("WEBPACK_CONFIG_PATH", "lms", settings=settings)
environment = u"NODE_ENV={node_env} " \
u"STATIC_ROOT_LMS={static_root_lms} " \
u"STATIC_ROOT_CMS={static_root_cms} " \
u"LMS_ROOT_URL={lms_root_url} " \
u"JWT_AUTH_COOKIE_HEADER_PAYLOAD={jwt_auth_cookie_header_payload_name} " \
u"EDXMKTG_USER_INFO_COOKIE_NAME={user_info_cookie_name}".format(
node_env="development" if config_path == 'webpack.dev.config.js' else "production",
static_root_lms=static_root_lms,
static_root_cms=static_root_cms,
lms_root_url=lms_root_url,
jwt_auth_cookie_header_payload_name=jwt_auth_cookie_header_payload_name,
user_info_cookie_name=user_info_cookie_name,
)
environment = u'NODE_ENV={node_env} STATIC_ROOT_LMS={static_root_lms} STATIC_ROOT_CMS={static_root_cms}'.format(
node_env="development" if config_path == 'webpack.dev.config.js' else "production",
static_root_lms=static_root_lms,
static_root_cms=static_root_cms
)
sh(
cmd(
u'{environment} $(npm bin)/webpack --config={config_path}'.format(

View File

@@ -46,15 +46,10 @@ EXPECTED_INDEX_COURSE_COMMAND = (
EXPECTED_PRINT_SETTINGS_COMMAND = [
u"python manage.py lms --settings={settings} print_setting STATIC_ROOT 2>{log_file}",
u"python manage.py cms --settings={settings} print_setting STATIC_ROOT 2>{log_file}",
u"python manage.py lms --settings={settings} print_setting LMS_ROOT_URL 2>{log_file}",
u"python manage.py lms --settings={settings} print_setting JWT_AUTH 2>{log_file}",
u"python manage.py lms --settings={settings} print_setting EDXMKTG_USER_INFO_COOKIE_NAME 2>{log_file}",
u"python manage.py lms --settings={settings} print_setting WEBPACK_CONFIG_PATH 2>{log_file}"
]
EXPECTED_WEBPACK_COMMAND = (
u"NODE_ENV={node_env} STATIC_ROOT_LMS={static_root_lms} STATIC_ROOT_CMS={static_root_cms} "
u"LMS_ROOT_URL={lms_root_url} JWT_AUTH_COOKIE_HEADER_PAYLOAD={jwt_auth_cookie_header_payload_name} "
u"EDXMKTG_USER_INFO_COOKIE_NAME={user_info_cookie_name} "
u"$(npm bin)/webpack --config={webpack_config_path}"
)
@@ -257,9 +252,6 @@ class TestPaverServerTasks(PaverTestCase):
node_env="production",
static_root_lms=None,
static_root_cms=None,
lms_root_url=None,
jwt_auth_cookie_header_payload_name=None,
user_info_cookie_name=None,
webpack_config_path=None
))
expected_messages.extend(self.expected_sass_commands(system=system, asset_settings=expected_asset_settings))
@@ -306,9 +298,6 @@ class TestPaverServerTasks(PaverTestCase):
node_env="production",
static_root_lms=None,
static_root_cms=None,
lms_root_url=None,
jwt_auth_cookie_header_payload_name=None,
user_info_cookie_name=None,
webpack_config_path=None
))
expected_messages.extend(self.expected_sass_commands(asset_settings=expected_asset_settings))

View File

@@ -6,7 +6,6 @@ Helper functions for loading environment settings.
import io
import json
import os
import re
import sys
from time import sleep
@@ -272,25 +271,6 @@ class Env(object):
print(f.read())
sys.exit(1)
@classmethod
def get_nested_django_setting(cls, django_setting, nested_django_setting, system, settings=None):
"""
Interrogate Django environment for specific nested settings values
:param django_setting: the root django setting to get
:param nested_django_setting: the nested django setting to get
:param system: the django app to use when asking for the setting (lms | cms)
:param settings: the settings file to use when asking for the value
:return: unicode value of the django setting
"""
django_setting_value = cls.get_django_setting(django_setting, system, settings)
pattern = re.compile(
u"[\"']{setting}[\"']: [\"'](?P<setting_value>.*?)[\"']".format(setting=nested_django_setting)
)
match = pattern.search(django_setting_value)
if match:
return match.group('setting_value')
return None
@classmethod
def covered_modules(cls):
"""

View File

@@ -136,12 +136,6 @@ from student.models import CourseEnrollment
% endfor
</div>
%endif
${static.renderReact(
component="EnterpriseLearnerPortalBanner",
id="enterprise-learner-portal-banner",
props={}
)}
</div>
<section class="dashboard" id="dashboard-main">

View File

@@ -58,7 +58,7 @@ var workerConfig = function() {
extensions: ['.js']
}
}
}
};
} catch (err) {
return null;
}
@@ -92,8 +92,6 @@ module.exports = Merge.smart({
StudentAccountDeletion: './lms/static/js/student_account/components/StudentAccountDeletion.jsx',
StudentAccountDeletionInitializer: './lms/static/js/student_account/StudentAccountDeletionInitializer.js',
ProblemBrowser: './lms/djangoapps/instructor/static/instructor/ProblemBrowser/index.jsx',
CustomUserMenuLinks: './lms/static/js/custom_user_menu_links/CustomUserMenuLinks.js',
EnterpriseLearnerPortalBanner: './lms/static/js/learner_dashboard/EnterpriseLearnerPortalBanner.jsx',
// Learner Dashboard
EntitlementFactory: './lms/static/js/learner_dashboard/course_entitlement_factory.js',

View File

@@ -20,10 +20,7 @@ module.exports = _.values(Merge.smart(commonConfig, {
debug: true
}),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development'),
'process.env.LMS_ROOT_URL': JSON.stringify('https://localhost:18000'),
'process.env.JWT_AUTH_COOKIE_HEADER_PAYLOAD': JSON.stringify('edx-jwt-cookie-header-payload'),
'process.env.EDXMKTG_USER_INFO_COOKIE_NAME': JSON.stringify('edx-user-info')
'process.env.NODE_ENV': JSON.stringify('development')
})
],
module: {

View File

@@ -17,10 +17,7 @@ var optimizedConfig = Merge.smart(commonConfig, {
devtool: false,
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production'),
'process.env.LMS_ROOT_URL': JSON.stringify(process.env.LMS_ROOT_URL),
'process.env.JWT_AUTH_COOKIE_HEADER_PAYLOAD': JSON.stringify(process.env.JWT_AUTH_COOKIE_HEADER_PAYLOAD),
'process.env.EDXMKTG_USER_INFO_COOKIE_NAME': JSON.stringify(process.env.EDXMKTG_USER_INFO_COOKIE_NAME)
'process.env.NODE_ENV': JSON.stringify('production')
}),
new webpack.LoaderOptionsPlugin({ // This may not be needed; legacy option for loaders written for webpack 1
minimize: true