Forráskód Böngészése

[ADD] request list

Gogs 7 éve
szülő
commit
22867029ae

+ 0 - 2
src/components/common/Base.js

@@ -33,8 +33,6 @@ class Base extends Component {
     render() {
         const { classes, app, onHideNotification } = this.props
 
-        console.log(app)
-
         return (
             <div className={classes.root}>
                 <Helmet>

+ 2 - 2
src/components/common/Sidebar.js

@@ -43,11 +43,11 @@ class Sidebar extends Component {
                         </ListItemIcon>
                         <ListItemText primary="Tareas automatizadas" />
                     </ListItem>
-                    <ListItem button component={Link} to='/mytasks'>
+                    <ListItem button component={Link} to='/requests'>
                         <ListItemIcon>
                             <TaskIcon />
                         </ListItemIcon>
-                        <ListItemText primary="Mis tareas" />
+                        <ListItemText primary="Solicitudes" />
                     </ListItem>
                     <ListSubheader>Administración</ListSubheader>
                     <ListItem button component={Link} to='/users'>

+ 0 - 12
src/components/pages/MyTasksList.js

@@ -1,12 +0,0 @@
-import React, { Component } from 'react'
-import Base from '../common/Base'
-
-class MyTasksList extends Component {
-    render() {
-        return (
-            <Base title={this.props.title}></Base>
-        )
-    }
-}
-
-export default MyTasksList

+ 80 - 0
src/components/pages/RequestsList.js

@@ -0,0 +1,80 @@
+import React, { Component } from 'react'
+import Base from '../common/Base'
+import Paper from 'material-ui/Paper'
+import Table, { TableHead, TableBody, TableRow, TableCell } from 'material-ui/Table'
+import { get } from '../../actions'
+import { REQUEST } from '../../constants/ResourceNames'
+import { connect } from 'react-redux'
+import { withStyles } from 'material-ui/styles'
+
+const styles = theme => ({
+    root: {}
+})
+
+class RequestsList extends Component {
+    /**
+     * 
+     */
+    componentDidMount() {
+        this.props.loadData()
+    }
+
+    /**
+     * 
+     */
+    render() {
+        return (
+            <Base title={this.props.title}>
+                <Paper>
+                    <Table>
+                        <TableHead>
+                            <TableRow>
+                                <TableCell>Nombre</TableCell>
+                                <TableCell>Estado</TableCell>
+                                <TableCell>Fecha</TableCell>
+                            </TableRow>
+                        </TableHead>
+                        <TableBody>
+                            {this.props.data.map(item => 
+                                <TableRow key={item.id}>
+                                    <TableCell>{item.name}</TableCell>
+                                    <TableCell>{item.status[1]}</TableCell>
+                                    <TableCell>{item.create_at}</TableCell>
+                                </TableRow>
+                            )}
+                        </TableBody>
+                    </Table>
+                </Paper>
+            </Base>
+        )
+    }
+}
+
+/**
+ * 
+ * @param {*} state 
+ * @param {*} props 
+ */
+const mapStateToProps = (state, props) => {
+    return {
+        data: state.requests
+    }
+}
+
+/**
+ * 
+ * @param {*} dispatch 
+ * @param {*} props 
+ */
+const mapDispatchToProps = (dispatch, props) => ({
+     /**
+     * 
+     */
+    loadData() {
+        dispatch(get(`${REQUEST}`))
+    },
+})
+
+RequestsList = withStyles(styles)(RequestsList)
+
+export default connect(mapStateToProps, mapDispatchToProps)(RequestsList)

+ 2 - 2
src/components/pages/TasksList.js

@@ -1,6 +1,4 @@
 import React, { Component } from 'react'
-import { connect } from 'react-redux'
-import { withStyles } from 'material-ui/styles'
 import Button from 'material-ui/Button'
 import Base from '../common/Base'
 import Paper from 'material-ui/Paper'
@@ -10,6 +8,8 @@ import TextField from 'material-ui/TextField'
 import { isEqual, isEmpty } from 'lodash'
 import { ODOO } from '../../constants/ResourceNames'
 import { post } from '../../actions'
+import { connect } from 'react-redux'
+import { withStyles } from 'material-ui/styles'
 
 const styles = theme => ({
     gap: {

+ 5 - 0
src/constants/ResourceNames.js

@@ -8,6 +8,11 @@ export const API_URL = 'http://192.168.88.100:8000/api/v1/'
  */
 export const DOCKER = 'docker/'
 
+/**
+ * 
+ */
+export const REQUEST = 'request/'
+
 /**
  * 
  */

+ 1 - 1
src/reducers/containers.js

@@ -8,7 +8,7 @@ import { has, map, isEqual } from 'lodash'
  */
 export const containers = (state = [], action) => {
     if (action.type !== REQUEST_OK) {
-        return state;
+        return state
     }
 
     if (has(action.payload, 'container')) {

+ 2 - 0
src/reducers/index.js

@@ -6,12 +6,14 @@ import LoggerMiddleware from 'redux-logger'
 
 import { app } from './app'
 import { containers } from './containers'
+import { requests } from './requests'
 
 const history = createBrowserHistory()
 
 const rootReducer = combineReducers({
     app,
     containers,
+    requests,
     router: routerReducer
 })
 

+ 14 - 0
src/reducers/requests.js

@@ -0,0 +1,14 @@
+import { REQUEST_OK } from '../constants/ActionTypes'
+import { has } from 'lodash'
+
+export const requests = (state = [], action) => {
+    if (action.type !== REQUEST_OK) {
+        return state
+    }
+
+    if (has(action.payload, 'requests')) {
+        return action.payload.requests
+    }
+
+    return state
+}

+ 4 - 4
src/routes/index.js

@@ -1,7 +1,7 @@
 import Login from '../components/pages/Login'
 import Dashboard from '../components/pages/Dashboard'
 import ContainersList from '../components/pages/ContainersList'
-import MyTasksList from '../components/pages/MyTasksList'
+import RequestsList from '../components/pages/RequestsList'
 import TasksList from '../components/pages/TasksList'
 import UsersList from '../components/pages/UsersList'
 import PermissionsList from '../components/pages/PermissionsList'
@@ -31,9 +31,9 @@ const routes = [
         title: 'Contenedores'
     },
     {
-        path: '/mytasks',
-        component: MyTasksList,
-        title: 'Mis tareas'
+        path: '/requests',
+        component: RequestsList,
+        title: 'Solicitudes'
     },
     {
         path: '/tasks',