diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 04bed063b6..2a4861e69c 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -84,7 +84,7 @@ jobs: - uses: peter-evans/commit-comment@v2 with: body: | - The PR changes have been deployed. Pleae run the following command to verify: + The PR changes have been deployed. Please run the following command to verify: ``` docker run -d -p 8888:8080 nocodb/nocodb-timely:${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} ``` diff --git a/packages/nc-gui/assets/style/style.css b/packages/nc-gui/assets/style/style.css index b3fa43aa70..af509198d2 100644 --- a/packages/nc-gui/assets/style/style.css +++ b/packages/nc-gui/assets/style/style.css @@ -365,7 +365,7 @@ html { /* sorting and filter */ -.menu-filter-dropdown { +.menu-filter-dropdown:not(.nested) { max-height: 500px; overflow-y: auto; -} \ No newline at end of file +} diff --git a/packages/nc-gui/components/FeedbackForm.vue b/packages/nc-gui/components/FeedbackForm.vue index 1f866c360a..966f3e008c 100644 --- a/packages/nc-gui/components/FeedbackForm.vue +++ b/packages/nc-gui/components/FeedbackForm.vue @@ -1,14 +1,8 @@ @@ -143,6 +154,11 @@ {{ $t('activity.addFilter') }} + + mdi-plus + Add Filter Group + + @@ -281,10 +297,21 @@ export default { }, }, watch: { - async viewId(v) { - if (v) { - await this.loadFilter(); - } + viewId: { + async handler(v) { + if (v) { + await this.loadFilter(); + } + }, + immediate: true, + }, + hookId: { + async handler(v) { + if (v) { + await this.loadFilter(); + } + }, + immediate: true, }, filters: { handler(v) { @@ -293,9 +320,6 @@ export default { deep: true, }, }, - created() { - this.loadFilter(); - }, methods: { filterComparisonOp(f) { return this.comparisonOp.filter(op => { @@ -332,11 +356,15 @@ export default { await this.$api.dbTableFilter.update(filter.id, { ...filter, fk_parent_id: this.parentId, + children: undefined, + status: undefined, }); } else { await this.$api.dbTableFilter.update(filter.id, { ...filter, fk_parent_id: this.parentId, + children: undefined, + status: undefined, }); } } else if (this.hookId || hookId) { @@ -346,6 +374,7 @@ export default { await this.$api.dbTableWebhookFilter.create(this.hookId || hookId, { ...filter, fk_parent_id: this.parentId, + status: undefined, }) ); } else { @@ -355,6 +384,7 @@ export default { await this.$api.dbTableFilter.create(this.viewId, { ...filter, fk_parent_id: this.parentId, + status: undefined, }) ); } @@ -362,7 +392,9 @@ export default { } if (this.$refs.nestedFilter) { for (const nestedFilter of this.$refs.nestedFilter) { - await nestedFilter.applyChanges(true); + if (nestedFilter.parentId) { + await nestedFilter.applyChanges(true); + } } } this.loadFilter(); @@ -373,12 +405,12 @@ export default { async loadFilter() { let filters = []; if (this.viewId && this._isUIAllowed('filterSync')) { - filters = this.parentId + filters = this.nested ? await this.$api.dbTableFilter.childrenRead(this.parentId) : await this.$api.dbTableFilter.read(this.viewId); } if (this.hookId && this._isUIAllowed('filterSync')) { - filters = this.parentId + filters = this.nested ? await this.$api.dbTableFilter.childrenRead(this.parentId) : await this.$api.dbTableWebhookFilter.read(this.hookId); } @@ -401,6 +433,7 @@ export default { parentId: this.parentId, is_group: true, status: 'update', + logical_op: 'and', }); this.filters = this.filters.slice(); const index = this.filters.length - 1; @@ -468,4 +501,8 @@ export default { column-gap: 6px; row-gap: 6px; } + +.nc-filter-value-select { + min-width: 100px; +} diff --git a/packages/nc-gui/components/project/spreadsheet/components/SharedViewsList.vue b/packages/nc-gui/components/project/spreadsheet/components/SharedViewsList.vue index 8e5bf21dc1..5cc237f718 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/SharedViewsList.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/SharedViewsList.vue @@ -18,6 +18,10 @@ {{ $t('labels.password') }} + + + Download Allowed + {{ $t('labels.actions') }} @@ -46,6 +50,11 @@ + + + mdi-content-copy mdi-delete-outline @@ -80,6 +89,11 @@ + + + mdi-content-copy mdi-delete-outline @@ -173,6 +187,14 @@ export default { } return `/nc/${viewType}/${view.uuid}`; }, + renderAllowCSVDownload(view) { + if (view.type === ViewTypes.GRID) { + view.meta = view.meta && typeof view.meta === 'string' ? JSON.parse(view.meta) : view.meta; + return view.meta.allowCSVDownload ? '✔️' : '❌'; + } else { + return 'N/A'; + } + }, }, }; diff --git a/packages/nc-gui/components/project/spreadsheet/components/SortListMenu.vue b/packages/nc-gui/components/project/spreadsheet/components/SortListMenu.vue index aafd143db9..01ec55b944 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/SortListMenu.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/SortListMenu.vue @@ -1,7 +1,7 @@