Skip to content

Commit c3109b5

Browse files
authored
[7.x] Advanced settings UI change to centralize save state (#5… (elastic#58373)
1 parent 328333d commit c3109b5

File tree

19 files changed

+5086
-4589
lines changed

19 files changed

+5086
-4589
lines changed

src/plugins/advanced_settings/public/_index.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
* under the License.
1818
*/
1919

20-
@import './management_app/advanced_settings';
20+
@import './management_app/index';
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@import './advanced_settings';
2+
3+
@import './components/index';

src/plugins/advanced_settings/public/management_app/advanced_settings.scss

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,27 @@
1717
* under the License.
1818
*/
1919

20-
.mgtAdvancedSettings__field {
20+
.mgtAdvancedSettings__field {
2121
+ * {
2222
margin-top: $euiSize;
2323
}
2424

25-
&Wrapper {
26-
width: 640px;
2725

28-
@include internetExplorerOnly() {
29-
min-height: 1px;
30-
}
26+
padding-left: $euiSizeS;
27+
margin-left: -$euiSizeS;
28+
&--unsaved {
29+
// Simulates a left side border without shifting content
30+
box-shadow: -$euiSizeXS 0px $euiColorSecondary;
3131
}
32-
33-
&Actions {
34-
padding-top: $euiSizeM;
32+
&--invalid {
33+
// Simulates a left side border without shifting content
34+
box-shadow: -$euiSizeXS 0px $euiColorDanger;
35+
}
36+
@include internetExplorerOnly() {
37+
min-height: 1px;
38+
}
39+
&Row {
40+
padding-left: $euiSizeS;
3541
}
3642

3743
@include internetExplorerOnly {
@@ -40,3 +46,19 @@
4046
}
4147
}
4248
}
49+
50+
.mgtAdvancedSettingsForm__unsavedCount {
51+
@include euiBreakpoint('xs', 's') {
52+
display: none;
53+
}
54+
}
55+
56+
.mgtAdvancedSettingsForm__unsavedCountMessage{
57+
// Simulates a left side border without shifting content
58+
box-shadow: -$euiSizeXS 0px $euiColorSecondary;
59+
padding-left: $euiSizeS;
60+
}
61+
62+
.mgtAdvancedSettingsForm__button {
63+
width: 100%;
64+
}

src/plugins/advanced_settings/public/management_app/advanced_settings.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { ComponentRegistry } from '../';
3838

3939
import { getAriaName, toEditableConfig, DEFAULT_CATEGORY } from './lib';
4040

41-
import { FieldSetting, IQuery } from './types';
41+
import { FieldSetting, IQuery, SettingsChanges } from './types';
4242

4343
interface AdvancedSettingsProps {
4444
enableSaving: boolean;
@@ -177,6 +177,13 @@ export class AdvancedSettingsComponent extends Component<
177177
});
178178
};
179179

180+
saveConfig = async (changes: SettingsChanges) => {
181+
const arr = Object.entries(changes).map(([key, value]) =>
182+
this.props.uiSettings.set(key, value)
183+
);
184+
return Promise.all(arr);
185+
};
186+
180187
render() {
181188
const { filteredSettings, query, footerQueryMatched } = this.state;
182189
const componentRegistry = this.props.componentRegistry;
@@ -205,18 +212,19 @@ export class AdvancedSettingsComponent extends Component<
205212
<AdvancedSettingsVoiceAnnouncement queryText={query.text} settings={filteredSettings} />
206213

207214
<Form
208-
settings={filteredSettings}
215+
settings={this.groupedSettings}
216+
visibleSettings={filteredSettings}
209217
categories={this.categories}
210218
categoryCounts={this.categoryCounts}
211219
clearQuery={this.clearQuery}
212-
save={this.props.uiSettings.set.bind(this.props.uiSettings)}
213-
clear={this.props.uiSettings.remove.bind(this.props.uiSettings)}
220+
save={this.saveConfig}
214221
showNoResultsMessage={!footerQueryMatched}
215222
enableSaving={this.props.enableSaving}
216223
dockLinks={this.props.dockLinks}
217224
toasts={this.props.toasts}
218225
/>
219226
<PageFooter
227+
toasts={this.props.toasts}
220228
query={query}
221229
onQueryMatchChange={this.onFooterQueryMatchChange}
222230
enableSaving={this.props.enableSaving}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import './form/index';

0 commit comments

Comments
 (0)