diff --git a/tests/ui-testing/cypress/e2e/tests/logs_queries.cy.js b/tests/ui-testing/cypress/e2e/tests/logs_queries.cy.js
index 258087106d..0dc0d51ee9 100644
--- a/tests/ui-testing/cypress/e2e/tests/logs_queries.cy.js
+++ b/tests/ui-testing/cypress/e2e/tests/logs_queries.cy.js
@@ -251,7 +251,7 @@ describe("Logs testcases", () => {
cy.get('[data-test="menu-link-/streams-item"]').click({ force: true });
cy.get('[data-test="streams-search-stream-input"]').type("e2e_automate");
- cy.get('[title="Stream Detail"]').click({ force: true });
+ cy.get('[title="Stream Detail"]:first').click({ force: true });
cy.get(':nth-child(2) > [data-test="schema-stream-index-select"]').click();
cy.get(".q-virtual-scroll__content").within(() => {
cy.contains("Inverted Index").click();
@@ -261,7 +261,7 @@ describe("Logs testcases", () => {
force: true,
});
cy.get(".col-auto > .q-btn > .q-btn__content").click({ force: true });
- cy.get('[title="Explore"]').click({ force: true });
+ cy.get('[title="Explore"]:first').click({ force: true });
cy.get('[data-test="log-table-column-0-@timestamp"]').should("exist");
});
it("should display error if blank spaces added under stream name and clicked create stream ", () => {
diff --git a/web/src/components/logstream/schema.vue b/web/src/components/logstream/schema.vue
index 81d2d01605..e83fb0a026 100644
--- a/web/src/components/logstream/schema.vue
+++ b/web/src/components/logstream/schema.vue
@@ -45,7 +45,8 @@ along with this program. If not, see .
>
No data available.
-
+
{{ indexData.name }}
@@ -129,113 +130,133 @@ along with this program. If not, see
.
-
-
+
-
-
-
+
- |
-
- |
- {{ schema.name }} |
- {{ schema.type }} |
-
-
- |
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.row.name }}
+
+
+ {{ props.row.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
@@ -296,6 +317,8 @@ export default defineComponent({
const confirmQueryModeChangeDialog = ref(false);
const formDirtyFlag = ref(false);
const loadingState = ref(true);
+ const rowsPerPage = ref(250);
+ const filterField = ref("");
const streamIndexType = [
{ label: "Inverted Index", value: "fullTextSearchKey" },
@@ -328,6 +351,7 @@ export default defineComponent({
};
const deleteFields = async () => {
+ loadingState.value = true;
await streamService
.deleteFields(
store.state.selectedOrganization.identifier,
@@ -335,6 +359,7 @@ export default defineComponent({
deleteFieldList.value
)
.then(async (res) => {
+ loadingState.value = false;
if (res.data.code == 200) {
q.notify({
color: "positive",
@@ -359,6 +384,7 @@ export default defineComponent({
}
})
.catch((err: any) => {
+ loadingState.value = false;
console.log(err);
q.notify({
color: "negative",
@@ -541,6 +567,7 @@ export default defineComponent({
settings.partition_keys.concat(added_part_keys);
}
+ loadingState.value = true;
await streamService
.updateSettings(
store.state.selectedOrganization.identifier,
@@ -549,6 +576,7 @@ export default defineComponent({
settings
)
.then(async (res) => {
+ loadingState.value = false;
q.notify({
color: "positive",
message: "Stream settings updated successfully.",
@@ -571,6 +599,7 @@ export default defineComponent({
});
})
.catch((err: any) => {
+ loadingState.value = false;
q.notify({
color: "negative",
message: err.response.data.message,
@@ -624,6 +653,46 @@ export default defineComponent({
return false;
};
+ const filterFieldFn = (rows: any, terms: any) => {
+ var filtered = [];
+ if (terms != "") {
+ terms = terms.toLowerCase();
+ for (var i = 0; i < rows.length; i++) {
+ if (rows[i]["name"].toLowerCase().includes(terms)) {
+ filtered.push(rows[i]);
+ }
+ }
+ }
+ return filtered;
+ };
+
+ const columns = [
+ {
+ name: "delete",
+ label: t("logStream.deleteActionLabel"),
+ align: "center",
+ sortable: false,
+ },
+ {
+ name: "name",
+ label: t("logStream.propertyName"),
+ align: "center",
+ sortable: true,
+ },
+ {
+ name: "type",
+ label: t("logStream.propertyType"),
+ align: "center",
+ sortable: true,
+ },
+ {
+ name: "index_type",
+ label: t("logStream.indexType"),
+ align: "center",
+ sortable: false,
+ },
+ ];
+
return {
t,
q,
@@ -649,6 +718,10 @@ export default defineComponent({
streamIndexType,
disableOptions,
loadingState,
+ filterFieldFn,
+ rowsPerPage,
+ filterField,
+ columns,
};
},
created() {
@@ -698,7 +771,7 @@ export default defineComponent({
td {
font-size: 0.875rem;
font-weight: 600;
- height: 35px;
+ height: 25px;
padding: 0px 5px;
}
}
@@ -755,39 +828,39 @@ export default defineComponent({
}
}
-.sticky-buttons {
- position: sticky;
- bottom: 0px;
- margin: 0 auto;
- background-color: var(--q-accent);
- box-shadow: 6px 6px 18px var(--q-accent);
- justify-content: right;
- width: 100%;
- padding-right: 20px;
-}
+// .sticky-buttons {
+// position: sticky;
+// bottom: 0px;
+// margin: 0 auto;
+// background-color: var(--q-accent);
+// box-shadow: 6px 6px 18px var(--q-accent);
+// justify-content: right;
+// width: 100%;
+// padding-right: 20px;
+// }
-.btn-delete {
- left: 20px;
- position: absolute;
-}
+// .btn-delete {
+// left: 20px;
+// position: absolute;
+// }
-.sticky-table-header {
- position: sticky;
- top: 0px;
- background: var(--q-accent);
- z-index: 1;
-}
+// .sticky-table-header {
+// position: sticky;
+// top: 0px;
+// background: var(--q-accent);
+// z-index: 1;
+// }
-.body--dark {
- .sticky-table-header {
- background: var(--q-dark);
- }
+// .body--dark {
+// .sticky-table-header {
+// background: var(--q-dark);
+// }
- .sticky-buttons {
- background-color: var(--q-dark);
- box-shadow: 6px 6px 18px var(--q-dark);
- }
-}
+// .sticky-buttons {
+// background-color: var(--q-dark);
+// box-shadow: 6px 6px 18px var(--q-dark);
+// }
+// }