UNPKG

@rr0/cms

Version:

RR0 Content Management System (CMS)

34 lines (33 loc) 1.4 kB
import assert from "assert"; import { Organization } from "@rr0/data"; export class CmsOrganization extends Organization { constructor(id, places, kind, parent) { super(id, places, kind, parent); } get parent() { return super.parent; } getMessages(context) { const parent = this.parent; const parentMessages = parent ? parent.getMessages(context) : context.messages; const messageKind = parentMessages[this.kind]; assert.ok(messageKind, `Could not find messages of kind "${this.kind}" in ${JSON.stringify(parentMessages)}`); const messages = messageKind[this.id]; assert.ok(messages, `Could not find messages for org "${this.id}" in messages "${JSON.stringify(messageKind)}"`); return messages; } getTitle(context, options = { parent: false }) { const messages = this.getMessages(context); const parent = this.parent; assert.ok(messages, `Could not find name of org "${this.id}" in parent org "${parent === null || parent === void 0 ? void 0 : parent.id}"`); let str = messages.title; if (options.parent && parent) { const parentMessages = parent.getMessages(context); str += ` (${parentMessages.toTitle(context, parent, options)})`; } return str; } toString() { return this.kind + "$" + this.id; } }