@rr0/cms
Version:
RR0 Content Management System (CMS)
34 lines (33 loc) • 1.4 kB
JavaScript
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;
}
}