Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
a3f2ca8
Adds saved query to data mappings
TinaHeiligers Jun 7, 2019
d934765
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Jun 10, 2019
e76067c
Loading saved query in discover
Bargs Jun 10, 2019
188551e
Create SavedQuery type and add it as a prop to the SearchBar
Bargs Jun 10, 2019
aebd5bd
adds conditional for filters and timefilters
TinaHeiligers Jun 11, 2019
fd297f0
Adds append to suggestions component
TinaHeiligers Jun 11, 2019
9dfc92c
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 11, 2019
39ee55e
hard codes styling and saved query title
TinaHeiligers Jun 11, 2019
e960475
Pass SavedQuery down through the SearchBar components and add
Bargs Jun 11, 2019
a08ffec
Add ability to save current query. Needs some bug fixes and polish.
Bargs Jun 11, 2019
e85211b
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 12, 2019
0fc7a12
re-add save button
Bargs Jun 12, 2019
239c446
wrap title in flex item
Bargs Jun 12, 2019
cab055a
Fix apparent bug in getDerviedStateFromProps. Query should only update
Bargs Jun 12, 2019
3f2e95a
Move modal into its own component and use it in the SearchBar
Bargs Jun 12, 2019
99194ca
Check explicitly for undefined
Bargs Jun 12, 2019
9d1af7f
Move state caching to SearchBar
Bargs Jun 12, 2019
0fa0a10
Close modal on query save success
Bargs Jun 12, 2019
334dd10
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 13, 2019
62225dc
changed savedQuery type to allow for undefined
TinaHeiligers Jun 13, 2019
453e8b8
preserves saved query on state after submit
TinaHeiligers Jun 13, 2019
2c399eb
Display success and error messages on save
Bargs Jun 13, 2019
3ce41d7
Link to saved objects management page
Bargs Jun 13, 2019
4be53f7
Add ability to update an existing saved query
Bargs Jun 13, 2019
5455272
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 14, 2019
45e03f8
Loads saved queries into suggestions
TinaHeiligers Jun 14, 2019
75d240f
add description to saved query suggestion
Bargs Jun 14, 2019
0dc4d90
Add ability to load saved queries from autocomplete
Bargs Jun 14, 2019
32f2654
Adds save as new query functionality
TinaHeiligers Jun 17, 2019
0157959
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 17, 2019
3f9e88f
Fix isDirty and add Save As New when not dirty
Bargs Jun 17, 2019
0f13705
Add saved query management popover
Bargs Jun 17, 2019
841aff0
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 18, 2019
f7279a1
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 19, 2019
afcaa35
WIP adding saved queries to the dashboard app
TinaHeiligers Jun 19, 2019
2b566a1
Support saved queries in Dashboard
Bargs Jun 20, 2019
5f40fbf
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Jun 20, 2019
36d1e2f
Add back changes lost in merge
Bargs Jun 20, 2019
103c082
add saved query to visualize
Bargs Jun 20, 2019
5bb384c
Update Discover to be consistent with Dashboard and Visualize
Bargs Jun 20, 2019
8b57318
Update app permissions to include saved query access
Bargs Jun 20, 2019
239f3b4
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Jun 20, 2019
a8fb548
Fixes types
TinaHeiligers Jun 20, 2019
2135698
Start tests for saved query service
Bargs Jun 20, 2019
c320f79
Adds 'undefined' as a type to SavedObjectsAttributes
TinaHeiligers Jun 21, 2019
f819778
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 21, 2019
f46c70c
Adds Error thrown test
TinaHeiligers Jun 21, 2019
2af20f6
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 21, 2019
d3cecb3
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 24, 2019
b786886
Updates QueryBar and QueryBarInput snapshots
TinaHeiligers Jun 24, 2019
1406c66
Fixes saved searches icon in test
TinaHeiligers Jun 24, 2019
21b3d62
Replaces query-bar with search-bar
TinaHeiligers Jun 24, 2019
aef3d4b
Changes search icon from search to discoverApp for saved search integ…
TinaHeiligers Jun 24, 2019
cb43322
changes icon from search to discoverApp for saved_search integration …
TinaHeiligers Jun 24, 2019
c3e3504
Replaces the query-bar with the search-bar, hiding the filters from t…
TinaHeiligers Jun 24, 2019
7fd8453
Merge branch 'saved_filters_maps_app' into saved_filters
TinaHeiligers Jun 24, 2019
86cd42e
Changes 'search' icon to 'discoverApp' for saved searches missed before
TinaHeiligers Jun 25, 2019
c13f764
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 25, 2019
45b1cc7
removes commented out code, undoes comma deletion in kibana/index.js
TinaHeiligers Jun 25, 2019
75c000d
Adds Search Bar back
TinaHeiligers Jun 25, 2019
22d0273
Changes QueryBar to SearchBar in the FilterEditor, adds a customSubmi…
TinaHeiligers Jun 25, 2019
c4e8751
Adds saved_object type query to test expectation array
TinaHeiligers Jun 26, 2019
c2bdc0a
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 26, 2019
74aacc8
Allows Saved Queries to be saved and edited in Maps
TinaHeiligers Jun 26, 2019
6b1ba4f
Deletes unused Eui component from saved_query_row
TinaHeiligers Jun 27, 2019
d1d563b
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 27, 2019
d2d62ee
Fixes maps nav bar to handle saved queries
TinaHeiligers Jun 27, 2019
3e41043
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jun 28, 2019
2beb927
Loads a saved query into the layer filter query bar, allows saving ch…
TinaHeiligers Jun 28, 2019
1fae81b
Layer filter query search bar closes after selecting and saving a sav…
TinaHeiligers Jun 28, 2019
52a49b7
Changes QueryBar to SearchBar in maps layer_panel join_editor where_e…
TinaHeiligers Jun 28, 2019
4877f48
Merge branch 'saved_filters' of github.com:TinaHeiligers/kibana into …
TinaHeiligers Jun 28, 2019
361d1e2
Enables saving queries, saving changes to saved queries, using saved …
TinaHeiligers Jun 28, 2019
d5a152b
Enables saved queries to be used, created and modified in the where c…
TinaHeiligers Jun 28, 2019
663586b
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 8, 2019
36b0bd3
fixes setting time filter in map_controller
TinaHeiligers Jul 8, 2019
ecb8925
Conditionally shows filters and time filter option in the save query …
TinaHeiligers Jul 8, 2019
ad667b3
fixes show filter options type
TinaHeiligers Jul 9, 2019
8bd9468
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 9, 2019
f86b201
corrects routing to saved objects
TinaHeiligers Jul 9, 2019
62da75a
typing
TinaHeiligers Jul 9, 2019
d16da8b
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 9, 2019
5218ab5
begins work on the clear saved query functionality
TinaHeiligers Jul 9, 2019
9de64a6
fixes onClose type
TinaHeiligers Jul 9, 2019
d8ef743
updates query_bar snapshot
TinaHeiligers Jul 10, 2019
ba78c4b
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 10, 2019
448dcfa
implements close savedQuery in Discover
TinaHeiligers Jul 10, 2019
aecfc18
Updates query_bar snapshot
TinaHeiligers Jul 10, 2019
6242426
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 11, 2019
703c38e
Support close button in Visualize
Bargs Jul 11, 2019
47cd2f3
Support close button in Dashboard
Bargs Jul 11, 2019
dedca56
Support close button in Maps main search bar
Bargs Jul 11, 2019
6ee50e4
Make onClearSavedQuery handler optional
Bargs Jul 11, 2019
3486390
Add privileges for saved queries if user has access to maps
Bargs Jul 11, 2019
e1e15a5
Fix issue where watcher was overriding saved search that had just bee…
Bargs Jul 11, 2019
13e4c6f
Conditionally show query saving UI based on uiCapabilities
Bargs Jul 11, 2019
d954da0
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 12, 2019
e60c63f
Adds security around saved queries to dashboard
TinaHeiligers Jul 12, 2019
f6707e8
Adds security aroung saved queries to visualize
TinaHeiligers Jul 12, 2019
86c8f11
Adds security around saved queries to main map query bar with date pi…
TinaHeiligers Jul 12, 2019
261e107
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 15, 2019
361e8af
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Jul 16, 2019
7856d93
Use the ID as a key if the suggestion type is savedQuery
Bargs Jul 16, 2019
3f170c3
Tighten type definition for prepend prop
Bargs Jul 16, 2019
f65efd9
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Jul 17, 2019
a3845c6
Add security functional tests for the all permissions scenario
Bargs Jul 17, 2019
52dd391
Add security functional tests for the read only scenario
Bargs Jul 17, 2019
1eace53
Fixes suggestions and suggestion component jest tests
TinaHeiligers Jul 18, 2019
0fd4309
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 18, 2019
ccb0802
Adds security tests for saved queries to the dashboard functional tests
TinaHeiligers Jul 18, 2019
bf06d9f
Adds security tests for saved queries to the visualize functional tests
TinaHeiligers Jul 18, 2019
db622a9
Create saved query manager component
Bargs Jul 18, 2019
51cf96e
Add Saved Query links to the management popover
Bargs Jul 18, 2019
e6fc105
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Jul 19, 2019
309b5ad
Adds paragraph content to the saved query manager when there are no s…
TinaHeiligers Jul 19, 2019
d3353b5
Adds all buttons and an icon for deleting a saved query. The buttons …
TinaHeiligers Jul 19, 2019
ae1697a
Button grouping
TinaHeiligers Jul 19, 2019
6a5abff
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Aug 1, 2019
2e1f903
Add files missed in merge commit
Bargs Aug 1, 2019
f972fa3
Fix infinite loop and refresh saved query list when management popover
Bargs Aug 1, 2019
7ae43bb
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Aug 2, 2019
564339e
Remove saved queries from maps for now
Bargs Aug 2, 2019
de63765
Correct spacing between query manager buttons
Bargs Aug 2, 2019
c5aaa30
Hook up delete button in saved query manager
Bargs Aug 2, 2019
b44c416
resolved type error, adds query to expectInvalidTypeSpecified array
TinaHeiligers Aug 2, 2019
bc6a00e
deletes unused translations
TinaHeiligers Aug 2, 2019
e99bfcf
Adds jest tests for saved_query_service
TinaHeiligers Aug 2, 2019
ce480c6
Adds description to the saved search popover on save
TinaHeiligers Aug 2, 2019
5856695
fixes unused translations
TinaHeiligers Aug 2, 2019
5ed067a
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Aug 5, 2019
9685145
Remove saved query UI from autocomplete suggestions
Bargs Aug 5, 2019
6e9deef
Use the same class the datepicker uses to make the prepend element the
Bargs Aug 5, 2019
644c410
always show save as new when a saved query is loaded
Bargs Aug 5, 2019
9aba13c
Merge remote-tracking branch 'upstream/saved_filters' into saved_filters
Bargs Aug 5, 2019
d20c2f8
Fix search bar jest tests
Bargs Aug 5, 2019
e196c8a
fix functional test
Bargs Aug 5, 2019
b8fff34
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Aug 6, 2019
ad610ee
Include filters by default in saved queries
Bargs Aug 6, 2019
e41e85f
Don't allow saved queries with duplicate titles
Bargs Aug 6, 2019
c12d5f7
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Aug 7, 2019
99df809
Adds pagination to the saved query manager
TinaHeiligers Aug 7, 2019
00ecc89
changes page count to 50
TinaHeiligers Aug 7, 2019
c20f97f
Use overflow hidden so native scroll bar doesn't appear
Bargs Aug 7, 2019
5f71f65
Add saved query deletion confirmation modal
Bargs Aug 7, 2019
8634211
fix "no saved queries" copy and internationalize it
Bargs Aug 7, 2019
77142c6
add aria-labeledby to saved query list so users know what the list is…
Bargs Aug 7, 2019
a7b4421
Add extra description of open button for screen reader
Bargs Aug 7, 2019
d89d75e
add aria-label to delete button
Bargs Aug 7, 2019
1f2d98a
sentence case
Bargs Aug 7, 2019
1785437
Add aria-label to the save as new button
Bargs Aug 7, 2019
dc3c7b6
add aria-label to save changes button
Bargs Aug 7, 2019
1916608
Add aria-label to clear button
Bargs Aug 7, 2019
a2a5a14
Add aria-label to save button
Bargs Aug 7, 2019
dba23c0
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Aug 8, 2019
9c032e9
Translate static text
Bargs Aug 8, 2019
ae5ecff
translate query bar message we noticed was static
Bargs Aug 8, 2019
9f7c71c
Move conditional one level up so we hide the button as well as the text
Bargs Aug 8, 2019
969a49e
Remove duplicate translation ID
Bargs Aug 8, 2019
3d178c6
update saved query service tests now that title is used as ID
Bargs Aug 8, 2019
2e2f746
add test for deleteSavedQuery method
Bargs Aug 8, 2019
4ca6e1b
Updating discover security functional tests to check popover instead of
Bargs Aug 8, 2019
fcfbf03
Add info icon with description of saved query
Bargs Aug 8, 2019
5bc3520
don't show delete button when user doesn't have save query write perms
Bargs Aug 8, 2019
0395adb
Test that delete button shows when user has saved query write perms
Bargs Aug 8, 2019
2342dae
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Aug 9, 2019
0e7b2a3
Adds empty query as delay for deleting a saved query test
TinaHeiligers Aug 9, 2019
72753df
Adds test for loading a saved query as a discover read-only user
TinaHeiligers Aug 9, 2019
95abe15
Adds test for a readonly discover user not being able to delete a sav…
TinaHeiligers Aug 9, 2019
70a0783
Adds test to ensure discovery readonly user cannot save changes to a …
TinaHeiligers Aug 9, 2019
750aa30
Test that clear button works as a discover readonly user
TinaHeiligers Aug 9, 2019
b9e7ec0
Adds saved query tests to dashboard as a dashboard & embeddable all p…
TinaHeiligers Aug 9, 2019
9eea8ec
Adds saved query manager interactions tests as a dashboard read-only …
TinaHeiligers Aug 9, 2019
057933c
Adds saved query manager interaction tests to visualize
TinaHeiligers Aug 9, 2019
4918baa
Fixes typo in visualize security test
TinaHeiligers Aug 9, 2019
2272757
Merge remote-tracking branch 'upstream/master' into saved_filters
Bargs Aug 12, 2019
259370e
Fix type error
Bargs Aug 12, 2019
4ec7c16
Use uiSettings for time defaults
Bargs Aug 12, 2019
53e07b0
Be consistent with our variable use
Bargs Aug 12, 2019
1c01c53
condense imports
Bargs Aug 12, 2019
85d8fc3
use default prop values
Bargs Aug 12, 2019
8a5d176
Explain why time filter is not included by default
Bargs Aug 12, 2019
b04108e
Get rid of our own RefreshInterval
Bargs Aug 12, 2019
8c9cc22
Use the timefilter TimeRange type
Bargs Aug 12, 2019
25cbeeb
Merge remote-tracking branch 'upstream/saved_filters' into saved_filters
Bargs Aug 12, 2019
4478b39
Use version 8 style import
Bargs Aug 12, 2019
8c69437
Reuse existing type now that it is not throwing an error
Bargs Aug 12, 2019
c83873d
SearchBar is already exported for the top level of the plugin
Bargs Aug 12, 2019
763f350
Use removeAll
Bargs Aug 12, 2019
1dc9044
Use existing type definition
Bargs Aug 12, 2019
ffe3a13
Give tooltip an aria-label
Bargs Aug 12, 2019
c605d8a
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Aug 13, 2019
ba733b2
Remove unnecessary exports
Bargs Aug 13, 2019
a13b90b
[Logs UI] Add log analysis tab (#42931)
weltenwort Aug 13, 2019
f0c0f97
update RUM link (#39940)
bmorelli25 Aug 13, 2019
f68dcc7
Rename SavedQueryManager to SavedQueryManagementComponent
Bargs Aug 13, 2019
4e59b06
Allowing individual privileges to be excluded from base privileges (#…
kobelb Aug 13, 2019
b527c00
[Maps] reposition tooltip when tooltip size changes (#43152)
nreese Aug 13, 2019
9470d8a
Add request flyout to Remote Clusters. (#42900)
cjcenizal Aug 13, 2019
fc14cca
Highlights currently selected saved query and moves it to the top of …
TinaHeiligers Aug 13, 2019
2b7d676
Show requests for creating a follower index and creating/updating an …
cjcenizal Aug 13, 2019
53cb9f9
Abort request to Elasticsearch when browser disconnects (#42764)
lukasolson Aug 13, 2019
cda3de6
Migrate legacy sort arrays on saved searches (#43038)
Bargs Aug 13, 2019
ab46fff
Makes a saved query bold only if it's selected
TinaHeiligers Aug 14, 2019
4ce22c7
loading a saved query functional test fix WIP
TinaHeiligers Aug 14, 2019
94a35cd
[Reporting/API Testing] Simplify config (#43216)
tsullivan Aug 14, 2019
19fa802
fix schema.nullable() to support non-strings (#42891)
pmuellr Aug 14, 2019
1d6d102
fix(NA): get dll entries across platforms (#43224)
mistic Aug 14, 2019
4e7cecc
[Code] make ctag lang server embed (#43170)
Aug 14, 2019
d681368
[Code] fixed lang server install status (#43164)
Aug 14, 2019
627bc54
[Uptime] Context Menu Improved for integrations links in monitors lis…
shahzad31 Aug 14, 2019
fd80112
[ML] Data frame analytics: Hook unit tests. (#43199)
walterra Aug 14, 2019
054d4e5
[Logs UI] Create ML module for log analysis (#42872)
weltenwort Aug 14, 2019
97a6e8a
[ML] Data frame transforms: Fix getting nested properties. (#43262)
walterra Aug 14, 2019
3797fbf
cleanup http config in legacy paltform for migrated params (#42818)
mshustov Aug 14, 2019
d1b78b3
Removes unused EuiSpacer
TinaHeiligers Aug 14, 2019
a892d58
[Vis: Default editor] EUIficate Panel Setting tab (#42828)
maryia-lapata Aug 14, 2019
8373e06
Merge branch 'master' of github.com:elastic/kibana into saved_filters
TinaHeiligers Aug 14, 2019
2b3103d
Finds selected saved query by additional data-test-subject selector
TinaHeiligers Aug 14, 2019
e476338
Replaces 'manager' with 'management component' in saved queries funct…
TinaHeiligers Aug 14, 2019
6bd72b8
Adds more aria labels to the saved query management component
TinaHeiligers Aug 14, 2019
b9bfb18
Adds tooltip to the delete button, modifies descriptions text
TinaHeiligers Aug 14, 2019
a7b50a7
Extract saved query list item from management component
Bargs Aug 14, 2019
e7b757b
Remove unused prop
Bargs Aug 14, 2019
2ad5099
Combine duplicate buttons
Bargs Aug 14, 2019
7c49a60
Add title conflict validation to save query form
Bargs Aug 14, 2019
6a85e5f
Removes ScreenReaderOnly component to eliminate accessibility duplicity
TinaHeiligers Aug 15, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions packages/kbn-config-schema/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ import {
MapOfOptions,
MapOfType,
MaybeType,
NullableType,
NeverType,
NumberOptions,
NumberType,
Expand Down Expand Up @@ -102,7 +101,7 @@ function maybe<V>(type: Type<V>): Type<V | undefined> {
}

function nullable<V>(type: Type<V>): Type<V | null> {
return new NullableType(type);
return schema.oneOf([type, schema.literal(null)], { defaultValue: null });
}

function object<P extends Props>(props: P, options?: ObjectTypeOptions<P>): ObjectType<P> {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion packages/kbn-config-schema/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ export { ConditionalType, ConditionalTypeValue } from './conditional_type';
export { DurationOptions, DurationType } from './duration_type';
export { LiteralType } from './literal_type';
export { MaybeType } from './maybe_type';
export { NullableType } from './nullable_type';
export { MapOfOptions, MapOfType } from './map_type';
export { NumberOptions, NumberType } from './number_type';
export { ObjectType, ObjectTypeOptions, Props, TypeOf } from './object_type';
Expand Down
82 changes: 75 additions & 7 deletions packages/kbn-config-schema/src/types/nullable_type.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,66 @@

import { schema } from '..';

test('returns value if specified', () => {
test('returns string value when passed string', () => {
const type = schema.nullable(schema.string());
expect(type.validate('test')).toEqual('test');
expect(type.validate('test')).toBe('test');
});

test('returns null if null', () => {
test('returns number value when passed number', () => {
const type = schema.nullable(schema.number());
expect(type.validate(42)).toBe(42);
});

test('returns boolean value when passed boolean', () => {
const type = schema.nullable(schema.boolean());
expect(type.validate(true)).toBe(true);
});

test('returns object value when passed object', () => {
const type = schema.nullable(
schema.object({
foo: schema.number(),
bar: schema.boolean(),
baz: schema.string(),
})
);
const object = {
foo: 666,
bar: true,
baz: 'foo bar baz',
};

expect(type.validate(object)).toEqual(object);
});

test('returns null if null for string', () => {
const type = schema.nullable(schema.string());
expect(type.validate(null)).toEqual(null);
expect(type.validate(null)).toBe(null);
});

test('returns null if null for number', () => {
const type = schema.nullable(schema.number());
expect(type.validate(null)).toBe(null);
});

test('returns null if undefined', () => {
test('returns null if null for boolean', () => {
const type = schema.nullable(schema.boolean());
expect(type.validate(null)).toBe(null);
});

test('returns null if undefined for string', () => {
const type = schema.nullable(schema.string());
expect(type.validate(undefined)).toEqual(null);
expect(type.validate(undefined)).toBe(null);
});

test('returns null if undefined for number', () => {
const type = schema.nullable(schema.number());
expect(type.validate(undefined)).toBe(null);
});

test('returns null if undefined for boolean', () => {
const type = schema.nullable(schema.boolean());
expect(type.validate(undefined)).toBe(null);
});

test('returns null even if contained type has a default value', () => {
Expand All @@ -41,7 +88,7 @@ test('returns null even if contained type has a default value', () => {
})
);

expect(type.validate(undefined)).toEqual(null);
expect(type.validate(undefined)).toBe(null);
});

test('validates contained type', () => {
Expand All @@ -56,6 +103,27 @@ test('validates basic type', () => {
expect(() => type.validate(666)).toThrowErrorMatchingSnapshot();
});

test('validates type in object', () => {
const type = schema.object({
foo: schema.nullable(schema.string({ maxLength: 1 })),
bar: schema.nullable(schema.boolean()),
});

expect(type.validate({ foo: 'a' })).toEqual({ foo: 'a', bar: null });
expect(type.validate({ foo: null })).toEqual({ foo: null, bar: null });
expect(type.validate({})).toEqual({ foo: null, bar: null });
expect(type.validate({ bar: null })).toEqual({ foo: null, bar: null });
});

test('validates type errors in object', () => {
const type = schema.object({
foo: schema.nullable(schema.string({ maxLength: 1 })),
bar: schema.nullable(schema.boolean()),
});

expect(() => type.validate({ foo: 'ab' })).toThrowErrorMatchingSnapshot();
});

test('includes namespace in failure', () => {
const type = schema.nullable(schema.string({ maxLength: 1 }));

Expand Down
5 changes: 3 additions & 2 deletions packages/kbn-plugin-helpers/lib/plugin_config.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ module.exports = function(root) {
const kibanaExtraDir = resolve(root, '../../kibana');
const kibanaPluginsDir = resolve(root, '../../');
const isPluginOnKibanaExtra = pluginPackageJsonPath.includes(kibanaExtraDir);
const isPluginXpack = pkg.name === 'x-pack';

if (isPluginOnKibanaExtra) {
if (isPluginOnKibanaExtra && !isPluginXpack) {
console.warn(
`In the future we will disable ../kibana-extra/{pluginName}. You should move your plugin ${pkg.name} as soon as possible to ./plugins/{pluginName}`
);
Expand All @@ -51,7 +52,7 @@ module.exports = function(root) {
return Object.assign(
{
root: root,
kibanaRoot: pkg.name === 'x-pack' ? resolve(root, '..') : kibanaRootWhenNotXpackPlugin,
kibanaRoot: isPluginXpack ? resolve(root, '..') : kibanaRootWhenNotXpackPlugin,
serverTestPatterns: ['server/**/__tests__/**/*.js'],
buildSourcePatterns: buildSourcePatterns,
skipInstallDependencies: false,
Expand Down
2 changes: 2 additions & 0 deletions src/core/server/http/http_config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ const validBasePathRegex = /(^$|^\/.*[^\/]$)/;
const match = (regex: RegExp, errorMsg: string) => (str: string) =>
regex.test(str) ? undefined : errorMsg;

// before update to make sure it's in sync with validation rules in Legacy
// https://github.com/elastic/kibana/blob/master/src/legacy/server/config/schema.js
export const config = {
path: 'server',
schema: schema.object(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import Boom from 'boom';
import { getProperty, IndexMapping } from '../../../mappings';

const TOP_LEVEL_FIELDS = ['_id'];
const TOP_LEVEL_FIELDS = ['_id', '_score'];

export function getSortingParams(
mappings: IndexMapping,
Expand Down
12 changes: 7 additions & 5 deletions src/dev/build/tasks/nodejs_modules/webpack_dll.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@
*/

import { deleteAll, isFileAccessible, read, write } from '../../lib';
import { dirname, sep, relative, resolve } from 'path';
import { dirname, relative, resolve } from 'path';
import pkgUp from 'pkg-up';
import globby from 'globby';
import normalizePosixPath from 'normalize-path';

function checkDllEntryAccess(entry, baseDir = '') {
const resolvedPath = baseDir ? resolve(baseDir, entry) : entry;
Expand Down Expand Up @@ -48,7 +49,7 @@ export async function getDllEntries(manifestPath, whiteListedModules, baseDir =
// Only includes modules who are not in the white list of modules
// and that are node_modules
return modules.filter(entry => {
const isWhiteListed = whiteListedModules.some(nonEntry => entry.includes(`node_modules${sep}${nonEntry}${sep}`));
const isWhiteListed = whiteListedModules.some(nonEntry => normalizePosixPath(entry).includes(`node_modules/${nonEntry}`));
const isNodeModule = entry.includes('node_modules');

// NOTE: when using dynamic imports on webpack the entry paths could be created
Expand All @@ -69,6 +70,7 @@ export async function cleanDllModuleFromEntryPath(logger, entryPath) {
const modulePkgPath = await pkgUp(entryPath);
const modulePkg = JSON.parse(await read(modulePkgPath));
const moduleDir = dirname(modulePkgPath);
const normalizedModuleDir = normalizePosixPath(moduleDir);

// Cancel the cleanup for this module as it
// was already done.
Expand All @@ -93,9 +95,9 @@ export async function cleanDllModuleFromEntryPath(logger, entryPath) {
// until the following issue gets closed
// https://github.com/sindresorhus/globby/issues/87
const filesToDelete = await globby([
`${moduleDir}/**`,
`!${moduleDir}/**/*.+(css)`,
`!${moduleDir}/**/*.+(gif|ico|jpeg|jpg|tiff|tif|svg|png|webp)`,
`${normalizedModuleDir}/**`,
`!${normalizedModuleDir}/**/*.+(css)`,
`!${normalizedModuleDir}/**/*.+(gif|ico|jpeg|jpg|tiff|tif|svg|png|webp)`,
]);

await deleteAll(filesToDelete.filter(path => {
Expand Down
18 changes: 18 additions & 0 deletions src/legacy/core_plugins/data/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import { resolve } from 'path';
import { Legacy } from '../../../../kibana';
import { mappings } from './mappings';

// eslint-disable-next-line import/no-default-export
export default function DataPlugin(kibana: any) {
Expand All @@ -35,6 +36,23 @@ export default function DataPlugin(kibana: any) {
uiExports: {
injectDefaultVars: () => ({}),
styleSheetPaths: resolve(__dirname, 'public/index.scss'),
mappings,
savedObjectsManagement: {
query: {
icon: 'search',
defaultSearchField: 'title',
isImportableAndExportable: true,
getTitle(obj: any) {
return obj.attributes.title;
},
getInAppUrl(obj: any) {
return {
path: `/app/kibana#/discover?_a=(savedQuery:'${encodeURIComponent(obj.id)}')`,
uiCapabilitiesPath: 'discover.show',
};
},
},
},
},
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,31 @@
* under the License.
*/

import { Type } from './type';

export class NullableType<V> extends Type<V | null> {
constructor(type: Type<V>) {
super(
type
.getSchema()
.optional()
.allow(null)
.default(null)
);
}
}
export const mappings = {
query: {
properties: {
title: {
type: 'text',
},
description: {
type: 'text',
},
query: {
properties: {
language: {
type: 'text',
},
query: {
type: 'text',
},
},
},
filters: {
type: 'text',
},
timefilter: {
type: 'text',
},
},
},
};
1 change: 1 addition & 0 deletions src/legacy/core_plugins/data/public/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@

@import './filter/filter_bar/index';

@import './search/search_bar/index';
2 changes: 1 addition & 1 deletion src/legacy/core_plugins/data/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export { ExpressionRenderer, ExpressionRendererProps, ExpressionRunner } from '.
export { IndexPattern, IndexPatterns, StaticIndexPattern, Field } from './index_patterns';
export { Query, QueryBar, QueryBarInput } from './query';
export { FilterBar, ApplyFiltersPopover } from './filter';
export { SearchBar, SearchBarProps } from './search';
export { SearchBar, SearchBarProps, SavedQueryAttributes, SavedQuery } from './search';
export {
FilterManager,
FilterStateManager,
Expand Down
Loading