LEARNER-1857
This story constitutes a large change to the UX of the learner profile.
Some specific changes include adding a flexible learner profile card, limiting the bio entry to only 300 characters and assuring that the page is responsive.
Input forms that need validation will have AJAX requests
performed to get validation decisions live.
All but a few important and common form fields perform
generic validation; these will need a back-end handler
in the future in order to have them validated through AJAX requests.
Information is conveyed on focus and blur for both
errors and successes.
We have recently discovered that for any SSO Provider configured to skip
the registration form, we were auto checking the terms of service box,
which is a legal faux pas. Since IBM is planning to launch imminently and
is depending on this feature, we need to remedy this situation for enterprises
whose SSO Provider is configured to skip registration.
This PR hides all of the registration fields except TOS for this scenario
and disables the autoSubmit functionality that typically happens when skipping
registration.
When a user comes in through an sso provider and arrives at the login
or registration page, there is a warning message that comes up to indicate
that the user has to take an action to sign in and register and thus
link their sso account to their edx account. However, it is confusing,
particularly for the enterpise context. This diff disables these messages
from being rendered if these pages are being shown in an enterprise context.
The new design for the program detail page introduced a sidebar which includes a program-specific listing of credentials. This is an improvement over the old list of credentials found on the program list page and is meant to replace it. The new detail page is stable, so the credential listing on the program list page can be removed.
LEARNER-492
Learners should be able to enroll in future runs of courses in which they have an expired enrollment. Previously, the course card model populated itself by selecting the first course run in which the user was enrolled. When the user tried to enroll in another run, nothing would happen because they were already enrolled in the run the page was trying to enroll them in.
Instead of blindly choosing the first run in which the user is enrolled, we now fall through to the same behavior we use for courses in which the user is not enrolled when the user has expired enrollments.
LEARNER-933