Member Junction
    Preparing search index...

    Manages application instances and active application state.

    Loads applications filtered by the user's UserApplication records. If user has no UserApplication records, auto-creates them from DefaultForNewUser apps. Orders applications by UserApplication.Sequence.

    Index

    Constructors

    Accessors

    • get Loading(): Observable<boolean>

      Observable of loading state

      Returns Observable<boolean>

    Methods

    • Determine why a user cannot access an app by its URL path. Uses UserInfoEngine for core access checking logic. Returns detailed access information for error handling.

      Parameters

      • path: string

      Returns AppAccessResult

    • Disable an application for the current user. Delegates to UserInfoEngine for the actual disabling. Sync happens automatically via DataChange$ subscription.

      Parameters

      • appId: string

      Returns Promise<boolean>

    • Enable an existing but disabled UserApplication record. Delegates to UserInfoEngine for the actual enabling. Sync happens automatically via DataChange$ subscription.

      Parameters

      • appId: string

      Returns Promise<boolean>

    • Get application by URL path slug. Matches case-insensitively against the app's Path property. Falls back to Name match if Path is not found (for backwards compatibility).

      Parameters

      • path: string

      Returns BaseApplication | undefined

    • Canonical /app/:slug URL for an application. Uses the app's Path (what GetAppByPath matches on), falling back to Name, and url-encodes the segment. This is the single source of truth for app URLs — never hand-roll a slug from Name (e.g. spaces→hyphens), because a custom Path would then diverge from the URL and GetAppByPath would fail to resolve it (broken navigation / redirect loops).

      Parameters

      Returns string

    • Get applications that should appear in the Nav Bar (NavigationStyle = 'Nav Bar' or 'Both') filtered by TopNavLocation.

      Parameters

      • location: "Left of App Switcher" | "Left of User Menu"

      Returns BaseApplication[]

    • Check if an app exists in the system by path or name (case-insensitive). Returns the app from allApplications$ if found, regardless of user access.

      Parameters

      • path: string

      Returns BaseApplication | undefined

    • Initialize the application manager by subscribing to the LoggedIn event. Applications are loaded when the event fires, ensuring metadata is ready. Also subscribes to UserInfoEngine data changes to auto-sync when user apps change.

      Returns void

    • Install an application for the current user by creating a UserApplication record. Delegates to UserInfoEngine for the actual installation. Returns the newly created UserApplication entity.

      Parameters

      • appId: string

      Returns Promise<MJUserApplicationEntity | null>

    • Check if a system app is inactive (Status !== 'Active'). Delegates to UserInfoEngine for the metadata lookup.

      Parameters

      • path: string

      Returns boolean

    • Reload the user's application configuration. Call this after changes to UserApplication records to refresh the app list.

      Reads engine.UserApplications and rebuilds our derived observables. The engine's own event-driven refresh (via subscribeToEngineChanges + the UserApplications config's short DebounceTime) keeps the underlying data fresh — we no longer need a synchronous force-refresh here, which previously triggered NG0100 in callers with @if/@for bindings whose values mutate during their save loop.

      Returns Promise<void>

    • Set the active application by ID

      Parameters

      • appId: string

      Returns Promise<void>

    • Uninstall an application for the current user. Delegates to UserInfoEngine for the actual uninstallation. Sync happens automatically via DataChange$ subscription.

      Parameters

      • appId: string

      Returns Promise<boolean>

    • Returns a promise that resolves when applications have been loaded and the manager is ready. Safe to call multiple times — returns the same promise.

      Returns Promise<void>