diff --git a/llmstack/base/flags.py b/llmstack/base/flags.py index a9797ceee5e..1149e56e253 100644 --- a/llmstack/base/flags.py +++ b/llmstack/base/flags.py @@ -55,6 +55,9 @@ def get_flags(self): 'CAN_ADD_TWILIO_INTERGRATION': [ Condition('can_add_twilio_integration', True), ], + 'CAN_EXPORT_HISTORY' : [ + Condition('can_export_history', False), + ] } return flags @@ -209,4 +212,8 @@ def has_exceeded_app_create_quota(value, request=None, **kwargs): @conditions.register('can_add_twilio_integration') def can_add_twilio_integration(value, request=None, **kwargs): - return True \ No newline at end of file + return True + +@conditions.register('can_export_history') +def can_export_history(value, request=None, **kwargs): + return False \ No newline at end of file diff --git a/llmstack/client/src/components/apps/AppRunHistoryTimeline.jsx b/llmstack/client/src/components/apps/AppRunHistoryTimeline.jsx index 45efd70c7c1..f75d6f2b5c6 100644 --- a/llmstack/client/src/components/apps/AppRunHistoryTimeline.jsx +++ b/llmstack/client/src/components/apps/AppRunHistoryTimeline.jsx @@ -33,6 +33,7 @@ import { ReactComponent as DiscordIcon } from "../../assets/images/icons/discord import { ReactComponent as SlackIcon } from "../../assets/images/icons/slack.svg"; import "ace-builds/src-noconflict/mode-sh"; import "ace-builds/src-noconflict/theme-chrome"; +import { profileFlagsState } from "../../data/atoms"; const browserAndOSFromUACache = {}; @@ -300,6 +301,7 @@ const FilterBar = ({ apps, sessions, users, onFilter }) => { }; export function AppRunHistoryTimeline(props) { + const profileFlags = useRecoilValue(profileFlagsState); const { filter, filteredColumns, showFilterBar } = props; const apps = useRecoilValue(appsState); const [rows, setRows] = useState([]); @@ -452,6 +454,42 @@ export function AppRunHistoryTimeline(props) { return ( + + + + {showFilterBar && ( diff --git a/llmstack/client/src/components/datasource/DataSourceSelector.jsx b/llmstack/client/src/components/datasource/DataSourceSelector.jsx index 934f25633c6..975d0a9e491 100644 --- a/llmstack/client/src/components/datasource/DataSourceSelector.jsx +++ b/llmstack/client/src/components/datasource/DataSourceSelector.jsx @@ -3,11 +3,8 @@ import { useRecoilValue } from "recoil"; import { dataSourcesState, orgDataSourcesState } from "../../data/atoms"; import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline"; import { AddDataSourceModal } from "./AddDataSourceModal"; -import { Chip } from "@mui/material"; +import { Autocomplete, TextField } from "@mui/material"; import FormControl from "@mui/material/FormControl"; -import Select from "@mui/material/Select"; -import MenuItem from "@mui/material/MenuItem"; -import Input from "@mui/material/Input"; export function DataSourceSelector(props) { const dataSources = useRecoilValue(dataSourcesState); @@ -24,11 +21,21 @@ export function DataSourceSelector(props) { return ( - } - renderValue={(selected) => ( -
- {(typeof selected === "string" ? [selected] : selected).map( - (value) => ( - ds.uuid === value)?.name || - value - } - style={{ margin: 2, borderRadius: 5 }} - /> - ), - )} -
+ renderInput={(params) => ( + )} - > - {uniqueDataSources.map((dataSource) => ( - - {dataSource.name} - - ))} - + onChange={(event, value) => { + props.onChange( + value.map((dataSource) => dataSource?.uuid || dataSource), + ); + }} + />