mirror of
https://github.com/vale981/Vulcan
synced 2025-03-05 17:41:43 -05:00
fix nova:demo
This commit is contained in:
parent
7316b25e74
commit
959cd081cc
4 changed files with 41 additions and 24 deletions
|
@ -2,5 +2,6 @@ import Messages from "./messages.js";
|
|||
import ModalTrigger from "./components/ModalTrigger.jsx";
|
||||
import FlashContainer from "./containers/FlashContainer.jsx";
|
||||
import AppComposer from "./containers/AppComposer.jsx";
|
||||
import CurrentUserContainer from "./containers/CurrentUserContainer.jsx";
|
||||
|
||||
export default {Messages, ModalTrigger, AppComposer, FlashContainer};
|
||||
export default {Messages, ModalTrigger, AppComposer, FlashContainer, CurrentUserContainer};
|
|
@ -1,6 +1,7 @@
|
|||
import React, { PropTypes, Component } from 'react';
|
||||
import {mount} from 'react-mounter';
|
||||
|
||||
import MoviesWrapper from './demo-components.jsx';
|
||||
import Core from 'meteor/nova:core';
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Collection & Schema //
|
||||
|
@ -57,7 +58,7 @@ Movies.attachSchema(schema);
|
|||
|
||||
FlowRouter.route('/demo', {
|
||||
name: 'demo',
|
||||
action() {
|
||||
action() {
|
||||
mount(MoviesWrapper);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
import React, { PropTypes, Component } from 'react';
|
||||
|
||||
import NoSSR from 'react-no-ssr';
|
||||
|
||||
import Core from 'meteor/nova:core';
|
||||
import SmartContainers from "meteor/utilities:react-list-container";
|
||||
import FormContainers from "meteor/nova:forms";
|
||||
import NovaForm from "meteor/nova:forms";
|
||||
import { Button } from 'react-bootstrap';
|
||||
import { Accounts } from 'meteor/std:accounts-ui';
|
||||
|
||||
const ModalTrigger = Core.ModalTrigger;
|
||||
const NewDocument = FormContainers.NewDocument;
|
||||
const EditDocument = FormContainers.EditDocument;
|
||||
const Messages = Core.Messages;
|
||||
const FlashContainer = Core.FlashContainer;
|
||||
const ListContainer = SmartContainers.ListContainer;
|
||||
|
||||
const FlashContainer = Telescope.components.FlashContainer;
|
||||
const FlashMessages = Telescope.components.FlashMessages;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
|
@ -23,9 +20,9 @@ class MoviesWrapper extends Component {
|
|||
return (
|
||||
<div className="wrapper">
|
||||
|
||||
<NoSSR onSSR={<p>Loading…</p>}>
|
||||
<LogInButtons />
|
||||
</NoSSR>
|
||||
<div style={{maxWidth: "300px"}}>
|
||||
<Accounts.ui.LoginForm />
|
||||
</div>
|
||||
|
||||
<FlashContainer component={FlashMessages}/>
|
||||
|
||||
|
@ -37,9 +34,8 @@ class MoviesWrapper extends Component {
|
|||
options={{sort: {createdAt: -1}}}
|
||||
joins={Movies.getJoins()}
|
||||
limit={5}
|
||||
>
|
||||
<MoviesList/>
|
||||
</ListContainer>
|
||||
component={MoviesList}
|
||||
/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -56,9 +52,19 @@ class MoviesList extends Component {
|
|||
renderNew() {
|
||||
|
||||
const component = (
|
||||
<ModalTrigger title="Add Movie" label="Add Movie" className="button button--primary">
|
||||
<NewDocument collection={Movies} label="Add Movie" methodName="movies.create"/>
|
||||
</ModalTrigger>
|
||||
<div className="add-movie">
|
||||
<ModalTrigger
|
||||
title="Add Movie"
|
||||
component={<Button bsStyle="primary">Add Movie</Button>}
|
||||
>
|
||||
<NovaForm
|
||||
collection={Movies}
|
||||
methodName="movies.create"
|
||||
currentUser={this.props.currentUser}
|
||||
/>
|
||||
</ModalTrigger>
|
||||
<hr/>
|
||||
</div>
|
||||
)
|
||||
|
||||
return !!this.props.currentUser ? component : "";
|
||||
|
@ -79,6 +85,7 @@ class MoviesList extends Component {
|
|||
//////////////////////////////////////////////////////
|
||||
// Movie //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
class Movie extends Component {
|
||||
|
||||
renderEdit() {
|
||||
|
@ -86,8 +93,16 @@ class Movie extends Component {
|
|||
const movie = this.props;
|
||||
|
||||
const component = (
|
||||
<ModalTrigger label="Edit" className="button button--secondary">
|
||||
<EditDocument collection={Movies} document={movie} label="Edit Movie" methodName="movies.edit"/>
|
||||
<ModalTrigger
|
||||
label="Edit Movie"
|
||||
component={<Button bsStyle="primary">Edit Movie</Button>}
|
||||
>
|
||||
<NovaForm
|
||||
collection={Movies}
|
||||
currentUser={this.props.currentUser}
|
||||
document={movie}
|
||||
methodName="movies.edit"
|
||||
/>
|
||||
</ModalTrigger>
|
||||
);
|
||||
|
||||
|
@ -103,7 +118,7 @@ class Movie extends Component {
|
|||
const movie = this.props;
|
||||
|
||||
return (
|
||||
<div key={movie.name} style={{marginBottom: "15px"}}>
|
||||
<div key={movie.name} style={{paddingBottom: "15px",marginBottom: "15px", borderBottom: "1px solid #ccc"}}>
|
||||
<h2>{movie.name} ({movie.year})</h2>
|
||||
<p>{movie.review} – by <strong>{movie.user && movie.user.username}</strong></p>
|
||||
{this.renderEdit()}
|
||||
|
|
|
@ -47,7 +47,7 @@ class NovaForm extends Component{
|
|||
// get relevant fields
|
||||
getFieldNames() {
|
||||
const collection = this.props.collection;
|
||||
const fields = this.getFormType() === "edit" ? collection.getEditableFields(this.props.currentUser) : collection.getInsertableFields(this.props.currentUser);
|
||||
const fields = this.getFormType() === "edit" ? collection.getEditableFields(this.props.currentUser, this.props.document) : collection.getInsertableFields(this.props.currentUser);
|
||||
return fields;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue