mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Added field types.
This commit is contained in:
parent
5039349d57
commit
39fb4fdaf8
@ -40,6 +40,7 @@ export default function FieldFilterForm({ name, label, type, values, onSelect })
|
|||||||
</Dropdown>
|
</Dropdown>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
className={styles.dropdown}
|
className={styles.dropdown}
|
||||||
|
menuProps={{ className: styles.menu }}
|
||||||
items={values}
|
items={values}
|
||||||
value={value}
|
value={value}
|
||||||
renderValue={renderValue}
|
renderValue={renderValue}
|
||||||
|
@ -15,3 +15,8 @@
|
|||||||
.dropdown {
|
.dropdown {
|
||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
min-width: 360px;
|
||||||
|
max-height: 300px;
|
||||||
|
}
|
||||||
|
@ -2,7 +2,7 @@ import { Menu, Item, Form, FormRow } from 'react-basics';
|
|||||||
import { useMessages } from 'hooks';
|
import { useMessages } from 'hooks';
|
||||||
import styles from './FieldSelectForm.module.css';
|
import styles from './FieldSelectForm.module.css';
|
||||||
|
|
||||||
export default function FieldSelectForm({ items, onSelect }) {
|
export default function FieldSelectForm({ items, onSelect, showType = true }) {
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -13,7 +13,7 @@ export default function FieldSelectForm({ items, onSelect }) {
|
|||||||
return (
|
return (
|
||||||
<Item key={index} className={styles.item}>
|
<Item key={index} className={styles.item}>
|
||||||
<div>{label || name}</div>
|
<div>{label || name}</div>
|
||||||
{type && <div className={styles.type}>{type}</div>}
|
{showType && type && <div className={styles.type}>{type}</div>}
|
||||||
</Item>
|
</Item>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
@ -23,7 +23,7 @@ export default function FilterSelectForm({ websiteId, items, onSelect }) {
|
|||||||
const { data, isLoading } = useValues(websiteId, field?.name);
|
const { data, isLoading } = useValues(websiteId, field?.name);
|
||||||
|
|
||||||
if (!field) {
|
if (!field) {
|
||||||
return <FieldSelectForm items={items} onSelect={setField} />;
|
return <FieldSelectForm items={items} onSelect={setField} showType={false} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
@ -34,7 +34,7 @@ export default function FilterSelectForm({ websiteId, items, onSelect }) {
|
|||||||
<FieldFilterForm
|
<FieldFilterForm
|
||||||
name={field?.name}
|
name={field?.name}
|
||||||
label={field?.label}
|
label={field?.label}
|
||||||
type="string"
|
type={field?.type}
|
||||||
values={data}
|
values={data}
|
||||||
onSelect={onSelect}
|
onSelect={onSelect}
|
||||||
/>
|
/>
|
||||||
|
@ -32,16 +32,16 @@ export function InsightsParameters() {
|
|||||||
const queryEnabled = websiteId && dateRange && (fields?.length || filters?.length);
|
const queryEnabled = websiteId && dateRange && (fields?.length || filters?.length);
|
||||||
|
|
||||||
const fieldOptions = [
|
const fieldOptions = [
|
||||||
{ name: 'url', label: formatMessage(labels.url) },
|
{ name: 'url', type: 'string', label: formatMessage(labels.url) },
|
||||||
{ name: 'title', label: formatMessage(labels.pageTitle) },
|
{ name: 'title', type: 'string', label: formatMessage(labels.pageTitle) },
|
||||||
{ name: 'referrer', label: formatMessage(labels.referrer) },
|
{ name: 'referrer', type: 'string', label: formatMessage(labels.referrer) },
|
||||||
{ name: 'query', label: formatMessage(labels.query) },
|
{ name: 'query', type: 'string', label: formatMessage(labels.query) },
|
||||||
{ name: 'browser', label: formatMessage(labels.browser) },
|
{ name: 'browser', type: 'string', label: formatMessage(labels.browser) },
|
||||||
{ name: 'os', label: formatMessage(labels.os) },
|
{ name: 'os', type: 'string', label: formatMessage(labels.os) },
|
||||||
{ name: 'device', label: formatMessage(labels.device) },
|
{ name: 'device', type: 'string', label: formatMessage(labels.device) },
|
||||||
{ name: 'country', label: formatMessage(labels.country) },
|
{ name: 'country', type: 'string', label: formatMessage(labels.country) },
|
||||||
{ name: 'region', label: formatMessage(labels.region) },
|
{ name: 'region', type: 'string', label: formatMessage(labels.region) },
|
||||||
{ name: 'city', label: formatMessage(labels.city) },
|
{ name: 'city', type: 'string', label: formatMessage(labels.city) },
|
||||||
];
|
];
|
||||||
|
|
||||||
const parameterGroups = [
|
const parameterGroups = [
|
||||||
@ -85,7 +85,11 @@ export function InsightsParameters() {
|
|||||||
return (
|
return (
|
||||||
<PopupForm element={element} onClose={close}>
|
<PopupForm element={element} onClose={close}>
|
||||||
{id === 'fields' && (
|
{id === 'fields' && (
|
||||||
<FieldSelectForm items={fieldOptions} onSelect={handleAdd.bind(null, id)} />
|
<FieldSelectForm
|
||||||
|
items={fieldOptions}
|
||||||
|
onSelect={handleAdd.bind(null, id)}
|
||||||
|
showType={false}
|
||||||
|
/>
|
||||||
)}
|
)}
|
||||||
{id === 'filters' && (
|
{id === 'filters' && (
|
||||||
<FilterSelectForm
|
<FilterSelectForm
|
||||||
|
@ -18,7 +18,7 @@ export function InsightsTable() {
|
|||||||
[report?.data],
|
[report?.data],
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!fields) {
|
if (!fields || !report?.parameters) {
|
||||||
return <EmptyPlaceholder />;
|
return <EmptyPlaceholder />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user