nakedobjects.spa
Version:
Single Page Application client for a Naked Objects application.
119 lines (118 loc) • 8.04 kB
TypeScript
/// <reference types="lodash" />
import { InteractionMode, PaneRouteData, Pane, CollectionViewState } from './route-data';
import { UrlManagerService } from './url-manager.service';
import { RepLoaderService } from './rep-loader.service';
import * as Models from './models';
import { IDraggableViewModel } from './view-models/idraggable-view-model';
import { ConfigService } from './config.service';
import { LoggerService } from './logger.service';
import { Dictionary } from 'lodash';
import { Observable } from 'rxjs/Observable';
export declare class ContextService {
private readonly urlManager;
private readonly repLoader;
private readonly configService;
private readonly loggerService;
clearingDataFlag: boolean;
constructor(urlManager: UrlManagerService, repLoader: RepLoaderService, configService: ConfigService, loggerService: LoggerService);
private readonly keySeparator;
private currentObjects;
private transientCache;
private currentMenuList;
private currentServices;
private currentMenus;
private currentVersion;
private currentUser;
private readonly recentcache;
private readonly dirtyList;
private currentLists;
private readonly parameterCache;
private readonly objectEditCache;
getFile: (object: Models.DomainObjectRepresentation, url: string, mt: string) => Promise<Blob>;
setFile: (object: Models.DomainObjectRepresentation, url: string, mt: string, file: Blob) => Promise<boolean>;
clearCachedFile: (url: string) => void;
clearCachedCollections(obj: Models.DomainObjectRepresentation): void;
getDomainObject: (paneId: Pane, oid: Models.ObjectIdWrapper, interactionMode: InteractionMode) => Promise<Models.DomainObjectRepresentation>;
private editOrReloadObject(paneId, object, inlineDetails);
getIsDirty: (oid: Models.ObjectIdWrapper) => boolean;
mustReload: (oid: Models.ObjectIdWrapper) => boolean;
getObjectForEdit: (paneId: Pane, object: Models.DomainObjectRepresentation) => Promise<Models.DomainObjectRepresentation>;
reloadObject: (paneId: Pane, object: Models.DomainObjectRepresentation) => Promise<Models.DomainObjectRepresentation>;
getService: (paneId: Pane, serviceType: string) => Promise<Models.DomainObjectRepresentation>;
getActionDetails: (actionMember: Models.ActionMember) => Promise<Models.ActionRepresentation>;
getCollectionDetails: (collectionMember: Models.CollectionMember, state: CollectionViewState, ignoreCache: boolean) => Promise<Models.CollectionRepresentation>;
getInvokableAction: (action: Models.ActionRepresentation | Models.ActionMember) => Promise<Models.ActionRepresentation | Models.InvokableActionMember>;
getMenu: (menuId: string) => Promise<Models.MenuRepresentation>;
private pendingClearMessages;
private pendingClearWarnings;
clearMessages: () => void;
clearWarnings: () => void;
broadcastMessage: (m: string) => void;
broadcastWarning: (w: string) => void;
getHome: () => Promise<Models.HomePageRepresentation>;
getServices: () => Promise<Models.DomainServicesRepresentation>;
getMenus: () => Promise<Models.MenusRepresentation>;
getVersion: () => Promise<Models.VersionRepresentation>;
getUser: () => Promise<Models.UserRepresentation>;
getObject: (paneId: Pane, oid: Models.ObjectIdWrapper, interactionMode: InteractionMode) => Promise<Models.DomainObjectRepresentation>;
getCachedList: (paneId: Pane, page: number, pageSize: number) => Models.ListRepresentation | null;
clearCachedList: (paneId: Pane, page: number, pageSize: number) => void;
private cacheList(list, index);
private handleResult;
private getList;
getActionExtensionsFromMenu: (menuId: string, actionId: string) => Promise<Models.Extensions>;
getActionExtensionsFromObject: (paneId: Pane, oid: Models.ObjectIdWrapper, actionId: string) => Promise<Models.Extensions>;
private getPagingParms(page, pageSize);
getListFromMenu: (routeData: PaneRouteData, page?: number | undefined, pageSize?: number | undefined) => Promise<Models.ListRepresentation>;
getListFromObject: (routeData: PaneRouteData, page?: number | undefined, pageSize?: number | undefined) => Promise<Models.ListRepresentation>;
setObject: (paneId: Pane, co: Models.DomainObjectRepresentation) => Models.DomainObjectRepresentation;
swapCurrentObjects: () => void;
private currentError;
getError: () => Models.ErrorWrapper | null;
setError: (e: Models.ErrorWrapper) => Models.ErrorWrapper;
private previousUrl;
getPreviousUrl: () => string | null;
setPreviousUrl: (url: string) => string;
private doPrompt;
autoComplete: (field: Models.IField, id: string, objectValues: () => Dictionary<Models.Value>, searchTerm: string, digest?: string | null | undefined) => Promise<Dictionary<Models.Value> | null>;
conditionalChoices: (field: Models.IField, id: string, objectValues: () => Dictionary<Models.Value>, args: Dictionary<Models.Value>, digest?: string | null | undefined) => Promise<Dictionary<Models.Value> | null>;
private nextTransientId;
setResult: (action: Models.ActionRepresentation | Models.InvokableActionMember, result: Models.ActionResultRepresentation, fromPaneId: number, toPaneId: number, page: number, pageSize: number) => void;
private pendingPotentActionCount;
incPendingPotentActionOrReload(paneId: Pane): void;
decPendingPotentActionOrReload(paneId: Pane): void;
isPendingPotentActionOrReload(paneId: Pane): boolean;
private warningsSource;
private messagesSource;
warning$: Observable<string[]>;
messages$: Observable<string[]>;
private setMessages(result);
private copiedViewModelSource;
copiedViewModel$: Observable<IDraggableViewModel>;
private copiedViewModel;
setCopyViewModel(dvm: IDraggableViewModel | null): void;
getCopyViewModel(): IDraggableViewModel | null;
private concurrencyErrorSource;
concurrencyError$: Observable<Models.ObjectIdWrapper>;
setConcurrencyError(oid: Models.ObjectIdWrapper): void;
private invokeActionInternal(invokeMap, action, fromPaneId, toPaneId, setDirty, gotoResult?);
private getSetDirtyFunction(action, parms);
invokeAction: (action: Models.ActionRepresentation | Models.InvokableActionMember, parms: Dictionary<Models.Value>, fromPaneId?: number, toPaneId?: number, gotoResult?: boolean) => Promise<Models.ActionResultRepresentation>;
private setNewObject(updatedObject, paneId, viewSavedObject);
updateObject: (object: Models.DomainObjectRepresentation, props: Dictionary<Models.Value>, paneId: Pane, viewSavedObject: boolean) => Promise<Models.DomainObjectRepresentation>;
saveObject: (object: Models.DomainObjectRepresentation, props: Dictionary<Models.Value>, paneId: Pane, viewSavedObject: boolean) => Promise<Models.DomainObjectRepresentation>;
validateUpdateObject: (object: Models.DomainObjectRepresentation, props: Dictionary<Models.Value>) => Promise<boolean>;
validateSaveObject: (object: Models.DomainObjectRepresentation, props: Dictionary<Models.Value>) => Promise<boolean>;
private subTypeCache;
isSubTypeOf: (toCheckType: string, againstType: string) => Promise<boolean>;
private cacheRecentlyViewed(obj);
getRecentlyViewed: () => Models.DomainObjectRepresentation[];
clearRecentlyViewed: () => void;
private logoff();
cacheFieldValue: (dialogId: string, pid: string, pv: Models.Value, paneId?: Pane) => void;
getDialogCachedValues: (dialogId?: string | null, paneId?: Pane) => Dictionary<Models.Value>;
getObjectCachedValues: (objectId?: string | null, paneId?: Pane) => Dictionary<Models.Value>;
clearDialogCachedValues: (paneId?: Pane) => void;
clearObjectCachedValues: (paneId?: Pane) => void;
cachePropertyValue: (obj: Models.DomainObjectRepresentation, p: Models.PropertyMember, pv: Models.Value, paneId?: Pane) => void;
}