mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Form Publishing
Summary: Adds initial implementation of form publishing, built upon WYSIWYS shares. A simple UI for publishing and unpublishing forms is included. Test Plan: Browser tests. Reviewers: jarek Reviewed By: jarek Subscribers: paulfitz, jarek Differential Revision: https://phab.getgrist.com/D4154
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import {ShareInfo} from 'app/common/ActiveDocAPI';
|
||||
import {ApiError, LimitType} from 'app/common/ApiError';
|
||||
import {mapGetOrSet, mapSetOrClear, MapWithTTL} from 'app/common/AsyncCreate';
|
||||
import {getDataLimitStatus} from 'app/common/DocLimits';
|
||||
@@ -1221,7 +1222,7 @@ export class HomeDBManager extends EventEmitter {
|
||||
// to the regular path through this method.
|
||||
workspace: this.unwrapQueryResult<Workspace>(
|
||||
await this.getWorkspace({userId: this.getSupportUserId()},
|
||||
this._exampleWorkspaceId)),
|
||||
this._exampleWorkspaceId)),
|
||||
aliases: [],
|
||||
access: 'editors', // a share may have view/edit access,
|
||||
// need to check at granular level
|
||||
@@ -3089,6 +3090,22 @@ export class HomeDBManager extends EventEmitter {
|
||||
});
|
||||
}
|
||||
|
||||
public async getShareByKey(key: string) {
|
||||
return this._connection.createQueryBuilder()
|
||||
.select('shares')
|
||||
.from(Share, 'shares')
|
||||
.where('shares.key = :key', {key})
|
||||
.getOne();
|
||||
}
|
||||
|
||||
public async getShareByLinkId(docId: string, linkId: string) {
|
||||
return this._connection.createQueryBuilder()
|
||||
.select('shares')
|
||||
.from(Share, 'shares')
|
||||
.where('shares.doc_id = :docId and shares.link_id = :linkId', {docId, linkId})
|
||||
.getOne();
|
||||
}
|
||||
|
||||
private async _getOrCreateLimit(accountId: number, limitType: LimitType, force: boolean): Promise<Limit|null> {
|
||||
if (accountId === 0) {
|
||||
throw new Error(`getLimit: called for not existing account`);
|
||||
@@ -4933,8 +4950,3 @@ export function getDocAuthKeyFromScope(scope: Scope): DocAuthKey {
|
||||
if (!urlId) { throw new Error('document required'); }
|
||||
return {urlId, userId, org};
|
||||
}
|
||||
|
||||
interface ShareInfo {
|
||||
linkId: string;
|
||||
options: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user