Files
redash/client/app/components/admin/StatusBlock.jsx
Gabriel Dutra 99c276fc9a Migrate Query pages to React (#4429)
* Migrate Query Source View page to React: skeleton

* Sync QueryView and QuerySource (#4430)

* Migrate schema browser to react (#4432)

* Restyle code with Prettier

* Migrate Query page to React: Save changes (#4452)

* Migrate query source to React: Set of updates (#4457)

* Migrate Query page to React: Visualization Tabs (#4453)

Co-Authored-By: Levko Kravets <levko.ne@gmail.com>

* Migrate Query Source page to React: Visualizations area (#4463)

* Migrate Query page to React: Delete visualization button (#4461)

* Migrate Query Source page to React: Visualization actions (#4467)

* Migrate Query pages to React: Execute query hook (#4470)

* Migrate Query Source page to React: Editor area (#4468)

* Migrate Query Source page to React: metadata, schedule and description blocks (#4476)

* Migrate Query page to React: Cancel query execution (#4496)

* Migrate Query Source page to React: refine code (#4499)

* Migrate Query Source page to React: alerts (#4504)

* Migrate Query Source page to React: unsaved changes alert (#4505)

* Migrate Query Source to React: resizable areas (v2) (#4503)

* Migrate Query page to React: Query View (#4455)

Co-authored-by: Levko Kravets <levko.ne@gmail.com>

* Switch React and Angular versions of pages (until Angular version removed)

* Migrate Query pages to React: fix permissions (#4506)

* Migrate Query Source page to React: don't reload when saving new query (#4507)

* Migrate Query pages to React: fix tests (#4509)

* Use skipParametersDirtyFlag in executeQuery

* Fix: cannot fork query from Query View page

* Optimize query editor: handle query text changes faster

* Revert "Optimize query editor: handle query text changes faster"

This reverts commit 2934e53be6.

* Reduce debounced time to 100

* Migrate Query pages to React: cleanup (#4512)

* Migrate Query pages to React: cleanup

* Further cleanup

* Remove unused dependencies

* Fix embed pages

* Attempt to fix flaky test

* Cleanup: explicitly register the last Angular component

* Move contents of /filters folder to /lib

* Remove unnecessary import

* Remove cy.wait from Parameters spec

Co-authored-by: Gabriel Dutra <nesk.frz@gmail.com>

Co-authored-by: Levko Kravets <levko.ne@gmail.com>
2020-01-06 20:51:45 +02:00

100 lines
2.6 KiB
JavaScript

/* eslint-disable react/prop-types */
import { toPairs } from "lodash";
import React from "react";
import List from "antd/lib/list";
import Card from "antd/lib/card";
import TimeAgo from "@/components/TimeAgo";
import { toHuman, prettySize } from "@/lib/utils";
export function General({ info }) {
info = toPairs(info);
return (
<Card title="General" size="small">
{info.length === 0 && <div className="text-muted text-center">No data</div>}
{info.length > 0 && (
<List
size="small"
itemLayout="vertical"
dataSource={info}
renderItem={([name, value]) => (
<List.Item extra={<span className="badge">{value}</span>}>{toHuman(name)}</List.Item>
)}
/>
)}
</Card>
);
}
export function DatabaseMetrics({ info }) {
return (
<Card title="Redash Database" size="small">
{info.length === 0 && <div className="text-muted text-center">No data</div>}
{info.length > 0 && (
<List
size="small"
itemLayout="vertical"
dataSource={info}
renderItem={([name, size]) => (
<List.Item extra={<span className="badge">{prettySize(size)}</span>}>{name}</List.Item>
)}
/>
)}
</Card>
);
}
export function Queues({ info }) {
info = toPairs(info);
return (
<Card title="Queues" size="small">
{info.length === 0 && <div className="text-muted text-center">No data</div>}
{info.length > 0 && (
<List
size="small"
itemLayout="vertical"
dataSource={info}
renderItem={([name, queue]) => (
<List.Item extra={<span className="badge">{queue.size}</span>}>{name}</List.Item>
)}
/>
)}
</Card>
);
}
export function Manager({ info }) {
const items = info
? [
<List.Item
extra={
<span className="badge">
<TimeAgo date={info.lastRefreshAt} placeholder="n/a" />
</span>
}>
Last Refresh
</List.Item>,
<List.Item
extra={
<span className="badge">
<TimeAgo date={info.startedAt} placeholder="n/a" />
</span>
}>
Started
</List.Item>,
<List.Item extra={<span className="badge">{info.outdatedQueriesCount}</span>}>
Outdated Queries Count
</List.Item>,
]
: [];
return (
<Card title="Manager" size="small">
{!info && <div className="text-muted text-center">No data</div>}
{info && <List size="small" itemLayout="vertical" dataSource={items} renderItem={item => item} />}
</Card>
);
}