(core) Export to Excel and Send to drive

Summary:
Implementing export to excel and send to Google Drive feature.

As part of this feature few things were implemented:
- Server side google authentication exposed on url: (docs, docs-s, or localhost:8080)/auth/google
- Exporting grist documents as an excel file (xlsx)
- Storing exported grist document (in excel format) in Google Drive as a spreadsheet document.

Server side google authentication requires one new environmental variables
- GOOGLE_CLIENT_SECRET (required) used by authentication handler

Test Plan: Browser tests for exporting to excel.

Reviewers: paulfitz, dsagal

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D2924
This commit is contained in:
Jarosław Sadziński
2021-07-21 10:46:03 +02:00
parent 9cc034f606
commit 08295a696b
20 changed files with 1182 additions and 187 deletions

View File

@@ -601,6 +601,14 @@ export class GristDoc extends DisposableWithEvents {
);
}
public getXlsxLink() {
const params = {
...this.docComm.getUrlParams(),
title: this.docPageModel.currentDocTitle.get(),
};
return this.docComm.docUrl(`gen_xlsx`) + '?' + encodeQueryParams(params);
}
public getCsvLink() {
const filters = this.viewModel.activeSection.peek().filteredFields.get().map(field=> ({
colRef : field.colRef.peek(),
@@ -614,7 +622,7 @@ export class GristDoc extends DisposableWithEvents {
activeSortSpec: JSON.stringify(this.viewModel.activeSection().activeSortSpec()),
filters : JSON.stringify(filters),
};
return this.docComm.docUrl('gen_csv') + '?' + encodeQueryParams(params);
return this.docComm.docUrl(`gen_csv`) + '?' + encodeQueryParams(params);
}
public hasGranularAccessRules(): boolean {