mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
(core) Disable tips during tutorials
Summary: Behavioral tips shouldn't be shown during tutorials. Test Plan: Browser test. Reviewers: jarek Reviewed By: jarek Differential Revision: https://phab.getgrist.com/D3842
This commit is contained in:
parent
5b2fb62627
commit
0006e0604b
@ -35,6 +35,8 @@ interface QueuedTip {
|
|||||||
* Tips are shown in the order that they are attached.
|
* Tips are shown in the order that they are attached.
|
||||||
*/
|
*/
|
||||||
export class BehavioralPromptsManager extends Disposable {
|
export class BehavioralPromptsManager extends Disposable {
|
||||||
|
private _isDisabled: boolean = false;
|
||||||
|
|
||||||
private readonly _prefs = getUserPrefObs(this._appModel.userPrefsObs, 'behavioralPrompts',
|
private readonly _prefs = getUserPrefObs(this._appModel.userPrefsObs, 'behavioralPrompts',
|
||||||
{ defaultValue: { dontShowTips: false, dismissedTips: [] } }) as Observable<BehavioralPromptPrefs>;
|
{ defaultValue: { dontShowTips: false, dismissedTips: [] } }) as Observable<BehavioralPromptPrefs>;
|
||||||
|
|
||||||
@ -67,8 +69,17 @@ export class BehavioralPromptsManager extends Disposable {
|
|||||||
return !this._prefs.get().dontShowTips;
|
return !this._prefs.get().dontShowTips;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enable() {
|
||||||
|
this._isDisabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public disable() {
|
||||||
|
this._isDisabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
private _queueTip(refElement: Element, prompt: BehavioralPrompt, options: AttachOptions) {
|
private _queueTip(refElement: Element, prompt: BehavioralPrompt, options: AttachOptions) {
|
||||||
if (
|
if (
|
||||||
|
this._isDisabled ||
|
||||||
// Don't show tips if surveying is disabled.
|
// Don't show tips if surveying is disabled.
|
||||||
// TODO: Move this into a dedicated variable - this is only a short-term fix for hiding
|
// TODO: Move this into a dedicated variable - this is only a short-term fix for hiding
|
||||||
// tips in grist-core.
|
// tips in grist-core.
|
||||||
|
@ -332,6 +332,10 @@ export class GristDoc extends DisposableWithEvents {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
if (this.docModel.isTutorial()) {
|
||||||
|
this.behavioralPromptsManager.disable();
|
||||||
|
}
|
||||||
|
|
||||||
let isStartingTourOrTutorial = false;
|
let isStartingTourOrTutorial = false;
|
||||||
this.autoDispose(subscribe(urlState().state, async (_use, state) => {
|
this.autoDispose(subscribe(urlState().state, async (_use, state) => {
|
||||||
// Only start a tour or tutorial when the full interface is showing, i.e. not when in
|
// Only start a tour or tutorial when the full interface is showing, i.e. not when in
|
||||||
|
@ -53,7 +53,7 @@ describe('DocTutorial', function () {
|
|||||||
let forkUrl: string;
|
let forkUrl: string;
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
session = await gu.session().teamSite.user('user1').login();
|
session = await gu.session().teamSite.user('user1').login({showTips: true});
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => gu.checkForErrors());
|
afterEach(() => gu.checkForErrors());
|
||||||
@ -124,6 +124,13 @@ describe('DocTutorial', function () {
|
|||||||
/GristDocTutorial/).isPresent());
|
/GristDocTutorial/).isPresent());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not show behavioral tips', async function() {
|
||||||
|
await gu.openPage('Page 1');
|
||||||
|
await gu.openAddWidgetToPage();
|
||||||
|
assert.equal(await driver.find('.test-behavioral-prompt').isPresent(), false);
|
||||||
|
await gu.sendKeys(Key.ESCAPE);
|
||||||
|
});
|
||||||
|
|
||||||
it('only allows users access to their own forks', async function() {
|
it('only allows users access to their own forks', async function() {
|
||||||
const otherSession = await gu.session().teamSite.user('user2').login();
|
const otherSession = await gu.session().teamSite.user('user2').login();
|
||||||
await driver.navigate().to(forkUrl);
|
await driver.navigate().to(forkUrl);
|
||||||
|
Loading…
Reference in New Issue
Block a user