Skip to content
Snippets Groups Projects
Commit eac39b79 authored by Tom Robinson's avatar Tom Robinson
Browse files

Misc frontend fixes

parent 8fce24bb
No related branches found
No related tags found
No related merge requests found
......@@ -166,6 +166,7 @@ export const getRoutes = (store) =>
{/* ADMIN */}
<Route path="/admin" component={IsAdmin}>
<IndexRedirect to="/admin/settings" />
<Route path="databases" component={DatabaseListApp} />
<Route path="databases/create" component={DatabaseEditApp} />
<Route path="databases/:databaseId" component={DatabaseEditApp} />
......
import React, { Component, PropTypes } from "react";
import { Link } from "react-router";
import ModalContent from "metabase/components/ModalContent.jsx";
export default class CreatedDatabaseModal extends Component {
static propTypes = {
databaseId: PropTypes.number.isRequired,
onClose: PropTypes.func.isRequired,
onDone: PropTypes.func.isRequired
};
render() {
const { onClose, onDone, databaseId } = this.props;
return (
<ModalContent
title="Your database has been added!"
closeFn={this.props.onClose}
closeFn={onClose}
>
<div className="Form-inputs mb4">
<p>We're analyzing its schema now to make some educated guesses about its metadata. Click on the Metadata section to see what we've found and to make edits.</p>
<p>
We're analyzing its schema now to make some educated guesses about its
metadata. <Link to={"/admin/datamodel/database/"+databaseId}>View this
database</Link> in the Data Model section to see what we've found and to
make edits, or <Link to={"/q?db="+databaseId}>ask a question</Link> about
this database.
</p>
</div>
<div className="Form-actions flex layout-centered">
<button className="Button Button--primary px3" onClick={() => this.props.onDone()}>Done</button>
<button className="Button Button--primary px3" onClick={onDone}>Done</button>
</div>
</ModalContent>
);
......
......@@ -47,7 +47,7 @@ export default class DatabaseEditApp extends Component {
return (
<div className="wrapper">
<Breadcrumbs crumbs={[
["Databases", "/admin/databases/"],
["Databases", "/admin/databases"],
[database && database.id != null ? database.name : "Add Database"]
]} />
<section className="Grid Grid--gutters Grid--2-of-3">
......
......@@ -19,7 +19,7 @@ import * as databaseActions from "../database";
const mapStateToProps = (state, props) => {
return {
created: props.params.created,
created: props.location.query.created,
databases: getDatabasesSorted(state),
hasSampleDataset: hasSampleDataset(state),
engines: MetabaseSettings.get('engines')
......@@ -108,6 +108,7 @@ export default class DatabaseList extends Component {
isInitiallyOpen={created}
>
<CreatedDatabaseModal
databaseId={parseInt(created)}
onDone={() => this.refs.createdDatabaseModal.toggle() }
onClose={() => this.refs.createdDatabaseModal.toggle() }
/>
......
......@@ -82,7 +82,7 @@ export const saveDatabase = createThunkAction("SAVE_DATABASE", function(database
//$scope.$emit("database:created", new_database);
savedDatabase = await MetabaseApi.db_create(database);
MetabaseAnalytics.trackEvent("Databases", "Create", database.engine);
push('/admin/databases?created');
dispatch(push('/admin/databases?created='+savedDatabase.id));
}
// this object format is what FormMessage expects:
......@@ -109,7 +109,7 @@ export const deleteDatabase = createThunkAction("DELETE_DATABASE", function(data
await MetabaseApi.db_delete({"dbId": databaseId});
MetabaseAnalytics.trackEvent("Databases", "Delete", redirect ? "Using Detail" : "Using List");
if (redirect) {
push('/admin/databases/');
dispatch(push('/admin/databases/'));
}
return databaseId;
} catch(error) {
......
......@@ -82,7 +82,7 @@ export const selectDatabase = createThunkAction("SELECT_DATABASE", function(db)
dispatch(fetchDatabaseIdfields(db.id));
// we also want to update our url to match our new state
push('/admin/datamodel/database/'+db.id);
dispatch(push('/admin/datamodel/database/'+db.id));
return database;
} catch (error) {
......@@ -95,7 +95,7 @@ export const selectDatabase = createThunkAction("SELECT_DATABASE", function(db)
export const selectTable = createThunkAction("SELECT_TABLE", function(table) {
return async function(dispatch, getState) {
// we also want to update our url to match our new state
push('/admin/datamodel/database/'+table.db_id+'/table/'+table.id);
dispatch(push('/admin/datamodel/database/'+table.db_id+'/table/'+table.id));
return table.id;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment