mirror of
https://github.com/strapi/strapi.git
synced 2025-12-27 15:13:21 +00:00
Improve list view links
This commit is contained in:
parent
acacded075
commit
7ce955f44f
@ -22,11 +22,6 @@ import '../../styles/main.scss';
|
||||
import styles from './styles.scss';
|
||||
|
||||
export class App extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
|
||||
static propTypes = {
|
||||
children: React.PropTypes.node,
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
@ -40,7 +35,12 @@ export class App extends React.Component { // eslint-disable-line react/prefer-s
|
||||
}
|
||||
}
|
||||
|
||||
App.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
App.propTypes = {
|
||||
children: React.PropTypes.node,
|
||||
plugins: React.PropTypes.object,
|
||||
notifications: React.PropTypes.object,
|
||||
onHideNotification: React.PropTypes.func,
|
||||
|
||||
@ -16,11 +16,6 @@ const exposedComponents = {
|
||||
};
|
||||
|
||||
export class PluginPage extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
|
||||
static propTypes = {
|
||||
children: React.PropTypes.node,
|
||||
};
|
||||
|
||||
render() {
|
||||
const containers = this.props.plugins.valueSeq().map((plugin, i) => {
|
||||
const Elem = plugin.get('mainComponent');
|
||||
@ -41,6 +36,10 @@ export class PluginPage extends React.Component { // eslint-disable-line react/p
|
||||
}
|
||||
}
|
||||
|
||||
PluginPage.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
PluginPage.propTypes = {
|
||||
plugins: React.PropTypes.object,
|
||||
};
|
||||
|
||||
@ -22,6 +22,7 @@ class Table extends React.Component { // eslint-disable-line react/prefer-statel
|
||||
destination={destination}
|
||||
headers={this.props.headers}
|
||||
record={record}
|
||||
history={this.props.history}
|
||||
/>
|
||||
);
|
||||
});
|
||||
@ -41,6 +42,10 @@ class Table extends React.Component { // eslint-disable-line react/prefer-statel
|
||||
}
|
||||
}
|
||||
|
||||
Table.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
Table.propTypes = {
|
||||
records: React.PropTypes.array,
|
||||
route: React.PropTypes.object,
|
||||
@ -48,6 +53,7 @@ Table.propTypes = {
|
||||
headers: React.PropTypes.array,
|
||||
changeSort: React.PropTypes.func,
|
||||
sort: React.PropTypes.string,
|
||||
history: React.PropTypes.object,
|
||||
};
|
||||
|
||||
export default Table;
|
||||
|
||||
@ -40,7 +40,6 @@ class TableHeader extends React.Component { // eslint-disable-line react/prefer-
|
||||
return (
|
||||
<thead className={styles.tableHeader}>
|
||||
<tr className={styles.tableHeader}>
|
||||
<th>ID</th>
|
||||
{headers}
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
@ -5,19 +5,25 @@
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router';
|
||||
import { Link, browserHistory, Match, propTypes } from 'react-router';
|
||||
|
||||
import styles from './styles.scss';
|
||||
|
||||
class TableRow extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.goEditPage = this.goEditPage.bind(this);
|
||||
}
|
||||
|
||||
goEditPage() {
|
||||
this.context.router.push(this.props.destination);
|
||||
}
|
||||
|
||||
render() {
|
||||
const cells = this.props.headers.map((header, i) => (<td key={i} className={styles.tableRowCell}>{this.props.record[header.name]}</td>));
|
||||
|
||||
return (
|
||||
<tr className={styles.tableRow}>
|
||||
<td scope="row" className={styles.tableRowCell}>
|
||||
<Link to={this.props.destination}>{this.props.record['id']}</Link>
|
||||
</td>
|
||||
<tr className={styles.tableRow} onClick={() => this.goEditPage(this.props.destination)}>
|
||||
{cells}
|
||||
<td className={styles.actions}>
|
||||
<Link to={this.props.destination}>
|
||||
@ -32,10 +38,15 @@ class TableRow extends React.Component { // eslint-disable-line react/prefer-sta
|
||||
}
|
||||
}
|
||||
|
||||
TableRow.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
TableRow.propTypes = {
|
||||
headers: React.PropTypes.array,
|
||||
record: React.PropTypes.object,
|
||||
destination: React.PropTypes.string,
|
||||
history: React.PropTypes.object,
|
||||
};
|
||||
|
||||
export default TableRow;
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
|
||||
&:hover {
|
||||
background: #F8FAFB;
|
||||
cursor: pointer;
|
||||
|
||||
td:first-child {
|
||||
border-left: 3px solid #1C5DE7;
|
||||
|
||||
@ -34,6 +34,10 @@ class App extends React.Component { // eslint-disable-line react/prefer-stateles
|
||||
}
|
||||
}
|
||||
|
||||
App.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
App.propTypes = {
|
||||
children: React.PropTypes.node,
|
||||
loadModels: React.PropTypes.func,
|
||||
|
||||
@ -70,6 +70,13 @@ export class List extends React.Component { // eslint-disable-line react/prefer-
|
||||
type: value.type,
|
||||
}));
|
||||
|
||||
// Add `id` column
|
||||
tableHeaders.unshift({
|
||||
name: 'id',
|
||||
label: 'ID',
|
||||
type: 'string',
|
||||
});
|
||||
|
||||
content = (
|
||||
<Table
|
||||
records={this.props.records}
|
||||
@ -78,6 +85,7 @@ export class List extends React.Component { // eslint-disable-line react/prefer-
|
||||
headers={tableHeaders}
|
||||
changeSort={this.props.changeSort}
|
||||
sort={this.props.sort}
|
||||
history={this.props.history}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -109,6 +117,10 @@ export class List extends React.Component { // eslint-disable-line react/prefer-
|
||||
}
|
||||
}
|
||||
|
||||
List.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
List.propTypes = {
|
||||
setCurrentModelName: React.PropTypes.func,
|
||||
records: React.PropTypes.oneOfType([
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user