rittenhop-ghost/versions/5.94.2/core/server/models/benefit.js

39 lines
1.1 KiB
JavaScript

const ghostBookshelf = require('./base');
const Benefit = ghostBookshelf.Model.extend({
tableName: 'benefits',
async onSaving(model, attr, options) {
ghostBookshelf.Model.prototype.onSaving.call(this, model, attr, options);
// Make sure name is trimmed of extra spaces
let name = this.get('name') && this.get('name').trim();
this.set('name', name);
if (this.hasChanged('slug') || (!this.get('slug') && this.get('name'))) {
// Pass the new slug through the generator to strip illegal characters, detect duplicates
const slug = await ghostBookshelf.Model.generateSlug(
Benefit,
this.get('slug') || this.get('name'),
{transacting: options.transacting}
);
this.set({slug});
}
}
}, {
orderDefaultOptions() {
return {
name: 'ASC',
created_at: 'DESC'
};
}
});
const Benefits = ghostBookshelf.Collection.extend({
model: Benefit
});
module.exports = {
Benefit: ghostBookshelf.model('Benefit', Benefit),
Benefits: ghostBookshelf.collection('Benefits', Benefits)
};