- global: more bottom padding for panels
- app description textarea has no width contraint, constrained heigh
- fix extra padding in panel footers
- larger form columns for app name and description
- remove deprecated environment list
- do not need extra right padding on nested list items
- darker gray for breadcrumbs and subheads
- larger font size for subheads
- updated toggle for environmnets list per-application
- more padding for application row
- raise specific invitation type if invite not found in invitation domain classes
- more terse assignments of defaults in invitation service, smh
- terser margin expression for inline input fields
- sass formatting
- use translation for cancel link
- oxford comma for app team management permission explanation
- do not format environment roles with hyphens for role selection
- generalize some additional methods in the invitation domain base class
- use plain atst.models import path
- remove extra padding from second modal screen
- update modal styles to more closely match designs
- ad `user_name` property to application_role model to fix flash message
It will be enabled when the user checks the "manage environments"
permission. This updates the Jinja and Vue checkbox input components so
that Vue can monitor the inpur state.
Our long email regex for the frontend was stricter in some ways, but it allowed
email addresses with a single-letter TLD ("frank@dod.m"), which the backend
WTForms validator would reject. The two should be equivalent.
Reference:
1939aec691/wtforms/validators.py (validators.py-281)
The environment name will be grayed out until something besides the
default "no access" is selected.
Small changes to the application member subforms:
- filter for "None" as a string
- have nested forms inherit from FlaskForm; each nested form adds its
own validation error flash otherwise if there are validation problems
- domain method for creating a new application member
- ApplicationInvitations domain class
- nested form for adding a new user that holds user data, application
permission sets, and environment roles
- Invitation service can infer invitation type based on role it's given
- new invitation email templates
- add a base domain class
- extract shared model code to mixin
- rename invitation classes
- invitation model relationship to portfolio_role name is now more
generic "role"