Compare commits

..

59 Commits

Author SHA1 Message Date
Adam Stankiewicz
cb738286ed fix: upgrade header and footer to use logo from shared config (#390) 2020-12-16 11:25:21 -05:00
morenol
cd24d0da8d fix: update frontend-build and frontend-platform (#386)
* fix: update frontend-build

* Upgrade frontend-platform
2020-11-10 16:31:52 -05:00
Zainab Amir
2f9f573698 feat: add hotjar suppression to PII (#385) 2020-09-22 11:13:01 +05:00
Renovate Bot
563cd4b8df fix(deps): update dependency @edx/frontend-component-footer to v10.0.11 2020-09-20 22:39:15 +00:00
Renovate Bot
25911bdfeb chore(deps): update dependency enzyme-adapter-react-16 to v1.15.4 2020-09-20 21:39:11 +00:00
Renovate Bot
179fbaa452 chore(deps): update dependency codecov to v3.7.2 2020-09-20 20:37:15 +00:00
Jeff LaJoie
73df912f29 Merge pull request #378 from edx/jlajoie/ENT-3302
fix: ENTERPRISE_LEARNER_PORTAL_HOSTNAME added for header updates
2020-08-06 07:25:49 -04:00
Jeff LaJoie
d64e497407 fix: ENTERPRISE_LEARNER_PORTAL_HOSTNAME added for header updates 2020-08-06 07:09:53 -04:00
dependabot[bot]
3725a36b30 build(deps-dev): bump codecov from 3.6.5 to 3.7.1 (#376)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-21 09:24:54 -04:00
Renovate Bot
3cd6999886 fix(deps): update dependency @edx/frontend-component-footer to v10.0.9 2020-04-26 11:11:35 +00:00
David Joy
3ff2a0a359 fix: fixing LOGOUT_URL for dev and test (#374) 2020-04-21 13:06:15 -04:00
Renovate Bot
5b0f79f6f9 fix(deps): update dependency @edx/frontend-component-footer to v10.0.7 2020-02-07 17:13:29 +00:00
Renovate Bot
d3490985d2 chore(deps): update dependency codecov to v3.6.5 2020-02-07 15:10:42 +00:00
Renovate Bot
82300bf99a chore(deps): update dependency codecov to v3.6.4 2020-02-01 03:11:48 +00:00
Renovate Bot
c096bf3d28 chore(deps): update dependency codecov to v3.6.3 2020-01-31 14:12:36 +00:00
Renovate Bot
ac885e49d7 chore(deps): update dependency @edx/frontend-build to v2.0.6 2020-01-29 21:12:22 +00:00
Renovate Bot
c925666501 fix(deps): update dependency @edx/frontend-platform to v1.1.14 2020-01-28 13:13:15 +00:00
Renovate Bot
c3e30e8163 chore(deps): update dependency codecov to v3.6.2 2020-01-23 19:13:36 +00:00
Renovate Bot
d5d2279797 fix(deps): update dependency @edx/frontend-component-header to v2.0.5 2020-01-22 18:41:21 +00:00
Renovate Bot
8bb03e1404 fix(deps): update dependency @edx/frontend-component-header to v2.0.4 2020-01-21 19:10:39 +00:00
Renovate Bot
d84ef68648 fix(deps): update dependency @edx/frontend-platform to v1.1.13 2019-12-28 00:11:05 +00:00
Renovate Bot
ba9cec39cf fix(deps): update dependency redux to v4.0.5 2019-12-24 03:12:01 +00:00
David Joy
a13da63d25 Updating openedx.yaml to include profile in Open edX releases. 2019-12-20 13:27:03 -05:00
Renovate Bot
22dd41f4ee chore(deps): update dependency enzyme-adapter-react-16 to v1.15.2 2019-12-20 00:10:14 +00:00
Renovate Bot
f38a03b9ce fix(deps): update dependency @edx/frontend-platform to v1.1.12 2019-12-15 01:11:34 +00:00
Renovate Bot
04131d1636 chore(deps): update dependency @edx/frontend-build to v2.0.5 2019-12-12 18:19:34 +00:00
Renovate Bot
2aab012b4d chore(deps): update dependency redux-mock-store to v1.5.4 2019-12-11 14:14:04 +00:00
Renovate Bot
9f27335d2b fix(deps): update dependency @edx/frontend-component-footer to v10.0.6 2019-12-11 01:05:29 +00:00
Renovate Bot
cdac04a0d7 fix(deps): update dependency @edx/frontend-platform to v1.1.11 2019-12-10 22:21:10 +00:00
Renovate Bot
0b58870714 fix(deps): update dependency @edx/frontend-platform to v1.1.10 2019-12-09 17:11:44 +00:00
Renovate Bot
106cba1785 fix(deps): update dependency @edx/frontend-component-footer to v10.0.5 2019-12-06 18:13:49 +00:00
Renovate Bot
820768367f fix(deps): update dependency @fortawesome/react-fontawesome to v0.1.8 2019-12-06 17:12:56 +00:00
Renovate Bot
18df696902 fix(deps): update dependency @edx/frontend-platform to v1.1.9 2019-12-05 23:14:59 +00:00
Renovate Bot
f76383f034 fix(deps): update dependency @edx/frontend-component-footer to v10.0.4 2019-12-05 00:27:48 +00:00
Renovate Bot
f0ddf3bf09 fix(deps): update dependency @edx/frontend-platform to v1.1.8 2019-12-04 22:13:44 +00:00
renovate[bot]
11ac45f6b8 chore(deps): update dependency codecov to v3.6.1 (#228) 2019-12-04 16:38:04 -05:00
edX Transifex Bot
67c23630b9 fix(i18n): update translations 2019-12-04 16:18:11 -05:00
Renovate Bot
0ef787b9ce fix(deps): update dependency @edx/frontend-platform to v1.1.6 2019-12-04 20:19:41 +00:00
Renovate Bot
c3e3024971 chore(deps): update dependency glob to v7.1.6 2019-12-04 17:17:28 +00:00
Adam Butterworth
a95bf5006b fix: remove unneeded commitlint dependencies (#339) 2019-12-04 11:21:36 -05:00
Renovate Bot
517f3f57bf fix(deps): update dependency @edx/frontend-component-header to v2.0.3 2019-12-03 23:15:06 +00:00
Renovate Bot
2e464498d8 fix(deps): update dependency @edx/frontend-component-footer to v10.0.3 2019-12-03 22:18:45 +00:00
Renovate Bot
3f519aa678 chore(deps): update dependency @edx/frontend-build to v2.0.4 2019-12-03 21:05:49 +00:00
Renovate Bot
5b7a29422b fix(deps): update dependency @edx/frontend-component-header to v2.0.2 2019-12-03 20:53:22 +00:00
Renovate Bot
f3d9f2ae06 fix(deps): update dependency @edx/frontend-component-footer to v10.0.2 2019-12-03 20:14:16 +00:00
edX Transifex Bot
b5607e9b83 fix(i18n): update translations 2019-12-03 13:55:04 -05:00
David Joy
fd9b393bc7 fix: updating frontend-build to fix translations (#332) 2019-12-03 13:28:28 -05:00
renovate[bot]
0fe5354047 chore(deps): update dependency enzyme-adapter-react-16 to v1.15.1 (#295) 2019-12-03 11:24:05 -05:00
Renovate Bot
71923503c4 fix(deps): update dependency @edx/frontend-component-footer to v10.0.1 2019-12-03 16:16:55 +00:00
Renovate Bot
f1a620a784 fix(deps): update dependency @edx/frontend-component-header to v2.0.1 2019-12-03 15:39:12 +00:00
David Joy
645f378600 fix: updating frontend-platform required small refactorings (#328) 2019-12-02 17:28:32 -05:00
David Joy
057a39085c Revert "build: add newrelic plugin back in as experiment (#326)" (#327)
This reverts commit 3f31aba5a7.
2019-12-02 13:32:30 -05:00
David Joy
3f31aba5a7 build: add newrelic plugin back in as experiment (#326) 2019-12-02 13:12:38 -05:00
David Joy
321448c674 fix: using latest published version of frontend-build again 2019-12-02 12:56:51 -05:00
David Joy
77c9984d34 fix: bumping frontend-build version
Debugging build process, so pushing to master to speed up workflow.  Yes, I know.
2019-12-02 11:28:30 -05:00
David Joy
c9d0a7f86f fix: temporarily pin frontend-build to github link to test stage build (#325) 2019-12-02 11:18:58 -05:00
edX Transifex Bot
04d51ffee1 fix(i18n): update translations 2019-12-01 15:40:22 -05:00
Renovate Bot
25f6b86e92 fix(deps): update font awesome 2019-11-25 16:20:53 +00:00
Renovate Bot
c700a47e40 fix(deps): update dependency react-redux to v7.1.3 2019-11-25 15:23:57 +00:00
23 changed files with 9371 additions and 5676 deletions

5
.env
View File

@@ -16,6 +16,7 @@ SITE_NAME=null
USER_INFO_COOKIE_NAME=null
APPLE_APP_STORE_URL=null
CONTACT_URL=null
ENTERPRISE_LEARNER_PORTAL_HOSTNAME=null
ENTERPRISE_MARKETING_FOOTER_UTM_MEDIUM=null
ENTERPRISE_MARKETING_URL=null
ENTERPRISE_MARKETING_UTM_CAMPAIGN=null
@@ -30,3 +31,7 @@ SUPPORT_URL=null
TERMS_OF_SERVICE_URL=null
TWITTER_URL=null
YOU_TUBE_URL=null
LOGO_URL=''
LOGO_TRADEMARK_URL=''
LOGO_WHITE_URL=''
FAVICON_URL=''

View File

@@ -8,7 +8,7 @@ ECOMMERCE_BASE_URL='http://localhost:18130'
LANGUAGE_PREFERENCE_COOKIE_NAME='openedx-language-preference'
LMS_BASE_URL='http://localhost:18000'
LOGIN_URL='http://localhost:18000/login'
LOGOUT_URL='http://localhost:18000/login'
LOGOUT_URL='http://localhost:18000/logout'
MARKETING_SITE_BASE_URL='http://localhost:18000'
ORDER_HISTORY_URL='localhost:1996/orders'
REFRESH_ACCESS_TOKEN_ENDPOINT='http://localhost:18000/login_refresh'
@@ -17,6 +17,7 @@ SITE_NAME='edX'
USER_INFO_COOKIE_NAME='edx-user-info'
APPLE_APP_STORE_URL='https://www.apple.com/ios/app-store/'
CONTACT_URL='http://localhost:18000/contact'
ENTERPRISE_LEARNER_PORTAL_HOSTNAME='http://localhost:8080'
ENTERPRISE_MARKETING_FOOTER_UTM_MEDIUM='Footer'
ENTERPRISE_MARKETING_URL='http://example.com'
ENTERPRISE_MARKETING_UTM_CAMPAIGN='my_campaign'
@@ -31,3 +32,7 @@ SUPPORT_URL='http://localhost:18000/support'
TERMS_OF_SERVICE_URL='http://localhost:18000/terms-of-service'
TWITTER_URL='https://twitter.com'
YOU_TUBE_URL='https://www.youtube.com'
LOGO_URL=https://edx-cdn.org/v3/default/logo.svg
LOGO_TRADEMARK_URL=https://edx-cdn.org/v3/default/logo-trademark.svg
LOGO_WHITE_URL=https://edx-cdn.org/v3/default/logo-white.svg
FAVICON_URL=https://edx-cdn.org/v3/default/favicon.ico

View File

@@ -6,10 +6,14 @@ ECOMMERCE_BASE_URL='http://localhost:18130'
LANGUAGE_PREFERENCE_COOKIE_NAME='openedx-language-preference'
LMS_BASE_URL='http://localhost:18000'
LOGIN_URL='http://localhost:18000/login'
LOGOUT_URL='http://localhost:18000/login'
LOGOUT_URL='http://localhost:18000/logout'
MARKETING_SITE_BASE_URL='http://localhost:18000'
ORDER_HISTORY_URL='localhost:1996/orders'
REFRESH_ACCESS_TOKEN_ENDPOINT='http://localhost:18000/login_refresh'
SEGMENT_KEY=null
SITE_NAME='edX'
USER_INFO_COOKIE_NAME='edx-user-info'
LOGO_URL=https://edx-cdn.org/v3/default/logo.svg
LOGO_TRADEMARK_URL=https://edx-cdn.org/v3/default/logo-trademark.svg
LOGO_WHITE_URL=https://edx-cdn.org/v3/default/logo-white.svg
FAVICON_URL=https://edx-cdn.org/v3/default/favicon.ico

View File

@@ -4,3 +4,4 @@
nick: prof
oeps: {}
owner: edx/arch-team
openedx-release: {ref: master}

14551
package-lock.json generated

File diff suppressed because it is too large Load Diff

36
package.json Executable file → Normal file
View File

@@ -40,15 +40,15 @@
"ie 11"
],
"dependencies": {
"@edx/frontend-component-footer": "^10.0.0",
"@edx/frontend-component-header": "^2.0.0",
"@edx/frontend-platform": "^1.0.0",
"@edx/frontend-component-footer": "10.1.1",
"@edx/frontend-component-header": "2.2.1",
"@edx/frontend-platform": "1.8.0",
"@edx/paragon": "7.1.3",
"@fortawesome/fontawesome-svg-core": "1.2.14",
"@fortawesome/fontawesome-svg-core": "1.2.25",
"@fortawesome/free-brands-svg-icons": "5.7.2",
"@fortawesome/free-regular-svg-icons": "5.7.1",
"@fortawesome/free-solid-svg-icons": "5.7.1",
"@fortawesome/react-fontawesome": "0.1.4",
"@fortawesome/free-regular-svg-icons": "5.7.2",
"@fortawesome/free-solid-svg-icons": "5.7.2",
"@fortawesome/react-fontawesome": "0.1.8",
"babel-polyfill": "6.26.0",
"classnames": "2.2.6",
"email-prop-type": "1.1.7",
@@ -64,11 +64,11 @@
"prop-types": "15.7.2",
"react": "16.9.0",
"react-dom": "16.9.0",
"react-redux": "7.1.1",
"react-router": "5.0.1",
"react-router-dom": "5.0.1",
"react-redux": "7.1.3",
"react-router": "5.1.2",
"react-router-dom": "5.1.2",
"react-transition-group": "4.3.0",
"redux": "4.0.4",
"redux": "4.0.5",
"redux-devtools-extension": "2.13.8",
"redux-logger": "3.0.6",
"redux-saga": "1.0.5",
@@ -79,18 +79,16 @@
"devDependencies": {
"@commitlint/cli": "8.2.0",
"@commitlint/config-angular": "8.2.0",
"@commitlint/prompt": "8.2.0",
"@commitlint/prompt-cli": "8.2.0",
"@edx/frontend-build": "^2.0.1",
"codecov": "3.1.0",
"@edx/frontend-build": "5.3.2",
"codecov": "3.7.2",
"enzyme": "3.10.0",
"enzyme-adapter-react-16": "1.14.0",
"enzyme-adapter-react-16": "1.15.4",
"es-check": "5.0.0",
"glob": "7.1.3",
"husky": "3.0.9",
"glob": "7.1.6",
"husky": "3.1.0",
"purgecss-webpack-plugin": "1.6.0",
"react-test-renderer": "16.9.0",
"reactifex": "1.1.1",
"redux-mock-store": "1.5.3"
"redux-mock-store": "1.5.4"
}
}

View File

@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
<link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="<%=webpackConfig.output.publicPath%>favicon.ico" type="image/x-icon" />
</head>
<body>
<div id="root"></div>

View File

@@ -1,4 +1,4 @@
import { getConfig } from '@edx/frontend-platform/config';
import { getConfig } from '@edx/frontend-platform';
import { applyMiddleware, createStore, compose } from 'redux';
import thunkMiddleware from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';

View File

@@ -15,7 +15,7 @@
"profile.certificates.types.unknown": "Certificado",
"profile.country.label": "Ubicación",
"profile.country.empty": "Añade ubicación",
"profile.education.empty": "Añade Education",
"profile.education.empty": "Añade Educación",
"profile.education.education": "Educación",
"profile.education.levels.p": "Doctorado",
"profile.education.levels.m": "Master o magíster",

View File

@@ -1,51 +1,51 @@
{
"profile.age.headline": "Votre profil ne peut pas être partagé.",
"profile.age.details": "Pour partager votre profil avec d'autres apprenants edX, vous devez confirmer que vous avez plus de 13 ans.",
"profile.age.set.date": "Définissez votre date de naissance",
"profile.datejoined.member.since": "Membre depuis {year}",
"profile.bio.empty": "Ajouter une courte biographie",
"profile.bio.about.me": "À propos de moi",
"profile.certificate.organization.label": "De",
"profile.certificate.completion.date.label": "Terminé le {date}",
"profile.no.certificates": "Vous n'avez pas encore de certificats.",
"profile.certificates.my.certificates": "Mes certificats",
"profile.certificates.view.certificate": "Voir le certificat",
"profile.certificates.types.verified": "Certificat vérifié",
"profile.certificates.types.professional": "Certificat professionnel",
"profile.certificates.types.unknown": "Certificat",
"profile.country.label": "Localisation",
"profile.country.empty": "Ajouter localisation",
"profile.education.empty": "Ajouter une éducation",
"profile.age.headline": "Your profile cannot be shared.",
"profile.age.details": "To share your profile with other edX learners, you must confirm that you are over the age of 13.",
"profile.age.set.date": "Set your date of birth",
"profile.datejoined.member.since": "Member since {year}",
"profile.bio.empty": "Add a short bio",
"profile.bio.about.me": "About Me",
"profile.certificate.organization.label": "From",
"profile.certificate.completion.date.label": "Completed on {date}",
"profile.no.certificates": "You don't have any certificates yet.",
"profile.certificates.my.certificates": "My Certificates",
"profile.certificates.view.certificate": "View Certificate",
"profile.certificates.types.verified": "Verified Certificate",
"profile.certificates.types.professional": "Professional Certificate",
"profile.certificates.types.unknown": "Certificate",
"profile.country.label": "Location",
"profile.country.empty": "Add location",
"profile.education.empty": "Add education",
"profile.education.education": "Education",
"profile.education.levels.p": "Doctorat",
"profile.education.levels.m": "Master ou diplôme professionnel",
"profile.education.levels.b": "Diplôme de licence",
"profile.education.levels.a": "Grade de l'associé",
"profile.education.levels.hs": "Lycée / enseignement secondaire",
"profile.education.levels.jhs": "Collège / enseignement secondaire inférieur",
"profile.education.levels.el": "Enseignement primaire",
"profile.education.levels.none": "Sans diplôme",
"profile.education.levels.o": "Autre niveau d'étude",
"profile.editbutton.edit": "Modifier",
"profile.formcontrols.who.can.see": "Qui peut voir ça :",
"profile.formcontrols.button.cancel": "Annuler",
"profile.formcontrols.button.save": "Enregistrer",
"profile.formcontrols.button.saving": "Enregistrement",
"profile.formcontrols.button.saved": "Enregistré",
"profile.visibility.who.just.me": "Juste moi",
"profile.visibility.who.everyone": "Tout le monde sur edX",
"profile.name.full.name": "Nom complet",
"profile.name.details": "C'est le nom qui apparaît dans votre compte et sur vos certificats.",
"profile.name.empty": "Ajouter un nom",
"profile.preferredlanguage.empty": "Ajouter une langue",
"profile.preferredlanguage.label": "Langue principale parlée",
"profile.profileavatar.upload-button": "Envoyer la photo",
"profile.profileavatar.remove.button": "Supprimer",
"profile.image.alt.attribute": "Profil avatar",
"profile.profileavatar.change-button": "Modifier",
"profile.sociallinks.add": "Ajouter {network}",
"profile.sociallinks.social.links": "Liens vers les réseaux sociaux",
"profile.notfound.message": "La page que vous recherchez n'est pas disponible ou il y a une erreur dans l'URL. Veuillez vérifier l'URL et réessayer.",
"profile.viewMyRecords": "Voir mes succès",
"profile.loading": "Chargement du profil...."
"profile.education.levels.p": "Doctorate",
"profile.education.levels.m": "Master's or professional degree",
"profile.education.levels.b": "Bachelor's Degree",
"profile.education.levels.a": "Associate's degree",
"profile.education.levels.hs": "Secondary/high school",
"profile.education.levels.jhs": "Junior secondary/junior high/middle school",
"profile.education.levels.el": "Elementary/primary school",
"profile.education.levels.none": "No formal education",
"profile.education.levels.o": "Other education",
"profile.editbutton.edit": "Edit",
"profile.formcontrols.who.can.see": "Who can see this:",
"profile.formcontrols.button.cancel": "Cancel",
"profile.formcontrols.button.save": "Save",
"profile.formcontrols.button.saving": "Saving",
"profile.formcontrols.button.saved": "Saved",
"profile.visibility.who.just.me": "Just me",
"profile.visibility.who.everyone": "Everyone on edX",
"profile.name.full.name": "Full Name",
"profile.name.details": "This is the name that appears in your account and on your certificates.",
"profile.name.empty": "Add name",
"profile.preferredlanguage.empty": "Add language",
"profile.preferredlanguage.label": "Primary Language Spoken",
"profile.profileavatar.upload-button": "Upload Photo",
"profile.profileavatar.remove.button": "Remove",
"profile.image.alt.attribute": "profile avatar",
"profile.profileavatar.change-button": "Change",
"profile.sociallinks.add": "Add {network}",
"profile.sociallinks.social.links": "Social Links",
"profile.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
"profile.viewMyRecords": "View My Records",
"profile.loading": "Profile loading..."
}

View File

@@ -1,22 +1,22 @@
{
"profile.age.headline": "您的个人资料无法共享",
"profile.age.details": "您必须确认您已年满13岁才能其他edX学员分享您的个人资料",
"profile.age.set.date": "设置您的出生日期",
"profile.datejoined.member.since": "会员自{year}",
"profile.bio.empty": "添加简介",
"profile.bio.about.me": "个人资料",
"profile.certificate.organization.label": "",
"profile.age.headline": "Your profile cannot be shared.",
"profile.age.details": "To share your profile with other edX learners, you must confirm that you are over the age of 13.",
"profile.age.set.date": "Set your date of birth",
"profile.datejoined.member.since": "Member since {year}",
"profile.bio.empty": "Add a short bio",
"profile.bio.about.me": "About Me",
"profile.certificate.organization.label": "From",
"profile.certificate.completion.date.label": "Completed on {date}",
"profile.no.certificates": "你还没有任何证书。",
"profile.certificates.my.certificates": "我的证书",
"profile.certificates.view.certificate": "查看证书",
"profile.no.certificates": "You don't have any certificates yet.",
"profile.certificates.my.certificates": "My Certificates",
"profile.certificates.view.certificate": "View Certificate",
"profile.certificates.types.verified": "Verified Certificate",
"profile.certificates.types.professional": "Professional Certificate",
"profile.certificates.types.unknown": "Certificate",
"profile.country.label": "位置",
"profile.country.empty": "添加地址",
"profile.education.empty": "添加教育程度",
"profile.education.education": "教育程度",
"profile.country.label": "Location",
"profile.country.empty": "Add location",
"profile.education.empty": "Add education",
"profile.education.education": "Education",
"profile.education.levels.p": "Doctorate",
"profile.education.levels.m": "Master's or professional degree",
"profile.education.levels.b": "Bachelor's Degree",
@@ -26,26 +26,26 @@
"profile.education.levels.el": "Elementary/primary school",
"profile.education.levels.none": "No formal education",
"profile.education.levels.o": "Other education",
"profile.editbutton.edit": "编辑",
"profile.formcontrols.who.can.see": "对谁可见:",
"profile.formcontrols.button.cancel": "取消",
"profile.formcontrols.button.save": "保存",
"profile.formcontrols.button.saving": "正在保存",
"profile.formcontrols.button.saved": "已保存",
"profile.visibility.who.just.me": "仅自己",
"profile.visibility.who.everyone": "edX的所有人",
"profile.name.full.name": "全名",
"profile.name.details": "用于显示在账户和证书上的姓名。",
"profile.name.empty": "添加名字",
"profile.preferredlanguage.empty": "添加语言",
"profile.editbutton.edit": "Edit",
"profile.formcontrols.who.can.see": "Who can see this:",
"profile.formcontrols.button.cancel": "Cancel",
"profile.formcontrols.button.save": "Save",
"profile.formcontrols.button.saving": "Saving",
"profile.formcontrols.button.saved": "Saved",
"profile.visibility.who.just.me": "Just me",
"profile.visibility.who.everyone": "Everyone on edX",
"profile.name.full.name": "Full Name",
"profile.name.details": "This is the name that appears in your account and on your certificates.",
"profile.name.empty": "Add name",
"profile.preferredlanguage.empty": "Add language",
"profile.preferredlanguage.label": "Primary Language Spoken",
"profile.profileavatar.upload-button": "上传照片",
"profile.profileavatar.remove.button": "移除",
"profile.profileavatar.upload-button": "Upload Photo",
"profile.profileavatar.remove.button": "Remove",
"profile.image.alt.attribute": "profile avatar",
"profile.profileavatar.change-button": "更改",
"profile.sociallinks.add": "添加{network}",
"profile.sociallinks.social.links": "社交链接",
"profile.notfound.message": "您访问的地址不存在或有误。请检查URL后重新尝试访问。",
"profile.profileavatar.change-button": "Change",
"profile.sociallinks.add": "Add {network}",
"profile.sociallinks.social.links": "Social Links",
"profile.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
"profile.viewMyRecords": "View My Records",
"profile.loading": "Profile loading..."
}

View File

@@ -1,8 +1,7 @@
import 'babel-polyfill';
import { APP_INIT_ERROR, APP_READY, initialize, subscribe } from '@edx/frontend-platform';
import { AppProvider, ErrorPage } from '@edx/frontend-platform/react';
import { APP_INIT_ERROR, APP_READY, initialize } from '@edx/frontend-platform/init';
import { subscribe } from '@edx/frontend-platform/pubSub';
import React from 'react';
import ReactDOM from 'react-dom';

View File

@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { sendTrackingLogEvent } from '@edx/frontend-platform/analytics';
import { ensureConfig } from '@edx/frontend-platform/config';
import { ensureConfig } from '@edx/frontend-platform';
import { AppContext } from '@edx/frontend-platform/react';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import { StatusAlert, Hyperlink } from '@edx/paragon';
@@ -112,9 +112,11 @@ class ProfilePage extends React.Component {
return (
<React.Fragment>
<h1 className="h2 mb-0 font-weight-bold">{this.props.match.params.username}</h1>
<DateJoined date={dateJoined} />
<hr className="d-none d-md-block" />
<span data-hj-suppress>
<h1 className="h2 mb-0 font-weight-bold">{this.props.match.params.username}</h1>
<DateJoined date={dateJoined} />
<hr className="d-none d-md-block" />
</span>
</React.Fragment>
);
}

View File

@@ -1,7 +1,7 @@
/* eslint-disable global-require */
import { getConfig } from '@edx/frontend-platform';
import * as analytics from '@edx/frontend-platform/analytics';
import { AppContext } from '@edx/frontend-platform/react';
import { getConfig } from '@edx/frontend-platform/config';
import { configure as configureI18n, IntlProvider } from '@edx/frontend-platform/i18n';
import { mount } from 'enzyme';
import React from 'react';
@@ -37,7 +37,7 @@ Object.defineProperty(global.document, 'cookie', {
value: `${getConfig().LANGUAGE_PREFERENCE_COOKIE_NAME}=en`,
});
jest.mock('@edx/frontend-platform/src/auth', () => ({
jest.mock('@edx/frontend-platform/auth', () => ({
configure: () => {},
getAuthenticatedUser: () => null,
fetchAuthenticatedUser: () => null,
@@ -45,7 +45,7 @@ jest.mock('@edx/frontend-platform/src/auth', () => ({
AUTHENTICATED_USER_CHANGED: 'user_changed',
}));
jest.mock('@edx/frontend-platform/src/analytics', () => ({
jest.mock('@edx/frontend-platform/analytics', () => ({
configure: () => {},
identifyAnonymousUser: jest.fn(),
identifyAuthenticatedUser: jest.fn(),
@@ -54,11 +54,9 @@ jest.mock('@edx/frontend-platform/src/analytics', () => ({
configureI18n({
loggingService: { logError: jest.fn() },
configService: {
getConfig: () => ({
ENVIRONMENT: 'production',
LANGUAGE_PREFERENCE_COOKIE_NAME: 'yum',
}),
config: {
ENVIRONMENT: 'production',
LANGUAGE_PREFERENCE_COOKIE_NAME: 'yum',
},
messages,
});

View File

@@ -86,24 +86,28 @@ exports[`<ProfilePage /> Renders correctly in various states viewing other profi
<div
className="d-md-none"
>
<h1
className="h2 mb-0 font-weight-bold"
<span
data-hj-suppress={true}
>
verified
</h1>
<p
className="mb-0"
>
<span>
Member since
<h1
className="h2 mb-0 font-weight-bold"
>
verified
</h1>
<p
className="mb-0"
>
<span>
2017
Member since
<span>
2017
</span>
</span>
</span>
</p>
<hr
className="d-none d-md-block"
/>
</p>
<hr
className="d-none d-md-block"
/>
</span>
</div>
<div
className="d-none d-md-block float-right"
@@ -119,24 +123,28 @@ exports[`<ProfilePage /> Renders correctly in various states viewing other profi
<div
className="d-none d-md-block mb-4"
>
<h1
className="h2 mb-0 font-weight-bold"
<span
data-hj-suppress={true}
>
verified
</h1>
<p
className="mb-0"
>
<span>
Member since
<h1
className="h2 mb-0 font-weight-bold"
>
verified
</h1>
<p
className="mb-0"
>
<span>
2017
Member since
<span>
2017
</span>
</span>
</span>
</p>
<hr
className="d-none d-md-block"
/>
</p>
<hr
className="d-none d-md-block"
/>
</span>
</div>
<div
className="d-md-none mb-4"
@@ -277,6 +285,7 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
<img
alt="profile avatar"
className="w-100 h-100 d-block rounded-circle overflow-hidden"
data-hj-suppress={true}
src="http://localhost:18000/media/profile-images/d2a9bdc2ba165dcefc73265c54bf9a20_500.jpg?v=1552495012"
style={
Object {
@@ -307,24 +316,28 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
<div
className="d-md-none"
>
<h1
className="h2 mb-0 font-weight-bold"
<span
data-hj-suppress={true}
>
staff
</h1>
<p
className="mb-0"
>
<span>
Member since
<h1
className="h2 mb-0 font-weight-bold"
>
staff
</h1>
<p
className="mb-0"
>
<span>
2017
Member since
<span>
2017
</span>
</span>
</span>
</p>
<hr
className="d-none d-md-block"
/>
</p>
<hr
className="d-none d-md-block"
/>
</span>
</div>
<div
className="d-none d-md-block float-right"
@@ -359,24 +372,28 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
<div
className="d-none d-md-block mb-4"
>
<h1
className="h2 mb-0 font-weight-bold"
<span
data-hj-suppress={true}
>
staff
</h1>
<p
className="mb-0"
>
<span>
Member since
<h1
className="h2 mb-0 font-weight-bold"
>
staff
</h1>
<p
className="mb-0"
>
<span>
2017
Member since
<span>
2017
</span>
</span>
</span>
</p>
<hr
className="d-none d-md-block"
/>
</p>
<hr
className="d-none d-md-block"
/>
</span>
</div>
<div
className="d-md-none mb-4"
@@ -485,6 +502,7 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
</div>
<p
className="h5"
data-hj-suppress={true}
>
Lemon Seltzer
</p>
@@ -580,6 +598,7 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
</div>
<p
className="h5"
data-hj-suppress={true}
>
Montenegro
</p>
@@ -670,6 +689,7 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
</div>
<p
className="h5"
data-hj-suppress={true}
>
Yoruba
</p>
@@ -760,6 +780,7 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
</div>
<p
className="h5"
data-hj-suppress={true}
>
Elementary/primary school
</p>
@@ -1029,6 +1050,7 @@ exports[`<ProfilePage /> Renders correctly in various states viewing own profile
</div>
<p
className="lead"
data-hj-suppress={true}
>
This is my bio
</p>
@@ -1278,6 +1300,7 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
<img
alt="profile avatar"
className="w-100 h-100 d-block rounded-circle overflow-hidden"
data-hj-suppress={true}
src="http://localhost:18000/media/profile-images/d2a9bdc2ba165dcefc73265c54bf9a20_500.jpg?v=1552495012"
style={
Object {
@@ -1308,24 +1331,28 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
<div
className="d-md-none"
>
<h1
className="h2 mb-0 font-weight-bold"
<span
data-hj-suppress={true}
>
staff
</h1>
<p
className="mb-0"
>
<span>
Member since
<h1
className="h2 mb-0 font-weight-bold"
>
staff
</h1>
<p
className="mb-0"
>
<span>
2017
Member since
<span>
2017
</span>
</span>
</span>
</p>
<hr
className="d-none d-md-block"
/>
</p>
<hr
className="d-none d-md-block"
/>
</span>
</div>
<div
className="d-none d-md-block float-right"
@@ -1360,24 +1387,28 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
<div
className="d-none d-md-block mb-4"
>
<h1
className="h2 mb-0 font-weight-bold"
<span
data-hj-suppress={true}
>
staff
</h1>
<p
className="mb-0"
>
<span>
Member since
<h1
className="h2 mb-0 font-weight-bold"
>
staff
</h1>
<p
className="mb-0"
>
<span>
2017
Member since
<span>
2017
</span>
</span>
</span>
</p>
<hr
className="d-none d-md-block"
/>
</p>
<hr
className="d-none d-md-block"
/>
</span>
</div>
<div
className="d-md-none mb-4"
@@ -1486,6 +1517,7 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
</div>
<p
className="h5"
data-hj-suppress={true}
>
Lemon Seltzer
</p>
@@ -1581,6 +1613,7 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
</div>
<p
className="h5"
data-hj-suppress={true}
>
Montenegro
</p>
@@ -1671,6 +1704,7 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
</div>
<p
className="h5"
data-hj-suppress={true}
>
Yoruba
</p>
@@ -1761,6 +1795,7 @@ exports[`<ProfilePage /> Renders correctly in various states while saving an edi
</div>
<p
className="h5"
data-hj-suppress={true}
>
Elementary/primary school
</p>

View File

@@ -1,4 +1,4 @@
import { history } from '@edx/frontend-platform/init';
import { history } from '@edx/frontend-platform';
import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
import pick from 'lodash.pick';
import { all, call, delay, put, select, takeEvery } from 'redux-saga/effects';

View File

@@ -1,7 +1,6 @@
import { ensureConfig, getConfig } from '@edx/frontend-platform/config';
import { logError } from '@edx/frontend-platform/logging';
import { ensureConfig, getConfig } from '@edx/frontend-platform';
import { getAuthenticatedHttpClient as getHttpClient } from '@edx/frontend-platform/auth';
import { logError } from '@edx/frontend-platform/logging';
import { camelCaseObject, convertKeyNames, snakeCaseObject } from '../utils';
ensureConfig(['LMS_BASE_URL'], 'Profile API service');

View File

@@ -91,7 +91,7 @@ class Bio extends React.Component {
showVisibility={visibilityBio !== null}
visibility={visibilityBio}
/>
<p className="lead">{bio}</p>
<p data-hj-suppress className="lead">{bio}</p>
</React.Fragment>
),
empty: (
@@ -109,7 +109,7 @@ class Bio extends React.Component {
static: (
<React.Fragment>
<EditableItemHeader content={intl.formatMessage(messages['profile.bio.about.me'])} />
<p className="lead">{bio}</p>
<p data-hj-suppress className="lead">{bio}</p>
</React.Fragment>
),
}}

View File

@@ -76,6 +76,7 @@ class Country extends React.Component {
{intl.formatMessage(messages['profile.country.label'])}
</label>
<select
data-hj-suppress
className="form-control"
type="select"
id={formId}
@@ -108,7 +109,7 @@ class Country extends React.Component {
showVisibility={visibilityCountry !== null}
visibility={visibilityCountry}
/>
<p className="h5">{countryMessages[country]}</p>
<p data-hj-suppress className="h5">{countryMessages[country]}</p>
</React.Fragment>
),
empty: (
@@ -126,7 +127,7 @@ class Country extends React.Component {
<EditableItemHeader
content={intl.formatMessage(messages['profile.country.label'])}
/>
<p className="h5">{countryMessages[country]}</p>
<p data-hj-suppress className="h5">{countryMessages[country]}</p>
</React.Fragment>
),
}}

View File

@@ -72,6 +72,7 @@ class Education extends React.Component {
{intl.formatMessage(messages['profile.education.education'])}
</label>
<select
data-hj-suppress
className="form-control"
id={formId}
name={formId}
@@ -109,7 +110,7 @@ class Education extends React.Component {
showVisibility={visibilityLevelOfEducation !== null}
visibility={visibilityLevelOfEducation}
/>
<p className="h5">
<p data-hj-suppress className="h5">
{intl.formatMessage(get(
messages,
`profile.education.levels.${levelOfEducation}`,
@@ -133,7 +134,7 @@ class Education extends React.Component {
static: (
<React.Fragment>
<EditableItemHeader content={intl.formatMessage(messages['profile.education.education'])} />
<p className="h5">
<p data-hj-suppress className="h5">
{intl.formatMessage(get(
messages,
`profile.education.levels.${levelOfEducation}`,

View File

@@ -68,7 +68,7 @@ class Name extends React.Component {
Once we're super sure we don't want it back, you could delete the name props and
such to fully get rid of it.
*/}
<p className="h5">{name}</p>
<p data-hj-suppress className="h5">{name}</p>
<small className="form-text text-muted" id={`${formId}-help-text`}>
{intl.formatMessage(messages['profile.name.details'])}
</small>
@@ -92,7 +92,7 @@ class Name extends React.Component {
showVisibility={visibilityName !== null}
visibility={visibilityName}
/>
<p className="h5">{name}</p>
<p data-hj-suppress className="h5">{name}</p>
<small className="form-text text-muted">
{intl.formatMessage(messages['profile.name.details'])}
</small>
@@ -112,7 +112,7 @@ class Name extends React.Component {
static: (
<React.Fragment>
<EditableItemHeader content={intl.formatMessage(messages['profile.name.full.name'])} />
<p className="h5">{name}</p>
<p data-hj-suppress className="h5">{name}</p>
</React.Fragment>
),
}}

View File

@@ -86,6 +86,7 @@ class PreferredLanguage extends React.Component {
{intl.formatMessage(messages['profile.preferredlanguage.label'])}
</label>
<select
data-hj-suppress
id={formId}
name={formId}
className="form-control"
@@ -117,7 +118,7 @@ class PreferredLanguage extends React.Component {
showVisibility={visibilityLanguageProficiencies !== null}
visibility={visibilityLanguageProficiencies}
/>
<p className="h5">{languageMessages[value]}</p>
<p data-hj-suppress className="h5">{languageMessages[value]}</p>
</React.Fragment>
),
empty: (
@@ -135,7 +136,7 @@ class PreferredLanguage extends React.Component {
<EditableItemHeader
content={intl.formatMessage(messages['profile.preferredlanguage.label'])}
/>
<p className="h5">{languageMessages[value]}</p>
<p data-hj-suppress className="h5">{languageMessages[value]}</p>
</React.Fragment>
),
}}

View File

@@ -109,6 +109,7 @@ class ProfileAvatar extends React.Component {
<DefaultAvatar className="text-muted" role="img" aria-hidden focusable="false" viewBox="0 0 24 24" />
) : (
<img
data-hj-suppress
className="w-100 h-100 d-block rounded-circle overflow-hidden"
style={{ objectFit: 'cover' }}
alt={intl.formatMessage(messages['profile.image.alt.attribute'])}