renhao
2023-09-21 1aa9f2bb83dd9e4b7517f1cbf06b0db53979bb31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { QObject } from '../../e2elib/lib/src/pageobjects/base/qobject.class';
import { ViewBase } from '../../libappbase/viewbase';
import { UIWaitSOP } from '../../libappsop/objectsop';
import { AppMP } from '../appmp';
import { FormGeneralSettings } from '../forms/form.generalsettings';
 
export class ViewGeneralSettings extends ViewBase implements UIWaitSOP {
  public readonly name = 'General settings';
  public readonly viewPath = 'Data > General Settings'; // TODO: This is not a view, to discuss if right docked panel should be treated as view or different class?
 
  public frmGeneralSettings = new FormGeneralSettings();
 
  public async switchTo(): Promise<void> {
    const appMP = AppMP.getInstance();
 
    // wait until abp data is visible
    await appMP.abpData.isVisible();
    // Open data action bar page
    await appMP.abpData.click();
    // Open General Settings form only if it is not open
    if (!(await this.frmGeneralSettings.isOpen())) {
      // Scroll to General Settings button
      const qObject = new QObject(appMP.abpData.btnGeneralSettings.componentName, false, appMP.abpData.btnGeneralSettings.element);
      await appMP.abpData.scrollRight(qObject);
      await appMP.abpData.btnGeneralSettings.click();
    }
    await this.waitUILoaded();
  }
 
  public async waitUILoaded(): Promise<void> {
    await this.frmGeneralSettings.waitUntilPresent();
  }
}