From ec020ad471f95a3029fb99d43e65f5b0b9bc935d Mon Sep 17 00:00:00 2001 From: padulam Date: Sat, 17 Jun 2017 18:09:43 -0400 Subject: [PATCH] Add available for hire button --- .../settings/components/Job-Settings.jsx | 38 +++++++++++++++++++ .../routes/settings/components/Settings.jsx | 24 ++++++++++++ .../routes/settings/redux/update-user-saga.js | 1 + common/models/user.json | 5 +++ server/boot/settings.js | 5 +++ server/boot/user.js | 1 + server/services/user.js | 1 + 7 files changed, 75 insertions(+) create mode 100644 common/app/routes/settings/components/Job-Settings.jsx diff --git a/common/app/routes/settings/components/Job-Settings.jsx b/common/app/routes/settings/components/Job-Settings.jsx new file mode 100644 index 0000000000..e61eaf80ad --- /dev/null +++ b/common/app/routes/settings/components/Job-Settings.jsx @@ -0,0 +1,38 @@ +import React, { PropTypes } from 'react'; +import { Button, Row, Col } from 'react-bootstrap'; +import classnames from 'classnames'; + +const propTypes = { + isAvailableForHire: PropTypes.bool, + toggle: PropTypes.func.isRequired +}; + +export default function JobSettings({ isAvailableForHire, toggle }) { + const className = classnames({ + active: isAvailableForHire, + 'btn-toggle': true + }); + return ( + + +

+ Available for hire? +

+ + + + +
+ ); +} + +JobSettings.displayName = 'JobSettings'; +JobSettings.propTypes = propTypes; diff --git a/common/app/routes/settings/components/Settings.jsx b/common/app/routes/settings/components/Settings.jsx index ed257f252c..aa8a2f9204 100644 --- a/common/app/routes/settings/components/Settings.jsx +++ b/common/app/routes/settings/components/Settings.jsx @@ -6,6 +6,7 @@ import { Button, Row, Col } from 'react-bootstrap'; import FA from 'react-fontawesome'; import LockedSettings from './Locked-Settings.jsx'; +import JobSettings from './Job-Settings.jsx'; import SocialSettings from './Social-Settings.jsx'; import EmailSettings from './Email-Setting.jsx'; import LanguageSettings from './Language-Settings.jsx'; @@ -19,6 +20,7 @@ import { toggleNightMode, updateTitle } from '../../../redux/actions.js'; const mapDispatchToProps = { updateTitle, toggleNightMode, + toggleIsAvailableForHire: () => toggleUserFlag('isAvailableForHire'), toggleIsLocked: () => toggleUserFlag('isLocked'), toggleQuincyEmail: () => toggleUserFlag('sendQuincyEmail'), toggleNotificationEmail: () => toggleUserFlag('sendNotificationEmail'), @@ -33,6 +35,7 @@ const mapStateToProps = createSelector( user: { username, email, + isAvailableForHire, isLocked, isGithubCool, isTwitter, @@ -47,6 +50,7 @@ const mapStateToProps = createSelector( showLoading: isSignInAttempted, username, email, + isAvailableForHire, isLocked, isGithubCool, isTwitter, @@ -60,6 +64,7 @@ const propTypes = { children: PropTypes.element, email: PropTypes.string, initialLang: PropTypes.string, + isAvailableForHire: PropTypes.bool, isGithubCool: PropTypes.bool, isLinkedIn: PropTypes.bool, isLocked: PropTypes.bool, @@ -69,6 +74,7 @@ const propTypes = { sendNotificationEmail: PropTypes.bool, sendQuincyEmail: PropTypes.bool, showLoading: PropTypes.bool, + toggleIsAvailableForHire: PropTypes.func.isRequired, toggleIsLocked: PropTypes.func.isRequired, toggleMonthlyEmail: PropTypes.func.isRequired, toggleNightMode: PropTypes.func.isRequired, @@ -99,6 +105,7 @@ export class Settings extends React.Component { const { children, username, + isAvailableForHire, isLocked, isGithubCool, isTwitter, @@ -108,6 +115,7 @@ export class Settings extends React.Component { sendMonthlyEmail, sendNotificationEmail, sendQuincyEmail, + toggleIsAvailableForHire, toggleNightMode, toggleIsLocked, toggleQuincyEmail, @@ -219,6 +227,22 @@ export class Settings extends React.Component {
+

Job Search Settings

+ + + + + +

Email Settings