UNPKG

substance

Version:

Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing system. It is developed to power our online editing platform [Substance](http://substance.io).

37 lines (33 loc) 1.24 kB
import { documentHelpers } from '../model' import ApiExtension from './ApiExtension' export default class AffiliationApi extends ApiExtension { /** * @param {object} data from AffiliationModal state */ addAffiliation (data, options) { return this.insertAffiliation(data, null, options) } insertAffiliation (data, currentAffiliation, options) { const editorSession = this.api.getEditorSession() const doc = editorSession.getDocument() const root = doc.root let insertPos = root.affiliations.length if (currentAffiliation) { insertPos = currentAffiliation.getPosition() + 1 } const nodeData = Object.assign({}, data, { type: 'affiliation' }) return this.api.insertNode([root.id, 'affiliations'], insertPos, nodeData, options) } /** * @param {string} affId * @param {object} data from AffiliationModal state */ updateAffiliation (affId, data) { this.api.getEditorSession().transaction(tx => { documentHelpers.updateProperty(tx, [affId, 'name'], data.name) documentHelpers.updateProperty(tx, [affId, 'city'], data.city) documentHelpers.updateProperty(tx, [affId, 'country'], data.country) this.api._selectItem(tx, tx.get(affId)) }) } }