mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Adding log tab to admin
This commit is contained in:
		
							parent
							
								
									5f24a2d70c
								
							
						
					
					
						commit
						5fa3915d24
					
				@ -1,9 +1,11 @@
 | 
			
		||||
var React                   = require('react');
 | 
			
		||||
var TabView                 = require('./components/TabView');
 | 
			
		||||
var Menu                    = require('./components/Menu');
 | 
			
		||||
var EventsComponent         = React.createFactory(require('./components/event/EventsComponent'));
 | 
			
		||||
var FeatureTogglesComponent = React.createFactory(require('./components/feature/FeatureTogglesComponent'));
 | 
			
		||||
var StrategiesComponent     = React.createFactory(require('./components/strategy/StrategiesComponent'));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var tabPanes = [
 | 
			
		||||
    {
 | 
			
		||||
        name: "Feature Toggles",
 | 
			
		||||
@ -12,6 +14,10 @@ var tabPanes = [
 | 
			
		||||
    {
 | 
			
		||||
        name: "Strategies",
 | 
			
		||||
        content: new StrategiesComponent({})
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: "Log",
 | 
			
		||||
        content: new EventsComponent({})
 | 
			
		||||
    }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								public/js/components/event/Event.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								public/js/components/event/Event.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
var React = require('react');
 | 
			
		||||
 | 
			
		||||
var Event = React.createClass({
 | 
			
		||||
    propTypes: {
 | 
			
		||||
        event: React.PropTypes.object.isRequired
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    render: function() {
 | 
			
		||||
        return (
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>{this.props.event.data.name}</td>
 | 
			
		||||
                <td>{this.props.event.type}</td>
 | 
			
		||||
                <td>{this.props.event.createdBy}</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = Event;
 | 
			
		||||
							
								
								
									
										32
									
								
								public/js/components/event/EventList.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								public/js/components/event/EventList.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
			
		||||
var React = require('react'),
 | 
			
		||||
    Event = require('./Event');
 | 
			
		||||
 | 
			
		||||
var EventList = React.createClass({
 | 
			
		||||
    propTypes: {
 | 
			
		||||
        events: React.PropTypes.array.isRequired
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    render: function() {
 | 
			
		||||
        var eventNodes = this.props.events.map(function(event) {
 | 
			
		||||
            return <Event event={event} key={event.name} />;
 | 
			
		||||
        });
 | 
			
		||||
        return (
 | 
			
		||||
            <div className='r-margin'>
 | 
			
		||||
                <table className='outerborder'>
 | 
			
		||||
                    <thead>
 | 
			
		||||
                        <tr>
 | 
			
		||||
                            <th>Feature</th>
 | 
			
		||||
                            <th>Action</th>
 | 
			
		||||
                            <th>Author</th>
 | 
			
		||||
                        </tr>
 | 
			
		||||
                    </thead>
 | 
			
		||||
                    <tbody>
 | 
			
		||||
                        {eventNodes}
 | 
			
		||||
                    </tbody>
 | 
			
		||||
                </table>
 | 
			
		||||
            </div>
 | 
			
		||||
            );
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = EventList;
 | 
			
		||||
							
								
								
									
										47
									
								
								public/js/components/event/EventsComponent.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								public/js/components/event/EventsComponent.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
var React          = require('react'),
 | 
			
		||||
    EventList   = require('./EventList'),
 | 
			
		||||
    eventStore  = require('../../stores/EventStore'),
 | 
			
		||||
    ErrorMessages  = require('../ErrorMessages');
 | 
			
		||||
 | 
			
		||||
var EventsComponent = React.createClass({
 | 
			
		||||
    getInitialState: function() {
 | 
			
		||||
        return {
 | 
			
		||||
            createView: false,
 | 
			
		||||
            events: [],
 | 
			
		||||
            errors: []
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    componentDidMount: function () {
 | 
			
		||||
        eventStore.getEvents().then(function(res) {
 | 
			
		||||
            this.setState({events: res.events});
 | 
			
		||||
        }.bind(this), this.initError);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    initError: function() {
 | 
			
		||||
        this.onError("Could not load events from server");
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    clearErrors: function() {
 | 
			
		||||
        this.setState({errors: []});
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onError: function(error) {
 | 
			
		||||
        var errors = this.state.errors.concat([error]);
 | 
			
		||||
        this.setState({errors: errors});
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    render: function() {
 | 
			
		||||
        return (
 | 
			
		||||
            <div>
 | 
			
		||||
                <ErrorMessages errors={this.state.errors} onClearErrors={this.clearErrors} />
 | 
			
		||||
 | 
			
		||||
                <hr />
 | 
			
		||||
 | 
			
		||||
                <EventList events={this.state.events} />
 | 
			
		||||
            </div>
 | 
			
		||||
            );
 | 
			
		||||
    },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = EventsComponent;
 | 
			
		||||
							
								
								
									
										16
									
								
								public/js/stores/EventStore.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								public/js/stores/EventStore.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
var reqwest = require('reqwest');
 | 
			
		||||
 | 
			
		||||
TYPE         = 'json';
 | 
			
		||||
CONTENT_TYPE = 'application/json';
 | 
			
		||||
 | 
			
		||||
var EventStore = {
 | 
			
		||||
    getEvents: function () {
 | 
			
		||||
        return reqwest({
 | 
			
		||||
            url: 'events',
 | 
			
		||||
            method: 'get',
 | 
			
		||||
            type: TYPE
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = EventStore;
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user