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

switch from fetchDashcardData to fetchCardData

parent bab8dee8
Branches
Tags
No related merge requests found
......@@ -36,7 +36,7 @@ export const REMOVE_CARD_FROM_DASH = 'REMOVE_CARD_FROM_DASH';
export const SET_DASHCARD_ATTRIBUTES = 'SET_DASHCARD_ATTRIBUTES';
export const SAVE_DASHCARD = 'SAVE_DASHCARD';
export const FETCH_DASHCARD_DATASET = 'FETCH_DASHCARD_DATASET';
export const FETCH_CARD_DATA = 'FETCH_CARD_DATA';
export const FETCH_REVISIONS = 'FETCH_REVISIONS';
export const REVERT_TO_REVISION = 'REVERT_TO_REVISION';
......@@ -92,11 +92,10 @@ export const addCardToDashboard = function({ dashId, cardId }) {
export const removeCardFromDashboard = createAction(REMOVE_CARD_FROM_DASH);
export const fetchDashCardData = createThunkAction(FETCH_DASHCARD_DATASET, function(id) {
export const fetchCardData = createThunkAction(FETCH_CARD_DATA, function(card) {
return async function(dispatch, getState) {
let dashcard = getState().dashcards[id];
let result = await timeout(Metabase.dataset(dashcard.card.dataset_query), DATASET_TIMEOUT * 1000, "Card took longer than " + DATASET_TIMEOUT + " seconds to load.");
return { id, result };
let result = await timeout(Metabase.dataset(card.dataset_query), DATASET_TIMEOUT * 1000, "Card took longer than " + DATASET_TIMEOUT + " seconds to load.");
return { id: card.id, result };
};
});
......
......@@ -22,7 +22,7 @@ export default class DashCard extends Component {
dashcard: PropTypes.object.isRequired,
markNewCardSeen: PropTypes.func.isRequired,
fetchDashCardData: PropTypes.func.isRequired,
fetchCardData: PropTypes.func.isRequired,
};
async componentDidMount() {
......@@ -33,7 +33,7 @@ export default class DashCard extends Component {
}
try {
await this.props.fetchDashCardData(this.props.dashcard.id);
await this.props.fetchCardData(this.props.dashcard.card);
} catch (error) {
this.setState({ error });
}
......
......@@ -33,7 +33,7 @@ export default class DashboardGrid extends Component {
setDashCardAttributes: PropTypes.func.isRequired,
removeCardFromDashboard: PropTypes.func.isRequired,
markNewCardSeen: PropTypes.func.isRequired,
fetchDashCardData: PropTypes.func.isRequired,
fetchCardData: PropTypes.func.isRequired,
onChangeLocation: PropTypes.func.isRequired
};
......@@ -110,7 +110,9 @@ export default class DashboardGrid extends Component {
dashcard={this.state.addSeriesModalDashCard}
dashboard={this.props.dashboard}
cards={this.props.cards}
cardData={this.props.cardData}
fetchCards={this.props.fetchCards}
fetchCardData={this.props.fetchCardData}
removeCardFromDashboard={this.props.removeCardFromDashboard}
onClose={() => this.setState({ addSeriesModalDashCard: null })}
/> }
......@@ -202,7 +204,7 @@ export default class DashboardGrid extends Component {
<div key={dc.id} className="DashCard" onMouseDownCapture={this.onDashCardMouseDown}>
<DashCard
dashcard={dc}
fetchDashCardData={this.props.fetchDashCardData}
fetchCardData={this.props.fetchCardData}
markNewCardSeen={this.props.markNewCardSeen}
onEdit={this.onDashCardEdit.bind(this, dc)}
onRemove={this.onDashCardRemove.bind(this, dc)}
......
......@@ -5,7 +5,7 @@ import {
SELECT_DASHBOARD,
SET_EDITING_DASHBOARD,
FETCH_DASHBOARD,
FETCH_DASHCARD_DATASET,
FETCH_CARD_DATA,
SET_DASHBOARD_ATTRIBUTES,
SET_DASHCARD_ATTRIBUTES,
ADD_CARD_TO_DASH,
......@@ -71,6 +71,6 @@ export const revisions = handleActions({
[FETCH_REVISIONS]: { next: (state, { payload: { entity, id, revisions } }) => ({ ...state, [entity+'-'+id]: revisions })}
}, {});
export const dashcardDatasets = handleActions({
[FETCH_DASHCARD_DATASET]: { next: (state, { payload: { id, result }}) => ({ ...state, [id]: result }) }
export const cardData = handleActions({
[FETCH_CARD_DATA]: { next: (state, { payload: { id, result }}) => ({ ...state, [id]: result }) }
}, {});
......@@ -7,9 +7,9 @@ const isEditingSelector = state => state.isEditing;
const cardsSelector = state => state.cards
const dashboardsSelector = state => state.dashboards
const dashcardsSelector = state => state.dashcards
const dashcardDatasetsSelector = state => state.dashcardDatasets
const cardDataSelector = state => state.cardData
const cardIdListSelector = state => state.cardList
const revisionsSelector = state => state.revisions
const revisionsSelector = state => state.revisions
const dashboardSelector = createSelector(
[selectedDashboardSelector, dashboardsSelector],
......@@ -17,14 +17,14 @@ const dashboardSelector = createSelector(
);
const dashboardCompleteSelector = createSelector(
[dashboardSelector, dashcardsSelector, dashcardDatasetsSelector],
(dashboard, dashcards, dashcardDatasets) => {
[dashboardSelector, dashcardsSelector, cardDataSelector],
(dashboard, dashcards, cardData) => {
if (dashboard) {
dashboard = {
...dashboard,
ordered_cards: dashboard.ordered_cards.map(id => ({
...dashcards[id],
dataset: dashcardDatasets[id]
dataset: cardData[dashcards[id].card.id]
})).filter(dc => !dc.isRemoved)
};
}
......@@ -51,6 +51,6 @@ const cardListSelector = createSelector(
);
export const dashboardSelectors = createSelector(
[isEditingSelector, isDirtySelector, selectedDashboardSelector, dashboardCompleteSelector, cardListSelector, revisionsSelector],
(isEditing, isDirty, selectedDashboard, dashboard, cards, revisions) => ({ isEditing, isDirty, selectedDashboard, dashboard, cards, revisions })
[isEditingSelector, isDirtySelector, selectedDashboardSelector, dashboardCompleteSelector, cardListSelector, revisionsSelector, cardDataSelector],
(isEditing, isDirty, selectedDashboard, dashboard, cards, revisions, cardData) => ({ isEditing, isDirty, selectedDashboard, dashboard, cards, revisions, cardData })
);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment