UNCLASSIFIED

Commit 46d4f1d0 authored by Ben Wynn's avatar Ben Wynn
Browse files

Merge branch 'develop' into 'staging'

april 7th punchlist, and working on fix for links to have trailing slashes

See merge request !19
parents d87dbd4a cfbcdb0a
Pipeline #212970 passed with stages
in 6 minutes and 37 seconds
...@@ -45,7 +45,7 @@ module.exports = { ...@@ -45,7 +45,7 @@ module.exports = {
icon: `src/images/favicon@2x.png`, // This path is relative to the root of the site. icon: `src/images/favicon@2x.png`, // This path is relative to the root of the site.
}, },
}, },
`gatsby-plugin-gatsby-cloud`, `gatsby-plugin-force-trailing-slashes`,
// this (optional) plugin enables Progressive Web App + Offline functionality // this (optional) plugin enables Progressive Web App + Offline functionality
// To learn more, visit: https://gatsby.dev/offline // To learn more, visit: https://gatsby.dev/offline
// `gatsby-plugin-offline`, // `gatsby-plugin-offline`,
......
{ {
"name": "afeit-site", "name": "afdigital-site",
"version": "0.1.0", "version": "0.1.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
...@@ -8555,6 +8555,24 @@ ...@@ -8555,6 +8555,24 @@
"micromatch": "^4.0.2" "micromatch": "^4.0.2"
} }
}, },
"gatsby-plugin-force-trailing-slashes": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/gatsby-plugin-force-trailing-slashes/-/gatsby-plugin-force-trailing-slashes-1.0.5.tgz",
"integrity": "sha512-RxRdW++bvSHv4Mho999W0LLNdiQX1OMOvY0v1TlafcaYqJ93fYV/Jp3DDD6PKS0PAKNS8Q8DRsD67cipFmZCFA==",
"requires": {
"@babel/runtime": "7.12.5"
},
"dependencies": {
"@babel/runtime": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
}
}
},
"gatsby-plugin-gatsby-cloud": { "gatsby-plugin-gatsby-cloud": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/gatsby-plugin-gatsby-cloud/-/gatsby-plugin-gatsby-cloud-1.0.2.tgz", "resolved": "https://registry.npmjs.org/gatsby-plugin-gatsby-cloud/-/gatsby-plugin-gatsby-cloud-1.0.2.tgz",
......
...@@ -8,12 +8,15 @@ import { ...@@ -8,12 +8,15 @@ import {
TextInput, TextInput,
TextArea, TextArea,
Spinner, Spinner,
Button,
} from 'grommet'; } from 'grommet';
import { Close } from 'grommet-icons';
import { PrimaryButton } from './core'; import { PrimaryButton } from './core';
const korolevFont = 'korolev, Helvetica Neue, Helvetica, Arial, sans-serif'; const korolevFont = 'korolev, Helvetica Neue, Helvetica, Arial, sans-serif';
const ContactForm = () => { const ContactForm = ({ onClose }) => {
const [submitting, setSubmitting] = useState(); const [submitting, setSubmitting] = useState();
const [success, setSuccess] = useState(); const [success, setSuccess] = useState();
...@@ -35,7 +38,13 @@ const ContactForm = () => { ...@@ -35,7 +38,13 @@ const ContactForm = () => {
return ( return (
<Box> <Box>
<Box pad="medium" background="black"> <Box
pad="medium"
background="black"
direction="row"
justify="between"
align="center"
>
<Heading <Heading
level={3} level={3}
margin="0" margin="0"
...@@ -45,6 +54,7 @@ const ContactForm = () => { ...@@ -45,6 +54,7 @@ const ContactForm = () => {
> >
REQUEST A CONSULTATION REQUEST A CONSULTATION
</Heading> </Heading>
{onClose && <Button icon={<Close />} onClick={onClose}></Button>}
</Box> </Box>
<Box <Box
pad="medium" pad="medium"
...@@ -130,11 +140,12 @@ const ContactForm = () => { ...@@ -130,11 +140,12 @@ const ContactForm = () => {
style={{ height: '100px' }} style={{ height: '100px' }}
/> />
</FormField> </FormField>
<Box pad={{ top: 'medium' }}> <Box pad={{ top: 'medium' }} align="center" justify="center">
<PrimaryButton <PrimaryButton
pad={{ vertical: 'large' }} pad={{ vertical: 'large' }}
type="submit" type="submit"
label="Submit" label="Submit"
style={{ width: onClose ? '250px' : '100%' }}
/> />
</Box> </Box>
</Form> </Form>
...@@ -187,6 +198,7 @@ const ContactForm = () => { ...@@ -187,6 +198,7 @@ const ContactForm = () => {
<br /> <br />
reach out soon. reach out soon.
</Text> </Text>
{onClose && <Button onClick={onClose} label="Close" />}
</Box> </Box>
)} )}
</Box> </Box>
......
...@@ -30,9 +30,9 @@ const DownHex = () => ( ...@@ -30,9 +30,9 @@ const DownHex = () => (
}} }}
/> />
<FormDown <FormDown
color="accent-1" color="accent-2"
size="30" size="30"
style={{ position: 'relative', top: '7px' }} style={{ position: 'relative', top: '12px' }}
/> />
</Box> </Box>
</Column> </Column>
......
...@@ -27,7 +27,7 @@ const FeedbackFooter = () => { ...@@ -27,7 +27,7 @@ const FeedbackFooter = () => {
gap="medium" gap="medium"
> >
<Box justify="center" align={isMobile ? 'center' : 'start'}> <Box justify="center" align={isMobile ? 'center' : 'start'}>
<Text weight="bold">We could use your feedback!</Text> <Text weight="bold">We could use your help!</Text>
<Text size="small"> <Text size="small">
Send us feedback on this website or, better, Send us feedback on this website or, better,
<br /> <br />
...@@ -38,7 +38,7 @@ const FeedbackFooter = () => { ...@@ -38,7 +38,7 @@ const FeedbackFooter = () => {
<Box justify="center" align="center"> <Box justify="center" align="center">
<Box width="200px"> <Box width="200px">
<SecondaryButton <SecondaryButton
label="SEND FEEDBACK" label="CUSTOMER FEEDBACK"
onClick={handleToggleOpen} onClick={handleToggleOpen}
/> />
</Box> </Box>
......
...@@ -13,13 +13,13 @@ import { ...@@ -13,13 +13,13 @@ import {
ThemeContext, ThemeContext,
} from 'grommet'; } from 'grommet';
import { Close } from 'grommet-icons'; import { Close } from 'grommet-icons';
import { PrimaryButton } from './core'; import { PrimaryButton, SecondaryButton } from './core';
const korolevFont = 'korolev, Helvetica Neue, Helvetica, Arial, sans-serif'; const korolevFont = 'korolev, Helvetica Neue, Helvetica, Arial, sans-serif';
const FeedbackForm = ({ onClose }) => { const FeedbackForm = ({ onClose }) => {
const [submitting, setSubmitting] = useState(); const [submitting, setSubmitting] = useState();
const [success, setSuccess] = useState(); const [success, setSuccess] = useState(true);
const handleSubmit = (event) => { const handleSubmit = (event) => {
const data = new FormData(event.target); const data = new FormData(event.target);
...@@ -90,7 +90,7 @@ const FeedbackForm = ({ onClose }) => { ...@@ -90,7 +90,7 @@ const FeedbackForm = ({ onClose }) => {
value="volunteer" value="volunteer"
label={ label={
<Box> <Box>
<Text weight="bold"> <Text weight="bold" size="small">
Join our Customer Advisory Panel Join our Customer Advisory Panel
</Text> </Text>
<Text size="small"> <Text size="small">
...@@ -177,16 +177,16 @@ const FeedbackForm = ({ onClose }) => { ...@@ -177,16 +177,16 @@ const FeedbackForm = ({ onClose }) => {
</Box> </Box>
)} )}
{success && ( {success && (
<Box pad="large" align="center" justify="center"> <Box pad="large" align="center" justify="center" gap="small">
<Heading <Heading
level={3} level={3}
style={{ fontFamily: korolevFont }} style={{ fontFamily: korolevFont }}
margin={{ top: '0', bottom: 'small' }} margin={{ vertical: '0' }}
> >
FEEDBACK SENT FEEDBACK SENT
</Heading> </Heading>
<Text textAlign="center">Thanks for sharing with us.</Text> <Text textAlign="center">Thanks for sharing with us.</Text>
<Button onClick={onClose}>Close</Button> <SecondaryButton onClick={onClose} label="Close" />
</Box> </Box>
)} )}
</Box> </Box>
......
...@@ -21,7 +21,7 @@ const StyledHeader = styled(GHeader)` ...@@ -21,7 +21,7 @@ const StyledHeader = styled(GHeader)`
right: 0; right: 0;
background: ${(props) => background: ${(props) =>
props.transparent && !props.sticky props.transparent && !props.sticky
? 'linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0))' ? 'linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))'
: 'black'}; : 'black'};
display: flex; display: flex;
height: ${(props) => height: ${(props) =>
......
...@@ -43,7 +43,7 @@ const Nav = ({ sticky }) => { ...@@ -43,7 +43,7 @@ const Nav = ({ sticky }) => {
> >
<Box justify="center"> <Box justify="center">
<Link <Link
to="/about-us" to="/about-us/"
size="xsmall" size="xsmall"
color={sticky ? 'light-1' : 'white'} color={sticky ? 'light-1' : 'white'}
style={{ textTransform: 'uppercase' }} style={{ textTransform: 'uppercase' }}
...@@ -53,7 +53,7 @@ const Nav = ({ sticky }) => { ...@@ -53,7 +53,7 @@ const Nav = ({ sticky }) => {
</Box> </Box>
<Box justify="center"> <Box justify="center">
<Link <Link
to="/other-programs" to="/other-programs/"
size="xsmall" size="xsmall"
color={sticky ? 'light-1' : 'white'} color={sticky ? 'light-1' : 'white'}
style={{ textTransform: 'uppercase' }} style={{ textTransform: 'uppercase' }}
...@@ -110,7 +110,7 @@ const Nav = ({ sticky }) => { ...@@ -110,7 +110,7 @@ const Nav = ({ sticky }) => {
<Box justify="center" margin={{ left: 'medium' }}> <Box justify="center" margin={{ left: 'medium' }}>
<Link <Link
to="/solutions" to="/solutions/"
size="small" size="small"
weight="bold" weight="bold"
color="white" color="white"
......
...@@ -14,17 +14,12 @@ const themeExtend = { ...@@ -14,17 +14,12 @@ const themeExtend = {
* Application specific button component, using Grommet Button * Application specific button component, using Grommet Button
* @see https://v2.grommet.io/button * @see https://v2.grommet.io/button
* @param {object} props - React props * @param {object} props - React props
* @param {string} props.label - Text for button
* @returns {Component} * @returns {Component}
*/ */
const PrimaryButton = ({ label, ...rest }) => ( const PrimaryButton = ({ label, ...rest }) => (
<ThemeContext.Extend value={themeExtend}> <ThemeContext.Extend value={themeExtend}>
<Button <Button primary color="accent-1" size="small" {...rest}>
primary
color="accent-1"
style={{ textTransform: 'uppercase' }}
size="small"
{...rest}
>
<Box direction="row" align="center" justify="between" pad="small"> <Box direction="row" align="center" justify="between" pad="small">
<Box>{/* Nothing */}</Box> <Box>{/* Nothing */}</Box>
<Text size="small" weight="bold"> <Text size="small" weight="bold">
......
import React from 'react'; import React from 'react';
import { Button } from 'grommet'; import { Button, Box, Text, ThemeContext } from 'grommet';
import { FormNext } from 'grommet-icons'; import { FormNext } from 'grommet-icons';
const themeExtend = {
text: {
font: {
family: 'korolev, Helvetica Neue, Helvetica, Arial, sans-serif',
},
extend: () => ({ textTransform: 'uppercase', letterSpacing: '0.05em' }),
},
};
/** /**
* Application specific button component, using Grommet Button * Application specific button component, using Grommet Button
* @see https://v2.grommet.io/button * @see https://v2.grommet.io/button
* @param {object} props - React props * @param {object} props - React props
* @param {string} props.label - Text for button
* @returns {Component} * @returns {Component}
*/ */
const SecondaryButton = ({ ...rest }) => ( const SecondaryButton = ({ label, ...rest }) => (
<Button <ThemeContext.Extend value={themeExtend}>
secondary <Button secondary size="small" {...rest}>
color="dark-1" <Box
style={{ textTransform: 'uppercase' }} direction="row"
icon={<FormNext color="accent-1" />} align="center"
reverse justify="between"
size="small" border={{ color: 'dark-1', size: 'small' }}
{...rest} pad={{ vertical: 'xsmall' }}
/> >
<Box>{/* Nothing */}</Box>
<Text size="small" weight="bold" color="black">
{label}
</Text>{' '}
<FormNext color="accent-1" />
</Box>
</Button>
</ThemeContext.Extend>
); );
export default SecondaryButton; export default SecondaryButton;
...@@ -104,7 +104,7 @@ const Slide = ({ title, subtitle, core, cta, slug, logo }) => { ...@@ -104,7 +104,7 @@ const Slide = ({ title, subtitle, core, cta, slug, logo }) => {
</Box> </Box>
{cta && ( {cta && (
<Box direction="row" justify="start" pad={{ vertical: 'medium' }}> <Box direction="row" justify="start" pad={{ vertical: 'medium' }}>
<PrimaryButton label={cta} to={slug} style={{ width: '300px' }} /> <PrimaryButton label={cta} href={slug} style={{ width: '300px' }} />
</Box> </Box>
)} )}
</Box> </Box>
......
...@@ -5,15 +5,12 @@ import { Container, Column } from '../layout'; ...@@ -5,15 +5,12 @@ import { Container, Column } from '../layout';
import DownHex from '../DownHex'; import DownHex from '../DownHex';
import theme from '../../styles/theme'; import theme from '../../styles/theme';
const addDivider = (arr, divider) =>
[].concat(...arr.map((n) => [n, divider])).slice(0, -1);
const ServiceHero = ({ title, subtitle, pretitle, categories, imageFluid }) => { const ServiceHero = ({ title, subtitle, pretitle, categories, imageFluid }) => {
const size = useContext(ResponsiveContext); const size = useContext(ResponsiveContext);
const isMobile = ['xsmall', 'small'].includes(size); const isMobile = ['xsmall', 'small'].includes(size);
const catWithDivider = categories && addDivider(categories, '|'); const catWithDivider = categories && categories.join(' | '); // addDivider(categories, '|');
return ( return (
<Container <Container
...@@ -36,7 +33,7 @@ const ServiceHero = ({ title, subtitle, pretitle, categories, imageFluid }) => { ...@@ -36,7 +33,7 @@ const ServiceHero = ({ title, subtitle, pretitle, categories, imageFluid }) => {
)} )}
<Column <Column
direction="row" direction="row"
pad={{ vertical: 'large' }} pad={{ bottom: 'large' }}
style={{ position: 'relative' }} style={{ position: 'relative' }}
> >
<Box pad="large"> <Box pad="large">
...@@ -50,11 +47,15 @@ const ServiceHero = ({ title, subtitle, pretitle, categories, imageFluid }) => { ...@@ -50,11 +47,15 @@ const ServiceHero = ({ title, subtitle, pretitle, categories, imageFluid }) => {
{subtitle} {subtitle}
</Text> </Text>
)} )}
{catWithDivider?.map((t, i) => ( {catWithDivider && (
<Text size="small" color="accent-2" key={`${t}-${i}`}> <Text
{t} size="small"
color="accent-2"
style={{ whiteSpace: 'pre-wrap' }}
>
{catWithDivider}
</Text> </Text>
))} )}
</Box> </Box>
</Box> </Box>
</Column> </Column>
......
...@@ -97,21 +97,17 @@ const MegaMenu = ({ sticky }) => { ...@@ -97,21 +97,17 @@ const MegaMenu = ({ sticky }) => {
title="Global Connectivity / WAN" title="Global Connectivity / WAN"
category="Global Connectivity / WAN" category="Global Connectivity / WAN"
/> />
</Box>
<Box basis="1/2">
<MenuGroup <MenuGroup
title="Local Connectivity / BAN" title="Local Connectivity / BAN"
category="Local Connectivity / BAN" category="Local Connectivity / BAN"
/> />
</Box>
<Box basis="1/2">
<MenuGroup title="Cloud Access" category="Cloud Access" /> <MenuGroup title="Cloud Access" category="Cloud Access" />
<MenuGroup <MenuGroup
title="Reference Architectures" title="Reference Architectures"
category="Reference Architectures" category="Reference Architectures"
/> />
<MenuGroup
title="Virtual Private Connections"
category="Virtual Private Connections"
/>
</Box> </Box>
</Box> </Box>
</Box> </Box>
......
...@@ -79,21 +79,17 @@ const OfferAcc = () => { ...@@ -79,21 +79,17 @@ const OfferAcc = () => {
title="Global Connectivity / WAN" title="Global Connectivity / WAN"
category="Global Connectivity / WAN" category="Global Connectivity / WAN"
/> />
</Box>
<Box basis="1/2" gap="medium">
<MenuGroup <MenuGroup
title="Local Connectivity / BAN" title="Local Connectivity / BAN"
category="Local Connectivity / BAN" category="Local Connectivity / BAN"
/> />
</Box>
<Box basis="1/2" gap="medium">
<MenuGroup title="Cloud Access" category="Cloud Access" /> <MenuGroup title="Cloud Access" category="Cloud Access" />
<MenuGroup <MenuGroup
title="Reference Architectures" title="Reference Architectures"
category="Reference Architectures" category="Reference Architectures"
/> />
<MenuGroup
title="Virtual Private Connections"
category="Virtual Private Connections"
/>
</Box> </Box>
</Box> </Box>
</AccordionPanel> </AccordionPanel>
......
...@@ -104,7 +104,7 @@ const Solutions = () => { ...@@ -104,7 +104,7 @@ const Solutions = () => {
<SolutionGroup node={s2} isMobile={isMobile} /> <SolutionGroup node={s2} isMobile={isMobile} />
</Box> </Box>
<Box width="300px" margin="large"> <Box width="300px" margin="large">
<PrimaryButton label="SEE MORE SOLUTIONS" /> <PrimaryButton label="SEE MORE SOLUTIONS" href="/solutions" />
</Box> </Box>
</Box> </Box>
); );
......
...@@ -3,46 +3,60 @@ import { Box, Text, ResponsiveContext } from 'grommet'; ...@@ -3,46 +3,60 @@ import { Box, Text, ResponsiveContext } from 'grommet';
import { DtHex } from '../../icons'; import { DtHex } from '../../icons';
const Step = ({ number, isMobile, children }) => ( const Step = ({ number, isMobile, children }) => (
<Box <Box style={{ position: 'relative' }}>
basis="1/4" {/* TODO: Add this line
pad={{ horizontal: 'small' }}
align="center"
direction={isMobile ? 'row' : 'column'}
gap="medium"
>
<Box <Box
height="65px" height="1px"
width="80px" background="dark-1"
flex={{ shrink: 0 }} width="100%"
style={{ position: 'relative' }} style={{ position: 'absolute', top: '32px' }}
/> */}
<Box
basis="1/4"
pad={{ horizontal: 'small' }}
align="center" align="center"
justify="center" direction={isMobile ? 'row' : 'column'}
gap="medium"
> >
<Text size="xlarge" weight="bold" color="accent-2" style={{ zIndex: 2 }}> <Box
{number} height="65px"
</Text> width="80px"
<DtHex flex={{ shrink: 0 }}
color="accent-2" style={{ position: 'relative' }}
size="65" align="center"
style={{ justify="center"
position: 'absolute', >
top: '50%', <Text
zIndex: 0, size="xlarge"
transform: 'translateY(-50%)', weight="bold"
}} color="accent-2"
/> style={{ zIndex: 2 }}
<DtHex >
color="black" {number}
size="59" </Text>
style={{ <DtHex
position: 'absolute', color="accent-2"
top: '50%', size="65"
zIndex: 0, style={{
transform: 'translateY(-50%)', position: 'absolute',
}} top: '50%',
/> zIndex: 0,
transform: 'translateY(-50%)',
}}
/>
<DtHex
color="black"
size="59"
style={{
position: 'absolute',
top: '50%',
zIndex: 0,
transform: 'translateY(-50%)',
}}
/>
</Box>
<Box align="center">{children}</Box>
</Box> </Box>
<Box align="center">{children}</Box>
</Box> </Box>
); );
......
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
name: EITaaS name: EITaaS
index: 1 index: 1
--- ---
### EITaaS ## EITaaS
#### Cloud Compute & Store
**Cloud Compute & Store**
Compute & Store (C&S) provides secure access to cloud computing services, improving responsiveness to warfighter needs with faster access to systems and data for a more reliable, secure, consistent access to systems, data and just in time capacity for storage. Compute & Store (C&S) provides secure access to cloud computing services, improving responsiveness to warfighter needs with faster access to systems and data for a more reliable, secure, consistent access to systems, data and just in time capacity for storage.
**End-User Devices** **End-User Devices**
......
...@@ -6,7 +6,6 @@ categories: ...@@ -6,7 +6,6 @@ categories:
- Local Connectivity / BAN - Local Connectivity / BAN
- Cloud Access - Cloud Access
- Reference Architectures - Reference Architectures
- Virtual Private Connections
image: '../../images/cat-header.png' image: '../../images/cat-header.png'
share: '../../images/share/ogimage-networking_and_connectivity.png' share: '../../images/share/ogimage-networking_and_connectivity.png'
icon: DtNetConn icon: DtNetConn
......
---
slug: '/services/seitaas-remote-connect'
title: 'SEITaaS Remote Connect'
categories:
- Networking & Connectivity
- Virtual Private Connections
levels:
- S-SAR
- S-SCI
- TS-SAR
- TS-SCI
excerpt: 'SEITaaS will enable enterprise capabilities to be provided as a service to users accessing thin client, zero client, or connected self sustained performer LANs.'
share: '../../images/share/ogimage-networking_and_connectivity.png'
updated: April 6
---
SEITaaS will enable enterprise capabilities to be provided as a service to users accessing thin client, zero client, or connected self sustained performer LANs.
SEITaaS/Summit endpoints will be available to meet differing end-user needs. The network will offer thin client or zero client to users for a small form factor to support a network-agnostic solution. Additionally, Summit enterprise services, including MLS applications and cybersecurity services, will be made available to some user-maintained networks that will be designated as performer LANs. These LANs would be connected to and consume services from SEITaaS/Summit until they can be transitioned over to SEITaaS/Summit-managed endpoints.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment