import("@/plugins/logs/IndexList.vue"),
- ),
+ IndexList,
SearchResult: defineAsyncComponent(
() => import("@/plugins/logs/SearchResult.vue"),
),
- ConfirmDialog: defineAsyncComponent(
- () => import("@/components/ConfirmDialog.vue"),
+ SearchSchedulersList: defineAsyncComponent(
+ () => import("@/plugins/logs/SearchSchedulersList.vue"),
),
SanitizedHtmlRenderer,
- VisualizeLogsQuery,
- SearchHistory,
+ VisualizeLogsQuery: defineAsyncComponent(
+ () => import("@/plugins/logs/VisualizeLogsQuery.vue"),
+ ),
+ SearchHistory: defineAsyncComponent(
+ () => import("@/plugins/logs/SearchHistory.vue"),
+ ),
},
mixins: [MainLayoutCloudMixin],
emits: ["sendToAiChat"],
diff --git a/web/src/plugins/logs/IndexList.vue b/web/src/plugins/logs/IndexList.vue
index a94384f867..cae1d16fca 100644
--- a/web/src/plugins/logs/IndexList.vue
+++ b/web/src/plugins/logs/IndexList.vue
@@ -79,703 +79,53 @@ size="xs" /> No field found in
-
-
-
-
- No matching fields found.
-
-
-
-
-
-
-
-
-
-
- {{ props.row.name }}
-
-
-
-
-
-
-
-
-
-
-
-
- openFilterCreator(event, props.row)
- "
- @before-hide="(event: any) => cancelFilterCreator(props.row)"
- >
-
-
-
-
- {{ props.row.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- fieldValues[props.row.name]?.errMsg ||
- "No values found"
- }}
-
-
-
-
-
-
- {{ value.key }}
-
-
- {{ formatLargeNumber(value.count) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t("confirmDialog.loading") }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- t("search.userDefinedSchemaLabel")
- }}
-
-
-
-
-
-
-
- {{
- t("search.allFieldsLabel")
- }}
-
- {{ t("search.allFieldsWarningMsg") }}
-
-
-
-
-
-
-
-
- {{
- t("search.showOnlyInterestingFields")
- }}
-
-
-
-
-
-
-
-
-
-
-
- {{
- t("search.allFieldsLabel")
- }}
-
- {{ t("search.allFieldsWarningMsg") }}
-
-
-
-
-
-
-
-
- {{
- t("search.showOnlyInterestingFields")
- }}
-
-
-
-
-
-
-
-
-
-
- {{
- t("search.resetFields")
- }}
-
-
-
-
-
-
+ :loading-stream="searchObj.loadingStream"
+ :show-only-interesting-fields="showOnlyInterestingFields"
+ :interesting-expanded-group-rows-field-count="
+ searchObj.data.stream.interestingExpandedGroupRowsFieldCount
+ "
+ :expand-group-rows-field-count="
+ searchObj.data.stream.expandGroupRowsFieldCount
+ "
+ :expand-group-rows="searchObj.data.stream.expandGroupRows"
+ :theme="store.state.theme"
+ :selected-fields="searchObj.data.stream.selectedFields"
+ :timestamp-column="store.state.zoConfig.timestamp_column"
+ :show-quick-mode="searchObj.meta.quickMode"
+ :field-values="fieldValues"
+ :selected-streams-count="searchObj.data.stream.selectedStream.length"
+ :show-user-defined-schema-toggle="showUserDefinedSchemaToggle"
+ :use-user-defined-schemas="searchObj.meta.useUserDefinedSchemas"
+ :user-defined-schema-btn-group-option="userDefinedSchemaBtnGroupOption"
+ :selected-fields-btn-group-option="selectedFieldsBtnGroupOption"
+ :total-fields-count="
+ searchObj.data.stream.selectedStream.length > 1
+ ? searchObj.data.stream.selectedStreamFields.length -
+ (searchObj.data.stream.selectedStream.length + 1)
+ : searchObj.data.stream.selectedStreamFields.length
+ "
+ @add-to-filter="addToFilter"
+ @toggle-field="clickFieldFn"
+ @toggle-interesting="addToInterestingFieldList"
+ @add-search-term="addSearchTerm"
+ @before-show="openFilterCreator"
+ @before-hide="cancelFilterCreator"
+ @toggle-group="toggleFieldGroup"
+ @toggle-schema="toggleSchema"
+ @toggle-interesting-fields="toggleInterestingFields"
+ @set-page="setPage"
+ @reset-fields="resetSelectedFileds"
+ />
@@ -790,6 +140,7 @@ import {
onBeforeMount,
onBeforeUnmount,
nextTick,
+ defineAsyncComponent,
} from "vue";
import { useI18n } from "vue-i18n";
import { useStore } from "vuex";
@@ -832,7 +183,13 @@ interface Filter {
}
export default defineComponent({
name: "ComponentSearchIndexSelect",
- components: { EqualIcon, NotEqualIcon},
+ components: {
+ EqualIcon,
+ NotEqualIcon,
+ FieldList: defineAsyncComponent(
+ () => import("@/plugins/logs/components/FieldList.vue"),
+ ),
+ },
emits: ["setInterestingFieldInSQLQuery"],
methods: {
handleMultiStreamSelection() {
@@ -1147,7 +504,7 @@ export default defineComponent({
searchObj.data.stream.addToFilter = field;
};
- function clickFieldFn(row: { name: never }, pageIndex: number) {
+ function clickFieldFn(row: { name: never }) {
let selectedFields = reorderSelectedFields();
if (selectedFields.includes(row.name)) {
@@ -1659,7 +1016,10 @@ export default defineComponent({
};
- const toggleSchema = async () => {
+ const toggleSchema = async (newValue: string) => {
+ // Update the schema type with the new value from the toggle
+ searchObj.meta.useUserDefinedSchemas = newValue;
+
// Reset pagination to page 1 before resetting fields
resetPagination();
@@ -1676,12 +1036,20 @@ export default defineComponent({
};
- const toggleInterestingFields = () => {
+ const toggleInterestingFields = (newValue: boolean) => {
+ // Update the interesting fields toggle with the new value
+ showOnlyInterestingFields.value = newValue;
+
// Reset pagination to page 1 before resetting fields
resetPagination();
resetFields();
};
+ const toggleFieldGroup = (group: string) => {
+ searchObj.data.stream.expandGroupRows[group] =
+ !searchObj.data.stream.expandGroupRows[group];
+ };
+
const hasUserDefinedSchemas = () => {
return searchObj.data.stream.selectedStream.some((stream: any) => {
store.state.zoConfig.user_defined_schemas_enabled &&
@@ -1997,6 +1365,7 @@ export default defineComponent({
toggleSchema,
toggleInterestingFields,
fieldListRef,
+ toggleFieldGroup,
streamFieldsRows: computed(() => {
let expandKeys = Object.keys(
searchObj.data.stream.expandGroupRows,
diff --git a/web/src/plugins/logs/components/FieldExpansion.vue b/web/src/plugins/logs/components/FieldExpansion.vue
new file mode 100644
index 0000000000..5fed807cc2
--- /dev/null
+++ b/web/src/plugins/logs/components/FieldExpansion.vue
@@ -0,0 +1,281 @@
+
+
+