diff --git a/lms/djangoapps/support/static/support/jsx/errors_list.jsx b/lms/djangoapps/support/static/support/jsx/errors_list.jsx
index f55dad0077..ac8b06f900 100644
--- a/lms/djangoapps/support/static/support/jsx/errors_list.jsx
+++ b/lms/djangoapps/support/static/support/jsx/errors_list.jsx
@@ -1,10 +1,10 @@
+/* global gettext */
/* eslint react/no-array-index-key: 0 */
import React from 'react';
import PropTypes from 'prop-types';
class ShowErrors extends React.Component {
-
render() {
window.scrollTo(0, 0);
return this.props.errorList.length > 0 &&
diff --git a/lms/djangoapps/support/static/support/jsx/logged_out_user.jsx b/lms/djangoapps/support/static/support/jsx/logged_out_user.jsx
index 84cce2fa71..96b5682310 100644
--- a/lms/djangoapps/support/static/support/jsx/logged_out_user.jsx
+++ b/lms/djangoapps/support/static/support/jsx/logged_out_user.jsx
@@ -3,12 +3,12 @@
import React from 'react';
import PropTypes from 'prop-types';
-function LoggedOutUser({ loginUrl }) {
+function LoggedOutUser({ platformName, loginUrl }) {
return (
-
{gettext('Sign in to edX so we can help you better.')}
+
{gettext(`Sign in to ${platformName} so we can help you better.`)}
@@ -42,6 +42,7 @@ function LoggedOutUser({ loginUrl }) {
}
LoggedOutUser.propTypes = {
+ platformName: PropTypes.string.isRequired,
loginUrl: PropTypes.string.isRequired,
};
diff --git a/lms/djangoapps/support/static/support/jsx/single_support_form.jsx b/lms/djangoapps/support/static/support/jsx/single_support_form.jsx
index a738eb9310..d6ce0aea09 100644
--- a/lms/djangoapps/support/static/support/jsx/single_support_form.jsx
+++ b/lms/djangoapps/support/static/support/jsx/single_support_form.jsx
@@ -10,13 +10,13 @@ import FileUpload from './file_upload';
import ShowErrors from './errors_list';
import LoggedInUser from './logged_in_user';
import LoggedOutUser from './logged_out_user';
+import Success from './success';
// TODO
// edx zendesk APIs
// access token
// custom fields ids
// https://openedx.atlassian.net/browse/LEARNER-2736
-// https://openedx.atlassian.net/browse/LEARNER-2735
class RenderForm extends React.Component {
constructor(props) {
@@ -24,6 +24,7 @@ class RenderForm extends React.Component {
this.state = {
currentRequest: null,
errorList: [],
+ success: true,
};
this.submitForm = this.submitForm.bind(this);
this.setErrorState = this.setErrorState.bind(this);
@@ -36,11 +37,11 @@ class RenderForm extends React.Component {
}
submitForm() {
- const url = 'https://arbisoft.zendesk.com/api/v2/tickets.json',
+ const url = 'https://example.zendesk.com/api/v2/tickets.json',
$userInfo = $('.user-info'),
request = new XMLHttpRequest(),
$course = $('#course'),
- accessToken = 'd6ed06821334b6584dd9607d04007c281007324ed07e087879c9c44835c684da',
+ accessToken = 'abc000',
data = {
subject: $('#subject').val(),
comment: {
@@ -78,11 +79,11 @@ class RenderForm extends React.Component {
request.onreadystatechange = function success() {
if (request.readyState === 4 && request.status === 201) {
- // TODO needs to remove after implementing success page
- const alert = 'Request submitted successfully.';
- alert();
+ this.setState({
+ success: true,
+ });
}
- };
+ }.bind(this);
request.onerror = function error() {
this.setErrorState([gettext('Something went wrong. Please try again later.')]);
@@ -118,12 +119,26 @@ class RenderForm extends React.Component {
return false;
}
- render() {
+ renderSuccess() {
+ return (
+
+ );
+ }
+
+ renderSupportForm() {
let userElement;
if (this.props.context.user) {
userElement =
;
} else {
- userElement =
;
+ userElement = (
);
}
return (
@@ -150,7 +165,7 @@ class RenderForm extends React.Component {
{gettext('Search the edX Help Center')}
+ >{`Search the ${this.props.context.platformName} Help Center`}
@@ -195,6 +210,14 @@ class RenderForm extends React.Component {
);
}
+
+ render() {
+ if (this.state.success) {
+ return this.renderSuccess();
+ }
+
+ return this.renderSupportForm();
+ }
}
RenderForm.propTypes = {
diff --git a/lms/djangoapps/support/static/support/jsx/success.jsx b/lms/djangoapps/support/static/support/jsx/success.jsx
new file mode 100644
index 0000000000..09828c9aff
--- /dev/null
+++ b/lms/djangoapps/support/static/support/jsx/success.jsx
@@ -0,0 +1,49 @@
+/* global gettext */
+/* eslint one-var: ["error", "always"] */
+
+import React from 'react';
+import PropTypes from 'prop-types';
+
+function Success({ platformName, homepageUrl, dashboardUrl, isLoggedIn }) {
+ let btnText,
+ btnUrl;
+ if (isLoggedIn) {
+ btnText = gettext('Go to my Dashboard');
+ btnUrl = dashboardUrl;
+ } else {
+ btnText = gettext(`Go to ${platformName} Home`);
+ btnUrl = homepageUrl;
+ }
+ return (