mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Enable auto triggering of Welcome Tour, and various improvements.
Summary: - Add showGristTour preference, and trigger tour automatically. - Tour is only triggered for new and anonymous users on a personal org, with edit permission. - Automatically open the right panel at tour start. - Don't show tours on mobile, since that's not ready (popups are cut off and can't be dismissed) - Cancel previous tour if a new one is somehow started. - Remove #repeat- trigger hash tags from the URL when the tour starts. - Ensure Help Center popup is positioned even when left panel is collapsed. - Polish up the content of the last two cards in the tour. Test Plan: Added test case for triggering and opening right panel. Reviewers: alexmojaki, paulfitz Reviewed By: alexmojaki Differential Revision: https://phab.getgrist.com/D2955
This commit is contained in:
@@ -5,6 +5,7 @@ import {canAddOrgMembers, Features} from 'app/common/Features';
|
||||
import {buildUrlId, MIN_URLID_PREFIX_LENGTH, parseUrlId} from 'app/common/gristUrls';
|
||||
import {FullUser, UserProfile} from 'app/common/LoginSessionAPI';
|
||||
import {checkSubdomainValidity} from 'app/common/orgNameUtils';
|
||||
import {UserOrgPrefs} from 'app/common/Prefs';
|
||||
import * as roles from 'app/common/roles';
|
||||
// TODO: API should implement UserAPI
|
||||
import {ANONYMOUS_USER_EMAIL, DocumentProperties, EVERYONE_EMAIL,
|
||||
@@ -531,6 +532,13 @@ export class HomeDBManager extends EventEmitter {
|
||||
throw new Error(result.errMessage);
|
||||
}
|
||||
needUpdate = true;
|
||||
|
||||
// We just created a personal org; set userOrgPrefs that should apply for new users only.
|
||||
const userOrgPrefs: UserOrgPrefs = {showGristTour: true};
|
||||
const orgId = result.data;
|
||||
if (orgId) {
|
||||
await this.updateOrg({userId: user.id}, orgId, {userOrgPrefs}, manager);
|
||||
}
|
||||
}
|
||||
if (needUpdate) {
|
||||
// We changed the db - reload user in order to give consistent results.
|
||||
@@ -1201,7 +1209,8 @@ export class HomeDBManager extends EventEmitter {
|
||||
public async updateOrg(
|
||||
scope: Scope,
|
||||
orgKey: string|number,
|
||||
props: Partial<OrganizationProperties>
|
||||
props: Partial<OrganizationProperties>,
|
||||
transaction?: EntityManager,
|
||||
): Promise<QueryResult<number>> {
|
||||
|
||||
// Check the scope of the modifications.
|
||||
@@ -1224,7 +1233,7 @@ export class HomeDBManager extends EventEmitter {
|
||||
}
|
||||
|
||||
// TODO: Unsetting a domain will likely have to be supported; also possibly prefs.
|
||||
return await this._connection.transaction(async manager => {
|
||||
return await this._runInTransaction(transaction, async manager => {
|
||||
const orgQuery = this.org(scope, orgKey, {
|
||||
manager,
|
||||
markPermissions,
|
||||
|
||||
Reference in New Issue
Block a user