From c60bfcedf8ce2087d5d3df0404092d698b6872ba Mon Sep 17 00:00:00 2001 From: John Lyon-Smith Date: Sun, 25 Feb 2018 11:49:47 -0800 Subject: [PATCH] Adding some more controls & other clean-up --- mobile/.expo/packager-info.json | 2 +- website/package-lock.json | 42 +++++ website/package.json | 1 + website/public/favicon-16x16.png | Bin 0 -> 834 bytes website/public/favicon-32x32.png | Bin 0 -> 1912 bytes website/public/favicon-96x96.png | Bin 0 -> 6210 bytes website/public/favicon.ico | Bin 24838 -> 834 bytes website/public/favicon.png | Bin 910 -> 0 bytes website/public/index.html | 12 +- website/src/App.js | 49 ++--- website/src/App.scss | 9 - website/src/Auth/Login.js | 8 +- website/src/Dashboard/Dashboard.js | 31 ---- website/src/Dashboard/ProjectCard.js | 60 ------- website/src/Dashboard/ProjectCard.scss | 55 ------ website/src/Dashboard/ProjectList.js | 32 ---- website/src/Dashboard/ProjectList.scss | 11 -- website/src/Dashboard/index.js | 1 - website/src/Navigation/NavBar.js | 169 ------------------ website/src/Navigation/NavBar.scss | 116 ------------ website/src/Navigation/index.js | 1 - website/src/Validated/ValidatedCheckbox.js | 8 +- website/src/Validated/ValidatedInput.js | 18 +- .../{images => assets}/icons/folder-icon.png | Bin .../icons/folder-open-2.png | Bin .../{images => assets}/icons/open-folder.png | Bin website/src/assets/images/deighton.png | Bin 0 -> 10601 bytes website/src/images/projectPlaceholder.svg | 1 - website/src/index.scss | 12 +- website/src/ui/Button.js | 19 ++ website/src/ui/Button.style.js | 17 ++ website/src/ui/Checkbox.js | 33 ++++ website/src/ui/Checkbox.style.js | 36 ++++ website/src/ui/HolyGrail.js | 54 ++++++ website/src/ui/HolyGrail.style.js | 19 ++ website/src/ui/Icon.js | 0 website/src/ui/Icon.style.js | 0 website/src/ui/Image.js | 0 website/src/ui/Image.style.js | 0 website/src/ui/Input.js | 19 ++ website/src/ui/Input.style.js | 18 ++ website/src/ui/Text.js | 0 website/src/ui/Text.style.js | 0 website/src/ui/index.js | 4 + 44 files changed, 307 insertions(+), 550 deletions(-) create mode 100644 website/public/favicon-16x16.png create mode 100644 website/public/favicon-32x32.png create mode 100644 website/public/favicon-96x96.png delete mode 100644 website/public/favicon.png delete mode 100644 website/src/App.scss delete mode 100644 website/src/Dashboard/Dashboard.js delete mode 100644 website/src/Dashboard/ProjectCard.js delete mode 100644 website/src/Dashboard/ProjectCard.scss delete mode 100644 website/src/Dashboard/ProjectList.js delete mode 100644 website/src/Dashboard/ProjectList.scss delete mode 100644 website/src/Dashboard/index.js delete mode 100644 website/src/Navigation/NavBar.js delete mode 100644 website/src/Navigation/NavBar.scss delete mode 100644 website/src/Navigation/index.js rename website/src/{images => assets}/icons/folder-icon.png (100%) rename website/src/{images => assets}/icons/folder-open-2.png (100%) rename website/src/{images => assets}/icons/open-folder.png (100%) create mode 100644 website/src/assets/images/deighton.png delete mode 100644 website/src/images/projectPlaceholder.svg create mode 100644 website/src/ui/Button.js create mode 100644 website/src/ui/Button.style.js create mode 100644 website/src/ui/Checkbox.js create mode 100644 website/src/ui/Checkbox.style.js create mode 100644 website/src/ui/HolyGrail.js create mode 100644 website/src/ui/HolyGrail.style.js create mode 100644 website/src/ui/Icon.js create mode 100644 website/src/ui/Icon.style.js create mode 100644 website/src/ui/Image.js create mode 100644 website/src/ui/Image.style.js create mode 100644 website/src/ui/Input.js create mode 100644 website/src/ui/Input.style.js create mode 100644 website/src/ui/Text.js create mode 100644 website/src/ui/Text.style.js create mode 100644 website/src/ui/index.js diff --git a/mobile/.expo/packager-info.json b/mobile/.expo/packager-info.json index b3be66d..76e10d9 100644 --- a/mobile/.expo/packager-info.json +++ b/mobile/.expo/packager-info.json @@ -1,5 +1,5 @@ { "expoServerPort": 19000, "packagerPort": 19001, - "packagerPid": 7732 + "packagerPid": 44581 } \ No newline at end of file diff --git a/website/package-lock.json b/website/package-lock.json index a850c43..404d4ca 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -1759,6 +1759,11 @@ "hoek": "4.2.0" } }, + "bowser": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.2.tgz", + "integrity": "sha512-fuiANC1Bqbqa/S4gmvfCt7bGBmNELMsGZj4Wg3PrP6esP66Ttoj1JSlzFlXtHyduMv07kDNmDsX6VsMWT/MLGg==" + }, "boxen": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz", @@ -2789,6 +2794,14 @@ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, + "css-in-js-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.0.tgz", + "integrity": "sha512-yuWmPMD9FLi50Xf3k8W8oO3WM1eVnxEGCldCLyfusQ+CgivFk0s23yst4ooW6tfxMuSa03S6uUEga9UhX6GRrA==", + "requires": { + "hyphenate-style-name": "1.0.2" + } + }, "css-loader": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.1.tgz", @@ -4034,6 +4047,11 @@ "merge": "1.2.0" } }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, "exit-hook": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", @@ -6215,6 +6233,11 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "hyphenate-style-name": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", + "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" + }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", @@ -6321,6 +6344,15 @@ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "dev": true }, + "inline-style-prefixer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-4.0.0.tgz", + "integrity": "sha1-MKA98bNGumsfuKgSvDydq+9IAi0=", + "requires": { + "bowser": "1.9.2", + "css-in-js-utils": "2.0.0" + } + }, "inquirer": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", @@ -10404,6 +10436,16 @@ "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", "dev": true }, + "radium": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/radium/-/radium-0.22.0.tgz", + "integrity": "sha512-9zOYegr4gXfgDiVcf02Qyj8zzupmYSTtIhxvSU/42Ls1Q/+r1cisuGUUJ5m06Ha2cc/f3e5vMM80rj2l34Slew==", + "requires": { + "exenv": "1.2.2", + "inline-style-prefixer": "4.0.0", + "prop-types": "15.6.0" + } + }, "raf": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", diff --git a/website/package.json b/website/package.json index 16f3ba6..280a3f6 100644 --- a/website/package.json +++ b/website/package.json @@ -9,6 +9,7 @@ "moment": "^2.18.1", "papaparse": "^4.3.3", "prop-types": "^15.5.10", + "radium": "^0.22.0", "rc-datepicker": "^5.0.7", "react": "^16.2.0", "react-data-grid": "^2.0.51", diff --git a/website/public/favicon-16x16.png b/website/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a84b64e9fa3266cb57f61a39a943bcbc6fbde6 GIT binary patch literal 834 zcmV-I1HJr-P)MQrmGQSz63EJ|U=N7iiFY-0?G#W{9%-uHQ*$9+HBPVRc&?)!P}kL$kf z`vFL*TYJu-`a;+F<4=YSA6OBmpMN)(JAXm2S<}*OHkD7o-4AIu%k(k4BA+qP;$ebzyg#)VWbSYFL0=WZ-yyqYEJiPdxorc7GrZKZxeq zD$84XYF$6k!QPsnC?nu|PJe1oa=xg&_->~W;zmFz9yTQLVBilnl~2XS>wR$jIHYpK zGfIm!a|$t|z`?df)9~`^C?w_9!C1zYV0blcy%(kHHd7NYk@{_daOunai$CQZxDTap zNJ{xQwP)cC4q~wmwU>H77_G};v~4F*PzaUF*1c}7NJ-+dg;LtfbWWplUnPn~jsPY) zID@3-n^@UQ$h-DevI-`hTV75bN(Plx8YkD!#=!@lt;6I`2(v-zFqd(}IM$=9OYPl{ zzlzXFXem!gIi{-O@i=N)dvLEmjV(9(;5jy6@J(aopw(*5cg+Ti5_F`l#vUfqGEi!BHk9jeo-A3{{II%?2Ov18)7y3&D& z#c6~=e-uUayoeS^zRZ6LueMflrAD-lk0qSP($&vi?5-I2&&{g;0Nk-smc6%xe*gdg M07*qoM6N<$g3nEmm;e9( literal 0 HcmV?d00001 diff --git a/website/public/favicon-32x32.png b/website/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9fd0da02b8a48b9bdc8197da208dbaed833c44 GIT binary patch literal 1912 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 literal 0 HcmV?d00001 diff --git a/website/public/favicon.ico b/website/public/favicon.ico index 5c125de5d897c1ff5692a656485b3216123dcd89..e3a84b64e9fa3266cb57f61a39a943bcbc6fbde6 100644 GIT binary patch literal 834 zcmV-I1HJr-P)MQrmGQSz63EJ|U=N7iiFY-0?G#W{9%-uHQ*$9+HBPVRc&?)!P}kL$kf z`vFL*TYJu-`a;+F<4=YSA6OBmpMN)(JAXm2S<}*OHkD7o-4AIu%k(k4BA+qP;$ebzyg#)VWbSYFL0=WZ-yyqYEJiPdxorc7GrZKZxeq zD$84XYF$6k!QPsnC?nu|PJe1oa=xg&_->~W;zmFz9yTQLVBilnl~2XS>wR$jIHYpK zGfIm!a|$t|z`?df)9~`^C?w_9!C1zYV0blcy%(kHHd7NYk@{_daOunai$CQZxDTap zNJ{xQwP)cC4q~wmwU>H77_G};v~4F*PzaUF*1c}7NJ-+dg;LtfbWWplUnPn~jsPY) zID@3-n^@UQ$h-DevI-`hTV75bN(Plx8YkD!#=!@lt;6I`2(v-zFqd(}IM$=9OYPl{ zzlzXFXem!gIi{-O@i=N)dvLEmjV(9(;5jy6@J(aopw(*5cg+Ti5_F`l#vUfqGEi!BHk9jeo-A3{{II%?2Ov18)7y3&D& z#c6~=e-uUayoeS^zRZ6LueMflrAD-lk0qSP($&vi?5-I2&&{g;0Nk-smc6%xe*gdg M07*qoM6N<$g3nEmm;e9( literal 24838 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 diff --git a/website/public/index.html b/website/public/index.html index 56c026e..08ecbd6 100644 --- a/website/public/index.html +++ b/website/public/index.html @@ -1,20 +1,10 @@ - Transition Management Resources + Deighton AR - -
diff --git a/website/src/App.js b/website/src/App.js index 5a95c1b..38e8620 100644 --- a/website/src/App.js +++ b/website/src/App.js @@ -1,35 +1,38 @@ import React from 'react' -import './App.scss' -import { NavBar } from './Navigation' -import { Home } from './Home' import { Login, Logout, ResetPassword, ForgotPassword, ConfirmEmail, ProtectedRoute } from './Auth' -import { Dashboard } from './Dashboard' +import { Home } from './Home' import { Profile } from './Profile' import { Users } from './Users' -import { Footer } from './Footer' +import { HolyGrail } from './ui' import { BrowserRouter as Router, Route, Switch } from 'react-router-dom' +import logoImage from 'images/logo.png' export class App extends React.Component { render() { return ( - -
- - - - - - - - - - - - {/* No Match Route */} - -
-
-
+ + + + + + + + + + + + + + + + {/* No Match Route */} + + + + +
v1.0.0. Copyright © 2018, Deighton.
+
+
) } } diff --git a/website/src/App.scss b/website/src/App.scss deleted file mode 100644 index 60aec55..0000000 --- a/website/src/App.scss +++ /dev/null @@ -1,9 +0,0 @@ -.App { - text-align: center; -} - -@media screen and (max-width: 768px) { - html, body { - padding-top: 4em; - } -} diff --git a/website/src/Auth/Login.js b/website/src/Auth/Login.js index a5cdc98..9df28ea 100644 --- a/website/src/Auth/Login.js +++ b/website/src/Auth/Login.js @@ -4,9 +4,10 @@ import { Container, Header, Form, Message } from 'semantic-ui-react' import './Login.scss' import { regExpPattern } from 'regexp-pattern' import { api } from '../helpers' -import { Validator, ValidatedInput, ValidatedCheckbox, ValidatedButton } from '../Validated' +import { Validator, ValidatedInput, ValidatedCheckbox } from '../Validated' import { WaitDialog, MessageDialog } from '../Dialog' import { Link } from 'react-router-dom' +import { Button } from '../ui' export class Login extends React.Component { static propTypes = { @@ -106,8 +107,9 @@ export class Login extends React.Component { name='rememberMe' onChange={this.handleChange} validator={this.state.validator} message='Should we keep you logged in on this computer?' className='login-checkbox' /> - + { /* */ } + Please contact support@jamoki.com to request login credentials. diff --git a/website/src/Dashboard/Dashboard.js b/website/src/Dashboard/Dashboard.js deleted file mode 100644 index 98446a7..0000000 --- a/website/src/Dashboard/Dashboard.js +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react' -import { Container } from 'semantic-ui-react' -import { ProjectList } from './ProjectList' -import { api } from '../helpers' - -export class Dashboard extends React.Component { - constructor(props) { - super(props) - this.state = { - projects: [] - } - } - - componentDidMount() { - api.listDashboardProjects().then((list) => { - this.setState({ - projects: list.items - }) - }).catch((error) => { - console.error(error) - }) - } - - render() { - return ( - - - - ) - } -} diff --git a/website/src/Dashboard/ProjectCard.js b/website/src/Dashboard/ProjectCard.js deleted file mode 100644 index 349a294..0000000 --- a/website/src/Dashboard/ProjectCard.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { Card, Image, Button, Icon, Popup } from 'semantic-ui-react' -import { Link } from 'react-router-dom' -import { Constants, api } from '../helpers' -import './ProjectCard.scss' - -export class ProjectCard extends React.Component { - static propTypes = { - project: PropTypes.object.isRequired // TODO: Add required fields - } - - render() { - let { project } = this.props - const corporationLink = `/corporations/${project.branch.corporation.fingerprint}` - const branchLink = corporationLink + `/branches/${project.branch.fingerprint}` - const projectLink = branchLink + `/projects/${project.fingerprint}` - return ( - - {/* Project/Corp Logo Link Section */} - - {project.branch.corporation.name} - - - {/* Project Info Section */} - - - - {project.branch.name} -  @  - {project.branch.corporation.name} - - - - {/* Project Link and Status Icon */} - - + ) + } +} + +export default Radium(Button) diff --git a/website/src/ui/Button.style.js b/website/src/ui/Button.style.js new file mode 100644 index 0000000..a69ad4c --- /dev/null +++ b/website/src/ui/Button.style.js @@ -0,0 +1,17 @@ +export default { + base: { + borderRadius: '10px', + fontFamily: 'Arial', + color: '#ffffff', + fontSize: '20px', + background: '#3498db', + padding: '10px 20px 10px 20px', + textDecoration: 'none', + outline: 'none', + + ':hover': { + background: '#3cb0fd', + textDecoration: 'none' + } + } +} diff --git a/website/src/ui/Checkbox.js b/website/src/ui/Checkbox.js new file mode 100644 index 0000000..c6055b7 --- /dev/null +++ b/website/src/ui/Checkbox.js @@ -0,0 +1,33 @@ +import Radium from 'radium' +import PropTypes from 'prop-types' +import React, { Component } from 'react' +import style from './Checkbox.style' +import { reactAutoBind } from 'auto-bind2' + +class Checkbox extends Component { + static propTypes = { + value: PropTypes.bool + } + + constructor(props) { + super(props) + reactAutoBind(this) + this.state = { + checked: props.value + } + } + + onClick() { + this.setState({ checked: !this.state.checked }) + } + + render() { + return ( +
+
+
+ ) + } +} + +export default Radium(Checkbox) diff --git a/website/src/ui/Checkbox.style.js b/website/src/ui/Checkbox.style.js new file mode 100644 index 0000000..c1cb3d6 --- /dev/null +++ b/website/src/ui/Checkbox.style.js @@ -0,0 +1,36 @@ +export default { + checkbox: { + cursor: 'pointer', + position: 'relative', + backgroundColor: '#2196F3', + top: 0, + left: 0, + height: 25, + width: 25 + }, + + checkboxUnchecked: { + backgroundColor: '#E0E0E0', + ':hover': { + backgroundColor: '#C0C0C0' + } + }, + + checkmark: { + position: 'absolute', + display: 'block', + content: '', + left: 10, + top: 5, + width: 6, + height: 12, + borderStyle: 'solid', + borderColor: '#FFFFFF', + borderWidth: '0 3px 3px 0', + transform: 'rotate(45deg)' + }, + + checkmarkUnchecked: { + display: 'none' + } +} diff --git a/website/src/ui/HolyGrail.js b/website/src/ui/HolyGrail.js new file mode 100644 index 0000000..569f570 --- /dev/null +++ b/website/src/ui/HolyGrail.js @@ -0,0 +1,54 @@ +import Radium from 'radium' +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import style from './HolyGrail.style.js' + +class HolyGrail extends Component { + static propTypes = { + children: PropTypes.node + } + + render() { + return ( +
{this.props.children}
+ ) + } +} + +HolyGrail.Header = Radium(class HolyGrailHeader extends Component { + static propTypes = { + children: PropTypes.node + } + + render() { + return ( +
{this.props.children}
+ ) + } +}) + +HolyGrail.Footer = Radium(class HolyGrailFooter extends Component { + static propTypes = { + children: PropTypes.node + } + + render() { + return ( +
{this.props.children}
+ ) + } +}) + +HolyGrail.Body = Radium(class HolyGrailBody extends Component { + static propTypes = { + children: PropTypes.node + } + + render() { + return ( +
{this.props.children}
+ ) + } +}) + +export default Radium(HolyGrail) diff --git a/website/src/ui/HolyGrail.style.js b/website/src/ui/HolyGrail.style.js new file mode 100644 index 0000000..0ce4081 --- /dev/null +++ b/website/src/ui/HolyGrail.style.js @@ -0,0 +1,19 @@ +export default { + base: { + display: 'flex', + minHeight: '100vh', + flexDirection: 'column' + }, + body: { + display: 'flex', + flexGrow: 1 + }, + header: { + backgroundColor: '#FAFAFA', + borderBottom: '1px solid #B2B2B2' + }, + footer: { + backgroundColor: '#FAFAFA', + borderTop: '1px solid #B2B2B2' + } +} diff --git a/website/src/ui/Icon.js b/website/src/ui/Icon.js new file mode 100644 index 0000000..e69de29 diff --git a/website/src/ui/Icon.style.js b/website/src/ui/Icon.style.js new file mode 100644 index 0000000..e69de29 diff --git a/website/src/ui/Image.js b/website/src/ui/Image.js new file mode 100644 index 0000000..e69de29 diff --git a/website/src/ui/Image.style.js b/website/src/ui/Image.style.js new file mode 100644 index 0000000..e69de29 diff --git a/website/src/ui/Input.js b/website/src/ui/Input.js new file mode 100644 index 0000000..3dd97f5 --- /dev/null +++ b/website/src/ui/Input.js @@ -0,0 +1,19 @@ +import Radium from 'radium' +import PropTypes from 'prop-types' +import React, { Component } from 'react' +import style from './Input.style' + +class Input extends Component { + static propTypes = { + hidden: PropTypes.bool, + children: PropTypes.node + } + + render() { + return ( + {this.props.children} + ) + } +} + +export default Radium(Input) diff --git a/website/src/ui/Input.style.js b/website/src/ui/Input.style.js new file mode 100644 index 0000000..baadf02 --- /dev/null +++ b/website/src/ui/Input.style.js @@ -0,0 +1,18 @@ +export default { + base: { + padding: '5px', + fontSize: '16px', + borderWidth: '1px', + borderColor: '#b2b2b2', + backgroundColor: '#ffffff', + color: '#000000', + borderStyle: 'solid', + borderRadius: '5px', + // boxShadow: '0px 0px 0px rgba(66,66,66,.75)' + // textShadow: 'undefined 0px 0px 5px px rgba(66,66,66,.75)' + + ':focus': { + outline: 'none' + } + } +} diff --git a/website/src/ui/Text.js b/website/src/ui/Text.js new file mode 100644 index 0000000..e69de29 diff --git a/website/src/ui/Text.style.js b/website/src/ui/Text.style.js new file mode 100644 index 0000000..e69de29 diff --git a/website/src/ui/index.js b/website/src/ui/index.js new file mode 100644 index 0000000..850c6b0 --- /dev/null +++ b/website/src/ui/index.js @@ -0,0 +1,4 @@ +export { default as Button } from './Button' +export { default as Checkbox } from './Checkbox' +export { default as Input } from './Input' +export { default as HolyGrail } from './HolyGrail'