module fb { export class NavigationsObjekt extends ResourceBase{ ObjektTypId: NavigationsObjektTypId; Visningstext: string; NavigeraTill: string; BildUrl: string; Initialer: string; Alternativtext: string[]; Objektnummer: string; Fastighetsbeteckning: string; SubNavigationsObjekt: NavigationsObjekt[]; Aktualitetsdatum: string; UppdragStatusSpecifikation: number; SenastAnvaent: string; error: boolean; constructor(data: any) { super(data); if (!data.NavigeraTill) { // Om inget NavigeraTill-värde anges vid konstruktion, använd default-värdet för objekttypen this.NavigeraTill = fb.NavigationsObjekt.ObjektTypIdDefaultDestinationMapping(data.ObjektTypId); } } public static ObjektTypIdDefaultDestinationMapping = function (navigationsObjektTypId: number) { switch (navigationsObjektTypId) { case fb.NavigationsObjektTypId.NYTT_MAEKLAROBJEKT: return 'NyttObjekt'; case fb.NavigationsObjektTypId.MAEKLAROBJEKT: return ''; // Specialhanteras i navigationService case fb.NavigationsObjektTypId.KONTAKT: return ''; // Specialhanteras i navigationService case fb.NavigationsObjektTypId.DOKUMENT: return 'Dokument'; case fb.NavigationsObjektTypId.INSTAELLNINGAR: return 'Installningar'; case fb.NavigationsObjektTypId.KALENDERPOST: return 'Kalenderpost'; // Används inte? case fb.NavigationsObjektTypId.NOTIS: return 'Notis'; // Används inte? case fb.NavigationsObjektTypId.NAEROMRAADE: return 'Naeromraade'; // Används inte? case fb.NavigationsObjektTypId.ANTECKNING: return 'Anteckning'; // Används inte? case fb.NavigationsObjektTypId.MOEJLIGHET: return 'Saljdriv/Mojlighetlista'; // Används inte? case fb.NavigationsObjektTypId.BUDGET: return 'Budget'; // Används inte? case fb.NavigationsObjektTypId.SAELJ: return 'Saljdriv'; case fb.NavigationsObjektTypId.OBJEKTLISTA: return 'Objektlista'; case fb.NavigationsObjektTypId.KONTAKTLISTA: return 'Kontaktlista'; case fb.NavigationsObjektTypId.DIGITALBUDGIVNING: return 'DigitalBudgivning'; case fb.NavigationsObjektTypId.HAENDELSER: return 'Haendelser'; case fb.NavigationsObjektTypId.FAKTUROR: return 'Fakturor'; case fb.NavigationsObjektTypId.FASIT_NYTT: return 'FasitNytt'; case fb.NavigationsObjektTypId.OMRADEN: return 'Omraden'; case fb.NavigationsObjektTypId.TILLAGGSKLAUSULER: return 'Tillaggsklausuler'; case fb.NavigationsObjektTypId.FRISTAAENDE_DOKUMENT: return 'FristaaendeDokument'; default: return undefined; } } } export enum NavigationsObjektTypId { NYTT_MAEKLAROBJEKT = 0, MAEKLAROBJEKT = 1, KONTAKT = 2, DOKUMENT = 7, INSTAELLNINGAR = 8, KALENDERPOST= 9, NOTIS= 10, NAEROMRAADE= 11, ANTECKNING = 12, MOEJLIGHET = 13, BUDGET = 14, SAELJ = 15, OBJEKTLISTA = 16, KONTAKTLISTA = 17, DIGITALBUDGIVNING = 18, HAENDELSER = 19, FAKTUROR = 20, FASIT_NYTT = 21, OMRADEN = 22, TILLAGGSKLAUSULER = 23, FRISTAAENDE_DOKUMENT = 24 } export class KontaktNavigationsObjekt extends NavigationsObjekt { PersonId: number; MejlAdress: string; TelHem: string; TelMob: string; TelArb: string; TelVax: string; TelDir: string; JurPersonTyp: number; FysPersonTyp: number; KontaktTyp: string; AerAvliden: boolean; KundKategori: number; KundTyp: number; constructor(data: any) { super(data); } } export enum NavigationStrategy { STANDARD,STAENG_ENBART, STAENG_ENBART_KONTAKT } export class MaeklarNavigationsObjekt extends NavigationsObjekt { MaeklarObjektId: number; constructor(data: any) { super(data); } } export class NyttMaeklarNavigationsObjekt extends NavigationsObjekt { constructor(data: any) { if (!data.Visningstext) { data.Visningstext = 'Nytt objekt'; } if (!data.ObjektTypId){ data.ObjektTypId = fb.NavigationsObjektTypId.NYTT_MAEKLAROBJEKT; } super(data); } } export class DokumentNavigationsObjekt extends MaeklarNavigationsObjekt { // TODO: Där denna används så används den felaktigt med "type" som inte är ett attribut någonstans. /pedj DokumentId: number; constructor(data: any) { super(data); } } }