var React = require('react'); var ReactDOM = require('react-dom'); var Remarkable = require('remarkable'); var Button = require('react-bootstrap').Button; var ButtonToolbar = require('react-bootstrap').ButtonToolbar; var FormControl = require('react-bootstrap').FormControl; var FormGroup = require('react-bootstrap').FormGroup; var Panel = require('react-bootstrap').Panel; var DatePicker = require('react-bootstrap-date-picker'); var dateFormat = require('dateformat'); var $ = require('jquery'); const API_URL = "https://todo.tankernn.eu/php/api.php"; const priorityNames = {1: "danger", 2: "warning", 3: "primary", 4: "success"}; function dateToString(date) { return dateFormat(date, "yyyy-mm-dd"); } var TodoForm = React.createClass({ getInitialState: function() { return {title: '', text: '', deadline: new Date().toISOString(), priority: 1}; }, handleTitleChange: function(e) { this.setState({title: e.target.value}); }, handleDateChange: function(dateString) { this.setState({deadline: dateString}); }, handlePriorityChange: function(e) { this.setState({priority: e.target.value}); }, handleTextChange: function(e) { this.setState({text: e.target.value}); }, handleSubmit: function(e) { e.preventDefault(); var title = this.state.title.trim(); var text = this.state.text.trim(); var priority = this.state.priority; var deadline = dateToString(this.state.deadline); console.log(deadline); if (!title || !text || !deadline) { return; } this.props.onCommentSubmit({a: 'add', title: title, text: text, deadline: deadline, priority: priority}); this.setState(this.getInitialState()); }, render: function() { return (
); } }); var Item = React.createClass({ rawMarkup: function() { var md = new Remarkable(); var rawMarkup = md.render(this.props.children.toString()); return { __html: rawMarkup }; }, handleEditClick: function() { console.log("I wanna edit."); }, handleDeleteClick: function() { console.log("Deleting " + this.props.id); this.props.handleDeleteClick(this.props.id); }, render: function() { var md = new Remarkable(); var daysLeft = Math.ceil((new Date(this.props.deadline) - new Date()) / (1000 * 60 * 60 * 24)); if (daysLeft > 1) { daysLeft += " days left."; } else if (daysLeft == 1) { daysLeft = "One day left."; } else if (daysLeft == 0) { daysLeft = "Today!"; } else { daysLeft = "Should have been done " + Math.abs(daysLeft) + " day(s) ago." } return (