WIP Introduce clone dashboard button
parent
fe8535f5b8
commit
d818c7aae5
|
@ -25,6 +25,7 @@ class DashboardsPageContents extends Component {
|
|||
dashboards,
|
||||
onDeleteDashboard,
|
||||
onCreateDashboard,
|
||||
onCloneDashboard,
|
||||
dashboardLink,
|
||||
} = this.props
|
||||
const {searchTerm} = this.state
|
||||
|
@ -69,6 +70,7 @@ class DashboardsPageContents extends Component {
|
|||
dashboards={filteredDashboards}
|
||||
onDeleteDashboard={onDeleteDashboard}
|
||||
onCreateDashboard={onCreateDashboard}
|
||||
onCloneDashboard={onCloneDashboard}
|
||||
dashboardLink={dashboardLink}
|
||||
/>
|
||||
</div>
|
||||
|
@ -87,6 +89,7 @@ DashboardsPageContents.propTypes = {
|
|||
dashboards: arrayOf(shape()),
|
||||
onDeleteDashboard: func.isRequired,
|
||||
onCreateDashboard: func.isRequired,
|
||||
onCloneDashboard: func.isRequired,
|
||||
dashboardLink: string.isRequired,
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ const DashboardsTable = ({
|
|||
dashboards,
|
||||
onDeleteDashboard,
|
||||
onCreateDashboard,
|
||||
onCloneDashboard,
|
||||
dashboardLink,
|
||||
}) => {
|
||||
const wrappedDelete = dashboard => () => {
|
||||
|
@ -71,6 +72,13 @@ const DashboardsTable = ({
|
|||
replaceWithIfNotAuthorized={<td />}
|
||||
>
|
||||
<td className="text-right">
|
||||
<button
|
||||
className="btn btn-xs btn-default"
|
||||
onClick={onCloneDashboard(dashboard)}
|
||||
>
|
||||
<span className="icon duplicate" />
|
||||
Clone
|
||||
</button>
|
||||
<ConfirmButton
|
||||
confirmAction={wrappedDelete}
|
||||
size="btn-xs"
|
||||
|
@ -100,6 +108,7 @@ DashboardsTable.propTypes = {
|
|||
dashboards: arrayOf(shape()),
|
||||
onDeleteDashboard: func.isRequired,
|
||||
onCreateDashboard: func.isRequired,
|
||||
onCloneDashboard: func.isRequired,
|
||||
dashboardLink: string.isRequired,
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,11 @@ class DashboardsPage extends Component {
|
|||
push(`/sources/${id}/dashboards/${data.id}`)
|
||||
}
|
||||
|
||||
handleCloneDashboard = dashboard => () => {
|
||||
console.log(dashboard)
|
||||
createDashboard({...dashboard, name: `${dashboard.name} (Clone)`})
|
||||
}
|
||||
|
||||
handleDeleteDashboard = dashboard => {
|
||||
this.props.handleDeleteDashboard(dashboard)
|
||||
}
|
||||
|
@ -39,6 +44,7 @@ class DashboardsPage extends Component {
|
|||
dashboards={dashboards}
|
||||
onDeleteDashboard={this.handleDeleteDashboard}
|
||||
onCreateDashboard={this.handleCreateDashbord}
|
||||
onCloneDashboard={this.handleCloneDashboard}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue