-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* First round of UI updates - progress bar loader for in flight request - Network request status bar * Add notification about in flight request * Use nbsp; and update the EuiCode to use EuiBadge * Address PR feedback: - Clean up unused class names - Move the network request status bar to next to the nav bar with a grey line under it - Added the request in progress badge in the network request status bar - Removed logic forcing one request at a time! - Added notification for when a user is sending a request from a line with no request on it (no more 0 - None status). Also preserve the previuous request in this case * [NB] Fix for floating tools when request is past bottom of rendered text area!! This can be backported to 7.6 as it causes when a request is selected at the bottom of a large text buffer and the history viewer is opened. * Fix types * Update copy Remove unused SCSS Co-authored-by: Elastic Machine <[email protected]>
- Loading branch information
1 parent
81c1b52
commit d20a7d0
Showing
14 changed files
with
351 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
src/plugins/console/public/application/components/network_request_status_bar/index.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/* | ||
* Licensed to Elasticsearch B.V. under one or more contributor | ||
* license agreements. See the NOTICE file distributed with | ||
* this work for additional information regarding copyright | ||
* ownership. Elasticsearch B.V. licenses this file to you under | ||
* the Apache License, Version 2.0 (the "License"); you may | ||
* not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, | ||
* software distributed under the License is distributed on an | ||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
* KIND, either express or implied. See the License for the | ||
* specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
|
||
export { NetworkRequestStatusBar } from './network_request_status_bar'; |
133 changes: 133 additions & 0 deletions
133
...e/public/application/components/network_request_status_bar/network_request_status_bar.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
/* | ||
* Licensed to Elasticsearch B.V. under one or more contributor | ||
* license agreements. See the NOTICE file distributed with | ||
* this work for additional information regarding copyright | ||
* ownership. Elasticsearch B.V. licenses this file to you under | ||
* the Apache License, Version 2.0 (the "License"); you may | ||
* not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, | ||
* software distributed under the License is distributed on an | ||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
* KIND, either express or implied. See the License for the | ||
* specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
|
||
import { i18n } from '@kbn/i18n'; | ||
import React, { FunctionComponent } from 'react'; | ||
import { EuiFlexGroup, EuiFlexItem, EuiBadge, EuiText, EuiToolTip } from '@elastic/eui'; | ||
|
||
export interface Props { | ||
requestInProgress: boolean; | ||
requestResult?: { | ||
// Status code of the request, e.g., 200 | ||
statusCode: number; | ||
|
||
// Status text of the request, e.g., OK | ||
statusText: string; | ||
|
||
// Method of the request, e.g., GET | ||
method: string; | ||
|
||
// The path of endpoint that was called, e.g., /_search | ||
endpoint: string; | ||
|
||
// The time, in milliseconds, that the last request took | ||
timeElapsedMs: number; | ||
}; | ||
} | ||
|
||
const mapStatusCodeToBadgeColor = (statusCode: number) => { | ||
if (statusCode <= 199) { | ||
return 'default'; | ||
} | ||
|
||
if (statusCode <= 299) { | ||
return 'secondary'; | ||
} | ||
|
||
if (statusCode <= 399) { | ||
return 'primary'; | ||
} | ||
|
||
if (statusCode <= 499) { | ||
return 'warning'; | ||
} | ||
|
||
return 'danger'; | ||
}; | ||
|
||
export const NetworkRequestStatusBar: FunctionComponent<Props> = ({ | ||
requestInProgress, | ||
requestResult, | ||
}) => { | ||
let content: React.ReactNode = null; | ||
|
||
if (requestInProgress) { | ||
content = ( | ||
<EuiFlexItem grow={false}> | ||
<EuiBadge color="hollow"> | ||
{i18n.translate('console.requestInProgressBadgeText', { | ||
defaultMessage: 'Request in progress', | ||
})} | ||
</EuiBadge> | ||
</EuiFlexItem> | ||
); | ||
} else if (requestResult) { | ||
const { endpoint, method, statusCode, statusText, timeElapsedMs } = requestResult; | ||
|
||
content = ( | ||
<> | ||
<EuiFlexItem grow={false}> | ||
<EuiToolTip | ||
position="top" | ||
content={ | ||
<EuiText size="s">{`${method} ${ | ||
endpoint.startsWith('/') ? endpoint : '/' + endpoint | ||
}`}</EuiText> | ||
} | ||
> | ||
<EuiBadge color={mapStatusCodeToBadgeColor(statusCode)}> | ||
{/* Use to ensure that no matter the width we don't allow line breaks */} | ||
{statusCode} - {statusText} | ||
</EuiBadge> | ||
</EuiToolTip> | ||
</EuiFlexItem> | ||
<EuiFlexItem grow={false}> | ||
<EuiToolTip | ||
position="top" | ||
content={ | ||
<EuiText size="s"> | ||
{i18n.translate('console.requestTimeElapasedBadgeTooltipContent', { | ||
defaultMessage: 'Time Elapsed', | ||
})} | ||
</EuiText> | ||
} | ||
> | ||
<EuiText size="s"> | ||
<EuiBadge color="default"> | ||
{timeElapsedMs} {'ms'} | ||
</EuiBadge> | ||
</EuiText> | ||
</EuiToolTip> | ||
</EuiFlexItem> | ||
</> | ||
); | ||
} | ||
|
||
return ( | ||
<EuiFlexGroup | ||
justifyContent="flexEnd" | ||
alignItems="center" | ||
direction="row" | ||
gutterSize="s" | ||
responsive={false} | ||
> | ||
{content} | ||
</EuiFlexGroup> | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.