Compare commits

...

7 Commits

Author SHA1 Message Date
Max Sokolski
73ed886715 fix: URLs get the current value of LMS_BASE_URL from getConfig() (#284) 2024-02-09 11:26:47 +02:00
hinakhadim
c41ce5d87b fix: URLs get the current value of LMS_BASE_URL from getConfig() #269 2024-02-07 08:24:09 -04:00
Adolfo R. Brandes
a98439635b [Quince backport] refactor: hide switch dashboard option behind flag (#257) 2023-12-08 09:58:41 -03:00
Maria Grimaldi
141d4900ae refactor: hide switch dashboard option behind flag (#237) 2023-12-08 09:45:21 -03:00
Adolfo R. Brandes
f9eef109c1 [Quince backport] Sync with master (#243) 2023-12-07 14:32:47 -03:00
Adolfo R. Brandes
ad25abc222 Merge master into open-release/quince.master 2023-12-07 11:19:08 -03:00
Syed Ali Abbas Zaidi
2cf6e5a23e chore: bump frontend-platform (#216) 2023-10-18 20:07:52 +05:00
12 changed files with 33 additions and 23 deletions

1
.env
View File

@@ -42,3 +42,4 @@ ENABLE_NOTICES=''
CAREER_LINK_URL=''
OPTIMIZELY_FULL_STACK_SDK_KEY=''
EXPERIMENT_08_23_VAN_PAINTED_DOOR=true
ENABLE_EDX_PERSONAL_DASHBOARD=false

View File

@@ -48,3 +48,4 @@ ACCOUNT_PROFILE_URL='http://localhost:1995'
ENABLE_NOTICES=''
CAREER_LINK_URL=''
OPTIMIZELY_FULL_STACK_SDK_KEY=''
ENABLE_EDX_PERSONAL_DASHBOARD=false

View File

@@ -48,3 +48,4 @@ ENABLE_NOTICES=''
CAREER_LINK_URL=''
OPTIMIZELY_FULL_STACK_SDK_KEY='SDK Key'
EXPERIMENT_08_23_VAN_PAINTED_DOOR=true
ENABLE_EDX_PERSONAL_DASHBOARD=true

View File

@@ -17,6 +17,7 @@ const configuration = {
ENABLE_NOTICES: process.env.ENABLE_NOTICES || null,
CAREER_LINK_URL: process.env.CAREER_LINK_URL || null,
LOGO_URL: process.env.LOGO_URL,
ENABLE_EDX_PERSONAL_DASHBOARD: process.env.ENABLE_EDX_PERSONAL_DASHBOARD === 'true',
};
const features = {};

View File

@@ -29,7 +29,7 @@ export const CollapseMenuBody = ({ isOpen }) => {
<Button as="a" href="/" variant="inverse-primary">
{formatMessage(messages.course)}
</Button>
<Button as="a" href={urls.programsUrl} variant="inverse-primary">
<Button as="a" href={urls.programsUrl()} variant="inverse-primary">
{formatMessage(messages.program)}
</Button>
<Button

View File

@@ -29,16 +29,21 @@ export const AuthenticatedUserDropdown = () => {
</span>
</Dropdown.Toggle>
<Dropdown.Menu className="dropdown-menu-right">
<Dropdown.Header>{formatMessage(messages.dashboardSwitch)}</Dropdown.Header>
<Dropdown.Item as="a" href="/edx-dashboard" className="active">
{formatMessage(messages.dashboardPersonal)}
</Dropdown.Item>
{!!dashboard && (
<Dropdown.Item as="a" href={dashboard.url} key={dashboard.label}>
{dashboard.label} {formatMessage(messages.dashboard)}
</Dropdown.Item>
{ getConfig().ENABLE_EDX_PERSONAL_DASHBOARD && (
<>
<Dropdown.Header>{formatMessage(messages.dashboardSwitch)}</Dropdown.Header>
<Dropdown.Item as="a" href="/edx-dashboard" className="active">
{formatMessage(messages.dashboardPersonal)}
</Dropdown.Item>
{!!dashboard && (
<Dropdown.Item as="a" href={dashboard.url} key={dashboard.label}>
{dashboard.label} {formatMessage(messages.dashboard)}
</Dropdown.Item>
)}
<Dropdown.Divider />
</>
)}
<Dropdown.Divider />
{!dashboard && getConfig().CAREER_LINK_URL && (
<Dropdown.Item href={`${getConfig().CAREER_LINK_URL}`}>
{formatMessage(messages.career)}

View File

@@ -46,6 +46,7 @@ const config = {
SUPPORT_URL: 'http://localhost:18000/support',
CAREER_LINK_URL: 'http://localhost:18000/career',
LMS_BASE_URL: 'http:/localhost:18000',
ENABLE_EDX_PERSONAL_DASHBOARD: true,
};
getConfig.mockReturnValue(config);

View File

@@ -37,7 +37,7 @@ export const ExpandedHeader = () => {
</Button>
<Button
as="a"
href={urls.programsUrl}
href={urls.programsUrl()}
variant="inverse-primary"
className="p-4"
>

View File

@@ -5,7 +5,7 @@ import ExpandedHeader from '.';
import { useIsCollapsed } from '../hooks';
jest.mock('data/services/lms/urls', () => ({
programsUrl: 'programsUrl',
programsUrl: () => 'programsUrl',
baseAppUrl: url => (`http://localhost:18000${url}`),
}));

View File

@@ -34,16 +34,16 @@ export const deleteEntitlementEnrollment = ({ uuid, isRefundable }) => client()
);
export const updateEmailSettings = ({ courseId, enable }) => post(
urls.updateEmailSettings,
urls.updateEmailSettings(),
{ [apiKeys.courseId]: courseId, ...(enable && enableEmailsAction) },
);
export const unenrollFromCourse = ({ courseId }) => post(
urls.courseUnenroll,
urls.courseUnenroll(),
{ [apiKeys.courseId]: courseId, ...unenrollmentAction },
);
export const logEvent = ({ eventName, data, courseId }) => post(urls.event, {
export const logEvent = ({ eventName, data, courseId }) => post(urls.event(), {
courserun_key: courseId,
event_type: eventName,
page: window.location.href,

View File

@@ -77,7 +77,7 @@ describe('lms api methods', () => {
expect(
api.updateEmailSettings({ courseId, enable: false }),
).toEqual(
utils.post(urls.updateEmailSettings, { [apiKeys.courseId]: courseId }),
utils.post(urls.updateEmailSettings(), { [apiKeys.courseId]: courseId }),
);
});
});
@@ -87,7 +87,7 @@ describe('lms api methods', () => {
api.updateEmailSettings({ courseId, enable: true }),
).toEqual(
utils.post(
urls.updateEmailSettings,
urls.updateEmailSettings(),
{ [apiKeys.courseId]: courseId, ...enableEmailsAction },
),
);
@@ -100,7 +100,7 @@ describe('lms api methods', () => {
api.unenrollFromCourse({ courseId }),
).toEqual(
utils.post(
urls.courseUnenroll,
urls.courseUnenroll(),
{ [apiKeys.courseId]: courseId, ...unenrollmentAction },
),
);
@@ -116,7 +116,7 @@ describe('lms api methods', () => {
expect(
api.logEvent({ courseId, eventName, data }),
).toEqual(
utils.post(urls.event, {
utils.post(urls.event(), {
courserun_key: courseId,
event_type: eventName,
page: href,

View File

@@ -10,9 +10,9 @@ export const getApiUrl = () => (`${getConfig().LMS_BASE_URL}/api`);
const getInitApiUrl = () => (`${getApiUrl()}/learner_home/init`);
const event = `${getBaseUrl()}/event`;
const courseUnenroll = `${getBaseUrl()}/change_enrollment`;
const updateEmailSettings = `${getApiUrl()}/change_email_settings`;
const event = () => `${getBaseUrl()}/event`;
const courseUnenroll = () => `${getBaseUrl()}/change_enrollment`;
const updateEmailSettings = () => `${getApiUrl()}/change_email_settings`;
const entitlementEnrollment = (uuid) => `${getApiUrl()}/entitlements/v1/entitlements/${uuid}/enrollments`;
// if url is null or absolute, return it as is
@@ -22,7 +22,7 @@ export const baseAppUrl = (url) => updateUrl(getBaseUrl(), url);
export const learningMfeUrl = (url) => updateUrl(getConfig().LEARNING_BASE_URL, url);
// static view url
const programsUrl = baseAppUrl('/dashboard/programs');
const programsUrl = () => baseAppUrl('/dashboard/programs');
export const creditPurchaseUrl = (courseId) => `${getEcommerceUrl()}/credit/checkout/${courseId}/`;
export const creditRequestUrl = (providerId) => `${getApiUrl()}/credit/v1/providers/${providerId}/request/`;