Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ApplicationService app status management #50223

Merged
merged 40 commits into from
Jan 12, 2020
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e87d550
add unimplemented registerAppStatusUpdater & remove observers for app…
pgayvallet Nov 11, 2019
041cef1
adapt NavLinksService to use new application observables
pgayvallet Nov 11, 2019
76ee873
merge availableApps$ and availableLegacyApps$
pgayvallet Nov 11, 2019
f278903
updating core docs
pgayvallet Nov 11, 2019
5dba8fc
adapt the navLink updating methods
pgayvallet Nov 12, 2019
865eec5
filters the inaccessible apps from availableApps$
pgayvallet Nov 12, 2019
09cd6d8
restrict access to navigateToApp depending on app status
pgayvallet Nov 12, 2019
0bde308
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Nov 19, 2019
ccd6344
fixes due to merge
pgayvallet Nov 19, 2019
dd8c438
add statusUpdater$ to AppBase
pgayvallet Nov 19, 2019
038ae4e
export new types
pgayvallet Nov 19, 2019
4aa0e2c
disable navlink depending on app status
pgayvallet Nov 19, 2019
162ec01
update generated doc
pgayvallet Nov 19, 2019
1c76e68
update snapshots for disabled prop
pgayvallet Nov 19, 2019
c5385f0
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Nov 19, 2019
b031186
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Nov 19, 2019
8ace804
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Nov 22, 2019
0bfe560
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Nov 27, 2019
7dca7fa
Address josh review
pgayvallet Nov 27, 2019
a6e9d8f
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Dec 2, 2019
a5852a1
Address review comments
pgayvallet Dec 3, 2019
8ccfc62
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Dec 3, 2019
eee0d44
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Dec 3, 2019
6a0d0c1
fix merge conflicts
pgayvallet Dec 3, 2019
132938b
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Jan 6, 2020
514a362
adapt changes due to merge
pgayvallet Jan 7, 2020
196d183
update generated doc
pgayvallet Jan 7, 2020
ad9ebb8
add comment and fix navlink url for custom url apps
pgayvallet Jan 7, 2020
57be7fd
add AppNavLinkStatus type to split app/navlink states
pgayvallet Jan 7, 2020
1c8d040
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Jan 7, 2020
b1b6159
fix typo
pgayvallet Jan 7, 2020
87a7c40
review comments and improvements
pgayvallet Jan 9, 2020
626493f
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Jan 9, 2020
f2b1e78
add functional tests
pgayvallet Jan 10, 2020
ab73ba3
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Jan 10, 2020
12f469d
update generated docs and migration guide
pgayvallet Jan 10, 2020
f488946
fix wrong type cast on AppsMenuProvider.readLinks
pgayvallet Jan 10, 2020
815617b
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Jan 10, 2020
cd6a2d7
Merge remote-tracking branch 'upstream/master' into kbn-45291-applica…
pgayvallet Jan 12, 2020
b66df7e
properly type return of navigateToApp
pgayvallet Jan 12, 2020
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: 2 additions & 1 deletion docs/development/core/public/kibana-plugin-public.appbase.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export interface AppBase
| [icon](./kibana-plugin-public.appbase.icon.md) | <code>string</code> | A URL to an image file used as an icon. Used as a fallback if <code>euiIconType</code> is not provided. |
| [id](./kibana-plugin-public.appbase.id.md) | <code>string</code> | |
| [order](./kibana-plugin-public.appbase.order.md) | <code>number</code> | An ordinal used to sort nav links relative to one another for display. |
| [status](./kibana-plugin-public.appbase.status.md) | <code>AppStatus</code> | The status of the application. |
| [title](./kibana-plugin-public.appbase.title.md) | <code>string</code> | The title of the application. |
| [tooltip$](./kibana-plugin-public.appbase.tooltip_.md) | <code>Observable&lt;string&gt;</code> | An observable for a tooltip shown when hovering over app link. |
| [tooltip](./kibana-plugin-public.appbase.tooltip.md) | <code>string</code> | A tooltip shown when hovering over app link. |

Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [AppBase](./kibana-plugin-public.appbase.md) &gt; [tooltip$](./kibana-plugin-public.appbase.tooltip_.md)
[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [AppBase](./kibana-plugin-public.appbase.md) &gt; [status](./kibana-plugin-public.appbase.status.md)

## AppBase.tooltip$ property
## AppBase.status property

An observable for a tooltip shown when hovering over app link.
The status of the application.

<b>Signature:</b>

```typescript
tooltip$?: Observable<string>;
status?: AppStatus;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [AppBase](./kibana-plugin-public.appbase.md) &gt; [tooltip](./kibana-plugin-public.appbase.tooltip.md)

## AppBase.tooltip property

A tooltip shown when hovering over app link.

<b>Signature:</b>

```typescript
tooltip?: string;
```
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ export interface ApplicationSetup
| Method | Description |
| --- | --- |
| [register(app)](./kibana-plugin-public.applicationsetup.register.md) | Register an mountable application to the system. |
| [registerAppStatusUpdater(statusUpdater$)](./kibana-plugin-public.applicationsetup.registerappstatusupdater.md) | TODO |
| [registerMountContext(contextName, provider)](./kibana-plugin-public.applicationsetup.registermountcontext.md) | Register a context provider for application mounting. Will only be available to applications that depend on the plugin that registered this context. |

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-public](./kibana-plugin-public.md) &gt; [ApplicationSetup](./kibana-plugin-public.applicationsetup.md) &gt; [registerAppStatusUpdater](./kibana-plugin-public.applicationsetup.registerappstatusupdater.md)

## ApplicationSetup.registerAppStatusUpdater() method

TODO

<b>Signature:</b>

```typescript
registerAppStatusUpdater(statusUpdater$: Observable<AppStatusUpdater>): void;
```

## Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| statusUpdater$ | <code>Observable&lt;AppStatusUpdater&gt;</code> | |

<b>Returns:</b>

`void`

6 changes: 4 additions & 2 deletions src/core/public/application/application_service.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,21 @@ import {
InternalApplicationStart,
ApplicationStart,
InternalApplicationSetup,
App,
} from './types';

type ApplicationServiceContract = PublicMethodsOf<ApplicationService>;

const createSetupContractMock = (): jest.Mocked<ApplicationSetup> => ({
register: jest.fn(),
registerAppStatusUpdater: jest.fn(),
registerMountContext: jest.fn(),
});

const createInternalSetupContractMock = (): jest.Mocked<InternalApplicationSetup> => ({
register: jest.fn(),
registerLegacyApp: jest.fn(),
registerAppStatusUpdater: jest.fn(),
registerMountContext: jest.fn(),
});

Expand All @@ -49,8 +52,7 @@ const createStartContractMock = (legacyMode = false): jest.Mocked<ApplicationSta
});

const createInternalStartContractMock = (): jest.Mocked<InternalApplicationStart> => ({
availableApps: new Map(),
availableLegacyApps: new Map(),
availableApps$: new Subject<ReadonlyMap<string, App>>(),
capabilities: capabilitiesServiceMock.createStartContract().capabilities,
navigateToApp: jest.fn(),
getUrlForApp: jest.fn(),
Expand Down
Loading