Ivan - Add admin panel ticket viewer [skip ci]

This commit is contained in:
ivan 2016-10-20 15:32:57 -03:00
parent 2e9aae777b
commit 9b83fde4fc
5 changed files with 66 additions and 5 deletions

View File

@ -242,7 +242,9 @@ class TicketViewer extends React.Component {
loading: false loading: false
}); });
store.dispatch(SessionActions.getUserData()); if(this.props.onComment) {
this.props.onComment();
}
} }
onCommentFail() { onCommentFail() {

View File

@ -84,7 +84,7 @@ export default (
<Route path="new-tickets" component={AdminPanelNewTickets} /> <Route path="new-tickets" component={AdminPanelNewTickets} />
<Route path="all-tickets" component={AdminPanelAllTickets} /> <Route path="all-tickets" component={AdminPanelAllTickets} />
<Route path="custom-responses" component={AdminPanelCustomResponses} /> <Route path="custom-responses" component={AdminPanelCustomResponses} />
<Route path="view-ticket" component={AdminPanelViewTicket} /> <Route path="view-ticket/:ticketNumber" component={AdminPanelViewTicket} />
</Route> </Route>
<Route path="users"> <Route path="users">

View File

@ -1,14 +1,68 @@
import React from 'react'; import React from 'react';
import API from 'lib-app/api-call';
import TicketViewer from 'app-components/ticket-viewer';
import Loading from 'core-components/loading';
class AdminPanelViewTicket extends React.Component { class AdminPanelViewTicket extends React.Component {
state = {
loading: true,
ticket: {}
};
render() { render() {
return ( return (
<div> <div>
/admin/panel/tickets/view-ticket {(this.state.loading) ? this.renderLoading() : this.renderView()}
</div> </div>
); );
} }
renderLoading() {
};
renderView() {
return (this.props.ticket) ? this.renderNotFoundError() : this.renderTicketView();
}
renderNotFoundError() {
return (
<div>
</div>
);
}
renderTicketView() {
return (
<div>
</div>
);
}
retrieveTicket() {
this.setState({
loading: true,
ticket: {}
});
API.call({
path: '/ticket/get',
date: {
ticketNumber: this.props.params.ticketNumber
}
}).then(this.onRetrieveSuccess.bind(this))
}
onRetrieveSuccess(result) {
this.setState({
loading: false,
ticket: result.data
});
}
} }
export default AdminPanelViewTicket; export default AdminPanelViewTicket;

View File

@ -2,6 +2,7 @@ import React from 'react';
import _ from 'lodash'; import _ from 'lodash';
import {connect} from 'react-redux'; import {connect} from 'react-redux';
import SessionActions from 'actions/session-actions';
import TicketViewer from 'app-components/ticket-viewer'; import TicketViewer from 'app-components/ticket-viewer';
class DashboardTicketPage extends React.Component { class DashboardTicketPage extends React.Component {
@ -13,7 +14,7 @@ class DashboardTicketPage extends React.Component {
render() { render() {
return ( return (
<div className="dashboard-ticket-page"> <div className="dashboard-ticket-page">
<TicketViewer ticket={this.getTicketData()} /> <TicketViewer ticket={this.getTicketData()} onComment={this.retrieveUserData.bind(this)}/>
</div> </div>
); );
} }
@ -21,6 +22,10 @@ class DashboardTicketPage extends React.Component {
getTicketData() { getTicketData() {
return _.find(this.props.tickets, {ticketNumber: this.props.params.ticketNumber}); return _.find(this.props.tickets, {ticketNumber: this.props.params.ticketNumber});
} }
retrieveUserData() {
this.props.dispatch(SessionActions.getUserData());
}
} }
export default connect((store) => { export default connect((store) => {

View File

@ -43,7 +43,7 @@ module.exports = [
return { return {
status: 'success', status: 'success',
data: { data: {
sessionActive: false sessionActive: true
} }
}; };
} }