You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
const Model = require('objection').Model
/* global WIKI */
/** * Locales model */ module.exports = class Locale extends Model { static get tableName() { return 'locales' } static get idColumn() { return 'code' }
static get jsonSchema () { return { type: 'object', required: ['code', 'name'],
properties: { code: {type: 'string'}, isRTL: {type: 'boolean', default: false}, name: {type: 'string'}, nativeName: {type: 'string'}, createdAt: {type: 'string'}, updatedAt: {type: 'string'}, availability: {type: 'integer'} } } }
static get jsonAttributes() { return ['strings'] }
$beforeUpdate() { this.updatedAt = new Date().toISOString() } $beforeInsert() { this.createdAt = new Date().toISOString() this.updatedAt = new Date().toISOString() }
static async getNavLocales({ cache = false } = {}) { if (!WIKI.config.lang.namespacing) { return [] }
if (cache) { const navLocalesCached = await WIKI.cache.get('nav:locales') if (navLocalesCached) { return navLocalesCached } } const navLocales = await WIKI.models.locales.query().select('code', 'nativeName AS name').whereIn('code', WIKI.config.lang.namespaces).orderBy('code') if (navLocales) { if (cache) { await WIKI.cache.set('nav:locales', navLocales, 300) } return navLocales } else { WIKI.logger.warn('Site Locales for navigation are missing or corrupted.') return [] } } }
|