mirror of
https://github.com/discourse/discourse-data-explorer.git
synced 2025-02-17 17:04:49 +00:00
FIX: ensures explorer is using default values when provided (#240)
This commit is contained in:
parent
98e96fccc2
commit
97d60de92a
@ -7,12 +7,14 @@
|
|||||||
@nameProperty="name"
|
@nameProperty="name"
|
||||||
@content={{this.boolTypes}}
|
@content={{this.boolTypes}}
|
||||||
@onChange={{this.updateNullableBoolValue}}
|
@onChange={{this.updateNullableBoolValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
/>
|
/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<Input
|
<Input
|
||||||
@type="checkbox"
|
@type="checkbox"
|
||||||
@checked={{this.boolvalue}}
|
@checked={{this.boolvalue}}
|
||||||
{{on "change" this.updateBoolValue}}
|
{{on "change" this.updateBoolValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<span class="param-name">{{@info.identifier}}</span>
|
<span class="param-name">{{@info.identifier}}</span>
|
||||||
@ -22,6 +24,7 @@
|
|||||||
@type="number"
|
@type="number"
|
||||||
@value={{this.value}}
|
@value={{this.value}}
|
||||||
{{on "change" this.updateValue}}
|
{{on "change" this.updateValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
/>
|
/>
|
||||||
<span class="param-name">{{@info.identifier}}</span>
|
<span class="param-name">{{@info.identifier}}</span>
|
||||||
|
|
||||||
@ -30,6 +33,7 @@
|
|||||||
@value={{this.value}}
|
@value={{this.value}}
|
||||||
@type="text"
|
@type="text"
|
||||||
@onChange={{this.updateValue}}
|
@onChange={{this.updateValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
/>
|
/>
|
||||||
<span class="param-name">{{@info.identifier}}</span>
|
<span class="param-name">{{@info.identifier}}</span>
|
||||||
|
|
||||||
@ -38,6 +42,7 @@
|
|||||||
@value={{this.value}}
|
@value={{this.value}}
|
||||||
@options={{(hash maximum=1)}}
|
@options={{(hash maximum=1)}}
|
||||||
@onChange={{this.updateValue}}
|
@onChange={{this.updateValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
/>
|
/>
|
||||||
<span class="param-name">{{@info.identifier}}</span>
|
<span class="param-name">{{@info.identifier}}</span>
|
||||||
|
|
||||||
@ -45,11 +50,16 @@
|
|||||||
<EmailGroupUserChooser
|
<EmailGroupUserChooser
|
||||||
@value={{this.value}}
|
@value={{this.value}}
|
||||||
@onChange={{this.updateValue}}
|
@onChange={{this.updateValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
/>
|
/>
|
||||||
<span class="param-name">{{@info.identifier}}</span>
|
<span class="param-name">{{@info.identifier}}</span>
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<TextField @value={{this.value}} @onChange={{this.updateValue}} />
|
<TextField
|
||||||
|
@value={{this.value}}
|
||||||
|
@onChange={{this.updateValue}}
|
||||||
|
name={{@info.identifier}}
|
||||||
|
/>
|
||||||
<span class="param-name">{{@info.identifier}}</span>
|
<span class="param-name">{{@info.identifier}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
@ -69,13 +69,13 @@ export default class ParamInput extends Component {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// if no parsed params then get and set default values
|
// if no parsed params then get and set default values
|
||||||
const params = this.args.params;
|
const defaultValue = this.args.info.default;
|
||||||
this.value =
|
this.value =
|
||||||
this.args.info.type === "category_id"
|
this.args.info.type === "category_id"
|
||||||
? this.dasherizeCategoryId(params[identifier])
|
? this.dasherizeCategoryId(defaultValue)
|
||||||
: params[identifier];
|
: defaultValue;
|
||||||
this.boolValue = params[identifier] !== "false";
|
this.boolValue = defaultValue !== "false";
|
||||||
this.nullableBoolValue = params[identifier];
|
this.nullableBoolValue = defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
29
spec/system/explorer_spec.rb
Normal file
29
spec/system/explorer_spec.rb
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
RSpec.describe "Explorer", type: :system, js: true do
|
||||||
|
fab!(:current_user) { Fabricate(:admin) }
|
||||||
|
fab!(:group) { Fabricate(:group, name: "group") }
|
||||||
|
fab!(:group_user) { Fabricate(:group_user, user: current_user, group: group) }
|
||||||
|
|
||||||
|
before { SiteSetting.data_explorer_enabled = true }
|
||||||
|
|
||||||
|
context "with a query using a default param" do
|
||||||
|
fab!(:query_1) do
|
||||||
|
Fabricate(
|
||||||
|
:query,
|
||||||
|
name: "My default param query",
|
||||||
|
description: "Test default param query",
|
||||||
|
sql: "-- [params]\n-- string :limit = 42\n\nSELECT * FROM users LIMIT :limit",
|
||||||
|
user: current_user,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
fab!(:query_group_1) { Fabricate(:query_group, query: query_1, group: group) }
|
||||||
|
|
||||||
|
it "pre-fills the field with the default param" do
|
||||||
|
sign_in(current_user)
|
||||||
|
visit("/g/group/reports/#{query_1.id}")
|
||||||
|
|
||||||
|
expect(page).to have_field("limit", with: 42)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user