diff --git a/imports/client/app/routes.js b/imports/client/app/routes.js index 084eb4a..2dd29a2 100644 --- a/imports/client/app/routes.js +++ b/imports/client/app/routes.js @@ -23,6 +23,7 @@ import { importCsvController } from '/imports/client/views/org/impo //admin import { StudentDataController } from '/imports/client/views/org/admin/students/index' +import { teachersViewController } from '/imports/client/views/org/admin/teachers/index' //students //teachers @@ -52,7 +53,8 @@ const getOrgRoutes = () => ( - + + diff --git a/imports/client/layouts/NonOrgApp.js b/imports/client/layouts/NonOrgApp.js index 687b44a..a8e3564 100644 --- a/imports/client/layouts/NonOrgApp.js +++ b/imports/client/layouts/NonOrgApp.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import { Grid } from 'react-bootstrap'; -import {AppNavigationController} from '/imports/client/views/org/app/module/navigation/index'; +import {AppNavigationController} from '/imports/client/views/nonOrg/app/module/navigation/index'; /** * user based redirection will take place here */ diff --git a/imports/client/views/etc/index.js b/imports/client/views/etc/index.js index f8fb0eb..2aa71e1 100644 --- a/imports/client/views/etc/index.js +++ b/imports/client/views/etc/index.js @@ -9,6 +9,7 @@ import { Loading } from '/imports/client/components/Loadi import { Orgs } from '/imports/collections/orgs/index'; import { Users } from '/imports/collections/users/index'; +import { teachersView } from './teachersView'; const meteorTick = (props, onData) => { diff --git a/imports/client/views/etc/signup.js b/imports/client/views/etc/signup.js index f78461d..6cb66aa 100644 --- a/imports/client/views/etc/signup.js +++ b/imports/client/views/etc/signup.js @@ -3,7 +3,7 @@ import { Meteor } from 'meteor/meteor'; import React, { Component } from 'react'; import { Link,browserHistory } from 'react-router'; -import { FormGroup,, +import { FormGroup, FormControl,Glyphicon,Button } from 'react-bootstrap'; diff --git a/imports/client/views/nonOrg/app/module/navigation/AppNavigation.js b/imports/client/views/nonOrg/app/module/navigation/AppNavigation.js index 319c936..8db04f8 100644 --- a/imports/client/views/nonOrg/app/module/navigation/AppNavigation.js +++ b/imports/client/views/nonOrg/app/module/navigation/AppNavigation.js @@ -1,27 +1,54 @@ -import React from 'react'; -import { Navbar } from 'react-bootstrap'; -import { Link } from 'react-router'; -import PublicNavigation from './PublicNavigation.js'; -import AuthenticatedNavigation from './AuthenticatedNavigation.js'; +import React, { Component } from 'react'; +import { Navbar } from 'react-bootstrap'; +import { Link } from 'react-router'; +import {PublicNavigation} from './PublicNavigation.js'; +import {AuthenticatedNavigation} from './AuthenticatedNavigation.js'; +// import '/imports/client/assets/css/icons/icomoon/styles.css'; +// import '/imports/client/assets/css/bootstrap.css'; +// import '/imports/client/assets/css/core.css'; +// import '/imports/client/assets/css/components.css'; +// import '/imports/client/assets/css/colors.css'; +// import '/imports/client/assets/css/colors.css'; +export class AppNavigation extends Component { -const renderNavigation = hasUser => (hasUser ? : ); + constructor(props) { + super(props); + this.state = { -const AppNavigation = ({ hasUser }) => ( - - - - Application Name - - - - - { renderNavigation(hasUser) } - - -); + }; + }; -AppNavigation.propTypes = { - hasUser: React.PropTypes.object, -}; + onUpdate(key, value) { + this.setState({[key]: value}); + }; + render() { + const {user} = this.props.data; + if(user){ + return( + + ) + }else{ + return( + + + + Application Name + + + + + + + + + ) + } -export default AppNavigation; + return ( +
+ ); + }; + +}; diff --git a/imports/client/views/nonOrg/app/module/navigation/index.js b/imports/client/views/nonOrg/app/module/navigation/index.js index 65f743d..f431a4b 100644 --- a/imports/client/views/nonOrg/app/module/navigation/index.js +++ b/imports/client/views/nonOrg/app/module/navigation/index.js @@ -1,7 +1,49 @@ -import { composeWithTracker } from 'react-komposer'; -import { Meteor } from 'meteor/meteor'; -import AppNavigation from '../components/AppNavigation.js'; +// import { AppNavigation } from '/imports/client/views/nonOrg/app/module/navigation/index' +import _ from 'lodash'; +import { + composeWithTracker, + compose, + composeAll + } from 'react-komposer'; +import { Loading } from '/imports/client/components/Loading'; -const composer = (props, onData) => onData(null, { hasUser: Meteor.user() }); +import { Orgs } from '/imports/collections/orgs/index'; +import { Users } from '/imports/collections/users/index'; -export default composeWithTracker(composer, {}, {}, { pure: false })(AppNavigation); +import { AppNavigation } from './AppNavigation'; + +const meteorTick = (props, onData) => { + + const handles = [ + Meteor.subscribe('users.current'), + Meteor.subscribe('orgs.current') + ]; + + if(_.every(handles, (handle) => (handle.ready()) )) { + const user = Users.current(); + const org = Orgs.current(); + onData(null, { + data: { + user: user, + org: org + }, + }); + } + + return () => { + _.each(handles, (handle) => handle.stop() ); + }; +}; + + +const reduxTick = (props, onData) => { + onData(null, { + data: {} + }); +}; + + +export const AppNavigationController = composeAll( + composeWithTracker(meteorTick, Loading), + compose(reduxTick, Loading), +)(AppNavigation); diff --git a/imports/client/views/org/admin/teachers/index.js b/imports/client/views/org/admin/teachers/index.js new file mode 100644 index 0000000..7447c66 --- /dev/null +++ b/imports/client/views/org/admin/teachers/index.js @@ -0,0 +1,48 @@ +// import { InviteSignupController } from '/imports/client/views/invite/signup/index' +import _ from 'lodash'; +import { + composeWithTracker, + compose, + composeAll + } from 'react-komposer'; +import { Loading } from '/imports/client/components/Loading'; + +import { Orgs } from '/imports/collections/orgs/index'; +import { Users } from '/imports/collections/users/index'; +import { teachersView } from './teachersView'; + +const meteorTick = (props, onData) => { + + const handles = [ + Meteor.subscribe('users.current'), + Meteor.subscribe('orgs.current') + ]; + + if(_.every(handles, (handle) => (handle.ready()) )) { + const user = Users.current(); + const org = Orgs.current(); + onData(null, { + data: { + user: user, + org: org + }, + }); + } + + return () => { + _.each(handles, (handle) => handle.stop() ); + }; +}; + + +const reduxTick = (props, onData) => { + onData(null, { + data: {} + }); +}; + + +export const teachersViewController = composeAll( + composeWithTracker(meteorTick, Loading), + compose(reduxTick, Loading), +)(teachersView); diff --git a/imports/client/views/org/admin/teachers/teachersView.js b/imports/client/views/org/admin/teachers/teachersView.js new file mode 100644 index 0000000..4095efb --- /dev/null +++ b/imports/client/views/org/admin/teachers/teachersView.js @@ -0,0 +1,33 @@ +import _ from 'lodash'; +import { Meteor } from 'meteor/meteor'; + +import React, { Component } from 'react'; +import { Link,browserHistory } from 'react-router'; +import { FormGroup, + FormControl,Glyphicon,Button } from 'react-bootstrap'; + + +export class teachersView extends Component { + + constructor(props) { + super(props); + this.state = { + + }; + this.onUpdate = this.onUpdate.bind(this); + }; + + onUpdate(key, value) { + this.setState({[key]: value}); + }; + + render() { + const {user, org} = this.props.data; + return ( +
+ +
+ ); + }; + +};