Skip to content

Commit 2dc66fd

Browse files
committed
Fix multiple groups issue
1 parent 1f7df8c commit 2dc66fd

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

src/components/ExplorerActiveChartButton/ExplorerActiveChartButton.react.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ export default class ExplorerActiveChartButton extends React.Component {
157157
style={calloutStyle}>
158158
</div>
159159
<ExplorerQueryComposer
160+
index={this.props.index || 0}
160161
isNew={false}
161162
query={this.props.query}
162163
isTimeSeries={this.props.isTimeSeries}

src/components/ExplorerMenuButton/ExplorerMenuButton.react.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ export default class ExplorerMenuButton extends React.Component {
130130
<ExplorerQueryComposer
131131
isNew={true}
132132
isTimeSeries={this.props.isTimeSeries}
133-
onSave={this.handleSave.bind(this)} />
133+
onSave={this.handleSave.bind(this)}
134+
index={this.props.index || 0}/>
134135
);
135136
break;
136137
}

src/components/ExplorerQueryComposer/ExplorerQueryComposer.react.js

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ const FIELD_LABELS = {
3636
// 'Latency (s)'
3737
// ],
3838
'Custom Event': [
39-
'Event Name',
40-
'Dimensions'
39+
'Event Name'
40+
// 'Dimensions'
4141
// 'Installation ID',
4242
// 'Parse User ID',
4343
// 'Parse SDK',
@@ -147,6 +147,7 @@ export default class ExplorerQueryComposer extends React.Component {
147147
getInitialStateFromProps(props) {
148148
let query = props.query || {};
149149
let defaultState = {};
150+
let index = props.index
150151
if (props.isTimeSeries) {
151152
defaultState = {
152153
...TIMESERIES_DEFAULT_STATE,
@@ -163,7 +164,7 @@ export default class ExplorerQueryComposer extends React.Component {
163164
name: query.name || '',
164165
source: query.source || TABLE_SOURCES_LABEL[0],
165166
aggregates: query.aggregates || defaultState.aggregates,
166-
groups: query.groups || defaultState.groups,
167+
groups: query.groups && query.groups[index] || defaultState.groups,
167168
limit: query.limit || defaultState.limit,
168169
filters: query.filters || [],
169170
orders: query.orders || []
@@ -213,7 +214,7 @@ export default class ExplorerQueryComposer extends React.Component {
213214
source: this.state.source,
214215
name: this.state.name,
215216
aggregates: this.state.aggregates,
216-
groups: this.state.groups,
217+
groups: [ this.state.groups[this.props.index || 0] ],
217218
limit: this.state.limit,
218219
filters: this.state.filters,
219220
// Only pass them if order is valid
@@ -346,7 +347,9 @@ export default class ExplorerQueryComposer extends React.Component {
346347

347348
renderGroup(grouping, index=0) {
348349
let deleteButton = null;
349-
let specialGroup = this.props.isTimeSeries && index === 0;
350+
let specialGroup = this.props.isTimeSeries && index;
351+
let options = specialGroup ? REQUIRED_GROUPING_LABELS : FIELD_LABELS[this.state.source]
352+
let defaultValue = Array.isArray(options) ? options[0] : options
350353
if (!specialGroup) {
351354
deleteButton = (
352355
<a
@@ -363,8 +366,8 @@ export default class ExplorerQueryComposer extends React.Component {
363366
<div className={styles.boxContent}>
364367
<div className={styles.formLabel}>Grouping</div>
365368
<ChromeDropdown
366-
value={grouping}
367-
options={specialGroup ? REQUIRED_GROUPING_LABELS : FIELD_LABELS[this.state.source]}
369+
value={grouping || defaultValue}
370+
options={options}
368371
onChange={(val) => {
369372
let groups = this.state.groups;
370373
groups[index] = val;
@@ -529,7 +532,7 @@ export default class ExplorerQueryComposer extends React.Component {
529532
}
530533

531534
render() {
532-
let { query, isNew, isTimeSeries, onDismiss } = this.props;
535+
let { query, isNew, isTimeSeries, onDismiss, index } = this.props;
533536
query = query || {};
534537

535538
// First and foremost, let's not waste time if the query itself is not composable.
@@ -612,7 +615,7 @@ export default class ExplorerQueryComposer extends React.Component {
612615

613616
group = (
614617
<div className={styles.queryComposerBox}>
615-
{this.renderGroup(this.state.groups[0])}
618+
{this.renderGroup(this.state.groups[index], index)}
616619
</div>
617620
);
618621
} else {
@@ -646,12 +649,12 @@ export default class ExplorerQueryComposer extends React.Component {
646649
</div>
647650
));
648651

649-
let extraGroupModels = isTimeSeries ? this.state.groups.slice(1) : this.state.groups;
650-
let extraGroups = extraGroupModels.map((group, i) => (
651-
<div className={styles.queryComposerBox} key={`group_${i + 1}`}>
652-
{this.renderGroup(group, i + offset)}
653-
</div>
654-
));
652+
// let extraGroupModels = isTimeSeries ? this.state.groups.slice(1) : this.state.groups;
653+
// let extraGroups = extraGroupModels.map((group, i) => (
654+
// <div className={styles.queryComposerBox} key={`group_${i + 1}`}>
655+
// {this.renderGroup(group, i + offset)}
656+
// </div>
657+
// ));
655658

656659
let filters = this.state.filters.map((filter, i) => (
657660
<div className={styles.queryComposerBox} key={`filter_${i}`}>
@@ -728,7 +731,6 @@ export default class ExplorerQueryComposer extends React.Component {
728731
{group}
729732
{limit}
730733
{extraAggregates}
731-
{extraGroups}
732734
{filters}
733735
{orders}
734736

src/dashboard/Analytics/Explorer/Explorer.react.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,8 @@ export default class Explorer extends DashboardView {
383383
isTimeSeries={isTimeSeries}
384384
query={query}
385385
color={ChartColorSchemes[i]}
386-
queries={queries} />
386+
queries={queries}
387+
index={i}/>
387388
</div>
388389
));
389390

@@ -395,7 +396,8 @@ export default class Explorer extends DashboardView {
395396
onDelete={this.handleQueryDelete.bind(this)}
396397
isTimeSeries={isTimeSeries}
397398
value='Add query'
398-
queries={queries} />
399+
queries={queries}
400+
index={this.state.activeQueries.length}/>
399401
</div>
400402
);
401403

0 commit comments

Comments
 (0)