Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing day fixes #248

Merged
merged 8 commits into from
Aug 29, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions docs/epics/0001_Action_Epic_MVTP.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,8 @@ their next step is (inputting projects, then waiting for their first action
meeting from their TL), so they feel like their are working toward some kind
of a tangible goal.

- [ ] When a TM clicks on an invitation link and they _already_ have an
active account, they'll want to accept the invitation from their dashboard,
so that they don't have to walk through the new account wizard.
- [X] When a TM clicks on an invitation link and they _already_ have an
active account, the system should still process the invitation.

## Team Action Meeting

Expand Down Expand Up @@ -166,18 +165,18 @@ update the information they seek.
will want to see a list of projects by TM, so that each participant has a
moment to update the team on their work.

- [ ] When a TM is asked to give project updates, they will want to know
- [X] When a TM is asked to give project updates, they will want to know
what to say, so that they understand what is being asked of them.

- [ ] When a TM is asked to give project updates, they will want to be able
- [X] When a TM is asked to give project updates, they will want to be able
to make small updates to their projects (such as status, description, or
ownership), so that they can make adjustment to their workload or update
their team with the latest information.

- [ ] When all project updates are complete, the F will want to advance the
- [X] When all project updates are complete, the F will want to advance the
meeting to "Agenda Building", so that they keep things moving forward.

- [ ] When the TMs enter the agenda building phase, they will want to be
- [X] When the TMs enter the agenda building phase, they will want to be
able to add items to the agenda, so that they get a slot in the meeting to
ask for what they need.

Expand All @@ -188,10 +187,18 @@ able to remove items, so they can spend their time on what they want.
advance the meeting to the "Process Agenda" phase, so that new actions and
projects can be created and TMs can request what they need of each other.

- [ ] If a project update or agenda item should trigger a new agenda item
- [X] If a project update or agenda item should trigger a new agenda item
for a TM, they want to add it to the agenda, so that they have an opportunity
to get what they need.

- [ ] When the meeting advances from agenda item to agenda item, the F will
want to know what to say ("what do you need?") and the TM will want to be
able to process the agenda item into new projects or actions.

- [ ] When the TM has created a project or action by mistake, the TM will
want a control for deleting or canceling it, so that they don't add to the
noise of the team.

- [ ] When all agenda items have been processed, the TMs will want one more
opportunity to add new items, so that they have one last chance to process
something before the meeting ends.
Expand Down Expand Up @@ -231,7 +238,7 @@ and going.

## Personal Dashboard

- [ ] When a user receives an invitation to a new team, they will want to
- [X] When a user receives an invitation to a new team, they will want to
be able to accept it, so that they can join their teammates.

- [X] When a TM navigates to their own personal dashboard, they will
Expand Down
13 changes: 7 additions & 6 deletions src/server/database/migrations/20160722161700-meeting.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
exports.up = async (r) => {
const meetingTables = [
r.tableCreate('Meeting'),
r.tableCreate('Project'),
r.tableCreate('Action'),
r.tableCreate('AgendaItem'),
r.tableCreate('Meeting'),
r.tableCreate('Participant'),
r.tableCreate('Project'),
r.tableCreate('Outcome'),
r.tableCreate('TaskOutcomeDiff')
];
await Promise.all(meetingTables);
const meetingIndices = [
r.table('Meeting').indexCreate('teamId'),
r.table('Project').indexCreate('teamMemberId'),
r.table('Action').indexCreate('userId'),
r.table('AgendaItem').indexCreate('teamId'),
r.table('Meeting').indexCreate('teamId'),
r.table('Participant').indexCreate('meetingId'),
r.table('Participant').indexCreate('userId'),
r.table('Project').indexCreate('teamMemberId')
];
return await Promise.all(meetingIndices);
};

exports.down = async (r) => {
const meetingTables = [
r.tableDrop('Meeting'),
r.tableDrop('Task'),
r.tableDrop('Action'),
r.tableDrop('AgendaItem'),
r.tableDrop('Meeting'),
r.tableDrop('Participant'),
r.tableDrop('Project'),
r.tableDrop('Outcome'),
r.tableDrop('TaskOutcomeDiff')
];
Expand Down
23 changes: 19 additions & 4 deletions src/server/graphql/models/Team/teamMutation.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ import {
CHECKIN,
LOBBY,
UPDATES,
FIRST_CALL,
// FIRST_CALL,
AGENDA_ITEMS,
LAST_CALL,
// LAST_CALL,
phaseArray, phaseOrder
} from 'universal/utils/constants';
import {auth0ManagementClient} from 'server/utils/auth0Helpers';
Expand Down Expand Up @@ -229,6 +229,7 @@ export default {
teamId: newTeam.id,
userId
};

const verifiedTeam = {
...newTeam,
facilitatorPhase: LOBBY,
Expand All @@ -238,11 +239,25 @@ export default {
meetingPhaseItem: null,
activeFacilitator: null
};

const dbTransaction = r.table('User')
.get(userId)
.do((user) =>
r.table('TeamMember').insert({
...verifiedLeader,
// pull in picture and preferredName from user profile:
picture: user('picture').default(''),
preferredName: user('preferredName').default('')
})
)
.do(() =>
r.table('Team').insert(verifiedTeam)
);

const oldtms = authToken.tms || [];
const tms = oldtms.concat(newTeam.id);
const dbPromises = [
r.table('TeamMember').insert(verifiedLeader),
r.table('Team').insert(verifiedTeam),
dbTransaction,
auth0ManagementClient.users.updateAppMetadata({id: userId}, {tms})
];
await Promise.all(dbPromises);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default class Landing extends Component {
<img className={styles.actionLogo} src={actionLogo}/>
<h1 className={styles.mainHeading}>Action</h1>
<h2 className={styles.mainSubheading}>
The rhythm of meaningful work.
An open-source tool for adaptive teams.
</h2>
<button
className={styles.ctaButton}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Card.propTypes = {

styles = StyleSheet.create({
card: {
// NOTE: This needs to match CheckinCards placeholder styles (TA)
border: `1px solid ${theme.palette.mid50l}`,
borderRadius: '.5rem',
margin: '0 .5rem',
Expand All @@ -82,7 +83,7 @@ styles = StyleSheet.create({
},

cardIsActive: {
borderColor: theme.palette.cool70l
borderColor: theme.palette.warm70l
},

cardIsBlurred: {
Expand All @@ -93,17 +94,21 @@ styles = StyleSheet.create({
},

cardName: {
color: theme.palette.dark,
fontSize: theme.typography.s6,
fontWeight: 400,
margin: '1rem 0 .5rem'
// margin: '1rem 0 .5rem' // when with cardLabel (TA)
margin: '1rem 0 2rem'
},

cardNameActive: {
color: theme.palette.cool
// color: theme.palette.cool
color: theme.palette.dark
},

cardLabel: {
color: theme.palette.dark50l,
display: 'none',
fontFamily: theme.typography.serif,
fontSize: theme.typography.s4,
fontStyle: 'italic',
Expand All @@ -116,7 +121,8 @@ styles = StyleSheet.create({
},

buttonsBlock: {
display: 'inline-block'
display: 'inline-block',
textAlign: 'left'
}
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,16 @@ export default class CheckinCards extends Component {

return (
<div className={styles.base}>
{leftCard &&
<CheckinCard handleCardClick={this.handleCardClickFactory(memberIdx - 1)} member={leftCard}/>
{leftCard ?
<CheckinCard handleCardClick={this.handleCardClickFactory(memberIdx - 1)} member={leftCard}/> :
<div className={styles.placeholder}></div>
}
{activeCard &&
<CheckinCard checkInPressFactory={makeCheckinPressFactory(activeCard.id)} member={activeCard} isActive/>
}
{rightCard &&
<CheckinCard handleCardClick={this.handleCardClickFactory(memberIdx + 1)} member={rightCard}/>
{rightCard ?
<CheckinCard handleCardClick={this.handleCardClickFactory(memberIdx + 1)} member={rightCard}/> :
<div className={styles.placeholder}></div>
}
</div>
);
Expand All @@ -75,5 +77,14 @@ styles = StyleSheet.create({
display: 'flex',
justifyContent: 'center',
width: '100%'
},

placeholder: {
// NOTE: This box model matches CheckinCard for exact sizing (TA)
border: '1px solid transparent',
borderRadius: '.5rem',
margin: '0 .5rem',
padding: '3rem 1rem 1.5rem',
width: '18.75rem'
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import ProgressBar from 'universal/modules/meeting/components/ProgressBar/Progre
import CheckinCards from 'universal/modules/meeting/components/CheckinCards/CheckinCards';
import MeetingMain from 'universal/modules/meeting/components/MeetingMain/MeetingMain';
import MeetingSection from 'universal/modules/meeting/components/MeetingSection/MeetingSection';
import MeetingSectionHeading from 'universal/modules/meeting/components/MeetingSectionHeading/MeetingSectionHeading';
import {
CHECKIN,
// UPDATES,
Expand All @@ -15,11 +14,7 @@ import {withRouter} from 'react-router';
import makePhaseItemFactory from 'universal/modules/meeting/helpers/makePhaseItemFactory';
import makePushURL from 'universal/modules/meeting/helpers/makePushURL';
import LoadingView from 'universal/components/LoadingView/LoadingView';
import theme from 'universal/styles/theme';

const style = {
color: theme.palette.warm
};
import Type from 'universal/components/Type/Type';

const MeetingCheckin = (props) => {
const {
Expand Down Expand Up @@ -76,9 +71,9 @@ const MeetingCheckin = (props) => {
</MeetingSection>
<MeetingSection flexToFill paddingBottom="2rem">
<MeetingSection paddingBottom="2rem">
<MeetingSectionHeading>
<span>{checkInGreeting}, <span style={style}>{currentName}</span>—{checkInQuestion}?</span>
</MeetingSectionHeading>
<Type align="center" bold family="serif" scale="s6" theme="warm">
{checkInGreeting}, {currentName}—{checkInQuestion}?
</Type>
</MeetingSection>
{/* */}
<CheckinCards
Expand All @@ -93,7 +88,7 @@ const MeetingCheckin = (props) => {
iconPlacement="right"
label={isLastMember ? 'Move on to updates' : 'Next teammate (press enter)'}
scale="large"
theme="warm"
theme="cool"
onClick={gotoNextItem}
/>
</MeetingSection>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@ import {
dashTimestamp
} from 'universal/components/Dashboard';
import look, {StyleSheet} from 'react-look';
// import theme from 'universal/styles/theme';
import UserActions from 'universal/modules/userDashboard/components/UserActions/UserActions';
import UserColumnsContainer from 'universal/modules/userDashboard/containers/UserColumns/UserColumnsContainer';
import easterEggLink from '../../helpers/easterEggLink';
import getRallyLink from '../../helpers/getRallyLink';

const UserDashboard = () => {
const {styles} = UserDashboard;
return (
<DashMain>
<DashHeader>
<DashHeaderInfo title="My Dashboard">
{dashTimestamp} • {easterEggLink()}
{dashTimestamp} • <span className={styles.crayCrayHover}>{getRallyLink()}!</span>
</DashHeaderInfo>
</DashHeader>
<DashContent>
Expand Down Expand Up @@ -52,6 +53,22 @@ UserDashboard.styles = StyleSheet.create({

projectsLayout: {
width: '80%'
},

crayCrayHover: {
color: 'inherit',

// TODO: Play with cray cray hover some more (TA)
// ':hover': {
// color: theme.palette.warm,
// position: 'fixed',
// transform: 'scale(10)'
// },
// ':focus': {
// color: theme.palette.warm,
// position: 'fixed',
// transform: 'scale(10)'
// }
}
});

Expand Down
38 changes: 0 additions & 38 deletions src/universal/modules/userDashboard/helpers/easterEggLink.js

This file was deleted.

Loading