var React = require('react'); var ReactBootstrap = require('react-bootstrap'); var FormGroup = ReactBootstrap.FormGroup; var ControlLabel = ReactBootstrap.ControlLabel; var Grid = ReactBootstrap.Grid; var Row = ReactBootstrap.Row; var Col = ReactBootstrap.Col; var Panel = ReactBootstrap.Panel; var Button = ReactBootstrap.Button; var Multiselect = require('react-widgets').Multiselect; var models = require('../models'); var Attendee = models.Attendee; var NewSuggestion = require('./NewSuggestion'); module.exports = React.createClass({ displayName: "RecordLunch", getAttendeeList: function() { var attendeeList = []; for (var attendeeId in this.props.attendees) { attendeeList.push(this.props.attendees[attendeeId]); } return attendeeList; }, getAttendeeMap: function() { var attendeeMap = {}; for (var attendeeId in this.props.attendees) { var attendee = this.props.attendees[attendeeId]; attendeeMap[attendee.Name] = attendee; } return attendeeMap; }, onChangeAttendees: function(attendees) { var attendeeMap = this.getAttendeeMap(); for (var i in attendees) { if (attendeeMap.hasOwnProperty(attendees[i].Name)) { delete attendeeMap[attendees[i].Name]; } else { var attendee = new Attendee(); attendee.Name = attendees[i].Name; this.props.createAttendee(attendee); } } for (var i in attendeeMap) { this.props.removeAttendee(attendeeMap[i]); } }, onCreateAttendee: function(attendeeName) { var attendee = new Attendee(); attendee.Name = attendeeName; this.props.createAttendee(attendee); }, render: function() { var attendeeList = this.getAttendeeList(); var suggestionIds = Object.keys(this.props.suggestions); suggestionIds.sort(function(a, b){return parseInt(b, 10) - parseInt(a, 10);}); var suggestions = []; for (var i in suggestionIds) { var suggestion = this.props.suggestions[suggestionIds[i]]; var suggestorName = "Unknown"; if (this.props.attendees.hasOwnProperty(suggestion.AttendeeId)) suggestorName = this.props.attendees[suggestion.AttendeeId].Name; if (i == 0) { var self = this; var localSuggestion = suggestion; var popFunction = function(){ return function(){self.props.removeSuggestion(localSuggestion);}; }(); suggestions.push(( Current Suggestion: {suggestion.RestaurantName} (by {suggestorName}) )); } else { suggestions.push(( {(suggestionIds.length - i).toString() + "."} {suggestion.RestaurantName} (by {suggestorName}) )); } } return (
Attendees {suggestions}
); } });