update filter positioning
This commit is contained in:
parent
6efb0f4997
commit
a713199ddc
|
@ -16,6 +16,7 @@
|
||||||
Pagination,
|
Pagination,
|
||||||
Helpers,
|
Helpers,
|
||||||
Divider,
|
Divider,
|
||||||
|
ActionButton,
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { licensing, users, apps, auditLogs } from "stores/portal"
|
import { licensing, users, apps, auditLogs } from "stores/portal"
|
||||||
import LockedFeature from "../../_components/LockedFeature.svelte"
|
import LockedFeature from "../../_components/LockedFeature.svelte"
|
||||||
|
@ -32,7 +33,7 @@
|
||||||
user: { width: "auto" },
|
user: { width: "auto" },
|
||||||
app: { width: "auto" },
|
app: { width: "auto" },
|
||||||
name: { width: "0.8fr" },
|
name: { width: "0.8fr" },
|
||||||
view: { width: "auto", borderLeft: true, displayName: "" },
|
view: { width: "0.1fr", borderLeft: true, displayName: "" },
|
||||||
}
|
}
|
||||||
|
|
||||||
const customRenderers = [
|
const customRenderers = [
|
||||||
|
@ -227,69 +228,65 @@
|
||||||
<div class="datepicker" />
|
<div class="datepicker" />
|
||||||
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<div class="search">
|
<div class="select">
|
||||||
<div>
|
<Multiselect
|
||||||
<DatePicker
|
bind:fetchTerm={userSearchTerm}
|
||||||
range={true}
|
placeholder="All users"
|
||||||
label="Date Range"
|
label="Users"
|
||||||
on:change={e => {
|
autocomplete
|
||||||
if (e.detail[0]?.length === 1) {
|
bind:value={selectedUsers}
|
||||||
startDate = e.detail[0][0].toISOString()
|
getOptionValue={user => user._id}
|
||||||
} else if (e.detail[0]?.length > 1) {
|
getOptionLabel={user => user.email}
|
||||||
startDate = e.detail[0][0].toISOString()
|
options={sortedList}
|
||||||
endDate = e.detail[0][1].toISOString()
|
/>
|
||||||
} else {
|
|
||||||
startDate = null
|
|
||||||
endDate = null
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="select">
|
|
||||||
<Multiselect
|
|
||||||
bind:fetchTerm={userSearchTerm}
|
|
||||||
placeholder="All users"
|
|
||||||
label="Users"
|
|
||||||
autocomplete
|
|
||||||
bind:value={selectedUsers}
|
|
||||||
getOptionValue={user => user._id}
|
|
||||||
getOptionLabel={user => user.email}
|
|
||||||
options={sortedList}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="select">
|
|
||||||
<Multiselect
|
|
||||||
autocomplete
|
|
||||||
placeholder="All apps"
|
|
||||||
label="App"
|
|
||||||
getOptionValue={app => app.instance._id}
|
|
||||||
getOptionLabel={app => app.name}
|
|
||||||
options={$apps}
|
|
||||||
bind:value={selectedApps}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="select">
|
|
||||||
<Multiselect
|
|
||||||
customPopoverHeight="500px"
|
|
||||||
autocomplete
|
|
||||||
getOptionValue={event => event[0]}
|
|
||||||
getOptionLabel={event => event[1]}
|
|
||||||
options={Object.entries($auditLogs.events)}
|
|
||||||
placeholder="All events"
|
|
||||||
label="Event"
|
|
||||||
bind:value={selectedEvents}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div style="max-width: 150px; ">
|
<div class="select">
|
||||||
|
<Multiselect
|
||||||
|
autocomplete
|
||||||
|
placeholder="All apps"
|
||||||
|
label="App"
|
||||||
|
getOptionValue={app => app.instance._id}
|
||||||
|
getOptionLabel={app => app.name}
|
||||||
|
options={$apps}
|
||||||
|
bind:value={selectedApps}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="select">
|
||||||
|
<Multiselect
|
||||||
|
customPopoverHeight="500px"
|
||||||
|
autocomplete
|
||||||
|
getOptionValue={event => event[0]}
|
||||||
|
getOptionLabel={event => event[1]}
|
||||||
|
options={Object.entries($auditLogs.events)}
|
||||||
|
placeholder="All events"
|
||||||
|
label="Event"
|
||||||
|
bind:value={selectedEvents}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="date-picker">
|
||||||
|
<DatePicker
|
||||||
|
placeholder="Choose date range"
|
||||||
|
range={true}
|
||||||
|
on:change={e => {
|
||||||
|
if (e.detail[0]?.length === 1) {
|
||||||
|
startDate = e.detail[0][0].toISOString()
|
||||||
|
} else if (e.detail[0]?.length > 1) {
|
||||||
|
startDate = e.detail[0][0].toISOString()
|
||||||
|
endDate = e.detail[0][1].toISOString()
|
||||||
|
} else {
|
||||||
|
startDate = null
|
||||||
|
endDate = null
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="freeSearch">
|
||||||
<Search placeholder="Search" bind:value={logSearchTerm} />
|
<Search placeholder="Search" bind:value={logSearchTerm} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="">
|
||||||
on:click={() => downloadLogs()}
|
<ActionButton size="M" icon="Download" on:click={() => downloadLogs()} />
|
||||||
style="padding-bottom: var(--spacing-s)"
|
|
||||||
>
|
|
||||||
<Icon name="Download" hoverable />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Layout noPadding>
|
<Layout noPadding>
|
||||||
|
@ -445,16 +442,12 @@
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search :global(.spectrum-InputGroup) {
|
|
||||||
width: 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.controls {
|
.controls {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
gap: var(--spacing-l);
|
gap: var(--spacing-l);
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: flex-end;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.side-panel-icons {
|
.side-panel-icons {
|
||||||
|
@ -463,15 +456,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.select {
|
.select {
|
||||||
flex-basis: 130px;
|
flex-basis: calc(33.33% - 10px);
|
||||||
width: 0;
|
width: 0;
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search {
|
.date-picker {
|
||||||
flex: 1 1 auto;
|
flex-basis: calc(70% - 32px);
|
||||||
display: flex;
|
min-width: 100px;
|
||||||
gap: var(--spacing-xl);
|
}
|
||||||
align-items: flex-end;
|
|
||||||
|
.freeSearch {
|
||||||
|
flex-basis: 25%;
|
||||||
|
min-width: 100px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue