Browse Source

fix: handle filter,sort,ect for other readonly users

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/760/head
Pranav C 3 years ago
parent
commit
63726e3c4d
  1. 6
      packages/nc-gui/components/project/spreadsheet/rowsXcDataTable.vue
  2. 28
      packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts

6
packages/nc-gui/components/project/spreadsheet/rowsXcDataTable.vue

@ -142,6 +142,12 @@
<csv-export <csv-export
:meta="meta" :meta="meta"
:nodes="nodes" :nodes="nodes"
:query-params="{
fieldsOrder,
fieldFilter,
sortList,
showFields
}"
:selected-view="selectedView" :selected-view="selectedView"
class="mr-1" class="mr-1"
/> />

28
packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts

@ -3933,6 +3933,7 @@ export default class NcMetaMgr {
return this.xcExportAsCsv( return this.xcExportAsCsv(
{ {
shared: true,
...sharedViewMeta, ...sharedViewMeta,
args: { ...args.args, ...sharedViewMeta } args: { ...args.args, ...sharedViewMeta }
}, },
@ -4209,6 +4210,10 @@ export default class NcMetaMgr {
queryParams = JSON.parse(selectedView.query_params); queryParams = JSON.parse(selectedView.query_params);
} catch {} } catch {}
if (!args.shared) {
queryParams = { ...queryParams, ...localQuery };
}
let sort = this.serializeSortParam(queryParams); let sort = this.serializeSortParam(queryParams);
let where = ''; let where = '';
@ -4240,14 +4245,18 @@ export default class NcMetaMgr {
...this.serializeNestedParams(meta, queryParams) ...this.serializeNestedParams(meta, queryParams)
}, },
// filter only visible columns // filter only visible columns
Object.entries(localQuery?.showFields || queryParams?.showFields || {}) localQuery?.showFields || queryParams?.showFields
.filter(v => v[1]) ? Object.entries(
.map(v => v[0]) localQuery?.showFields || queryParams?.showFields || {}
.sort( )
(a, b) => .filter(v => v[1])
queryParams?.fieldsOrder?.indexOf(a) - .map(v => v[0])
queryParams?.fieldsOrder?.indexOf(b) .sort(
) (a, b) =>
(queryParams?.fieldsOrder?.indexOf(a) + 1 || Infinity) -
(queryParams?.fieldsOrder?.indexOf(b) + 1 || Infinity)
)
: undefined
); );
return { return {
@ -5155,7 +5164,7 @@ export default class NcMetaMgr {
}; };
for (const v of meta.v) { for (const v of meta.v) {
if (!queryParams?.showFields?.[v._cn]) continue; if (queryParams?.showFields && !queryParams.showFields[v._cn]) continue;
if (v.bt || v.lk?.type === 'bt') { if (v.bt || v.lk?.type === 'bt') {
const tn = v.bt?.rtn || v.lk?.rtn; const tn = v.bt?.rtn || v.lk?.rtn;
if (!nestedParams.bt.includes(tn)) nestedParams.bt.push(tn); if (!nestedParams.bt.includes(tn)) nestedParams.bt.push(tn);
@ -5186,6 +5195,7 @@ export default class NcMetaMgr {
nestedParams.mm = nestedParams.mm.join(','); nestedParams.mm = nestedParams.mm.join(',');
nestedParams.hm = nestedParams.hm.join(','); nestedParams.hm = nestedParams.hm.join(',');
nestedParams.bt = nestedParams.bt.join(','); nestedParams.bt = nestedParams.bt.join(',');
return nestedParams; return nestedParams;
} }
} }

Loading…
Cancel
Save